Joke Driven Development

We have TDD (Test Driven Development), BDD (Behavior Driven Development), as well as a whole slew of other methodologies designated as belonging to the Driven Development ™ family. Heck, there’s even Fear Driven Development! I now propose a few new, and completely, irreverent methodologies that may or may not already exist (so advance apologies to anyone who actually has a serious methodology out there). Here goes, in no particular order:

  1. Abuse Driven Development – the developers are verbally abused until they produce the system that the users want, or management wants, whichever yells the loudest. Alternately, the developer or development team abuses the users or management, whichever they hate the most, until they produce the system they think everyone should want.
  2. Pizza Driven Development – management keeps the development team going 24/7 and simply throws a few pizzas in their general direction as an incentive to keep going.
  3. Beer Driven Development – explains a lot of development, actually. Often done in conjunction with Pizza Driven Development.
  4. Fantasy Driven Development – the developers dream of rewriting the system, but like most fantasies, it’s never going to happen.
  5. Wish Driven Development – the developers wish the users would state exactly what they want. The users wish the developers would just build exactly what they want.
  6. Clock Driven Development – the developer will do anything to get the system ready by quitting time.
  7. Anarchist Driven Development – the coder has no sense of order whatsoever.
  8. Rear Driven Development – the developer gets his or her rear kicked repeatedly until the software is done.
  9. Analyst Driven Development – the project is so hopeless the developers need therapy to get through it.
  10. Rage Driven Development – the developers are so angry about what the previous developers did, they rewrite the system.
  11. Fault Driven Development – whoever gets blamed for a problem has to develop the solution.
  12. Fight Driven Development – whoever loses the fight has to develop the system.
  13. Trump Driven Development – whoever has the more important boss wins.
  14. Hype Driven development – any project that is being pushed by the marketing department.
  15. Litigation Driven Development – any project initiated by the legal department, whether there’s an active lawsuit involved, or not.
  16. Aspirin Driven Development – the project is bad enough that you start off each day swallowing a couple of aspirin (after swallowing your pride, of course).
  17. Epiphany Driven Development – just after checking your code in, you have an epiphany and realize you need to do it over.
  18. Acronym Driven Development – features keep piling on as management and developers alike start arguing for all the latest technologies, even when they’re incompatible or overlap each other.
  19. Whine Driven Development – you code furiously just so you don’t have to listen to your boss or the users whine one more time about the system.
  20. Tantrum Driven Development – similar to the above, but actual crying and stamping of feet may be part of the daily routine.
  21. Bully Driven Development – similar to the last two, except yelling and baseball bats may be involved.
  22. Secrecy Driven Development – the side project that you really spend most of your time on.
  23. Feline Driven Development – while your head is turned, your cat walks all over your keyboard and turns out to be a better coder than you.
  24. Bloat Driven Development – every time a user has a brain twitch, a new feature is added to the project.
  25. Golf Driven Development – the boss got an idea from one of his/her golf buddies. He/she thinks it’s cute to yell “Fore” before giving you the bad news.
  26. Funeral Driven Development – fear of your impending doom at the hands of the users drives you forward.
  27. Shame Driven Development – you gripe and moan about some piece of code you’re looking at, then realize you wrote it three days ago. You rewrite it and hope no one notices. Later that day, you find a printout of the original code on the bulletin board, annotated with all kinds of rude comments.
  28. Easter Driven Development – you spend more time on the Easter eggs than on actual functionality.
  29. Failure Driven Development – it can’t possibly fail again, right?
  30. Buzzword Driven Development – similar to Acronym Driven Development, but this involves words you boss can actually pronounce, and sometimes even spell.
  31. Bogie Man Driven Development – more effort is spent on appeasing some vague and mysterious bogie man’s practices and procedures (real or imagined) than actual useful software.
  32. Sci-Fi Driven Development – your code reflects your taste in movies, books, and comics all too well.
  33. Permission Driven Development – the organization requires permission to do almost everything. Eventually, someone gets the idea to require permission just to turn on your computer. They decide to implement it as an internally accessible web form, complete with management approval workflow and email notifications. Nobody sees the inherent problem in this, and the company goes under.
  34. Caffeine Driven Development – coffee, tea, soft drinks, etc., and all your coding is basically done between pee breaks.
  35. Vaporware Driven Development – this is a project initiated by the marketing department. It’s always 3 months from deployment.
  36. Demo Driven Development – your manager insists on having you do one demo after another of the wonderful features in your system. Unfortunately, you never have time to actually implement any of the features.
  37. Heisenberg Driven Development – you can either get all of the features implemented, or all of the bugs fixed, but not both.
  38. Framework Driven Development – your team never saw a framework they didn’t love. New developers need at least two years just to get up to speed on all the frameworks. By that time, the frameworks have all turned over two new versions, and the developers have to keep starting over. Actual feature development on the project comes to a standstill.
  39. Frankenstein Driven Development – the entire system is component based, but most of the components don’t work very well together.
  40. Manual Driven Development (a.k.a. Documentation Driven Development) – More time is spent documenting the system than actually developing the system. You end up with a bookcase full of documentation. Ironically, the system is no more complicated than a tic-tack-toe game.
  41. Administrivia Driven Development – your team spends more time filling out forms with all kinds of details that only one person in the entire company actually cares about, and that person isn’t even in management.
  42. Revenge Driven Development – you code furiously to build a better system than your arch enemy in the company, based on a snide remark he/she may or may not have made at your expense.
  43. Pig Slop Driven Development – your coding standards are non-existent. The maintenance programmers who inherit your code want to kill you.
  44. Pun Driven Development – your code is heavily laced with intricate puns. The maintenance programmers who inherit your code want to kill themselves.
  45. Riddler Driven Development – you inherit a code base that is full of code that resembles the plot line from the original Batman TV series.
  46. Music Driven Development – You better use C-Sharp, or B-Flat Smile

