Thursday, November 30, 2017

Bird Caught Red-Handed

At first, the incoming bird receives nothing but smiles, but it’s all over and done with as soon as the little pecker flies of with the cash. The perfect crime exists after all?

The post Bird Caught Red-Handed appeared first on Viral Viral Videos.



To read the full article, please visit Viral Viral Videos

Dogs Welcome Their Owner Home

If you’ve ever owned a dog you know one of the best moments is when you, the owner, returns home. Well imagine that, times ~12 and you get something like this insanely cute video.

The post Dogs Welcome Their Owner Home appeared first on Viral Viral Videos.



To read the full article, please visit Viral Viral Videos

CodeSOD: Aarb!

C++’s template system is powerful and robust enough that template metaprogramming is Turing complete. Given that kind of power, it’s to surprise that pretty much every other object-oriented language eschews templates for code generation.

Java, for example, uses generics- essentially templates without the metaprogramming. What we still keep is compile-time type-safety, and all the benefits of generic programming, but without the complexity of compile-time code generation.

Thierry L inherited a Java application, and the original developer seems to miss that degree of complexity.

public abstract class CentralValidationDistributionAssemblingService<
        DC extends DistributionChannel,
        DU extends DistributionUnit<DC>,
        AC extends AssemblingContext,
        EAC extends AC,
        A extends Assembly<DC>,
        AAR extends AbstractAssemblingResult<DC>,
        AARB extends AbstractAssemblingResultBuilder<DC, AAR>
        >
        implements DistributionAssemblingService<DC, AC, DU, AAR>
{
    //…
}

The best part about this is that the type abbreviations are an onomatopoeia of the choking noises I made when I saw this code:

"DC… DU?… AC-EAC! A-AAR-AARB!"

[Advertisement] Infrastructure as Code built from the start with first-class Windows functionality and an intuitive, visual user interface. Download Otter today!


To read the full article, please visit The Daily WTF

Wednesday, November 29, 2017

Whip It, Whip It Real Good

I failed just now by discarding my draft for this video, but luckily there weren’t any cameras on me. This people were less fortunate.

The post Whip It, Whip It Real Good appeared first on Viral Viral Videos.



To read the full article, please visit Viral Viral Videos

Hungry Otter Checks The Fridge For Food

Only to find it’s not even fully stocked and the stuff that’s in it is wrapped in plastic. But he doesn’t give up in his quest for food.

The post Hungry Otter Checks The Fridge For Food appeared first on Viral Viral Videos.



To read the full article, please visit Viral Viral Videos

Thanks, Google

Gold Certificate

"Dealing with real customers is a hard job," Katya declared from the safety of the employee breakroom. "Dealing with big companies is even harder!"

"I know what you mean," her coworker Rick replied, sipping his tiny paper cup of water. "Enterprise security requirements, arcane contract requirements, and then they're likely to have all that Oracle junk to integrate with ..."

"Huh? Well, that too, but I'm talking about Google."

"Google? What'd they do?" Rick raised an eyebrow, leaning against the wall by the cooler, as Katya began her story.

As the lead architect, Katya was responsible for keeping their customers happy—no matter what. The product was a Java application, a server that stood between legacy backends and mobile apps to push out notifications when things happened that the customer cared about. So when one of their biggest customers reported that 30% of the Google Cloud messages weren't being delivered to their devices in production, it was all hands on deck, with Katya at the helm.

"So I of course popped open the log right off," she said, her voice dropping lower for effect. "And what do you think I saw? CertPathValidatorExceptions."

"A bad SSL certificate?" Rick asked. "From Google? Can't be."

"You've done this before," Katya pouted, jokingly. "But it only happened sporadically. We even tried two concurrent calls, and got one failure, one success."

"How does that even work?" Rick wondered.

"I know, right? So we cURL'd it, verbose, and got the certificate chain," Katya said. "There was a wildcard cert, signed by an intermediate, signed by a root. I checked the root myself, it was definitely part of the global truststore. So I tried again and again until I got a second cert chain. But it was the same thing: cert, intermediate, trusted root."

"So what was the problem?" Rick asked.

"Get this: the newer cert's root CA was only added in Java 7 and 8, back in 2016. We were still bundling an older version of Java 7, before the update."

"Ouch," sympathized Rick. "So you pushed out an updated runtime to all the customers?"

"What? No way!" Katya said. "They'd have each had to do a full integration test cycle. No, we delivered a shell script that added the root CA to the bundled cacerts."

"Shouldn't they be worried about security updates?" wondered Rick

"Sure, but are they actually going to upgrade to Java 8 on our say-so? You wanna die on that hill?

"It just pissed me right off. Why didn't Google announce the change? How come they whipped through them all in two days—no canary testing or anything? I tell you, it's almost enough to make a girl quit and start an alpaca farm upstate."

[Advertisement] Atalasoft’s imaging SDKs come with APIs & pre-built controls for web viewing, browser scanning, annotating, & OCR/barcode capture. Try it for 30 days with included support.


To read the full article, please visit The Daily WTF

Tuesday, November 28, 2017

Angry Sea Lions Are No Joke

You can try to establish dominance all you want, but in the end it’s the sea lion who comes out on top. No matter what.

The post Angry Sea Lions Are No Joke appeared first on Viral Viral Videos.



To read the full article, please visit Viral Viral Videos

Cats Are Pretty Hilarious

And this piece makes a great case for it. There are few animals funnier than cats. They’re unpredictable, spontaneous and just… funny.

The post Cats Are Pretty Hilarious appeared first on Viral Viral Videos.



To read the full article, please visit Viral Viral Videos

A Handful of Beans

The startup Juan worked for was going through a growth spurt. There was more work than there were people, and plenty of money, so that meant interviews. Lots, and lots of interviews.

Enter Octavio. Octavio had an impressive resume, had worked for decades as a consultant, and was the project lead on an open source project called “JavaBachata”. Before the interview, Juan gave the project site a quick skim, and it looked like one of those end-to-end ORM/MVC frameworks.

Roasted coffee beans

Juan planned to bring it up during the interview, but Octavio beat him to the punch. “You’ve probably heard of me, and my project,” he said right after shaking hands. “JavaBachata is the fastest Java framework out there. I use it on all my projects, and my customers have been very happy.”

“Ah… we already have a framework,” Juan said, uncertain if this was an interview or a sales-pitch.

“Oh, I know, I know. But if you’re looking for my skills, that’s the place to look. It’s open source.”

While Juan pulled up the GitHub page, Octavio touted the framework’s strength. “I was doing no SQL before NoSQL was a thing,” he said. “All of our queries are executed in-memory, using TableBeans. That’s what makes it so fast.”

