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”.
http://blogs.cioinsight.com/knowitall/content001/software/law_of_averages_overtuned.html
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.
http://chriswoodill.blogspot.com/2007/08/low-tech-approaches-to-requirements.html
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.
http://www.infoworld.com/slowit
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.
http://www.brandonwalkin.com/blog/2009/08/10/managing-ui-complexity/
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.
http://ivarblog.com/2009/05/29/in-need-of-a-theory-for-software-engineering/
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.
http://www.infoq.com/news/2009/08/rothman-managers-adopt-gradually
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.
http://www.computerworld.com/s/article/print/93903/I_m_OK_The_Bull_Is_Dead
In many ways, IT project management is more art than science. This book excerpt discusses the main
ideas behind “good
agile” practice both from the IT and business perspectives.
http://www.informit.com/articles/article.aspx?p=1355310
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.
http://blog.jovan-s.com/2009/07/29/do-not-use-design-patterns-upfront/
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.
http://hbswk.hbs.edu/item/5869.html
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.
http://www.methodsandtools.com/archive/archive.php?id=88
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.
https://www.softwaretechnews.com/stn_view.php?stn_id=50&article_id=134
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.
http://aleccolocco.blogspot.com/2009/08/sqlite-lesson-in-low-defect-software.html
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.
http://www.testertroubles.com/2009/05/golden-rules-for-software-testing.html
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.
http://www.johnmichaelbattista.me/software-engineering/use-cases
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.
http://code.openark.org/blog/mysql/sql-pie-chart
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.
http://neverfear.org/blog/view/73/Hashing_The_whats_hows_and_whys
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.
http://www.infoq.com/articles/designing-restful-http-apps-roth
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.
http://www.computerworld.com/action/article.do?command=viewArticleBasic&articleId=9131066
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.
http://www.theglobeandmail.com/news/technology/science/want-to-get-ahead-sleep-in/article1065333/
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.
http://www.ted.com/talks/lang/eng/alain_de_botton_a_kinder_gentler_philosophy_of_success.html
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.
http://sethgodin.typepad.com/seths_blog/2009/08/the-scientific-method.html
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.
http://www.magazine.utoronto.ca/feature/why-people-are-irrational-kurt-kleiner/
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.
http://news.bbc.co.uk/2/hi/uk_news/magazine/8207849.stm
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.
http://shine.yahoo.com/channel/life/how-to-improve-your-email-etiquette-481584
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.
http://blogs.techrepublic.com.com/10things/?p=940
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.
http://www.boston.com/bostonglobe/ideas/articles/2009/08/02/the_truth_about_grit/?page=full
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. ;)
http://www.steverrobbins.com/articles/ceojob.htm
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.
http://www.everyjoe.com/articles/reversing-your-email-composition/
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.
http://www.fiercetelecom.com/story/voip-thrives-amid-telco-indifference/2009-08-05
CWA’s annual Internet speed test
shows
http://www.eweek.com/c/a/Government-IT/New-Study-Same-Results-US-Broadband-Speeds-Lagging-532438/
GigaOM questions the government’s approach for increasing broadband access to rural areas by enlisting carriers to map out locations with limited access.
http://gigaom.com/2009/08/10/broadband-stimulus-plan-has-no-map-for-success/
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.
http://online.wsj.com/article/SB20001424052970204683204574358552882901262.html
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.
http://www.donationcoder.com/Software/Mouser/browsertray/index.html
This cool little web application (runs entirely in your browser whether you are online or not!) is a simple address book that has lots of useful features, including ability to open a map on Google Maps by clicking on an address, send IM via click on IM ID, create an e-mail, etc. And it’s also a great application to learn about Javascript programming and XML and XSLT.
http://adx.elektronengehirn.net/
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.
https://www.inf.fu-berlin.de/w/SE/DPP
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.
http://www.oracle.com/technology/products/database/datamodeler/index.html
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.)
Project
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!
http://www.andrewlipson.com/escher
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!)
http://www.wired.com/geekdad/2009/07/100-things-your-kids-may-never-know-about/
This video mashup takes Rick Rolling to an incredible new level. Very creative!
http://www.youtube.com/watch?v=NN75im_us4k
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.
http://www.newseum.org/todaysfrontpages/flash/default.asp
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”.
http://www.mathstat.uottawa.ca/~rsmith/zombies.htm