Recent Articles

Feb 2016

Bidding on Security

by in Feature Articles on

Let's talk about Javascript.

Like just about every modern language, Javascript is based on C-syntax. That means when you look at a piece of Javascript, it should look pretty familiar: braces to denote block scope, semicolons to terminate lines, square brackets for arrays and dot notation for objects. The usual stuff.


Getting More than you Bargained for

by in Error'd on

Ygor L. wrote "Awesome! Git found three more files than I thought that I needed."


The Triple Threat

by in Tales from the Interview on

Interviews are bidirectional in that you are supposed to be culling as much information about the prospective team, co-workers and management as possible, in the same way that they are trying to size you up.

There are all sorts of interviewing styles; the reasonable back-and-forth conversation that actually allows you to learn about each other, the written test to see if you can do a ten line program that you had as a homework assignment back in CS102, the keep-guessing-until-you-come-up-with-the-solution-I'm-thinking-of torture test, and so on. However, this tale centers on an interviewer trying so hard to come up with the perfect question, that not only was unanswerable, but there was no way for the interviewer to judge if any answer given was correct.

WWII pamphlet warning soldiers against Tamaro, Mosquitos and Japanese Soldiers

Hero on the Half Shell

by in CodeSOD on

Melissa’s co-worker needed to write some Python code to kill an external process. There are some third-party modules, like psutil that can solve that problem, but companies like Initech tend to put lots of obstacles along the path of bringing third-party code into your applications.

Without third-party tools, you’re stuck “shelling out”. Using built-in Python functions like os.system or the subprocess module. This lets you run commands like ps and kill from inside of your Python program. It’s inelegant, but it works just fine. There’s certainly nothing wrong with it.


Thrilling Tales of Software Development: The Eighth Man

by in Feature Articles on


Random Ruby

by in CodeSOD on

Corindons rose et pourpre (20 mm) var. rubis (Pakistan)

Peri, the new intern, was proving her worth as a programmer rapidly. She was great with finding clever solutions to problems, and she didn't bother the more senior devs too often while doing it: a boon, as they were trying to get their own work done.


Questionable Judgement

by in Error'd on

"Definitely memorable, but I'm not so sure about the question," writes Shish.


Authorized Users

by in CodeSOD on

“Hey, since Jack quit, you could add Jane to the investigation users?”

William M supported one piece of a large, complicated intranet application used by auditors as part of investigations into “events” within the organization. The overall audience is small, and the purpose of the application is mostly to document the process of the investigation. Since it’s so niche, it doesn’t even have a screen for managing user accounts- the users raise a ticket and rope in developers to manage it.


Website Hacker

by in Feature Articles on

Test Case Added

An investment bank had just completed development on a new digital retailing platform. Daniel was assigned to a cross-functional automated test team, gearing up to test the platform's web application—or at least trying to. Charlie, a veteran manual tester from QA, had been vocal in his opposition.


Safely Configured

by in CodeSOD on

Configuration files are, well… files. File operations are “risky”- there’s a lot of reasons why they might fail, and we have to be prepared to handle those execptions.

For example, maybe you’ve written an application that reads a configuration file at launch. If, for some reason, it failed to load that config, you’d need to deal with that. If the configuration were just some minor settings, you might choose to fallback to some reasonable defaults. If, on the other hand, the configuration contained important security settings, you would probably want to quit the application, or maybe fallback into some “safety” mode.


A Laser Storm of Family Fun

by in Feature Articles on

Ben was half of the two-man IT department at Bob’s Family Fun Center. It was a popular local place for kids and adults alike to come get wild in go-carts, blast each other in laser tag, and spend copious amounts of tokens to win cheap plastic crap with tickets from arcade games. Bob the owner employed his nephew Ted as the “head of IT”. All it took to qualify Ted for the job was helping Bob out with a home computer problem once.

محیط بازی.JPG


The Errors Mean that it's Working

by in Error'd on

"After all, it's the courage to install that counts," writes Aaron


Unselected

by in CodeSOD on

In the movie Man of the Year, Robin Williams plays a Jon Stewart-esque comedian who runs for President of the United States. He wins the general election due to a programming glitch in some e-ballot machines deployed nationwide.

In Belgium, as Adrien F. can attest, this very nearly happened.


Overpowered

by in Feature Articles on

Mike had a different perspective on wiring and cable management- because he worked at a factory which made wires and cables. It was the early–90s, and he was in charge of babysitting a couple of VAXes and their massive, 85lb hard drives. It was an easy job: the users knew the system and needed very little support, the VAXes were practically unstoppable, and the backup battery system could keep the entire thing running for over an hour.

The computers supported HR and accounting, which meant as the year ticked towards its end, Mike had to prep the system for its heaviest period of use- the year end closing processes. Through the last weeks of December, his users would be rushing to get their reports done and filed so they could take off early and enjoy the holidays.


Keeping Regular

by in CodeSOD on

Regular expressions can create new problems. Like an industrial drill, they’re extremely powerful- and potentially destructive. They’re expensive, they’re cryptic, but can be extremely concise.

For example, Jessica is reimplementing some C# code written by another developer. This developer was never interested in being concise, and instead favored being “clever”. For example, this developer had an array of strings, and needed to remove any non-word-characters from each string.


Just Check The Notepad

by in Feature Articles on

Icon-notepad

As the last deployment script ran to completion, Michael sat back in his chair and let out a small sigh of relief.


An Unusually Childish Debate

by in Error'd on

"Hilarity ensued when, during a recent political debate, the subtitles used by the Swedish state television came, not from authorized subtitlers of the debate, but rather the neighboring children's channel," Jonas writes.


Log of String

by in CodeSOD on

Zrywka drewna 776

The English language contains words with multiple and often contradictory meanings. A dress, for example, is only one of many items you could put on while dressing yourself. Meanwhile, if you want to wear pants instead, you should avoid pantsing yourself, as that would be counter-productive.


The Abstractions Conference: Pittsburgh

by in Announcements on

Back when we were setting up The Daily WTF: Live, I gave a shout-out to the Pittsburgh tech community group, Code & Supply. They’ve been a great way to network with local developers, dev-opsers, designers, and more, ranging from the seasoned vets to those just cutting their teeth on IT. I’m a huge fan of their events, and I only wish I could make it to more of them.


Freelanced

by in Feature Articles on

Being a freelancer is hard. Being a freelancer during the downturn after the Dot-Com bust was even harder. Jorge was in that position, scrambling from small job to small job, fighting to make ends meet, when one of his freelance clients offered him a full-time gig.

Carol, the customer, said “Jorge, we’re really short-handed and need help. We’d like you to start on Monday. You know PHP, right?”


High Performance Memory Allocation

by in CodeSOD on

Jamie has a co-worker who subscribes to the “malloc is slow” school of thought. Now, for most programs, it’s fine, but Jamie works on a high-performance computing system operating in a massively parallel configuration, so there are portions of their application where that philosophy is completely valid.

In this case, however, the code Jamie’s co-worker wrote is in their message handling layer. There’s really no reason to pool buffers there, as the performance gain is practically non-existent based on the frequency of buffer allocation. That doesn’t change Jamie’s co-worker’s opinion though- malloc is slow.


Dude, Where's My Hard Drive?

by in Feature Articles on

Hard disk head crash

What, again? Michael stared at the Explorer window in disbelief. The free disk space bar was glowing red, and the text underneath reported that his half-terabyte system partition had a measly few gigs left before filling up.