Up to Newsletter Index

November 2009 Newsletter


Quotable Quotes


A general is just as good or just as bad as the troops under his command make him.  –Douglas MacArthur


Simplicity is not the goal. It is the by-product of a good idea and modest expectations.  –Paul Rand


If you have a job without any aggravations, you don't have a job.  –Malcolm Forbes


The value of a man should be seen in what he gives and not in what he is able to receive.  –Albert Einstein


Don’t be afraid of opposition. Remember, a kite rises against, not with the wind.  Hamilton Wright Mabie


The way to combat noxious ideas is with other ideas. The way to combat falsehoods is with truth.  –William O. Douglas


I have just three things to teach: simplicity, patience, compassion. These three are your greatest treasures. Simple in actions and in thoughts, you return to the source of being. Patient with both friends and enemies, you accord with the way things are. Compassionate toward yourself, you reconcile all beings in the world.  –Lao Tzu


Return to top


Software Development Process and Methodology

Article:  The Current Direction of Agile

It is a seemingly-immutable law of software development that methodologies evolve over time.  As agile development techniques become more mainstream, InfoQ reviews some of the current concepts and techniques of agile.



Article:  Tech Is Too Cheap to Meter: It's Time to Manage for Abundance, Not Scarcity

Computing resources have moved into the realm of commodity and this requires a completely different mindset and approach to how to allocate and manage them.  This article is about the new economic paradigm called “Freeconomics” (not to be confused with “Freakonomics”) which is discussed in more detail in Chris Anderson’s new book FREE.  But it’s not clear if enterprise software will adopt this model or not.



Article:  The Agile Social Contract

Successfully implementing agile software development methodologies is more about the “soft skills” than about the technical aspects.  This author says that the appropriate “social contract” hinges on commitment and a disciplined implementation approach.



Presentation:  Bits of Evidence:  What We Actually Know About Software Development and Why We Believe It’s True

In this presentation, the author makes a strong case for programming (and computer science and software engineering) to move from an anecdotally-driven discipline to an empirical-evidence-based field that relies on examination and citation of evidence along the lines of the scientific method for making and supporting claims.



Article:  26 Hints for Agile Software Development

Even though the title of this article refers to “agile”, these principles are applicable to most any software development methodology or environment.  I would say that these are more “best practices” than “hints”.



Article:  Bill George on CIOs: Get Out And Lead

The former CEO of Medtronic talks about what makes a successful CIO.  He says that difficult economic times can actually be an advantage for CIOs, because it allows them to demonstrate and communicate the value of IT to the business by balancing innovation and cost-reduction.



Article:  Principles, Patterns, and Practices of Mediocre Programming

Using the anti-pattern concept, this author presents some great ideas about how to be more successful developer, including improving efficiency and quality.



Articles:  Celebrate 15 Years of Design Patterns

This site provides a retrospective on the 15th anniversary of the publication of the classic Gang of Four book Design Patterns.  It includes an interview with three of the authors and an explanation by the authors about why they wrote the book.



Article:  10/GUI: One Very Slick Desktop Multi-Touch Concept

Ready for a new paradigm in human-computer interaction?  A new multi-touch concept called 10/GUI has come out that very elegantly combines the standard keyboard and mouse with multi-touch.



Article:  What Do We Know about Agile Software Development?

Two Norwegian researchers review the recent literature on agile development and present a comparison of the consensus (if there is such a thing in agile development!) concepts with traditional methodologies.  Likewise, they discuss the trends in agile development.



Article:  Business Sponsors: The Weak Link in IT Projects

The CIO of the US Tennis Association (the folks that put on the US Open tennis tournament) says that they never have failed projects for one simple reason:  They demand that each project have a business sponsor who is accountable for requesting the funding and helping to manage the effort.



Article:  Don’t be a Coder, Engineer, or Developer: be a Software Artisan!

