Up to Newsletter Index

March 2013 Newsletter


Quotable Quotes

I am an acme of things accomplished, and I am an encloser of things to be.  –Walt Whitman


People are disturbed not by a thing, but by their perception of a thing.  –Epictetus


If you don’t go after what you want, you’ll never have it. If you don’t ask, the answer is always no. If you don’t step forward, you’re always in the same place.  –Nora Roberts


The secret of success is constancy to purpose.  –Benjamin Disraeli


The difference between a Designer and Developer, when it comes to design skills, is the difference between shooting a bullet and throwing it.  Scott Hanselman


The three great things are: GOOD HEALTH; WORK; and a PHILOSOPHY OF LIFE. I may add, nay, must add, a fourth—SINCERITY. Without this, the other three are without avail; with it you may cleave to greatness and sit among the giants.  –Jack London, “Getting Into Print”


Return to top


Software Development Process and Methodology

Article:  Functional thinking: Why functional programming is on the rise

This article recommends that Java (or even Python!) developers start to learn functional programming idioms/paradigms, even if they don’t intend to move to a functional language like Scala or Clojure, because most mainstream languages are adopting functional features.



Article:  Focusing on the work, not the methodology

This article tries to take the agile concept back to its roots by emphasizing that the team needs to concentrate on delivering functionality (and business value), instead of making sure that they are following some process or methodology.  At the end of the day, it’s imperative that you remember that you can’t ship process.  Likewise, productivity keeps workers happy.



Article:  Domain Knowledge or a Lack Thereof

An experienced developer says that insufficient domain knowledge on the part of programmers is one of the leading causes of bad software.  Following the lead of Deming, he notes that ensuring developers have appropriate understanding of the business domain that they are developing for is the responsibility of both business and IT management.



Article:  Top 5 TDD Mistakes

Using some relevant examples from C#, this excellent article shows some common mistakes that prevent you from getting the desired value and outcome from TDD.  The author’s perspective is summed up as:  It's better to have no unit tests than to have unit tests done badly, but unit tests make me more productive and my code more reliable.



Article:  Killing Your Company’s Legacy Applications – the Right Way

The elephant in the room in many IT organizations is the plethora of legacy applications that take valuable resources away from new work due to licensing costs, maintenance, and other often ‘hidden’ costs.  This comprehensive article helps you develop an effective strategy for retiring your legacy applications while maintaining business continuity.  And remember that incumbent technology has a longer lifetime than most expect.



Article:  Value of Simplicity

This excellent essay demonstrates why simple architecture is more valuable than a complex one.  The author emphasizes the importance of a thorough understanding both the problem and solution domain and how the purpose of architecture is to bridge the gap between the two.



Article:  Estimation is Evil: Overcoming the Estimation Obsession

Ron Jeffries, one of the “creators” of the Scrum agile methodology, deliberately uses a very provocative title in this discussion about the problems with estimation.  He says that the most significant problem is that estimations beyond what work is to be done in the current iteration is anti-agile, because it forces (intentionally or not!) the organization back to a waterfall mentality of wanting to know everything at the start of a project.



Article:  Value-based Architectural Decisions in Agile Development

This article title seems like a mouthful, but the gist of the concept developed by Ebay is excellent:  Use value (particularly economic) metrics to drive architecture and design decisions during development.  The Ebay architecture team works closely with agile teams to help ensure appropriate architecture decisions are made.



Return to top


Software Testing & Quality

Article:  Programmers Should Not Test Their Own Code

This veteran programming explains why testers simply aren’t good at testing and the value that independent test groups bring to a team.  He wraps up the discussion with the warning:  Go ahead and fire all those testers and see what you wind up with. I just hope you don't work at the bank I have money (not much) at!



Article:  8 famous software bugs in space

They say that “in space, no one can hear you scream”.  Likewise, it’s pretty difficult to patch defects in applications that are millions of miles away.



Article:  A Bug is a Terrible Thing to Waste

While I hadn’t heard about this, apparently some agile teams have dispensed with bug tracking.  This article makes an elegant argument for the value of bug tracking on projects both in the short term and over the long term.



Article:  The Real Story of Stuxnet

