Up to Newsletter Index

January 2008 Newsletter


Quotable Quotes


The world is governed more by appearances than realities, so that it is fully as necessary to seem to know something as to know it.  –Daniel Webster


There is nothing in a caterpillar that tells you it's going to be a butterfly.  –R. Buckminster Fuller


We must not say every mistake is a foolish one.  Cicero


Having a role model in life is a great thing to have; one who provides us with direction and inspiration. However, we will forever be restricted by that person's limitations if we live within their boundaries. Be influenced, but set your own standards and develop your own principals, if you are ever to live beyond someone else's dreams.  –Jason Shahan


Speak only if it improves upon the silence.  –Mohandas Gandhi


Sunshine is delicious, rain is refreshing, wind braces us up, snow is exhilarating; there is really no such thing as bad weather, only different kinds of good weather.  –John Ruskin


Reflect upon your present blessings–of which every man has manynot on your past misfortunes, of which all men have some.  Charles Dickens


I've made an odd discovery. Every time I talk to a savant I feel quite sure that happiness is no longer a possibility. Yet when I talk with my gardener, I'm convinced of the opposite.  –Bertrand Russell


Conquering any difficulty always gives one a secret joy, for it means pushing back a boundary-line and adding to one's liberty.  –Henri Frederic Amiel


Happiness depends more on the inward disposition of mind than on outward circumstances.  –Benjamin Franklin


Return to top


Software Development Process

Article:  Seven Wonders of the IT World

From the webcam at the North Pole to the computer that is most distant from the Earth, here are seven amazing technological feats, including the background behind them.



Article:  Software Teamwork: Do the Right Thing

To truly improve your software development process requires that everyone is working together toward a common goal.  This article explores how to instill the teamwork mentality and ethic.



Article:  The Big Ball of Mud and Other Architectural Disasters

All software development efforts have their mistakes and problems and, most of the time, these can be overcome.  However, avoiding mistakes in architecture is key to long-term success.  This article examines some of the classic architecture blunders.



Article:  Overview of Agile Development

This book excerpt explains the key principles of agile development and how they differ from traditional waterfall development and introduces some of the common agile methodologies, such as Scrum and XP.



Article:  Google Gets Ready to Rumble With Microsoft

Microsoft and Google are in a showdown about the future of applications and whether they will continue to be desktop-based applications or hosted online services.  This duel has big implications for application developers everywhere.



Article:  Do Squeaky Business Wheels Get the IT Grease?

In the quest to achieve alignment between the business and IT, IT needs to be careful not to align with particular business users, but rather with the overall goals of the business.



Article:  Law of Least Astonishment

While surprises are fun on your birthday or Christmas, in software, particularly user interfaces, shocks should generally be avoided.



Article:  Waterfalling Forward to Agile

According to agile experts, two of the key success factors for transitioning from traditional development methods to agile are using test-driven development (developing tests first as part of requirements) and bottom-up adoption.



Presentation:  The Role of Leadership in Software Development

Mary Poppendieck, one of the key proponents and researchers of agile development, particularly "lean development" and the application Toyota Production System (TPS) principles to software development, gives an excellent video presentation about how good leadership is an imperative for successful projects.



Article:  Six ways to write more maintainable code

Maintaining code is a fact of life.  But with some minimal effort in the initial development, you can write code that is easy for you and others to understand.  One or two extra minutes spent putting comments into your code may save hours of frustration later.



Article:  Object-Oriented Modeling with UML: A Study of Developers' Perceptions

The research article explores how developers and programmers understand and use UML models for developing software.  It looks a variety of aspects, including benefits, easy of use, and the overall UML environment.



Article:  An Introduction to Catastrophe Disentanglement for Software Projects

When a software development project starts to go off the rails, the project manager needs to take decisive action to assess the situation and determine what approach to take.  This author refers to this as "catastrophe disentanglement" and presents the basic ideas behind this approach.



Return to top


Software Testing & Quality

Article:  Five Questions With Adam Goucher

Coherent and prolific testing blogger Adam Goucher is interviewed on his perspectives about software testing.  He offers some excellent advice about how to be more effective tester and on keeping your skills sharp.



Article:  Dimensions of SOA testing

Testing services-oriented architectures requires some different approaches (sometimes compared to changing the tires on a moving car) compared to standard application testing.  One of the key factors to consider is that you are testing an architecture rather than an application, which increases the complexity.



Article:  The Software Testing Paradox

