November 2006 Newsletter
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
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.
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
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.
This article gives a very nice overview of some of the main principles behind the agile development process.
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.
This article lists 12 metrics that a variety of companies are using to gauge the value and efficacy of their IT groups.
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.
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.
This article presents a good list of pointers on factors to consider when implementing SOA.
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.
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).
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.
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.
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.
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.
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.
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.
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.
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.
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).
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.
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.
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.
This collection of articles, condensed into a single document, helps you plan, carry out and follow up on meetings that are effective.
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.
Some simple, practical advice on how to be a good manager including a simple quiz to help you gauge your managerial savvy.
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.
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.
A recent study of 35 cities ranks
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.
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.
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.
When taking into account cost of
living and other factors, technology workers can find that places like
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.
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 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 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 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 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.
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 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.
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 allows you easily drag and drop the buttons on your Windows taskbar to re-order the icons. That's it! Simple and straightforward.
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.
This site is following two guys
who are trying to hitchhike to all 50
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!
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.
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!).
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.
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!