Categories
Programming

Introducing: LCS – Least Crappy Solution

I’d like to propose a new term for everyone in engineering and computer science professions to adopt:

LCS
— abbreviation for Least Crappy Solution

  1. A solution or answer that was selected not because it met all requirements but because it was the option that was the least offensive or subject to the least amount of failure.

Lets be honest, it’s a pretty common thing we all talk about and deal with. So lets just coin this term and simplify things. We’re constantly forced to decide between bad options, yet we don’t seem to have a great term for it. You can just say the abbreviation and it will be obvious to all regarding what it’s about.

So lets go ahead and spread the word. LCS means “least crappy solution” and is perfect, or should I say the LCS to referrer to this situation.

Categories
Around The Web Programming

Double Entendre Identification

Here’s an interesting paper (PDF) on Double Entendre Identification, in particular “that’s what she said“. It’s pretty interesting and likely one of the only places you’ll ever read about noun, adjective and verb sexiness.

Categories
Programming

Remote Programming

From the BBC:

Wanted: 12 programmers to live on a remote tropical island for two months to do nothing but write code.

Applicants are being sought for the coding jamboree that will take place on an as yet un-named island.

Those applying will have to submit a proposal explaining what they will work on during the hackathon.

They will also have to complete a psychological evaluation to show they can live in harmony with other coders for the duration of the event.

Part of me thinks this would be a pretty cool way to just focus on whatever project you’re doing. Another part of me thinks island fever would set in after a few weeks. It’s one thing to not be distracted for a large chunk of the day. It’s another thing to pretty much remove yourself from it all for 2 months.

Categories
Programming

Why Airplane Bathrooms Have Ashtrays

Everyone has seen that airplane bathrooms still have ashtrays, despite smoking being banned on flights for almost a generation now. Engineering Infrastructures For Humans has a great blog post explaining why (spoiler: because some people will still smoke). Even greater is the takeaway for anyone who builds anything:

You don’t engineer your systems with the belief that none of your computers will ever break. That’s insane; you KNOW they’re going to break. So don’t assume that your users will never break the rules. Build in graceful failure as often as possible, whether you’re designing a user interface or a security policy.

Airplanes are actually quite redundant in almost every respect from human error to mechanical failure. They are, generally speaking the gold standard for engineering.

Categories
Programming

Quality Trumps Speed

Interesting perspective from Take Two CEO Strauss Zelnick reported by Ars:

During a conference call accompanying today’s earnings report, Take Two CEO Strauss Zelnick attributed the company’s inability to reach its revenue and profit goals last year to “slippage”—what you or I might simply call “delaying games.” He insisted multiple times that putting off marquee titles until they’re really fully ready is the best way for the company to ensure long-term growth, even though such delays might sometimes lead to disappointing-looking numbers in the short term.

He’s right. These days software (both the printed disks and the web) have shifted from a model of pushing a quality product out the door to pushing something out the door as quick as possible. The reality is customers only care about the quality products.

Truth is customers generally never know how long it took you to build something. It could be 10 years, it could be an hour. They just look at the quality and utility of what you’ve done to make their decision. If you’re short on time it’s because you’re too late to put a vision together, or you’re short sighted with your product. Shipping a poor product because of those failures doesn’t make up for it. Fixing strategy and vision to give enough lead time to construct it is the proper fix.

I can’t think of anything that succeeded because it quickly went through development. Ever. Even being first to market doesn’t guarantee success. Friendster went bust. Yahoo went bust. Customers have little loyalty beyond a few cult elitists (Apple fans, BMW drivers for example). I can think of quality products “years in the making” that succeeded. Being first doesn’t mean you win. Being the best means you win.

Perhaps it’s time to stop fearing becoming the next Duke Nukem’ Forever.

Categories
Programming Web Development

PHP 5.4 And Short Syntax