Juan decided to start looking in the TableBean class, since Octavio brought it up. The bulk of the class looked like this:

public String var000, var001, var002,… var199,var200;

“What’s this?” Juan asked, politely.

“Oh, yes, I know that looks awkward, but it actually makes the code much more configurable. You see, this is used in conjunction with the ObjectBean, and the appropriate dot-properties file.”

The .properties file was a mapping file, which could map ObjectBean columns to TableBean fields. So, for example, it might have a property like this:

1=178

That meant column 1 in the ObjectBean mapped to column 178 in the TableBean, so that you could conveniently access the data by calling objBean.getCol(1).

“Don’t you think these naming conventions are hard to maintain?” Juan asked. “It’d be nice to have names for things.”

Octavio shrugged. “I think that’s the problem with modern programmers. They just don’t know how to code without using variable names anymore.”

They didn’t hire Octavio, but he took it well. “It leaves me more time to work on my framework.”

[Advertisement] Release! is a light card game about software and the people who make it. Play with 2-5 people, or up to 10 with two copies - only $9.95 shipped!


To read the full article, please visit The Daily WTF

Monday, November 27, 2017

Casually Explained: Levels Of Wealth

The money you got kind of controls how comfortable you can live. This isn’t necessarily a good thing, but it sure must be nice to be in that top 1%. Casually Explained does a funny […]

The post Casually Explained: Levels Of Wealth appeared first on Viral Viral Videos.



To read the full article, please visit Viral Viral Videos

CodeSOD: The Delivery Moose

We know stereotypes are poor placeholders for reality. Still, if we name a few nations, there are certain traits and themes that come to mind. Americans are fat, loud, gregarious, and love making pointless smalltalk. The English are reserved, love tea, and have perfected the art of queuing. The French are snobbish, the Japanese have weaponized politeness, the Finns won’t stand within ten meters of another human being at the bus stop, and so on. They can range from harmless to downright offensive and demeaning.

A real Canadian hero

Laurent is Canadian, working for an insurance company. Their software is Russian- in that it comes from a Russian vendor, with a support contract that gives them access to a Russian dev team to make changes. While reviewing commits, Laurent found one simply labeled: “Fix some Sonars issue”.

The change?

public enum CorrespondenceDeliveryMethods {
    MAIL("mail"),
    NOT_MAIL("moose");
}

Apparently, the Russian team has some stereotypes of their own about how documents are sent in Canada. Laurent adds:

Since this saved in the database and would thus imply 5 signatures to do a data migration, it is quite probable we’ll ultimately leave it as is. Which is a shame, because as we all know, the alternative to mail in Canada is to ask a Hockey player to slapshot the letter through the customer window, especially after they canceled their home insurance with us.

[Advertisement] Manage IT infrastructure as code across all environments with Puppet. Puppet Enterprise now offers more control and insight, with role-based access control, activity logging and all-new Puppet Apps. Start your free trial today!


To read the full article, please visit The Daily WTF

Sunday, November 26, 2017

Queen Baby The Food Critic

Don’t you hate people who have something to criticise on everything you put in front of them? Well, in this case this habit has started at a very young age… My blood is boiling.

The post Queen Baby The Food Critic appeared first on Viral Viral Videos.



To read the full article, please visit Viral Viral Videos

When Mating Rituals Go Wrong

This little birdie has some serious issues. It’s either in need of a pair of glasses, or it has to get his testosteron levels in check!

The post When Mating Rituals Go Wrong appeared first on Viral Viral Videos.



To read the full article, please visit Viral Viral Videos

Saturday, November 25, 2017

Those Leftover Pumpkins You Have?

Use them to make a wonderful pumpkin pie! Food usually doesn’t get any better than this. But maybe that’s just my sweet tooth talking…

The post Those Leftover Pumpkins You Have? appeared first on Viral Viral Videos.



To read the full article, please visit Viral Viral Videos

There Can Only Be One Good Girl

It’s just sinking in that there is competition on the block now. Put your best paw forward, doggy friend, you ain’t gonna let that stuffed piece of sh*t take your place now, are you?!

The post There Can Only Be One Good Girl appeared first on Viral Viral Videos.



To read the full article, please visit Viral Viral Videos

Friday, November 24, 2017

The Animoji Impersonator

This one makes for great stories at birthdays: “Well, what do you do for a living?” “I mimic smileys people use in online conversations.” “Oh. Okay…”

The post The Animoji Impersonator appeared first on Viral Viral Videos.



To read the full article, please visit Viral Viral Videos

Pets And An Amazon Echo Aren’t The Best Combination

If you’re trying to save on the electricity bill, that is. If you just want to have a laugh or feel like animals should be more in control of their own destiny, then this combination […]

The post Pets And An Amazon Echo Aren’t The Best Combination appeared first on Viral Viral Videos.



To read the full article, please visit Viral Viral Videos

Classic WTF: The Shadow over ShipPoint

What's this? A re-run of a spooky article on the day after Thanksgiving? Well, what's spookier than Black Friday? --Remy
Original

In the winter of 2012-13, I was fired from the ill-rumored e-commerce company known as ShipPoint. Though I remained stalwart to the end, the wretched darkness embodied in ShipPoint's CTO and his twisted worshipers dogs me still, a malignant growth choking the very life out of my career aspirations. And although I fight every day to forget, to leave my time at ShipPoint behind, I still awaken in the uttermost black of night, shuddering, my mind wrenching itself free from nightmare's grip. I record this grim history only because I fear I may soon slip irredeemably into madness.

It was 2011 when, freshly downsized, I found myself wandering the LinkedIn Jobs Directory, seemingly in vain. I had almost made up my mind to hang out my shingle as a consultant when I received an email from a recruiter. I don't remember his name, nor the firm that he claimed to represent, only that he demanded that we meet in person; apparently he was privy to a lucrative opportunity whose details could only be revealed face to face. While suspicious, I must admit I was gripped by curiosity — tinged, I must now believe, with a touch of the wild. I met the recruiter, a grim, swarthy fellow of furtive glance and questionable heritage, in a refuse-choked alley far from the central business district. It was there, amidst the dumpsters and commercial-grade recycling bins, that I first heard in a grating croak the name whose syllables I would one day shudder to write.

"ShipPoint," he said in response to my question about their development environment, "is dedicated to becoming cutting-edge with their development tools and processes. They use Subversion, and I hear they have a focus on quality and testing." I proceeded through a phone interview, and then on to meet James Akeley, ShipPoint's development manager. Imploring that I call him "Jimmy", he proclaimed his easy-going attitude to be matched only by his and ShipPoint's commitment to quality. Though the pay was a bit on the low side, I accepted his offer. I was to start the following Monday, taking the train and then a bus to the ugly one-story building of nondescript gray that contained ShipPoint's offices, a geriatric hulk muttering tonelessly to itself as it wallowed in its crumbling and almost-abandoned office park by the seashore.

