June 2011 Newsletter
Commitment unlocks the doors of imagination, allows vision, and gives us the “right stuff” to turn our dreams into reality. –James Womack
If you attack people, expect them to defend themselves and expect this to distract everyone from common goals. –Jason Yip
The software field—really, any scientific field—tends to advance most quickly and impressively on those few occasions when someone (i.e., not a committee) comes up with an idea that is small in concept yet enormous in its implications. –Cameron Newham, Learning the bash Shell
"Our project would be done by now if we didn't have such good testers." If the doctor hadn't found cancer, I'd be well. –Unknown (found on Twitter)
We really must understand that the lust for affluence in contemporary society is psychotic. It is psychotic because it has completely lost touch with reality. We crave things we neither need nor enjoy. –Richard J. Foster, Celebration of Discipline
Great leaders don't change people. They create environments where people can change themselves. –Dan Rockwell
A healthy attitude is contagious but don't wait to catch it from others. Be a carrier. –Tom Stoppard
Agile expert Mike Cohn shows some of the pitfalls that may beset project
managers when transitioning from traditional methodologies to agile.
http://www.mountaingoatsoftware.com/presentations/140-the-seven-sins-of-project-management
One of the core principles of the Agile
Manifesto is Individuals
and interactions over processes and tools. This book excerpt discusses how good
communication skills are vitally important to agile implementation.
http://www.informit.com/articles/article.aspx?p=1683356
The CEO of Citrix says that IT is failing to adapt to the two most
significant disruptive trends, consumerization and cloud computing (both of which are
about mobility—think Google
Chromebook).
He says that IT needs to move from a role of controlling technology to
supporting.
http://www.informationweek.com/news/cloud-computing/software/229500003
Certainly, not all IT organizations face the same struggles, but this
list probably hits many common themes.
The article doesn't try to tell you how to solve these problems, but is
more about getting you thinking about how you'll address them in your own
company.
http://www.techrepublic.com/blog/10things/10-challenges-facing-it/2424
In this article, the author emphasizes that no methodology is a
one-size-fits-all solution for any organization and that each business must
adopt the techniques that work for them.
He suggests as a starting point to adopt from each of the agile, lean,
and unified process "camps" that make sense for your business.
http://drdobbs.com/architecture-and-design/229401451
One of the original Scrum practitioners says that agile is facing
somewhat of an identity crisis because the practice hasn't kept up with the
vision, particularly around quality and consistency. He also expresses concern about organizations
saying they are "agile" because they do certain things. He says that in its second decade, agile
needs focus on: demand technical
excellence, promote culture change, maximize business value, and organize
knowledge.
http://www.infoq.com/articles/agile-10-contradiction
As it celebrates its 25th anniversary, Network World looks at what the
next 25 years may bring in technology.
Some of the predictions include smartphones
that have the power of today's
supercomputers and agility across the enterprise will be necessary for mere
survival.
http://www.networkworld.com/supp/2011/25thanniversary/050911-anniversary-future.html
There are a wide variety of analogies between programming and physical
sciences or engineering. This author
compares programming to gardening ("software gardener") and makes a
very elegant argument for this comparison.
Or perhaps we are more
like diplomats.
http://chrisaitchison.com/2011/05/03/you-are-not-a-software-engineer
In this interesting (and surely controversial!) essay, the author says
that while agile methodologies are better than the "high-ceremony"
processes, most any
process overhead is distasteful to developers and that it saps their
passion for programming.
http://radar.oreilly.com/2011/05/process-kills-developer-passion.html
Version control goes far beyond (or should!) having the VCS
installed. This excellent article
provides a sound architecture for a strong version control process.
http://www.troyhunt.com/2011/05/10-commandments-of-good-source-control.html
This article emphasizes that software testing is just as important in the implementation of hosted/SaaS applications as with in-house development projects. The author notes that the key characteristic for success with testing in this situation is understanding your particular environment.
Every test professional knows that 100% testing is not practical (and possibly isn't even possible). This article gives some good perspective on deciding what to test, based prioritizing "failure scenarios".
http://brainslink.com/2011/05/testing-survival-means-knowing-what-to-test/
Adam Goucher says that most of the hype around significant differences for testing cloud-based applications is unfounded. He talks about three specific differences and indicates that they are really variations on themes of "traditional" testing.
http://www.pragprog.com/magazines/2011-03/testing-for-the-cloud
Sometimes, especially with agile development, documentation gets overlooked. One piece of documentation that I have found invaluable in almost all situations is the test strategy. This article gives you a great refresher on the purpose of the test strategy and how to write good and concise one.
http://test.techwell.com/article/basics-revisited-test-strategy
Agile testing approaches can sometimes be different from more traditional testing. This article shows how to take user stories and develop tests from them. One important positive aspect of good user stories is that they should have acceptance criteria which the tester should use as a guide for defining the "positive" tests.
http://www.scrumcrazy.com/page/view/Basic+Story+Testing+Styles/218842498
This author makes an interesting observation about the apparently disproportionate number of women in testing roles as compared to development, some possible reasons for this, and how agile methods are likely to help bring this back into better balance.
http://agileanarchy.wordpress.com/2009/06/25/testosterone-infected-developers/
Most developers have at least a basic understanding of multi-byte
character sets and UTF-8 (or Unicode). This excellent primer explains the history
and gives a very approachable treatment on how to actually interpret UTF-8.
http://code.alexreisner.com/articles/character-encoding.html
Most certainly, I'm not a designer, but I do know what
a good web application looks like.
If you lean more to the side of being a programmer/developer versus a
design, this article provides some great tips for designing by dissecting a
couple of CSS templates/themes.
http://tbbuck.com/how-to-make-your-web-apps-look-awesome/
We often feature links to algorithm and data structure visualizations in
this newsletter. To me, anytime that you
can "see" how these work, it helps your understanding, especially
when it comes to appropriate situations to apply these. This site offers excellent demonstrations in
JavaScript with source code available and even instructions for how to create
your own.
http://www.cs.usfca.edu/~galles/visualization/
If you are (or aspire to be) a project manager, this is a great resource
on the key skills and competencies project managers should have. This standard is currently under review and
you can provide suggestions or feedback on it, if you'd like.
http://www.globalpmstandards.org/main/page_project_manager_standard.html
This straightforward tutorial shows you how to build a simple REST web
service in Java using only the JDK, Jersey, and Tomcat 7. It walks you through the entire process
step-by-step, including creating your web.xml file.
http://www.theserverside.com/tip/RESTful-Web-services-made-easy
Even if you don't use (or intend to use) functional programming
techniques directly, everyone can benefit from learning some of the concepts underlying the
paradigm. This tutorial explains the
basic ideas using good examples in Java.
And be sure to check out the
author's presentation slides on this topic.
http://www.ibm.com/developerworks/java/library/j-ft1/
You may have heard about Node.js,
but haven't looked into it enough to know what it's all about. This overall article explains the background
of the library and its aim to make coding web applications on the server side
in JavaScript as simple as more common server-side languages like Java and PHP.
http://www.ibm.com/developerworks/opensource/library/os-nodejs/
Design
patterns, especially the Gang
of Four patterns,
are invaluable for efficient and effective coding and code refactoring. But often, these patterns are explained only in terms of code
making them too abstract to identify when needed. This article compares the each pattern to
commonplace things in real life.
http://agile.dzone.com/articles/gang-four-patterns-everyday
With the length of the depressed economy, many folks feel like they are stuck treading water in a job they don’t like. This article gives some suggestions for how to have a more positive attitude about your situation.
http://www.eweek.com/c/a/IT-Management/How-to-Make-the-Best-of-Being-Unhappy-at-Work-554468/
We frequently point out the failures of multitasking in this newsletter. Now, some new research using eye-tracking tools shows that people become even more distracted when using more than one media device.
In her new book, The Geeks Shall Inherit the Earth, award-winning journalist Alexandra Robbins says that the traits that make kids part of the in-crowd in school (primarily conformity) actually don't serve people well in "real life". She says that quirkiness (she calls it "quirk theory") and the ability question the status quo are actually valuable life skills.
http://www.livescience.com/14071-unpopular-kids-rule-alexandra-robbins.html
Doubtless that many others have had a more pervasive impact on programming in the past few decades than Ken Thompson, who wrote the original Unix operating system. In this new interview, he talks about that and his role in developing the Go language at Google.
http://drdobbs.com/open-source/229502480
According to a new study, each worker "handles" almost 3TB of data each year among 27 million enterprise servers. The most striking fact is that vast majority of the data is transient.
http://www.computerworld.com/s/article/9216481/World_s_servers_process_9.57ZB_of_data_a_year
In an independent survey commissioned by Microsoft about social media use, they found that, except for IM, all sectors, except instant messaging (IM), are still growing. Most notably, they found that, at least for work, almost all of the respondents expected their use of e-mail to stay the same or grow in the next 5 years and over half said that e-mail is most effective means of communication, even beating meetings and IM.
http://blogs.office.com/b/office-exec/archive/2011/05/05/email-so-yesterday.aspx
American workers tend to take much less vacation (or even 3-day weekends!) than employees in other industrialized countries. Some new research shows that it's as much by choice as it is by our business culture.
http://www.cnn.com/2011/TRAVEL/05/23/vacation.in.america/
Even though I've written like this for a long time (even though I knew it was "technically wrong"), I feel vindicated that grammar experts are now accepting that in the online age, putting punctuation outside the quotations (horror!) is a reasonable transition of our living language. And now they are trying to banish the em dash too!
http://www.slate.com/id/2293056/
As disk storage capacities and bandwidths continue to increase, some folks think that a new official prefix to describe 1027 should be established. Here’s to all of the hellaknobs out there! :)
http://www.newscientist.com/blogs/shortsharpscience/2010/03/hella-way-to-describe-massive.html
Many people (perhaps most!) feel overwhelmed with the pace and busy-ness of their lives. But the reality is that each of us will only do or experience a miniscule fraction of all that could. This essay gives a great perspective on how we choose to use the time that we have and to decide what is most important.
Whenever we decide to do something, we often consider the financial and time cost of such an endeavor. But have you ever considered the mental, or cognitive, expense? This is a very insightful article for anyone involved in knowledge work.
http://www.sebastianmarshall.com/the-cognitive-costs-to-doing-things
If you could get rid of one thing from your day that takes away time from getting things done, what would it be? According to this author, the three biggest time sinks are e-mail, social media, and meetings. She provides some practical tips for reining in each of these.
http://the99percent.com/tips/7019/The-Top-3-Daily-Time-Wasters-How-To-Tame-Them
According to a new analysis by CareerCast.com, based on factors such as work environment, physical demands, outlook, income and stress, software engineer is the highest rated job. The survey indicated that cloud computing and web application development were industry segments to pushed software engineer to the top.
http://www.cbsnews.com/stories/2011/04/19/scitech/main20055429.shtml
While this article leans toward aesthetic design, I think it applies to most any creative discipline, which includes programming and development. Essentially, the author emphasizes that the great creative work isn't a result of constantly "doing", but more often comes from deep introspection and thought.
http://blogs.hbr.org/cs/2011/04/how_good_designers_think.html
Recently, there has been a lot of buzz about Steve McConnell's comments about how, even though the best developers are 10 times more productive than the average programmer, there isn't a 10x difference in compensation. So what is the actual difference between the great programmers and the rest of the pack? This article looks at some recent salary surveys to compare the upper (third) quartile to the mean.
http://itmanagement.earthweb.com/career/article.php/11067_3922816_1
The FCC chairman during the Bush administration says that, even though wireless growth is exploding, providers should continue to push fiber further into their network infrastructure to handle backhaul.
http://www.bizjournals.com/dallas/news/2011/04/27/ex-fcc-chair-invest-in-fiber.html
Two independent teams have reported (here and here) long-haul transmission rates above 100 Tbps for the first team, using significantly different techniques.
A study finds that providers have spent over $250 billion dollars in the last three years, with wireline accounting for $89 billion, wireless at $71 billion, and cable at $40 billion. This accounts for over 1500 providers serving more than 200 million customers.
http://www.telecompaper.com/news/us-broadband-providers-invest-usd-250-bln-since-2008-study
Do you get annoyed when an email was sent to a very large distribution and people inadvertently (or maybe intentionally) start replying all? Or maybe you want to send an e-mail and don't want it forwarded to everyone else in the world. This handy add-in for Outlook does just that. It also includes a few other features such as checking for missing attachments or blank subject lines.
http://research.microsoft.com/en-us/projects/researchdesktop/noreplyall.aspx
If you use both Google Docs and off-line office tools, such as LibreOffice, you probably already know the difficulty of keeping your files synchronized. SyncDocs easily and transparently synchs up your documents. In addition, it contains some great features like Windows shell integration (right-click to open your documents in Google Docs), setting Google Docs as your PDF viewer/reader, and even setting Google Docs as your default editor for documents, spreadsheets, etc., if desired. You can even map Google Docs to a drive letter on your local PC for even easier transfer.
If you have very many items in your Start Menu or on your desktop, finding the application that you want to launch can become difficult. PrettyRun is similar to the standard Windows Run dialog, but it provides much better searching, a nice "recently used" list with icons and description, and excellent customization of the items to search. And you can even configure it to run as a portable application.
http://delphistep.cis.si/prettyrun.htm
At one time or another, you are likely to need to convert a file of some type to another type. File Blender might be called the Swiss Army knife of file conversion tools, as it supports video, audio, and graphic/image conversions along with HTML/CSS Tidy, PNG optimization, and PDF splitting/joining. In addition, it has a plug-in-based architecture, so you can add almost any other conversion that you might need.
http://sector-seven.net/software/fileblender
Most Windows file managers are variations on the standard Windows Explorer theme. Nemo Docs is quite different in that groups files by date and allows quick filtering on types, as well. In addition, it allows you to label directories and integrates with Windows Desktop Search to make searching simple. It also minimizes to the system tray to stay out of your way when you don't need it.
If you use Cygwin as an alternate shell in Windows, one annoyance you may have noticed is the lack of the clear command. Fortunately, there is an undocumented way to clear the screen: <Ctrl>+L. It works in the standard Cygwin shell, MinTTY, and xterm.
Have you ever wanted to pound out code lickety-split like the actors do in the movies? With Hacker Typer this dream can come true. Just choose what code base you want, such as the Linux kernel, the type of screen, and speed and hack to your heart's content!
This off-beat but interesting site features some historical event for each day of the year along with a photo illustration using Star Wars action figures, of which one is always a clone trooper.
OK… So this is very strange. But what I really want to know is how the academics get funding for "research" projects like this?
As a kid, I loved playing with microscopes and looking at bugs, leaves, blades of grass, or most anything that I could get my hands on. Here's a fun way to make an adjustable focal length ‑microscope that provides up to 75x magnification with common, everyday parts.
http://www.funsci.com/fun3_en/ucomp1/ucomp1.htm