Up to Newsletter Index

March 2012 Newsletter


Quotable Quotes                                                                                         1

Software Development Process and Methodology          2

Software Testing & Quality                                                                 3

Tutorials/References                                                                             4

Career Development/Miscellaneous                                            5

Telecommunications/Networking Industry                              6

Useful Utilities                                                                                             7

Productivity Tips                                                                                         8

Just For Fun                                                                                                    8



Quotable Quotes


Motivation is in the mind; follow-through is in the practice. Motivation is conceptual; follow-through is practical.  Peter Bregman, Your Problem Isn't Motivation


The message that precedes all others—in art as well as life—is simple:  Pay attention.  –Harlan Ellison


Ever tried. Ever failed. No matter. Try again. Fail again. Fail better.  –Samuel Beckett, Worstward Ho


Mental pain is less dramatic than physical pain, but it is more common and also more hard to bear. The frequent attempt to conceal mental pain increases the burden: it is easier to say “My tooth is aching” than to say “My heart is broken.”  –C.S. Lewis, The Problem of Pain


We are all in the gutter, but some of us are looking at the stars.  –Oscar Wilde


Be soft. Do not let the world make you hard. Do not let the pain make you hate. Do not let the bitterness steal your sweetness. Take pride that even though the rest of the world may disagree, you still believe it to be a beautiful place.  –Unknown


With good architecture, debugging is a breeze because bugs will be where they should be.  David May


Come, my friends,

'Tis not too late to seek a newer world.

Push off, and sitting well in order smite

The sounding furrows; for my purpose holds

To sail beyond the sunset, and the baths

Of all the western stars, until I die.

It may be that the gulfs will wash us down:

It may be we shall touch the Happy Isles,

And see the great Achilles, whom we knew.

Tho' much is taken, much abides; and tho'

We are not now that strength which in old days

Moved earth and heaven; that which we are, we are;

One equal temper of heroic hearts,

Made weak by time and fate, but strong in will

To strive, to seek, to find, and not to yield.

–Alfred, Lord Tennyson in Ulysses


Return to top


Software Development Process and Methodology

Article:  It's the User

The editor of Dr. Dobbs Journal notes that, even though many people emphasize how little has changed in software development in the last few decades, one of the good changes in the past several years is that users and stakeholders are now an integral part of the development process. 



Article:  TDD Proven Effective! Or is it?

Most professional developers use test-driven development (TDD).  However, this article points out that we need to apply TDD (and any practice!) with intelligence and not blindly follow the "rules" of TDD, nor should we consider TDD to be beyond criticism.  (Should we write tests for existing code?)



Article:  Technical Debt - How Much Is It Really Costing You?

Technical debt is a fact of any project.  However, this author emphasizes that you need to make a good assessment of the real cost and prioritize that work just like you do anything else on the backlog.



Article: Estimating Effort For Your Agile Stories

Most of us would probably admit that we don't do the best job (or even give it due attention) in estimating user stories.  This article suggests a two-factor estimation matrix that uses story size and complexity to determine relative size.  Even more importantly, the author provides some concrete measures and examples for how to determine size and complexity.



Article:  Don't Fall in Love With Your Technology

This brief, but insightful article emphasizes that we need to treat any technology that we use (programming languages, OSes, etc.) as precisely what they are:  tools.  Accordingly, we need to avoid getting too close to them and simply use them to gain an advantage.



Article:  Agile Reboot: Putting the Man back in Manifesto

As we've discussed in the past, agile methodologies are now mainstream and appear to be undergoing some backlash and transformation.  This author focuses on building great teams to accomplish creation of great applications as one of the core underpinnings of being agile.



Article:  The Seven Deadly Sins of Enterprise Agile Adoption

By their very nature, large organizations are more susceptible to watering down agile principles and practices.  In this video (transcript provided too), the principals of agile development consultancy Lithespeed discuss how to avoid some come pitfalls in agile implementation.



Article:  Agile Requirements Definition and Management

Sometimes with agile development, we end up throwing the baby out with the bath water when it comes to requirements.  Agile doesn't mean "no documentation" and requirements are still a key element of success.  Developing good user stories with measurable acceptance criteria are vital to delivering business value.  Learn about the agile requirements definition and management cycle.



Article:  Project Management Gets Lean

Our business customers will no longer accept business as usual from IT.  In the realm of project management, lean methods that measure business value and whether or not the project is addressing the intended need or problem.



Article:  Why The Vasa Sank: 10 Lessons Learned

You probably think that 15th-century shipbuilding has very little to do with software development, but this case study shows how many of the problems that befall projects in the physical world easily transfer over to the digital realm.



Return to top


Software Testing & Quality

Article:  The Silver Bullet - Why Software Is Bad and What We Can Do to Fix It

Part of a project intended to improve software quality and reliability, this article explores the background of development and the reasons for poor software quality.  The author's indication is that complexity is the reason, but not for the same reason that Brooks proposed.  Instead, he says temporal inconsistency and unresolved dependencies are the underlying problem.



Article:  Using the Agile Testing Quadrants

This article presents an interesting concept around the various domains (the author calls them "quadrants") of testing and the various techniques suitable for each, along with how effective automation (or lack thereof) is for those methods.