The Stuxnet worm was a wake-up call about the potential power of cyberwarfare, both militarily and economically.  This article looks at how sophisticated malware has evolved over the past 40 years, including a new variant that has been found.



Article:  Why banks are likely to face more software glitches in 2013

After the recent spate of financial problems related to technology, this pundit expects the problems to continue this year, as well.  The main reason given is regression problems due to new features and/or integration problems and lack of good regression test suites.  Furthermore, age and technical debt in banking systems appear to be factors, as well.



Video:  Reason #501 Not to Deploy Buggy Software

While it seems rather unlikely that bad software would kill your boss, this humorous video does make a valid (and strong!) statement about value of using good practices in your development process.



Return to top



Tutorial:  A Drip of JavaScript

JavaScript is the hot language now on both the client and server side.  Unless you use it every day, it can be difficult to carve out time to learn it.  This site sends you simple and quick JavaScript tip once a week to help you improve your skills.



Tutorial:  Understanding TCP/IP Network Stack & Writing Network Apps

This comprehensive tutorial gets down to the nuts and bolts of TCP/IP networking from the perspective of an application developer.  It includes excellent explanations of esoteric concepts and uses examples of Linux kernel TCP/IP implementation to illustrate them.



Tutorial:  Learn Git Branching

Even after using it regularly for a while, I still don’t get the paradigm of Git.  In any case, this excellent interactive tutorial will help you understand Git branching, why it’s important to use (a lot!), and how to do it effectively on projects with many users.



Reference:  HTTP Headers Every Web Developer Should Know

If you do any interactive web development (JavaScript, jQuery, etc.), this simple reference will be useful for you to understand the basics of the HTTP interaction between the browser and the server.



Tutorial:  Klava

Need to brush up on your typing  errrr, I mean keyboarding skills?  Klava is a simple, free, online typing tester.  It even supports practicing on programming languages and alternate keyboard types, such as Dvorak.



Return to top


Career Development/Miscellaneous

Article:  How To Rewire Your Brain for Positivity and Happiness

One of my desires (I kind of avoid “resolutions”) for 2013 was to be a more positive person.  In many work environments, it is so easy to get sucked into anger, distrust, and other poisonous forms of negativity.  Overall, I’m succeeding (still have relapses, of course!).  This article gives some great tips for how to develop habits that help you stay on a more positive track in your life.  Even one of the new “branches” of data science is happiness metrics.



Article:  How to Stay Positive in the Workplace

Recently, Randall Munroe had a brilliant XKCD that our workplaces (and even the cultural, in general) tend to frequently push us toward bitterness and negativity.  Here are some good tips to maintain a positive outlook in almost any work environment.  And remember that giving jerks the silent treatment is the best way to deal with them.



Article:  How to Work: A Life of Purpose

This essay debunks many of the common myths that have grown up recently about finding a job you love and following your passion in your work.  Essentially, the author says that work is hard (that’s why they call it “work”, right?) and enjoyment of our work comes from doing it diligently and viewing it with purpose.



Article:  The 5 Hardest Jobs to Fill in 2013

Trying to decide what new technical skills you want to learn to keep up with the marketplace?  This pundit says that these are the most sought skills currently:  big data, mobile, enterprise software, cloud computing, and Ruby on Rails.  Three of these were probably obvious to most of you, but enterprise software and Ruby on Rails seemed like dark horses to me.



Article:  Guide to Tech Interviews

Interviews for technical jobs tend to follow a different pattern than typical job Interviews.  This article provides some good advice about preparation for both the technical and soft-skill portions of programming interviews.



Article:  Key Job Skills to Look for When Hiring

Are you looking for a new job?  If so (or even if you aren’t right now!), here is a list of the key skills that employers are looking for in candidates, based on research from Corporate Executive Board that reviewed over 20000 employees at 40 companies to compare the top performers to others.



Article:  Is It Cheating to Have a Side Project?

Everyone knows that, in general, career management and development is your own responsibility.  This article gives some good advice on how to keep personal development efforts clearly delineated from your regular work.



Article:  Procrastination

All of suffer from procrastination at one time or another.  This author looks at some of the frequent causes and boils it down to this equation:  pressure * negative feelings towards the task = danger of procrastination



