September 2009 Newsletter
Perseverance is not a long race; it is many races one after another. –Walter Elliot
Optimism is a revolutionary act. –Cameron Crowe
To dare is to lose one's footing momentarily. To not dare is to lose oneself. –Soren Kierkegaard
The greatest way to live with honor in this world is to be what we pretend to be. –Socrates
When ideas fail, words come in very handy. –Johann Wolfgang von Goethe
Plato is my friend—Aristotle is my friend—but my greatest friend is truth. –Isaac Newton
The weakest living creature, by concentrating his powers on a single object, can accomplish something. The strongest, by dispensing his over many, may fail to accomplish anything. The drop, by continually falling, bores its passage through the hardest rock. The hasty torrent rushes over it with hideous uproar, and leaves no trace behind. –Thomas Carlyle
Impatience never commanded success. –Edwin H. Chapin
The successful person makes a habit of doing what the failing person doesn’t like to do. –Thomas Edison
A Stanford professor says that project managers need to bone up on their statistics and apply principles of probability to estimation and project planning. He notes that small deviations in actuals from estimates in project schedules are the main reason for development project “failure”.
As technologists and purveyors of technologies, developers often first turn to the computer for requirements-gathering and documenting tools. In this three-part series, a programmer suggests some decidedly low-tech approaches that are often more efficient and effective. Sometimes, good old pencil and paper and a sit-down conversation with the users is the best technique.
This author opines about the sad state of corporate IT shops, such as disregard for standards, apathy, and the frustration with “the process”. But she also notes that corporate IT can work, especially who small, empowered teams are used.
Technology workers are often stressed out and worn out. Borrowing from the slow food movement, this article proposes a set of 10 principles to slow down IT and still deliver value to business customers. Fundamentally, many of these ideas are the underpinnings of lean production model.
This excellent article explains an iterative approach to reducing complexity in user interfaces and, thereby, improving usability and effectiveness of the application. Remember that simplicity is your objective.
Just as it has been since the beginning of the software development and engineering discipline, the greatest challenge is how to develop great software. In this excellent (and lengthy!) article, Ivar Jacobson, one of the creators of the Unified Process, explores some of the methodology approaches that may yield fruit. The comments on the article are insightful, as well.
Development expert Johanna Rothman says that organizations should take a measured approach to implementing agile by using in some projects to understand how it works. At the same time, on the projects selected to use agile, it should be fully implemented.
As we frequently discuss here, communication is the key to any successful activity. In this article, the author proposes a simplified communication technique for technical workers, especially on status reports, using the inverted pyramid from journalism: Begin with the conclusion, then state the most important facts, and finally conclude with the details.
This author claims that design patterns should not be used during initial development, because, at that point, they are essentially a solution in search of a problem. Instead, he suggests that patterns should be part of the refactoring phase and flow from the initial code.
While autism-spectrum disorders like Asperger’s syndrome are often seen as a handicap to IT professionals, this article indicates that such behavioral differences may be the factor that sets successful testers apart from developers. And here’s a personal story about Asperger’s syndrome from a career tester.
Agile testing expert Lisa Crispin suggests that developers and testers work together throughout the development lifecycle a la pair programming to help the developer consider the appropriate tests to write and for the tester to better understand the application.
Many people (frequently those without test backgrounds) see automated software testing (AST) as the panacea for testing faster and with fewer people. However, AST itself requires careful analysis for suitability and organizations need to remember to AST involves a development lifecycle itself.
This article provides an in-depth analysis of how SQLite went from “quick hack” project to a high-quality ubiquitous application. (You know that it’s the database engine behind the history, bookmarking, and other data management functions in Firefox web browser, right?) The key aspects are liberal use of comments in code, extensive code coverage for unit tests, and process improvement, all of which are techniques that any developer or project can adopt. One of the points that most stuck out to me is: Safety != Reliability. Safety: no harm; reliability: no failures.
No matter what development methodology your organization uses, there are some software testing principles that always apply. This author gives a brief, succinct list of these “golden rules” from his experience.
Patterns are a great tool to use to learn a new programming language. This site uses the pattern concept to show how to solve common programming programs in a variety of languages, including Java, PHP, Perl, C++, Python, Ruby, and more. One of the best features of the site is that it gives you the ability to compare an implementation in a language that you already know to one that you are learning, so you can see the differences and subtleties.
Use cases are one of the most effective ways of capturing business requirements. Here are some simple, straightforward tips for doing this effectively.
This cool little tutorial shows you how to create an “ASCII art” pie chart using database data entirely in standard SQL. While you might never have need for this, it does show you some handy techniques for your queries.
Using hash keys is one of the most effective ways to improve application performance when a large number of records must be searched. This detailed tutorial explains how to do hashing and details some of the various approaches and algorithms.
REST has become a popular method for developing web services. But the REST architecture is often confusing. This tutorial explains how to implement REST web services over HTTP. While somewhat of mid-level tutorial it is useful in understanding the core principles.
While this one is certain to be controversial, some new research indicates that those who take breaks that most would consider "slacking" actually are more productive. In particular, those that spend time on non-work-related web surfing are 9% more productive.
In bad news for me, new research via brain imaging shows that later risers have more mental stamina and can outperform early birds. After 10 hours of being awake, the early birds showed reduced activity in brain areas linked to attention span, compared with the night owls. And night owls tend to be wealthier, as well. So much for Ben Franklin’s maxim: Early to bed, early to rise makes a man healthy, wealthy, and wise.
Many people get caught up in trying to achieve success that is defined by others, which leads to disappointment (so-called “status anxiety”). In this excellent presentation, Alain de Botton explains that each individual should define success for him or herself and then develop goals around that definition.
In this succinct article Seth Godin suggests the best way to improve and “get smarter” is to use the scientific method. He says that rather than being defensive, we should enter conversations looking for something to test, measure, and then change. The concept is very similar to Deming’s Plan-Do-Check-Act cycle for improvement.
New studies have found that intelligence does not imply the ability to think rationally. This article discusses dysrationalia (my new favorite word!) and how you can improve your rational thinking. One researcher even suggests development of tests to measure RQ (“rationality quotient”) similar to IQ. As well, self-discipline is a greater predictor of performance than IQ.
On the occasion of the 25th anniversary of PowerPoint (can you believe it?!), the BBC reports on how these types of presentations are not effective. For example, PowerPoint makes us “dumb” by hiding relevant facts and often the presentations are just too boring (“PowerPoint poisioning” or “death by Powerpoint”) and the audience overlooks relevant information.
Like it or not, e-mail is the de facto communication medium of the 21st century (so far!). To use e-mail successfully, you need to follow some simple rules of protocol. A couple of my favorites from this list: Change the subject line every time you start a new conversation and don’t get the last word in.
Whether times are good or bad, it’s often difficult to know whether you should leave one job (“the devil you know”) for another (“the one you don’t”). Here are some good questions to ask yourself to determine if it’s time to move on.
Most of the time the history of great developments or happenings gives us the idea that these things were instantaneous flashes of insight or brilliance. But usually these things are the result of diligence and a long-term dedication, says a researcher.
Have your sights set on running a company? Well, it’s probably useful to understand the various roles that the CEO plays. And make sure that you develop the skills to be an effective CEO, especially if you are moving from startup to on-going business. And it doesn’t hurt to be tall. ;)
How many times have you sent an e-mail and forgotten the attachment? Or accidentally sent it before you were finished? This simple, but effective tip suggests that you reverse the normal flow of actions for writing an e-mail to help avoid those mistakes: attach files, write the body of the message, write the subject (very important!), and finally enter recipients.
Even though most providers don’t seem very interested in VOIP service, it continues to gain traction among consumers. Likewise, even though carriers could stop VOIP, they aren’t doing that either. This observer thinks that carriers should put more effort into VOIP to take advantage of the demand.
CWA’s annual Internet speed test
GigaOM questions the government’s approach for increasing broadband access to rural areas by enlisting carriers to map out locations with limited access.
In this editorial, Andy Kessler says that AT&T was behind Apple’s rejection of Google Voice app for IPhone. He proposes that in the 21st century all communications is data, including voice services, and he proposes an overhaul of current communication policy around that principle.
Most power users have more than one web browser installed on their system. However, some web-based applications “misbehave” in the preferred browser. BrowserTraySwitch allows you to quickly switch the “default” browser before you click on a link or open an HTML file using the default association. Likewise, you can use it quickly launch one of the alternate browsers or a particular configuration (e.g., with or without proxy) of your browser.
Saros is a collaborative editing plugin for Eclipse that is suitable for distributed pair programming scenarios. It uses XMPP/Jabber for communication (the author’s recommend hosting your XMPP server with Openfire, but public XMPP servers can be used, as well) and can even support some integrated voice communication services, like Mumble/Murmur. And, of course, it can be used as a simple instant messenger client within Eclipse.
This is an Oracle graphical tool for data modeling, including ERD creation and relational, data type, and multi-dimensional modeling. It will generate DDL (physical model) for Oracle, MS SQL Server, and IBM DB/2 databases.
P2PVPN is full-featured VPN client for any platform that written in Java, including Linux, Mac OS X, and Windows that does not require a central server. Just set up your own network, with or without a “tracker”, and send that to others that you want to connect with. Currently, the application is a little rough around the edges with respect to ease of use, but the core functionality is good. (Note: Using P2PVPN on Windows requires the TAP-Win32 network adapter driver from the OpenVPN application.)
Most people are familiar with the Format | Change Case feature in MS Word. But here are a couple of keyboard shortcuts that will save you time and the trouble of switching to the mouse: To toggle the case, in sequence (Sentence case à lowercase à UPPERCASE à Title Case), just select the text to be changed and press <Shift>+<F3>. If you simply want to make all of the text uppercase, press <Ctrl>+<Shift>+A.
If you’re a fan of Escher’s fantastic optical illusions, you’ll love this site. This guy has authentically re-created some of Escher’s most famous drawings with Legos. No mean feat by any stretch of the imagination!
Here are a hundred pop culture icons of the past half-century that have almost all but disappeared, such as, Han shot first, DOS, Archie and Gopher searches, and much more. How many of these do you remember? And what would you have added to the list? (View-Master is something that my kids still love!)
This video mashup takes Rick Rolling to an incredible new level. Very creative!
This creative programmer took this Dilbert cartoon seriously and actually implemented an IM bot to send his boss silly questions. Now you let your inner Wally really shine through!
With this cool interactive web site, just hover your mouse over the any city from around the world (72 countries!) to see the front page from that city’s newspaper. Click on the city “pin” to display that front page.
This paper, which provides a mathematical model for zombie apocalypse, was actually published in peer-reviewed textbook on infectious disease transmission. Listen to this interview with the professor who oversaw the “research”.