Reference:  37 Sources for Test Ideas

When doing test planning, it is important to look for a broad variety of relevant tests.  This excellent list gives over 3 dozen places to look for possible tests.



Article:  Thoughts on Test Automation in Agile

Just as development and manual testing approaches must change in an agile environment, you need to adjust your thinking with respect to test automation too.  Agile techniques are very applicable to test automation, since it is a type of development itself.



Article:  On the Redistribution of Testing

This excellent article discusses the forces that are changing testing, such as agile methods and the increased focus on automated testing.



Return to top



Tutorial:  git - the simple guide

This tutorial covers the basics of the using the Git version control tool.  After learning the basics, the most important things to understand are how to use Git in team environment.



Tutorial:  Functional Thinking

In this video, the inimitable Neal Ford explains that the key to success in functional programming is to develop skill in thinking functionally.  He goes on to give some practical suggestions on how to do this along with some examples.  [Slides from the presentation are available here.]



Tutorial:  Bash Shell Scripting - 10 Seconds Guide

Need to write a shell script, but don't have a lot of time to learn?  While it will certainly take you more than 10 seconds, this comprehensive, yet brief, guide teaches you the basics and includes good examples of each concept.



Tutorial:  HTTP Request/Response Basics

HTTP is the lingua franca of web-based applications and is critical for web services.  This tutorial covers the lifecycle and "anatomy" of an HTTP request and response and best practices for using the HTTP methods.



Tutorial:  A tcpdump Tutorial and Primer

To go beyond basic web application development, many experts recommend understanding the protocols that underlie the Internet.  This comprehensive, step-by-step tutorial teaches you how to use the ubiquitous tcpdump utility for both application tracing and security troubleshooting.



Return to top


Career Development/Miscellaneous

Article:  How To Be More Interesting (In 10 Simple Steps)

Maybe this belongs in the "Just For Fun" section below…  Anyway, Jessica Hagy of Indexed fame (one of my favorite sites!) gives you some tips for how to improve yourself in her own quirky, inimitable style.



Article:  Here's to the technology builders: A hat tip

In this article, a technology critic recognizes the important work that people in technology do.  And he issues a very relevant challenge:  To make systems about the users (people!) and not the technology.



Article:  The 10 rules of a Zen programmer

There is no shortage on the Internet of lists of what it takes to be a great programmer.  And, while I don't necessarily subscribe to all of the concepts of Zen, this is an excellent list of both technical and "soft" skills of good programmers from the Zen perspective.



Article:  Gartner on the changing nature of work

Gartner fellow Tom Austin discusses some of the changes that they foresee how we work.  A couple of the most interesting ideas are that work will be more ad hoc (less centralized) and that people will be more involved in the creative, non-process aspects.



Article:  10 skills for developers to focus on in 2012

There are plenty of lists out there about what you as a developer should do to improve in the upcoming year, but this list seems to be quite balanced and emphasizes skills that will pay off this year as well as prepare you for the next 3-5 years.



Article:  My Algorithm for Beating Procrastination

As technology folks, we like to have a heuristic or pattern to follow to accomplish things.  This excellent article shows a concrete framework for getting out of the procrastination rut by analyzing the situation and finding the specific reason for putting things off.



Article:  Meetings: Where Work Goes to Die

In most organizations, meetings are notorious wastes of time and resources, for many reasons, including wrong participants, lack of structure/purpose, and many more.  This article makes a few tangible suggestions for only holding meetings when necessary.  My favorite is to make everyone an optional participant so that only those who really want to be involved in resolving the issue attend.



Article:  The 7 habits of highly effective developers

Borrowing from Steven Covey's 7 habits, this author gives some excellent ideas for how to apply each of these principles to programming.  My favorite tip is around putting first things first and appropriately balancing firefighting with productive work.



Article:  Zap your brain into the zone: Fast track to pure focus

A technique called transcranial direct current stimulation (tDCS), which historically has been used for treating depression, shows promise for dampening activity in the prefrontal cortex of the brain, which may help you get into "flow".  While I doubt it, perhaps this provides some explanation for how your brain works when using Scrum.



Article:  The Coming Tech-led Boom

Mark Mills and Julio Ottini suggest that similar to how electrification and telephony spurred economic growth in the 20th century, we are poised for another boom in the 21st century based on big data, smart manufacturing and the wireless revolution, all of which find their roots in the U.S.



Video:  The 5 Whys

In a short 3 minutes, entrepreneur Eric Ries shows how to do the "5 whys" introduced in the Toyota Production System and why this exercise his valuable.  A couple of key points that he makes are that "technical problems" usually mask an underlying human problem or error and that you should only address problems with process when necessary.



Article:  8 Things Your Employees Need Most

When it comes to managing or supervising others, soft skills are what matters most.  Here are some tips for how to effectively motivate employees.



Return to top


Telecommunications/Networking Industry

Article:  Start-Up Nicira Plans to Disrupt Networking Giants

A new company called Nicira wants to change the entire telecom/WAN world with a network virtualization technology called software-defined networking.



