Up to Newsletter Index

September 2011 Newsletter


Quotable Quotes


There is a great difference between worry and concern.  A worried person sees a problem, and a concerned person solves a problem.  –Harold Stephens


The truth only irritates those it enlightens, but does not convert.  Pasquier Quesnel


The most imaginative people are the most credulous, for them everything is possible.  –Alexander Chase


I like bats much better than bureaucrats. I live in the Managerial Age, in a world of "Admin." The greatest evil is not now done in those sordid "dens of crime" that Dickens loved to paint. It is not done even in concentration camps and labour camps. In those we see its final result. But it is conceived and ordered (moved, seconded, carried, and minuted) in clean, carpeted, warmed, and well-lighted offices, by quiet men with white collars and cut fingernails and smooth-shaven cheeks who do not need to raise their voice. Hence, naturally enough, my symbol for Hell is something like the bureaucracy of a police state or the offices of a thoroughly nasty business concern.  –C. S. Lewis


When words are scarce they are seldom spent in vain.  –Shakespeare


Imperfect action is better than no action.  –Giovanna Garcia


We say we waste time, but that is impossible. We waste ourselves.  –Alice Bloch


Engaged employees understand that they don't just work for a company; they are the company.  –Richard Kern


The shortest path to exceeding expectations doesn't generally pass through meeting expectations.  –Ward Cunningham


Return to top


Software Development Process and Methodology

Article:  Deming’s 14 Points

Everyone who considers themselves a leader in business should read and understand Dr. Deming's work.  This excellent overview of Deming's famous "14 Points for Management" shows how the principles are universal and can be applied to software development.



Article:  Lost programming skills

As with any knowledge domain, over time, some programming skills, such as assembly language programming or programming hardware directly, fall largely by the wayside.  However, even as technology changes at such a quick pace, some skills can't be completely ignored.



Article:  Is REST the future for SOA?

In this comprehensive article, the author states that REST is not really service-oriented in the strict sense, but that it doesn't really matter, because REST has basically won the "war" over web services.



Article:  Why Software Is Eating The World

This recent essay by Marc Andreessen about how software (and algorithms) have fundamentally changed almost all aspects of life has sparked a good deal of controversy in a variety of circles.  Read the original essay and some of the various responses.






Article:  Traps & Pitfalls of Agile Software Development - A Non-Contrarian View

This brief list summarizes quite a few of the common problems that you are likely to encounter in an agile implementation.  The interesting aspect of this list is that it is from a proponent of the agile approach rather than a detractor.



Article:  Ken Schwaber and Jeff Sutherland Release Updated Scrum Guide

The fathers of the Scrum methodology have released an update to their document that provides the basic concepts of the technique.  This document is a great reference for anyone who practices Scrum.  One of the more significant (or, at least, notable) changes is the preference for ordering of the backlog, instead of prioritization.



Article:  How to Navigate Design by Committee

Like it or not, most organizations work in teams and you will be involved in "design by committee" at some point.  Here are some great tips for how to stay on track in this situation and, especially, how to avoid over-engineering.



Article:  Exploring User Requirements through Mind Mapping

Use of mind mapping as a technique for exploring ideas has really taken off in the past couple of years.  This academic paper discusses using the technique for eliciting and gathering user requirements for applications, including in the context of user stories and use cases.



Article:  10 hard truths IT must learn to accept

IT is changing (just like the rest of the business).  Our old ways of thinking about IT (centralized command and control, etc.) just don't work.  Here are some realities that IT must face in order to be successful.



Article:  Writing Software is Like... Writing

Bruce Eckel gives a nice perspective on how programming is like writing (or perhaps simply is writing) and how, just like writing, to improve, we must continually practice and read others' "writing" to learn the art and craft, as well as learning how to write better.  He also notes the importance of clear communication when working with our stakeholders.



Return to top


Software Testing & Quality

Article:  Zero Bug Tolerance Intolerance

This author says that zero defects is a noble, but unrealistic goal in practical software development.  He goes on to explain why you need to be wise about choosing which defects to fix in your applications.



Article:  So you think you can test?

You've probably heard that expertise in any domain takes 10000 hours of practice.  Well, most of us don't have that much time to build our software testing skills.  This article gives some good guidance on how to enhance your testing abilities.



Article:  10 Common Software Testing Myths

Software testing can seem mysterious for those who don't have any background or experience with it.  This list tries to debunk a few of the typical myths or misconceptions about testing.



