Up to Newsletter Index

November 2011 Newsletter


Quotable Quotes


Any idiot can face a crisis—it's day to day living that wears you out.  –Anton Chekhov


A good engineer thinks in reverse and asks himself about the stylistic consequences of the components and systems he proposes.  –Helmut Jahn


Errors using inadequate data are much less than those using no data at all.  –Charles Babbage


Only drug dealers and software companies call their customers ‘users’.  –Edward Tufte


Inside my empty bottle I was constructing a lighthouse while all the others were making ships.  –Charles Simic


If you do not hope, you will not find what is beyond your hopes.  –Clement of Alexandria


The year 2000 was essentially the point at which it became cheaper to collect information than to understand it.  –Freeman Dyson


How we think shows through in how we act. Attitudes are mirrors of the mind. They reflect thinking.  –David Joseph Schwartz


Return to top


Software Development Process and Methodology

Article:  Agile Scrum: Delivering Broken Software Since 1991

Most people recognize that any software methodology is only as good as the people involved in implementing it and executing on a day-to-day basis.  This article looks at some of the traps we can get lulled into with Scrum.



Article:  If I had more time I would have written less code

A programmer looks at what causes developers to rush and, accordingly, write bloated, sloppy code.  And, of course, he offers some suggestions for combating this problem, too.  And, interestingly, I think that rushing is often a cause of getting stuck.



Article:  What the IT department will look like in 2015

This pundit, whose prognostications seem to be in line with others', such as Gartner and Forrester Research, predict that in just 3 short years, the IT organization will have fewer employees and more consultants and the focus will be on software, mobility, and cloud/SAAS.



Article:  Is it Time to Stop Estimating User Stories?

Everyone knows that estimation is fraught with peril.  In this overview article, some agile pundits discuss whether or not user story estimation is worthwhile.  To some degree, I wonder if this is a subtle admission that we simply don't know how to do estimation.



Article:  End the holy war over agile development

This author suggests that internal conflict within IT about whether to use agile methodologies versus traditional methodologies isn't useful, because it ignores the needs of the business.  He suggests the popular concept of a hybrid solution and emphasizes that IT needs to focus on versatility instead of particular methodologies.



Article:  Will Mobile Apps Drive IT Shops To Agile?

This author suggests that the demand by business customers for mobile applications will be a key driver behind adoption of agile development methodologies.  In particular, he notes that cafeteria-style selection of particular techniques by teams will be important.



Article:  The Goal of software development

This article presents an interesting look at the application of Goldratt's Theory of Constraints to programming.  The discussion focuses on how to identify and remove bottlenecks in the development process.



Article: Agile Software Is A Cop-Out; Here’s What’s Next

While the title of this article was likely to be intentionally incendiary (and it met its mark!), the author makes some valid points about adjusting our processes to better fit the processes and "customs" of the business.  Others have weighed in on their suggestions for fixing the development process, as well.



Return to top


Software Testing & Quality

Article:  Please replace me, let me go

This article provides a good discussion on the fact that successful testing involves a combination of both automated and manual testing.  Likewise, it emphasizes that even with automation, the cognitive abilities of people are still the key aspect of developing a good testing approach.



Article:  Harmony is beauty

In this article, the author talks about how she developed (and maintains!) a passion for testing and how that helps her work collaboratively with developers and other team members.  It's a great story about how to love your job.



Article:  What I've Learned About Testing Over the Last Year

While this article is targeted mainly toward developer testing, it really gives a good overview of the importance of a layered approach to testing.  Likewise, it provides a very usable framework for structuring your tests.



Article:  Why code review beats testing: evidence from decades of programming research

This article presents an approachable and straightforward explanation about how code reviews (I know…  Everyone hates them!) are better at finding defects than testing.  The author emphasizes that from a practical standpoint you have to balance cost with effectiveness of bug detection and removal.



Article:  Properties of a good test scenario/case

It seems obvious that tests are only as good as the test cases and scenarios.  But have you ever thought about the definition of a good test case?  This article provides some ideas for what you should include.



Return to top



Tutorial:  10 ways to improve your programming skills

Everyone wants to improve their skills and our current economic environment makes lifelong learning imperative.  Here are some great tips on how to advance and hone your programming skills.



Tutorial/Reference:  SICP in Clojure

