Up to Newsletter Index

August 2013 Newsletter


Quotable Quotes

The greatest thing by far is to be a master of metaphor; it is the one thing that cannot be learnt from others; and it is also a sign of genius, since a good metaphor implies an intuitive perception of the similarity in the dissimilar.  –Aristotle, De Poetica


It does not suffice to hone your own intellect (that will join you in your grave); you must teach others how to hone theirs.  –E.W. Dijkstra


Nobody knows where the human race is going. The highest wisdom, then, is to know where you are going.  –Leo Tolstoy


The sweetest of all sounds is praise.  –Xenophon


Where there is shouting, there is no true knowledge.  –Leonardo da Vinci


Begin each day by telling yourself: Today I shall be meeting with interference, ingratitude, insolence, disloyalty, ill-will, and selfishness—all of them due to the offenders’ ignorance of what is good or evil. But for my part I have long perceived the nature of good and its nobility, the nature of evil and its meanness, and also the nature of the culprit himself, who is my brother (not in the physical sense, but as a fellow creature similarly endowed with reason and a share of the divine); therefore none of those things can injure me, for nobody can implicate me in what is degrading. Neither can I be angry with my brother or fall foul of him; for he and I were born to work together, like a man’s two hands, feet or eyelids, or the upper and lower rows of his teeth. To obstruct each other is against Nature’s law—and what is irritation or aversion but a form of obstruction.  –Marcus Aurelius, Meditations


Return to top


Software Development Process and Methodology

Article:  The “Little Things” That Hold Back Agile Teams

This article could be appropriately sub-titled “Matching Expectations With Reality in Agile Development”, because it deals with that common gap between what management and employees thought agile was going to be and do and how it actually turned out.  It provides some good context for how to help bridge some of these spaces, especially those to relate to organizational culture.



Article:  Don’t Get Demoralized by Bad Estimates!

Inevitably, no matter how much information you (think you) have, your project estimates are going to be off, at least by some amount.  But how can you keep your sanity when you end up with estimates that are way off?



Article:  Commitment considered harmful

Commitment by the development team for each iteration is a typical part of scrum in most organizations.  This pundit suggests that commitment results in some dangerous unintended consequences and teams need to ensure that it is done appropriately.



Article:  12 Lessons I learned using unit tests/TDD

As a follow up to his excellent introduction to test-driven development (TDD), this programmer gives some tips on how practically introduce TDD to your organization and make the practice stick.



Article:  Value of Simplicity

As developers, one of our objectives should be to find the “simplest thing that could possibly work”.  This doesn’t mean ignoring good practices or architecture, but rather finding an appropriate solution that allows scalability, maintainability, and so on.  This article gives some good food for thought about how simplicity adds intrinsic value to our work.



Article:  The Flexibility of Agile: Flaw or Strength?

Most of us understand clearly that agile methodologies are not “one-size-fits-all” and that each organization must adapt it to their situation and process.  Nevertheless, the overall “agile” world is going through growing pains (one pundit calls it an impending winter!) This article looks at whether flexibility is a blessing or curse.  What do you think?



Return to top


Software Testing & Quality

Article:  Paying bug bounties is a better investment than hiring a security team, study claims

A new study based on the experiences of the Google Chrome and Mozilla Firefox teams shows that it’s more cost effective to pay bounties to security researchers than to have dedicated workers do the same thing.  Wonder if the same is true for non-security application problems?



Article:  Piece By Piece: Test Estimation and Planning in Agile Teams

One area of testing that is most impacted by changing from traditional (waterfall) development processes to agile methods is that of test planning.  This article explores how to use the iterative nature of agile techniques to your advantage in test planning and estimation.



Article:  Bug found in Post Office row computer system

While certainly not on the scale of the Therac-25 or other life-threatening software defects, a problem with the accounting system for contractors of the UK postal service’s small offices certainly affected the lives and livelihoods of hundreds of workers, some of whom were wrongly accused of embezzling.



Article:  Balancing Independent Testing and Agile Collaboration

One of the age-old tensions is how the test group can work effectively with the development team, but still maintain independence.  In agile methodologies, since the team is (or should be!) self-organizing, collaboration is even more important.  This article looks at various perspectives on how to successfully balance the needs.



Article:  What really happened to the software on the Mars Pathfinder spacecraft?

One of the more well-known (although certainly not propitious!) software failures was the problem on the Mars Pathfinder, which caused it to stop sending data back to scientists.  But the story behind how engineers diagnosed and fixed the problem from 230 million miles away is the best part.



Return to top



Tutorial/Reference:  Computer Science from the Bottom Up

If you want a comprehensive refresher on some of the underlying principles of computer science and/or would like to learn the concepts around Linux/Unix programming, this is an excellent tutorial and reference.  It covers the ideas of computer architecture, OS design, processes, memory and more.  Furthermore, it gives a very detailed explanation of using the GNU toolchain for compiling and linking.



Reference:  SQL Injection Cheat Sheet

