Up to Newsletter Index

November 2006 Newsletter


Quotable Quotes


Whenever anyone has offended me, I try to raise my soul so high that the offense cannot reach it.  –Rene Descartes


Kindness is more important than wisdom, and the recognition of this is the beginning of wisdom.   –Theodore Rubin


Three grand essentials to happiness in this life are something to do, something to love, and something to hope for.  –Joseph Addison


The real voyage of discovery consists not in seeking new landscapes, but in having new eyes.  –Marcel Proust


Thought is the wind, knowledge the sail, and mankind the vessel.  –August Hare


Looking back, we see with great clarity, and what once appeared as difficulties now reveal themselves as blessings.  –Dan Millman


After you finish the first 90% of a project, you have to finish the other 90%.  Michael Abrash


A program should be light and agile, its subroutines connected like a string of pearls.  The spirit and intent of the program should be retained throughout.  There should be neither too little nor too much, neither needless loops nor useless variables, neither lack of structure nor overwhelming rigidity.  –Geoffrey James, The Tao of Programming


What you have been obliged to discover by yourself leaves a path in your mind which you can use again when the need arises.  G. C. Lichtenberg


Some people change when they see the light, others when they feel the heat.  –Caroline Schoeder


Character is like a tree and reputation like its shadow.  The shadow is what we think of it; the tree is the real thing.  –Abraham Lincoln


The pessimist complains about the wind; the optimist expects it to change; the realist adjusts the sails.  –William Arthur Ward


Kindness in words creates confidence. Kindness in thinking creates profoundness. Kindness in giving creates love.  –Lao Tzu


Return to top


Software Development Process

Article:  When Understanding Means Rewriting

This author makes an interesting observation that often the vast majority of code development time is spent actually understanding the existing code of an application.



Article:  Four Feckless, Counterproductive Business Approaches to IT

Alignment between business and IT is always a hot topic.  And most of the literature focuses on where IT falls down in the relationship.  This article examines four business reasons for poor alignment and project failure:  lacking a long-term plan; rushing projects along, sometimes unnecessarily; not knowing what they don't know; and Blaming IT for project failures



Article:  Aligning IT and Business Communities

One of the leading causes of application/system project failures is poor alignment and communication between business stakeholders and IT.  This article looks at some of the specific causes and solutions that some organizations have found useful in correcting them.



Article:  Breaking The Major Release Habit

This article gives a very nice overview of some of the main principles behind the agile development process.



Article:  Developers are from Mars, Programmers are from Venus

Even though the terms "programmer" and "developer" are often used interchangeably, this author shows that there is a significant difference in the approach between the two.



Article:  Techniques For Measuring IT's Effectiveness

This article lists 12 metrics that a variety of companies are using to gauge the value and efficacy of their IT groups.



Article:  Leveraging Key Development Principles to Achieve Software Engineering Best Practices

This book excerpt gives an overview of RUP and its open-source cousin, OpenUP, and then compares them to Scrum and XP as an introduction to how to balance agility and discipline in software development.



Article:  8 Expensive IT Blunders

This article provides a collection of cautionary tales about how IT mistakes can be very expensive.  To be sure, IT should not shoulder all of the blame in some of these, but these stories might make you more vigilant.



Article:  10+ things you should know about service oriented architecture (SOA)

This article presents a good list of pointers on factors to consider when implementing SOA.



Article:  Make it simple

Technology has doubtlessly improved life over the past half century.  But as technology becomes more commonplace, it extracts a cost, as well.  Reducing complexity is the next great frontier in technology research and development.



Article:  5 Principles For Programming

An experienced programmer presents 5 principles that should seem obvious, but are often overlooked by productive programmers.  One of his interesting points is that programs should be human-readable (see literate programming).



Return to top


Software Testing & Quality

Article:  Blame Vista Delay on Quality?

The significant delays in Windows Vista are well known.  This article looks at one positive side effect of the delays and that is a more rigorous approach to software quality, particularly quality measurement, by Microsoft.



Online Book:  Theory and Practice of Software Testing

This online text book on software testing attempts to bridge the gap between the user perspective of a system that "just works" and formal proofs of correctness for software systems.



Article:  Software Horror Stories

Comprehensive list of over 100 cases where software defects had significant consequences, in terms of cost and even loss of life.  Many of these are well-known cases, such as the Therac-25 debacle, but others aren't as widely reported, but just as educational.



Article:  An Interview with James Whittaker

In the second of this series of interviews with luminaries in the world of software testing, James Whittaker discusses his experiences and hopes for the future of testing.