My first day at ShipPoint began as prosaically as one could expect with a simple task that would lead me through their codebase. As an e-commerce provider, ShipPoint's stock in trade was web applications written using ASP.NET, and I made careful note of several places where classic code smells made themselves apparent. The team went out to lunch, as was their custom. Jimmy drove, with Jack Mason, the second-most senior developer, in the passenger seat. Sharing the back with me was Rob Carter, the company's web designer — one who would prove himself my most stalwart companion in the unguessed-at trials that lay ahead. While our lunchtime discussion was generally mundane, with only Rob expressing any interest in developing familiarity with his new associate, I found an appropriate pause in the conversation to present Jimmy and Jack with the potential problems I had detected during my brief venture into the code. Given his repeated assertions regarding dedication to quality, I expected Jimmy, at least, to be keenly interested in my discoveries. My surprise was considerate when he and Jack rebuffed me, declaring that Dan Marsh — the CTO — didn't want us to spend time refactoring code. "He and the other executives think it's a waste of time," Jimmy explained, some small measure of remorse evident in his voice, while next to him Jack nodded his head approvingly. "They want us to focus on new deploying new features."

I was disappointed by this, and by the subsequent revelation that, though ShipPoint did indeed mandate Subversion for source control, Jimmy and Jack only ever copied all the files to a separate, timestamped folder before committing. While the two senior developers were hesitant to discuss their mysterious and unseen leader, I was eventually able to coax from Rob what little he knew of the enigmatic Mr. Marsh. It seemed Marsh wasn't a developer, but, after joining the company a decade prior, his possession of certain esoteric scraps of scripting knowledge qualified him as ShipPoint's sole IT person. His authority spread as the years went by, unquestioned by his superiors and the developers he eventually allowed to join his staff, until he now led all technological decision-making at ShipPoint from within the only private office on their floor, an office whose door opened by invitation only.

After several months of my attempted improvements being either stutteringly denied by Jimmy or gruffly rebuked by Jack, new allies arrived at ShipPoint. Arthur Gilman was a brave and clever youth who joined the company alongside his mentor. Walter Peaslee was a hoary old veteran who had been using .NET since the framework was in beta. If anyone could help me champion sane coding and source-management practices at ShipPoint, it was these dynamic individuals. And changes were surely needed, as the months had shown me deep-rooted stability issues that would cause pages to crash or take minutes to load. It had likewise become clear that the senior developers were unwilling or uninterested in tackling these issues, holding up Mr. Marsh's desire for them to complete his endless list of superficial improvements as reason to hack as quickly as possible, leaving Rob and me to fix up the messes they left behind them.

At Christmastime, a chink in the armor appeared. Jimmy announced that he was leaving the company, taking his passive deference to Mr. Marsh with him. I decided to take action, and, with the idealistic Arthur at my heels, endeavored to implement a few changes. First, set up a bug-tracking system and then begin using Subversion properly, setting my protégé to create branches that would let the team collaborate without creating multiple copies of the application's source. Jack agreed to the changes in principle, and victory seemed close at hand. Only no sooner had Arthur went live with the Subversion changes than a blood-curdling cry was heard from Jack's cubicle! His files, Jack insisted, were gone, and he accused us of the most sordid and calculated mayhem, insisting that we sought to discredit him before Mr. Marsh. Not waiting for Arthur to explain that the files had simply been moved to a branch folder, Jack stormed into the CTO's office. By the time we had returned perplexed to our workstations, a directive to return the source control repository to its previous state awaited us, bearing the CTO's imprimatur. This was merely a prelude of things to come as repeated future attempts to sanitize our source-control procedures (and reclaim the gigabytes of storage consumed by the many redundant copies of our source code) were met with similar fear, uncertainty, and doubt from Jack, rapidly followed by executive sanction.

In the venerable person of Walter Peaslee, I was sure a sane counterpart had been found to our volatile senior developer. But the hand of Marsh proved subtle. When attempting to bring Walter's vast experience to bear on our DevOps dilemma, great was my surprise when I found him languishing on a project to produce a report for ShipPoint's CEO. Harbored as the chief executive was on far alien shores, all features of the report required Mr. Marsh's approval. With a sigh that seemed to carry a weight beyond even his advanced years, Walter explained that the CTO would lead him on for weeks regarding the simplest decision, often ignoring multiple emails. With his calendar eternally full to ward off meetings, Mr. Marsh would eventually return terse feedback along the lines of "this is the wrong color", disregarding the actual functionality.

I was saddened, but not surprised, when Walter graciously notified me that he would be submitting his resignation at the end of the week. After being regaled with the sanity-challenging truth of his experience working with Mr. Marsh, I had not the heart to try to convince him to stay. Indeed, I wondered if he might have awakened to a reality that I, too, should embrace. Arthur, on the other hand, being young and impressionable perhaps to a fault, was distracted by a new assignment: the task of utterly redesigning the central UI of our flagship application. It was here, in this project, that the forces of order and of chaos manifest at the heart of ShipPoint would collide in a last, terrible sortie. My support had meanwhile been secured by a timely email from Mr. Marsh, promising to install me as the lead of a new team of developers, since, he astutely pointed out amidst aggravating hints that the two shared some dark and malignant tradition, Jack was content to be a lone wolf. I must admit that the appeal to my leadership aspirations led me to lapse into a period of content productivity, and as the months went by I mostly avoided Jack and his hasty, problematical contributions to the codebase wherever I could, bringing as much improvement to the features I implemented as possible without incurring the wrath of Jack or the dreaded and still unseen Mr. Marsh.

Arthur, alas, had no choice but to collaborate with Jack, who effectively owned the backend of the application he was redesigning. While I thought I had coached the young man to weather this abominable partnership, the elder developer proved maddeningly cunning. While Arthur attempted to coordinate front-end and back-end features in the hurried sprints that Mr. Marsh had demanded, each release was plagued by wave after wave of new bugs, lapping like a foetid, corrosive black tide at a bleak, doomed shore. It was only Rob's fortuitous glimpse of an email seen over Jack's shoulder that we determined Mr. Marsh had been secretly communicating a list of shadow features he had apparently sold to management, and Jack was hacking code at a maddening pace to deliver said features in each release. It was with grim resignation that I entered the repository and inspected the terrible results. I perceived that Arthur's excellent front-end work had been reduced to little more than window-dressing, twisted into whatever shapes Marsh and Jack required to realize their fiendish goals. When I opened the solution containing Jack's jealously-guarded back-end code, obfuscated though it was behind incomprehensible names like "Solution1" and "MvcProject4", only then did I begin to grasp the horror that had taken root beneath the facade of a UI redesign. I saw them in a limitless stream—flopping, hopping, croaking, bleating—surging inhumanly through the spectral moonlight in a grotesque, malignant saraband of fantastic nightmare! That interminable list of poorly-implemented features, its shapeless mass extending blasphemous profusions in all directions throughout the code. It seemed to surge and breathe even as I watched...

