Up to Newsletter Index

September 2009 Newsletter

Quotable Quotes


Perseverance is not a long race; it is many races one after another.  –Walter Elliot


Optimism is a revolutionary act.  –Cameron Crowe


To dare is to lose one's footing momentarily. To not dare is to lose oneself.  –Soren Kierkegaard


The greatest way to live with honor in this world is to be what we pretend to be.  –Socrates


When ideas fail, words come in very handy.  –Johann Wolfgang von Goethe


Plato is my friend—Aristotle is my friend—but my greatest friend is truth.  –Isaac Newton


The weakest living creature, by concentrating his powers on a single object, can accomplish something. The strongest, by dispensing his over many, may fail to accomplish anything. The drop, by continually falling, bores its passage through the hardest rock. The hasty torrent rushes over it with hideous uproar, and leaves no trace behind.  –Thomas Carlyle


Impatience never commanded success.  –Edwin H. Chapin


The successful person makes a habit of doing what the failing person doesn’t like to do.  –Thomas Edison


Return to top


Software Development Process and Methodology

Article:  Law of Averages Overturned

A Stanford professor says that project managers need to bone up on their statistics and apply principles of probability to estimation and project planning.  He notes that small deviations in actuals from estimates in project schedules are the main reason for development project “failure”.



Articles:  Low Tech Approaches to Requirements

As technologists and purveyors of technologies, developers often first turn to the computer for requirements-gathering and documenting tools.  In this three-part series, a programmer suggests some decidedly low-tech approaches that are often more efficient and effective.  Sometimes, good old pencil and paper and a sit-down conversation with the users is the best technique.



Article:  Developer's Kvetch: The Rotting Stink of Corporate IT

This author opines about the sad state of corporate IT shops, such as disregard for standards, apathy, and the frustration with “the process”.  But she also notes that corporate IT can work, especially who small, empowered teams are used.



Article:  It's time for a change: Do less with less

Technology workers are often stressed out and worn out.  Borrowing from the slow food movement, this article proposes a set of 10 principles to slow down IT and still deliver value to business customers.  Fundamentally, many of these ideas are the underpinnings of lean production model.



Article:  Managing UI complexity

This excellent article explains an iterative approach to reducing complexity in user interfaces and, thereby, improving usability and effectiveness of the application.  Remember that simplicity is your objective.



Article:  In need of a theory for software engineering

Just as it has been since the beginning of the software development and engineering discipline, the greatest challenge is how to develop great software.  In this excellent (and lengthy!) article, Ivar Jacobson, one of the creators of the Unified Process, explores some of the methodology approaches that may yield fruit.  The comments on the article are insightful, as well.



Article:  Agile Adoption: Projects Should Dive-In, Organizations Should Toe-Dip

Development expert Johanna Rothman says that organizations should take a measured approach to implementing agile by using in some projects to understand how it works.  At the same time, on the projects selected to use agile, it should be fully implemented.



Article:  I’m OK; The Bull Is Dead:  Communication Skills for Developers

As we frequently discuss here, communication is the key to any successful activity.  In this article, the author proposes a simplified communication technique for technical workers, especially on status reports, using the inverted pyramid from journalism:  Begin with the conclusion, then state the most important facts, and finally conclude with the details.



Article:  Stand Back and Deliver: Introduction to Key Principles

In many ways, IT project management is more art than science.  This book excerpt discusses the main ideas behind “good agile” practice both from the IT and business perspectives.



Article:  Do Not Use Design Patterns Upfront

This author claims that design patterns should not be used during initial development, because, at that point, they are essentially a solution in search of a problem.  Instead, he suggests that patterns should be part of the refactoring phase and flow from the initial code.



Return to top


Software Testing & Quality

Article:  The Surprising Right Fit for Software Testing

While autism-spectrum disorders like Asperger’s syndrome are often seen as a handicap to IT professionals, this article indicates that such behavioral differences may be the factor that sets successful testers apart from developers.  And here’s a personal story about Asperger’s syndrome from a career tester.



Article:  Coding and Testing: Testers and Programmers Working Together

Agile testing expert Lisa Crispin suggests that developers and testers work together throughout the development lifecycle a la pair programming to help the developer consider the appropriate tests to write and for the tester to better understand the application.



Article:  Automated Software Testing Distilled – Standards and other Considerations as Prerequisites to Success

Many people (frequently those without test backgrounds) see automated software testing (AST) as the panacea for testing faster and with fewer people.  However, AST itself requires careful analysis for suitability and organizations need to remember to AST involves a development lifecycle itself.



Article:  SQLite: A Lesson In Low-Defect Software

This article provides an in-depth analysis of how SQLite went from “quick hack” project to a high-quality ubiquitous application.  (You know that it’s the database engine behind the history, bookmarking, and other data management functions in Firefox web browser, right?)  The key aspects are liberal use of comments in code, extensive code coverage for unit tests, and process improvement, all of which are techniques that any developer or project can adopt.  One of the points that most stuck out to me is:  Safety != Reliability. Safety: no harm; reliability: no failures.



