Up to Newsletter Index

August 2009 Newsletter


Quotable Quotes

A good listener helps us overhear ourselves.  Yahia Lababidi


He that would have fruit must climb the tree.  –Thomas Fuller


If you compare yourself to others, you may become vain and bitter; for always there will be greater and lesser persons than yourself.  –Max Ehrmann


Too many people overvalue what they are not and undervalue what they are.  –Malcolm Forbes


Follow effective action with quiet reflection. From the quiet reflection will come even more effective action.  –Peter Drucker


Try not to become a man of success but rather to become a man of value.  –Albert Einstein


You gain strength, courage, and confidence by every experience in which you really stop to look fear in the face.  –Eleanor Roosevelt


Man has been endowed with reason, with the power to create, so that he can add to what he's been given.  –Anton Chekhov


How soon ‘not now’ becomes ‘never’.  –Martin Luther


Any fool can write code that a computer can understand.  Good programmers write code that humans can understand.  –Martin Fowler


Return to top


Software Development Process and Methodology

Article:  Agile Development: why it rocks, who it helps, and why it's failing

Agile development is all the rage now.  This great article explains that one of the key reasons for the early success (and now the frequent failure) of agile is that its originators, like those of most anything new, were using the “startup” mentality (mostly as consultants).  Thus, anyone who takes an entrepreneurial approach to process improvement is likely to succeed, regardless of the details.



Article:  Why Pair Programming Works

Most developers have at least a passing familiarity with pair programming.  But, even if they are convinced about it, it’s usually a tough sell to management.  This author points out six specific advantages of pair programming, including continuous code review, less time trying to figure out problems during coding, reduced distractions, and built-in training/backup capability.



Article:  Object Orientation (and other poorly understood idioms)

While this article is probably more properly labeled a rant, it does bring out some good points about the practice of software development versus the theory of computer science (which was the topic of an article referenced in the July 2009 newsletter).



Article:  Software Engineering: Dead?

Jeff Atwood discusses the shocking conclusion of long-time (and very respected) pundit Tom DeMarco that software engineering needs to be abandoned and the focus should be on the practice of software craftsmanship.



Article:  Maker's Schedule, Manager's Schedule

Paul Graham presents a very strong argument about the importance of developers having dedicated time, usually in blocks of 4 hours or more, to do their work and that incessant meetings are a significant and detrimental distraction.  This type of uninterrupted time is important in most any creative discipline.



Article:  Is Technology Killing The Corporation?

Computers are a ubiquitous tool in all companies now.  But some new research shows that technology is failing to deliver on all of its promises, especially for small business, such as ROA decrease of 75% since 1965.  Interestingly, while we often hear about how IT fails to support the business (the so-called “IT-business alignment” problem), one of the findings is that many corporate cultures cannot adapt to new, disruptive technologies.



Article:  Agile teams: Focus on the people rather than the process

The specifics in this article shouldn’t come as a surprise to anyone:  people over process (one of the core tenets of the Agile Manifesto, by the way!).  But it doesn’t hurt to be reminded once in a while.  And remember that agile adoption, especially in larger organizations, is not always easy.



Article:  Forgotten Refactorings

This author points out that without a good process for refactoring and understanding your specific purpose for refactoring all you end up doing is rearranging the deck chairs on the Titanic (although his language is a little stronger!).



Article:  Agile In a Flash

To the uninitiated, agile development methodologies often seem like magic (or bunk!).  A couple of agile experts want to change that with some virtual flashcards (flashcards are one of the hallmarks of many agile methodologies) that teach agile principles.



Article:  Project Metrics for Software Development

Management loves metrics!  Everyone knows that; in fact, it might even be their mantra.  Nevertheless, the article presents some useful and simple metrics to measure the progress and outcomes of development projects, with a decidedly agile focus.



Article:  No to SQL? Anti-database movement gains steam

The push to move away from enterprise RDMBS (called noSQL) is picking up momentum including backing from industry giants like Amazon and Google.  This is happening for a variety of reasons, especially scalability problems with RDBMS and they are applied in situations where they shouldn’t be.  They suggest so-called “key-value stores” like Hadoop and Voldemort as alternatives and some hybrids like Cassandra and BigTable and one company has shared their experience with making the switch.  I’m not sure how this will work out (of course, there are those that dismiss the idea and here), but it’s probably a trend to watch and something that developers need to start getting familiar with (like parallel and concurrent computing).



Return to top


Software Testing & Quality

Article:  Top Five Causes of Poor Software Quality