It was with a mind gone almost entirely over to the feverish that I found myself composing email after email to Mr. Marsh, laying bare the deleterious effect that this noxious circumvention of procedure was having on our product. Rob was good enough to support this dangerous endeavor, and together we believed we may have been turning the tide of the CTO's sentiment against Jack, whose bland reassurances had apparently blinded Mr. Marsh to the depth of the horror. This last flicker of naiveté on our part was efficiently snuffed when Arthur's employment was terminated without notice. Though no word from Mr. Marsh was forthcoming, Jack's smug explanation was that the youth was slowing down the delivery of critical new features, and, worse, his incompetent code changes were found to be at the root of the catastrophic server instabilities. Perceiving the tolling of a grim bell to have begun, Rob informed me he was thinking of getting out of the technology game altogether, returning to the simple pastoral life he had known while running an organic fruit stand outside a nearby beachfront town. I tried to reassure him that we would find a way to prevail, but in truth my own hope was waning. ShipPoint and its uncouth stewards had ground my desire to write excellent code and promote best practices down to their merest remainder. Deep within me a malaise had taken root, and I knew when I looked hard into the glass that the end was drawing near.

The harbinger came, as it so often does, with a revocation: came a day that Rob needed me to reconfigure something for him on the Production server that had long been my charge, when, upon attempting to connect, I was rebuffed by the server's protestations of an incorrect password. Under my questioning, Jack hesitantly and stutteringly informed me that the password had changed and he'd forgotten to update me. No sooner had he left to fetch the promised credential than my phone rang. Shouldering the receiver, I heard the voice of the spectral Mr. Marsh for the first time. Never have the words "Could you pop by my office for a sec?" been uttered in such a sardonic and inhuman tone as to induce in the listener a shocking wave of panic fear. I felt numb as leaden limbs carried me to the unopened door. Pulled into the dark recesses the portal revealed, I came face to face with unbounded horrors that defy description. Let me only say that the stated reason for my termination was "a change of corporate direction towards a smaller, more agile development team".

Though I survived my meeting with the terrible Mr. Marsh, I was rendered practically an invalid by my abruptly-curtailed employment at ShipPoint, and made my way to a relative's country home to engage in a lengthy convalescence. I received an email from Rob soon after my firing, informing me that he had left the company and was exiting the industry altogether, going so far as to delete his LinkedIn profile. The horrifying dreams in which I blindly shoveled hastily-implemented code into a branchless Subversion repository while pursued down lightless corridors by a shapeless unseen terror had begun to pass when the first job posting appeared. ShipPoint was calling, its unspeakable tendrils reaching out across the vast cosmic gulfs of the internet to ensnare unwary developers. And while I have sworn never to take a job without assurance of sane development practices again, I do not know that my programmer's soul will ever be entirely free of its taint...

So far I have not yet deleted my LinkedIn profile as Rob did. The tense extremes of horror are lessening, and I feel queerly drawn toward the job postings instead of fearing them. I see and do strange things in Subversion, and commit my changes with a kind of exaltation instead of terror. Stupendous and unheard-of splendors await me in Marsh's cube farm, and I shall seek them soon. Iä-R'lyeh! Codethulhu fhtagn! Iä! Iä! No, I shall not delete my LinkedIn profile—I cannot be made to delete my LinkedIn profile!

I shall coax Rob back into software development, and together we shall go to marvel-shadowed ShipPoint. We shall take the bus out to that brooding industrial park by the sea and dive down through black abysses of code to the Cyclopean and many-columned database, and in that lair of the Expert Beginners we shall dwell amidst wonder and glory for ever.

Photo credit: gagilas / Foter / CC BY-SA

[Advertisement] Release! is a light card game about software and the people who make it. Play with 2-5 people, or up to 10 with two copies - only $9.95 shipped!


To read the full article, please visit The Daily WTF

Thursday, November 23, 2017

Your Tooth Is Missing

If you’ve got to fail anyway, at least let others have a laugh over it. Right? Nobody ever lost by bringing a little extra joy to the world, except maybe for when you lose a […]

The post Your Tooth Is Missing appeared first on Viral Viral Videos.



To read the full article, please visit Viral Viral Videos

Parenting Dog Has A Hard Time Letting Go Of Her Baby

Remember when your parents were overly protective of you? Put on sixteen layers of clothing when it was cold outside, that kind of stuff. This puppy is experiencing the same things, as her mother only […]

The post Parenting Dog Has A Hard Time Letting Go Of Her Baby appeared first on Viral Viral Videos.



To read the full article, please visit Viral Viral Videos

Editor's Soapbox: Give Thanks for Well Routed Packets

It’s Thanksgiving here in the US, so we’re taking a long weekend. In lieu of a more traditional “from the archives” post, I’m going to give thanks.

You know what I’m thankful for? I’m thankful that data packets on the Internet are routed and handled the same way, regardless of which network originated them, nor which network is their destination, nor what they may contain. You could say that networks are… neutral about packets.

A parody of the Gadsden flag that is an ethernet cable poised like a snake

A few years ago, the FCC enshrined this common sense into its regulatory framework. We were all pretty happy about it, and were optimistic that it was done. Unfortunately, it’s never over, and the new management at the FCC wants to reverse that, and plans to vote about it in a few weeks.

Remember: prior to making Network Neutrality the regulated standard, network operators largely (but not completely) followed the rule anyway. Network Neutrality was the default, and then the bean-counters recognized an unexploited revenue stream (why should Netflix get to send data to our customers without paying us for the privilege?). The Internet worked under Network Neutrality, and the FCC only needed to enforce it by rule because network operators wanted to change the playing field.

In any case, if you’re thankful for an Internet that works, between gorging yourself in typical American fashion and arguing with your racist uncle, take a few minutes to do something about network neutrality.

I’d be ever so thankful if you did.

[Advertisement] Manage IT infrastructure as code across all environments with Puppet. Puppet Enterprise now offers more control and insight, with role-based access control, activity logging and all-new Puppet Apps. Start your free trial today!


To read the full article, please visit The Daily WTF

Wednesday, November 22, 2017

Roomba Rodeo

This cute little baby goes on a grand adventure around the house, on his own little rodeo. Learning how to walk never was more unnecessary! Just hop on the roomba rodeo and be gone!

