Up to Newsletter Index

July 2009 Newsletter

Quotable Quotes


Truth is tough. It will not break, like a bubble, at a touch; nay, you may kick it about all day like a football, and it will be round and full at evening.  –Oliver Wendell Holmes


We have more ability than will power, and it is often an excuse to ourselves that we imagine that things are impossible.  –François de la Rochefoucauld


Life is a grindstone. Whether it grinds you down or polishes you up depends on what you're made of.  –Jacob M. Braude


It is a trick among the dishonest to offer sacrifices that are not needed, or not possible, to avoid making those that are required.  –Ivan Goncharov


Don't judge each day by the harvest you reap, but by the seeds that you plant.  –Robert Louis Stevenson


The only correct actions are those that demand no explanation and no apology.  –Red Auerbach


Return to top


Software Development Process and Methodology

Article:  The Cognitive View: A Different Look at Software Design

This excellent essay, excerpted from Robert Glass' book Software Conflict 2.0, explores the question “What is software design?”  He emphasizes that design is not about external representations or methodologies, but it is a creative activity that takes place in the mind.  And one of the most interesting things about this essay is that it was written almost 20 years ago.  I guess it’s true what they say:  The more things change, the more they stay the same.



Article:  Why Does Software Work Take So Long?

In this classic article from Watts Humphrey, he discusses the underlying causes of delays in software development (and inaccurate estimation, as a consequence).  He says that the main cause is all of the miscellaneous work that programmers do in addition to the actual development.  And his remedy for the problem is profound:  Developers should keep track of time in detail to see where all of their time goes.



Article:  The speed, size and dependability of programming languages

Most of the time programming languages are “graded” on performance benchmarks, but these are often flawed and certainly don’t tell the entire story.  This author took on the challenge of comparing languages based on speed, size, and dependability.



Article:  Effective Strategy To Estimate Time For Your Design Projects

While the intended audience for this article is web designers, it contains some great general principles for estimation of most any sort of development or programming project.  The article discusses developing a standard framework of tasks that always apply and then using it to make specific estimates based on the requirements of a particular project.



Article:  REST is a style -- WOA is the architecture

The architectural paradigms of web-based systems continues to evolve.  (Some pundits say that we are now moving from Web 2.0 to Web 3.0.)  This article argues that REST is really just a means to an end and that the real architectural pattern is WOA or “web-oriented architecture”.



Article:  Erase the IT/Business divide mindset to achieve better results

In this newsletter, we often feature articles about “IT-business alignment”.  This excellent article emphasizes that even naming this is part of the problem.  Instead, we need to simply recognize IT as part of the overall business, just like sales, operations, etc., that has a specific role in the success of the enterprise.



Article:  How Technical Does an IT Manager Need to Be?

Among the debates in the IT profession that never seem to be settled is how much technical skill IT managers should have.  This article explores this question and it seems that the answer (as you probably expected!) is that “It depends!”



Article:  Misconceptions with Test Driven Development

One of the popular agile practices (not to be confused with methodologies!) is test-driven development (TDD).  In this article, the author tries to dispel some of the common misunderstandings, such as TDD doesn’t work in developing architecture and writing tests after coding isn’t any different from TDD.



Article:  Software Engineering ≠ Computer Science

This insightful article seeks to better define the line between the software engineering (SE) discipline, which tends to focus on process and methodology, and computer science, which covers the technical underpinnings of programming, such as algorithms and complexity.  Certainly, it doesn’t resolve the matter once and for all, but it does help to bring some clarity.  And, Tony Hoare gives his views on this divide as well.



Article:  The New IT Manifesto: 10 Steps For Transformative CIOs

The role of the CIO is changing from being the head honcho over technology to being a key player in how to leverage technology as part of business strategy.  Here are the steps that the CIO, and everyone in IT, need to focus on to remain relevant.



Article:  How To Write Unmaintainable Code

In the noble method of anti-pattern, learn how to write code that is confusing and indecipherable!  Seriously, this should give you some ideas of how code in a way that understandable and maintainable.



Article:  Programming as a Fine Art

Never one to shy away from controversy, Joel Spolsky proposes a bachelor of fine arts track for programmers who are more interested in the craft of programming instead of the traditional computer science approach.



Article:  Father of Use Cases Says Agile Needs to Get Smarter