Many of you are probably familiar with the ongoing debate about whether programming is an art or science.  This author makes a strong argument for a middle ground of artisanship (or perhaps craftsmanship), because software is handmade and cannot be (as far as I know!) mass produced.



Article:  What is this thing you call "thread safe"?

As multi-threaded programming enters the mainstream (Just think about the fact that most new desktop and laptop computers come with multi-core processors!), programmers need to adapt their skills to avoid the esoteric concurrency bugs that are notorious.  In this article, the author points out that “thread safe” is only true within the context for which the application was intended and when the threaded components are properly used.



Return to top


Software Testing & Quality

Article:  You Don’t Get to Define ‘Quality’

This article emphasizes that the customer defines quality and that the development organization needs to listen to what the customer wants and how they state their expectations.  In addition, the author talks about how the “good enough” revolution is expanding into many facets of life.



Article:  Exploding Software-Engineering Myths

A software developer at Microsoft Research charged with creating a triage system of software bugs expanded his investigation into some empirical studies of some of the “common knowledge” in software development.  Among the myths that he debunks are increased code coverage of tests doesn’t inherently improve quality, that TDD really does work, assertions do improve quality, and much more.



Article:  Quality Last: Why We Make Poor Software

This author considers that until quality performance requirements and metrics are part of contracts for software development/delivery, it will never get the appropriate priority and attention.



Article:  Accelerate your agile software testing

This article provides some great suggestions for how to transition from testing in traditional (e.g., waterfall) methodologies to agile development.  In particular, it gives guidance for how to deal with short test cycles.



Article:  The Case for Manual Software Testing

In this excerpt from his new book Exploratory Software Testing, James Whittaker makes the case that manual testing is not only necessary, but one of the challenging and rewarding careers in IT.  He emphasizes that, even with the overwhelming push toward test automation, nothing can replace good manual testers.



Article:  The Twenty Laws of Testing Computer Software

A software development project manager outlines his 20 principles for successful software testing.  Some of them are philosophical, but most are very practical.  My favorite:  Only a high quality software testing process will result in a high quality software testing effort.



Return to top



Tutorial:  Code Kata

How do great athletes (think Tiger Woods!) and musicians get to the top of their domains?  It’s all about hours and hours of practice.  Developers need to practice their art and craft, as well, to improve their skills.  That’s the concept behind Coda Kata:  Little programming puzzles or tasks that stretch your brain and skills to help you uncover the nooks and crannies of the programming language, IDE, toolkits, etc.



Tutorial:  JavaScript Programming Patterns

JavaScript is ubiquitous for client-side scripting in web applications (and it’s making in-roads on the server side too).  Here are some common design patterns applied to JavaScript to make your code more reusable.



Tutorial:  Test-Driven Design in a Nut Shell

This brief, but comprehensive tutorial gives great guidance on how to implement TDD from scratch.  It examines not only the techniques, but the philosophical underpinnings of TDD.



Tutorial:  An Engineer's Guide to Bandwidth

Most application developers treat network capacity and availability as an infinite resource, even though they know better.  This excellent tutorial explains network capacity and its impact on application performance and robustness.  In addition, the author emphasizes that developers need to think about packets as the least common denominator and design applications accordingly for best network performance.



Tutorial:  Introduction to Lambda Calculus

Lambda calculus is the mathematical foundation of functional programming, including functional programming languages like Lisp and Scala.  This tutorial introduces the basic concepts of lambda calculus with some relevant examples



Return to top


Career Development/Miscellaneous

Article:  Seven Great Questions to Ask at a Job Interview

Most interviewing articles focus on how you should prepare to answer the questions from the prospective employer.  But part of your preparation should include some questions of your own to show your interest in the position.  This article has some great, open-ended questions that you can ask.



Article:  Clive Thompson on Why Idling Mind Is Mother of Invention

Tech culture observer Clive Thompson notes that most organizations emphasize the “go-go-go” mentality and that innovation suffers without some time just to think and put things in context.  Maybe daydreaming isn’t so bad after all!