Article:  Golden rules for software testing

No matter what development methodology your organization uses, there are some software testing principles that always apply.  This author gives a brief, succinct list of these “golden rules” from his experience.



Return to top



Reference:  langref.org

Patterns are a great tool to use to learn a new programming language.  This site uses the pattern concept to show how to solve common programming programs in a variety of languages, including Java, PHP, Perl, C++, Python, Ruby, and more.  One of the best features of the site is that it gives you the ability to compare an implementation in a language that you already know to one that you are learning, so you can see the differences and subtleties.



Tutorial:  Guidelines for Writing Use Cases

Use cases are one of the most effective ways of capturing business requirements.  Here are some simple, straightforward tips for doing this effectively.



Tutorial:  SQL pie chart

This cool little tutorial shows you how to create an “ASCII art” pie chart using database data entirely in standard SQL.  While you might never have need for this, it does show you some handy techniques for your queries.



Tutorial:  Hashing. The whats, hows, and whys.

Using hash keys is one of the most effective ways to improve application performance when a large number of records must be searched.  This detailed tutorial explains how to do hashing and details some of the various approaches and algorithms.



Tutorial:  RESTful HTTP in Practice

REST has become a popular method for developing web services.  But the REST architecture is often confusing.  This tutorial explains how to implement REST web services over HTTP.  While somewhat of mid-level tutorial it is useful in understanding the core principles.



Return to top


Career Development/Miscellaneous

Article:  Why goofing off boosts productivity

While this one is certain to be controversial, some new research indicates that those who take breaks that most would consider "slacking" actually are more productive.  In  particular, those that spend time on non-work-related web surfing are 9% more productive.



Article:  Want to get ahead? Sleep in

In bad news for me, new research via brain imaging shows that later risers have more mental stamina and can outperform early birds.  After 10 hours of being awake, the early birds showed reduced activity in brain areas linked to attention span, compared with the night owls.  And night owls tend to be wealthier, as well.  So much for Ben Franklin’s maxim:  Early to bed, early to rise makes a man healthy, wealthy, and wise.



Video:  A kinder, gentler philosophy of success

Many people get caught up in trying to achieve success that is defined by others, which leads to disappointment (so-called “status anxiety”).  In this excellent presentation, Alain de Botton explains that each individual should define success for him or herself and then develop goals around that definition.



Article:  The scientific method

In this succinct article Seth Godin suggests the best way to improve and “get smarter” is to use the scientific method.  He says that rather than being defensive, we should enter conversations looking for something to test, measure, and then change.  The concept is very similar to Deming’s Plan-Do-Check-Act cycle for improvement.



Article:  Why Smart People Do Stupid Things

New studies have found that intelligence does not imply the ability to think rationally.  This article discusses dysrationalia (my new favorite word!) and how you can improve your rational thinking.  One researcher even suggests development of tests to measure RQ (“rationality quotient”) similar to IQ.  As well, self-discipline is a greater predictor of performance than IQ.



Article:  The problem with PowerPoint

On the occasion of the 25th anniversary of PowerPoint (can you believe it?!), the BBC reports on how these types of presentations are not effective.  For example, PowerPoint makes us “dumb” by hiding relevant facts and often the presentations are just too boring (“PowerPoint poisioning” or “death by Powerpoint”) and the audience overlooks relevant information.



Article:  How to improve your email etiquette

Like it or not, e-mail is the de facto communication medium of the 21st century (so far!).  To use e-mail successfully, you need to follow some simple rules of protocol.  A couple of my favorites from this list:  Change the subject line every time you start a new conversation and don’t get the last word in.



Article:  10 signs that it's time to look for a new job

Whether times are good or bad, it’s often difficult to know whether you should leave one job (“the devil you know”) for another (“the one you don’t”).  Here are some good questions to ask yourself to determine if it’s time to move on.



Article:  The Truth About Grit

Most of the time the history of great developments or happenings gives us the idea that these things were instantaneous flashes of insight or brilliance.  But usually these things are the result of diligence and a long-term dedication, says a researcher.



Article:  What do CEOs do? A CEO Job Description

Have your sights set on running a company?  Well, it’s probably useful to understand the various roles that the CEO plays.  And make sure that you develop the skills to be an effective CEO, especially if you are moving from startup to on-going business.  And it doesn’t hurt to be tall.  ;)



Article:  Reversing Your Email Composition

How many times have you sent an e-mail and forgotten the attachment?  Or accidentally sent it before you were finished?  This simple, but effective tip suggests that you reverse the normal flow of actions for writing an e-mail to help avoid those mistakes:  attach files, write the body of the message, write the subject (very important!), and finally enter recipients.



Return to top


Telecommunications/Networking Industry

Article:  VoIP thrives amid telco indifference

Even though most providers don’t seem very interested in VOIP service, it continues to gain traction among consumers.  Likewise, even though carriers could stop VOIP, they aren’t doing that either.  This observer thinks that carriers should put more effort into VOIP to take advantage of the demand.



