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.
http://www.learncpp.com/general-programming/six-language-independent-ways-to-write-better-code/
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.
http://www.mountaingoatsoftware.com/article_view/27-advantages-of-user-stories-for-requirements
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.
http://www.infoworld.com/article/07/10/29/44FE-dirty-data_1.html
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.
http://www.infoworld.com/article/07/11/08/beck-kent_1.html
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.
http://www.ibm.com/developerworks/rational/library/nov07/cantor/index.html
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.
http://blogs.techrepublic.com.com/programming-and-development/?p=544
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.
http://www.melconway.com/research/committees.html
"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.
http://smallbusinessreview.com/management/downside_best_practices/index.html
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.
http://blogs.construx.com/blogs/stevemcc/archive/2007/11/01/technical-debt-2.aspx
These articles discuss the history and evolution of computer programming
concepts and philosophy over the past 50+ years.
http://www.informit.com/articles/article.aspx?p=1077906
http://www.informit.com/articles/article.aspx?p=1080343
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.
http://www.cio.com/article/29903
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).
http://www.blueflavor.com/blog/process/process_is_about_people.php
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.
http://www.computerworld.com/action/article.do?command=viewArticleBasic&articleId=9009862
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.
http://www.ddj.com/dept/architect/184414701
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.
http://whitepapers.techrepublic.com.com/whitepaper.aspx?docid=286836
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.
http://www.softwarequalitymethods.com/H-Papers.html#TestTest2
Think that testing doesn't really matter that much? Maybe these examples (in the classic "top 10" list style) will change your mind.
http://www.zdnet.co.uk/misc/print/0,1000000169,39290976-39001115c,00.htm
James Bach discusses the process required to develop your testing skills beyond the basics.
http://www.cmcrossroads.com/qa-zone/quality-videos/becoming-a-software-testing-expert.html
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.
http://www.ddj.com/blog/debugblog/archives/2007/10/five_questions_33.html
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.
http://gojko.net/2007/09/25/effective-user-interface-testing
The former Microsoft development lead for the C# editor offers some candid advice about continuous development quality improvement by asking difficult questions.
http://www.infoq.com/news/2007/11/criticism-from-microsoft-devlead
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.
http://tratt.net/laurie/tech_articles/articles/how_difficult_is_it_to_write_a_compiler
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.
http://www.ddj.com/dept/debug/197003338
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.
http://www.briggs.net.nz/log/writing/snake-wrangling-for-kids/
Once you mastered the basics
of the find command, here are some examples of how to exploit the full
power for efficiency and productivity.
http://www.go2linux.org/usages-examples-of-find-command
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.
http://www.learn-networking.com/
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.
http://css-tricks.com/what-beautiful-html-code-looks-like
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.
http://www.sdtimes.com/article/eclipse-20071015-01.html
http://www.sdtimes.com/article/eclipse-20071101-01.html
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.
http://www.ibm.com/developerworks/linux/library/l-linux-filesystem/
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.
http://informationweek.com/showArticle.jhtml?articleID=201808003
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.
http://blog.pmarca.com/2007/09/the-pmarca-gu-1.html
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.
http://itmanagement.earthweb.com/career/article.php/3708361
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%.
http://www.desktoplinux.com/news/NS9488592005.html
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.
http://www.computerworld.com/action/article.do?command=viewArticleBasic&articleId=305930
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.
http://slate.com/id/2177969/pagenum/all/
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é.
http://blogs.eweek.com/careers/content001/job_hunting/wither_the_resume.html
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!).
http://www.michaelhyatt.com/fromwhereisit/2007/11/how-to-shave-te.html
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.
http://www.cioinsight.com/article2/0,1540,2210485,00.asp
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.
http://www.computerworld.com/action/article.do?command=viewArticleBasic&articleId=9045786
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.
http://www.hrworld.com/features/interviewing-cheat-sheet-092507/
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).
http://www.nytimes.com/2007/11/04/jobs/04career.html
Computerworld's annual roundup of the top IT employers based on workplace diversity, training opportunities, career development, retention/turnover, and benefits.
http://www.computerworld.com/action/article.do?command=viewArticleBasic&articleId=9024622
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!
http://www.thesimpledollar.com/2007/11/07/how-to-construct-a-killer-resume-from-start-to-finish/
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.
http://www.networkworld.com/news/2007/111907-att-telework-questioned.html
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.
http://www.smh.com.au/articles/2007/11/05/1194117915862.html
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.
http://www.beet.tv/2007/11/the-future-of-o.html
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.
http://www.infoworld.com/article/07/11/19/Internet-could-run-out-of-capacity-in-two-years_1.html
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.
http://drvicon.sourceforge.net/
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.
http://www.donationcoder.com/Software/Mouser/desktopcoral/index.html
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.
http://www.mediachance.com/free/multimon.htm
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.
ftp://ftp.techsmith.com/pub/products/snagit/725/
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.
http://www.sqlpower.ca/page/architect
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.
http://deputy-dog.com/2007/11/01/11-phenomenal-images-of-earth/
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.
http://computerworld.com/action/article.do?command=viewArticleBasic&articleId=9043739
Who would have expected a the photo-sharing site Flickr to be the home of some fantastic photographic art? Check out these artists.
http://blog.epicedits.com/2007/10/07/five-fantastic-flickr-photographers/
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!
http://betterexplained.com/articles/measure-any-distance-with-the-pythagorean-theorem/
Got a little time on your hands? If so, then maybe you should take a shot at some of these unsolved cryptography gems.
http://historycus.blogspot.com/2007/10/worlds-10-ancient-uncracked-codes.html
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.
http://www.samurai-sudoku.com/
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.
http://news.bbc.co.uk/2/hi/uk_news/magazine/7049002.stm
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.
http://libraries.mit.edu/archives/exhibits/exam/