Even with the increased focus on application security, it’s still quite surprising how frequently SQL injection exploits occur.  Even if you don’t know “little Bobby Tables”, you might want to take a look at this comprehensive list of injection problems to watch out for across a variety of common database platforms, including MySQL, MS SQL Server, Oracle, and PostgreSQL.



Reference:  Clean Code Cheat Sheet

This reference is an excellent summary of the concepts developed by “Uncle Bob” Martin in his book Clean Code.  Even if you don’t subscribe to the whole clean code regime, the sheet gives you plenty of tips for good development practices.



Tutorial/Reference:  Design For Non-Designers

Most readers of this newsletter are probably not designers.  But, as the author of this tutorial points out, at some level all of us are involved in design.  So we should all know a few principles of design.  This brief, but excellent tutorial and reference explains the key things pay to attention to when designing.  And all of this is getting a bit easier as web design moves away from skeuomorphism (love the sound of that word!) to more simple designs, such as flat design.



Reference:  DevDocs

When doing web design and Javascript or jQuery development, do you find yourself flipping between a variety of tabs in your browser or IDE to find the information you need?  While I can’t promise that DevDocs will fix that, I should cut down on it!  It’s an easy-to-use (fully keyboard enabled!) comprehensive reference for CSS, HTML, Javascript, jQuery, and more.  It even includes a complete DOM reference, with DOM events.



Reference:  Building a Decent API

API development is growing by leaps and bounds and it behooves everyone to design good, effectively APIs.  This article provides a great checklist for best practices of implementing APIs and avoiding needless fluff.



Return to top


Career Development/Miscellaneous

Article:  A Simple Rule to Eliminate Useless Meetings

Ask most workers what the biggest productivity killer is in their office and you’re likely to get plenty of responses about meetings.  The CEO of Linked In says that by simply eliminating presentations by sending the presentation materials at least 24 hours before the meeting makes meetings more productive by allowing participants to come prepared and self-select on whether they really need to be there.



Article:  Ending the Tyranny of the Open-Plan Office

With nearly 3/4 of workers in the U.S. working on open-plan office settings, organizations are learning that improved collaboration comes with a price in productivity, especially when the work requires significant focus and concentration, not to mention privacy.  Many companies are now looking for how to balance these needs with mixed-space office plans.



Article:  A New Report Ranks America's Biggest Companies Based On How Quickly Employees Jump Ship

Among other criteria that you might want to look at when searching for a new job is how long people typically stay at an employer.  According to this report, employees have the lowest tenure at retail and service companies, including insurance and financial services, and the longest tenure at manufacturing businesses.



Article:  Nice organisms finish first: Why cooperators always win in the long run

This is an interesting finding that cooperation actually provides us with an advantage.  Perhaps it says more about the design of our creation than anything else, because as the author points out, it’s a very counterintuitive result.



Article:  Overtime is Organizational Morphine

This article gives an interesting analogy for the use of overtime (or really any other extraordinary measure) to address a crisis.  The author explains that these tools only mask the pain (or other symptoms) of the particular problem and don’t actually address the source of the problem.  The pain that occurs needs to be felt so that the organization can fix the mistakes or other causes to prevent them from happening again.



Article:  11 Resume Myths Busted

Contrary to some folks, resumes are still a typical method for sharing a summary of your skills.  (This doesn’t mean a resume is the only way to market yourself!)  But with all of the changes in the hiring process, it’s sometimes difficult to know the new protocol around resumes.  This article helps dispel some of the common legends around resumes.



Return to top


Telecommunications/Networking Industry

Article:  Breakthrough in Internet Bandwidth: New Fiber Optic Technology Could Ease Internet Congestion, Video Streaming

Recent research has found that light propagation in optical fibers in a spiral motion instead of the usual straight line can speed transmission and, therefore, improve throughput.  From their results, they were able to achieve  transmission capacity of 1.6 terabits per second, the equivalent of transmitting eight Blu-Ray disks every second.



Article:  Why the Internet Needs Cognitive Protocols

In a similar vein to the article above, this one gives an overview of how biologically-inspired algorithms and protocols are being investigated to improve network routing.



Article:  OSI: The Internet That Wasn’t

Many of us (at least, those of us of a certain age!), cut our teeth in networking learning about the OSI 7-layer model (or 9 layers according to these guys! J).  This article explores how the OSI model quickly fell by the wayside when TCP/IP became the de facto networking platform.  Another good example of how the “best” implementation doesn’t always (or even usually!) win.



Article:  A faster Internet — designed by computers?

MIT AI researchers have developed a new system named Remy that fixes TCP congestion on networks three times faster than human-designed algorithms.  The power of the algorithm comes from how it is able to concentrate analysis on small changes in routing that result in large performance gains.



Article:  Telephone companies to abandon land lines

One of the interesting consequences of the destruction from Hurricane Sandy last year is that incumbent providers are using it as an opportunity to further remove copper cabling.  Down from the peak of 186 million landlines in 2000 to around 100 million now, providers expect only 1/4 of households to have copper-wire-based service by the end of 2013.  And AT&T intends to have all copper lines removed by the end of the decade.



