Up to Newsletter Index

July 2013 Newsletter


Quotable Quotes

Knowledge can be communicated, but not wisdom. One can find it, live it, be fortified by it, do wonders through it, but one cannot communicate and teach it.  –Hermann Hesse


All models are wrong but some are deadly. One does not judge a model on whether it is wrong, rather how costly the error, period.  Nassim Taleb


Est natura hominum novitatis avida.  (Human nature is fond of novelty.) –Pliny the Elder


They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.  –Benjamin Franklin


Return to top


Software Development Process and Methodology

Article:  The weight of code

This article references an interesting video about developing the programs for the Apollo lunar missions.  In that era, memory actually added physical weight to the device.  The author provides an analogy to coding today contributing “psychological weight” in the form of each line of code needing to be maintained in the long run.



Article:  5 Common User Story Mistakes

User stories are certainly an effective method for capturing and communicating business requirements, when done correctly.  Here are handful of frequent mistakes to watch out for to ensure you develop the best possible stories.



Article:  How to Work with Software Engineers

A Google product/project management veteran gives 10 rules (in the form of anti-patterns!) for how to work successful with the technical people on a team.  His list is both relevant and practical and includes salient examples.



Article:  How to Compete When IT Is Abundant

Ten years after Nicholas Carr’s provocative statement that IT Doesn’t Matter, this author takes a look at how business can differentiate themselves in light of the realization of the predicted democratization of technology tools, due to the cloud, mobile systems, and the like.



Article:  Beware your project’s Schwarzschild radius

Using an interesting analogy to gravity from physics, this development expert explains why it’s better to reduce the size of your project instead of adding resources or reducing churn (requirements and scope change).



Article:  How to Reduce the Hidden Factory in Software Development?

One of the core principles of lean development practices is to eliminate waste, which is typically defined as anything that can’t be used.  This article talks about ideas for removing “hidden factory” processes, which are things that people do, but that are unseen (and, therefore, unaccounted for!) by management, so that your team can deliver more measurable business value.



Article:  What’s the Point in Points? Agile Estimating with Dinosaurs and Bees

While some agile development experts have started recommending not using story points in the estimation process (here and here, for example), this author makes that keen observation that story points should really be a normalized estimate of the combination of expected effort, complexity, and the amount of unknowns around the story.  Furthermore, he recommends the practice of establishing a concrete measure of the smallest story (what 1 or 2 points actually means), so that relatively sizing makes sense.



Return to top


Software Testing & Quality

Article:  Does Code Quality Really Help the Business?

As software complexity and size increases, the ability for each developer to understand the application becomes more difficult.  Although most organizations emphasize “quality” (TDD, unit tests, etc.) of code, this author suggests that we are measuring the wrong things and we need to look at the bigger picture in terms of business value.



Article:  In Search of Software Quality

How would explain or measure software quality?  This article doesn’t actually prescribe how to do it, but it offers some great suggestions about dimensions of quality that you may want to consider for your particular situation.



Video:  Empower Developers to Build Quality In

What if, instead of pushing developers to deliver faster, your development methodology enabled (perhaps even required!) workers to stop the process as soon as a quality problem was found?  This presentation discusses how worker empowerment improved both quality and productivity.



Return to top



Reference:  Why Favor Composition over Inheritance in Java and Object Oriented Programming

When writing Java code (and, more precisely, when designing your object structure!), it’s easy to forget about the option of using composition instead of inheritance.  This article gives some excellent advice about how to decide which is appropriate for a given situation.



Reference:  Responsive Patterns

With the popularity of mobile, but the importance of traditional platforms, responsive design is vitally important.  But getting started with responsive design isn’t always easy.  This site provides a plethora of patterns, tools, and best practices for responsive design.



Tutorial:  Exploring Lambda Expressions for Java Language and the JVM

Lambda expressions, sometimes called anonymous functions or closures, are an important programming language feature for modern programming.  This three-part tutorial introduces the concept and explains how to use lambda expressions in Java.





Tutorial:  Fun with JavaScript Arrays

JavaScript is a quirky little programming language.  This article shows some of the more common and a few esoteric odd behaviors of JavaScript related to arrays.



Tutorial:  RESTful Web services with Jersey

Application APIs are essentially a requirement for any internal or external application built today.  Likewise, REST is the de facto approach for services today.  This article provides a thorough, step-by-step tutorial on building Java REST web services with Jersey.  The author shows all of the steps to build a simple service, including the data access portions.



Return to top


Career Development/Miscellaneous

Article:  Why Productive People Have Empty Schedules

Warren Buffett, Peter Drucker, Charles Dickens, and others give some tips on maintaining control of your most important resource, time, by learning to say “No”.



Article:  10 Productivity tips for software developers

The fundamental objective of software development is to simplify a complex process and improve productivity and throughput of the users of the system.  However, sometimes programmers forget to “sharpen the saw” themselves.  Here are 10 practical tips to improve your productivity.



Article:  Organizational Skills Beat Algorithmic Wizardry

Even though Google admits that they aren’t valuable in the hiring process, many companies use puzzles and “live-coding” in the candidate evaluation process.  This developer notes that hiring should focus on other skills, such as organization, how the individual works with the team, and the like.



Article:  Levelling Up as a Developer

What skills do you need to cultivate as a programmer to move beyond the basics of writing code?  This author provides some relevant and salient concepts that every developer needs to understand, regardless of background or preferred programming language.



Article:  The 80% principle

This author explores the application of the eastern principle known as hara hachi bu, which (roughly) means “Eat until you are 80% full”, to our work lives.  He points out how not running full throttle all the time helps prevent burn out and keeps some reserve for dealing with crises when they arise.



