July 2007 Newsletter
We are all family. To care about each other isn't altruistic—it's the best form of self-interest. –Desmond Tutu
People like to imagine that
because all our mechanical equipment moves so much faster, that we are thinking
faster, too. –
Contradiction is not a sign of falsity, nor the lack of contradiction a sign of truth. –Blaise Pascal
You do not lead by hitting people over the head—that's assault, not leadership. –Dwight D. Eisenhower
A positive attitude may not solve all your problems, but it will annoy enough people to make it worth the effort. –Herm Albright
Most people go along and never experience their creativity. They run on old programs or follow the "normal" way of doing things. Creativity is not just painting a picture, writing a poem or doing a modern dance. It is a way of life. Every activity can become a creative experience. –Thomas D. Willhite
A successful individual typically sets his next goal somewhat but not too much above his last achievement. In this way he steadily raises his level of aspiration. –Kurt Lewin
It is not enough to have a good mind. The main thing is to use it well. –Rene Descartes
To be one's self, and unafraid whether right or wrong, is more admirable than the easy cowardice of surrender to conformity. –Irving Wallace
Difficulties strengthen the mind, as labor does the body. –Seneca
This book excerpt, using a well-developed example, explains what make
good business and system requirements for software applications and how to obtain
and document requirements. This article
covers some of the more esoteric aspects of requirements definition.
http://www.artechhouse.com/GetBLOB.asp?Name=goldsmith770-ch03.pdf
With the proliferation of programming languages, it's no longer a given
about what first language should be taught.
(When I was in school, everyone tool Fortran
first!) This article explores some of
the advantages and disadvantages of the various languages, including C, C++,
Perl, Python, Ruby, and more.
http://www.shlomifish.org/philosophy/computers/education/introductory-language/
This comprehensive online book covers a variety of topics to help
programmers adapt to agile development methodologies, especially Extreme
Programming (XP). The book includes some
excellent exercises to reinforce the concepts.
This interview presents some interesting concepts for achieving
IT/business alignment, particularly for large organizations where IT seems to
have "lost their way". It
suggests three levels of alignment—tactical, strategic and innovative—the build
on each other.
http://www.itbusinessedge.com/item/?ci=29437
What's the difference between lean and agile development? This article explores the similarities and
differences between them, both philosophically and practically.
http://www.sdtimes.com/article/story-20070615-04.html
This article provides some interesting, and well-conceived, objections to
the agile development trend. While I
don't agree with all of the conclusions, it has some noteworthy food for
thought.
http://worsethanfailure.com/Articles/The-Great-Pyramid-of-Agile.aspx
Object-oriented design and analysis provides tools for understanding and
building complex software systems. This
article explores types and techniques of decomposition for object-oriented
systems.
http://www.ddj.com/dept/windows/199901062
Many IT executives report that, while they still reject the premise of
Nicolas Carr's essay "IT Doesn't Matter", they say that it did
provide the impetus for them to do a better job of demonstrating the business
value that IT provides to their organizations.
http://www.cioinsight.com/article2/0,1540,2135026,00.asp
This site includes the full text of a revised (and work-in-progress)
edition of the mid-1990s classic text on software development called The Art of
'Ware. The book is patterned after Sun Tzu's treatise on conflict
and warfare The Art of War.
http://and-still-i-persist.com/?page_id=236
Researchers discuss how lean production
methods can be applied to programming to make the process more efficient and
productive.
http://www.mckinseyquarterly.com/article_page.aspx?ar=1979&L2=1&L3=0
This excellent article provides a 10-step approach for preparing use
cases. It focuses on a practical
technique that emphasizes productivity over perfection.
http://www.gatherspace.com/static/use_case_example.html
Literate
programming is becoming more popular and this article examines how the more
widespread adoption of open-source software is making it more important to
write code that can be easily understood by other programmers.
http://www.freesoftwaremagazine.com/articles/focus-software_as_art
Steve McConnell provides updates to his "classic mistakes" list
based on 10 additional years of observing and researching software
development. All of the seven new items
are quite relevant to development and project management today.
http://forums.construx.com/blogs/stevemcc/archive/2007/06/15/Classic-Mistakes-Updated.aspx
This article presents 28 "best practices" that IBM research shows improve software quality and testing effectiveness.
http://www.chillarege.com/authwork/TestingBestPractice.pdf
This site includes a wide variety of materials from a college software quality assurance course, including lecture notes, homework assignments, quizzes, and exams. The material is very comprehensive and would be useful to anyone looking to improve their software testing/QA skills.
http://www.rose-hulman.edu/class/csse/csse376/index.html
Analysis by IBM shows that only about 5% of all security vulnerabilities are actually publicly identified with the rest being corrected before being exposed.
http://www.informationweek.com/news/showArticle.jhtml?articleID=199901292
This package gives a good discussion of exploratory testing and suggests an approach for formalizing this technique. It includes some example templates to be used with the process.
http://www.whatistesting.com/articles/exploratorytesting.zip
This is an interesting, and somewhat provocative, look at the old question about whether or not test cases are requirements.
http://www.ddj.com/dept/debug/199600262
This article gives a good overview of the technical implementation
process of web services as a part of a general services-oriented architecture.
http://www.devarticles.com/c/a/Web-Services/An-Introduction-to-Web-Services/
Intrigued by Linux, but don't know how to get started? These detailed introductory tutorials will
help you understand the background and basics of Linux. (Personally, I recommend using the Ubuntu VMware
appliance with VMware Player to get started in Windows. You can install
VMware tools and even upgrade
to version 7.04 [Feisty Fawn]. For
the adventurous, you can use the unofficial Wubi tool to install Ubuntu
in a dual-boot configuration without partitioning on your system. For more information on Ubuntu,
read the online
version of Ubuntu Unleashed.)
http://www.schabell.com/linux-courses/
Kick Java is a Java API reference that uses examples to show how to use
the language. The site is organized by
the top-level APIs and you can search by API name or topic. It covers Java SE, EE, and ME.
Most of us are not operating system kernel
developers, but this tutorial will give anyone who programs on Linux a better
understanding of how the OS is put together and the subsystems and interfaces
provided.
http://www.ibm.com/developerworks/linux/library/l-linux-kernel/
Java-o-Matic is a set of free, online
Flash-based tutorials for basic principles in Java programming. It includes tutorials on installing Java and
Eclipse, as well as introductory Java programming topics, including classes.
IP subnetting is a key element of efficient
TCP/IP network design. This tutorial
explains how the IP address domain is structured and how to design subnets.
http://articles.techrepublic.com.com/5100-1035-6089187.html
Even though hand-coding of HTML is not very common any more, knowing HTML
tags can be helpful in tweaking a design or troubleshooting a problem. This handy two-page reference of HTML tags
can do just that.
http://i.t.com.com/i/tr/downloads/home/jlee_TR_builder_html_tag_ref.pdf
Regular expressions are an invaluable technique for doing pattern
matching and string comparisons and validation.
This article takes a practical approach at learning the basics of them.
Job burnout is becoming more prevalent. Here are some tips to help you identify it and, more importantly, develop a plan to resolve it.
http://msn.careerbuilder.com/custom/msn/careeradvice/viewarticle.aspx?articleid=696
The Apple II, the first computer to truly be considered a "personal" computer, marks the 30th anniversary of its debut. I remember saving $2500 as a kid in 1979 to buy an Apple II+ with 48kB RAM and a 143kB floppy drive with an Epson MX80 dot matrix printer. How times have changed!
http://www.eweek.com/article2/0,1895,2141777,00.asp
Computerworld provides their 14th annual report on the best employers for technology workers. The report includes information about what the best employers do to keep employees satisfied and productive.
http://www.computerworld.com/action/article.do?command=viewArticleBasic&articleId=9024622
Telecommuting is becoming more popular as the technologies that enable people to work from home (or really anywhere) are becoming more sophisticated and widely available. This detailed article provides some excellent guidance for how to telecommute successfully.
Getting along with others makes you a more effective employee and a happier person. Here are some great tips on how to be more likable around the office.
http://finance.yahoo.com/expert/article/careerist/34834
The number of people that are declaring "e-mail bankruptcy" because their inboxes are simply too full is growing. E-mail overload is worsening and people are looking for unique solutions to the problem.
http://www.washingtonpost.com/wp-dyn/content/article/2007/05/24/AR2007052402258.html
Do you find yourself procrastinating? Here are some tips to make you more productive without having to substantially increase your workload or effort. Looking for more tips? Here are some other good ones.
http://freelanceswitch.com/productivity/10-ways-to-make-laziness-work-for-you/
Excessive stress is probably the major contributing factor to poor work performance. Here are some great tips for how to deal with and reduce work-related stress.
http://ririanproject.com/2007/06/11/19-battlefield-tips-to-survive-stress-at-work/
In addition to the reasons given above, Gartner predicts that by 2015, technology workers will be working far fewer hours, mostly in order to have better work-life balance. Much technology work will be done on a "free agent" basis and the retirement of the Baby Boom generation will be a prime motivator for these changes.
http://www.eweek.com/article2/0,1759,2140512,00.asp
So you've gotten the promotion that you wanted to manage your team. But now what do you do? This brief article gives some great tips and advice on how to be an effective and well-liked supervisor. More than just the details it gives some salient examples of each tip.
http://www.wikihow.com/Be-a-Good-Boss
Worthless and ineffective meetings are probably one of the greatest drains on time, resources, and motivation in an organization. This excellent article takes a step-by-step approach to organizing, running, and following up on an successful meeting.
http://www.bnet.com/2403-13059_23-61211.html
Bjarne Stroustrup, the creator of the C++ programming language, presents a paper on the evolution of the language over the past 15 years. The paper is to be presented at the upcoming ACM History of Programming Languages conference.
http://www.cs.tamu.edu/news/items?id=1797
This article presents a paper that shows the logical structure of the Internet based on the various providers and interconnections.
http://popsci.typepad.com/popsci/2007/06/how_many_licks_.html
This book excerpt discusses recent changes in last mile access and how they support the delivery of "triple-play" services.
http://www.phptr.com/bookstore/product.asp?isbn=0132300575&rl=1#info4
Copying large files or directories can be frustrating if network problems cause the copy to fail at some point. TeraCopy addresses these difficulties by including buffer adjustment to speed copies, pausing and resuming file transfers, and error recovery that retries the copy in case of failure and skips files that can't be copied without aborting the entire copy process. It includes shell integration as a drop-in replacement for the standard Windows "Move" and "Copy" functions.
http://www.codesector.com/teracopy.asp
Net Profiles allows you to create and save multiple network configuration profiles for Windows XP. Profiles can be created for both hardwired and wireless network connections and allow complete control over IP address, subnet mask, gateway, DNS, WINS, and DHCP. In addition, you can specify different mapped drives, default printers, web browser home pages, and even wallpaper for each profile.
http://netprofiles.danielmilner.com/
Looking for differences and merging changes is a fact of life in software development and web design. DiffMerge takes some of the pain out of this task. It features intra-line highlighting, compare/merge of 3 files simultaneously, directory comparison and merging, and extensive customization functions.
http://sourcegear.com/diffmerge/index.html
Power Dimmer is a neat screen saver that progressively dims the screen. You can set the period for the screen to fade and the final brightness. This is handy for when you want the screen to dim, but still need to monitor what is on the screen.
http://www.whitsoftdev.com/powerdimmer/
FileBox eXtender is an add-on that simplifies navigation in the standard Windows File Open and File Save dialogs by adding buttons for "favorite" folders and "most recently used" folders. You can easily customize the "favorite" folders list. In addition, it allows you to resize these dialog boxes, even in cases where the application doesn't normally support this. Also, it includes "always on top" and "roll up" functions for all standard windows.
http://www.hyperionics.com/files/index.asp
Clone Drive associates itself with extensions for disk images, such as .ISO, .IMG, and .BIN, so that you can mount these images as if they were physical disks. Each mounted image gets its own drive letter, so you can use the image just like a regular physical disk.
http://www.elby.ch/fun/software/index.html
Swept Away is a background utility that minimizes any open window when it hasn't been used (made active) for a designated amount of time. You can specify the amount of time to wait to minimize windows and even specify an exclusion list for windows that you never want automatically minimized.
http://lifehacker.com/software/downloads/lifehacker-code-swept-away-windows-255055.php
This little tweak will allow you to paste multiple lines of text into a regular input box on a web form in Firefox. In the address bar, enter about:config to display the configuration settings window. Put singleline in the Filter field. Look for the editor.singleLine.pasteNewlines Preference and double-click on it to change the value to 2. Press OK, close the about:config tab and you are done.
In Linux, it is very simple to create an .ISO image of a physical CD or DVD using the dd command. First, open a terminal window. Then, mount the CD/DVD drive by running umount /dev/cdrom. Then run the command:
dd if=/dev/cdrom of=filename.iso bs=1024
Similarly, you can use the mkisofs to create an .ISO image file from a directory (folder):
mkisofs -r -o file.iso /folder_location/
Who doesn't enjoy the fun of flying a paper airplane? This excellent site has tips for making the best plane and instructions of over a dozen high flyers. It even includes colorful PDF files for printing nice patterns for your creations.
http://lifeandhealth.guardian.co.uk/guides/paperplanes/
Take this quick quiz to find out what regional accent you use.
http://www.youthink.com/quiz.asp?action=take&quiz_id=9827
This site presents the most famous photographs of all time from around the world along with the story behind each. You will immediately recognize many of the pictures.
http://worldsfamousphotos.com/
This site provides a collection of excellent short stories from variety of the best authors of the craft including de Maupassant, Poe, Dickens, Chekhov, and many more. Great for a quick lunchtime read!
Nobel prize-winning physicist Hans Bethe explains quantum physics in a relatively simple manner with limited technical mathematics. These lectures were originally given to his fellow residents at his retirement home.
This is a very cool alternative format and extremely easy to read (after you get used to it) Flash-based online clock. It displays the local date and time of the machine.
http://blog.pixelbreaker.com/upload/polarclock/polarclock.html
Not much to say here… You just have to watch. (Don't worry; it's safe for work!)
http://www.youtube.com/watch?v=luVjkTEIoJc
Stackopolis is an addicting online puzzle game. The object is to build towers or other objects of a certain structure by moving blocks around on the playing surface within a defined time limit. It seems simple at first, but it is insidious.