Article:  "Test" Drive Your Software

This article is a good overview of the software testing process including how it corresponds to the software development lifecycle, including the associated activities between the two.



Return to top



Reference:  Web Design Glossary

If you do any amount of web development or are getting started in it, this excellent glossary will help introduce you some of the vernacular of this branch of programming.



Article:  Seven Habits of Highly Effective Programmers

This author gives a brief, but insightful, overview of some of the things that developers can do to be more effective contributors.  This list emphasizes many of the common agile concepts, whether you work within an agile environment or not.



Tutorial:  Controlling Excel

This book sample chapter gives excellent detail about how to use the Application object from VBA to control Excel.  You can use VBA to build an entire application on top of Excel and this tutorial shows you how.



Reference:  The Springer Computer Science Reading Room

This site provides a free (registration required) library of 100 technical and academic journals on computer science topics, including the well-known Lecture Notes in Computer Science (LNCS).



Tutorials:  Introduction to Cygwin

Cygwin is a great tool to Unixify your Windows environment.  However, sometimes getting started with Cygwin can be daunting to those are who are not familiar with Unix/Linux.  These articles give you a step-by-step guide for installing and starting out with Cygwin and provide a great foundation for moving into more advanced uses of the tools.





Tutorial and Reference:  Graphical vi/vim Cheat Sheet and Tutorial

This site provides a unique tutorial and "cheat sheet" reference for the vi/vim editors.  The documents are based on standard QWERTY keyboard layout with the vi/vim commands associated with each key.  It also includes an excellent 7-lesson vi/vim tutorial.



Return to top


Career Development/Miscellaneous

Article:  Resume pitfalls every programmer should avoid

If you are looking to get a new job, it all starts with a good resume.  This article gives some excellent advice for technical workers (not just programmers) to help improve your resume.



Articles:  Strategies for making your meetings effective and useful

This collection of articles, condensed into a single document, helps you plan, carry out and follow up on meetings that are effective.



Article:  Careers: 7 Tips For Success On The IT Technical Track

Not everyone wants to get on the managerial track.  Here are a few tips to keeping your career in good shape while staying on the technical track.



Article:  Bosses: The good, the bad, and the ugly

Some simple, practical advice on how to be a good manager including a simple quiz to help you gauge your managerial savvy.



Article:  10 reasons people make stupid decisions

When you observe the consequences of a bad decision (yours or someone elses), you probably ask yourself why such a foolish error was made.  This article discusses 10 common reasons for doing this, most of which are based on poor biases.



Article:  10 ways to train your boss to give you the support you need

Sometimes bosses, especially in technical jobs, aren't the best at providing guidance and coaching.  Here are 10 tips for how you can help your boss give you the input and feedback that you need.



Article:  The Best And Worst Cities For Data Centers

A recent study of 35 cities ranks Tulsa as fourth best for data centers since labor, land, and power costs are lower and the risks of terrorist attack or natural disaster are smaller



Article:  Cha-Ching! The First 2007 IT Salary Guide Arrives

A new survey by Robert Half shows that salaries for IT professions are expected to increase by 2.8% from 2006 to 2007.  Software developers, web designers, and data warehouse professionals are expected to see the highest increases.




Article:  10 Programming Languages You Should Learn Right Now

Knowing more than one (or two) programming languages can act as insurance against job market upheaval.  This article recommends 10 languages that can help you diversify your skill set.  Interestingly, dynamic languages are well-represented (even more than traditional languages) in this round up.



Article:  10 signs that it’s time to look for a new job

Deciding to leave a job is a particularly difficult decision.  How do you know if you should stay or go?  This article presents 10 indications that you should move on.



Article:  Where The Best-Paying High-Tech Jobs Are

When taking into account cost of living and other factors, technology workers can find that places like Montgomery, AL and Fort Smith, AR beat out the traditional tech “capitals” like Silicon Valley and Boston.



Article:  Most IT Pros Are Looking For A New Job, Says Survey

A new survey of 1000 IT workers shows that almost 60% are actively or passively looking for new positions.  Almost 3/4 of those want better pay and 40% would like better benefits.



Return to top


Useful Utilities

Poderosa (Free – Windows 9x/NT/2000/XP and .NET 2.0 Framework – 2.0MB)

Poderosa is a free terminal emulation application that supports Telnet and SSH1/2.  It uses tabs to allow multiple sessions in a single window and you can tile the various windows to monitor multiple sessions simultaneously.  In addition, you can embed local Cygwin shells (bash, etc.) in Poderosa.