Article:  9 Rules for Success by British Novelist Amelia E. Barr, 1901

How would you characterize success?  Listen to what this writer who lost her husband and 3 of her children to yellow fever, yet went on to become a well-known writer at age 52 says.



Article:  Employees leave managers, not companies

Referencing research on why people leave organizations, this author emphasizes that difficulty working with your direct supervisor is the most common reason.  He goes on to use show how Maslow’s hierarchy of needs applies to how managers should support their employees.



Return to top


Telecommunications/Networking Industry

Article:  There Will Be Broadband: Forgotten by the Future, Some Take the Internet Into Their Own Hands

Feeling left out by carriers, this story profiles a number of efforts by rural residents to implement their own high-speed Internet infrastructure. It also discusses many of the impediments, not the least of which is public ownership of networks.



Article:  Tech, telecom giants take sides as FCC proposes large public WiFi networks

The latest battleground in the telecom world is the FCC proposal for nearly ubiquitous WiFi coverage throughout the United States.  Learn about what’s at stake and who the players are.



Return to top


Useful Utilities

Chocolatey (Free – Windows XP/2003/Vista/2008/7/8 – 40MB)

If you are familiar with Debian-based versions of Linux (e.g., Ubuntu, Knoppix, etc.), then no doubt you know about the apt-get package manager.  Chocolatey aims to bring the similar idea to Windows to make installing free applications and keeping them updated simpler and more consistent.  Currently, they offer over 600 packages with more being added all the time.



DtSQL (Free – Cross-platform/Java – 50MB)

DtSQL is a JDBC-based database query and management tool which includes drivers for more than a dozen database types, including Oracle, MySQL, PostgreSQL, and more.  It has been tested with over two-dozen database platforms.  It includes many features and connection management is very simple with the multiple connection “templates” for the various database platforms.



Byobu (Free – Linux with GNU screen or tmux – 334kB)

Byobu (from the Japanese word for folding room divider) is a nice, unobtrusive add-on for GNU screen or tmux (check here for how to switch between them) that shows some common system statistics on the bottom row of your terminal window.  In addition, it makes it easier to identify your background sessions and other goings on with screen and tmux, especially if you just getting started with either.  Debian and RPM packages are available and, of course, you can compile from source.



Vidma (Free – Cross-platform and VirtualBox – 20kB)

Resizing VirtualBox VDI virtual disk images is typically an arduous task.  Vidma (Virtual Disk Manipulator) makes it easy to resize the disk image in-place (or by making a copy) with a simple command.  And Vidma supports both Linux and Windows.



More Clipboard (Free – Cross-platform/Eclipse – 29kB)

More Clipboard is a handy, small add-on for Eclipse that keeps the last few items pasted to the clipboard and allows you select from these items from a pop-up list using a keyboard shortcut.  It's not a full-featured clipboard manager, but it is small and does one thing well.



Return to top


Just For Fun

If Philosophers Were Programmers

What if some of the greatest thinkers of all time had been programmers instead?  That’s the premise of this post.  See if you agree with the author’s choices about their presumed favorite languages.



Whatever Happened to the Phone Phreaks?

Last month, we included a story about “phone phreaks”, but these articles just keep popping up and many of them add something new to the picture.  Enjoy!



This Star Wars Galaxy Map Is a Thing of Beauty

How far is it from Geonosis to Hoth?  Well, this map might not help you figure that out, but it is a truly astounding work of art to provide you with some context for the Star Wars milieu.




If you are of a certain age, you probably remember the arcade game where you are a skier who has to race down the slope without running into trees or rocks.  This is faithful re-creation purely in JavaScript.  You are sure to waste at least 5 minutes on this!



The On1on

This site is like The Onion with one very significant difference:  All of the stories this site are true!  Whoever said “the truth is stranger than fiction” must have had this place in mind.



The sound of the dialup, pictured

If you remember the era of dial-up Internet access, you’ll appreciate this explanation of all of those tones used to negotiate your modem’s connection with the ISP.



Coding Confessional

Do you do things in your development that you aren’t proud of and hope that no one else finds out about?  If so, you might want to get them off your chest anonymously at this site.



Return to top