Article:  Sleep helps build long-term memories

Researchers have demonstrated that the hippocampus is important in solidifying memories during sleep.  I think I’ll use this information as an excuse for napping at work!



Article:  The Myth of Crowdsourcing

One of the recent buzzwords is crowdsourcing, which is the concept that a product (particularly software applications, such as open source) better meets user needs and has higher quality when many people are involved.  This article punches some holes in that idea and emphasizes that most of the innovations still come from a dedicated few people involved with an effort.



Article:  100 Incredibly Helpful Lifehacks for the Unemployed

Being out of work is one of the most stressful situations that you are likely to ever face.  Here are some fantastic tips to make the most of your search for a new job and to survive the interregnum in employment.



Article:  The Status of the P Versus NP Problem

You’re eyes probably already started glazing over when you read the title of this article.  But the P versus NP problem is gaining importance as computers becoming increasingly powerful.  And you might just gain a few tips about how to reduce algorithmic complexity by considering some of the implications of this problem.



Article:  Why Email No Longer Rules… And what that means for the way we communicate

It seems like we frequently hear that the demise of e-mail is just around the corner.  This article says that social networking tools like Twitter and Facebook and the new Google Wave application are the “killers”.  Personally, I don’t see e-mail going away anytime soon.



Article:  How to Defeat Burnout and Stay Motivated

Almost everyone faces burnout at one time or another.  Here are some tips to get back into the swing of things when your motivation wanes.  Interestingly, a number of these suggestions are along the lines of agile and lean development principles.



Article:  Apple's boss proves that leadership results in performance

Perhaps Apple is built on a “cult of personality” around Steve Jobs.  Nevertheless, even in these difficult economic times, Apple continues to succeed financially.  This author says that success in difficult times is the mark of a leader (as compared to just a “manager”).



Article:  Master the Art of Listening and Watch All Your Relationships Thrive

All of us could probably improve our effectiveness and likeability if we would just keep our mouths shut once in a while and really listen to what others are saying.  This will pay dividends on both our personal and professional endeavors.



Article:  How to Speed Read Like Theodore Roosevelt

Teddy Roosevelt was a voracious reader.  But, it’s not just about reading quickly, but about understanding and retention.  This article provides some tips and pointers for improving your reading speed and comprehension and how to use some of the online speed reading training tools like Spreeder and Speed Reading Online.



Article:  How Do Innovators Think?

Some of you may remember the H-P ads from the 1980s where their tag line was, “We never stop asking ‘What if…?’”  Innovation researchers say that this is the essence of innovation, as well.  Innovators continue to ask questions and challenge the status quo.



Return to top


Telecommunications/Networking Industry

Article:  Metered Broadband Is the Future: Verizon CTO

The CTO of Verizon says that with the incredible growth in bandwidth consumption providers will have to shift to usage-based pricing models similar to those of wireless Internet packages.



Site:  Project CCNx

Project CCNx is an early-stage open-source research project sponsored by PARC and Google that aims to improve network performance by replacing the named hosts (end points) with named content as the primary abstraction.  This is intended to preserve the advantages of TCP/IP, such as simplicity, scalability, and robustness, but address the shortcomings of packet-based networks.



Return to top


Useful Utilities

Browser Chooser (Free – Windows XP/2003/Vista/7 with .NET – 2.5MB)

Browser Chooser is a small background utility that sets itself as the default browser on your system.  That way, when you click on link, Browser Chooser steps in and allows you to use any web browser that you have installed on your system to open the link.  Works with (at least) Internet Explorer, Firefox, Google Chrome, Opera, and Apple Safari.


Printliminator (Free – Cross-platform browser tool – N/A)

Printliminator is a free bookmarklet that you can add to your web browser to apply your own styling to a page before printing it.  Just click the bookmarklet and select to remove graphics (including video) or change the text styling for printing.  Works with any web browser with JavaScript support enabled.