Ivar Jacobson promotes a new concept called “Smart is Agile++”.  Basically, he says that any organization can do "agile" simply by adopting smart practices over unsmart ones.



Article:  10 Papers Every Software Architect Should Read (At Least Twice)

A couple of months ago, we featured an article about 10 classic papers that all programmers should read.  Now, here are 10 more papers that address software architecture.



Return to top


Software Testing & Quality

Articles:  Quality is Dead

James Bach bemoans the sad state of software quality and says that underlying cause of the problem is the tolerance of defects by customers.   And he offers some suggestions for finding our way out of the mess.




Article:  Did Computer Failure Bring Down Air France 447?

I don’t think that this author is implying that computer or software problems were the primary cause of the accident, but he does make a good point about how important software testing and quality are in this age of increasing dependence on technology systems.



Article:  Bizarre bugs: 9 of the strangest software glitches ever

Most testers have an interest in the weird ways that applications can fail.  (One blogger even writes about the “favorite” bugs of his coworkers in the Microsoft test group.)  This article reviews some well-known and yet still extraordinary application failures.



Article:  Top Ten Reasons to Love Agile Testing

In a recent thread on the Agile Software Testing mailing list, members made their suggestions about the advantages and value of agile testing approaches, even on traditional methodology projects.  Read this summarized list of the results.



Article:  Bug-killing standards for firmware coding

In enterprise development, coding standards are often non-existent or not followed if they are available.  This article explains the value of coding standards in preventing code defects from the beginning.



Article:  Anatomy of a Software Development Role: Quality Assurance

Although I somewhat disagree with this author's general idea that "quality" and "testing" are synonymous, he still gives a good overview of the role of these functions within the development process.



Resource:  Test Forge

Test Forge is a new wiki-based site where you can share test plans, designs, procedures and test cases, as well as other various software testing wisdom with others.  It's quite new, so it's a bit sparse right now, but it seems like a great idea.  Get out there and share some of your stuff with others!



Return to top



Reference:  Blue Screen of Death Survival Guide: Every Error Explained

Every Windows users' nightmare is the Blue Screen of Death (BSOD).  This non-technical guide explains what the various BSOD errors are and gives you some tips for how to troubleshoot and resolve them.



Tutorial:  JavaScript for C & Python programmers

JavaScript is the de facto standard for client-side scripting in web applications.  Most readers of newsletters already have some programming background.  Thus, this is a great tutorial if you want to use your existing knowledge to get started with JavaScript.



Tutorial:  How to Write an Equality Method in Java

Trying to write a “generalizableequals method for your Java class that appropriately handles inheritance and subclassing is fraught with peril.  This excellent tutorial takes you through some of the common pitfalls and provides guidance for how to implement your method taking them into proper account.



Reference:  10 Essential SQL Tips for Developers

In the Internet age, it is rare that even the simplest of applications don’t have some sort of database, either on the backend or embedded.  (Did you know that even Firefox browser has SQLite embedded for storing bookmarks, history, etc.?)  Thus, SQL skills are an imperative for all developers.  This reference gives some tips, as well as great links to other resources, about how to implement good database structures.



Reference:  Common Java Cookbook

If you do any programming in Java, you’ll want to look at this!  It explains best practices and patterns across a wide realm of Java programming from some of the best known the Apache projects, like Lucene and Commons.  For those getting started with EJB/J2EE, it includes a fantastic section on JavaBeans.



Tutorial:  Table Layouts vs. Div Layouts: From Hell to… Hell?

Most designers and developers know that CSS is preferred for web page layout over tables.  But sometimes CSS is just too complicated.  This article gives you some tips about how to use CSS effectively and simply.



Return to top


Career Development/Miscellaneous

Article:  Why text messages are limited to 160 characters

Ever wonder where the 160-character limit to SMS messages came from?  Well, it’s not as random as you might think at first and it really pre-dates the portable technology boom era.  The limit came about in 1985 when the chairman of the GSM committee responsible for non-voice services used a typewriter (remember those?!) to do some personal research about the maximum length of single-sentence blurbs and questions.  And, thus, the SMS message length was born (and the Twitter message length of 140 characters maximum was derived.)



Site:  Glassdoor.com

Want to know what the environment is really like at that potential employer?  Curious about salaries at competitors?  Glassdoor.com can help.  This site allows you to find reviews and salary information from actual employees at companies in many industries.  You can even contribute your own information, anonymously, if you prefer.  And they even have a section on how employees rate their CEOs.  (And also check out competitor Telonu.com.  [Get it?  Tell-on-you.])