Article:  IT Jobs Growth: Sure and Steady, but Modest

While IT job growth is better than employment growth in general, it’s still not as good as many experts would like.  BLS statistics show that IT unemployment is 3.5%, more than 4% below the national average, and a Dice survey says that 3/4 of employers plan to hire IT workers in the second half of 2013.



Article:  Motivating your employees – what you’re doing wrong and how to fix it

This article explains why the traditional, extrinsic motivation techniques don’t work and then posits that the best motivators in today’s workplace are autonomy, mastery and purpose.



Article:  Two i's

Most productivity improvement systems are organized around the concept of focusing attention on ONLY the most important thing.  Productivity maven Jason Fried says that, to sustain motivation and accomplish more, we should focus on two things:  the next most important thing and the next most interesting thing.



Article:  The Boss Stops Here

A new book about the history of the modern office, entitled, appropriately, Cubed, says that non-hierarchical organizations (“self-organizing”, if you prefer) are becoming more common, especially in “creative” disciplines, including programming.  But there are still some problems, such as performance measurement, that need to be worked out.



Article:  The $200,000 software developer: We can build him, we have the technology

Certainly, most of us in technology careers did not go into this occupation with the expectation of becoming millionaires.  Most likely we wanted to be financially stable.  Nevertheless, in certain areas, you could make nearly twice the national average salary as a programmer.



Article:  You Cannot Win Engineering

What does improv comedy have in common with programming?  You might think not much, but read this article to see how some improv principles can be applied to team dynamics, especially in practicing servant-leadership as a technical leader on your projects.



Article:  Edward Snowden Doesn't Have a BA--Why That's the Future of the Tech Industry

Based on a new report from the Brookings Institution, over half of current workers in STEM do not have a college degree.  This article indicates that traditional measures of prerequisite skills for technology jobs no longer make sense in this world of MOOCs and ubiquitous Internet access.



Article:  How An Introvert Learned To Be A Leader

Chances are that many (most?) readers of this newsletter are introverts.  This person, who is now a college dean, says that one of the key traits of introverts, being a good listener, gives them a strong foundation for becoming leaders.  He goes on to explain how introverts can adapt to their working environment to be successful.



Article:  How Technology Is Destroying Jobs

An economist says that technology is doing away with jobs faster than new ones are created.  This appears to be a sustained phenomenon and doesn’t bode well for the future of employment.  And, according to George Lucas and Steven Spielberg, even Hollywood is not immune from the effects.



Return to top


Telecommunications/Networking Industry

Article:  No Country for Slow Broadband

Richard Bennett explains that with the economic recovery, the technical broadband infrastructure in the US has moved us from 15th in the world up to 8th.  However, the largest impediment to broadband growth is lack of subscribers for a variety of reasons, including lack of competition resulting in artificially high prices.



Return to top


Useful Utilities

Dictionary of Numbers (Free – Google Chrome Extension – N/A)

Do huge numbers without much context (perhaps US GDP of $15 trillion) make your head spin?  This cool little extension for Google Chrome helps you to better understand numbers that come up in web pages you visit.  It automatically provides inline references, plus you can do a search from the browser toolbar.  For a comprehensive review of this tool, check here.



CuteMarkEd (Free – Linux/Windows XP/2003/Vista/2008/7/8 – 29.6MB)

CuteMarkEd is an open-source, cross-platform (Linux and Windows) Markdown editor with a great feature set include side-by-side “live” preview of editing, support for math expressions and code syntax highlighting, definition and application of custom styles, exporting output to PDF, and more.



Cito (Free – Cross-platform .NET/Mono – 133kB)

Cito is an open-source toolkit that allows programming in a new language called Ć, which is a sub-set of C#.  Code in Ć can be translated into a variety of target languages, including C, Java, C#, JavaScript, and ActionScript, via cito for native compiliation.



DOMquery (Free – Cross-platform JavaScript library – 7kB)

The jQuery library is the de facto standard for client-side JavaScript programming these days.  But as jQuery has evolved, it has also grown and can become unwieldy at times (although now you can download just the parts you need/want).  Instead of jQuery, if you mainly use it for DOM manipulation, you might want to check out DOMquery.  It’s a small (just 7kB minified) library, built using Common.js, that includes the typical DOM element, class, and CSS functions, along with some simple event handling.



PuTTY Tray (Free – Windows XP/2003/Vista/2008/7/8 – 1MB)

PuTTY Tray is an enhanced version of the classic PuTTY SSH/Telnet client with some excellent features such as ability to minimize to the system tray, configurable window transparency, saving session configuration settings to files, automatic URL hyperlinks, always on top, and more.  Moreover, it comes in a single file (separate 32-bit and 64-bit versions) so you can run it from anywhere.



Return to top


Just For Fun

Sei Mai Neim

At some time or another, you’ve probably dreamt of being a ninja.  But what would your name be?  The Internet comes to rescue with this cute site that will generate your ninja name.  Just call me sensei Chikirin Zumo Tokuari.



ScummVM ported to HTML5

ScummVM is a mature, open-source engine for running dozens of popular retro computer games.  Originally written in C++, this guy has ported it to HTML5 and online demo includes a half-dozen popular LucasArts games.



The Colour Clock

This simple, but fascinating Flash-based site displays the current (local) time with the background displayed using the time value converted to the corresponding hexadecimal color value.  The display is also available as a screen saver for Windows, Mac OS X, and Android.



Magician Turns $1 Into $100 for the Homeless in This Touching Video

Down on how callous and cold the world seems sometimes?  Check out this heartwarming video where a magician switches a $1 bill in the hand of homeless people into a $100 bill.



Return to top