Up to Newsletter Index

July 2017 Newsletter

Quotable Quotes

Be not afraid of life. Believe that life is worth living, and your belief will help create the fact. –William James

Minds think with ideas, not information. No amount of data, bandwidth, or processing power can substitute for inspired thought. —Clifford Stoll, Silicon Snake Oil: Second Thoughts on the Information Highway (1996)

Return to top

Software Development Process and Methodology

Article: Why Are Companies Moving IT Back in House?

One of the most significant changes in the IT realm during the past couple of decades was the outsourcing of many IT functions. Now, according to a recent survey, more than half of CIOs plan to increase use of in-house IT services and most of the outsourcing will use domestically-located providers, which is already hurting overseas firms. Find out what’s driving this reversal.


Article: The Limits of Artificial Intelligence

With artificial intelligence (AI) applications, such as data analytics and machine learning, all the rage today, it’s important that we help our business customers understand the inherent limits of these tools. This article reviews some of the pitfalls that are lurking around unquestioned reliance on automation.


Article: Microservices: Asking the right questions

In our coverage of microservices, we often emphasize that significant maturity in your development process is necessary to use them successfully. But how do you know if you’re ready? This excellent discussion provides a comprehensive set of questions that you should be able to answer to ensure your readiness, from how you will test and deploy to process for deprecating services.


Article: Understanding the limits of deep learning

Certainly, the recent advances in AI and especially machine learning are incredible. Likewise, they have made many previously-difficult applications quite accessible by modest means. However, sometimes we look at machine learning as the “silver bullet” to apply to all such “data problems”. This author notes that understanding that it has its limits is important to applying machine learning appropriately.


Article: How do you cut a monolith in half?

Interestingly, the author of this essay answers the titular question right up front: It depends. So that’s not a very satisfying response, but the point that he eloquently makes is that while the concepts underlying microservices (and other web services) are solid, practically dividing up your domains is rarely an easy, clean task. In the end, the author says that decomposition usually comes down to breaking up ownership of various aspects among team members and letting them decide how (or if) to further sub-divide.


Article: How to become better at software estimations

Despite much research and practice, estimation of software projects is still an art and fraught with error and peril. This two-part series does a great job of explaining the motivation for estimates, the problems with making them, and finally some practical things that we can do to make better estimates. The author emphasizes that ultimately estimates are about managing customer expections.



Article: 2017 IT budgets are increasing, and spending priorities are on security

Here’s some good news for technology workers. A recent survey of CIOs/CTOs shows that more than half expect larger budgets in 2017 compared to 2016 and less than a quarter expect budgets to shrink. Among those expecting budget increases, over 2/3 plan to spend on security enhancements.


Return to top

Software Testing & Quality

Article: A Test Is As Good As Its Ability To Fail When It Needs To

The value of tests, whether they are unit tests developed as part of test-driven development (TDD) or independent functional tests, are only valuable if they are triggered under the proper circumstances. This article emphasizes that often one of the most value aspects of test development is in identifying hidden assumptions or missing requirements.


Article: Intel Skylake/Kaby Lake processors: broken hyper-threading

Most of the time, we think of code problems strictly in the context of software. However, this problem serves as a reminder that even sophisticated hardware which is often tested much more rigorously is not immune to critical problems.


Article: What is Continuous Testing? A Crash Course for Software Testers

One of the techniques gaining traction in software testing to reduce cycle time and support continuous delivery is “continuous testing”. This article discusses how it’s different from test automation with respect to three factors: risk, breadth, and time. Moreover, continuous testing is often a good approach to improve test automation adoption in cases where it has been difficult to implement.


Article: 35 habits that make you write bad code

Want to write better, higher-quality code? Who doesn’t? It’s easy to blame the process or your tools for bad code, but your own habits often contribute to less than stellar outcomes. This author lists almost 3 dozen such habits with recommendations for overcoming the laziness engendered in each.


Article: What Makes a Great Tester?

Would you consider yourself a great tester? What are the characteristics that make you (or anyone!) an excellent tester? This author explains four of the key traits that he believes are hallmarks of those who do great work as testers. And ultimately he says that these are often the same skills that make some successful in any line of work.


Return to top


Tutorial: A Proofless Introduction to Information Theory

Information theory is one of the cornerstones of modern computing and networking/telecom. But it is notoriously difficult to learn, due to the esoteric mathematics involved. Here’s an introduction to the topic that tries to smooth the path on some of the math without dumbing it down too much.


Tutorial: Literate SQL using the WITH clause

Since knowing SQL is the most common job requirement, it behooves each of us to write the most clear SQL possible to help those who come after us understanding the purpose. This article explains how to “unwind” your sub-queries by using the SQL standard WITH clause.


Tutorial: A Kanban Primer for Scrum Teams