Article:  The Carriers Are Stuck In The Innovator’s Dilemma. Just Don’t Tell Them That.

With a hat tip to Clayton Christensen's classic about disruptive innovation, The Innovator's Dilemma, this article explains the history behind the large telecom carriers and shows how that history makes it difficult from them to innovate.  It goes on to demonstrate that there is still plenty of room for innovation in telecom, but that most of it is happening at the small start-ups (cf. Nicira above).



Article:  Phoning it in: the dirty secret of IP calling, and how it will change the phone industry

Voice over IP (VOIP) is now ubiquitous and the norm for most "landline" voice service.  This article looks at how wireless VOIP is set to revolutionize telecom.



Return to top


Useful Utilities

Terminator (Free – Cross-platform/Java [plus Cygwin on Windows] – 2.4MB)

Terminator is a cross-platform terminal application intended to replace applications such as xterm, rxvt, Gnome Terminal, and PuTTY.  Some of the features include automatic logging, drag-and-drop support for text and URLs, text searching with highlighting, multiple tabs, intelligent scrolling, UTF-8 character support, and more. 



Sudo for Windows (Free – Windows XP/2003/Vista/2008/7 – 511kB)

Sudo for Windows (sudowin) is a free utility that allows you to run applications with elevated privileges as a standard (non-administrator) user in Windows.  It is based on the concepts of the venerable Unix/Linux sudo application.  Some of the nice features include shell integration that adds Sudo… to context (right-click menu) and that objects created by the application retain ownership by the standard user.  Note:  If this application doesn't meet your needs, check out this comprehensive list of alternative tools.



SQL Fiddle (Free – Online tool – N/A)

There are online REPLs for almost any programming language that you can think of.  SQL Fiddle is a free, online tool that allows editing and live evaluation of SQL.  It supports MS SQL Server, MySQL, PostgreSQL, and Oracle variations of the SQL language.  You can even import tables and data from DDL files.



REST Client Tool (Free – Cross-platform/Java – 4.0MB)

REST Client Tool can be used as a standalone tool or as an Eclipse plug-in for direct interaction with REST services.  It supports all HTTP methods (PUT, POST, GET, etc.) and results are displayed as formatted XML and/or JSON.  Some features include ability to send POST data in body or URL/URI, sending input data directly or data loaded from a file, and simultaneous display of request, response, and web browser views.



vifm (Free – Windows XP/2003/Vista/2008/7 and Linux – 390kB)

Do you love the Vim text editor and pine for a file manager with the vi key bindings?  If so, then vifm is just what you need.  Available on both Windows (native binary—does not require Cygwin) and Linux, it is a simple, text-based file manager that you can use entirely via the keyboard.  It includes interactive command line, also similar to the Vim/vi normal mode.



QuiteSleep (Free – Android – 1.1MB)

Don't like being interrupted by low-priority calls during the night?  If you have an Android phone, QuiteSleep can help.  Just enter the list of callers who are allowed to interrupt and the start and end times and QuiteSleep will disable ringing for any other calls.  You can even set it to reply to calls with a text message, if you like.



Return to top


Productivity Tips

Create a shortcut to last used MS Word document

If you frequently re-open the last document you were working on when launching MS Word, why not let Word itself do that for you.  Just right click on the desktop and choose New | Shortcut from the context menu.  Browse for the location of the MS Word executable (such as, C:\Program Files (x86)\Microsoft Office\Office12\WINWORD.EXE for Office 2007).  Before clicking Next, on the shortcut command line (outside the double quotes) enter /mFile1.  This tells Word to run the macro named File1, which opens latest file in the Recent Documents list, at start up.  Click Next and enter a name for your shortcut, such as Open Last Document in Word.  Then click Finish button.  To make it even more useful, right click on the new shortcut and choose Properties.  In the Shortcut tab, choose a Shortcut key, so you can launch it right from the keyboard.


Return to top


Just For Fun

The top 20 HTML5 games

One of the places where HTML5 has made a big splash is with browser-based games.  Here's a list of 20 games that really show off HTML5.  No matter what kind of games you like, you're sure to find at least a couple to tickle your fancy (or whatever the expression is today).



Are you scientifically literate? Take our quiz

How much do you really know about science?  This quiz is not short (50 questions!), nor is it simple.  It covers are broad swath of the science landscape.



Man Walks All Day to Create Spectacular Snow Patterns

While Eastern Europe has had the coldest winter in decades, we haven't had much winter at all in my neck of the woods, so maybe that's why I found these images so fantastic.  This artist's canvas is a snow-covered field and his brushes are his boots.  What he creates is amazing.



Write in C

This humorous, yet moving, tribute to Dennis Ritchie is a must-watch.  Even though Steve Jobs death was the most publicized in the technology circles in 2011, arguably, Ritchie had the greatest impact of those who died last year.



The fake chemical compound Isaac Asimov invented to punk science writers

This just goes to show that having a little bit of fun with your work isn't such a bad thing.



The /bin/true Command and Copyright

With all of the copyright controversy swirling around the Internet, maybe this isn't really all that funny.  Apparently, AT&T has copyrighted an empty shell script (i.e., a script that does nothing).  Check it out!



Return to top