The post Roomba Rodeo appeared first on Viral Viral Videos.



To read the full article, please visit Viral Viral Videos

Ozzy Man Reviews: Goat On A Power Line

As if a goat hanging on a power line isn’t weird enough, Ozzy Man makes it even weirder. And funnier. Poor goat, but luckily the end is kind of happy.

The post Ozzy Man Reviews: Goat On A Power Line appeared first on Viral Viral Videos.



To read the full article, please visit Viral Viral Videos

CodeSOD: Arrject

There are some submissions that we get, and we simply sit on, because there’s nothing much to say about them. They’re awful code, but there’s no major comments to be added. It’s clear and simple in its awfulness.

For example, you have some code that needs to display details about colleges around the US. Each College has a name, a full name, a short name, a state and city where it exists, and full names for those states and cities. You are likely reaching for an object to store that information, but why do that, when you can employ what I call the “Arrject Pattern”. Y’know, when instead of using objects, you use multiple arrays and store related data at the same index? Stuff like what Kevin found in his codebase:

var schoolNames = new Array();
var schoolFullNames = new Array();
var schoolShortNames = new Array();
var schoolStates = new Array();
var schoolCities = new Array();
var schoolStateFullNames = new Array();
var schoolCityFullNames = new Array();

schoolNames[0] = "fsu";
schoolFullNames[0] = "Florida State University";
schoolShortNames[0] = "FSU";
schoolStates[0] = "fl";
schoolCities[0] = "tallahassee";
schoolStateFullNames[0] = "Florida";
schoolCityFullNames[0] = "Tallahassee";
schoolNames[1] = "tamu";
schoolFullNames[1] = "Texas A&M University";
schoolShortNames[1] = "Texas A&M";
schoolStates[1] = "tx";
schoolCities[1] = "college-station";
schoolStateFullNames[1] = "Texas";
schoolCityFullNames[1] = "College Station";
schoolNames[2] = "txstate";
schoolFullNames[2] = "Texas State University";
schoolShortNames[2] = "TX State";
schoolStates[2] = "tx";
schoolCities[2] = "san-marcos";
schoolStateFullNames[2] = "Texas";
schoolCityFullNames[2] = "San Marcos";
schoolNames[3] = "uaz";
schoolFullNames[3] = "University of Arizona";
schoolShortNames[3] = "U of A";
schoolStates[3] = "az";
schoolCities[3] = "tuscon";
schoolStateFullNames[3] = "Arizona";
schoolCityFullNames[3] = "Tuscon";
schoolNames[4] = "ucf";
schoolFullNames[4] = "University of Central Florida";
schoolShortNames[4] = "UCF";
schoolStates[4] = "fl";
schoolCities[4] = "orlando";
schoolStateFullNames[4] = "Florida";
schoolCityFullNames[4] = "Orlando";
schoolNames[5] = "ufl";
schoolFullNames[5] = "University of Florida";
schoolShortNames[5] = "UF";
schoolStates[5] = "fl";
schoolCities[5] = "gainesville";
schoolStateFullNames[5] = "Florida";
schoolCityFullNames[5] = "Gainesville";
schoolNames[6] = "uiuc";
schoolFullNames[6] = "University of Illinois at Urbana-Champaign";
schoolShortNames[6] = "U of I";
schoolStates[6] = "il";
schoolCities[6] = "urbana-champaign";
schoolStateFullNames[6] = "Illinois";
schoolCityFullNames[6] = "Urbana-Champaign";
schoolNames[7] = "uky";
schoolFullNames[7] = "University of Kentucky";
schoolShortNames[7] = "UK";
schoolStates[7] = "ky";
schoolCities[7] = "lexington";
schoolStateFullNames[7] = "Kentucky";
schoolCityFullNames[7] = "Lexington";
schoolNames[8] = "mizzou";
schoolFullNames[8] = "University of Missouri";
schoolShortNames[8] = "MIZZOU";
schoolStates[8] = "mo";
schoolCities[8] = "columbia";
schoolStateFullNames[8] = "Missouri";
schoolCityFullNames[8] = "Columbia";
schoolNames[9] = "usc";
schoolFullNames[9] = "University of Southern California";
schoolShortNames[9] = "USC";
schoolStates[9] = "ca";
schoolCities[9] = "los-angeles";
schoolStateFullNames[9] = "California";
schoolCityFullNames[9] = "Los Angeles";
schoolNames[10] = "ut";
schoolFullNames[10] = "University of Texas at Austin";
schoolShortNames[10] = "UT Austin";
schoolStates[10] = "tx";
schoolCities[10] = "austin";
schoolStateFullNames[10] = "Texas";
schoolCityFullNames[10] = "Austin";
schoolNames[11] = "utsa";
schoolFullNames[11] = "University of Texas at San Antonio";
schoolShortNames[11] = "UTSA";
schoolStates[11] = "tx";
schoolCities[11] = "san-antonio";
schoolStateFullNames[11] = "Texas";
schoolCityFullNames[11] = "San Antonio";

function showSearchResults(event, searchval) {

        var numResults = 0;
        var key = (event.keyCode || event.which);
        var results = "";
  var firstresult = "";
  if(searchval.length > 0) {
    var searchvalfixed = searchval.toLowerCase();
    if(searchvalfixed.indexOf("the") == 0) {
      searchvalfixed = searchvalfixed.substr(3);
    }
    searchvalfixed = searchvalfixed.trim();
    for(var i = 0; i < schoolNames.length; i++) {
      if(schoolFullNames[i].toLowerCase().indexOf(searchvalfixed) != -1 ||
         schoolShortNames[i].toLowerCase().indexOf(searchvalfixed) != -1 ||
         schoolCities[i].toLowerCase().indexOf(searchvalfixed) != -1 ||
         schoolStates[i].toLowerCase().indexOf(searchvalfixed) != -1 ||
         schoolStateFullNames[i].toLowerCase().indexOf(searchvalfixed) != -1 ||
         schoolShortNames[i].toLowerCase().indexOf(searchvalfixed) != -1 ||
         schoolCityFullNames[i].toLowerCase().indexOf(searchvalfixed) != -1) {
                 numResults++;
         results += "<a href=\"javascript:fillSearch('" + schoolNames[i] + "','" + schoolFullNames[i] + "');\" >" + schoolFullNames[i] + "</a><br>";
         if(firstresult.length == 0) {
          firstresult = schoolNames[i];
         }
      }
    }
        if(numResults){
          $("#resultsContainer").fadeIn("slow");
          document.getElementById("resultsContainer").innerHTML = results;
        } else {
        $("#resultsContainer").fadeOut("slow");

        }

  } else {
        $("#resultsContainer").fadeOut("slow");
  }
  if (key==13 && firstresult.length > 0){
    location.href = firstresult;
  }

}

