Up to Newsletter Index

May 2011 Newsletter



Quotable Quotes


There are no secrets to success. It is the result of preparation, hard work and learning from failure.  –Colin L. Powell


Any process that tries to reduce software development to a "no brainer" will eventually produce just that: a product developed by people without brains.  –Dave Thomas and Andy Hunt, Cook Until Done


A man always has two reasons for doing anything: a good reason and the real reason.  –J. P. Morgan


Neither proofs nor tests can, in practice, provide complete assurance that programs will not fail.  –John B. Goodenough and Susan L. Gerhart, Toward a Theory of Test Data Selection


The superior man understands what is right; the inferior man understands what will sell.  –Confucius


To forgive is to set a prisoner free and discover that the prisoner was you.  –Lewis B. Smedes


Return to top


Software Development Process and Methodology

Article:  Technology Trends 2011

Deloitte consulting has released a new report on 10 disruptive technology trends that they expect to have significant impact on the enterprise over the next 18 months.  Five of the trends are "re-emergent" type and all of them focus on natural convergence between business and IT.



Article:  Stewardship, not ownership: It's time for IT to give up on control

This is an interesting essay about the inevitable changing role of IT as technology becomes commoditized.  The author suggests that IT needs to adapt in how to better support business users.



Article:  Shifting Visions And Agile Missions

In this article, the author posits that agile approaches have caught on in almost all areas of business, except management, and that this is a weakness that needs to be addressed.  He says that high-level organization missions and visions need to be adaptable to changing market demands and influences.



Article:  Will the Rise of Javascript Mean the End of LAMP?

This article makes the stimulating proposition that the rise of Javascript, especially on the server side (e.g., node.js) is making the tiered application stack, such as LAMP, irrelevant.  The author says that we are entered the so-called Javascript age (Web 3.0?) where event streams are the focus.



Article:  The Framework Myth

Although code reuse doesn't get as much discussion as it has in the past, IT management often still looks for how to get more mileage out of code.  This author gives some good warnings and advice about one particular trap in this domain:  the use of frameworks.  He doesn't say that you shouldn't use frameworks, but simply that they don't provide any benefit in terms of code reuse and generally developing your own in-house framework doesn't pay off.



Article:  Still No Silver Bullets

This is a very interesting article that points out while agile methodologies have some great benefits, no methodology will provide success and value unless management is committed to it and to forging the necessary organizational change to succeed—with or without agile.



Article:  Agile and the Crutches of False Confidence

One of the key principles that underpins agile techniques is doing the minimum possible to succeed and then iterating to enhance and improve.  However, since these techniques are new, they can cause unfamiliar cognitive biases that give use false sense of security about the stability and success of our processes.



Article:  Agile software development recommendations for users and new adopters

This article provides some nice perspectives on the important concepts of agile development for those who are just starting out and for those who have been using agile and want to continue to improve.  Either way, these are some good points and refreshers about the key elements of agile.



Article:  Why Can't Developers Estimate Time?

As agile methodologies take deeper root in organizations, it seems that the emphasis on developing skills at effort and task estimation are increasing accordingly.  This article explains some of the difficulties that developers have with providing accurate estimates.  And some folks advocate abandoning estimation altogether.



Article:  Code quality matters to the customers. A lot.

Sometimes, technical debt and application architecture/infrastructure enhancements take a back-seat to application functionality enhancements.  This author makes some good arguments for why code quality should matter to your customers and how to present the case for moving such work up the priority list.



Return to top


Software Testing & Quality

Article:  Using Mind Maps for Test Planning

Lisa Crispin provides some insightful and practical advice on using mind maps as a tool for planning your test strategy and test cases.



Article:  Agile Thinking instead of Agile Testing

This article challenges the notion that agile testing is somehow different from "traditional" testing and that the important adjustment for testers to make, just like anyone else involved in agile methodologies, is to adopt the agile mindset.



Presentation:  An introduction to Hypothesis Based Testing

This presentation outlines a new software testing approach (methodology) that the author calls hypothesis-based testing.  The basic premise behind this is that you define your testing goals/objectives up front and use those to drive your testing activities.  Looks like an interesting concept and probably is most valuable as one tool in your testing toolbox.



Article:  Eradicating Non-Determinism in Tests

Automated regression test suites are a valuable tool for avoiding unintended changes to your application.  However, if the test sometimes pass and sometimes fail, they don't do anyone any good.  Martin Fowler presents remedies for the common causes for non-determinism: lack of isolation, asynchronous behavior, remote services, time, and resource leaks.



Return to top



Tutorial:  Let's Play TDD

