Up to Newsletter Index

June 2012 Newsletter


Quotable Quotes


To go faster, slow down. Everybody who knows about orbital mechanics understands that.  –Scott Cherf


Kindness is, or ought to be like background radiation, ever-present in our lives. The main and most effective way we learn about kindness is to experience the kindness of others. It seems obvious, after all children who are treated with affection are more likely to grow up to be kind than those whose parents are emotionally neglectful or abusive. It is not enough for kindness to be taught as a clinical skill, to be used in the taking of a medical history, the personal care of an elderly patient or in counselling. We need institutions and cultures where people are kind to each other, where kindness is valued and nurtured in everything we do. Unless we are routinely subject to the kindness of others we will have little kindness to share ourselves. The kindness of others sustains our own.  Jonathon Tomlinson


Do not look for rest in any pleasure, because you were not created for pleasure: you were created for joy. And if you do not know the difference between pleasure and joy you have not yet begun to live.  –Thomas Merton


There's ways to amuse yourself while doing things and that's how I look at efficiency.  –Donald Knuth


If you want happiness for an hour—take a nap. If you want happiness for a day—go fishing. If you want happiness for a month—get married. If you want happiness for a year—inherit a fortune. If you want happiness for a lifetime—help others.  –Chinese proverb


It is not enough to do your best: you must know what to do, and then do your best.  –W. Edwards Deming


Return to top


Software Development Process and Methodology

Article:  The Only Agile Tools You’ll Ever Need

These authors make a strong case for a "back-to-basics" approach to agile tools focused on simple, non-technical tools, such as whiteboards, markers, index cards and the like.  Or maybe a simple spreadsheet would be useful, as well.



Article:  SOA (the term) is dead, but SOA (the architecture) lives on

You've probably noticed it, too:  Most recent discussions about web services do not use the term "services-oriented architecture" (SOA), but rather simply say APIs or web services.  This article looks at why SOA as a name is on the outs, even if the concept is still highly relevant.  For some interesting discussion on this topic, see here.



Article:  Why Agile is Not a Methodology

While this article is a bit more philosophical than practical, it does make a good point that agile is really set of principles and best practices, rather than a monolithic methodology.  The key difference between the two is agile emphasizes doing the things that work in your particular environment and situation.



Article:  We Who Value Simplicity Have Built Incomprehensible Machines

With a hat tip to the law of unintended consequences, this brief article provides some salient and sage advice about how we as programmers are often our own worst enemies when it comes to overcomplicating the design and implementation of systems.



Article:  Software Development Metrics that Matter

One area of key importance to development management is the use of metrics to evaluate the development process.  This article discusses some good ideas about how to do this effectively and fairly.



Article:  The Management View of Agile - Unaware or Unwilling?

In this overview of a recent blog series by Forbes' Steve Denning, the idea that business management and executives don't see the value of agile methodologies is explored.  In many cases, the lack of endorsement outside of IT comes from IT's reputation for not delivering or the belief that agile isn't really anything new or different.



Article:  Daily Scrum: Not Just for ScrumMasters

Many of us have fallen into the trap of treating of the daily stand-up meeting as simply a forum to report status to the Scrum master.  Mike Cohn says that need to think of it as an opportunity to communicate progress to all team members and as a synchronization meeting for the team.



Article:  The Top 20 Most Influential Agile People

Notwithstanding the fact that this list was published on April Fool's Day, it provides a good summary of the top voices in the agile development arena, based on book sales, blogging, Twitter activity and more.  Many of them are very well known, but there are also probably a few that you haven't heard of.



Article:  On RESTful API Standards – Just Be Cool: 11 Rules for Practical API Development

REST has become the de facto standard for most new web service development.  Here are some simple tips on developing a flexible, yet consistent REST API for your application.




Article:  Software developers are not carpenters

At one time or another, most of us have probably been confronted with how application development can (or should) be analogous to other work (or perhaps to knitting).  In response to a recent article about why software is so hard to build, the author of this article explains that the abstract nature of software (he compares it to writing poetry!) is the key differentiating factor.  (Warning:  Rated "R" for strong language!  And I have to say that using such expletives certainly takes away from the potential value in helping developers explain their situation.)



Article:  Maybe an Answer to Null in Java?

Doubtless that this idea will be controversial, but it is an interesting concept.  Borrowing from the "Maybe" type in Haskell, this developer presents an idea for preventing nulls (and the dreaded "Null Pointer Exception") in Java.



Article:  Simplicity Isn’t Simple

Many of probably consider Apple the pinnacle when it comes to design simplicity.  As Steve Jobs himself said, "Design is not just what it looks like and feels like. Design is how it works."  This excellent article breaks down the underpinning concepts of design effectively for application developers.



Article:  Mindsets: Waterfall, 1st & 2nd Generation Agile

This excellent article shows that people don't immediately make a shift from the waterfall way of thinking to a solid agile mindset and that it takes iteration (Hmmm…  Sounds kind of agile…) for people to change their thinking.  The comments on the article are very enlightening, as well.