Who’s Your User, Daddy?

All software is developed to be used by someone, even if only in an automated fashion (that is, without any direct interaction with the user). As such, it is important to understand who your user is, or you may (ok, probably will) find the going tough. If you are a game developer, life is good. You know who your users are – gamers! Likewise, there are many industries or types of programs where the user is a well-known entity. If you write accounting software, for example, your user is probably someone who does…uh…accounting.

I happen to work in an environment where the real user of the software is often a bit of an unknown. Well, the real user is generally known, but often we are unable to get direct feedback from the user, or the feedback loop is very tenuous and arrives filtered through other people who generally are not developers and rarely elicit the right kind of feedback or ask the users the right kinds of questions. The situation can be so backwards, in fact, that some of the developers I’ve worked with over the years are convinced the user is, in fact, the middleman who filters all that rarified feedback. Developers will say things like, “I’ll have to talk to the users about that.” Of course, they’re never going to talk to an actual user, just the business people who are in control of the project. In the real world, these people would be called stakeholders, but even in other companies, I’m willing to bet that the stakeholders are actually treated as if they were the users.

Stakeholders may feel they have deep insight into how real users will interact with the software, but, unless they spend a lot of time with real users, they are typically just guessing. That’s bad enough, however, the real problem occurs when the stakeholder has a vested interest in trying to shape the software to make their own job easier. While that’s understandable, and their opinion does matter in that respect, it doesn’t serve the actual user of the software. A common symptom of this affliction are screens that fit the stakeholders workflow, rather than the end user’s workflow, or forcing the end user to enter all kinds of data that may not be readily available to them. The stakeholder wants every possible piece of data up front, whether they truly need it or not, and these become required fields. End users will frequently come up with creative ways to get around the restrictions, which ultimately helps no one, because it ends up being extra noise to filter out.

Unfortunately, developers have no say in any of this, and most will simply do as they are told. I’m not sure what can be done to change this attitude, but it’s ultimately counterproductive, and developers like that end up revisiting things over and over as they try to tweak things and plug holes – problems that might have been averted by paying more attention to making sure the software actually was developed for the right user.

6/1/2014 Developer News Roundup

Joke:

Scientists from the University of Southern North Dakota at Hoople* have discovered a technique for extracting the glazing from the eyes of mindless bubble-gum-chewing teenagers and applying the extract to various surfaces to give them a unique shine. The scientists have tried it on a number of materials, including leather, and the results are, if nothing else, quite fascinating. Apparently, Mel Brooks has caught wind of this development and is considering using it in his next motion picture, tentatively entitled “Glazing Saddles.”
Apologies to Professor Peter Schickele of P.D.Q. Bach fame.

 

