Up to Newsletter Index

July 2007 Newsletter


Quotable Quotes


We are all family.  To care about each other isn't altruistic—it's the best form of self-interest.  –Desmond Tutu


People like to imagine that because all our mechanical equipment moves so much faster, that we are thinking faster, too.  Christopher Morley


Contradiction is not a sign of falsity, nor the lack of contradiction a sign of truth.  Blaise Pascal


You do not lead by hitting people over the head—that's assault, not leadership.   –Dwight D. Eisenhower


A positive attitude may not solve all your problems, but it will annoy enough people to make it worth the effort.  –Herm Albright


Most people go along and never experience their creativity.  They run on old programs or follow the "normal" way of doing things.  Creativity is not just painting a picture, writing a poem or doing a modern dance.  It is a way of life.  Every activity can become a creative experience.  –Thomas D. Willhite


A successful individual typically sets his next goal somewhat but not too much above his last achievement. In this way he steadily raises his level of aspiration.  –Kurt Lewin


It is not enough to have a good mind. The main thing is to use it well.  –Rene Descartes


To be one's self, and unafraid whether right or wrong, is more admirable than the easy cowardice of surrender to conformity.  –Irving Wallace


Difficulties strengthen the mind, as labor does the body.  –Seneca


Return to top


Software Development Process

Article:  Real Requirements

This book excerpt, using a well-developed example, explains what make good business and system requirements for software applications and how to obtain and document requirements.  This article covers some of the more esoteric aspects of requirements definition.



Article:  Thoughts About the Best Introductory Language

With the proliferation of programming languages, it's no longer a given about what first language should be taught.  (When I was in school, everyone tool Fortran first!)  This article explores some of the advantages and disadvantages of the various languages, including C, C++, Perl, Python, Ruby, and more.



Online Book:  Essential Skills for Agile Development

This comprehensive online book covers a variety of topics to help programmers adapt to agile development methodologies, especially Extreme Programming (XP).  The book includes some excellent exercises to reinforce the concepts.



Article:  The Three Stages of IT/Business Alignment

This interview presents some interesting concepts for achieving IT/business alignment, particularly for large organizations where IT seems to have "lost their way".  It suggests three levels of alignment—tactical, strategic and innovative—the build on each other.



Article:  It’s Lean, But Is It Agile?

What's the difference between lean and agile development?  This article explores the similarities and differences between them, both philosophically and practically.



Article:  The Great Pyramid of Agile

This article provides some interesting, and well-conceived, objections to the agile development trend.  While I don't agree with all of the conclusions, it has some noteworthy food for thought.



Article:  Software Complexity: Bringing Order to Chaos

Object-oriented design and analysis provides tools for understanding and building complex software systems.  This article explores types and techniques of decomposition for object-oriented systems.



Article:  Is IT Still Strategic?

Many IT executives report that, while they still reject the premise of Nicolas Carr's essay "IT Doesn't Matter", they say that it did provide the impetus for them to do a better job of demonstrating the business value that IT provides to their organizations.



Online Book:  The Art of 'Ware [version 2.0]

This site includes the full text of a revised (and work-in-progress) edition of the mid-1990s classic text on software development called The Art of 'Ware.  The book is patterned after Sun Tzu's treatise on conflict and warfare The Art of War.



Article:  Applying lean to application development and maintenance

Researchers discuss how lean production methods can be applied to programming to make the process more efficient and productive.



Article:  Writing Effective Use Cases

This excellent article provides a 10-step approach for preparing use cases.  It focuses on a practical technique that emphasizes productivity over perfection.



Article:  The fine art of computer programming

Literate programming is becoming more popular and this article examines how the more widespread adoption of open-source software is making it more important to write code that can be easily understood by other programmers.



Article:  Classic Mistakes Updated

Steve McConnell provides updates to his "classic mistakes" list based on 10 additional years of observing and researching software development.  All of the seven new items are quite relevant to development and project management today.



Return to top


Software Testing & Quality

Article:  Software Testing Best Practices

This article presents 28 "best practices" that IBM research shows improve software quality and testing effectiveness.



Site:  Software Quality Assurance Course

This site includes a wide variety of materials from a college software quality assurance course, including lecture notes, homework assignments, quizzes, and exams.  The material is very comprehensive and would be useful to anyone looking to improve their software testing/QA skills.



Article:  Public In The Dark About 95% Of Software Bugs, IBM Says

Analysis by IBM shows that only about 5% of all security vulnerabilities are actually publicly identified with the rest being corrected before being exposed.



Article:  Exploratory testing: An improved approach

This package gives a good discussion of exploratory testing and suggests an approach for formalizing this technique.  It includes some example templates to be used with the process.



Article:  Are Tests Requirements?

This is an interesting, and somewhat provocative, look at the old question about whether or not test cases are requirements.



Return to top



Tutorial:  An Introduction to Web Services