Test-driven development (TDD) is one of the great tools of agile development that can really make a difference in both productivity and quality of development.  But it's also a difficult concept and technique to grasp.  This excellent and extensive video series, supplemented by articles, shows exactly how to do TDD using relevant and not overly simplistic or contrived examples.



Tutorial:  Sorting algorithms as dances

I had difficulty deciding whether this item should go here or in the Just For Fun section below…  Anyway, if you have had trouble visualizing some of the common sorting algorithms, maybe these videos where they are performed by dancers will help.



Tutorial:  Mobile development 101: What you need to know

As mobile applications become more pervasive, this 8-part guide gives you a good conceptual framework for how to adapt from either desktop application or "conventional" web development.  It is essentially platform-agnostic and focuses on concepts rather than technical details.



Reference:  NoSQL Introduction and Overview

With all of the hype surrounding NoSQL and the explosion in the number of NoSQL databases, it's difficult to know what's really going on in this space.  This 120-page academic paper provides a detailed overview of the technology, the types of NoSQL databases, and gives some examples of application of specific platforms.  Or perhaps the future is really a blend of SQL and NoSQL ("CoSQL" and "NewSQL")?



Tutorial:  Closures explained with JavaScript

If you are learning about functional programming, one of the core concepts is the idea of a closure (sometimes called a lambda expression).  For me, this was quite a tricky idea.  This article uses some great explanations with excellent examples from JavaScript to illuminate the topic.



Return to top


Career Development/Miscellaneous

Article:  Four great questions to ask in a technical interview

If you are looking for a new job, you want to be well prepared for interviews.  One of the things to prepare is to have some good questions to ask the interviewer.  This article has some really excellent questions to help get a feel for the organizational culture.



Article:  The Programmer Salary Taboo

Most people agree that it's not polite to discuss sex and your salary in polite conversation due to the possible angst or embarrassment it could cause.  But this often leaves you in the conundrum of not knowing whether you are making what you are worth or how much others at different companies make.  This discussion thread runs the gamut about opinions on how to handle this difficult situation.



Article:  Higher education:  The latest bubble?

One of the memes currently making the rounds, mostly based on an essay by entrepreneur Peter Thiel (PayPal co-founder), is that higher education (especially in America) is the latest "industry" to face a bubble.  This article (and some follow-on commentaries) says that progress in technology may reduce need to "high-end" jobs and that as a society we need to re-think what education means and how we teach skills important for the 21st century.  For example, is the PhD the right approach?



Article:  2010 ACM International Collegiate Programming Contest World Finals Problems

Want to see how you’d match up against the top college programming teams from around the world?  These are the problems for the championship round for 2010, which was dominated by teams from China and Russia.



Article:  The High Cost of Complaining and How to Stop It

With the stress of work and the protracted recession, it seems like many folks (myself certainly included!) fall back into patterns of complaining, especially without suggesting ideas for improvement or, better yet, being involved in fixing things.  This brief article notes that complaining is costly both personally and to your company and gives some great practical advice on how to stop complaining yourself and how to refocus interactions more positively.



Article:  Why IEEE Fellow Radia Perlman hates technology

The inventor of the spanning tree protocol says that one of the negative side-effects of the rapid pace of technological change is that engineers make things too complex and no longer take the time to think about simple and elegant solutions to problems.  She echoes Antoine de Saint-Exupéry's statement about good design:  Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.



Article:  Why Your Attitude Stinks, And What To Do About It

This author says that perpetual bad attitudes by IT professionals is destroying our career prospects because our business customers are starting to lose confidence it IT's ability to support their needs and adapt to business change, such as commoditization of technology.  Thus, the idea that jobs are being outsourced becomes a self-fulfilling prophecy.



Article:  I Learned To Program…

Everyone needs a little inspiration from time to time.  And sometimes you need to be reminded about why you choose a technology career to begin with.  This site has brief statements from both famous and just ordinary folks like you and me about what sparked their interest in programming.  You can even share your own one-sentence story.



Article:  Learn to Remember Everything: The Memory Palace Technique

As I get older, I'm starting to notice my memory failing more than I remember (ha ha!).  Anyway, most people probably want to improve their memory regardless of their age.  This article presents an interesting technique that involves visualizing the list of things to remember as chambers (rooms) in a palace (building).



Report:  2011 ComputerWorld Salary Survey

The annual ComputerWorld salary survey is considered one of the most accurate and thorough.  See how your salary compares with others, based on this survey of almost 5000 IT workers, which also shows decreasing job satisfaction.



Return to top


Telecommunications/Networking Industry

Article:  SIP trunking sees "breakout year" as VoIP services market climbs to $50 billion

As consumers gained more comfort with VOIP, SIP trunking revenues increased by 143% in 2010.  The consumer market accounts for more than 2/3 of VOIP revenues.



