Up to Newsletter Index

August 2008 Newsletter


Quotable Quotes


Having a strong desire or being successful does not mean that you are going to feel great all the time.  No matter how enlightened I become, I will not be positive all the time.  You have to understand the swing of the pendulum.  It must swing back and forth.  The only other alternative is to sit still in neutral, which is precisely what most people do.  –Thomas D. Willhite


One of the most important ways to manifest integrity is to be loyal to those who are not present.  In doing so, we build the trust of those who are present.  –Stephen Covey


People seldom become famous for what they say until after they are famous for what they've done.  –Cullen Hightower


A compliment is a gift, not to be thrown away carelessly, unless you want to hurt the giver.  –Eleanor Hamilton


The goal you set must be challenging. At the same time, it should be realistic and attainable, not impossible to reach. It should be challenging enough to make you stretch, but not so far that you break.  –Rick Hansen


My definition of an expert in any field is a person who knows enough about what's really going on to be scared.  P. J. Plauger


It is not enough to be industrious; so are the ants. What are you industrious about?  –Henry David Thoreau


It is the greatest of all mistakes to do nothing because you can only do a little.  Sydney Smith


Return to top


Software Development Process

Article:  5 Project Points of Failure to Avoid

This article describes the five key failure modes for projects that are likely to cause the most damage both to the project and the reputation of the project team.



Article:  Top 10 Concepts That Every Software Engineer Should Know

As connectivity and "always on" infrastructure becomes ubiquitous, the role of the software developer is changing.  Here are ten principles (not really patterns or tools) that successful programmers need to understand to be successful in the new environment.



Article:  World War 2, Rationalism and Agile Development

About World War 2, Eisenhower said, "Plans are nothing; planning is everything."  This article explores applying this principle to development and how to develop a plan that is flexible and adaptable.



Article:  Maybe Normalizing Isn't Normal

Jeff Atwood gives a good discussion about when you should and should not normalize your database structures taking into account performance and storage.



Article:  An A-Z Guide to Being an Architect

Many organizations have a technical career path that takes a person from being a developer or analyst to the role of system or application architect.  But what is actually different about architecture compared to the old roles?  This article explores some of the specific and significant roles of the architect.



Article:  36 steps to success as technical lead

The technical lead role in software development is one of the most difficult.  You must strike the proper balance between coding, leadership, and project management.  Here are some great tips on how to set the proper boundaries of those responsibilities.



Article:  Spartan Programming

Jeff Atwood considers taking the minimalist approach to programming in order to reduce complexity and improve readability and maintainability of code.



Article:  Why project managers get no respect

Project managers don't get respect, because, too often, they focus too much on the process (and meta-deliverables like project plans, status reports, etc.) and not on the results/output.  PMs need change perspective on learn what they can do to help their teams.



Article:  Is IT no longer about technology?

Most IT professionals understand that the role of the IT organization is changing to align with business needs.  Just how much is the pendulum swinging away from the technology focus?



Article:  The Myth of the Interchangeable Programmer: Can’t We Just Offshore Him?

This article explores why simplistic techniques for project estimating and planning result in failed and over-budget projects.  The author recommends that when building a project team project teams be limited to 8-person teams to avoid excessive overhead.



Return to top


Software Testing & Quality

Humor:  I Find Your Lack of Tests Disturbing

Having trouble convincing management about the importance of testing?  Maybe you need to get Darth Vader to make your case for you!



Tool:  soapUI

Many web-based applications that are developed today provide some type of SOA API that allows other applications to request services.  This creates a new challenge for testers in how to validate these functions.  The soapUI utility is a Java-based tool for testing web services.  See this article for a quick overview on how to set up and use soapUI.



Article:  Notes on "An Insurgence of Quality"

This article gives a great summary with highlights from a recent presentation by Alan Cooper, the father of Visual Basic and interaction design, about how developing good software sometimes requires a back-door approach to quality.



Article:  10+ priorities for testing critical systems

We all know that testing often gets short shrift on most development projects.  Here are some strategies for getting the proper attention and resources for testing.



Return to top



Tutorial:  Learning the shell

To be successful with Unix/Linux, you really need to know your way around the command prompt, known as the shell.  This comprehensive tutorial gives you the basics plus some intermediate topics, including a great "tour" of the basic top-level directories and what they do.



Reference:  A Student's Guide to Software Engineering Projects

While intended for software engineering/computer science students, this free guide is a useful reference for anyone working on a development project.  It covers all of the key aspects of a project, including project management, analysis and design, and implementation.



Tutorial:  grep is a beautiful tool

Even if you don't use Unix/Linux, the grep command line utility should be in your toolkit.  (Get the native Windows version here or use Cygwin.)  This article, including the many excellent comments, gives you a nice introduction to the simple power of grep.



Tutorial/Reference:  Object-oriented Programming in Java Textbook

This is a free, online version of an excellent text book that teaches object-oriented programming (OOP) using examples in Java.  The book focuses more on OOP principles than on Java, so it is an excellent reference, as well.



Tutorial:  Linux/Unix File Permissions

One of the most important aspects of understanding and using Linux or Unix is to understand permissions on files.  This nice, detailed tutorial gives good explanations of the concepts and practical implications.



Tutorial:  Functional Programming Tutorial

Recently, there has been a shift in interest from object-oriented programming (OOP) to functional programming (FP).  This tutorial, which gives examples from C#/.NET (but doesn't rely on knowledge of either!), provides a detailed introduction to the concepts and practice of FP.



Return to top


Career Development/Miscellaneous

Article:  Is it Time to Retire the Never-Ending List?