sTabLauncher (Free – Windows 2000/XP and .NET 2.0 Framework – 672kB)

sTabLauncher is an unobtrusive application launcher.  It docks to the top or bottom of your screen and is hidden until you move your mouse to the edge of screen.  It uses a tab paradigm to separate applications into various categories. 



Butterfly XML Editor (Free – Cross-platform Java – 13.1MB)

Butterfly XML Editor is a Java-based IDE which uses a real-time incremental XML parsing engine to immediately validate XML and display errors.  It supports code completion and side-by-side DOM and source viewing.



Undelete Plus (Free – Windows 9x/NT/2000/XP – 689kB)

Undelete Plus allows you to recover files that were accidentally deleted from your system via Windows Explorer, from Recycle Bin, or even from a command prompt.  It supports FAT12/FAT16/FAT32 and NTFS/NTFS5 file systems and works will versions of Windows.



Cool PDF Reader (Free – Windows 9x/NT/2000/XP – 655kB)

Cool PDF Reader is a lightweight alternative to the standard Adobe Acrobat Reader.  With its small size, it loads extremely fast and you can take it with you on a floppy disk.  It even has support to convert PDF files to various image formats, including BMP, JPG, GIF, PNG and more.  Likewise, it includes zoom in/out and full screen PDF slide shows.



Trend Micro HouseCall (Free – Cross-platform – N/A - online)

HouseCall is a free, online (browser-based) service for scanning your system for security threats including viruses, worms, Trojans, and spyware.  It also provides links to patches for detected threats.  The system is cross-platform and supports all versions of Windows, most Linux distributions, Macintosh, and Solaris 2.6 and above.  Most popular web browsers, including Internet Explorer, Firefox, and Mozilla, are supported.



Jedi Window Dock (Free – Windows 2000/XP and .NET 2.0 Libraries – 164kB)

Jedi Window Dock allows you to dock any Windows application (except console applications) into a tabbed container to keep them grouped.  Handy for SDI applications, such as Putty, that you would like to keep together.



Print Free Graph Paper (Free – Cross-platform PDF – Various)

This site provides a variety of graph paper types, including Cartesian, engineering, logarithmic, and more, that you can download and PDF files and print yourself.  You can choose between English or metric grids and various grid sizes.



Taskbar Shuffle (Free – Windows 9x/NT/2000/XP – 624kB)

Taskbar Shuffle allows you easily drag and drop the buttons on your Windows taskbar to re-order the icons.  That's it!  Simple and straightforward.



Return to top


Productivity Tips

Use <Ctrl>+<Shift> to simplify text selection in MS Word

Selecting text in MS Word is sometimes a chore and taking your hands off the keyboard to use the mouse can break your concentration.  Instead, use <Ctrl>+<Shift> and the arrow keys to select text.  Using the left and right arrow keys while holding <Ctrl>+<Shift> will select text an entire word at a time from the current cursor location.  Tip in a tip:  In addition, you can use <Ctrl>+<Backspace> to delete the entire word to the left of the cursor.


Return to top


Just For Fun


This site is following two guys who are trying to hitchhike to all 50 US state capitols in 50 consecutive days (or less).  They are ahead of the curve on the east coast, but I bet it's going to get harder as they go west.




Wordy is a free online game similar to Tetris.  However, instead of trying to make solid rows of bricks to clear them from the board, each block has a letter and you try to spell words with adjacent blocks to make them disappear.  You have 90 seconds for each round to do this without the blocks piling up to the top.  Simple, but addicting!



Leonardo da Vinci:  Animated Illustrations

This online exhibit, which is part of a larger British V&A da Vinci exhibit, brings the famous drawings of the master to life without taking away from da Vinci's original genius.  These are a truly incredible new perspective on his work and far ahead of his time he was.



Nihilist Job Resume

Well, this one is a little hard to explain.  You'll just have to check it.  Trust me, you'll get a kick out of it.  And it makes a subtly serious point about some of the self-serving junk that we put on our own resumes (me included!).



Squashed Philosophers

Don't have time to read Plato, Locke, Descartes and others?  This site provides condensed/abridged versions of seminal works of philosophers from ancient times to the modern day.  Most can be read in under one hour.  Carpe diem!




Remember Spirograph from when you were a kid?  Here’s an online Java-based version that you can play with, so you don’t have to get all of that ink on your fingers.



SCIgen - An Automatic CS Paper Generator

This online tool uses a context-free grammar to generate apparently real computer science research papers.  The authors even had one such paper accepted as a non-referred submission to an actual computer science conference!



Return to top