July 2010 Newsletter
Confidence in nonsense is a requirement for the creative process. –M. C. Escher
The two most powerful warriors are patience and time. –Leo Tolstoy
You can only find truth with logic if you have already found truth without it. –G. K. Chesterton
The happiness of life is made up of minute fractions—the little, soon forgotten charities of a kiss or a smile, a kind look or heartfelt compliment. –Samuel Taylor Coleridge
To have no set purpose in one's life is the harlotry of the will. –Stephen MacKenna
The technologies which have had the most profound effects on human life are usually simple. –Freeman Dyson
By nature man hates change; seldom will he quit his old home till it has actually fallen around his ears. –Thomas Carlyle
If you worry, you die. If you don’t worry, you also die. So why worry? –Mike Horn
This author makes a strong, cogent argument for deleting "dead
code" instead of just commenting it out.
http://elegantcode.com/2010/06/06/the-best-code-you-will-ever-write/
While it might seem counterintuitive that IT should not have a strategy,
this author points out that IT should adopt the overall organizational strategy
as its own. He says that the problem
with IT strategies is that they are typically too narrowly focused on technology,
rather than supporting company objectives.
http://blogs.techrepublic.com.com/tech-manager/?p=3744
Many pundits have called cloud computing (which really isn't new as it
was previously known as utility computing, SaaS,
application service provider, etc.) a revolution,
but beyond the hype
(most of it from vendors, of course!) is the reality that it is simply an
evolution of the IT architecture to take advantage of the commoditization of bandwidth and hardware.
http://www.informationweek.com/cloud-computing/blog/archives/2010/06/cloud_computing_22.html
Eminent software development expert Watts Humphrey gives
some insight about the importance of good planning to the success of
development projects in this interview based on his new book Reflections
on Management.
http://www.sdtimes.com/link/34431
This author provides a very relevant commentary on the
"addiction" that software developers, especially those in enterprise
IT organizations, have to the "bigger is better" mentality leading to
over
engineering. He makes a strong
argument for back-to-basics simplicity.
http://programmaticallyspeaking.blogspot.com/2010/06/only-design-pattern-is-small-solutions.html
I'm sure any readers of this newsletter in management are cheering the
title of this article, but don't be too hasty.
This essay emphasizes that management needs to trust developers,
especially when it comes to their estimates about how long a particular feature
or task will take.
http://johnnance01.wordpress.com/2010/06/15/never-trust-a-programmer/
Project failure seems to be one of the most intractable issues that face
IT organizations. We often hear about
the causes
of project failure, but this article provides some tips about preventing
these debacles.
http://www.anticlue.net/archives/001072.htm
The title of this article is meant to provoke. However, the author makes some very good
points about why business folks bypass IT in favor of do-it-yourself
"databases" in a spreadsheet.
We need to learn from this and try to use these spreadsheets as a
springboard to simpler applications and providing appropriate infrastructure
for supporting business groups that aren't really sure what they want/need to
start with. As an example, a startup
called Ragic.
http://jasonlbaptiste.com/startups/microsoft-excel-is-the-worlds-most-used-database/
This author makes a strong case for attitude and problem-solving skills
trumping intrinsic intelligence when it comes to being a successful
programmer. He further endorses the
concept that programming can only gain respect as an engineering discipline, if
programmers mature toward simplicity
and consistency instead of cleverness.
http://alarmingdevelopment.org/?p=422
Even though Zed Shaw (famous in his own right!) says there are no famous
programmers, there are a few developers who have made it into the popular
culture. Read this interview with Peter Norvig in an
excerpt from the new book Making it
Big in Software.
http://www.informationweek.com/news/hardware/utility_ondemand/showArticle.jhtml?articleID=224900261
In a new book, industry expert Vinnie Mirchandani
explains 12 things that IT leadership needs to do to make IT the engine of
innovation in an organization. The title of the book hints at the fact that IT leaders must be
good at many things to succeed.
http://www.informationweek.com/news/global-cio/interviews/showArticle.jhtml?articleID=224900746
What happens when you find a real-world application that is broken? Well, if you’re Matt Heusser, you issue a challenge to software testers around the globe to test it. Read the results of this challenge. It will probably give you some ideas for how you can be a better tester.
http://www.infoq.com/news/2010/05/testing_challenge
This interesting research paper demonstrates that the details behind defects extend far beyond the information in the bug-tracking system and source-code repository and are highly dependent on social, organizational, and technical knowledge (what we often refer to as "tribal knowledge"). This is a good example of how the organization dynamics affect the efficiency of organizations.
http://www.cs.toronto.edu/~jaranda/pubs/secret.pdf
One of the key considerations in test design is what makes a "good" test. My philosophy on this is that a good test is one that is likely to find a problem. In this article, the author talks about selecting good acceptance tests to "prove" that the application behaves as intended.
http://gojko.net/2010/06/16/anatomy-of-a-good-acceptance-test/
In this interesting article, the author suggests that one of the primary roles for QA/testing on development projects is as the "owner" of requirements, including the tasks of ensuring new customer requirements are properly managed and for delivering new requirements to development team.
http://www.makinggoodsoftware.com/2010/06/07/qdd-qa-driven-development-how-qa-should-be/
Do you think your testing job is challenging? How about testing the Visual C++ compiler? This article gives you some ideas about how to effectively test a complex system that has more input combinations than probably most any other application.
http://blogs.msdn.com/b/vcblog/archive/2010/06/01/how-we-test-the-compiler-backend.aspx
If you do programming with .NET (C# or VB.NET), these excellent
downloadable references give information about Visual Studio keybindings and names and types.
http://www.devcurry.com/2010/06/collection-of-net-framework-and-visual.html
Ever wonder about how Amazon.com's "people
who bought this also bought…" feature
works? Well, it's just one of many
applications of network
theory. You probably won't use
network theory every day, but some of the concepts give you insight into
relationships between things.
http://measuringmeasures.com/blog/2010/6/9/learning-about-network-theory.html
If you are looking for a succinct, yet thorough one-page overview of
object-oriented programming (OOP) concepts, this site is an excellent
resource. It goes beyond the simple
concepts and includes some of the practical principles to follow, such as SOLID,
as well.
http://code.google.com/p/toolsdotnet/wiki/OOPcheatsheet
If you do any kind of web-based application development, you will want to
use the fabulous jQuery
Javascript library.
Although jQuery is powerful and flexible, for
beginners it can be difficult to pick up.
jQuery Fundamentals
is a comprehensive and understandable introduction to the library.
http://www.rebeccamurphey.com/jqfundamentals/
Any developer that wants to improve his or her productivity and
non-language-specific skills would do well to read (and re-read!) The Pragmatic Programmer.
This concise list includes all of the tips presented in the book.
http://pragprog.com/the-pragmatic-programmer/extracts/tips
One of the most important improvements that you can make to your resume is to change for listing your duties and responsibilities to explaining your accomplishments at a particular job. But how do you decide what achievements are resume-worthy?
http://career-resources.dice.com/articles/content/entry/resumes_need_accomplishments_what_is
In this five-part series, the author explores just how prevalent anosognosia, more commonly known as the Dunning-Kruger effect, is. It includes an interview with David Dunning.
http://opinionator.blogs.nytimes.com/tag/anosognosics-dilemma/
While I generally try to steer clear of office politics, it's still important to know how to navigate those waters. This article takes advice from Patty Azzarello, who was the youngest-ever general manager at HP, that working hard and getting results are important, but you also need to make sure you are known and recognized for your achievements.
http://cacm.acm.org/blogs/blog-cacm/94307-are-you-invisible/fulltext
Even though BASIC is probably not the optimal programming language, it's how many programmers got there start on their home computers. This author bemoans the fact that today's generation doesn't have the same opportunities to try out the "type-and-run" examples that they find and that this type of exploration is invaluable in developing good programming skills. In response to this article, some developers have created the BASIC-256 project to create an IDE for children and new programmers. Or maybe Learn Python The Hard Way is today's equivalent.
http://www.salon.com/tech/feature/2006/09/14/basic/
A recent survey says that CEOs believe the most important leadership skill for employees is creativity. But how do you develop and foster innovation and creative thinking? In this interview, creativity expert Michael J. Gelb gives some ideas that Da Vinci and Thomas Edison might offer.
http://www.fastcompany.com/1640118/what-would-da-vinci-and-edison-say-to-todays-innovators
Many IT workers, especially those who have moved from a primarily technical role into a more supervisory or administrative job, face burnout. Here are some tips for how to overcome the career exhaustion and get back on track.
http://www.cio.com/article/596516/IT_Career_Burnout_What_To_Do_When_the_Thrill_is_Gone
Nicholas Carr, most well known for his provocative essay IT Doesn't Matter, has a new book that posits that technology is making us more distracted, impatient and forgetful, and actually causing changes in the brain structure. Carr discusses the book in a recent interview on NPR, as well.
http://www.wired.com/magazine/2010/05/ff_nicholas_carr/all/1
A recent study indicates that understanding the value and importance of task (i.e., it’s “purpose”) is an extremely good motivator to excel. Maybe there is some value in answering your kids with something other than “Because I said so!” when they ask “Why?”
http://www.danpink.com/archives/2010/03/is-purpose-really-an-effective-motivator
So far in 2010, telecom industry is the busiest market for M&A activity, surpassing even financial services.
http://www.fiercetelecom.com/story/telecom-merger-acquisition-rises-2010/2010-06-16
With all of the banter and bluster about net neutrality, sometimes it's a good idea to take a step back and look at the big picture of the Internet. This essay offers some good perspective on what's at stake.
http://www.guardian.co.uk/technology/2010/jun/20/internet-everything-need-to-know
PXAX Daemon is a handy multifunction utility that includes a variety of features such as hotkey manager, Twitter posting tool, application launcher, process terminator, Google Calendar posting, and much more.
If you do any kind of web development work, you've probably found that designing and editing your CSS is a chore. Stylizer allows you to create and edit your CSS on-the-fly in a web browser. Just update your CSS style settings and apply them to view the changes immediately.
If you've ever wanted to interact with the various Google platform applications via the command line or to script their use, Google Command Line Tool is a dream come true. It works with a wide variety of Google services, including Calendar, Docs, and Youtube. Check out this article for some tips on how to use it. (To use it on Windows, you'll need to set up Cygwin first… Or maybe not.)
http://google-opensource.blogspot.com/2010/06/introducing-google-command-line-tool.html
If you ever need to create a quick note that you want to share with others or access from another computer later Notepad.cc is just the ticket. It automatically creates a new URL for you and you can even password protect the page, if you like. No sign up required. Just edit your text and copy the URL.
Workspace Mechanic is an Eclipse plugin developed for internal use at Google and now released to public. It allows you to configure the workspace in Eclipse on multiple machines in exactly the same configuration so that all developers on a project have the same setup.
http://code.google.com/a/eclipselabs.org/p/workspacemechanic/
Here’s a list of interesting words that have the same spelling, but opposite meanings. It’s funny how language evolves like this.
http://en.wikipedia.org/wiki/List_of_auto-antonyms_in_English
This is what I would call taking literate programming to the extreme! Here's how the author's characterize the language: You could say we have combined the expressiveness of BASIC with the user-friendliness of assembly language.
http://shakespearelang.sourceforge.net/report/shakespeare/
Ever develop an application and wonder if you should name the field username or login or log in? This site presents the definitive answer on this philosophical conundrum. :)
Since my son got involved in FLL last year, I'm a little bit partial to Lego robotics, but this use of the Lego robots is incredible. If you built this yourself, the retail value would be over $30,000!
http://www.engadget.com/2010/06/15/monster-chess-supersizes-lego-robots-for-ultimate-geek-synergy/
This cool site posts scans of actual letters (remember those?) from celebrities and other famous people, such as this one from Richard Feynman giving career advice to Stephen Wolfram and this one where Walt Disney gives an economics lesson to a child.
Physicist Sean Carroll is on a mission to explain what time really is. This seems like a daunting task, but he actually makes it sound interesting.
http://www.wired.com/wiredscience/2010/02/what-is-time/