MOOS Project Viewer (Free – Cross-platform/Java – 9.3MB)

Ever get frustrated when a co-worker sends you a project plan in MS Project format, but you can’t open it, because you don’t have MS Project.  Well, MOOS Project Viewer to the rescue!  I can open any MS Project file format (XML, MPT, and MPP) from MS Project versions 2000, 2003, and 2007.  And it can display all of the common project plan views:  Gantt chart, task sheet, resource sheet, and more.



Daniel’s XL Toolbox (Free – MS Excel 2003/2007 – 8.2MB)

This is a handy set of add-ons for Excel that include some great tools for editing charts and graphs, data analysis functions including one- and two-way ANOVA, and special paste functions and improvements to undo.



Acer GridVista (Free – Windows XP/2003/Vista/7 – 1.1MB)

If you have a large monitor and many application windows open, but need to arrange your desktop effectively, GridVista is a really great option.  It allows you to define multiple independent areas on your screen from one up to four, to change the transparency of windows, and drag-and-drop windows between the various sections.



Return to top


Productivity Tips

Display a second time zone in MS Outlook calendar

If you frequently work with people on the other side of the world, it’s quite useful to know what time it is their locale.  MS Outlook 2003 and 2007 can both display a second time zone in the Calendar.  To enable the second time zone, choose Tools | Options… from the main menu.  In the Options window, choose the Preferences tab and click Calendar Options…  In Calendar Options window, click on Time Zone…  In the Time Zone window, check (enable) the Show an additional time zone option and select the desired time zone.  Also, you can set names for your time zone and the other time zone.  Press OK three times to save your changes.  To more quickly access the Time Zone window, you can right-click on the time scale of the single day calendar view and choose Change Time Zone…

Override MS Outlook 2003’s default e-mail format on a new message

MS Outlook 2003 allows you to set the default format of new messages to plain text, HTML, or rich text formats.  However, you can easily override the default for a new message by choosing Actions | New Mail Message Using à from the main menu.  With this option, you can even choose an e-mail with embedded Excel worksheet or other MS Office document type as the body or select special stationery to use for the e-mail.


Return to top


Just For Fun

50 Years of Space Exploration

This beautiful graphic shows the history and relationships of space exploration efforts over the past half-century.



The Moral Sense Test

Everyone (at least I think everyone!) likes to think of themselves as a moral person.  But measuring morality is often difficult.  In this web-based test, you are presented with 10 different moral dilemmas and asked to judge the morality of the actions in each scenario.



Mona Lisa's smile a mystery no more

Even though David Allen Coe mourned Mona Lisa losing her smile, it turns out that her changing from happy one moment to somber the next is actually an optical illusion.  Leave it to Da Vinci!



10 Smurfy Smurfs Facts

Any of my readers over the age of 35 are probably familiar with the little blue (oxygen deficiency?!) cartoon characters called Smurfs.  But here are some facts that you probably didn’t know.  And if Spongebob Squarepants is more your speed, here are some out-of-the-ordinary tidbits.



Cottage Computer Programming

Unless you were a fan of the Apple ][ computer, the name Paul Lutus is probably unfamiliar to you.  Lutus wrote the amazing (for its time, of course!) Apple Writer word processing program.  It was the first software that I ever bought; it cost $120 (in 1980), which wasn’t a lot compared the $2500+ that I paid for the Apple ][ with 48kB of RAM plus a monitor and an Epson MX-80 dot-matrix printer!  This article tells about how Paul got into writing software in a cabin in the woods.  And he’s still at it, although in less humble surroundings now.



Computer bugs in the year 2000

This is an interesting (and prescient) discussion thread from January 1985 about the Y2K “bug”.  We are all pretty much familiar with the Y2K38 bug, but I had forgotten about the Y2K79 problem.  (It’s a little bit eerie that this is exactly 2000 years after the destruction of Pompeii and Herculaneum by Vesuvius in 79 AD.)



Return to top