Up to Newsletter Index

May 2013 Newsletter


Quotable Quotes

Beware of false knowledge; it is more dangerous than ignorance.  –George Bernard Shaw


Anything will give up its secrets if you love it enough.  –George Washington Carver


So with the power of thought; let power be dissipated by scattering the thought from one object to another, and no result is apparent; but focus this power through attention or concentration on any single purpose for any length of time and nothing becomes impossible.  –Charles Haanel


You only have to forgive once. To resent, you have to do it all day, every day.  M.L. Stedman, The Light Between Oceans


The key to being a good developer is to be able to find your answer as quickly as possible without learning anything else.  Brad Milne


I said to a guy, “Tell me, what is it about cocaine that makes it so wonderful,” and he said, “Because it intensifies your personality.” I said, “Yes, but what if you’re an asshole?”  –Bill Cosby, Himself


Return to top


Software Development Process and Methodology

Article:  Why Tech Projects Fail: 5 Unspoken Reasons

Most people who have been involved in IT for any appreciable amount of time have been on a failed project.  However, the reasons for failure are many and varied and most organizations never really explore the underlying causes.  This CIO says that lack of accountability, among others, is one of the main reasons.  And he follows up with suggestions to avoid failure.



Article:  Scrum as an impediment to Agility

This author makes the interesting (and provocative) statement that some of the principles of the Scrum methodology actually contribute to an anti-agile mindset.  He makes good suggestions about how more effectively handle sprint planning in a collaborative manner that feels truly agile and helps reduce risk.



Article:  Code Ownership - Who Should Own the Code?

This is an interesting and insightful look at the common models for source code ownership:  strong and weak individual ownership and collective ownership.  The author makes some great observations about the importance of stewardship regardless of the model used by an organization.



Article:  Kanban for MDN development

The person at Mozilla Developer Network, the team that provides documentation of all of the Mozilla projects, who introduced Scrum in the group discusses how they moved from Scrum to Kanban for their development process.  It seems like Kanban (and other lean development techniques) is making in-roads in lots of places, often organically and under the radar.



Article:  How Software Developers Really Spend Their Time

Believe it or not, a new survey shows that programmers spend about 20% of their time (that’s equivalent to one day out of the week!) waiting.  This includes waiting for builds/compiles to complete or tests to run.  Moreover, according to the survey, only ~12-1/2 hours are actually spent coding, followed closely by nearly 9 hours on administrative tasks.



Article:  Signs that you're a good programmer

From time to time, we have articles about indicators of following poor programming practices.  Since we also like anti-patterns, it seemed appropriate to take the glass-half-full approach and feature this one which not only lists traits of good programmers, but how to develop those skills.



Article:  Dieter Rams: ten principles for good design

Most of us in the technology world will never be mistaken as designers, but that doesn’t mean that we can’t learn some basic concepts of good design.  This article lists Dieter Rams’ core principles for excellent product design with some representative examples from his amazing career.



Article:  Leadership for Self-Organized Agile Teams

One of the scariest (and also controversial) aspects of agile development is the concept of self-organized teams.  It evokes visions of anarchy and laziness for many.  This article gives multiple perspectives on the role of management in empowering self-organized teams.



Article:  What Makes Code Readable: Not What You Think

The readability of your code is probably the single most important element in helping new developers get up to speed on what your code does.  This article provides some insightful analysis into what factors make code understandable or, just as importantly, difficult to grok.



Return to top


Software Testing & Quality

Article:  Practical Techniques to Achieve Quality in Large Software Projects

This article starts out with the simple fact that good software quality is not an accident and takes effort and diligence.  Moreover, it explains the concepts behind developing effective testing systems and quality measures, with a focus on how to design good tests.



Article:  No Place for Bugs to Hide

You may be familiar with Linus’ Law:  Given enough eyeballs, all bugs are shallow.  In this article, Andy Hunt, one of the original Pragmatic Programmers, explains that the fundamental purpose of TDD and testing is to reduce the opportunity for latent problems to remain in your application.



Article:  Damn Excel! How the 'most important software application of all time' is ruining the world

If you don’t think that software quality is important, perhaps this article will change your mind.  While the consensus seems to want blame the application (Excel), this article really shows that understanding the requirements and doing both verification (“Did we build it right?”) and validation (“Did we build the right thing?”) are vital.



Return to top



Tutorial:  Imperative vs Declarative

Many readers have probably heard the terms imperative and declarative used to describe programming paradigms.  But sometimes it’s difficult to fully appreciate what those technical papers really mean.  This tutorial explains with it actually means with both lucid prose and excellent examples.



Reference:  JavaScript Best Practices

JavaScript has become the lingua franca of client-side web development (and it’s making plenty of inroads on the server too, with frameworks like Node.js, Backbone.js, etc.).  If you are coming from more traditional languages, some of JavaScript’s quirks can be frustrating.  Here are some tips are understanding and writing good JavaScript code.



Reference:  jQuery Best Practices

The jQuery library is ubiquitous in web development today.  Many users of jQuery don’t have a lot of experience with JavaScript, so this article provides some tips on how to most effectively use jQuery for AJAX and responsive design.



Reference:  What CSS to prefix?

Most modern web browsers support the full CSS3 standard now.  However, sometimes you still need to use the vendor-specific CSS prefixes.  This excellent reference shows you which CSS features are ready for primetime and which you need to exercise care with.



