Up to Newsletter Index

August 2014 Newsletter


Quotable Quotes

Our greatest fear should not be of failure but of succeeding at things in life that don't really matter.  –Francis Chan


The difference between successful people and very successful people is that very successful people say “no” to almost everything.  –Warren Buffett


Remember that there is no happiness in having or in getting, but only in giving. Reach out. Share. Smile. Hug. Happiness is a perfume you cannot pour on others without getting a few drops on yourself. Og Mandino


The string is a stark data structure and everywhere it is passed there is much duplication of process. It is a perfect vehicle for hiding information.  Alan Perlis


If you are immune to boredom, there is literally nothing you cannot accomplish.  –David Foster Wallace


Perseverance is more prevailing than violence; and many things which cannot be overcome when they are together, yield themselves up when taken little by little.  –Plutarch


How does a project get to be a year behind schedule? One day at a time.  –Fred Brooks 


Communication builds trust. Trust generates commitment. Commitment fosters teamwork. Teamwork delivers results.  –Jon Gordon


Return to top


Software Development Process and Methodology

Article: How to Work with PMs: A Cheat Sheet for Designers

Most work in the modern workplace is project-based.  And, accordingly, we frequently work with project managers.  This article helps the technical worker (usually left-brained!) work effectively with their PMs, by better understanding the priorities and motivations that a PM has.



Article:  Alternative Approaches for Implementing Agile

This summary looks at ways that some organizations are introducing agile practices beyond the typical management-directed approach.  The interesting insight in these “insurgent” approaches is that they focus on “small A agile” and doing the things that work to improve productivity.



Article:  Letter to a Young Haskell Enthusiast

Don’t skip this article just because you aren’t a Haskell programmer or a functional programming wonk.  The title might better be “Letter to a Fledgling Programming Language ‘X’ Enthusiast”, because it applies to most any language and programmer.  While most personal philosophy, it gives some excellent advice about how to be both a good learner at your new language and a good “citizen” in the language community at large.



Article: Just Let Me Code! and Getting Back to Coding

This editorial eloquently expresses the oft-stated complaint of many developers that they must spend so much time on process matters, project overhead, and other administrivia that actually finding time to write code becomes difficult.  In the sequel, the author recommends that, instead of being distracted by the new and flashy tools, developers use familiar and (typically) single-purpose (think “Unix philosophy”) applications.




Article: Code Responsibly

If you could offer some nuggets of wisdom to other developers, what would you include?  You could certainly do worse than these ten simple, yet insightful, tips for doing your best development work.



Article:  On the Balance of Speed and Quality

Management wants you to go faster with your development, but you want to ensure that your good has good quality.  The bottom line in both cases is value:  What does the customer get for the effort?  This article looks at how speed and quality can go together.



Article: What’s the Point of Agile Points?

One of the items that is often difficult for those starting with Scrum is the concept of “story points”.  This article explains not only how to use them, but the motivation behind the (seemingly artificial) concept.



Return to top


Software Testing & Quality

Article:  Stopping Bugs Before They Sneak into Software

Most of us know that preventing defects has a much lower cost than fixing them.  While this sounds a bit too much like “Big Brother” for my tastes, it’s nevertheless an interesting approach to trying to stop bugs before they make it into code by monitoring a developer’s eye movements, physical and mental characteristics as they code to measure alertness and stress levels to indicate a higher probability of code errors.



Article:  Why Software Testing Needs Revolution?

This article sounds the call for software testers to come together to advance the state of the art in testing by sharing ideas.  The author suggests that software testing has stagnated because of lack of innovation and original thinking by testers.



Article:  A $300 million IT flop

After six years and $300 million, the US Social Security Administration (SSA) has abandoned plans to implement a system designed to replace 50+ disparate systems for disability eligibility assessment.  Among the cited problems are use of contractors without web-based development experience and lack of a strong project champion.



Article:  GAO report blasts HealthCare.gov for lax planning, oversight

A new report from the GAO says that technology was not the fundamental problem with the HealthCare.gov web site implementation, costing taxpayers $840 million.  Instead poor management and oversight were the main culprits.  This supports the common knowledge in IT circles that technology is usually not the problem with failed projects.



Return to top



Reference:  HTML Elements