Structure and Interpretation of Computer Programs (SICP) is a well-known book on introductory computer science using the LISP dialect known as Scheme.  This version is modified to use Clojure, a JVM language that is closely akin to LISP, which allows you to right programs in functional style, but run them anywhere that Java can run.



Tutorial:  RESTful API Design: Teach a Dog to REST

This brief video tutorial, with a comprehensive set of accompanying slides, provides an excellent explanation of some of the key elements of creating/implementing a REST API for your application or product.  And don't forget to pay attention to the service end points!



Tutorial/Reference:  HTML5 For Web Designers

While the HTML5 standard hasn't been approved yet, it's already widely used.  This brief (85 pages) online book gives a good overview of the changes and includes chapters on the new rich media support and on updates to forms support.



Reference:  search[code]

In my opinion, Internet search has done more for improving software development than almost anything else.  You can almost always find an answer to even the most esoteric questions, if you look hard enough.  This site allows you to search online programming language documentation from many sources and it neatly organizes the results.  Typically, the results include the full text of the documentation, so you don't even have to click over to another site.  And another nice feature is the home page includes random little tips, so you're bound to learn something on every visit.



Return to top


Career Development/Miscellaneous

Article:  A notebook and a pen can be a highly effective personal productivity system

Like me, this person tried electronic means of managing tasks and to-do lists and wound up going back to plain on old paper and pen/pencil.  He offers some good practical tips for using them in an unobtrusive way.



Article:  When techies speak, the devil's in the details

As a loquacious person, this article really resonated with me.  The author makes a strong point that sometimes, as technologists, our effort to explain things precisely and in much detail is exactly what causes us to miss getting the message to our counterparts in the business.



Article:  Bored People Quit

This article really struck a chord with me and I think it will with many knowledge workers.  This technology manager gets straight to the point about how to ensure your employees don't get boredom burn out.  Interestingly, he notes that top performers are more likely to quit over boredom.  And, certainly, they are likely to have more opportunities which further increases this risk.



Article: Seven reasons your coworkers don't trust you

According to a new poll, workplace incivility is on the rise and it destroys trust.  Trust and accountability are linchpins of agile development.  Here are some reasons that your colleagues may not trust you as much as you think.  Maybe we all need a "civility makeover" to some degree?



Article:  Job Losses in Tech Industry Decline in 2010: Report

According to a new report, even though the technology sector continued to shed jobs in 2010, the rate was half that of 2009, with a net decline of 115200 jobs or about 2%.  Communications sector led the way in job loss with 72100 jobs and only software sector gained a modest 22800.  Colorado ranks third in the portion of technology workers.



Article:  Extreme Perfectionism: How it Hurts Your Performance

My personal experience is that technology workers have a tendency toward perfectionism.  This article, based on the content of The Perfectionist's Handbook, shows how perfectionism can actually be detrimental to your career.



Article:  Gartner Says Worldwide Enterprise IT Spending to Reach $2.7 Trillion in 2012

Gartner predicts that spending next year will grow 3.9% from 2011.  This is down from their expected growth rate of 6.9% in 2011.  While $74 billion was spent on public cloud services in 2010 (3% of IT spending), they expect growth in this area to be 5 times that overall growth.



Article:  The Science of Irrationality: A Nobelist explains our fondness for not thinking

Most readers of this newsletter probably consider themselves above average intelligence.  In this article, Jonah Lehrer discusses the work of Nobel laureate Daniel Kahneman on how easily we fool ourselves by following intuition.  Maybe this is why it's so easy to just "Google it".



Article:  How I live on $7,000 per year

Recently, a web site called Spent, which challenges you to see if you can live on $9 per day, which is what many folks in poverty must do every day, has been making the rounds.  And doubtless you've heard about this little Occupy Wall Street thing.  This guy takes a practical approach to living frugally and shows how to do it.  Who knows?  Even as a programmer, maybe you can retire in 10 years!



Article:  Creation Myth: Xerox PARC, Apple, and the truth about innovation

Malcolm Gladwell provides some insight into how technological superiority can often be overshadowed by aesthetic design and marketing and that technology is not the overall objective.  But he goes well below the surface of the legendary story to show how Apple fundamentally extended the concepts that it learned from Xerox PARC to really create something new.



