July 2008 Newsletter
The true worth of a man is to be measured by the objects he pursues. –Marcus Aurelius
There is no such thing as a failed experiment—only experiments with unexpected outcomes. –R. Buckminster Fuller
The palest ink is better than the best memory. –Chinese proverb
Tears are the rinse water of an unhappy heart. –Raynor Schein
Motivation is everything. You can do the work of two people, but you can't be two people. Instead, you have to inspire the next guy down the line and get him to inspire his people. –Lee Iacocca
The perfection of a clock is not to go fast, but to be accurate. –Luc de Clapiers
All programmers are playwrights and all computers are lousy actors. –Unknown
Ability is what you're capable of doing. Motivation determines what you do. Attitude determines how well you do it. –Lou Holtz
It is easier to be wise for others than for ourselves. –Francois De La Rochefoucauld
A handful of patience is worth more than a bushel of brains. –Dutch Proverb
In order for business process management (BPM) to be effective and
flexible/maintainable, organizations need to start looking at BPM with an
object "lens": as a collection
of tightly coupled data-plus-function/action bundles.
http://www.cutter.com/research/2008/edge080429.html
While I don't necessarily agree that agile techniques are without any
value, this author makes a strong case for how most companies do not have
sufficient organizational maturity to support the foundational techniques of
agile development.
http://elegantcode.com/2008/05/27/why-agile-doesnt-really-work/
Grady Booch is interviewed about the importance
of true architecture, planning and design in software development and his
crusade to turn development into a true engineering discipline. And be sure to check out this
thoughtful and well-reasoned response to Booch.
http://www.sciam.com/article.cfm?id=softwares-dirty-little-secret
Project failure occurs far too often in software development. In this article, a manager presents the
underlying causes of failure from an report on an
actual project.
http://brucefwebster.com/2008/06/16/anatomy-of-a-runaway-it-project/
One of the foundational tenets of agile development is that scope is
never static. Agile projects expect and
plan for scope changes. This article
looks at how project leaders on agile projects manage scope (and user
expectations!).
http://www.informit.com/articles/article.aspx?p=1215640
New survey results show that both line-of-business executives and IT
professionals believe that the influence of the CIO has been reduced over the
past year. The conclusion is that
technical chops have been sacrificed on the altar of business
"smarts".
http://www.informationweek.com/shared/printableArticle.jhtml?articleID=208403646
Many people associate agile development practices with a free-for-all
approach. However, this article
demonstrates that good architecture is a cornerstone of agile development,
especially as it relates to managing consistency among various applications.
http://searchsoftwarequality.techtarget.com/news/article/0,289142,sid92_gci1314881,00.html
With a flavor for possible alternate history scenarios, this article
looks at some of the events that have shaped today's technology environment.
http://www.infoworld.com/article/08/06/09/24FE-tech-turning-points_1.html
In my experience, one of the most overlooked aspects of project
management is determining and proper engagement of a strong sponsor (and/or
steering committee) for a project. This
article discusses the ins and outs getting good sponsorship for you project.
http://www.ftpress.com/articles/article.aspx?p=354572
Agile methodologies often include a role called "coach". But how is this role different from a project
manager or technical lead? This article
explains the coach function (which may be performed by a member of the existing
team). Good advice for any project
leader, whether you do "agile" or not.
http://www.infoq.com/articles/agile-coach-a-to-z
This excellent essay examines the characteristics of high-quality software, as well as the techniques used to develop such applications. While the essay is oriented toward open-source application development, the tips can be applied to most any development effort.
http://www.shlomifish.org/philosophy/computers/high-quality-software/
This is an online version of the appendix from the Kaner, Falk, and Nguyen book that provides an excellent classification and taxonomy for the types of errors/defects that you will encounter (and should be looking for!) in testing.
http://www.logigear.com/resources/articles_lg/common_software_errors.asp
Unit testing saves time in the long run, not just because it helps you find problems sooner, but mostly because it makes you think more critically and introspectively about the requirements and design of your system.
http://www.ddj.com/development-tools/208403755
Do the observable external characteristics of form, fit, and finish of a software application give an indication about its underlying quality and robustness? According to this article, sub-titled "Most Software Stinks!", the answer is yes.
http://www.chc-3.com/pub/beautifulsoftware.htm
One of the common struggles of software quality and testing organizations is in providing "actionable" information on the testing results. This brief article shares some key success factors for metrics.
http://www.ontoinfo.com/2006/10/05/making-software-quality-metrics-actually-work/
This author suggests that the best method to develop software with good quality to use "defensive programming" practices to build quality in from the start and throughout the process. While this should be obvious to most professional developers, it is sadly not the standard.
http://duartes.org/gustavo/blog/post/of-aviation-crashes-and-software-bugs
While dynamic
programming may not be a technique you use everyday, it is very effective
in solving optimization and search problems.
This article gives an understandable introduction, with copious examples
in Python.
http://20bits.com/2007/05/08/introduction-to-dynamic-programming/
If you haven't used source code management tools before, setting them up
can be a daunting task. This tutorial
gives you step-by-step instructions for obtaining and configuring a Subversion
repository in Windows. And Subversion is
not only for source code, but makes a great tool for versioning documents, as
well.
http://www.informit.com/guides/content.asp?g=java&seqNum=306
Filesystems are probably one of the most mundane, but most important features of any
operating system. This article takes an
OS-agnostic look at just how filesystems work.
http://www.informit.com/articles/article.aspx?p=1220426
This site presents links to the biographies, blogs, interviews, and home
pages of the creators of many popular (and some rather obscure!) programming
languages. Great for
doing research on the motivations behind these languages.
http://littletutorials.com/2008/06/15/creators-of-programming-languages/
Even though this list is really intended to be humorous, it contains some
gems that developers and project managers should not forget in order to help
them be more effective and efficient.
http://www.devtopics.com/21-laws-of-computer-programming/
This simple, step-by-step tutorial explains the database normal forms and
shows how to apply these concepts to your own database design.
http://bytes.com/forum/thread585228.html
This is a nice introductory tutorial to the Java String class and the
various functions that are available. Very good for developers moving from languages that don't have
built-in strings, such as C++. Uses examples like searching for substrings, reversing a string,
and more to introduce the capabilities.
http://www.informit.com/articles/article.asp?p=680829
This author suggests three steps for allocating your time wisely and strategically: Break your responsibilities in categories, ask yourself what percentage of your time you should be spending in each category, and check for alignment with your superiors and colleagues.
http://conversationstarter.hbsp.com/2008/04/are_you_spending_your_time_the_1.html
This report covers various topics on Vernor Vinge's predicted "singularity" involving convergence of technology and the human mind. However, author and future pundit Douglas Hofstadter takes a more dim view of this vision of the future.
http://www.spectrum.ieee.org/singularity
IT is an attractive career for those with autistm spectrum disorders, such as Asperger's syndrome. Apparently, the ability (real or perceived) to be anonymous, along with focusing on problem solving over social interaction, is the strongest draw.
http://computerworld.co.nz/news.nsf/spec/CE96C5C608138FABCC25747000784BD0
Even if you don't make a living as a writer, we are all writers and must use the written word to communicate (e-mail, IM, reports, etc.). This article has some simple and excellent tips for putting more power into your writing.
http://www.lifehack.org/articles/communication/how-to-write-in-a-thousand-words-or-less.html
Most people consider Vannevar Bush's essay "As We May Think" as the progenitor of the modern World Wide Web. But this article points to a project called the Mundaneum that preceded Bush's description by over a decade.
http://www.nytimes.com/2008/06/17/science/17mund.html?_r=1&hp&oref=slogin
Sleep is one of life's greatest mysteries. And lack of sleep should not be treated as a badge of honor. But how much do you really need? According to experts, 6-1/2 to 8 hours per night is optimum. Interestingly, more than 8-1/2 hours of sleep tends to have negative health consequences.
http://www.time.com/time/health/article/0,8599,1812420,00.html
Telecommuters face challenges that folks in the office don't even give a second thought about. Here are some tips to making your presence and importance felt even when you aren't physically there.
Even though it is a relatively new profession, IT demands change quickly. The current needs for IT professionals revolve around "technical instinct" (knowing technologies to apply to solve a problem) and "enthusiasm". Interestingly, certifications are diminishing in value and importance.
http://www.eweek.com/c/a/Careers/The-New-IT-Benchmarks/
A new book by Tom DeMarco and Tim Lister discusses how corporate culture, along with three other "pillars" (proficiency, velocity, and agility) affect project success.
http://www.computerworld.com/action/article.do?command=viewArticleBasic&articleId=318798
Most organizations seem to highly value the ability to work on multiple tasks simultaneously. But this article points out that the supposed productivity gains are really just a fabrication. And multitasking often contributes to distraction and lack of attention.
http://www.thenewatlantis.com/publications/the-myth-of-multitasking
Experience indicates that more frequent smaller gifts, such as gift cards, are more effective at employee motivation than the traditional annual bonus.
http://www.informationweek.com/blog/main/archives/2008/06/using_baby_carr.html
A counterintuitive result from a university study indicates that instant messaging actually reduces disruption compared to telephone, e-mail, or face-to-face conversations. Of course, IM is still a burden for IT.
http://www.sciencedaily.com/releases/2008/06/080603120251.htm
http://www.hothardware.com/News/Study_Finds_Instant_Messaging_Helps_Productivity/
With the souring economy, IT workers have so far been spared the salary impact, but that seems to be changing. Salaries have barely changed from June 2007 - June 2008 and, therefore, they have actually gone down due to inflation. IT managers are looking more at outsourcing, especially for support roles.
http://www.eweek.com/c/a/Security/IT-Salaries-Taking-a-Recessionary-Hit/
E-mail is a ubiquitous and important tool in today's world. But just because it's there and it's easy, doesn't mean that it should be used without thought. Here are 36 simple tips to use e-mail more professionally and effectively.
http://sethgodin.typepad.com/seths_blog/2008/06/email-checklist.html
Pundits say that Verizon's acquisition of Alltel is not necessarily a harbinger of more M&A activity in the telecom industry.
This author forecasts that telecom providers will move from "carriers of bits" to owners of content of distribution channels.
http://www.masternewmedia.org/news/2008/06/19/telco_20_the_future_of.htm
Among some of the specific details are that revenues will grow at 5.7% annually with 60% of revenue from consumer mobile services. In addition, the number of VoIP subscribers will more than double in the next four years and by 2012 broadband revenue will be getting close to fixed voice service revenue.
The exaflood revisited…
Cisco has released a report that forecasts IP traffic will double every
two years through 2012 mostly due to video traffic, which could push ISPs to
implement bandwidth
metering. Specifically, Cisco
predicts that by 2012, almost 90% of IP traffic will be video with
http://www.informationweek.com/news/internet/reporting/showArticle.jhtml?articleID=208404154
With VoIP services already taking away traditional landlines, this author suggests that re-allocating part of the existing spectrum for VoIP may encourage telecom companies to start providing moderate improvements in speeds for rural customers using existing infrastructure.
http://www.networkperformancedaily.com/2008/05/can_voip_provide_the_solution.html
MySQL Workbench is a free visual database modeling tool. It integrates directly with MySQL (of course!), but can be used with most any DBMS platform. It allows you to graphically model your database using ER diagrams and the diagrams can be directly exported to popular graphic formats or PDF.
http://dev.mysql.com/workbench/
Clipcast is a cross-platform clipboard sharing utility. It works in X11 environments (Unix/Linux) and Windows. You simply paste the contents of the clipboard on one system into the Clipcast utility and it is automatically encrypted and shared to all other Clipcast clients.
http://www.426.ch/cgi-bin/moin.cgi/Clipcast
WiseCalc is a calculator masquerading as a text editor. You can annotate your calculations, save calculation sheets, and much more. It includes hundreds of built-in functions, including over 450 conversions, and you can add your own user-defined functions.
ColorConsole is a handy replacement for the boring Windows Command Prompt shell. Not only does it provide a more colorful shell, but includes some great features like ability to export your console session to a HTML or RTF file, a menu for your command "favorites", more intuitive cut, copy, and paste, and a menu for the CD command.
http://www.softwareok.de/?seite=Software/ColorConsole&language=english
Evermotion Communicator is a free multi-platform instant messenger client. In addition to support most of the popular services (AOL, MSN, Skype, Yahoo, and more), you can also do serverless chat on your LAN with no additional modules. It even has basic collaborative picture editing capabilities.
Universal Viewer displays almost any type of file that you can throw at it. It has built-in support for text (standard and Unicode) and binary/hex files, RTF, common image formats, anything that can be played in Windows Media Player, and all formats supported by Internet Explorer. In addition, it can use XnView as external viewer for non-supported graphic formats. Probably, it's most powerful feature is support for the dozens Total Commander Lister plugins.
http://atorg.net.ru/universal_viewer/index.htm
Ulteo Virtual Desktop is the cleanest integration of Linux with Windows yet. Ulteo is a Ubuntu-based version of Linux that uses Colinux to allow Linux to run directly in Windows (not via emulation or virtualization). The basic system includes standard Linux applications, including OpenOffice, Firefox with Java and Flash support, Gimp, and much more. And via the Ubuntu repositories, you can install other applications and customize your configuration.
http://www.ulteo.com/home/en/virtualdesktop?autolang=en
One of the nice features of PostgreSQL and MySQL are that they have built-in facilities for paging results, such as MySQL's LIMIT query qualifier. Unfortunately, Oracle has no native method for retrieving specific results. So here's how to emulate this. Basically, you take your original query with order by clause and embed it into a structure like this:
select *
from (
select a.*, rownum rnum
from (original_query) a
where rownum
<= max_row_num
)
where rnum > min_row_num
Simply replace min_row_num and max_row_num with the lower and upper bounds, respectively. Sorting your results with the order by clause in the original query is very important, otherwise you will get inconsistent results. Here's a simple example to retrieve rows 1100 - 1150 from a table named NODE, which has been sorted by the name:
select *
from (
select a.*, rownum rnum
from (select n.* from eods.node
n
where n.status_code in ('PLANNED', 'COMMISSIONED')
order by n.node_key_name) a
where rownum
<= 1150
)
where rnum > 1100
If you enjoy and appreciate the wonderful SysInternals utilities, but have a machine that you can't download to, such as a web server, you can actually run the utilities from a public shared drive: \\live.sysinternals.com\tools\. Just open this share as you would any local share (e.g., by putting the share name in the Run dialog) and then double-click on the desired utility. On most systems you'll be prompted with a "Security Warning" dialog to confirm that you want to run the utility.
This is a geek take off on Gloria Gaynor's disco anthem "I Will Survive". You've got to watch it just for the dancing!
http://idle.slashdot.org/article.pl?sid=08/05/24/1335258&tid=133
To counter (or maybe it's to validate!) David Brooks' criticism of geek culture, Infoworld has put together a 20-question quiz on some of the esoterica of the technology elites. How much do you know about the backgrounds of these people?
http://www.infoworld.com/tools/quiz/news/2008/techceleb/tech-celeb-quiz-1.php
Having trouble understanding the language that your kids speak? Well, just head on over to this site everyday and learn a new leetspeak word or phrase! Then you'll be on your way to becoming a true h@xOr.
http://www.transparent.com/wotd/today/leetspeak-words.htm
I had completely forgotten that one of Costner's first roles was in one of Apple's ads from the early 1980s!
http://www.youtube.com/watch?v=Nj2A0LybwPA