Keeping track of all of the elements and tags in HTML can make your head spin.  This nice, simple site gives a comprehensive list of the tags and explanations of each, including any attributes for each tag.  In addition, it has a handy reference of which versions of HTML are valid for each tag.



Tutorial: Designing User Interfaces for Your Mother

User interface (UI/UX) design often gets short shrift when it comes to application development.  However, you don’t have to be an expert graphic designer to be create good interfaces if you follow these five practical tips for the “average” user.



Tutorial:  Markov Chains: A visual explanation

Markov chains are a powerful tool in modeling systems, but if you aren’t familiar with them, they can be a bit difficult to conceptualize at first.  This excellent, brief tutorial uses some great visualizations to help you get the basic ideas.



Tutorial: Version Control Tutorial

With the plethora of Git tutorials out there, you might ask why we’d want to suggest another one.  However, this is a really good introductory version control tutorial aimed at non-developers (but certainly relevant to them!).  The author presents each topic with a relevant example and explanation.



Return to top


Career Development/Miscellaneous

Article:  The Top Programming Languages:  IEEE Spectrum’s 2014 Ranking

One of the most important aspects of career management is keeping track of trends in your industry.  This interactive chart allows you to compare the popularity of various programming languages based on a variety of different factors, including number of jobs, open jobs, search trends, and more.  You can even compare between ranking factors and adjust the weightings of the factors.



Article:  Secrets of the Creative Brain

A neuroscientist who has studied creativity for many years shares her insights into what is behind people with substantial creativity, and why it is so often paired with debilitating mental illness.



Article:  Five Common Causes of Organizational Dysfunction

Most of us have probably worked in a dysfunctional organization at some point in our career.  And, typically, we want to do what we can to fix those problems.  The first step to fixing problems is to understand the underlying cause.  This book excerpt claims that the main reasons for dysfunction are misunderstood mission, lack of consensus on the nature of problems facing the team, misunderstood strategy, lack of team cohesion, or lack of resources, and then it explains each one and what approaches you can use to address them.



Article:  Computer Programming Is a Trade; Let's Act Like It

Wall Street Journal technology columnist Christopher Mims says that, to ensure we have enough programmers, we need to treat programming as a trade and develop apprenticeship programs to train young people for programming careers.  Moreover, he indicates that programming education needs to focus more on the needs of business, instead of the typical theoretical curriculum of today.



Article: Death by PowerPoint - Redesigned

At one time or another, you are bound to have to give a presentation using Power Point (or similar tool).  This great slide show says that the four keys to creating a great presentation are significance, structure, simplicity, and rehearsal.  Check it out before your next presentation.



Article:  Stressed At Work? How To Relax & Focus In An Open Office

Like it or not, most of us of work in open-plan offices.  So how can you develop your own personal haven in the wide open spaces?  This article offers three practical tips for habits that can make even the loudest office a productive one.



Article: How to Ask Useful Questions

In almost any job, but certainly in technical roles, asking effective questions is one of the key skills for success.  Frequently, our jobs require us to get clarification or additional details so that we implement the right solution.  This excellent article provides tips and examples for asking good questions in a variety of scenarios.



Return to top


Telecommunications/Networking Industry

Article:  The killer gigabit app? It’s not what you think.

Many customers have waited to upgrade their Internet service to higher speeds, because they don’t have a specific need.  According to this article, even if you don’t have a specific application in mind, the improved speed itself provides benefits, especially when you consider a VPN or VLAN for distributed organizations.



Article:  The Network is Reliable - An informal survey of real-world communications failures

This article reviews some of the more significant network, both public and private, failures over the past few years with an eye toward how to improve network reliability.  The main takeaway provided by the authors is that networks can be very reliable, but it is often cost-prohibitive to make them so.



Return to top


Useful Utilities

cd (Free – Linux/Mac OS X/Cygwin – 13kB)

If you use bash (or zsh), and even Windows users who use Git do, then you probably would appreciate a productivity boost when navigating between directories.  This little shell script adds a number of intuitive enhancements for quickly moving between directories, using the bash history, mounting file systems, and more.  And it comes with a nice set of configuration scripts so that you can customize the behavior to fit your needs.