Article:  10 Answers You Should Know Before Your Job Interview

With continuing job losses, the chances that you will be looking for a new job get bigger with each passing day.  Here are ten questions that you are likely to face in most any interview regardless of the job type or industry, such as “Tell me about a problem you had in your life and how you solved it” and “Do you have questions for me?”  These are always good to have thought about before the interview, but don’t just come up with “canned” answers to them.



Article:  Could You Take An 'E-Mail Sabbatical'?

As summer is upon us, vacation season is in full swing.  (I just got back from a week off myself.)  This article looks at an interesting approach to vacation e-mail:  just delete it all and tell people to contact you again when you return.  How do you handle e-mail during absences?



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

This summer, Unix reaches middle age!  One of the most amazing things to me from this article is that Ken Thompson wrote not only the original version of Unix itself in one month, but also an editor, a shell, and an assembler, as well!  Pretty amazing even today with multi-year application development projects being the norm.



List:  The Manager's Cheat Sheet: 101 Common-Sense Rules for Leaders

Even if you’re not officially a manager, these tips will help improve your effectiveness, efficiency, and relationships with coworkers and maybe even impress the boss.  Most of these items are simple common sense (which Benjamin Franklin observed isn’t all that common!), but seeing them together in one place helps you make some good connections between them.



Article:  The 10 Hardest Jobs To Fill In America

For the second year in a row, engineer tops Manpower’s talent shortage survey.  It is followed closely by IT staffer.



Article:  How To Become A Software Engineer/Programmer

Many people are enticed by a career in programming because of the view that it is technically challenging and provides good, stable employment.  This author points out this is true, if you are also committed to being a life-long learner and you can emotionally detach yourself from the code you write.  And, certainly, you should always have a “plan B” in any career.



Article:  How Does Our Language Shape The Way We Think?

While epistemology might not be your idea of an interesting subject (or maybe not even something that you’ve even thought of!), this article has some interesting implications not only for natural languages, but also for our limitations of perception when it comes to programming languages.



Article:  10 ways to keep your job despite the tough economy

As most people know, it's tough finding a new job right now.  So, everyone should focus on what to do to keep your current gig.  These tips will point you in the right direction.  And, the fact is that they are good advice regardless of the job market.



Article:  The slow reversal of periods and quotation marks

This posting (from 2001!) notes that technology is driving grammar to reverse the standard of punctuation marks being put inside closing quotation marks.  I feel vindicated, since this is how I have written my entire life, much to the chagrin of many English teachers!



Article:  10 Worst Work Habits

What are some of the things that others (or—Heaven forbid—you your yourself!) do at work that annoy you?  Here’s a list of some of the bad habits that everyone needs to break.  And, yes, my personal worst—procrastination—is number 1!  (I even have procrastination as a tag on Delicious!)



Article:  Sometimes, The Better You Program, The Worse You Communicate.

Everyone knows that communication is the linchpin of work and really of all relationships that we have with others.  At the same time, technical people seem to think and communicate in different ways than “normal” people.  This author explains four salient differences and gives some great advice for how to overcome some of these variations in communication style.



Article:  Are computers transforming humanity?

Advances in technology always result in social change.  Just think about the automobile and the telephone.  Certainly, the answer to the question posed in the title of this article is “Yes,” but the more relevant question is how is society changing because of computers.  Interestingly, the computer is hastening is the demise of the metanarrative.



Return to top


Telecommunications/Networking Industry

Article:  2.5 Billion New Subscribers By 2013: Who? What? Where? When?

Telegeography says that the global economic downturn will only temporarily slow broadband growth and predicts that worldwide broadband subscriptions will top 700 million by 2013 up from 400 million today.  They also indicate that this, along with wireless growth, will mostly offset losses in landlines.



Article:  On the Street and On Facebook: The Homeless Stay Wired

Even homeless people recognize the importance and value of Internet access.   Here’s a quote from one of the homeless people featured in the article:  "You don't need a TV. You don't need a radio. You don't even need a newspaper. But you need the Internet."



Article:  Cisco: Video Is Eating the Internet

Cisco is predicting that by 2013, video will account for 90% of IP traffic and that the amount of traffic will be the equivalent of the contents of 10 billion DVDs per month!