Security news:

In baffling move, TrueCrypt open-source crypto project shuts down (Very cryptic. Never say I don’t go for the obvious dumb jokes, either)

OpenSSL to get a security audit and two full-time developers (Two, count ‘em TWO! I feel more secure already. Not.)

 

Mobile, web, and cloud news:

Ramda wants to put the function in functional JavaScript (Have a rendezvous with Ramda. Arthur C. Clark must be rolling over in his grave, now.)

Tools rush in: Developer options grow for Internet of things (Get yours now, before they become obsolete in 27.5 hours)

Pop quiz: Who invented cloud computing? (Seems the answer is still kind of hazy)

PHP improvements to boost real-world app performance (Now if they would just make it more secure and actually pleasant to program…)

Mary Meeker’s 2014 Internet Trends report is a must read (Why not. I’ve got nothing better to do.)

App dev Q&A: The journey to making Famo.us real (And Famo was his name-o)

Microsoft goes public with browser development plans (More open, just without the source)

Microsoft’s new open source ASP.Net can run on Linux, OS X (ASP.NET goes Mono e Mono)

ASP.NET vNext on OSX and Linux (Some more on the subject)

Xamarin.Forms – Write Once, Run Everywhere, AND Be Native? (This makes looking at Xamarin for cross-platform development even more compelling)

RubyMotion 3.0 Sneak Peek: Android Support (on the other hand, if you only want to support Android and you like Ruby, not Java, take a look at this)

Apache Cordova 3.5.0 (New version)

Hands On with the Android Wear Developer SDK (Warning: This may wear you down)

Update: Xamarin 3 releases Apple Xcode alternative (These people are on a roll)

Microsoft shoots to shorten Internet Explorer’s long tail (After shooting themselves in the foot for so many years)

Visual Studio Now Supports Hybrid Cross-platform Mobile Development via Cordova (Shades of Dr. Strangelove – We must not allow a PhoneGap gap!)

Top 10 JavaScript traps for a C# developer (Sounds like some of these also apply to other types of non-JavaScript developers)

uncss: Find Unused CSS (Hey, you might even find Waldo!)

New standard for a faster Web finished by year end? Maybe not (I’m betting not)

 

General news:

15 trends and 15 turn-offs in app dev (Just 15 of each?)

Caliburn.Micro – Xaml made easy (Write once for all your Windows-based platforms, if you like that sort of thing)

Git 2.0 features better defaults and a kinder learning curve (Now you only need a Masters degree to git it…get it? Er, never mind, I hear someone calling me…)

Computer scientists study other computer scientists (No doubt looking for signs of artificial intelligence)

Enjoy machine learning with Mahout on Hadoop (A shout out for Mahout)

TechEd North America Highlights for App Developers (Lots of links to content from the conference)

When too much coding can kill you (No coded messages, here)

Skype shown automatically translating multilingual voice calls (Why not? What could go wrong?)

Microsoft’s New OneNote Service API Backs Free Apps for Windows, Mac OS, iOS and Android (Hmm, very OneNoteworthy)

Setting Up F# In Emacs (Emacs in the key of F#)

Coding Principles Every Engineer Should Know (Random quote: “…only good programmers can solve problems in simple, understandable ways.”)

Nitra goes Open Source! (probably because you’ve never heard of Nitra before this)

Where Is the Learning in Agile? (It was too fast and has already left the building?)

Choosing a Web Framework/Language Combo for the Next Decade (A decade worth of relevance? That’s optimistic)

Announcing Update to Productivity Power Tools 2013 (Apparently, we we’re productive enough, before)