Return to top


Software Testing & Quality

Article:  What to Test?

While more of a philosophical missive, this article raises some good points about balance in testing and avoiding missing the forest for the trees when planning your testing.



Article:  What Medieval Castles Can Teach You About Web Security

This article discusses how castles had multiple levels of security and how the same principle applies to securing (and testing the security of!) web applications.  The author notes that the aspects about security related to people are just as important as the technological ones.



Article:  Experiences of Test Automation: Test Automation Anecdotes

Test automation is one of the more difficult domains in all of software testing.  How do you design automated tests that don't require a lot of rework?  In this excerpt from a new book, test automation experts share some of their experiences.



Article:  The Three Aspects Of Software Quality: Functional, Structural, And Process

Most attention in software quality goes into what this author calls functional quality (conformance to specification, good performance, and freedom from defects).  However, he notes that there are two other variety important aspects:  structural quality (code testability, maintainability, security, etc.) and process quality (repeatable process, timely delivery, and budget).



Article:  Nasdaq's Facebook glitch came from 'race conditions'

When hosting the most anticipated IPO in quite some time, you probably don't want these kinds of things to happen.  This is a good example of the cost, both financially and in terms of trust/credibility, that poor software quality can have on your organization.



Return to top



Tutorial:  Learn CSS Selectors interactively

To use JavaScript (or any of the various JavaScript libraries, such as jQuery or Mootools) effectively for doing DOM manipulation, the key skill is dealing with CSS selectors.  This free site teaches you the most common selectors via interactive demonstrations.



Tutorial:  A crash course in UX

Since I struggle to even draw stick figures, graphic design concepts are usually lost on me.  Nevertheless, most everyone has an intuitive sense of good versus bad UI design, but it's often difficult to quantify those things.  This article gives some great pointers on how even the most left-brained developers can implement good user experience.



Reference:  API Design

Whether you are designing an API for external or internal use, it helps to have some good guidelines for developing a robust, but easy-to-use API.  This comprehensive list of API design concepts will help you think through the approach in a rigorous manner.



Tutorial:  Understanding JVM Internals

It's not necessary to have a deep understanding of the JVM to be a good Java developer.  At the same time, knowing at least some about how it works will give you a better understanding of Java in general.



Tutorial:  ShortcutFoo

ShortcutFoo is an online tool to help you learn keyboard shortcuts for a variety of editors, such as Vim, Emacs, Sublime Text, Visual Studio, and others (but notably not Eclipse!).  It allows customization, so you can emphasize the shortcuts that provide the most benefit to you.



Tutorial:  Backpack Algorithms And Public-Key Cryptography Made Easy

This article gives a very comprehensive, but not too technical, explanation of public-key cryptography.  It uses a relevant example showing how it is used in an ecommerce transaction on the Web.



Return to top


Career Development/Miscellaneous

Article:  How To Increase Your Powers of Observation

According to some educational research, taking notes is the best way to transition your mind from "just looking" to actively observing what's going on around you.



Article:  Here's Why Google and Facebook Might Completely Disappear in the Next 5 Years

