CodeSOD: Concrapenate Strings
The Daily WTF
by Remy Porter
20h ago
As oft discussed, null-terminated C-style strings are an endless source of problems. But there's no problem so bad that it can't be made worse by a sufficiently motivated developer. Today's rather old code comes from Mike, who inherited an old, MFC application. This code is responsible for opening a file dialog, and the key goal of the code is to configure the file filter in that dialog. In MFC, this is done by passing a delimited string containing a caption and a glob for filtering. E.g., "Text Files (.txt) | *.txt" would open a dialog for finding text files. char szFileNa ..read more
Visit website
Error'd: Believe It Or Not
The Daily WTF
by Lyle Seaman
3d ago
This week we have a special visit from a mythical beast: the snarklemma. But first, a non-error Error'd. Obsessive Optimizer Ian K. "Walmart's nationwide network of warehouse stores means they can save time and money by shipping locally. FedEx has them covered: Their nationwide shipping fleet determined the shortest path from Houston to its largest suburb goes via Georgia." Not the shortest path, nor the fastest, but surely the cheapest one that meets the delivery date requirement. It's probably not an error, and I believe it, but I still can't believe it!   Possibly our most faithful ..read more
Visit website
CodeSOD: A List of Mistakes
The Daily WTF
by Remy Porter
5d ago
Yesterday we talked about bad CSS. Today, we're going to talk about bad HTML. Corey inherited a web page that, among other things, wanted to display a bulleted list of links. Now, you or I might reach for the ul element, which is for displaying bulleted lists. But we do not have the galaxy sized brains of this individual: <table style="font-family: Verdana;"> <tr> <td valign="top"> • </td> <td> Google <br /> <a href="http://www.google.com" target="_blank">http://www.google.com</a> </td> ..read more
Visit website
CodeSOD: Classical Design
The Daily WTF
by Remy Porter
6d ago
There is a surprising amount of debate about how to use CSS classes. The correct side of this debate argues that we should use classes to describe what the content is, what role it serves in our UI; i.e., a section of a page displaying employee information might be classed employee. If we want the "name" field of an employee to have a red underline, we might write a rule like: .employee .name { text-decoration: underline red; } The wrong side argues that this doesn't tell you what it looks like, so we should have classes like red-underline, because they care what the UI element looks like, n ..read more
Visit website
CodeSOD: A Small Partition
The Daily WTF
by Remy Porter
6d ago
Once upon a time, I was tuning a database performance issue. The backing database was an Oracle database, and the key problem was simply that the data needed to be partitioned. Great, easy, I wrote up a change script, applied it to a test environment, gathered some metrics to prove that it had the effects we expected, and submitted a request to apply it to production. And the DBAs came down on me like a sledgehammer. Why? Well, according to our DBAs, the license we had with Oracle didn't let us use partitioning. The feature wasn't disabled in any way, but when an Oracle compliance check was pe ..read more
Visit website
CodeSOD: A Top Level Validator
The Daily WTF
by Remy Porter
1w ago
As oft stated, the specification governing email addresses is complicated, and isn't really well suited for regular expressions. You can get there, but honestly, most applications can get away with checking for something that looks vaguely email like and call it a day. Now, as complicated as the "accurate" regex can get, we can certainly find worse regexes for validating emails. Morgan did, while on a contract. The client side had this lovely regex for validating emails: /* Check if a string is in valid email format. Returns true if valid, false otherwise. */ function isEmail(str) { v ..read more
Visit website
Error'd: Paycheque
The Daily WTF
by Lyle Seaman
1w ago
There are an infinite variety of ways to be wrong, but only very small number of ways to be right. Patient Peter W. discovers that MS Word is of two minds about English usage. "Microsoft Word just can't seem to agree with itself on how to spell paycheck/pay check." Faithful readers know it's even worse than that.   Slow Daniel confused me with this complaint. He writes "It seems that the eclipse has reversed the flow of time for the traffic-free travel time." I don't get it. Can readers explain? The only WTF I see here is how much faster it is to walk than to drive 2 miles. Franconia i ..read more
Visit website
CodeSOD: To Tell the Truth
The Daily WTF
by Remy Porter
1w ago
So many languages eschew "truth" for "truthiness". Today, we're looking at PHP's approach. PHP automatically coerces types to a boolean with some fairly simple rules: the boolean false is false the integer 0 is false, as is the float 0.0 and -0.0. empty strings and the string "0" are false arrays with no elements are false NULL is false objects may also override the cast behavior to define their own everything else is true Honestly, for PHP, this is fairly sane and reasonable. The string "0" makes my skin itch a bit, and the fact that the documentation page needs a big disclaimer warning tha ..read more
Visit website
CodeSOD: Terminated By Nulls
The Daily WTF
by Remy Porter
1w ago
Strings in C are a unique collection of mistakes. The biggest one is the idea of null termination. Null termination is not without its advantages: because you're using a single byte to mark the end of the string, you can have strings of arbitrary length. No need to track the size and worry if your size variable is big enough to hold the end of the string. No complicated data structures. Just "read till you find a 0 byte, and you know you're done." Of course, this is the root of a lot of evils. Malicious inputs that lack a null terminator, for example, are a common exploit. It's so dangerous th ..read more
Visit website
Two Pizzas for ME
The Daily WTF
by Bobby T. Johnson
1w ago
Gloria was a senior developer at IniMirage, a company that makes custom visualizations for their clients. Over a few years, IniMirage had grown to more than 100 people, but was still very much in startup mode. Because of that, Gloria tried to keep her teams sized for two pizzas. Thomas, the product manager, on the other hand, felt that the company was ready to make big moves, and could scale up the teams: more people could move products faster. And Thomas was her manager, so he was "setting direction." Gloria's elderly dog had spent the night at the emergency vet, and the company hadn't grown ..read more
Visit website

Follow The Daily WTF on FeedSpot

Continue with Google
Continue with Apple
OR