Don’t Believe Anyone Who Tells You Learning To Code Is Easy (Really?

New Windows app development training resources now available (Please, please, won’t you build some apps?)

5/25/2014 Developer News Roundup

 

Joke:

I gave up on trying to memorize the Greek alphabet. It just makes me psi.

 

Security news:

New iOS app secures IM with ‘post quantum’ encryption (You just need to take a quantum leap of faith to trust that it works)

Microsoft will patch IE zero day – eventually (Wonderful…)

Suddenly, it’s Google vs. Samsung for Android security (About time)

6 things security pros keep getting wrong (#7: Failing to understand the first 6)

The Only 2 Things Every Developer Needs To Know About Injection (Inject some knowledge into your brain)

eBay hit with massive security breach, asks all users to change passwords (Your password now up for grabs to the highest bidder)

New Data Sheds Light on Shifting Cybercriminal Tactics

 

Web, mobile, and cloud news:

How your workout fuels the cloud (I better get working on this, myself)

Mozilla plans semi-silent updates to tug laggards onto the newest Firefox (Failure to update results in a bigger noise that sounds like it came from a biker just finishing off his 5th bowl of chili)

9 great iPad tools for IT pros (For padding around the office)

‘Do not track’? Oh what the heck, go ahead (If you don’t want to be tracked, don’t use the internet)

Couchbase brings NoSQL power to mobile apps (Now get off the couch and do something with it!)

Open source Hoodie is tailored for quick app dev (What’s next? Open source V-Necks?)

Hands on with Surface Pro 3: Lots to like, just not the price (Well, since no one is buying them, anyway…)

Who’s against Net neutrality? Follow the money (It’s a pretty short trip)

13 fabulous frameworks for Node.js (Well, who would have node?)

Ring Diver: My JavaScript game at native speeds on iOS and Android (No relation to Pearl Diver)

Welcome AppCode 3.0: UI Designer, Reveal plugin, code generations for TDD, multiple selections and more (Now with more flair)

Microsoft looks like it’s working on a new Android smartphone, the Nokia X2 (Why not? They make plenty off Android as it is)

Localizing an iOS App (Hello, app. You’re not from around here, are you?)

Bridging the Gap Between Gesture and Animation with Facebook’s Pop Framework (No, do NOT pop up THAT gesture!)

5 Common Mistakes Every New Android Developer Should Avoid (Good advice for any app platform, actually)

FunScript (Putting the functional back into fun)

Microsoft really is “all in” on the cloud, but is IT going to follow? (No, the rest of IT is still in a fog)

Saltarelle C# to JavaScript Compiler (Yet another way to avoid writing JavaScript)

The best free stock image resources on the Web (Wait! What if everything were free?)

Mobile Web So Fast Vin Diesel Wouldn’t Race It (Hopefully, your apps will be able to act better than Vin Diesel)

Understanding asm.js (Some assembly required)

Introducing the WebKit FTL JIT (Yet another JavaScript optimizer)

Why Tech’s Best Minds Are Very Worried About the Internet of Things

Improvements for ASP.NET Web Forms

 

F# news:

Property Based Testing with FsCheck (This has nothing to do with home security)

Program F# with CloudSharper everywhere (I’m still trying to figure out how a cloud can be sharp)

Mapping objects to JSON with Fleece (I’m feeling woolly already)

Will F# ever be a first class citizen? (use it, and they will come)

Stateful computations in F# with update monads (Every time I see the word monad…er…never mind)

 Who’s the most central? F# network on Twitter (A little data analysis for true geeks)

 

Other news:

Boot camp backlash: Cracks in the code academies (Who would have thought?)

Employers want Java skills more than anything else (Of course, the employer you work for, or want to work for, may have other things on their wish list)

Know this right now about Hadoop (Or else!)

Best starter programming language? 8 top picks of developers (Your opinion may vary)

10 pivotal tech shifts the experts didn’t see coming (As Yogi Berra said, Making predictions is hard – especially about the future.)

Java developers prefer JUnit, Jenkins, and Git (Until the next hot thing comes along)

Search engine aspires to be a Google for APIs (Wait, I’ve heard this one before)

You have the right to remain moronic (Not you, dear reader. You’re smart just for reading Smile)

Hello Cassandra (No, this isn’t some lame pick-up line)

GitHub rolls out the red carpet for scientists (I can’t wait to see scientists forking other scientist’s research)

We should ban the phrase “thread safe” (I agree. Let’s use “thread vault”, instead)

Does Team Size Impact Code Quality? (Fill in your own “size matters” joke here:_________)

This Google Project Lets You Program A (Simulated) Quantum Computer (Unfortunately, you can’t know whether it’s there or not there without opening the box, at which point, it’s not there)

Now that’s classic, Visual Basic [Classic] Tools for Visual Studio (For diehard fans)

Dart 1.4 Brings Deep Visibility to Run Applications (Because you really want to see the dart coming so you can duck)

Online Compilers (I’d compile a list of all the compilers, here, but clicking the link is easier)

Lambdas in C++11 (Making C++ more fun than before)

When should I write a property? (Only when you should, and never when you shouldn’t?)

Code Watch: The inner game of programming (Hint: It’s not about how many lines of code you write in a day)

Assembly Neutral Interfaces (This deserves a neutral comment)

Anti-Google rhetoric heats up in Germany amid threats of a break-up (Hmm…haven’t we been through this, before, only with Microsoft and browsers?)

Sorry, Peter Pan: Developers Can Grow Up

How Does TDD Affect Design?

5/17/2014 Developer News Roundup

Joke:

Apparently, the Spice Girls are getting back together, but they’re adding a new girl, who happens to be 74 years old. She’s going to be known as “Old Spice”.

 

Web, cloud and mobile news:

Google gets on Dart soapbox, demos move from JavaScript (Dart targets the mainstream)

What’s new in Microsoft Azure (Item #1: It’s still going)

React: Making faster, smoother UIs for data-driven Web apps (A reactionary tale)

How Microsoft’s cloud push will affect your job (Watch your back)

Facebook: MVC Does Not Scale, Use Flux Instead [Updated] (Ah, there’s the flux of the matter)

FCC pushes ahead with plan for Internet ‘fast lane’ (Let’s see how fast they can make everyone’s blood boil)

One Web hoster’s wonderfully trollish FCC protest (And something to make you smile)

Son of SOPA: The Internet under siege (Businesses on the Internet wouldn’t be so bad if it wasn’t for the business “leaders”)

12 things we hate about PHP (Just 12? Did they drop a zero or three?)

SD Times Blog: Microsoft open-sources ASP.NET on GitHub (Now with baking soda)

How Joyent debugs Node code (Welcome to the Joyent Luck Club)

Don’t Forget to Cover Your Client Side! (A.K.A., cover you backside)

Spark Micro Web Framework (Made by really small spiders)

Rethinking DOM Traversal (Traversal of fortune?)

WebComponents.org (The new old thing)

No more JS frameworks (Yes)

Introducing ASP.NET vNext

 

Security news:

Microsoft continues RC4 encryption phase-out plan with .NET security updates (I feel more secure already…or not…)

Windows 8 Is The Most Secure Version Yet: Here’s Why (It is, it really is)

Security-vendor snake oil: 7 promises that don’t deliver (It’s a very simple equation: salesperson + promise = lie)

 

Functional Programming:

Functionally SOLID 2

A simple and straight forward Single File Windows Service template for F# (Hopefully, this is serviceable)

The slow adoption of Functional Programming in banks! (They’re still waiting to see if this Internet thing is for real)

Announcing FSharp.Azure – An Idiomatic F# Azure Storage API

Kaplan-Meier Survival Analysis Using F# (Get your crash course here)

 

Miscellaneous news:

Why run SQL on NoSQL? Speed, says Splice Machine (It’s the splice of life)

Hot boss, cold boss: This tech pro just had no chance (This would be even more amusing if the guy was self-employed)

Hg Init: a Mercurial tutorial (Read it quickly)

How a Boston Hospital is Using Google Glass to Save Lives (So, there is a use for this product that doesn’t have a creepy factor to it)

It was the best of times, it was the burst of times (Just when I was feeling all happy and bubbly)

8 new tech job titles — grab ’em before they’re hot (Because on Internet time, they’ll be hot two weeks from now and obsolete in six)

Agile Testing Heresy: Are You Testing Too Much? (I feel testy, does that count?)

For Microsoft, going backwards is the new forwards, but that’s ok (As long as that last step isn’t over the edge of a cliff)

New PostgreSQL guns for NoSQL market (How about we come up with a new database system and forget all this SQL/NoSQL stuff ever happened?)

Head games: What we saw at NeuroGaming Conference 2014 (I have a headache already)

Plumber, Mechanic, Programmer (Be sure not to get your pipes all tangled up in a bunch while reading this)

Rebooting Entity Framework (Lighter, fluffier)

10 Articles Every Programmer Must Read (If you have time to remember and know the URL, etc.)

Visual Studio 2013 Update 2 (Available now)

How Gamification Drives Business Objectives (Waiter, I’ll have the Agile special with a side order of Kanban, all smothered in gamification sauce)

With CShell, C# developers can bypass Visual Studio more often (Sally sells it by the CShore)

A new API for Visual Studio Online

So Here’s Why Everyone Is Starting Sentences With The Word ‘So’ (So true)

Ask Ars: Why are some programming languages faster than others? (Better hamsters)

 

Educational news:

SD Times Blog: Fifteen toys, games and tools that teach programming (Oh, so that’s what programming is like…)

Microsoft Research launches Code Hunt, an educational Web game for learning programming (This reminded me of the old TV show Sea Hunt)

5/10/2014 Developer News Roundup

Joke:

A night watchman at a furniture wax plant accidentally fell into a vat of the wax and drowned. During the eulogy at the poor man’s funeral, his best friend summed it up: “He may not have had a great life, but he had a real neat finish.”

 

Web, cloud, and mobile news:

One now, two later: Groovy updates add Java 8 support (Grrrrr8!)

Moving your apps to the cloud? Beware the slowdown effect (Time to be cirrus about the cloud)

Microsoft Web server software closes in on Apache’s lead

 

Other news:

Oracle’s surprise win in Java API case could make it harder for developers (The not-so-good, the really bad, and the downright ugly)

Visual Studio Image Library updated, now includes VS 2013 style and is now over 10,000+ images (Imagine that)

“Learn to Code?” Meh. “Build Something?” Now We’re Talking, Says Hopscotch’s Jocelyn Leavitt. (The digital equivalent of paint-by-numbers?)

Scientific computing’s future: Can any coding language top a 1950s behemoth? (F#? Scala?)

How the ‘One Microsoft’ mission is changing Microsoft Research (Apparently, a little less research)

5/8/2014 Article Links

Joke:

I have an idea for a series of humorous decorative figurines. They would feature an old Irish couple, and in each set, the wife will be hitting her husband with some implement (log, frying pan, etc). They will be pure Paddy whack knick knacks.

 

Security stuff:

Phishing scams increasingly using mobile apps to bait victims (Phishing with bait…who would have seen that one coming?)

Flash and Java still as vulnerable as ever, says Microsoft (Of course, part 1)

Malware infections in Windows PCs tripled in late 2013, Microsoft finds (Of course, part 2)

Fishing for Hackers: Analysis of a Linux Server Attack (Now open for hacking)

Antivirus is Dead: Long Live Antivirus! (This sounds very anti-anti-virus)

When a bad day gets worse—getting hacked twice in one day (When the third time is definitely not the charm)

Don’t let the latest zero-day fool you

US Government Begins Rollout Of Its ‘Driver’s License For The Internet’

 

Cloud stuff:

OpenStack now does NoSQL (Wait, isn’t that a double negative?)

SDN secrets of Amazon and Google (Now, slightly less secret)

 

Web and mobile stuff:

Dev Q&A: RequireJS’s James Burke on the JavaScript loader’s future (Required reading)

Apple has its own JavaScript accelerator in the works (Why not? Everyone else has)

Joe Belfiore just wrapped up his Reddit AMA, here are the highlights (WinPhone lives)

What Not Dying Looks Like (50% less pasty?)

CSS Shapes 101 (Sadly, all my CSS is just as out-of-shape as I am)

How to Retain Users with Good Design (And if that doesn’t work, alcohol)

AngularJS: Factory vs Service vs Provider (There’s an obtuse joke about angular in here, somewhere, and I’ll bet it’s acute one)

JavaScript Prototypes, Scopes, and Performance: What You Need to Know (…but were always afraid to ask)

 

Other stuff:

GitHub releases free and open Atom code editor (Version 2 will be the Molecule Editor)

A case for keeping primitives in Java (Get in touch with your primitive side)

Dockerfiles in a jiffy (It’s all in the pants)

Is devops killing the developer? (Killing them softly)

Meet Betty, the Siri-Like App That Turns Plain English Into Code (I wonder how it will translate swearing)

Top 12 tech hoaxes of all time (It’s amazing how old some of these are)

Arduino Vs. Raspberry Pi: Which Is The Right DIY Platform For You? (Arduino. Now shut up and eat your Pi.)

The Conflict at the Heart of Open Source (Open-heart surgery by amateurs is a conflict)

A C# 6.0 Language Preview (Peek-a-boo! I C# you!)

Using F# and FAKE to build a SharePoint provider-hosted app (I always knew SharePoint was a fake development platform)

Sculpt Your Code In a REPL – Part One (Great…all my code has gone to pottery)

Pattern Matching – Make the Compiler Work for You (Much better than making it work against you)

Microsoft Language Stack Analogy (Comparing languages to vehicles)

Rust for C++ programmers – part 5: borrowed references (Better steel yourself for this one)

Fostering Healthy Non-Professional Relationships (Step away from the keyboard, and no one will get hurt)

Linus Torvalds Receives IEEE Computer Pioneer Award 

Why our startup failed (How things end down)

5/5/2014 Article Links

Joke:

The Irish don’t celebrate Cinco de Mayo. They do celebrate Fifth of Gin.

 

Security stuff:

Data breaches 9% more costly in 2013 than year before (this isn’t helping my feelings of insecurity about the Internet at all)

IBM rolls out new security suite, services as Target CEO’s head rolls (Hmm…bowling with CEO heads…I sense a new game idea)

11 reasons encryption is (almost) dead (It sure smells dead)

 

Web and mobile stuff:

Thanks to Tom Wheeler, the end of the open Internet is nigh 

iPhone 6 release date, news and rumors (It’s not a tumor…wait…never mind)

This AI tells you if your website is too cluttered (or you could just have your Mom look at it)

 

Cloud stuff:

Cloud Apps Soar, CIOs Take on New Role (Now with more fluff)

Run your own cloud storage for less, EMC says (…with their help, of course)

 

Microsoft stuff:

Microsoft Is Technology’s Comeback Kid (No kidding?)

Microsoft’s decision to patch Windows XP is a mistake (darned if they do, darned if they don’t)

Microsoft reissues botched Windows 8.1 Update KB 2919355 (hopefully, this doesn’t bring on another round of botulism)

High-tech Gaming Is Giving K-12 STEM Education A New Way To Play: A First Person Perspective by Corinth CEO Ondrej Homola

Bing Ads Jump Start (Add some bada boom to your bada bing)

Make Windows 8 Games with Construct 2 (Pro Construct advice)

Building Blocks: Initialize() C#, .NET, & JavaScript Dev Skills

Unity 3.5 RTW: Now with more Peace, Love, and Rock ‘n’ Roll (Wasn’t there something about drugs and something else in there?)

Twenty C# Questions Explained (Because they don’t feel like answering any more)

 

Other stuff:

Hadoop, Python, and NoSQL lead the pack for big data jobs 

Graphic Design Tips for Game Apps 

Not Your Father’s Java: An Opinionated Guide to Modern Java Development, Part 1 (In other words, check your own opinions at the door)

Experiencing Silicon Valley overload? For help, look inward 

Apple, Facebook, others defy authorities, notify users of secret data demands 

79 Percent of IT Administrators Want to Quit Due to Stress (The remaining 21% work for insurance companies)

Three Types of Comments You Can Stop Doing Right Now!

All right, step away from the double slashes and no one will get hurt! Over the years, I’ve seen plenty of bad commenting practices, and I’ve been guilty of doing some of these, myself, but it’s time for us all to just move on and simplify our code in the process. Consider each of these a type of smell in the code, to the point where the code can smell like New York City after a month-long sanitation strike.

Here they are, listed in no particular odor (pun intended):

 

Commented out code

Why, oh why, do we need to keep commented out code in our production code? Even in the days before source control was common, this was an insidiously evil way to mire down maintenance programmers, or even yourself. Now that we use source control on a regular basis, there really is no need to keep hanging onto this stuff.

The problem is, most programmers will just leave commented code right where it is. Partly, this is simply out of fear – fear that somehow the code has meaning, it might still be needed, or it’s something someone was working on. Another reason programmers won’t delete the unneeded stuff is they simply don’t feel it’s their responsibility (“if it ain’t broke, don’t fix it”). New programmers will think that leaving in commented out code is some kind of standard, and they will start doing it all the time, as well. After a few years, some files may consist of almost as much commented out code as real code, if not more.

The fact is, commented out code doesn’t do anything, so it’s really just visual noise. It makes real code harder to read. Commented out code shows up in searches, which can cause a little extra confusion. It also makes it a bit more difficult to do code compares.

So, just say no to commented out code. Go ahead, rip it out. No one will miss it. If anyone truly needs to reinstate it some day, it’s right there in source control. They can copy-paste it right back where it was, and probably discover all over again why it was commented out in the first place.

 

The historical marker comment

Here’s an example of this type of comment:

if (index < maximum) // Added 1/1/2014 XYZ
{
...
}

These comments are completely unnecessary, assuming you’re using source control. Then, we can see who to praise or blame, as the case may be. As with commented code, this stuff can really start dragging down the readability of the code, without adding a single useful tidbit of information about the code.

 

End-of-block comments

These comments can be found decorating the end of do, if, while, for, foreach (or the equivalent), enum, struct/type, switch/select statements, and even methods or functions. If you’re not sure what I’m talking about, pay attention to the comment at the end of the while statement:

while (index < 100)
{
// Do some stuff for the next 2000 lines…
index--;
} // while (index < 100)

 

Maybe you really do need to see that comment to let you know when your 2000-line while loop is finally over, but if that’s why you’re doing it, there are now two reasons why we’re going to send you to bed without your video games, your iPod, your Droid, or your quad-copter.

The bottom line is, if you keep your methods and your block statements short, it should be no problem for the average programmer to see both where a block starts, as well as where it ends.

These comments actually add more density to the code, making it harder to read. On top of that, they do not add any new knowledge to what or why the code is doing what it’s doing. Worse, when people change the stuff going on in the top statement, they frequently forget to update the comment. And if you have nested block statements and discover you need to swap things around? Yep, you have to make sure the comments go along for the ride. In other words, using these comments also adds to your maintenance woes.

Keep your code blocks short, and just get rid of these comments. After a while, you’ll find you don’t miss them.

5/3/2014 Article Links

Joke:

How do you know when a politician is lying? His lips move.

 

Security stuff:

Microsoft fixes IE zero-day flaw (Even for XP)

Heartbleed postmortem: OpenSSL’s license discouraged scrutiny (There was a license?)

This is why companies are still afraid of the cloud (Big puffy things scare us)

 

Web and mobile stuff:

Google aims for purity with Android Silver (Wake me up when they get to platinum)

Google mines fool’s gold with Android Silver (Apparently, they’re using Pyrited software…)

Google deals made Android phones more expensive, lawsuit claims (Gee, you’d think they were trying to actually make money…)

Microsoft OneNote for iPhone, Mac receive major updates (On another note…)

Windows Phone 8.1 to get a file manager (It’s about time they did something to manage Windows Phone)

Yahoo is the latest company ignoring Web users’ requests for privacy (Apparently, they don’t give a Yahoo)

A Massive Market Opportunity Awaits In Analyzing The Internet Of Things (Just keep this stuff away from the toilet, please. I don’t want any data dumps from that source.)

5 Clever Ways to Increase Mobile App Reviews (Better start working on the next five ways after everyone starts doing these things)

 

Other stuff:

Tech companies get a little less silent about government data collection (I am mouse. Hear me roar.)

The 9 Most Difficult-to-Fill IT Roles (Number 10: Cinnamon Role)

HP expects first x86 Nonstop systems next year (You can’t stop the Nonstop Express)

IBM creates world’s smallest magazine cover with microscopic 3D printer (Because people read so little these days)

SanDisk unveils a monster 4TB SSD (And now we all want one…or 16)

Jury finds Samsung infringed some Apple patents, must pay $120M in damages (What is that? Like $1 for every phone sold…if that?)

Here’s whom to blame for those terrible tech buzzwords (They’re naming names)

Fifty Years of BASIC, the Programming Language That Made Computers Personal (A BASIC history lesson)