Most developers who use agile methodologies are familiar with the scrum process, but far fewer have worked with Kanban. This article explains Kanban from the perspective of scrum to help you bridge the gap and start using Kanban practices.


Tutorial: How HTTPS Works

You use HTTPS (a.k.a. SSL) everyday, but do you know how the handshake between your browser and the server works? Learn about this via a simple, humorous comic that eschews technical language.


Tutorial: React Express: The all-in-one beginner's guide to modern React application development

The React JavaScript framework is undoubtedly a powerful platform for modern development, but it’s also notoriously difficult to get started with. This comprehensive tutorial aims to augment the official “getting started” documentation to include the plethora of other aspects of the React ecosystem that are so important to success.


Return to top

Career Development/Miscellaneous

Article: Brain Drain: The Mere Presence of One’s Own Smartphone Reduces Available Cognitive Capacity

Do you feel like technology is making us dumb(er)? This research says that it’s true. We have diminished mental capacity simply due to the potential distraction of our cell phones, even if they are able to resist the temptation to check them.


Article: Five Reasons Why You Should Hire an Old Programmer

Most organizations prefer younger developers, but there are some situations where older workers perform well. This article covers several key traits that older programmers have that you can benefit from.


Article: Take Naps at Work. Apologize to No One.

Looking for ways to improve your productivity and be a better worker? The problems from technology-induced sleep deficits are taking a toll on productivity. According to research from Sara Mednick of UC Riverside, just a short nap often provides the restorative effects of a good night’s sleep.


Article: This Is The Key To Finding A Mentor At Every Stage Of Your Career

One of the best ways to move forward in your career is to find and take advantage of a mentor who can show you the ropes. This article emphasizes that mentors are for all stages of your career and that those who have been successfully mentored should return the favor by mentoring others.


Return to top

Telecommunications/Networking Industry

Article: ‘Why is the Internet so slow?!’

You’ve probably muttered (or maybe even shouted) this question in disgust yourself. According to some technical analysis, while improvements in the networking protocols, which is where the focus of most research currently lies, are important, these researchers found that network infrastructure itself contributes significantly to slow downs. Fixing the infrastructure problems alone would give us a 3x improvement in average network latency.


Return to top

Useful Utilities

Toby (Free – Cross-platform/Chrome browser extension – 920kB)

Toby is a highly-functional new tab replacement utility for the Chrome web browser. It combines many of the features of both tab managers and bookmark managers. You can optionally create an online account to allow syncing between browsers on different machines.


CrossFTP (Free – Windows XP/7/8.x/10/Linux/Mac OS X – 7.7MB)

CrossFTP is a cross-platform (Java-based) FTP client that has built-in support for Amazon Web Services S3 storage and Google Drive/Cloud storage, as well. With an interface like the popular Filezilla FTP client, functionality is very intuitive. And it even features two-way directory synchronization.


Hawk Eye (Free – Cross-platform/Electron – 58.9MB)

Keeping up with notifications on GitHub can be a time-consuming proposition, even if you follow only a few projects. Hawk Eye is basically an aggregator for GitHub notifications that displays in a manner like RSS readers. It provides out-of-the-box categorizations by type (pull request, issue, commit, release, etc.), repositories, and more. And, of course, you can create your own categories.


CheerpJ Applet Runner (Free – Cross-Platform/Google Chrome – 25kB)

Java applets are no longer as popular as they used to be, but quite a few sites, especially associated with education, still use them. CheerpJ allows you to run these applets in your browser without any local Java installation, which is both convenient and more secure. CheerpJ essentially converts the applet into JavaScript on-the-fly and then executes it in the browser.


Return to top

Just For Fun

#c0ffee is the color

If you are of a certain age, you probably remember writing a program to figure out what words you could spell with your telephone number. Here’s the contemporary equivalent for CSS hex color codes. Even though I’m more of a dog person, I like the color cat (or #CA7).



Web services and APIs are the way of the future for development. Now, take advantage of this in the most important (and unexpected) way: the generation of cat sounds. Select from a variety of options for the most unique purr you’ve ever heard!


Wikipedia: The Text Adventure

Did you play Zork or other interactive fiction text-based games as a kid? If so (or even if you have no idea what I’m talking about!), you will probably enjoy this game. It’s a game built entirely upon Wikipedia and the relationships between articles. Travel around the world looking for clues and collecting treasure. And you might even learn a thing or two.


Binary Puzzle

Enjoy Sudoku, but looking for a bit more of a challenge? If so, then this is just for you. You fill in a grid, just like in Sudoku, but each space can be only a 0 or 1. Each row and column are unique and they have the same number of 0s and 1s. Quite a bit harder than it sounds and way more challenging than Sudoku.


Return to top