Article:  Starting Smaller; Staying Smaller: America's Slow Leak in Job Creation

New research based on 2010 US Census data shows that even prior to the recent recession, new businesses have started up with fewer employees and stayed smaller.  Overall, the data show that new companies started in 2009 will add one million fewer jobs over the next decade than historical averages.  (See also Steve Denning's blog for more about this shift.)



Video:  An End to Negativity

While the presentation is a bit rambling and somewhat tentative, the presenter makes a very good case for why we as technology workers must stop trolling and anonymously bashing others online and instead engage in productive, one-on-one dialog about our differences.



Return to top


Telecommunications/Networking Industry

Article:  FCC Unveils Connect America Fund

FCC chairman Julius Genakowski has outlined a proposal to revamp the USF/ICC programs which is intended to extend availability of mobile broadband to currently underserved regions of US, especially rural areas.



Return to top


Useful Utilities

Eclipse Fonts (Free – Cross-platform/Eclipse – 100kB)

If you use Eclipse for development, you probably know how frustrating it can be to simply adjust the font size in the editor windows.  This Eclipse plug-in adds a couple of toolbar buttons with associated keyboard shortcuts for increasing and decreasing the font size.



Map Puzzle (Free – Windows 2000/XP/2003/Vista/2008/7 – 244kB)

Have you ever wanted to save a map from Google Maps or Microsoft Virtual Earth (a.k.a., Bing Maps), but couldn't figure out how to do it?  Map Puzzle comes to the rescue.  Just specify the map coordinates (latitude/longitude), zoom level (scale), and map size and it will save your map.  You can choose the type of map (satellite view, map, hybrid, etc.) and save the map in BMP, JPG, or PNG format.  It even supports selection of map size based on paper size.



LucidChart (Free – Cross-platform/Online tool – N/A)

LucidChart is a free online diagramming tool, similar to Visio.  It allows collaborative editing of diagrams, such as, flowcharts, network diagrams, mind maps, organizational charts, and even web site or application screen mockups.



Dyngrep (Free – Windows 2000/XP/2003/Vista/2008/7 – 261kB)

One of the more frustrating changes made to Windows over the past few years was the removal of the advanced file search capabilities.  If you are looking for a replacement that doesn't require creation of large indexes, check out Dyngrep.  Some of the unique features are ability to search for text strings or regular expressions, preview of search results showing the found items in context, and searching in Microsoft Office documents and PDF files.  You can even create your own "formatters" to "teach" Dyngrep to ignore headers or other content in particular file types.



CheckAsm (Free – Windows 2000/XP/2003/Vista/2008/7 and .NET libraries – 754kB)

Despite the name, this tool isn't for assembly language.  Instead, it's similar to Dependency Walker, but for .NET assemblies.  It will show you a tree view of all .NET libraries that a given assembly depends on.  And it flags missing dependent files or ones that aren't the proper version.  Great for troubleshooting why your .NET application won't run on some machines.



Return to top


Just For Fun

Infinite Mario Brothers

In the spirit of World's Biggest Pac-Man, we give you Infinite Mario Brothers.  And don't blame me, if you don't get any work done the rest of the day.



Star Wars Imperial March Played by Dual Floppy Drives

Not quite the style of Dueling Banjos, but this is a pretty cool creation with two 3-1/2" floppy drives (remember those?) playing the Imperial March (think Darth Vader).



Building Babbage's Protocomputer

Uber geek John Graham-Cumming has set out to build a working version of Charles Babbage's analytical engine.  Learn more about this incredible undertaking.




Who would have thought that a comic strip about living with a database nerd could be funny?  In this one, the author even provides some nice commentary about the motivation for each strip.



Navigating NPR's Top 100 Science Fiction and Fantasy Books

This summer, NPR asked readers to suggest the top sci-fi and fantasy books of all times.  So how do you decide which one to read first (or next)?  This flowchart is just the ticket!



Carving the Death Star

If you and your kids haven't carved your Halloween pumpkin yet, you might want to check out these step-by-step instructions for turning that gourd into the Death Star.



Programming Language Checklist

If you're working on implementing your own new programming language (they seem to be proliferating like rabbits lately—hey, maybe I'll create the Rabbit programming language—or a new real language!), you'll want to make sure you work through this tongue-in-cheek list first.  (New!  Automated version here!)



Return to top