Ruminations on the seemingly illogical (at least on the surface) rhetorical question:  Why do we write software to test software?  This is an interesting perspective on test automation and some of its pitfalls.



Article:  Test Driven Development

There is a lot of talk about test driven development in methodology circles, but does writing tests first really result in better quality?  This article looks at the results from some real projects.



Article:  The top five software testing problems and how to avoid them

This article discusses five common problems in test organizations and processes that limit their effectiveness and how to avoid them.



Return to top



Article:  Quick and dirty Web applications with bookmarklets

Getting started with Web 2.0 development does mean you have to master AJAX right off the bat.  This article gives you a gentle start by developing some simple (or even complex) Javascript bookmarklets.



Tutorial:  Life and times of a TCP packet

Most people have a reasonably intuitive idea of how data travels through the Internet via TCP/IP.  This article uses a detailed example to show the transmission of data via TCP, the transport protocol of the TCP/IP suite.



Tutorial:  The Alphanum Algorithm

Computers don't do a very good job of sorting things that contain both alphabetic characters and numbers into their natural sort order.  This algorithm takes the approach of splitting these items into their alphabetic and numerical components and sorting them separately.  Includes example implementations in Java, C++, Perl, and Python (or see this other Python implementation).



Tutorial:  A Brief Introduction to REST

In many development circles, REST (REpresentational State Transfer) is considered "old school".  But it is still good for solving a great number of problems with interactive web applications.  This tutorial gives you the basics by using some great analogies.



Tutorial:  Squeak By Example

Ever wanted to learn Smalltalk?  Well, this site is an excellent tutorial using the Squeak variant of language.  It provides step-by-step examples and fully touts the object-oriented features of the language.



Tutorial:  UML Use Case Diagrams - Tips and FAQ

Use case diagrams are very useful for outlining the main features and functions of a system and the actors and interactions.  This detailed tutorial shows how to use them effectively and how to organize them.



Tutorial:  GearsMonkey

This excellent mashup tool allows you to use Greasemonkey and Google Gears to make almost any web site available offline by doing a few simple Javascript tweaks.  The detailed tutorial uses Wikipedia as an example, with plenty of commentary about how to adapt it for other web sites.



Tutorial:  Little Wizard

Is there a child that you know that you'd like to introduce to programming?  Little Wizard is a development environment intended to teach programming concepts to elementary-school-aged kids.  Using only the mouse, children can explore programming concepts such as variables, expressions, loops, conditions, and logical blocks. Every element of the language is represented by an intuitive icon, making it easy to learn.



Reference:  Essential Database Naming Conventions (and Style)

Using meaningful and standard names is critical for good database design.  This site provides some simple and effective naming standards and style guidelines.  And if you don't like his, he offers links to other standards.



Tutorial:  Practical Aspects of Modern Cryptography

This online introduction to cryptography principles includes videos of entire semester courses lectures and homework assignments, including solutions.  This is the perfect way to get started with understanding this topic.



Return to top


Career Development/Miscellaneous

Article:  10 ways to make meetings more effective

No one that I know really likes meetings, but they are often unavoidable.  Here's how both organizers and participants can make meetings, when necessary, more valuable.



Article:  What causes a great performer to go sour?

One of the most common reasons that great workers start to fade is that management overburdens them with work, especially picking up slack from underperformers.  This article includes tips for getting the top performer back on track.



Article:  11 Tips for Nuking Laziness Without Becoming a Workaholic

Everyone wants to be productive, but you don't want to carry it to the other extreme of leaving health and relationships in the dust.  Likewise, everyone goes through productivity dry spells where procrastination seems to be the order of the day.  Here are some practical ideas for getting back into the groove in a positive way.



Article:  The Leader Formula: The 4 things that make a good leader

Stephen Covey outlines his four key traits that differentiate successful leaders from others. 



Article:  The psychology of learning

This interesting article, which focuses on software development, defines two types of categories:  perfection-oriented, who are always looking for better ways of doing things, and performance-oriented, who emphasize getting something done immediately.  A good perspective on the factors that contribute to successful projects.



Article:  The Top 4 Misapplications of the 80/20 Rule

The 80/20 rule (also known, especially in quality circles, as the Pareto Principle) is tossed around frequently in business circles, but many people don't use it appropriately.  Here are some bad uses of it along with tips for applying it correctly.



Site:  JobVent

Thinking about taking a new job?  Before you make the leap, you might want to check JobVent to see what current and former employees say about working there.  Obviously, a site like this probably has a bias toward the negative, but it still might give you a good idea about what your future co-workers think.