If you have a to-do list and just continues to get longer instead of shorter, this can actually hurt your productivity.  This author suggests focusing on (and only on!) a list of 5 items that you want to accomplish for the day.  Then you can re-evaluate and re-prioritize the next day based on new items that come in.



Article:  Study: IT jobs will drop in 2009

A Goldman Sachs IT staffing survey says that IT job market will shrink in 2009, with contractors and outsourcers taking the brunt of the reductions.  (However, other research indicates an increase in outsourcing.)  CIOs say that their top priorities are now server consolidation and server virtualization to reduce impact of rising energy costs.



Article:  Hi-tech is turning us all into time-wasters

New research indicates that 15% - 20% of people are considered 'chronic procrastinators' and technology such as mobile phones and computers are giving people more excuses to waste time.  Furthermore, procrastination is contributing to increases in depression, insomnia, and other mental illnesses.



Article:  Creative Code: 14 Ways to Learn From Creative Programmers

Most people consider programming to be a very linear and technical pursuit, but, in fact, like many engineering disciplines, it is a really a very creative and mentally fulfilling activity that requires examining various alternatives and choosing the appropriate (not necessarily the "best") one.  Here are some tips on keeping the creative juices flowing in development.



Article:  Patent Gridlock Suppresses Innovation

American competiveness is being put at risk due to the broken software patent system.  Patents for drugs and "hard" technologies must be very specific, but software patents tend to be generic and abstract.  The USPTO seems to be coming around on this matter.



Article:  Running an Effective Teleconference or Virtual Meeting

Distributed project teams are here to stay and so are teleconferences and virtual meetings.  Here are some tips on how run them effectively and how they differ from traditional meetings and some of the "gotchas".



Article:  How Priorities Make Things Happen

In this book excerpt, project management expert Scott Berkun suggests that prioritization of activities is the first step to success, since it provides a framework for everyone on a project to understand the most important things and what to do next.



Article:  How to Say Nothing in 500 Words - A Lesson on Writing

We all know how important good writing is in communicating our ideas.  But why is good writing so difficult?  Here are some great tips, extracted from an excellent essay, on how write better, especially (but certainly not exclusively) for those who blog or doing other online writing.



Article:  Will you get promoted? Take the test

Want to assess your chances of getting that promotion?  Here are the questions that you should be asking yourself.



Article:  You're not getting the job -- 25 reasons why

Here are 25 brief, but powerful, tips to keep in mind the next time you are looking for a new job.



Article:  Poking Holes In The Long Tail Theory

Wired editor Chris Anderson posited the concept of the "long tail", that the Internet would allow even small volume items to be offered, a few years ago.  Now, some new research is calling these ideas into question.  I don't think that this is the end of the concept, but just sort of a maturing of what it means.



Article:  Making a case: How to become a thought leader and influence decisions

While this article is slanted toward managers, it offers some good advice to anyone involved in a project who wants to successfully present and promote their ideas.



Return to top


Useful Utilities

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

Want to share a file with others, but it's too big to send via e-mail?  Well, then fileai to the rescue.  One of the great features of fileai is that you file is not stored on some intermediate host:  You transfer your file directly from your computer to others.  Go to the site and select the file to be shared and you'll get an URL to send to others so that they can download the file.



KeyBreeze  (Free – Windows NT/2000/XP/Vista – 3.16MB)

At it's core, KeyBreeze is a replacement for the Windows Run dialog, but it does immensely more.  You can use it's command line to launch programs, open files, open web sites, do Internet searches, lookup words online, paste frequently used text, and much more.  You can even customize it to define your own shortcut commands.



Pencil Project  (Free – Cross-platform/Firefox 3 – 400kB)

Pencil Project is a unique tool built on top of the excellent Firefox 3 web browser that allows you to create diagrams and web page prototypes with ease.  It has built-in stencils for most common diagram and web page elements.  And user-defined stencils are supported.  Output can be generated in PNG format.



Oracle SQL Developer (Free – Cross-platform Java – 46MB)

SQL Developer is Oracle's flagship database development and query tool.  However, since it is Java-based it can actually be used to connect to most any database that has JDBC driver support.  For example, see this article for how to use it to connect to MySQL.  One of the excellent features of SQL Developer is that can have connections to multiple databases open in a single window.



KDE Window Resizer/Mover (Free – Windows 9x/NT/2000/XP/2003/Vista – 219kB)

KDE Window Resizer/Mover is a slick little background utility that emulates the KDE functionality for resizing and moving windows:  hold down the <Alt> key and left-click anywhere in a window to move it or right-click in the window to resize it.  The utility is actually just an AutoHotKey (a great freeware utility itself!) script and the source is available on the site if you want to dissect or modify it.



Return to top


Just For Fun

Chuck Norris on Java Development

Who knew that Chuck Norris was a master Java developer, in addition to his acting, martial arts, and political skills?  :)



Inside the Lego Factory

This site provides an incredible 3-part video tour of the factory that produces and packages the 19 billion Lego bricks made each year.  And, if you though the mainframe was dead, think again; this factory is completely controlled by a mainframe.  If this isn't enough for your, check out this Lego Mindstorm robot that autonomously solves a Rubik's cube.



This Is Sand

This site is a cool Flash-based play site.  Each pixel on the screen represents a grain of digital sand.  Click the mouse to drop sand and watch it pile up at the bottom of the screen.  You can even change to one of thousands of different colors.  Soothing and relaxing!



Over is Right, Under is Wrong

In these difficult times, what could be more important than the intractable debate over the orientation of toilet paper rolls on the holder?!  :)



Return to top