What’s your guess about this commentator’s #1 reason for low quality software?  Bad process/methodology?  Insufficient requirements?  Wrong!  He says that the major cause is lack of understanding of the business domain.



Article:  Software Testing Paradoxes

“In God we trust; all others must bring data,” (famous quote from quality pioneer W. Edwards Deming) might be the mantra of software testers.  However, as this article aptly shows, sometimes the data itself isn’t the whole story when it comes to assessing software quality.



Article:  Visa card surprise: $23,148,855,308,184,500

By now, you’ve probably heard about this glitch (or ‘programming error’), but it’s a good example of the importance and value of testing and of how domain knowledge by testers is so important.  Slashdot reports that the problem was due to how the amounts were stored.  And, by the way, to put $23 quadrillion in perspective, the combined annual GDP of all of the countries in the world is around $60 trillion (here’s $1 trillion in perspective) or about 0.25% of $23 quadrillion.



Article:  Sacrificing Quality Costs More Than You Think

This is an interesting perspective on the question:  Should quality be compromised?  When?  The author emphasizes that letting quality slip on one release often results in a psychological effect that quality can be further sacrificed later.



Article:  The Psychology of Software Testing

Successful testing requires the proper mindset and attitude.  This comprehensive article discusses the mental preparation for testing and how to avoid “test anxiety”.



Article:  Six Tools For Testing Designs On Mobile Devices

For better or worse, more and more web browsing is moving to mobile devices like phones and netbooks.  If you are doing any sort of web design, you owe it to yourself to check how your design looks on these mobile platforms.  Here are some tools to help you with that.



Return to top



Reference:  Hidden Features of Various Programming Languages

StackOverflow.com is a great developer discussion site and, recently, there have been a number of “hidden feature” topics discussed.  This post is a directory of those discussions for many, many programming languages.



Tutorial:  A Beginners’ Guide to Big O Notation

Reading any technical computer science papers (such as you might find on Lambda the Ultimate blog!) require a good grounding in the “Big O” notation.  This excellent tutorial explains this concept in a very understandable way and uses some great examples in Java.  But, with all things, think critically about how real-world implementations work compared to theory.  And don’t forget to check out this follow-on discussion of the topic.



Tutorial:  The Java serialization algorithm revealed

Most Java programmers are familiar with the Java serialization API.  But it’s also instructive to understand how the API works under the covers as this helps you structure your objects effectively to ensure good serialization/deserialization performance.



Tutorial:  MVC anatomy for PHP developers

When first starting out with the model-view-controller (MVC) architecture, understanding the paradigm can often be daunting.  This excellent tutorial explains the concepts in plain language and further solidifies your understanding by using straightforward code examples in PHP.  And, even if PHP isn’t your language of choice, the explanations are still relevant and helpful.



Tutorial/Reference:  Pro Git:  Professional Version Control

If you use (or are thinking about using) the Git version control/software configuration management tool, you owe it to yourself to check out this free online book.  It is a comprehensive, yet engaging and well-organized, treatment of all topics Git, from installing it to using it for distributed development.



Tutorial:  Get Started with DNS

Domain Name System (DNS) is one of the linchpins of the modern Internet.  But even to those who know a lot about TCP/IP and other Internet technologies, DNS is often a mystery.  This comprehensive, detailed tutorial lifts the veil on many of these things.



Return to top


Career Development/Miscellaneous

Article:  Staying up in a down economy

If you’ve been laid off or even if you are fortunate enough to still have a job, the current economic mess is probably taking its toll on you mentally.  Here are six tips to maintain a positive attitude and perspective during this difficult period.



Article:  Best advice I ever got

Everyone needs a little advice now and then.  In this article, top leaders from various industries and professions share the best advice they’ve received.



Article:  Six performance tips for stressed IT pros

The current economic woes have increased stress for many, even those who aren't in fear of imminent layoffs.  This nice list gives you some suggestions for how to help deal with these stressful times.  From my personal experience, you can't overestimate the importance of getting enough sleep.



Article:  10 Ways to Learn Stuff While Procrastinating Online

Face it; almost all of us have a guilty pleasure of dawdling online when we should be working.  Well, here are some ways to turn this time into productive procrastination.



Article:  Programmer Competency Matrix

If you’re looking for a new development/programming job, how do you know who well your skills stack up against the next person?  While this list is certainly not canonical (and tends to lean a little too much on the technical aspects, for me), it should give you a good idea about some of the areas that you should consider and the level of skills necessary.



Article:  How to Kill Creativity