Article:  Write a perfect email

E-mail is the lifeblood of the modern world.  But many times e-mail is misused and even abused.  Here are some tips for writing an e-mail that is useful and effective.



Article:  The Second Decade Of Offshore Outsourcing: Where We're Headed

Offshore outsourcing is here to stay.  Here are some of the lessons that have been learned in the first decade and adjustments to expect to manage risk.



Article:  Staff retention problems? Look in the mirror…

Manager's often make a false assumption that if the company is gaining good employees, then things are OK.  However, research shows that almost 80% of people leave a company for reasons related to the boss.



Article:  Out of the box: Valley companies dump cubicles for open office spaces

Technology giants Cisco and Intel are experimenting with unassigned, open seating arrangements where people are free to (and encouraged to) work collaboratively.  Initial results are promising.



Article:  Don’t talk to your people

This management consultant suggests that managers should spend less time talking and more time listening to their employees.  He points out that companies hire employees for their skills and experience, but if they don't listen, they aren't taking full advantage.



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

Want to reduce stress and be more effective on the job?  Here are some practical tips for improving the way that you work with others.



Article:  How to Keep IT Staff Happy

Trinkets are not what IT workers are looking for.  Instead of companies spending money on such things, workers simply want management to listen to the workers and to show genuine leadership.



Article:  The Layoff Lifeboat: How to Get Back to Work

Here are some tips to help you weather the storm of a layoff and get a new job.



Article:  10 things you should do if you get laid off

No one likes to consider the prospect of losing their job, but it never hurts to be prepared.  Check out these tips before such an event happens.



Return to top


Telecommunications/Networking Industry

Article:  Terror in Telco Town

Traditional telecom operators must adapt to the all-IP world with its necessity for responsiveness and adaptability to market demands or face irrelevance.  This article looks at what it will take.



Article:  Is the Exaflood Coming?

One of the researchers who predicted that the over exuberant build-out of bandwidth in the late 1990s would result in a bursting bubble (which it did!) refutes the recent report that the Internet may run out of bandwidth by 2010.  And some other voices of skepticism about whether increased bandwidth use will cripple the Internet here and here.



Article:  Carriers Say Bandwidth Glut Is Gone

XO, AT&T, and Verizon have all announced that their networks will need to be augmented to support additional capacity due to the anticipated increase in bandwidth demands.



Article:  New Flexible Optical Fiber Pushes Hope for Cheaper Last Mile

A new 2.5 Gbps flexible plastic optical fiber from a Korean company and new glass optical fiber from Corning that can repeatedly bend without signal degradation are raising hopes that cheaper last-mile fiber to the home (FTTH) alternatives are just around the corner.




Return to top


Useful Utilities

IronPython Studio (Free – Windows 2000/XP/2003/Vista – 996kB)

IronPython Studio is a complete and free stand-alone (not dependent on the full Visual Studio suite) IDE for Python development.  It only requires the Visual Studio Shell toolkit (about 385 MB) to allow you to develop and debug Python applications on the Windows platform.  Features include editor, new application templates, GUI creation tools, and an integrated debugger.



Compact Calender (Free – Microsoft Excel or OpenOffice Calc – 25kB)

Every year, I look around the Internet for a good, simple printable yearly calendar to carry around with me.  And without fail for the past few years, I keep coming back to David Seah's Compact Calendar.  Available in PDF and Excel format, you can customize it to your own preferences.  It serves as an excellent at-a-glance ad hoc planning and scheduling tool, as well.  And if you want a simple calendar to paste on the top or edge of your monitor, this one fits the bill nicely.  Or this one if you need one to put in your wallet.



ConferencingNow (Free – Online tool – N/A)

If you like the rich toolset of GoToMeeting, but don't much care for the $49/month fee, then ConferencingNow is for you.  It mirrors almost all of the features that you've grown to love and does it all for free.  You can share your desktop, change the "presenter" of the session, and much, much more.



CookiePie (Free – Firefox – 34kB)

CookiePie is a Firefox browser extension that allows you to specify different browser cookie profiles in different tabs or windows.  This permits you to login into web-based systems with different accounts/profiles, like Yahoo mail, Meebo, or others.  Likewise, web developers can use it to test applications with different configurations.



CFDButton (Free – Windows 2000/XP/2003/Vista – 750kB)

CFDButton enhances the Windows common file dialogs (CFDs), such as the Open and Save windows, to include custom file filters and "favorite" folders so you can quickly switch to your most commonly used directories.