WingIDE 101 (Free – Linux/Mac OS X/Windows XP/2003/Vista/2008/7 – Varies)

While there are plenty of great Python IDEs out there, for beginning Python programmers, they can be overwhelming requiring you to spend as much time figuring out the IDE as you do learning the language.  WingIDE 101 is a minimal Python IDE that helps you be productive without getting in your way.  It includes features such as white-space highlighting; Emacs, Vi/Vim, and even Visual Studio key bindings; integrated debugger support, including for web development; syntax highlighting for Django framework; and an integrated Python shell with auto-completion.



CSVfix (Free – Cross-platform – 785kB)

Almost everyone deals with CSV (comma-separated value) files from time to time.  And wrangling them isn’t always the easiest, even with standard tools like Excel or your favorite text editor.  CSVfix provides a variety of functions to help you clean up and manage your CSV files, including reorder, remove, split and merge fields; convert case, trim leading & trailing spaces; search for specific content using regular expressions; filter out duplicate data; and much more.



Keystore Explorer (Free – Cross-platform – 6.0MB)

If you need to do any SSL key management of your Java applications, you are probably familiar with the arcane command line options for the built-in JDK tools like keytool and jarsigner.  Keystore Explorer provides a comfortable GUI for managing key stores and digitally signing your Java applications.



Open Link in Silent Tab (Free – Cross-platform/Firefox extension – N/A)

Are you a Firefox user who often opens new tabs from links?  Each tab you open consumes additional memory, but with this extension it will open the link in a new tab, but not load the page until you activate that tab (similar to what happens when you restore a session in Firefox).  Really handy since you usually don’t need the page loaded until you look at it.



Gonsole (Free – Cross-platform/Eclipse plug-in – Varies)

Gonsole adds a handy interactive Git shell to Eclipse (version 3.7 or later) which allows you to run Git commands and see the results, just as if you were to run them in a separate shell/command prompt window.  Gonsole uses JGit, so you don’t even need to have the Git client installed to use it.  It even includes standard Eclipse <Ctrl>+<Space> code completion support and Git command history.



Return to top


Productivity Tips

Allocate more RAM to Google Chrome to improve performance

If you use the Google Chrome browser (or one of it’srespins) and you have a lot memory (probably 8GB or more) on your system, you can allocate additional RAM to Chrome to improve performance in tasks such as switch tabs, scrolling long pages, etc.  Just open Chrome and put chrome://flags/#max-tiles-for-interest-area in the address bar and change the value to “512”.  Then click Relaunch Now to restart Chrome.  This allocates 512MB of RAM to the main Chrome process.


Save the window size and position for an application

Most of you probably already knew this, but it was news to me…  If you want to save the size and position of an application window for the future, simply hold down the <Ctrl> key while clicking on the “X” button to close the window.  The next time you start the application, the window will open with same position and size!


‘View Source’ in browser window in Firefox

When you do ‘View Source’ on a page in Firefox, it opens the page source in a separate pop-up window.  One of the problems with the pop-up window is that it makes navigation difficult.  If you want to view page source in the main browser window, just put ‘view-source:’ (sans quotes) in front of the URL!  Or, better yet, you can create a simple ‘View Source’ bookmarklet on the BookMarks Toolbar:  javascript:document.location='view-source:'+encodeURIComponent(location.href).


Return to top


Just For Fun

10 Tricks to Appear Smart During Meetings

Just remember that work (and most of life, for that matter!) is about perception.  So if you want to make yourself look good in front of your colleagues and (especially!) your boss, make sure to use some of these tips in your next meeting.



The ‘No’ Programming Language

Struggling with deciding which programming language to learn next?  Fret no longer!  Check out the new ‘No’ language, which the author describes as “an advanced, purely-functionless programming language”.  Best of all, you won’t have to worry about bugs or testing!



The Community for the Care of All UUIDs Sufficiently and Ethically (CAUSE)

When you arbitrarily create another UUID in your application, are you considering the long-term consequences of it?  You might want to read up on responsibly dealing with UUIDs.



The Nostalgia Machine

Want to take a trip down memory lane?  One this site, you choose a year and it gives you links to dozens of videos from a variety of sources for songs from that year.  Now, if I could just get the “Ghostbusters” theme out of my head!



Return to top