This article presents the pattern that afflicts most organizations that prevents workers from developing and applying creativity in their work.  The main cause, not surprisingly in my estimation, is the pressure of urgent, but not necessarily important tasks.



Article:  Unix turns 40: The past, present and future of a revolutionary OS

Unix enters it’s 5th decade this month (and Linux is now legally an adult!).  This article looks back on the history of Unix and what is in store for it.



Article:  Job Interview Questions You Need to Know

Preparation is the key to a successful interview.  Here are some new questions that candidates are likely to face in technical interviews in the 21st century.



Article:  The surprising benefits of time pressure at work

We frequently feature articles about how multitasking doesn’t work (at least not for sentient humans).  Now, a researcher has shown the counterintuitive result that completing a predecessor task only prevents interference with subsequent tasks if the first task was completed under time pressure.  The result is apparently due to the subtle confidence-building effect of completing the first task under pressure. 



Article:  5 top non-technical mistakes made by programmers

Most programmers and other IT professionals do a good job keeping their technical skills sharp.  But what about your “soft” skills?  Here are some non-technical pitfalls to avoid with some tips to bolster these areas.  The top tip is to build self-discipline.



Article:  Just Enough MBA to Be a Programmer

Many programmers probably aren’t interested in going over to “the dark side” of business functions within their organization.  However, some will likely want to start their own companies or, at least, better understand how their organization works.  This excellent article provides a comprehensive treatment of the topics in The Ten-Day MBA, especially those that are most relevant to IT professionals.



Article:  Schmoozing 101: Tips for shy techies

Most people know that networking (the social kind, not the technical kind!) is important for career development and often for finding your next position.  But if you’re introverted or just plain shy, schmoozing (for some reason that word sounds “dirty”!) might feel like getting a tooth pulled.  Here are some tips for a low-key approach to networking.



Article:  The Words You Wear

Here we get an education about some of the new, “fashionable” buzzwords making the rounds in IT and business circles.  But the author’s main points are that we need to look past the words and grasp the concepts and ideas that others are presenting before we make a judgment and that each group has “rules” that regulate it.



Resource:  CIO.com's IT Job Search Bible

This collection of articles, links, and resources is sure to help anyone who is searching for a job in IT, whether the market is good or bad.



Article:  Bad Manners Cost Business

I’m sure most people had intuition about the fact that uncivil behavior has a financial cost to organizations, but it’s nice to see it backed up by research.  And some of the forms of bad behavior are interesting, such as simply not listening or check e-mail during meeting or conversation.



Article:  Memristor minds: The future of artificial intelligence

The discovery of the memristor, which had been predicted almost 40 years ago, has opened the technology world to a new class of applications.  This article discusses some of the early applications.



Article:  For Best Results, Forget the Bonus

This classic essay, based on research from social psychology, says that offering bonuses and other reward incentives, instead of just regular pay, actually have the counter-intuitive effect of reducing productivity.  Some of the reasons are that it doesn’t address causes, only effects, and that it undermines the personal motivators that workers have which are inherently more powerful than financial or other external rewards.  Perhaps this is a strong argument for abolishing work.



Return to top


Telecommunications/Networking Industry

Article:  Antitrust: Apple and AT&T in DOJ’s sights

According to a report in the Wall Street Journal, the Department of Justice is looking into whether AT&T and Verizon, which together control 90% of the U.S.’s landlines and 60% of its 270 million wireless subscribers, have becoming monopolies with their recent acquisitions.  The probe is likely to look into the exclusive iPhone distribution rights of AT&T.




Article:  A Radical New Router

Internet pioneer Larry Roberts has introduced a new “router” that operates on flow of data instead of individual packets with the goals of improving performance, reducing cost, and reducing power consumption.



Article:  5.4 Million Added Broadband from Top Cable and Telephone Companies in 2008

US broadband Internet access growth has slowed from 8.5 million new subscribers in 2007.  Broadband accounts for a total of 67.7 million subscribers with cable companies slightly outpacing telecoms (36.9 million to 30.7 million).



Article:  Analyst warns of multiple-technology substitution

A telecom analyst says that technology is reaching the point where the “landline-or-VOIP” question is transitioning to where multiple technologies can be considered, which lowers the barriers to entry for consumers.  This goes along with the predictions that the number of residential landlines by 2011 will be less than half the count in 2005.



Return to top


Useful Utilities

PDF-Xchange Viewer (Free – Windows 2000/XP/2003/Vista/7 – 15.4)

With all of the recent news about zero-day attacks on Adobe’s PDF Reader, you might be looking for an alternative.  Not only is PDF-Xchange Viewer more secure, it is also smaller and faster.  It takes the simple approach of just displaying PDF files instead of trying to be a Swiss Army knife.