Article:  48% of Americans Would Drop Mobile Data Service Completely

In a new survey, almost half of respondents said that they would drop their mobile data plan to reduce personal expenses, if necessary.  By comparison, only 10% said that they would get rid of home broadband service.



Article:  What is a router?

Everyone knows what a router is, right?  Well, modern routers are changing from one-trick-ponies into integrated devices that are often more about applications and services.



Article:  3 Million New North American Broadband Subscribers Added in First Quarter 2009 Despite Economic Downturn

Even with the economic difficulties in the US, carriers added over 3 million new broadband subscribers for a total of over 12 million new subscribers in the past year.   The increase was second only to China.



Return to top


Useful Utilities

PicPick (Free – Windows NT/2000/XP/2003/Vista – 798kB)

PicPick is a multi-function tool for application developers and web designers.  It features screen capture, image editor, color picker, color palette, pixel ruler, protractor, whiteboard, and more.  It runs from the system tray, so all of the functions are quickly available.



Trowser (Free – Cross-platform – 80kB)

Trowser is a cross-platform (Unix, Linux, Windows, Mac OS X, etc.) text file browser that is intended to be a GUI-based alternative to less.  It is a great tool for looking at log files and includes color highlighting, a persistent search history, graphical bookmarking, separate search result (i.e. filter) windows.  Its key bindings are loosely based on Vim, so most users will be comfortable with keyboard navigation.  (Requires Tcl/Tk version 8.4 or later.  Windows users probably want Active Tcl.)



CodeRun (Free – Cross-platform online tool – N/A)

CodeRun is a browser-based online IDE (integrated development environment).  It can be used for developing in most any language, but includes “channels” with code libraries/snippets for ASP.NET, PHP, and AJAX.  It even has integrated Subversion (SVN) version control.



WindowTabs (Free* – Windows XP/2003/Vista/7 – 398kB)

Tab grouping on the task bar is one of my favorite features introduced in Windows XP.  But it isn’t always the most convenient way to switch between instances of the same application.  WindowTabs is a much more natural way of grouping.  It adds Google Chrome-like tabs to windows so you can easily switch using mouse or <Ctrl>+<>/<Ctrl>+<>.  It even lets you group windows from different applications.  (*Note:  The free version is limited to 3 tabs per application.  The $19 full version removes this restriction.)



TotalEdit (Free – Windows 2000/XP/2003/Vista/7 – 7.5MB)

Text editors are kind of a passion (addiction?) of mine.  I frequently try out different ones to see if there is something that I like.  I guess my favorite is really an amalgamation of a variety of editors.  Nevertheless, TotalEdit is a really strong contender among the category of freeware editors.  It has an amazing set of features that are too numerous to do justice here, but some of the key ones are excellent support for development tool integration like compilers, debuggers, etc., built-in diff/compare, search and replace with regular expressions, support for project files, column mode editing, and support for portable installation.



HelpNDoc (Free – Windows 2000/XP/2003/Vista/7 – 2.6MB)

Most users consider an application of any complexity incomplete without good documentation.  HelpNDoc is a free help documentation authoring tool that can output documentation regular HTML, Microsoft Compiled HTML Help (CHM), PDF, or Word formats.  You can define your own variables to ensure nomenclature consistency, such as product name, throughout the document.



Return to top


Productivity Tips

Copy message box text to clipboard in Windows

If you are working with MS Windows and you get an error or informational message box from the application, you can simply press <Ctrl>+C (standard “Copy” keystroke) to copy the title text, the message text and the text of each of the message box buttons to the clipboard.  Then you can just paste this information into any text processor.


Return to top


Just For Fun

25 Years of Tetris

Can you believe it?  Tetris has been around for a quarter-century.  I don’t even want to think about how many hours (days?) I’ve wasted spinning little blocks.




Armstrong's 'poetic' slip on Moon

Forty years after the historic moon landing (I watched it on a B/W TV in a store window with my family, since we didn’t have a TV!), the debate continues about whether or not Neil Armstrong said ‘a’ in his famous first words from the moon’s surface.



The Ultimate Top 25 Chuck Norris “The Programmer” Jokes

These probably aren’t that funny for the under-30 crowd, but I found them quite humorous.



The Hunt for Gollum

If you liked The Lord of the Rings films, this site is a must-see.  It has an amazing 40-minute fan film in the style of the originals made for under $5000.



Return to top