January 2010 Newsletter
How little a thing can make us happy when we feel that we have earned it. –Mark Twain
Time moves in one direction, memory in another. –William Gibson
Life does not ask what we want. It presents us with options. – Thomas Sowell
Things done well and with a care exempt themselves from fear. –William Shakespeare
It’s not what you look at that matters, it’s what you see. –Henry David Thoreau
If we perceive our role [programmers] aright, we then see more clearly the proper criterion for success: a toolmaker succeeds as, and only as, the users of his tool succeed with his aid. …We tend to forget our users and their real problems, climbing into our ivory towers to dissect tractable abstractions of these problems, abstractions that may have left behind the essence of the real problem. –Fred Brooks in The Computer Scientist As Toolsmith
People think focus means saying yes to the thing you've got to focus on. But that's not what it means at all. It means saying no to the 100 other good ideas that there are. You have to pick carefully. I'm actually as proud of the many things we haven't done as the things we have done. –Steve Jobs
Be always at war with your vices, at peace with your neighbors, and let each new year find you a better man. –Benjamin Franklin
Gartner Research claims that the period in 2010 where a company comes out
of the economic doldrums is a good time for IT to examine its role in the large
organization and to determine if process and practice changes are appropriate.
Everyone knows that project failure (even if it’s just not meeting the
goals of a project) is one of the banes of working in IT. In this presentation, the author discusses
some case studies and distills down some of the causes and preventative
actions.
http://blogs.zdnet.com/projectfailures/?p=7396
One of the surprises (and most talked about) developments of 2009 was the
advent of the “NoSQL”
concept (which has since been softened to mean “No(t
only) SQL”) and centers mostly around (often schemaless)
key-value
stores. This topic
come on fast and furious and it was easy to get lost in all of the
hype. Here is a reasonably balanced list
of articles that will help get you started on sorting the whole thing
out.
http://asserttrue.blogspot.com/2009/12/nosql-required-reading.html
It seems like just about every news outlet is doing end-of-year
and end-of-decade
(although there still
might be one more year!) retrospectives, so who are we to differ?! :)
Anyway, this list is quite interesting, as well, since you may have
missed these, too.
http://www.infoworld.com/t/tech-industry-analysis/top-underreported-tech-stories-2009-455
This pundit says that just like vendors who tout their packaged
“solutions”, IT management can fall into the same trap when it comes to viewing
technology as the answer to every business problem. He says that instead IT needs to first
understand their business customers’ needs and then find the right mix of
process and organization change and technology to address them.
http://blogs.techrepublic.com.com/tech-manager/?p=2621
One of the leading
causes of IT project failure is too much complexity (and/or proper handling
of that complexity). This article lists
18 facts about (overly) complex systems.
http://blogs.zdnet.com/projectfailures/?p=6786
This author eloquently explains what I’ve believed for a long time: Project management in software development is
less about technical skills (i.e., the PMBOK stuff) and more about leadership
and working with people.
http://ecaminc.com/index.php/blog/59-generalblog/168-2009-11-30
One of the inevitabilities of most software or web development projects
is requests that trickle in throughout the effort. This article gives some good suggestions for
how to politely, but firmly deal with your business customers and manage
feature creep.
http://www.webdesignerdepot.com/2009/12/how-to-deal-with-feature-creep/
A new survey of IT and business leaders from a dozen countries shows that
increased investment in and support of IT results in improved business
outcomes.
http://www.channelinsider.com/c/a/Spotlight/Survey-Links-IT-Investment-to-Corporate-Success-692478/
In this opinion piece, the author suggests that the difference between
successful IT organizations and the failures is that successful groups narrowly
define the IT mission around the idea that IT is “the art of managing an
organization's processes by establishing and maintaining computing frameworks.” Read the article to understand what he means
by this.
http://www.computerworld.com/s/article/9141609/Opinion_The_unspoken_truth_about_why_your_IT_sucks
Eminent computer scientist Robert Glass lists some succinct maxims about
various aspects of the development process, including people, quality,
maintenance, and more, that we should all remember when working on any project.
http://www.computer.org/portal/web/buildyourcareer/fa035
Recently, there has been an Internet debate about whether both unit testing and functional testing are necessary. This excellent post makes a great observation about the value of each: Unit tests measure the quality of material used to build the application. Functional tests measure the strength of the application structure. The overall quality of the application is dependent on both.
http://app.arat.us/blog/?p=159
Test automation is usually a difficult task, especially on applications that lack maturity. In this article, the author suggests a domain-based approach to layering the test automation architecture to isolate and minimize impacts to testing of application changes.
http://www.infoq.com/articles/layered-test-automatation
This blogger takes a very candid (harsh?) view of how tool vendors position and market GUI test automation tools as the panacea for all of your testing problems.
http://blog.objectmentor.com/articles/2010/01/04/ui-test-automation-tools-are-snake-oil
Here is an interesting story about how building of team of good software testers who enjoyed their work and developed good camaraderie resulted in a successful team that was multiple times more productive than their peers.
http://www.t3.org/tangledwebs/07/tw0706.html
This is an interesting discussion about the difference in checking (“confirming existing beliefs”) and testing (“finding new information”).
http://www.infoq.com/news/2009/12/testing-or-checking
This developer listened to and made detailed study notes all of the MIT Introduction to Algorithms online video classes. In this article he summarizes the main points from each of the lectures.
http://www.catonmat.net/blog/summary-of-mit-introduction-to-algorithms/
Kanban is a well-known principle in lean production systems (it is one of the cornerstones of the Toyota Production System) and many agile development practitioners are adopting it for software projects, as well. This beginner’s tutorial helps you understand the kanban concepts and gives some excellent tips for how to use kanban in your process.
If you do any sort of web design/development, sooner or later you will run into a problem related to the underlying HTTP protocol. This excellent, comprehensive tutorial should give you the basic knowledge to troubleshoot these kinds of issues.
http://net.tutsplus.com/tutorials/other/http-headers-for-dummies/
Almost every development organization struggles with how to properly version their applications. This succinct site offers some good approaches to versioning and practical tips on actually doing it.
Intel’s joint venture Numonyx reports success building NAND-style flash memory with a 5-nm process, which is much denser than the current 20-nm process. They expect this to result in higher performance and lower power consumption.
http://www.informationweek.com/news/storage/systems/showArticle.jhtml?articleID=221200025
While IT management’s top priority for 2010 is cost control, almost half of CIOs surveyed say that employee retention is a priority, too, especially if the economy picks up and workers start jumping to new jobs, which is likely since IT hiring is expected to increase in early 2010.
http://www.eweek.com/c/a/IT-Management/Employee-Retention-Is-a-Priority-of-IT-Management-767148/
Whether you realize it or not, programming is a creative endeavor (think of it as the art of applying technology). And creative work requires times of dedicated focus on the task at hand. Here is a great treatise on the importance of deep concentration and some tips on how to gain or improve this skill.
http://calnewport.com/blog/2009/06/22/on-the-value-of-hard-focus/
The father of C++, Bjarne Stroustrup, presents his suggestions for how to bridge the gap between computer science education and real-world industrial programming needs. He emphasizes that sound computer science must not be given short shrift. Others even recommend that all students be required to learn some programming skills.
http://cacm.acm.org/magazines/2010/1/55760-what-should-we-teach-new-software-developers-why/fulltext
This is probably more of an article for me than anyone else, but anyway… After you’ve spent some time really focusing on your work (see above), you certainly need some “decompression” time. This article reviews recent research showing that employees who take time off are more productive than those who burn the midnight oil a lot.
In a recent survey by HR consultants Towers Perrin, they found that only 21% of employees are “truly engaged” and almost 40% are “mostly or entirely disengaged”. This author suggests that high levels of employee engagement are key success factor in today’s global economy and points to Apple’s success as evidence.
http://blogs.wsj.com/management/2009/12/16/management%E2%80%99s-dirty-little-secret/?mod=SmartMoney
In this insightful overview of Richard Hamming’s talk You and Your Research, the author emphasizes that the time that we spend on “non-productive” tasks, especially communication, is not really wasted effort, but key tasks to make the “real work” successful.
http://measuringmeasures.blogspot.com/2010/01/you-should-waste-50-of-your-time.html
Many people consider Don Knuth to be the eminent living computer scientist. In this interview, he discusses a wide variety of topics in his charming, down-to-earth way.
http://www.simple-talk.com/opinion/geek-of-the-week/donald-knuth-geek-of-the-week/
Google actually credits meetings as being a springboard to innovation. I doubt that most people feel that way about meetings in their organizations. My favorite tip from this article is holding “office hours” which allow “structured unstructured” time.
http://www.businessweek.com/smallbiz/content/sep2006/sb20060927_259688.htm
Knowing your personality type/temperament can be useful in determining which types of jobs/roles in the IT realm you are best suited for and what styles of communication you prefer.
http://www.computerworld.com/action/article.do?command=viewArticleBasic&articleId=324555
Business analytics and intelligence (making sense of mountains of data) is the growth area for jobs in the next few years according to IBM.
http://www.businessweek.com/the_thread/techbeat/archives/2009/12/want_a_job_anal.html
Deceased (or not?!) pop start Michael Jackson topped the list of most popular search terms on all three of these search engines. The most surprising thing to me was that “swine flu” only showed up in the top 10 on Microsoft’s Bing and I haven’t even heard of half of the top 10 from Google.
http://www.informationweek.com/news/internet/search/showArticle.jhtml?articleID=222000106
Quick! What was the first graphical web browser? If you said NCSA Mosaic, you're not alone… But you're also wrong! Learn about the first graphical browser, Erwise, and the four guys that created it a year before Mosaic.
While I don’t think anyone expects the legacy telecom infrastructure to go away anytime soon, the FCC’s request for providers to explain how they are transitioning their network cores to all-IP is a milestone. I expect that this is a move toward possible regulation of VOIP as a standard voice service.
http://www.cedmagazine.com/News-FCC-PSTN-switch-to-IP-120209.aspx
A new report from Heavy Reading based on survey of 20 telecom providers shows that carrier Ethernet services have really taken off in vertical markets, such as finance, healthcare, and government. But concerns around peering and NNI-style interconnects for off-net access are still big rocks to crack.
http://www.informationweek.com/news/infrastructure/ethernet/showArticle.jhtml?articleID=222100239
The increase in focus on wireless offerings is expected to be a boon to traditional carriers who can provide high-speed backhaul to the wireless providers.
Speaking of retrospectives, this article looks at IPv4 address consumption over the last decade. At the current rate of consumption and with approximately 722 million IANA-assignable addresses available, we will run out around the end of 2012 (perhaps this is what the Mayans predicted?!). However, there is little reason for concern by most with the (mostly behind-the-scenes) introduction of IPv6.
http://arstechnica.com/tech-policy/news/2010/01/dont-publish-the-decade-in-ipv4-addresses.ars
On average, US residents use 34 GB of data a day from various sources, such as television, radio, Internet and other media. This accounts for 3.6 zettabytes (about 1/20 of the estimated information content of all human knowledge!) per year collectively.
http://bits.blogs.nytimes.com/2009/12/09/the-american-diet-34-gigabytes-a-day/
If you do any sort of remote connections (VNC, MS Terminal Services, Citrix, RDP, Telnet, SSH, and more) from your Windows system, Terminals is just the tool that you need. It combines all of your remote connections into a simple and intuitive interface that supports “favorites” and recent connections and puts all of your open/current remote connections into a single tabbed interface to avoid cluttering your task bar.
http://terminals.codeplex.com/
CryptoTE is handy text editor with built-in 256-bit encryption functions. It is based on the Scintilla text editor library and includes great features like unlimited number of files (text or binary) in “container” file, automatic backup of “container” files, built-in compression for files, and ability to use it via console (including SSH) in Unix/Linux. Portable/standalone versions are available for both Windows and Linux.
http://idlebox.net/2009/cryptote/
Software Ideas Modeler is a free tool for creating a wide variety of UML diagrams, including class diagram, use case diagram, and sequence diagram. It supports customization of styles for the diagrams, inline editing of element properties, and shows a consolidated model overview.
http://www.softwareideas.net/a/6/Second-Generation-of-Software-Ideas-Modeler
iPlotz is a free online tool for creating wireframe, mockups, or other prototypes of web site designs or desktop client applications. The free plan lets you create one project with up to 20 pages/GUIs. You can share your designs online with others for collaborative reviews and editing.
Invisicalc is a background application (shows icon in the system tray) that immediately calculates the numerical result of any mathematical expression that you copy to the clipboard. If you’ve got an equation in word document that you want the answer to, just copy it to the clipboard, and then press <Ctrl>+C to paste the result into your document.
http://sourceforge.net/projects/invisicalc/
Check out over 60 incredible pictures from a variety of areas of the scientific world from 2009.
http://www.popsci.com/node/36702
For those math geeks out there (yes, I’m one of them!), here are detailed instructions with pictures for how to make a Moebius strip out of a bagel!
http://www.georgehart.com/bagel/bagel.html
Oh, well. It defies explanation. Just go read it. J
http://www.bobhobbs.com/files/kr_lovecraft.html
Charles Babbage is often considered the “father” of computer science. However, he never lived to see his design of the “difference engine” built. Well, some enterprising 21st century folks have built two working models.
http://www.npr.org/templates/story/story.php?storyId=121206408
Following this month’s apparent mathematical theme, here’s an interesting evaluation of how to most fairly slice a pizza.
http://www.newscientist.com/article/mg20427381.500-the-perfect-way-to-slice-a-pizza.html?full=true