function fillSearch(shortName,fullName){

        document.getElementById("search_landing").value = '';
        document.getElementById("search_landing").value = fullName;
        document.getElementById("search_shortname").value = shortName;
        $("#resultsContainer").fadeOut();

}
function goToSchool(){

if(document.getElementById("search_shortname").value)
location.href = document.getElementById("search_shortname").value;

}

It’s worth noting that this was inlined in the HTML file, up in the header, and not included from a separate file.

[Advertisement] Application Release Automation – build complex release pipelines all managed from one central dashboard, accessibility for the whole team. Download and learn more today!


To read the full article, please visit The Daily WTF

Tuesday, November 21, 2017

Wanna Trade Dog Beds?

We all know the “if I fits, I sits” meme, but that’s usually associated with cats. Did you know dogs have their own problems when it comes down to fitting in their beds? Looks like […]

The post Wanna Trade Dog Beds? appeared first on Viral Viral Videos.



To read the full article, please visit Viral Viral Videos

Is Sneezing A Sin?

Well, no. But this cute baby definitely thinks so. Well mannered as she is, she makes sure everyone knows this was not what she intended to do.

The post Is Sneezing A Sin? appeared first on Viral Viral Videos.



To read the full article, please visit Viral Viral Videos

Jumped The Gun

1904 Olympic sprint

Sheldon was a support engineer at Generic Media Co. In his 6 years with the company, he'd enjoyed working for several great managers—but then came the reorg. Once the dust cleared, he found himself in the wrong department, reporting to one of the most loathed individuals in the entire organization.

Gene was the type of manager who believed his fancy title awarded him instant respect. No engineer who spent any time working with him had anything good to say. Sheldon went in hoping for the best ... but Gene's relentless micromanaging and childish stunts quickly ground Sheldon's optimism into dust. When it came time for Sheldon to go on an extended vacation, he felt like a shell-shocked veteran limping out of the trenches.

The months away were bliss, but Sheldon couldn't enjoy the last few days out of dread. To his surprise, though, Gene wasn't waiting at his cubicle with twelve urgent tasks upon his return. There hadn't been a peep from Gene all vacation long: no emails, no meeting requests. It was getting close to performance review time; nothing about that, either.

As Sheldon worked through his vacation backlong, it became starkly apparent that he was being allowed to work through his vacation backlog. No panicky IMs, emails, cubicle pop-ins. The radio silence extended into days, then weeks. Sheldon began to wonder whether Gene even still worked there. Not wanting to kick a potential sleeping dragon in the nose, he asked his coworkers instead.

"Of course he's still here," one of them grumbled. "If they haven't canned him by now, they're not going to."

Soon after, Sheldon found out he had it exactly backwards.

A meeting invitation from Gene landed in his inbox. Catch-up meeting, tomorrow. No agenda, no room booked. Distracted with work, Sheldon didn't immediately accept the meeting. By the end of the day, his desk phone rang.

Gene. When had Gene ever phoned his desk? Frowning, Sheldon picked up.

"I need you to accept the invite," Gene blurted with no preamble.

It was then that Sheldon's paranoia clued him into reality. Gene still works here. I'm the one who's out. Gene's extended avoidance had been just another of his immature games. They'd never even done that performance review, had they?

"I'll be there," Sheldon muttered.

All that night, Sheldon tried to put a positive spin on the situation. A job he'd enjoyed had been ruined by a terrible manager, it was true. But he'd soon be free to look for a better job and a better manager.