This article gives a good overview of the technical implementation process of web services as a part of a general services-oriented architecture.



Tutorials:  Online Linux Courses

Intrigued by Linux, but don't know how to get started?  These detailed introductory tutorials will help you understand the background and basics of Linux.  (Personally, I recommend using the Ubuntu VMware appliance with VMware Player to get started in Windows.  You can install VMware tools and even upgrade to version 7.04 [Feisty Fawn].  For the adventurous, you can use the unofficial Wubi tool to install Ubuntu in a dual-boot configuration without partitioning on your system.  For more information on Ubuntu, read the online version of Ubuntu Unleashed.)



Reference:  Kick Java

Kick Java is a Java API reference that uses examples to show how to use the language.  The site is organized by the top-level APIs and you can search by API name or topic.  It covers Java SE, EE, and ME.



Tutorial:  Anatomy of the Linux kernel

Most of us are not operating system kernel developers, but this tutorial will give anyone who programs on Linux a better understanding of how the OS is put together and the subsystems and interfaces provided.



Tutorial:  Java-o-Matic

Java-o-Matic is a set of free, online Flash-based tutorials for basic principles in Java programming.  It includes tutorials on installing Java and Eclipse, as well as introductory Java programming topics, including classes.



Tutorial:  IP subnetting made easy

IP subnetting is a key element of efficient TCP/IP network design.  This tutorial explains how the IP address domain is structured and how to design subnets.



Reference:  A quick reference guide of HTML tags and their attributes

Even though hand-coding of HTML is not very common any more, knowing HTML tags can be helpful in tweaking a design or troubleshooting a problem.  This handy two-page reference of HTML tags can do just that.



Tutorial:  The absolute bare minimum every programmer should know about regular expressions

Regular expressions are an invaluable technique for doing pattern matching and string comparisons and validation.  This article takes a practical approach at learning the basics of them.



Return to top


Career Development/Miscellaneous

Article:  Five Signs of Job Burnout... and What to Do About It (recommended by Dave Smith)

Job burnout is becoming more prevalent.  Here are some tips to help you identify it and, more importantly, develop a plan to resolve it.



Article:  Apple II Marks 30 Years as PC Breakthrough

The Apple II, the first computer to truly be considered a "personal" computer, marks the 30th anniversary of its debut.  I remember saving $2500 as a kid in 1979 to buy an Apple II+ with 48kB RAM and a 143kB floppy drive with an Epson MX80 dot matrix printer.  How times have changed!



Report:  Best Places to Work in IT 2007

Computerworld provides their 14th annual report on the best employers for technology workers.  The report includes information about what the best employers do to keep employees satisfied and productive.



Article:  Business Telecommuting - What You Need To Know If You Want To Work At Home Online

Telecommuting is becoming more popular as the technologies that enable people to work from home (or really anywhere) are becoming more sophisticated and widely available.  This detailed article provides some excellent guidance for how to telecommute successfully.



Article:  Making Yourself More Likable at Work

Getting along with others makes you a more effective employee and a happier person.  Here are some great tips on how to be more likable around the office.



Article:  E-Mail Reply to All:  'Leave Me Alone'

The number of people that are declaring "e-mail bankruptcy" because their inboxes are simply too full is growing.  E-mail overload is worsening and people are looking for unique solutions to the problem.



Article:  10 Ways to Make Laziness Work for You

Do you find yourself procrastinating?  Here are some tips to make you more productive without having to substantially increase your workload or effort.  Looking for more tips?  Here are some other good ones.



Article:  19 Battlefield Tips to Survive Stress at Work

Excessive stress is probably the major contributing factor to poor work performance.  Here are some great tips for how to deal with and reduce work-related stress.



Article:  Gartner: The 40-Hour Workweek Era Is Ending

In addition to the reasons given above, Gartner predicts that by 2015, technology workers will be working far fewer hours, mostly in order to have better work-life balance.  Much technology work will be done on a "free agent" basis and the retirement of the Baby Boom generation will be a prime motivator for these changes.



Article:  How to be a Good Boss

So you've gotten the promotion that you wanted to manage your team.  But now what do you do?  This brief article gives some great tips and advice on how to be an effective and well-liked supervisor.  More than just the details it gives some salient examples of each tip.



Article:  How to Run an Effective Meeting

Worthless and ineffective meetings are probably one of the greatest drains on time, resources, and motivation in an organization.  This excellent article takes a step-by-step approach to organizing, running, and following up on an successful meeting.



Article:  Evolving a language in and for the real world: C++ 1991-2006

Bjarne Stroustrup, the creator of the C++ programming language, presents a paper on the evolution of the language over the past 15 years.  The paper is to be presented at the upcoming ACM History of Programming Languages conference.



Return to top


Telecommunications/Networking Industry

Article:  How Many Licks Does it Take To Get to the Center of the Internet?

This article presents a paper that shows the logical structure of the Internet based on the various providers and interconnections.