The byword of the second decade of the 21st century seems to be innovation.  However, as this article points out, innovation is not sufficient with disruptive technologies when organizations cannot adapt to new mindsets (not mention that half of Americans think Facebook is a passing fad or maybe it's really a Ponzi scheme).



Article:  IT Salaries 2012: $90,000, 1% Raise Typical

InformationWeek's annual salary survey included over 13800 responses and shows median staff salaries at $90000 in the US and raises are back, but only slightly.  Business analytics (a.k.a., data science) is the hot skill this.  And managers need to consider that nearly 40% of IT workers are looking for a new job.



Article:  From Cubicles, Cry for Quiet Pierces Office Buzz

As cubicles are the norm in most offices, workers are increasing looking for quiet spaces where they can go to think and have meaningful conversation.  This article explores some of the new approaches to solving the office "noise pollution" problem, including white background noise and better overall acoustics, which dovetail with this list of suggested changes for future workplaces.



Article:  Why We Lie

Most of us probably consider ourselves honest people.  But, according to this researcher, everyone cheats–right up to the point where we reach our sense of the level of integrity.



Article:  The Expense of Ineffective Meetings

Most people recognize intuitively that meetings are frequently very unproductive.  This article gives some of the facts around how much they cost, such as most professionals losing 31 hours per month (almost 4 full work days!) and more than 50% of meeting time is wasted.



Article:  Meet Silk, the Semantic Web for the rest of us

For a long time (or, at least, it seems like it!), we've been hearing that the next revolution on the Web will be the Semantic Web (sometimes referred to as Web 3.0).  With the introduction of a new platform called Silk maybe the Semantic Web isn't too far off any longer.



Article:  The Mindful Programmer

Sometimes it's very easy to get caught up in all of the many tasks that we have to do.  This brief desideratum might help you to put all those things in better perspective.  And remember that you need to go offline and enjoy the rest of life so that you can recharge your internal batteries too!



Article:  10 Ways to Motivate Anyone

In case you haven't noticed, people are often different in terms of their needs and ways of being motivated.  This list gives some tips about the types of motivation that fit various personality types.



Video:  Simplicity Matters

In a follow-up to his talk about "simple versus easy", Rich Hickey talks more about why simplicity in program design and implementation is so important.  He emphasizes that designing a good architecture is vitally important to sustaining development pace.



Article:  The World Happiness Report Explains What Makes People Happy

Are you a happy person?  What factors contribute to your own happiness?  Beyond some simple factors, such as having a job, measuring happiness is quite a complex endeavor according to the World Happiness Report.



Article:  Top 10 Best/Worst Cities For Software Developer Pay

Interesting perspective on programmer wages which takes into account cost of living.  Tulsa is in the bottom 10 for actual salary, but is just outside of the top 10 when considering cost of living.



Return to top


Telecommunications/Networking Industry

Infographic:  A graphic timeline of high speed internet in the U.S.

While the U.S. still tends to lag other developed nations in broadband Internet speed and penetration, this interesting chart shows how speeds and number of users have grown over the past 15 years.



Article:  Remember the Telephone

Do you ever wonder why the standard landline telephone (POTS) is still around now that we are nearly a dozen years into the 21st century?  This article gives an interesting historical look at the phone and how resistance by people is the greatest catalyst for the pace of technological change.



Return to top


Useful Utilities

MetalScroll (Free – Windows XP/2003/Vista/2008/7 and Visual Studio 2005/2008 – 135kB)

MetalScroll is a free plug-in for Visual Studio 2005 and 2008 that replaces the editor scrollbar with a small graphic representation of the entire file being edited.  The graphical view includes syntax highlighting, selected/highlighted code, and more.  In addition, you can press <Alt> and double-click on a text string to have it highlight all instances of that string in the file.



PNGGauntlet (Free – Windows XP/2003/Vista/2008/7 and .NET 4.0 – 900kB)

PNG files are a great option for web site graphics, but sometimes the size of these files can cause performance issues.  PNGGauntlet combines a variety of tools into one GUI (similar to Trimage for Linux) to help you compress your PNG files.  It can even convert other popular graphic formats (BMP, GIF, TIFF, and JPG) to PNG.



PT Mono (Free – Cross-platform – 101kB)

PT Mono is a new monospaced TrueType font (downloadable or available on Google Web Fonts) suitable for programming or similar activities.  It is highly readable, even at small sizes.



CRaSH (Free – Cross-platform/Java – 32.2MB)

CRaSH (short for "Common Reusable SHell") is Java add-on which allows dynamic interaction with a running instance of the JVM.  You can inject data into the instance or trace execution in the running JVM, among other things.  Commands are written in Groovy and CRaSH functionality can be extended.



TextOnly Browser (Free – Android – N/A)

Most cell phone plans now how limits on data usage.  The TextOnly Browser reduces bandwidth by up to 90% (purportedly) by removing ads, graphics, and the like, but preserving a readable page layout.  Or visit http://textonly.in/ to apply the concept in any browser.



gExploreFTP (Free – Windows XP/2003/Vista/2008/7 – 750kB)

gExploreFTP is a simply proxy/filesystem converter that allows you to access your Google Docs via your preferred FTP client.  Rather than having to download individual Google Docs files, you can download (and upload!) multiple files at one time.



Return to top


Just For Fun

Deception - A Generalized Turing Test Game

This multi-player online game will give your logical-thinking skills a very good work out.  Your job is to use Turing test concepts to figure out who's lying.



History's first prank phone call was way back in... 1884?

Who would of thunk it?  Looks like prank calls grew up within 10 years of the introduction of the phone.  I guess those guys were just getting a head start on the gay '90s!



An Introduction to Objectivist-C

I probably should have saved this for next April's issue, but it was just too good to resist.  I'm guessing that it's a purely functional language.  :)




When insulting someone, it really helps to show originality and creativity.  That's where Intellisult comes in.  Just put in your adversary's name and get your personalized slur!  (I hope that everyone understands that this is completely tongue-in-cheek!)



Python Easter Egg

In Python 2.7 (not sure about 3.x), enter this command at the interactive prompt:  import antigravity.  Enjoy!


25 Handy Words That Simply Don’t Exist In English

I'm a sucker for little language tidbits like this.  Since a lot of English includes borrowed words anyway, why not season your speech with a few of these?



Paper Enigma Machine

I just finished reading Simon Singh's excellent book about cryptography, The Code Book, and found the portions about the Enigma machine fascinating.  There are plenty of online Enigma simulators (for example, here, here, and here), but this decidedly low-tech example is just plain fun—both to build and to use.



Let’s Check Out North Korea’s Brand New Website!

OK…  So I grant that North Korea probably isn't on most people's list of "fun" things.  But their new web site sure fits into the categories of wacky and off-beat!



Return to top