FileMenu Tools (Free – Windows 2000/XP/2003/Vista – 3.8MB)

FileMenu Tools allows you to customize the Windows Explorer context (right-click) menu.  You can add your own actions or customize applications to act on files.  But the greatest features are the built-in functions, such as synchronize folders, customized wildcard-based delete, find and replace text in files based on regular expressions, and many more.



XML Pad (Free – Windows 2000/XP/2003/Vista – 10.8MB)

XML Pad is a comprehensive, IDE-style XML editor.  It includes almost any feature you could need for editing XML files, including regex support, conversion between XSD and DTD (both directions), color syntax highlighting, XML schema editor, tree view of schema structure, integration with CVS, and much more.



Supercopier (Free – Windows 2000/XP/2003/Vista – 475kB)

Supercopier is an enhancement/replacement for the standard Windows copy/move functionality.  It allows you to monitor and control the copy speed, edit the this list of files (or order of files) while copying, resume a failed copy operation, and much more.



ADrive (Free – Online tool – N/A)

ADrive is a free, online file storage/hosting tool that provides up to 50GB of storage, which is much more than other services.  It is completely web-based (no downloads required), so you can access your files from any computer with an Internet connection.



Return to top


Productivity Tips

Increase productivity on remote system with Remote Desktop Connection keyboard shortcuts

If you like to use keyboard shortcuts, like <Alt>+<Tab>, but get frustrated when you try to use them on the remote system when using Remote Desktop Connection, here are some keyboard shortcuts that you can use:

Normal Shortcut

Remote Desktop Equivalent




Cycles through running programs in most recently used order



Displays the active window’s Control menu


<Alt>+<Page Down>

Cycles through running programs from right to left



Opens the Windows Security dialog box



Toggles the remote computer display between a window and a full screen


<Ctrl>+<Alt>+<-> (Minus sign)

Places a screenshot of the screen in the remote computer’s Clipboard


<Ctrl>+<Alt>+<+> (Plus sign)

Places a screenshot of a window in the remote computer’s Clipboard


Put the Internet Explorer 7 menu bar where it belongs

If you've upgraded to Internet Explorer (IE) 7, you probably noticed that the default position for the menu bar is between the address bar and the command buttons.  I find this very annoying and non-intuitive.  Fortunately, you can tweak the registry to put the menu bar in the standard position at the top of window (immediately below the title bar).  Open the Registry Editor (Start | Run | regedit) and navigate to the HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Toolbar key.  Create a new key here named WebBrowser (no spaces).  In the new WebBrowser key, add a DWORD value named ITBar7Position and set its value to 1.  Close the Registry Editor and restart IE for the change to take effect.


Return to top

Just For Fun

Smallest ever advent calendar made

In the spirit of Christmas, check out this ultracool nanotech advent calendar that measures just 8.4µm by 12.4µm.  That's so small that it would take 5 million of these to cover a typical postage stamp.



Directory of 2007 "Best of…" Lists

Ah, yes!  With the end of the year comes the annual "top 10" and "best of…" lists.  If you haven't yet had your fill of these retrospectives, head over to this site for a list of dozens of lists arranged by category.



Human Brain Cloud

Human Brain Cloud is a free, online massively multiplayer word association game.  The site displays a word or phrase and you enter the first thing that comes to mind.  The site shows you how many times your entry matches others.  The ultimate goal of the site is to build a lexicon of sorts.




Mark Twain is quoted as saying, "Everybody talks about the weather, but nobody ever does anything about it."  You can't actually change the weather with site, but at least you can have fun making your own predictions about tomorrow's weather.  The site provides forecasts based on consensus of multiple forecast sources and user forecasts.



Traveler IQ Challenge

Think that you know geography pretty well?  Here's where you can find out.  This interactive online game asks you questions where the answers are places around the world.  Click as close to the answer location as possible.  It's both challenging and fun.




Danteworlds is an interactive, multimedia journey through the three realms of the afterlife presented in Dante Aligheri's Divine Comedy.  The site features artist's renderings from throughout history, commentaries, and audio recordings.



Sim Web 2.0 Company

Think you've got what it takes to run your own Web 2.0 startup?  Play this interactive reality-based game to find out.



Famous Poets and Poems

This site provides an excellent collection of poems from a variety of poets for the poetry novice.  Browse by poet and learn the backgrounds of each of the poets.  Two roads diverged in a yellow wood…



Return to top