Book Excerpt:  Evolutions in Last Mile Broadband Access

This book excerpt discusses recent changes in last mile access and how they support the delivery of "triple-play" services.



Return to top

Useful Utilities

TeraCopy (Free – Windows 9x/NT/2000/XP/2003/Vista – 484kB)

Copying large files or directories can be frustrating if network problems cause the copy to fail at some point.  TeraCopy addresses these difficulties by including buffer adjustment to speed copies, pausing and resuming file transfers, and error recovery that retries the copy in case of failure and skips files that can't be copied without aborting the entire copy process.  It includes shell integration as a drop-in replacement for the standard Windows "Move" and "Copy" functions.



Net Profiles (Free – Windows XP – 320kB)

Net Profiles allows you to create and save multiple network configuration profiles for Windows XP.  Profiles can be created for both hardwired and wireless network connections and allow complete control over IP address, subnet mask, gateway, DNS, WINS, and DHCP.  In addition, you can specify different mapped drives, default printers, web browser home pages, and even wallpaper for each profile.



DiffMerge (Free – Windows, Mac OS X, and Linux – 3.1MB)

Looking for differences and merging changes is a fact of life in software development and web design.  DiffMerge takes some of the pain out of this task.  It features intra-line highlighting, compare/merge of 3 files simultaneously, directory comparison and merging, and extensive customization functions.



Power Dimmer (Free – Windows 2000/XP/2003/Vista – 3kB)

Power Dimmer is a neat screen saver that progressively dims the screen.  You can set the period for the screen to fade and the final brightness.  This is handy for when you want the screen to dim, but still need to monitor what is on the screen.



FileBox eXtender (Free – Windows 9x/NT/2000/XP/2003 – 673kB)

FileBox eXtender is an add-on that simplifies navigation in the standard Windows File Open and File Save dialogs by adding buttons for "favorite" folders and "most recently used" folders.  You can easily customize the "favorite" folders list.  In addition, it allows you to resize these dialog boxes, even in cases where the application doesn't normally support this.  Also, it includes "always on top" and "roll up" functions for all standard windows.



Clone Drive (Free – Windows 9x/NT/2000/XP/2003/Vista – 1046kB)

Clone Drive associates itself with extensions for disk images, such as .ISO, .IMG, and .BIN, so that you can mount these images as if they were physical disks.  Each mounted image gets its own drive letter, so you can use the image just like a regular physical disk.



Swept Away (Free – Windows 2000/XP/2003/Vista – 439kB)

Swept Away is a background utility that minimizes any open window when it hasn't been used (made active) for a designated amount of time.  You can specify the amount of time to wait to minimize windows and even specify an exclusion list for windows that you never want automatically minimized.



Return to top


Productivity Tips

Paste multiple lines of text in input box in Firefox

This little tweak will allow you to paste multiple lines of text into a regular input box on a web form in Firefox.  In the address bar, enter about:config to display the configuration settings window.  Put singleline in the Filter field.  Look for the editor.singleLine.pasteNewlines Preference and double-click on it to change the value to 2.  Press OK, close the about:config tab and you are done.


Create an .ISO image file from CD or DVD in Linux

In Linux, it is very simple to create an .ISO image of a physical CD or DVD using the dd command.  First, open a terminal window.  Then, mount the CD/DVD drive by running umount /dev/cdrom.  Then run the command:

dd if=/dev/cdrom of=filename.iso bs=1024

Similarly, you can use the mkisofs to create an .ISO image file from a directory (folder):

mkisofs -r -o file.iso /folder_location/


Return to top

Just For Fun

The World's Best Paper Planes

Who doesn't enjoy the fun of flying a paper airplane?  This excellent site has tips for making the best plane and instructions of over a dozen high flyers.  It even includes colorful PDF files for printing nice patterns for your creations.



Quiz:  What American accent do you have?

Take this quick quiz to find out what regional accent you use.



World's Famous Photos

This site presents the most famous photographs of all time from around the world along with the story behind each.  You will immediately recognize many of the pictures.



Classic Short Stories

This site provides a collection of excellent short stories from variety of the best authors of the craft including de Maupassant, Poe, Dickens, Chekhov, and many more.  Great for a quick lunchtime read!



Personal and Historical Perspectives of Hans Bethe

Nobel prize-winning physicist Hans Bethe explains quantum physics in a relatively simple manner with limited technical mathematics.  These lectures were originally given to his fellow residents at his retirement home.



Polar Clock

This is a very cool alternative format and extremely easy to read (after you get used to it) Flash-based online clock.  It displays the local date and time of the machine.



Star Trek Meets Monty Python

Not much to say here…  You just have to watch.  (Don't worry; it's safe for work!)




Stackopolis is an addicting online puzzle game.  The object is to build towers or other objects of a certain structure by moving blocks around on the playing surface within a defined time limit.  It seems simple at first, but it is insidious.



Return to top