Article:  Forget P2P. Now ISPs Really Hate Netflix

GigaOM says that bandwidth hogs like Netflix on-demand video are the new motivation for telecom carriers to limit bandwidth.



Article:  Fitch Report: Only 10-20 Percent of Homes are Possible Cord-Cutters

Fitch Ratings estimates that only a small portion of subscribers, mostly in the middle-income category, are likely to abandon wired television/video services, such as cable TV, in favor of so-called over-the-top (OTT) services.



Article:  IPv4 addresses priced at $4 on new trading site

With the IPv4 address pool for APNIC (Asia-Pacific) almost depleted, an entrepreneur steps in to develop a market for buying and selling addresses.



Return to top


Useful Utilities

Nevernote (Free – Cross-platform/Java – Varies)

Do you enjoy the awesome Evernote PIM/note-taking utility, but wish that you could use it on operating systems other than Windows?  Then Nevernote is just what you need.  It's a Java-based, cross-platform clone of Evernote that runs on Linux (32- or 64-bit), Mac OS X, and Windows and is compatible with the Evernote notebook file format.



SnakeTail (Free – Windows 2000/XP/2003/Vista/7/2008 and .NET 2.0 Framework – 156kB)

SnakeTail is tail-like utility for Windows that includes some great features such as regex searching and highlighting, support for Windows Event Log, drag-and-drop of files to be monitored, very low resource (RAM and CPU) usage, MDI for monitoring multiple files, directory monitoring where the latest log file is displayed, and much more.



CodeDesigner (Free – Cross-platform – Varies)

CodeDesigner is an application architecture modeling tool that supports a wide variety of UML diagrams, including class diagrams, sequence diagrams, and more.  It includes code generation tools for C, C++, and Python languages.



ConFavor (Free – Windows 2000/XP/2003/Vista/7/2008 and .NET 2.0 Framework – 2MB)

ConFavor is short for Context Menu Favorites.  It adds up to 10 (unlimited in paid version) "favorite" folders to your context (right-click) menu in Windows to simply copying/moving files, quick access to these folders, and more.  You can even add remote machines to your "favorites" and access the "favorites" list in Windows standard Open and Save dialog boxes.



Interactive GCC (Free – Cross-platform – 16kB)

While this interactive shell using C language was an April Fool's Day joke, a similar tool actually exists and may useful to C/C++ developers or those who are learning these languages.  IGCC is essentially a REPL for the GCC compiler and allows the user to interactively enter and execute C/C++ programs.  Requires GCC (of course!) and Python.



Dolphin Text Editor Menu (Free – Windows 2000/XP/2003/Vista/2008/7 – 880kB)

This simply, but unique utility adds some basic text editing functions to any text editor, including venerable Windows Notepad, or word processing application, such as Microsoft Word or OpenOffice Write.  Some of the editing functions are removing blank lines, trimming leading or trailing spaces, sorting lines of text alphabetically or numerically, and changing text case.  All features are accessed by a simply hotkey.



Return to top


Just For Fun

Cats Are More Agile…  Who Knew?

Even though I personally prefer dogs over cats, this comic makes a good point about agility.  :)



What Monty Python Taught Me About the Software Industry

Ever get the feeling that software development is sort of like a parallel universe?  Perhaps these comparisons between famous Monty Python sketches and programming will help explain this.



Producing the Tron: Legacy Special Effects

One of the developers of the software for the Tron: Legacy special effects recounts the 6-month development process.  This is some both interesting and amazing work.  The developer even recorded his own use of Unix shell for the movie scenes.




These stunning photos (incredible just by themselves) take the concept of animated GIF to a whole new level.  This one reminds of how the Mona Lisa's eyes follow you at every angle.



The New Commodore 64

You might be tempted to think that this is really just some sort of silly April Fool's Day joke, but Commodore is shipping a powerful up-to-date PC in a retro C64 body, complete with the brown keyboard.  Check out this review for more details.  The starting price is $595, the same as for the original back in 1982.



The World's Biggest Pac-Man

I don't really play many computer games, but I do enjoy some of the retro classics of my childhood.  Check out this HUGE Pac-Man game with many of the "levels" interconnected.  Written in jQuery and HTML5.



Before I Die

This is an interesting and inspiring public installation art project, where people were encouraged to write what they wanted to accomplish before they died.  The blackboard was erased each day and images captured over a number of weeks.



Russian Wall-E Case Mod

From one of my favorite off-beat web sites comes what has to be the most awesome case mod ever.  This guy spent 18 days machining parts to build a computer case that is a precise replica of Wall-E.



The Muppets: Bohemian Rhapsody

I'm not sure why I found this video so humorous, but it has to be one of the best mashups between 1970s icons The Muppets and Queen.



Return to top