Video:  The Tester Mindset

Good testers have a particular mindset.  Not one of wanting to destroy an application, but an inquisitive nature and one of always asking "What if…?"  This excellent video teaches you how to think about testing to improve your skills.



Article:  Testers Perfect Storm: "Agile, Cloud, Mobile"

Even with the constant sounding of the imminent death knell for software testing, this article shows some of the unique and new challenges that testing faces with the intersection of agile techniques, cloud computing, and mobile development.



Return to top



Tutorial:  Getting Started with RESTful Web Services Using JAX-RS

REST web services are becoming the de facto standard for APIs for web-based applications.  This tutorial shows you how to create a REST web service for your Java application using the popular Jersey toolkit JAX-RS reference implementation.



Reference:  The Pragmatic Programmer Quick Reference Guide

If I could only recommend a single book that every programmer should read, it would have to be The Pragmatic Programmer.  This nice one-page reference summarizes the tips and checklists from the book.  Print this out and hang it on your wall!



Tutorial:  How Browsers Work: Behind the Scenes of Modern Web Browsers

Certainly, to be a successful web developer, you don't have to know how browsers work to render your pages.  However, to fully take advantage of the many nuances of the various popular browsers, it helps to understand just what they do under the covers.  This excellent, comprehensive tutorial explains how the Gecko (Firefox) and Webkit (Safari and Chrome) rendering engines work, especially with respect to CSS3 and HTML5.



Tutorial:  Introduction to Artificial Intelligence

This fall (09/26/2011 – 12/16/2011) you can take the same Introduction to Artificial Intelligence class that students at Stanford do for free and entirely online.  It is taught by Peter Norvig, research director at Google and robotics expert Sebastian Thrun, named one of Fast Company's most creative people.



Tutorial:  Learn Agile Development Through Tetris

This short presentation hammers home some of the key principles of agile development by matching them with some of the concepts for success in everyone's favorite game, Tetris.



Tutorial:  CouchDB Emulator/Visualizer

This cool Javascript-based emulator demonstrates the basic concepts of NoSQL document-oriented databases using open-source CouchDB.  If you want to learn about CouchDB without installing it yourself, this will give you a pretty good feel for it, especially collation, map-reduce, and incremental reduce.



Tutorial:  Lambdas for Junior Developers

Even if you don't need full-blown functional programming, this excellent tutorial shows you how the use of lambdas (a.k.a., closures or anonymous functions) in C# can help you with your regular development.  The author builds an entire generic Tree class using TDD principles to demonstrate the concept.




Return to top


Career Development/Miscellaneous

Article:  Preparation Pays Off in Avoiding Unproductive Meetings

Meetings seem to be a two-edged sword:  both the necessary lifeblood of business and a drain on time and productivity.  This article provides links to some great resources to make meetings shorter and more productive.  One of the key takeaways from this article is that the meeting planner needs to clearly indicate the type of meeting:  information exchange, design-making, etc.



Article:  Open Office Layout is Bad for Brain

"Open concept" office spaces are standard for agile teams.  However, according to some new research, lack of private (or at least semi-private) work space results in up to 15% loss of productivity due to distraction and context switching.



Article:  A Letter from General George S. Patton to His Son

On D-Day, General Patton sent this letter to his son, who was a cadet at West Point at the time.  He gives some excellent advice for everyone, whether your battles are in a real war or just with your own procrastination.



Article:  12 Steps Toward Confident Excellence

What to sports teams and IT organizations have in common?  This pundit says that IT can learn a lot from consistently high-performing sports coaches and teams about how to deliver excellence in an on-going manner to their business customers.



Article:  The 10 Best Questions to Ask at a Job Interview

When interviewing for a new position, one of the most awkward parts of the discussion is when the interviewer asks if you have any questions.  Here are some questions that both help you demonstrate your interest in the position and get some insight into what the job is all about.



Article:  Keep Wasting Time Online at Work: It's Better for Productivity

Everyone knows that the Internet is the ultimate time sink at work, right?  Well, according to some behavioral research, so-called cyberloafing actually has a more refreshing effect on workers than even such things as making personal phone calls or simply taking a rest break.



Article:  Why Amazon Can't Make A Kindle In the USA (Even If It Wanted To)

This series of articles (make sure you read them all!) presents some interesting insights into why "focus on your core competencies" has stratified the production and manufacturing of products in the global economy.



Article:  Is Your Brain Asleep on the Job?