Tutorial:  Postgres Demystified

As developers start to move away from MySQL as the de facto open-source RDBMS platform, many opt for PostgreSQL, which has many nice features, including native GIS support.  However, sometimes the transition isn’t always easy.  This presentation summarizes some of the specific quirks of PostgreSQL, many of which give it such great power and utility.



Return to top


Career Development/Miscellaneous

Article:  A Better To-Do List: The 1-3-5 Rule

Many time-management and productivity schemes seem to add more complexity rather than simplifying things.  This to-do list is different.  It is based on the premise that each day you should try to accomplish 1 big thing, 3 medium things, and 5 small things.  This seems like something that worthwhile for everyone to try.  And they give you a PDF to use to write them down!



Article:  How Developers Stop Learning: Rise of the Expert Beginner

What do you think would be the worst thing that you could do as a technical worker?  Among them should be that you stop learning and growing.  This article provides an interesting perspective on how programmers fall into the “expert beginner” syndrome.



Article:  The Tech Industry’s Darkest Secret: It’s All About Age

Despite official statements to the contrary, age discrimination is a reality in technology work.  Research shows that, for technical employees, after age 50 mean salaries decline by 17%.  This article offers some suggestions for older workers in dealing with this reality, not to mention that organizations should recognize the value of experience and maturity that older workers bring.



Article:  IT Salary Survey 2013: 11 Career Insights

Information Week’s annual salary shows that median salaries for workers are up ~1% to $90000 and manager salaries grew ~2% to $120000.  Another interesting insight is that while BI/analytics jobs pay best, the gap between them and other IT jobs is shrinking.



Article:  In Computers We Trust?  As math grows ever more complex, will computers reign?

This article discusses how mathematics is pushing the boundary of what can be proven with pencil and paper (and your brain, of course!).  It reviews how computers are changing the landscape of math and how math is done.



Article:  Engineering Serendipity

Yahoo got a lot of press from their recent announcement that all employees would be required to work in the office.  This pundit suggests that this is the correct approach based on the idea that most innovation happens due to the unexpected results of direct day-to-day interaction among workers.



Article:  Busyness is Not a Virtue

Many people take the productivity paradigm to insane levels.  They often thrive on simply being busy and don’t like not “doing” something.  This article gives some great advice on being productive without falling into the “busyness” trap.



Return to top


Telecommunications/Networking Industry

Article:  University Taps Dark Fiber for Online Academics, Healthcare

This is an interesting item in view of how large enterprises are moving to use fiber infrastructure to build their own WANs, rather than buy that entire network infrastructure from telecom providers.



Return to top


Useful Utilities

Task Manager (Free – Microsoft Excel – 100kB)

There are plenty of excellent (and free!) online task management tools and desktop client tools, as well.  Nevertheless, if you already use Excel for day-to-day work, it makes sense to simply use it for your "to do" list, as well.  This free spreadsheet template is both easy to use and sophisticated.  You just create a list of all of your tasks and their priority and then assign due dates and recurrence (if any).  The spreadsheet has a “dashboard” that shows your tasks for the week and more.



now.sh (Free – Linux/Unix/Cygwin – 2kB)

Perhaps I’m simple-minded, but sometimes the simplest tools are the most useful.  That is certainly the case with now.sh.  It’s a small shell script that prints the current date and time for any input to stdout (i.e., the terminal).  Just pipe the output of your command to now.sh and every second it will display the date/time interleaved in the output of the command.  Very useful when tailing a log file in realtime.



HotShots (Free – Windows XP/2003/Vista/2008/7/8 – 10.1MB)

Since there are so many free screen shot utilities available, you might wonder why we’d feature one here.  HotShots is the new kid on the block, but it’s got some very nice features, including ability to capture full screen (including multiple monitors) or a specified region, excellent built-in annotation tools (such as, auto-incrementing numbered tags), and ability to save in a variety of image formats.



Return to top


Productivity Tips

Make deleting large folders in Windows faster

I’m not really sure why this works, but if you take the simple extra step of right-clicking on a folder (or its contents, which includes other folders) and choose “Properties” before you delete the folder/contents (using <Shift>+<Del> to bypass Recycle Bin), it will make the delete much faster since it doesn’t have to re-calculate the size of the folder.  For some reason, the “Properties” method of determining the size is significantly faster than the “delete” method.


Return to top


Just For Fun

Can You Crack The NSA's Top-Secret Crossword Puzzles?

Here are some puzzles from the recently-declassified archives of the NSA’s in-house magazine from the 1970s.  The puzzles really aren’t that difficult and, accordingly, give you an idea of how far we’ve come in past few decades in terms of cryptography.



What Makes Rain Smell So Good?

Have you ever wondered where that enticing aroma comes from after a good rain, especially when it’s been dry for a long time?  It turns out that it comes from oils excreted by plants.  Interesting!



Experience the Apollo 11 Lunar Landing

Although it was over 40 years ago, I still remember watching the first moon landing with my dad on a department store TV (we didn’t have one at home yet).  If you weren’t around then or just want to experience again, check out this interactive site.



Explain XKCD

Do you enjoy XKCD, but sometimes the references are too esoteric for you?  Well, this community-edited site comes to your emotional rescue!  And you might just learn a few new things in the process.



Return to top