October 2008 Newsletter
Remember that there is nothing stable in human affairs; therefore avoid undue elation in prosperity, or undue depression in adversity. –Socrates
That which is obvious is not always known, and what is known is not always present. –Samuel Johnson
If I had asked people what they wanted, they would have said faster horses. –Henry Ford
Be wary of the man who urges an action in which he himself incurs no risk. –Joaquin Setanti
All that is necessary to break the spell of inertia and frustration is this: Act as if it were impossible to fail. –Dorothea Brande
Courage is the human virtue that counts most—courage to act on limited knowledge and insufficient evidence. That's all any of us have. –Robert Frost
If men could only know each other, they would neither idolize nor hate. –Elbert Hubbard
Our lives improve only when we take chances—and the first and most difficult risk we can take is to be honest with ourselves. –Walter Anderson
A longtime IT manager laments about IT workers who gripe that the business "just doesn't understand IT" and offers some suggestions for building a better relationship with their business customers and counterparts, such as by using collaboration to solve problems.
On the occasion of the 20th anniversary of Crosstalk journal, Alistair Cockburn laments that many of the improvements in software development over the past 20 years still go widely unheeded. Software development continues to be (and will be for the foreseeable future!) a human-centered activity, but most of the research and practical improvement efforts fail to recognize this.
Many agile pundits tout it as a panacea for all of your methodology ills. However, as this cautionary tale points out, organizational maturity in adopting any new methodology, including agile, is a key factor which can't be overlooked.
Many projects jump straight from requirements-gathering into development (or even skip requirements!). This author makes a good argument for why a design document is a valuable resource, especially for on-going maintenance, and gives some practical and adaptable tips on how write a good document without getting too far into the weeds.
In this 20th anniversary InformationWeek 500 report, the top innovators in IT across 21 industries are profiled.
This author suggests that, instead of Brooks' claim that adding developers to a late project makes it later is due to communication problems from the increase in communication channels, the real reason is because of the increase in dependencies which cause additional "waiting time" by developers who need others' code (or other deliverables) to proceed.
One of the "three amigos" of the unified process methodology family, Ivar Jacobson, laments that developers tend to be too distracted by the latest "fashion" in the industry that is supposedly going to solve all of their problems (the "silver bullet"). He suggests that instead of simply looking for something better, developers need to focus and creativity and take the techniques that work for them and adapt them to improve. He also warns against "ivory tower" mandates on specific methodologies.
Agile development methodologies often revolve around grassroots "management" of the process and this is something that executives and management have difficulty adapting to. This article discusses ways that management can support agile development.
Most industries gave up on the concept of working more than 40 hours per week for extended periods for one simple reason: It simply doesn't work because productivity decreases and error rates increase.
According to a new survey by the Society for Information Management, alignment of IT with business objectives is the main concern of top IT management, as it has been for 6 of the past 7 years. It seems telling that this is an exceedingly difficult problem to resolve, since it has ranked so high for so long.
In an equal-time counterpoint to recent articles where developers expressed their frustrations with senior management, CIOs discuss the deficiencies that they see in programmers.
This site provides slides from a college course on software quality engineering.
Failure to consider software quality, on both COTS and in-house developed applications, is a major factor in IT project failure.
Bugs are inevitable in software development (no matter what anyone else tells you!). What separates good developers from the rest of the pack is not just their ability to produce a small number of bugs, but also to successfully resolve defects when they are found.
What is the difference between testing and QA? How do you get started with a QA function? Read this article to find the answer to these and other questions.
Software architect is now an established discipline and role in software development. This wiki, which you can contribute to, gives overviews of some of the strategic and tactical responsibilities of architects.
This cute web comic is actually a reasonable explanation of how TCP/IP works from a non-technical angle.
With the development of cheaper and more powerful computers, programming efficiency seems to have fallen out of the fashion. Here are some tips from algorithmist Jon Bentley on keeping efficiency in mind.
Pointers are the most powerful feature of C, allowing C programs do directly access memory and hardware. But they are notoriously difficult to understand and to master. This detailed tutorial takes a step-by-step approach with excellent examples.
REST (Representational State Transfer) is one of the key technologies of interactive web design. This article explains the REST architectural principles and the concepts behind stateless communication.
In my opinion, one of the great differentiators between leaders and managers is that leaders know how to help others adapt to change. This article emphasizes that most people actually like change, but that it's feeling like they are forced to change that they resist.
Even though technology has certainly made it easier to telecommute, most workers don't want to do it for fear of not being the office damaging their careers.
Productive people are usually busy people and this often results in poor balance between work and personal life. Here are some brief, but great tips on how to bring good balance. While not one of the specific tips on the list, I would wrap the tips up into one overarching principle: set boundaries on your time and tasks.
So you've got your resume in shape and have landed a job interview. If you haven't interviewed in a while, how to do you prepare? This site provides links to some excellent resources on planning and practicing for your interview.
At a talk at Google, Dr. David Levy discusses the apparent paradox that technology was supposed to improve our ability to move to more deep, creative, and mature thinking, but that we seem to have greater information overload than ever before. He cites Vannevar Bush's essay As We May Think and talks about how we can counteract the flood of information that everyone deals with on a daily basis, especially by considering Josef Pieper's view of leisure as the mentally contemplative mode of preparing the mind to receive information.
A report from a British researcher shows that, on average, it takes a person 64 seconds to resume their train of thought after checking e-mail. For a person who checks e-mail every 5 minutes, this results in a lost of 8-1/2 hours (!) of time per week.
Technology pundit Clay Shirky suggests that information overload in the current environment is due to the fact that the economics of producing content allow anyone to publish material which has removed the filters (prioritization) of what is valuable and important information.
With the economic meltdown in full swing, everyone has their eye on the longer term effects, especially the job market. Technology jobs are generally seen as remaining strong for now, but there are already certain regions that are struggling.
The authors of a new article in Harvard Business Review explain that most workers react to worries about a layoff in the wrong way. They recommend that maintaining a positive attitude and taking risks to get your name out there are the most important tactics. Furthermore, it helps to have a good perspective about what a job really is.
Many people trace the origins of the net neutrality debate to AT&T CEO Ed Whitacre's famous (infamous?!) comments in 2005 about content providers using telecom provider's pipes for free. Peering and transit are the linchpins of the Internet as we know and this article explains how the system works in the free-market environment.
A Barack Obama presidential administration is likely to have a Cabinet-level "Chief Technology Officer". Specially, this CTO would probably have responsibility to keep the power of the FCC in check. This would be an interesting shift from the historical independence of the FCC.
UC San Diego researchers have developed a new network routing algorithm that reduces the communication overhead of route calculations by an order of magnitude
Substantial increases in streaming video content are pushing providers toward tiered pricing in order to better manage traffic growth. However, the types of tiers are not clear yet.
For all of the recent discussion
about how the
CRP (or Control Running Programs) is a handy Windows utility that allows you to automatically restart a program if it crashes or to limit the number of instances of a program to conserve memory and system resources. Simply drag a program executable from Windows Explorer onto CRP window and indicate the number of instances that should be run.
MobaLiveCD is a freeware portable packaging of the lean and excellent QEMU emulator that allows you to simply run Linux live CDs, such as Ubuntu, under Windows by simply downloading the ISO image of the live CD. Furthermore, it is a small, single executable that can even be run from a USB thumbdrive.
GBridge is a free tool that allows you to set up a VPN between PCs using your GMail/GTalk account. It allows you to securely share files, quickly sync or backup files between PCs, and even do desktop remote control (via VNC). You can even set up multi-node VPNs with any other GMail/GTalk user.
SchemaSpy is a free tool that will generate textual metadata descriptions and graphical representation (using the Graphviz library) of your database schema, including FK relationships, etc. It supports most database servers, including Oracle, MySQL, and MS SQL Server (really any database with JDBC support).
Rohos Mini Drive (RMD) is a free encryption tool for USB thumb drives. If you carry any sensitive information on your thumb drive, it is imperative to secure it properly. RMD creates a hidden, encrypted partition on the thumb drive for storing your files. It does not require Administrator privileges on your system to open/view the partition.
For a thoroughly post-modern (and certainly tongue-in-cheek) view of technical support, check this out!
Water is the stuff of life and is ubiquitous on Earth, but, even for all of its simplicity, water has some strange and unique properties. No wonder so much attention is paid to the hope of finding water on Mars and elsewhere in the universe.
This site boasts links to over 5000 online image creation tools. Create your very own vanity license plate or custom wallpaper. Excellent resource for web developers.
This probably only fits the very narrow category of geek/nerd fun, but it is somewhat amazing, as well. This site discusses the construction of a classic Babbage difference machine entirely from Legos. The site provides fascinating (well, I thought so, anyway!) details about difference machines in general and the author's specific implementation. And if such an esoteric use of Lego's doesn't tickle your fancy, you can always make a miniature Lego trebuchet!