Recent Articles

Jan 2025

Consultant Conversions

by in CodeSOD on

Janet's company had a glut of work, and thus didn't have the staffing required to do it all. It didn't make sense to hire on any new full-time employees, so they went the route of bringing on a few highly paid consultants, specifically ones who specialized in one specific problem: talking to a piece of hardware purchased from a vendor.

The hardware in question was a scientific which communicated over a serial line. This device provided a lot of data that represented decimal values, but that data was not encoded as an IEEE float. Instead, they used two integers- one for the data, and one representing the number of decimal places.


Secret Horror

by in Error'd on

Casanova Matt swings for the fences. "OKCupid (they don't capitalize the K, but I do, for propriety) must have migrated their match questions through Excel during a recent site revamp. These answers should obviously be 1-2 and 3-4, but maybe I could have 2 with Jan and 4 with Margaret (Mar to friends)."


Halfway to a Date

by in CodeSOD on

Roger took on a contract to fix up a PHP website. During the negotiations, he asked some questions about the design, like, "Is it object-oriented or more procedural?" "No, it's PHP," said the developer.

Which about sums it up, I suppose. Have some date handling code:


Brushing Up

by in CodeSOD on

Keige inherited some code which seems to be part of a drawing application. It can load brush textures from image files- at least, sometimes it can.

static public Brush GetImageBrush(string serviceCode, string imageName, string language)
{
	Brush BorderChannelGroupBrush;
	BitmapImage image = null;

	int point = imageName.LastIndexOf('.');
	string languageImagename = imageName.Substring(0, point) + "-" + language + imageName.Substring(point);

	try
	{
		image = FrameWork.ServicePageImageUrlOnContentServer(serviceCode, languageImagename);
	}
	catch { }

	if (image == null)
	{
		try
		{
			image = FrameWork.ServicePageImageUrlOnContentServer(serviceCode, imageName);
		}
		catch { }
	}

	if (image != null)
	{
		BorderChannelGroupBrush = new ImageBrush(image);
	}
	else
	{
		BorderChannelGroupBrush = Brushes.White;
	}
	return BorderChannelGroupBrush;
}

The Whole Thing

by in Representative Line on

David was integrating a new extension into their ecommerce solution, and found this un-representative line:

$this->model_sale_manageorder->exportOrder(substr($selectid,0,strlen($selectid)-1));

Irritants Make Perls

by in CodeSOD on

Grün works for a contracting company. It's always been a small shop, but a recent glut of contracts meant that they needed to staff up. Lars, the boss, wanted more staff, but didn't want to increase the amount paid in salaries any more than absolutely necessary, so he found a "clever" solution. He hired college students, part time, and then threw them in the deep end of Perl code, a language some of them had heard of, but none of them had used.

It didn't go great.


Not Impossible

by in Error'd on

Someone online said we run a Mickey Mouse outfit. Angered beyond words, we consulted [email protected] and they threatened to find that guy and sue him. So to anyone else who thinks this column is Goofy, you should know that the world's definitive authorities insist that it absolutely is not.

But these guys? This website actually is kind of goofy, according to resolutioner Adam R. who crowed "Someone forgot to localize some text for the new year!"


Crossly Joined

by in CodeSOD on

Antonio's team hired some very expensive contractors and consultants to help them build a Java based application. These contractors were very demure, very mindful, about how using ORMs could kill performance.

So they implemented a tool that would let them know any time the Hibernate query generator attempted to perform a cross join.


My Identification

by in CodeSOD on

Bejamin's team needed to generate a unique session ID value that can't easily be guessed. The traditional way of doing this would be to generate cryptographically secure random bytes. Most languages, including PHP, have a solution for doing that.

But you could also do this:


Generate JSON

by in Representative Line on

Today's anonymous submission is a delightfully simple line of JavaScript which really is an archetype of a representative line.

$json = "{";

Mr Number

by in CodeSOD on

Ted's company hired a contract team to build an application. The budget eventually ran out without a finished application, so the code the contract team had produced was handed off to Ted's team to finish.

This is an example of the Ruby code Ted inherited:


Monkeys

by in Error'd on

Happy 2025 to all our readers. I can already tell this year's columns are going to be filled with my (least) favorite form of WTF, the impossible endless gauntlet of flaming password hurdles to jump over or crawl under. Please comment if you know why this week's column has this title and why it doesn't have the title Swordfish.

Peter G. starts off our new year of password maladies with a complaint that is almost poetic.
"Between desire and reality.
Between fact and breakfast.
Between 8 and -6:00.
Madness lies, lies, lies..."


intint

by in CodeSOD on

Ash's company outsourced to an offshore vendor.

This is an example of what they got back:


Y2K25

by in Editor's Soapbox on

Twenty five years ago today, the world breathed a collective sight of relief when nothing particularly interesting happened. Many days begin with not much interesting happening, but January 1st, 2000 was notable for not being the end of the world.

I'm of course discussing the infamous Y2K bug. We all know the story: many legacy systems were storing dates with two digits- 80 not 1980, and thus were going to fail dramatically when handling 00- is that 1900 or 2000?