MDB Viewer Plus (Free – Windows 2000/XP/2003/Vista – 949kB)

Microsoft Access databases (MDBs) are ubiquitous in most organizations.  But not everyone can afford a license for Microsoft Access itself.  If you just need to do some simple browsing or editing of an Access database MDB Viewer Plus is a great option.  It uses a tabbed interface with a tab for each table in the database.  You can specify sorting and filtering criteria and it has very good export and import capabilities.  (Requires free MDAC runtimes.)



Wallpaper (Free – Online tool – N/A)

This cool little online tool lets you upload a picture (or pick one from Flickr or Photobucket or specify the URL to an online image) and then superimpose a monthly calendar on it.  Then just download the image and make it your wallpaper.



Google Map Buddy (Free – Windows 2000/XP/2003/Vista/7 – 43kB)

Ever want to save a static image of a Googe Map that you’ve generated?  Google Map Buddy is just the ticket.  You can even save multiple map images and easily stitch them together to make a large map at just the zoom/resolution you want.



consoleFISH (Free – Online tool – N/A)

Ever been in the situation where you need to SSH to a system, but were on a computer without an SSH client?  Well, no more with consoleFISH.  It is a free, hosted version of AjaxTerm, which allows you to connect via SSH (or Telnet) to most any system right from your browser.



Shareflow (Free – Online tool – N/A)

Shareflow is a free online (hosted) collaboration system that is intended to develop a threaded, conversational view of communications instead of the disjointed, context-free structure that often results from e-mail, IM, phone calls, etc.  In general, it appears to be conceptually similar to Google Wave platform.



HTTP4E (Free – Cross-platform – 1.3MB)

HTTP4E is a cross-platform Eclipse plug-in for sending HTTP headers and REST and SOAP API calls and viewing responses.  It is an excellent tool for testing and debugging web services development and for examining the details sent by web hosts.



Return to top


Productivity Tips

View online PDF files without downloading

If you run across a PDF file, but don’t want to download it or don’t have a PDF viewer on the machine that you are using, here’s how you can view it completely online.  Copy the link (URI) to the PDF onto the clipboard and then append it to this URL in your web browsers address bar:  http://www.scribd.com/vacuum?url=.  (For example, http://www.scribd.com/vacuum?url=http://www.msri.org/publications/books/Book29/files/conway.pdf.)  Press <Enter> and the PDF file will be displayed in the Scribd viewer in your browser.  (Note that Scribd will “translate” the URL into its own format, which you can bookmark or send to others.)


Return to top


Just For Fun

Things Marketing People Love

If you work in technical discipline, chances are that you’ve run across marketing folks that really annoy you.  Well, check out this site for some humorous revenge.



There, I Fixed It

This site features pictures of some unique feats of engineering for fixing things.  Many of them use the all-purpose fix-it tool:  duct tape.



Two Centuries On, a Cryptologist Cracks a Presidential Code

A mathematician has finally broken a cipher that was proposed by a friend of Thomas Jefferson over 200 years ago.  And the approach itself to solving the mystery is quite intriguing in that it uses techniques from computational biology.



Whitespace Programming Language

Most programming languages ignore white space characters (spaces, tabs, CR/LF, etc.).  But we need to bring balance to the programming world:  Enter Whitespace.  All non-white space characters are ignored.  Only spaces, tabs, CR/LF are considered as valid syntax!




Tired of all of those nice, standards-compliant web browsers?  Well, IE6ify comes to your rescue.  Just save this bookmarklet and run it anytime you need to render a web site incorrectly, the IE6 way!  ;)



Giving up my iPod for a Walkman

A 13-year-old gives a hilarious view of using a Sony Walkman cassette player (circa 1979) for a week instead of his beloved iPod.  This story shows you just how fast technology has changed and yet how much farther we have to go.  Nevertheless, the Walkman is a worthy competitor having been named the top music invention of the past 50 years by UK gadget magazine T3.



Atlas Obscura

This site bills itself as “a compendium of the world’s wonders, curiosities and esoterica”.  And indeed it is that.  It’s a directory of strange and interesting sites and museums from around the globe.  Looking for something weird?  You’ll find it here!



Who is Neil Armstrong?

Well, the answer is obvious, right:  the first man (and one of only 12!) to set foot on the moon 40 years ago during the Apollo 11 mission.  But the whole answer is more complicated.  This excellent BBC documentary explores why he consistently shunned fame and riches in favor of the quiet life.



Return to top