December 2007 Newsletter
They deem him their worst enemy who tells them the truth. –Plato
We don't live in a world of reality, we live in a world of perceptions. –Gerald J. Simmons
The important work of moving the world forward does not wait to be done by perfect men. –George Eliot
One way to get the most out of life is to look upon it as an adventure. –William Feather
Cheerfulness is the best promoter of health and is as friendly to the mind as to the body. –Joseph Adison
Progress is a nice word, but change is its motivator and change has enemies. –Robert F. Kennedy
Knowledge and timber shouldn't be much used until they are seasoned. –Oliver Wendell Holmes
When your work speaks for itself, don't interrupt. –Henry J. Kaiser
There is no security on this earth, there is only opportunity. –Douglas MacArthur
Dost thou love life? Then do not squander time, for that is the stuff life is made of. –Benjamin Franklin
Knowledge is the only instrument of production that is not subject to diminishing returns. –John Maurice Clarke
Everyone wants to improve the quality and efficiency of their development. Here are some great tips on how to create code that is more maintainable, reusable, and flexible.
User stories, which are a kind of higher level use case, are discussed as a good first-level tool for gathering system requirements, especially on agile projects.
Wondering how important data integrity is? This article uncovers some of the hidden costs of bad data and some of the more direct implications of data integrity problems.
Kent Beck is interviewed about how agile development techniques have evolved and suggests that agile methods are better at identifying project problems earlier in the effort.
Complexity (multiple interfacing systems, complicated requirements, etc.) is a fact of life in modern software development. But a second look at understanding the concept of complexity is the first step toward managing it.
Use cases, especially the narrative type, are an excellent way to capture requirements and user-to-system interactions. This article gives some tips about how use cases can help the analysis, development, and testing teams, by providing a standardized communication framework.
This classis (almost 40 years old!) article points out a key factor that analysts and project managers need to pay attention to when designing systems: Any organization that designs a system (defined more broadly here than just information systems) will inevitably produce a design whose structure is a copy of the organization's communication structure.
"Best practices" is often tossed around as a red herring to divert attention to the fact that fixing problems takes hard work. This author discusses how each organization must adapt good patterns to their specific needs instead of relying on "out of the box" fixes.
Technical debt is the cost incurred when designers or developers choose the expedient path for the short term, which ends up costing more in maintenance, rework, etc. in the long run. This article gives some tips for how to choose the right kind of "technical debt", since all projects involve some trade offs.
These articles discuss the history and evolution of computer programming concepts and philosophy over the past 50+ years.
Like it or not, requirements are the cornerstone to a successful development project. This article looks at requirements from the management perspective: cost, value, etc.
This brief article emphasizes that the purpose of any process or methodology is to enable work to be accomplished. The author notes that processes need to be developed with people in mind (i.e., how will the process be used).
This article discusses some helpful uses of web search sites for developers, such as searching for additional API documentation or examples, looking for others who have or have solved the same problem, and more.
Writing use cases to document requirements is a popular and effective technique. However, you need to beware of some of the pitfalls and problems that can crop up.
This whitepaper produced by The Economist research arm based on interviews with senior business executives, indicates that the divide between the business and IT is growing. Business people feel like IT is becoming less effective in meeting their needs.
Tester's often get stuck in the "normal" test cycle and are unable to properly plan and prepare for integrated testing. These articles look at some approaches for preventing this pattern.
Think that testing doesn't really matter that much? Maybe these examples (in the classic "top 10" list style) will change your mind.
James Bach discusses the process required to develop your testing skills beyond the basics.
The development lead for Microsoft's Macintosh test automation team says that even in the age of test automation, "classical" skills like ad-hoc testing, natural curiosity, and looking beyond the obvious are still the most skills.
This author says that the key element in testing via a user interface, whether it is a web-based system or typical client application, is not how to test, but what to test.
The former Microsoft development lead for the C# editor offers some candid advice about continuous development quality improvement by asking difficult questions.
This interesting article discusses the basic principles of writing a programming language compiler. Even if you don't want to write one yourself, it is still useful to understand the underlying process that your compiler uses with your own programs.
GNU make is the ubiquitous method for building applications. But finding and resolving problems with an errant makefile is tedious. Here are some great tips on how to debug makefiles.
This free, PDF-format book is intended for teaching beginning computer programming principles to young children (even under the age of 10!) using the Python programming language. Even some of us grown ups might find this to be a worthy tutorial or refresher.
Once you mastered the basics of the find command, here are some examples of how to exploit the full power for efficiency and productivity.
Like it or not, using a keyboard efficiently is a necessary skill in almost any line of work. If you are still hunting and pecking, this excellent online training can teach you essential touch typing skills in a fun, self-paced manner.
This site, written by professionals, is dedicated to teaching networking principles without using arcane technical jargon. They provide a wide variety of tutorials on networking and related security matters for both LAN and WAN technologies.
Everyone knows a good web site when they see one. What are some of the key characteristics of good web site craftsmanship? This article outlines some the important elements and includes a visual guide to the items.
Interesting charts about programming language popularity based on searches at a variety of web sites, including search engines, social networking sites, and online stores.
Most the attention Eclipse gets is for using it to do Java development. But Eclipse is a multipurpose platform that supports a variety of languages. These articles give a step-by-step approach for getting started with Eclipse for C/C++ development using the gcc compiler suite.
For developers moving from other platforms to Linux (or Unix) for the first time, one of the key elements to success is understanding the file system. But this can be a daunting task. This excellent tutorial explains the structure and logic behind the Linux file system.
The main benefit of being the office superstar is not the accolades, but the additional control over your own future that it gives you. Here are some tips for improving your work situation.
Marc Andreessen, creator of the original Netscape Navigator web browser, suggests that instead trying to create a detail roadmap of your career, you should focus on developing skills and looking for opportunities to apply them.
Higher demand than has been seen in over 5 years has driven salaries up by an average of 5.3% over 2007 and as much as 7% in some specialized areas.
Linux on the desktop in businesses continues to make in roads according to the 2007 Linux Foundation desktop Linux survey. The survey had more than twice the number respondents over 2006 and indicates that almost 2/3 of respondents have production implementations of desktop Linux with Ubuntu leading the pack at over 50%.
Computerworld's annual salary survey shows that IT salaries are continuing to increase after the market downturn in 2002, but they are frequently not keeping pace with inflation.
Some pundits are claiming that e-mail is dying because younger generations are turning to more immediate forms of electronic communication. However, others aren't so sure.
We often feature articles about resume preparation advice in this newsletter. But here's an article that turns that on its head. It seems that the advent of social media sites like Linked In, Facebook, etc. are making the traditional resume passé.
Many people are working more hours than they would like. Here are seven practical tips to be more efficient about your work, including spending less time online (yeah, I didn't much like that one either!) and planning your day (and sticking to the plan!).
While probably no one will be amazed that CIOs are the top-paid jobs in IT, it may surprise you to know that estimates show that 29 other IT job titles are projected to pay $100,000 per year or more in 2008.
Most workers encounter burnout in their jobs at some time or another. But quitting and finding a new job is not always a luxury that everyone can afford. This article has some great tips on restoring your passion for your current job with burnout hits.
Everyone is vulnerable to make career-effecting mistakes. Here are some tips on key mistakes that IT workers should try to prevent.
This site provides a list of links to 100 other sites for specific information about job interviews from both the candidate and interviewer perspectives. The list is well organized and the links are excellent.
Some new research shows that e-mail actually stimulates the creative portion of our brains, but there are limits to it's effectiveness. Working through e-mail can be an effective way to get some work done when your brain is tired, but trick is to not let it take over your day and distract you from the important things (i.e., important versus urgent).
Computerworld's annual roundup of the top IT employers based on workplace diversity, training opportunities, career development, retention/turnover, and benefits.
I know that we often feature a lot of articles about resume-writing tips, but this one was too good to pass up. This article gives specific examples and the dos and don'ts of good resume design, even for those like me that don't have a lot of design skills!
One of the largest and most visible (and possibly most emulated) experiments in telecommuting is coming to an end. AT&T has notified 10,000 - 12,000 telecommuters that they will need to start working in the office again. This is likely to re-open the debate about the pros and cons of telecommuting.
An Australian researcher has discovered a technique that reduces crosstalk on twisted pair copper cabling which may result in transmission speeds 100 times greater than currently possible.
Video content is the Holy Grail of new media. But incumbent telecom and cable carriers still have a major role to play in the future of online video.
Increased demand for streaming media is one of the factors that may cause a "bandwidth crunch" on the Internet by 2010. However, one of the more interesting reasons is increase in portable gadgets that will have Internet connections, increasing the demand for bandwidth.
Vista Drive Icon adds the functionality of displaying in drive icon in My Computer display which shows the drives free space in colored bar. It simply provides this nice little tweak to older versions of Windows.
Executor is an incredible Windows Run dialog replacement. It does the basic Run dialog functions and much, much more. It supports user-definable keywords so that you can define your own actions (e.g., "edit test.txt" will open test.txt in your favorite editor), auto-completion of entries based on history, display of command history, and it can be launched via hotkey or docked to your desktop, so it always available.
If you have applications on your desktop that you absolutely do not want to be obscured by other windows, especially when other windows are maximized, then DesktopCoral is for you. It basically creates an invisible, resizable docking bar on one edge of your screen, so that the windows that reside there will never be covered.
Typically, when you use a multi-monitor configuration in Windows, the task bar is limited to the primary display. Multi-Monitor Task Bar allows you to extend the task bar across all displays and has the added benefit of only showing the applications that are in a particular display show up on the task bar for that display.
ThumbWin is a handy desktop utility that allows you to minimize your windows to thumbnail windows at the bottom of the screen (instead of icons on the task bar). You can specify the size of the thumbnails and their transparency. In addition, it has hotkeys to bring the entire collection of thumbnails to the foreground or to send them to the background, to align them, or even to restore all of the minimized windows.
This is a completely free (and legal) version of the excellent SnagIt screen capture utility. Simply download it (from the link below) and install it. Then go to the SnagIt web site to request a free registration key. The giveaway is for the previous version (7.2.5) of the utility, but you can upgrade to the latest version for half price.
Want to try out Windows Vista, but aren't sure you want to completely take the plunge. Microsoft is providing a 30-day trial version as a Virtual PC/Virtual Server hard drive image. It requires about 1GB of free RAM on the host system and about 10GB of hard drive space.
Power*Architect is a free, open-source, Java-based data modeling tool with emphasis on data warehouse and data mart design, but works fine for standard logical database design, as well. It features drag-and-drop design functionality and can connect to multiple databases via JDBC simultaneously.
These are 11 absolutely amazing and beautiful images of the earth from space. They give a fascinating glimpse into the incredible beauty and complexity our planet.
Not all celebrities are as ditzy as Britney or Paris! Here are famous folks with serious technical chops. Undoubtedly you'll know about some of their backgrounds, but some may surprise you.
Who would have expected a the photo-sharing site Flickr to be the home of some fantastic photographic art? Check out these artists.
Remember in high school math class how you used to always ask the teacher why you needed to learn that stuff? Well, this is a very intriguing example of how a simple math principle can be applied to a wide variety of situations. Very cool!
Got a little time on your hands? If so, then maybe you should take a shot at some of these unsolved cryptography gems.
This online game is best described as the unholy union of two 1980s classics: Pac-Man and Zork. Basically, it is an interactive fiction version of the Pac-Man game.
Conquered regular sudoku and looking for a new challenge? Enter Samurai Sudoku! It's like standard sudoku, but it features 5 puzzles which overlap. A new puzzle is posted daily and you can browse previous puzzles by difficulty.
With the 50th anniversary of the launch of Sputnik just past, an electronics hobbyist shows how to build your own Sputnik with spare parts from around your house. Gives you a good flavor for the resourcefulness of the engineers from those days.
Think you are cut out for MIT? How about 150 years ago? Here's the first entrance exam for MIT. It's a bit more difficult than you might expect.