Sure enough, once the meeting began, Gene smugly informed Sheldon that his role was going offshore, making him redundant. (Sheldon later found out that the offshore bit was a lie, but you didn't hear it from us.) Sheldon hoped this would be the last of their interaction, but it wasn't to be.

Fast-forward to Sheldon's second-to-last day, 4:00 PM. Sheldon was leaving to pick up his kids from school. He was on a tight schedule, as he had a train to catch. He hurried to the lobby, summoned an elevator, and darted in.

Just as he turned around, he spied Gene entering the lobby from the stairwell. Gene saw Sheldon as well, and flashed him a big smile.

Not to be cowed, Sheldon smiled right back.

Gene frowned, confused. "Do you have a minute?"

"No," Sheldon answered honestly as the elevator doors began to close.

"I need to collect your badge!" Gene yelled.

The doors shut, and the elevator began its descent. You're a day early, Sheldon thought to himself, shaking his head.

He made it to his train and boarded just in time. While shuttling along, he grabbed his phone and sent Gene a quick message via Google Hangouts. I'll be in tomorrow. You can have my badge then.

The message seemed to have trouble going through. A few moments later, the Hangout closed. You have been successfully logged out.

Strange. Sheldon switched to Slack. You have successfully signed out.

"What?" Sheldon blurted aloud.

It got him thinking. Gene had just seen him leaving the building in a hurry, grinning like a fool. Did he think Sheldon had planted a bomb or something? Sheldon had no bombs, but he did have admin access to plenty of important systems. Had Gene gotten his account terminated in a panic?

Sheldon called the IT department and confirmed his suspicions. There was even a note attached to his account, from Gene: DO NOT RE-ENABLE.

"What am I supposed to do for my last day?" Sheldon asked.

"No worries," the tech replied. "I'll roll it back."

Upon returning the next day, Sheldon learned his security badge didn't work, either. The security guard at the front desk had to call Gene for authorization. Still too much of a wimp to show his face, Gene just told him to let Sheldon through.

"He couldn't even get my last day right," Sheldon said with a chuckle.

Gene kept his distance whole day. Sheldon left at 4:00 PM again, this time headed for the whiskey bar with a few ex-colleagues to celebrate freedom.

[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!


To read the full article, please visit The Daily WTF

Monday, November 20, 2017

How To Train Your Lizard?

Ever see the movie How To Train Your Dragon? This is slightly different, but much more realistic at the same time. Lizard and dragons are, after all, very close relatives to each other.

The post How To Train Your Lizard? appeared first on Viral Viral Videos.



To read the full article, please visit Viral Viral Videos

Three Generations Smoke Weed

Ever smoked weed with your grandma? Chances are it’s a big hit! Group hugs, love and real talk all around. Get inspired!

The post Three Generations Smoke Weed appeared first on Viral Viral Videos.



To read the full article, please visit Viral Viral Videos

CodeSOD: The Generated JavaScript

Once upon a time, I discovered a bug in some JavaScript. I went off to investigate the source, only to find… the JS wasn’t coming from a file. It was being generated by a server-side method. Through string concatenation. It was a simple generation, something along the lines of:

jsCode += "location.href = 'foo?id=" + someIdField + "';\n";

Bad, but a minor WTF- and the bug was caused because someIdField contained characters which needed to be escaped. It was actually unnecessary, and I could construct the logic completely on the client-side, which is what I ended up doing in that case.

I bring that tale up, because Konstantinos T has a special case of anguish.

<script>
function droppy(droppy_id, max_files) {
    var droppy = new Dropzone(dropzone_name, {
         //(...)
        init: function() {
            this.on('addedfile', function(file) {
                 //(...)
                var edit_button = '<?php ob_start();
                include(__DIR__.'/dropzone_edit_button_template.php');
                $include = ob_get_contents(); ob_end_clean(); echo str_replace(PHP_EOL, '', str_replace("'", '\\\'', str_replace('"', '\"', str_replace("/", "\/", str_replace('__script__','script',$include))))); ?>
                ';
                //(...)

Here, we see a client-side JS variable named edit_button. Stare at the variable initialization. What you see before you is a dank abyss, a gaping hole with a bottom so deep that the bottom may as well not exist. Here, we stand at a precipice.

The value of edit_button comes from PHP code, executed on the server-side. The actual template comes from an external PHP file, dropzone_edit_button_template.php. But that template, the result of all the other methods called here, returns a string that may not be safe for JavaScript, like my simple bug above. Thus, the chain of str_replace calls, nested one within the other.

[Advertisement] Manage IT infrastructure as code across all environments with Puppet. Puppet Enterprise now offers more control and insight, with role-based access control, activity logging and all-new Puppet Apps. Start your free trial today!


To read the full article, please visit The Daily WTF

Saturday, November 18, 2017

People Watch Birth For The First Time

This is the first time these people watch birth, and their reactions are insane. The slow motion, the classical music, the instant nauseousness… This is a must-watch!

The post People Watch Birth For The First Time appeared first on Viral Viral Videos.



To read the full article, please visit Viral Viral Videos

Best News Bloopers October 2017

The news isn’t something that puts a smile on your face these days (was it ever though?), but this compilation is guaranteed to brighten the mood!

The post Best News Bloopers October 2017 appeared first on Viral Viral Videos.



To read the full article, please visit Viral Viral Videos

Friday, November 17, 2017

What Life In An Isolation Room Looks Like

Ever been by yourself for one hour? Probably. No big deal. But what if everything that you could set your mind to in that moment was taken away? Would it still be bearable?

The post What Life In An Isolation Room Looks Like appeared first on Viral Viral Videos.



To read the full article, please visit Viral Viral Videos

The Most Unlikely Sheep Leader

Basset hounds have many qualities, but leading sheep isn’t one that comes to mind first. This fine example proves that you can never judge a book by its cover!

The post The Most Unlikely Sheep Leader appeared first on Viral Viral Videos.



To read the full article, please visit Viral Viral Videos

Error'd: Never ASSume that You're Free from Errors

"This was in an email from Nest. I'm sure in some other font this shows a heartwarming image of fluffy bunnies frolicking in an energy saving Utopia, but instead, we get this," wrote Matthew W.

 

"Um...yeah, sure I guess?" writes Chris U.

 

Stuart L. wrote, "Looks like the weather has made an 8-bit turn for the worse."

 

"I had no idea that the success of entering my enrollment depended on whether or not my donkey was nearby," writes Ernie D.

 

Jamie S. writes, "What exactly are you trying to smuggle in, Fujitsu updater?"

 

"I'm the fastest man alive. Don't believe me? Check this out," writes John W.

 

[Advertisement] Atalasoft’s imaging SDKs come with APIs & pre-built controls for web viewing, browser scanning, annotating, & OCR/barcode capture. Try it for 30 days with included support.


To read the full article, please visit The Daily WTF

Thursday, November 16, 2017

Husky Isn’t Done With Playtime

This stubborn dog isn’t going to the park too often, so when it does–well… Let’s just say the way back isn’t very easy, for both dog and owner.

The post Husky Isn’t Done With Playtime appeared first on Viral Viral Videos.



To read the full article, please visit Viral Viral Videos

Kitten Needs Constant Attention

Cats can be your best friend or your worst enemy. When they are the former, be prepared to smother them 24/7!

The post Kitten Needs Constant Attention appeared first on Viral Viral Videos.



To read the full article, please visit Viral Viral Videos

CodeSOD: Delebation

When faced with an API or programming paradigm that requires repetitive, boilerplate code, a developer is left with two options. They may refine or adapt the API/paradigm, using the idioms of their language to make something tedious and verbose into something elegant and clear.

Or they just automate it. If you have a mile of boilerplate that’s mostly the same across the application, just generate that. It’s like copy/paste, but, y’know… automatic.

Which is why Derf Skren found this pile in their codebase:

  public abstract class ExchangeSingleData : IExchangeData
  {
    private readonly string mName;
    private readonly int mLength;

    private Dictionary<string, string> mMapValidData;
    private byte[] mBuffer;

    void AddValidValue(string name, string value) {
        mMapValidData[name] = value;
    }
    //...
    //...
  }

  public class NetChangeSign : ExchangeSingleData
  {
        public const string Plus = "+";
        public const string Minus = "-";

    public NetChangeSign()
      : base("NetChangeSign", 1)
    {
            AddValidValue("Plus", Plus);
            AddValidValue("Minus", Minus);
          }
  }

  public class BidPriceSign : ExchangeSingleData
  {
        public const string Plus = "+";
        public const string Minus = "-";

    public BidPriceSign()
      : base("BidPriceSign", 1)
    {
            AddValidValue("Plus", Plus);
            AddValidValue("Minus", Minus);
          }
  }

  public class AskPriceSign : ExchangeSingleData
  {
        public const string Plus = "+";
        public const string Minus = "-";

    public AskPriceSign()
      : base("AskPriceSign", 1)
    {
            AddValidValue("Plus", Plus);
            AddValidValue("Minus", Minus);
          }
  }

  // ... and 7 more versions of the same class

The goal of this code is so that they can prepend a “+” or a “-” to a transaction’s value. Note the mBuffer in the base class- they don’t use strings (or, y’know… numbers) to represent the transaction value, but a byte array instead. The “value” is that it lets them write a line like this:

lMessage.NetChangeSign.SetValue(GeneratePriceSign(lPrice));

Which allows the instance stored in NetChangeSign to flip that +/- based on the return value of GeneratePriceSign. Obviously, this lets the NetChangeSign instance have full control of the logic of how the sign gets set, right? I mean, each instance has its own map that contains all the allowed values, right? Well… sure, but how do they decide? Based on GeneratePriceSign… which looks like this:

  private static string GeneratePriceSign(Side aSide)
  {
    if (aSide.Equals(Side.Buy))
      return "+";
    else
      return "-";
  }

In design patterns terms, we call this “delebation”. It’s like delegation, but only one the person doing it to themselves enjoys it.

[Advertisement] Manage IT infrastructure as code across all environments with Puppet. Puppet Enterprise now offers more control and insight, with role-based access control, activity logging and all-new Puppet Apps. Start your free trial today!


To read the full article, please visit The Daily WTF

Wednesday, November 15, 2017

The Best Opera You’ll See All Year

Stop spending your hard-earned money on expensive opera or theater tickets! Just browse a bit online and you’ll find the most amazing dog operas. This is just a sneak peek into your new favourite world […]

The post The Best Opera You’ll See All Year appeared first on Viral Viral Videos.



To read the full article, please visit Viral Viral Videos

Miniature Action Sports

Miniature action sports doesn’t sound too extreme, but don’t make up your mind too fast! These fingers take you on a bloody wild ride, buckle up fam!

The post Miniature Action Sports appeared first on Viral Viral Videos.



To read the full article, please visit Viral Viral Videos

The For While Loop

Alex R. was the architect of a brand spanking new system that was to read inputs from numerous other internal systems, crunch a whole bunch of numbers, record everything in a database and spew forth a massive report file. He spent months designing the major details of the system, and more months designing the various sub-components. From all this came a variety of business-level data structures which spawned POJOs and the underlying DB tables to store assorted inputs, flags and outputs. He did a fairly thorough job of documenting all the interfaces, and provided detailed specifications for all of the next-level methods that were left as TBDs in the design.

Java Programming Cover

The project manager then assigned units of work to numerous offshored junior developers who managed to get virtually everything wrong. If they couldn't understand what a spec required, they changed the spec to reflect what they actually wrote. This caused Alex to start versioning the requirements document in order to catch the changes by the junior developers so that they could be rolled back.

After a while, the number of junior-developer-caused issues was piling up and Alex suggested some training sessions on certain ways of doing things to reduce the chaff he had to deal with. Management turned him down because they couldn't afford to take developers off of coding tasks for purposes of training; there was a schedule to keep! The fact that oodles of time were being wasted on them building the wrong stuff only to have to have why it was wrong explained and then have them go back and re-do it - sometimes 6 or 7 times - was irrelevant.

So how does one deal with idiotic management like this?

Alex thought that he had found a way to expose the problem and (hopefully) force something to be done. He would put in something (that any experienced developer should be able to spot as a simple code formatting issue) that the junior developers would never spot. The code would work correctly, but it would stymie them so that they had to first understand it before they could change it. He used the following coding style in a variety of locations throughout the codebase and waited:

  List<Widget> widgets;
  for (int i=0; i<limit; i++) {
      // Do stuff
  } while ((widgets = getWidgets()) == null);

For those not familiar with Java, the closing brace of a for-loop is followed by an implicit semicolon, so the while (expression); statement is unrelated to the for-loop. However, the junior developers didn't know this, and couldn't find any documentation on a for-while statement. Although they were able to create little test programs, they didn't understand how the while-expression controlled the for-loop (it doesn't). In this case, the underlying DAO either returned a populated list or threw an exception, so it was effectively while-false (the function call and assignment occurred once) and was just syntactic nonsense that confused the junior developers.

They couldn't recognize a Java 101 code format issue and they were sufficiently stubborn that they refused to simply ask Alex what the code was doing. They were even foolish enough to openly discuss it amongst themselves on a conference line - agreeing not to ask for help until they figured it out - before a meeting with Alex and his boss began.

After 6 weeks of them floundering around on it, the offshore manager finally brought the issue up with Alex and his boss, at which time Alex explained what running the code formatter would show. He then pointed out that since they didn't know the basics of reading Java code and preferred to waste massive amounts of time rather than just asking about something they didn't understand, it was clear that they didn't have the wherewithall to make technical decisions on a larger scale, or change the design documents as they saw fit.

He continued to point out that until the junior developers showed marked improvements in their understanding of simple code, they should concentrate on learning to do basic programming instead of trying to be architects. To this end, he again offered to have ongoing training sessions where he would attempt to raise their skill level.

Of course management backed the cheap offshore labor. It was at this point that Alex realized it was a lost cause, so he fixed all the for-while snippets and updated the latest version of the detailed design document with a new opening paragraph:

  To Whomever Inherits This System:

  Detailed design documents were created by experienced people. Management decreed
  that junior developers could ignore them, at will and without penalty. The state
  of the code reflects this.
  
  Fair Warning!

Then he committed it, secure in the knowledge that the junior developers would never bother to look at it again once he was gone. Then he gave two weeks notice.

[Advertisement] Release! is a light card game about software and the people who make it. Play with 2-5 people, or up to 10 with two copies - only $9.95 shipped!


To read the full article, please visit The Daily WTF

Tuesday, November 14, 2017

An Epic Robbery Fails Breakdown

The most compilation you’ve been waiting for. Those wankers who are trying to steal some stuff but fail miserably? This video breaks down exactly where and how did it go wrong!

The post An Epic Robbery Fails Breakdown appeared first on Viral Viral Videos.



To read the full article, please visit Viral Viral Videos

Lucas The Spider

This is Lucas. Lucas has a lot of eyes. Sometimes he doesn’t know what to do with so many eyes. Okay, bye.

The post Lucas The Spider appeared first on Viral Viral Videos.



To read the full article, please visit Viral Viral Videos

CodeSOD: One's Company

The more you learn about something, the less confident you often become in making statements about it, because you understand the complexities of the matter. If, for example, I asked you to help me refine my definition of how dates and times work, you know that many assumptions are wrong. Or if we tried to define what makes a string a person’s name, we’ll run into similar problems. This is even true for a value we’ve all probably seen implemented as a boolean value: gender. The more you learn about these subjects, the more complex and nuanced your understanding of them becomes. More and more, your answers start with, “It’s complicated…”.

Eugene was going through some code at a customer’s site, and he found that their business logic depended heavily on a flag ISCOMPANY, but there was no ISCOMPANY field anywhere in the database. There was, however, a SEX field on the customer records, implemented as an integer.

Digging through the queries, Eugene found a new approach to defining a company:

SELECT …, CASE ISNULL(c.SEX, '')
    WHEN '6'
THEN '-1'
    WHEN '9'
THEN '-1'
    ELSE '0'
END AS ISCOMAPNY, …
FROM customers
WHERE …

Like I said, it's complicated.

[Advertisement] Easily create complex server configurations and orchestrations using both the intuitive, drag-and-drop editor and the text/script editor.  Find out more and download today!


To read the full article, please visit The Daily WTF