Article:  Do we still need the telephone?

As noted above, landlines are going the way of the dinosaur.  In this essay, the author posits the question about whether or not even the concept of a telephone makes sense.  She talks about how ubiquitous multi-mode communication makes telephones seem passé.  I’m not sure that they will go away completely anytime soon, but who knows?



Article:  Google Said to Weigh Supplying TV Channels

Google’s attempts to license Internet TV channels is leading to speculation that they may looking to become a competitor in the cable TV market.  Much of the buzz is that they want to try to beat Apple to market for this service.



Return to top


Useful Utilities

SSH Edit (Free – Windows XP/2003/Vista/2008/7/8 – 1.3MB)

SSH Edit is a free, basic text editor that features syntax highlighting that allows editing of remote files over SSH.  It’s very handy for quick editing of scripts and configuration files on your servers without the hassle of downloading a copy, editing it, and uploading it again.



Server Auditor (Free – Android/IOS – Varies)

Anyone who works with remote systems knows the value and importance of a good SSH terminal tool.  Server Auditor is a cross-platform (even Kindle Fire!) mobile SSH tool with all of the essential features you’d expect, including swipe and gesture support for scrolling, selection and more, multiple connections, scrollback buffer and more.



GMapCatcher (Free – Windows XP/2003/Vista/2008/7/8, Linux, and Mac OS X – 9.3MB)

You’ve probably more than once wished you could make an offline copy of a map from the various online mapping tools.  There are plenty of tools out there to do this, but they typically are expensive.  GMapCatcher is free, open-source tool to make and view maps from a variety of online mapping sites, including Yahoo Maps and Bing Maps (but, interestingly, not Google Maps!). 



Command Line Files (Free – Windows XP/2003/Vista/2008/7/8 – 328kB)

Command Line Files (CLF) is a basic command prompt replacement for Windows that adds a good bit of the shell functionality of Linux/Unix.  Some of the built-in functions including showing free disk space and memory, a stack of the directories navigated to/from, wget for downloading files, display HTML of a web site, and much more.



Dropout (Free – Windows 2000/XP/2003/Vista/2008/7 and .NET libraries – 1.5MB)

With portable USB drives ubiquitous and online storage systems like Dropbox and Wuala so popular, regular Windows file search doesn't really cut it anymore.   Dropout is a Lucene/Solr-based file search tool written in .NET.  It indexes files, including content for text files, from any number of locations, including Dropbox, and provides lightning-fast searching for files.



Markdown Here (Free – Cross-platform browser plugin – N/A)

Markdown has become the lingua franca of formatted text editing.  And, now, with Markdown Here extension/plugin for Firefox, Chrome/Chromium, Safari, and Thunderbird (yes, I realize Thunderbird is not a browser!), you can use Markdown to edit your e-mails and see the resulting formatted content immediately.  It supports most of the usual Markdown features, such as emphasis, italics, tables, source code formatting, hyperlinks, and more.



Return to top


Productivity Tips

Avoid stepping into external classes when debugging in Eclipse

Do you get annoyed when trying to debug your Java code in Eclipse and you accidentally step into code from external classes and libraries?  Why would I want to step through lines in Java’s core String class?!  Eclipse has a nifty, but rather buried option to fix this called Step Filters.  In Eclipse, chose Window | Preferences from the main menu.  In the Preferences window, navigate to Java à Debug à Step Filtering.  Enable (check) the Use Step Filters option and specify which classes to bypass when debugging.  In addition to the built-in filters, you might want to add these, depending on what external libraries you use:



Simulate Unix touch command in Windows

The Unix touch command simply updates the “last modified” date and time of a file to the current date and time.  Windows lacks such a utility, but you can simulate the behavior by executing this command:

copy /b filename.ext+,,

where filename.ext is the name of the file that you want to update.  And notice that there is no space between the file name and the plus sign and the pair of commas.


Return to top


Just For Fun

Developer Excuses

Are you on your way to a Scrum meeting and realize that you haven’t finished your committed work?  Just hop over to this site and get a quick excuse for the problem!  J



The Legend of The Oregon Trail

Like millions (actually 65 million to be more precise!), The Oregon Trail educational game was one of the main inspirations and influences on me toward a career in technology.  Read this fascinating story about how it was developed over 40 years ago by three student teachers who didn’t even have a computer to begin with.



Computers in Spaceflight: The NASA Experience

While some folks are likely to be turned off by the decidedly retro look of this site, it is a virtual treasure trove of historical information about the first large-scale non-military use of computer technology.  You will be awed by the resourcefulness of the folks who worked on the space programs in the 1960s – 1980s.



Ron Swanson’s Scrum

What if Ron Swanson was your scrum master?  You’d probably look for another job, right?  Well, check out this Twitter feed for some tips…  On how NOT to do agile!



Regex Crossword

So this site has to be one of the geekiest in fun on the Internet.  It offers online crossword puzzles where the clues are regular expressions.  Me?  I couldn’t even do the “Beginner” puzzle!



Return to top