Recently, we featured an article called "Bored People Quit".  So what can you do to recharge your mental batteries and get your brain back in shape?  This article gives you some ideas for how to jumpstart your brain, including things like setting short-term goals (so maybe that daily scrum meeting isn't worthless after all?!).



Article:  71% of Employers Say They Value Emotional Intelligence Over IQ

A new survey of hiring managers by CareerBuilder indicates that about 1/3 are placing more emphasis on emotional intelligence (EI; think "soft skills") when considering candidates.  Interestingly, for IT, just over 1/2 considered EI more important than IQ, compared to over 2/3 overall.



Article:  Tech survivors: Geek technologies that still thrive 25 to 50 years later

You probably don't think there are very many technologies from a quarter- or even a half-century ago that are still commonly used.  So this list of 18 such technologies might surprise you.  You'll probably especially be taken aback by how old some of the things that you think of as "new" are.



Article:  Engineer of original IBM PC declares end of PC era

Just as we celebrate the 30th anniversary of the original IBM PC (and the 20th anniversary of Linux, and the 10th anniversary of Windows XP—how time flies!), IBM's CTO, Mark Dean, who was one of the 12 engineers who designed the original IBM PC, has declared that PC era is over due to the cloud.



Return to top


Useful Utilities

j-Algo (Free – Cross-platform/Java – 11.5MB)

If you are interested in learning (or getting a refresher on) common computer science algorithms, j-Algo is just the ticket.  It displays step-by-step demonstrations of over a dozen algorithms, including Dijkstra's algorithm, heapsort, Knuth-Morris-Pratt algorithm, and others.  It includes demonstrations in three modes:  graphical (animated), formal, and descriptive.



CodeMatch (Free – Cross-platform/Eclipse – 471kB)

CodeMatch calls itself a "search-based code repository".  Basically, it's an online code repository (free registration required) that integrates with the context-sensitive coding functionality in Eclipse.  You can save local (private) snippets and insert them into your code just as you would your own classes or references to JDK classes.



Office Timeline (Free – MS Powerpoint 2007/2010 – 5.6MB)

Timelines are an excellent visualization tool for presentations, but they aren't very easy to create.  Office Timeline greatly simplifies the process of creating timelines in Powerpoint by providing step-by-step guidance.  Created timelines even automatically "adapt" to your presentation layout and template.



MTPuTTY (Free – Windows NT/2000/XP/2003/Vista/2008/7 and PuTTY – 721kB)

PuTTY is the de facto standard for SSH on Windows, but one of its significant shortcomings is having multiple windows, one for each session.  MTPuTTY puts multi-tabbed wrapper around PuTTY supporting all of the standard PuTTY functionality, plus some basic scripting support for automating session log on.



Unicodinator (Free – Online tool – N/A)

The world is shrinking, whether we think so or not.  If you do any sort of web design or programming, sooner or later you'll need to work with Unicode.  This well-designed site lists all of the Unicode character set.  Just click on a character to get more information, including the HTML entity code.



RegEx Find/Replace for MS Excel (Free – MS Excel 2003/2007/2010 – 1.6MB)

You can use regular expressions to do find and replace in most of your development tools, so what not apply the same principle in Excel.  This excellent add-on for Excel works just like the regular Find and Replace dialog, except that you use



Return to top


Just For Fun

Google…  What?

Just click on the link and check out the first few results.  Don't worry; it won't install a virus or destroy your machine.



HTML5 Tron Game

HTML5 canvas-based games are really gaining popularity, but HTML5 still has a ways to go.  Here's a fun retro example of what you can do with very little code.



Bach, Like You've Never Heard (or Seen!) It Before

Although this is actually an advertisement, it's a really incredible rendition of Bach's Jesu, Joy of Man's Desiring.  Although the Toccata and Fugue in D minor is still my favorite work by Bach.




Somebody at your office getting on your nerves, but you can't find a pithy put down?  Let Intellisult help.  Just put in your nemesis' name and get an intelligent insult.  (Remember, that's it's really just for fun!)




This game is total geek fun.  In this artillery game, you must create a mathematical function to knock out your opponents.  But the trick is that you also must specify a function that avoids obstacles and your teammates.



Where in the World? A Google Earth Puzzle

Technology is an amazing thing.  Fifty years ago (or maybe even less), something like this would have hardly been imaginable.  Now, check out these 25 amazing pictures from around the globe from Google Earth and see if you can figure out where they are.



Return to top