Article:  New Study, Same Results: U.S. Broadband Speeds Lagging

CWA’s annual Internet speed test shows U.S. far behind other developed countries.  At the present rate of annual speed increases, which was just 1.6Mbps last year, it will take U.S. over 15 years to catch up to leader South Korea’s current speed!



Article:  Broadband Stimulus Plan Has No Map for Success

GigaOM questions the government’s approach for increasing broadband access to rural areas by enlisting carriers to map out locations with limited access.



Article:  Why AT&T Killed Google Voice

In this editorial, Andy Kessler says that AT&T was behind Apple’s rejection of Google Voice app for IPhone.  He proposes that in the 21st century all communications is data, including voice services, and he proposes an overhaul of current communication policy around that principle. 



Return to top


Useful Utilities

BrowserTraySwitch (Free – Windows 2000/XP/2003/Vista/7 – 351kB)

Most power users have more than one web browser installed on their system.  However, some web-based applications “misbehave” in the preferred browser.  BrowserTraySwitch allows you to quickly switch the “default” browser before you click on a link or open an HTML file using the default association.  Likewise, you can use it quickly launch one of the alternate browsers or a particular configuration (e.g., with or without proxy) of your browser.



addressbook.xml (Free – Cross-platform – 40kB)

This cool little web application (runs entirely in your browser whether you are online or not!) is a simple address book that has lots of useful features, including ability to open a map on Google Maps by clicking on an address, send IM via click on IM ID, create an e-mail, etc.  And it’s also a great application to learn about Javascript programming and XML and XSLT.



Saros (Free – Cross-platform Java/Eclipse – Varies)

Saros is a collaborative editing plugin for Eclipse that is suitable for distributed pair programming scenarios.  It uses XMPP/Jabber for communication (the author’s recommend hosting your XMPP server with Openfire, but public XMPP servers can be used, as well) and can even support some integrated voice communication services, like Mumble/Murmur.  And, of course, it can be used as a simple instant messenger client within Eclipse.



SQL Developer Data Modeler (Free – Cross-platform Java – 24MB)

This is an Oracle graphical tool for data modeling, including ERD creation and relational, data type, and multi-dimensional modeling.  It will generate DDL (physical model) for Oracle, MS SQL Server, and IBM DB/2 databases.



P2PVPN (Free – Cross-platform Java – 2.1MB)

P2PVPN is full-featured VPN client for any platform that written in Java, including Linux, Mac OS X, and Windows that does not require a central server.  Just set up your own network, with or without a “tracker”, and send that to others that you want to connect with.  Currently, the application is a little rough around the edges with respect to ease of use, but the core functionality is good.  (Note:  Using P2PVPN on Windows requires the TAP-Win32 network adapter driver from the OpenVPN application.)



Project Lombok (Free – Cross-platform Java/Eclipse – 330kB)

Project Lombok is a code-generation plug-in for the Eclipse development environment.  Unlike many of the code generators with delusions of grandeur, Lombok just does a few things well:  it writes the getter/setter methods for your classes, automatically generates equals and hashCode methods for classes, allows you to call close() method without worries of memory leaks, and much more.



Return to top


Productivity Tips

Quickly toggle text case in MS Word

Most people are familiar with the Format | Change Case feature in MS Word.  But here are a couple of keyboard shortcuts that will save you time and the trouble of switching to the mouse:  To toggle the case, in sequence (Sentence case à lowercase à UPPERCASE à Title Case), just select the text to be changed and press <Shift>+<F3>.  If you simply want to make all of the text uppercase, press <Ctrl>+<Shift>+A.


Return to top


Just For Fun

Escher in Legos

If you’re a fan of Escher’s fantastic optical illusions, you’ll love this site.  This guy has authentically re-created some of Escher’s most famous drawings with Legos.  No mean feat by any stretch of the imagination!



100 Things Your Kids May Never Know About

Here are a hundred pop culture icons of the past half-century that have almost all but disappeared, such as, Han shot first, DOS, Archie and Gopher searches, and much more.  How many of these do you remember?  And what would you have added to the list?  (View-Master is something that my kids still love!)



Never Gonna Give Your Teen Spirit Up

This video mashup takes Rick Rolling to an incredible new level.  Very creative!



Give your boss the illusion of managing you… with pidgin and dbus

This creative programmer took this Dilbert cartoon seriously and actually implemented an IM bot to send his boss silly questions.  Now you let your inner Wally really shine through!



Today's Front Pages Map (suggested by Nazneen Shaik)

With this cool interactive web site, just hover your mouse over the any city from around the world (72 countries!) to see the front page from that city’s newspaper.  Click on the city “pin” to display that front page.



When Zombies Attack!

This paper, which provides a mathematical model for zombie apocalypse, was actually published in peer-reviewed textbook on infectious disease transmission.  Listen to this interview with the professor who oversaw the “research”.



Return to top