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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
If you do programming with .NET (C# or VB.NET), these excellent downloadable references give information about Visual Studio keybindings and names and types.
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.
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.
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.
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?
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.
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.
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.
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.
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.
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?”
So far in 2010, telecom industry is the busiest market for M&A activity, surpassing even financial services.
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.
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.)
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.
Here’s a list of interesting words that have the same spelling, but opposite meanings. It’s funny how language evolves like this.
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.
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!
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.