Up to Newsletter Index

May 2018 Newsletter

 

Quotable Quotes

 

Your ability to realise your human limitations will put you head and shoulders above the average programmer today.  –John von Neumann

 

A society grows great when old men plant trees whose shade they know they shall never sit in.  –Greek Proverb

 

Living faith always involves love. –H. Richard Niebuhr, Christ and Culture (1951)

 

If you pursue evil with pleasure, the pleasure passes away and the evil remains; If you pursue good with labor, the labor passes away but the good remains.  –Cicero

 

It is better to fail in originality than to succeed in imitation.  –Herman Melville

 

Obstacles are what you see when you take your eyes off goals.  –William "Bull" Halsey

 

This is the mark of a perfect character: to pass through each day as though it were the last, without agitation, without torpor, and without pretense.  –Marcus Aurelius

 

Return to top

 

Software Development Process and Methodology

 

Article: The Four Factors of a Good Program

When we develop applications, we want to build the best possible one.  This article explores four specific factors (or dimensions, if you prefer) that work together to form the characteristic of a good application.  One of the interesting aspects of the author’s view is that only 20% of an application serve to fulfill the requirements, with the remainder encompassing these other factors.

http://hangaroundtheweb.com/2018/03/the-four-factors-of-a-good-program/

 

Article: Microservices: The Good, The Bad, and The Ugly

Microservices aren’t the new kid on the block any longer, but many organizations are still just getting started with them.  If you are considering how they might fit in your architecture, this article gives a simple, balanced look at the pros and cons.

https://caylent.com/microservices-good-bad-ugly/

 

Article: The Future of Software Is No-Code

Of course, this article title exaggerates intentionally.  However, the author says that more direct business engagement in application development will be the norm as we move to API-based applications.  Furthermore, he notes that successful implementation of this approach requires agile organizations (not just agile development practices).

https://www.inc.com/greg-satell/how-no-code-platforms-are-disrupting-software.html

 

Article: The most important skill in software development

We all have our ideas about what is the key skill in successful programming.  This author says that being able to manage and keep track of the interconnections between portions of applications is more important that writing elegant algorithms or data structures.

https://www.johndcook.com/blog/2015/06/18/most-important-skill-in-software/

 

Article: How to make your team miserable

Undoubtedly, you work on a (or perhaps more than one!) team.  The keys to team success in accomplishing projects are communication, collaboration and cooperation.  In the spirit of anti-patterns, here are some tips for both leaders and team members on how not to work well with others.

http://nywkap.com/other/miserable-teams.html

 

Article: Becoming a 10x Developer: 10 Ways to be a Better Teammate

You’ve probably heard about the idea of a “10x developer”: someone who (supposedly) can do the work for 10 “average” developers.  This author turns the concept on its head and instead says that 10x developers are the ones that make those around them shine, so that the whole team is more productive.  She explains 10 things that these people do to bring out the best in others.

https://kateheddleston.com/blog/becoming-a-10x-developer

 

Return to top

 

Software Testing & Quality

 

Article: Where To Focus Software Quality Efforts

Every project has various constraints that must be obeyed.  At the same time, you want to develop code that is solid and can be maintained.  This article provides a four-quadrant model for how to identify the code that you should spend your limited resources in shoring up.

http://marcgg.com/blog/2018/03/18/software-quality-focus/

 

Article: Rushed testing, poor communication played role in British TSB outage

By now, you have probably heard about the disastrous system migration that has left almost 2 million customers of TSB without access to their accounts for nearly two weeks.  Recent information partly blames insufficient testing as one of the underlying causes of the problems and that warning signs of problems were seen more than a year ago.

https://uk.reuters.com/article/uk-britain-tsb/rushed-testing-poor-communication-played-role-in-british-tsb-outage-contractors-idUKKBN1I2460

 

Article: Is Manual Testing Needed?

For many years, we’ve heard about the imminent demise of manual testing.  Likewise, while automated testing has become (legitimately so!) mainstream, this author shows why manual testing, particularly exploratory testing, still provides benefits that automated testing can’t do.

https://henrikwarne.com/2018/05/01/is-manual-testing-needed/

 

Article: The Practical Test Pyramid

Most software testers are familiar with the “test pyramid” for how to allocate resources and effort for testing.  But there seems to be very little information about how to apply the concepts in practice.  This article digs deep into building the various layers of your test regimen with copious examples.

https://martinfowler.com/articles/practical-test-pyramid.html

 

Article: Software Testing Anti-patterns

Sometimes, anti-patterns work better than simply providing best practices, because the warnings about downsides can spur us to act.  This extensive lists clearly explains the benefits and possible problems of ignoring of each of the testing practices described.

http://blog.codepipes.com/testing/software-testing-antipatterns.html

 

Return to top

 

Tutorials/References

 

Reference: Four rules for effective collaboration

Very rarely will you work on code in isolation, so it’s imperative to work effectively with others.  Source code is often the primary point of interaction among team members.  This article provides some great principles for writing good commit messages that make working (especially asynchronously!) with other team members successful.

https://github.com/salemove/github-review-helper/blob/master/doc/rules.md#four-rules-for-effective-collaboration

 

Reference: VS Code Can Do That?!

If you use Visual Studio Code editor (and, if you haven’t tried, I highly recommend giving it a go!), this site provides several productivity tips that you may not know, across a variety of domains and languages.  The tips are brief, simple and self-contained, with each accompanied by a short screencast.

https://vscodecandothat.com/

 

Reference: IDEA

What if learning algorithms was as simple as assembling a piece of Ikea furniture?  Perhaps that is just a pipe-dream, but this site comes very close.  It has visual explanations of several common algorithms and the authors are committed to adding more.

https://idea-instructions.com/

 

Tutorial: Cool Chrome Devtools Tips and Tricks

All the major browsers have sophisticated developer tools that help you test and troubleshoot web pages.  However, to use them effectively, you need to know some of the key features.  This article gives you some practical advice on the various features of the Google Chrome Developer Tools.

https://flaviocopes.com/chrome-devtools-tips/

 

Tutorial: Java-To-Go In-Depth Tutorial

If you have a Java (or perhaps PHP) development background, but are curious about what all the hype about the Go language is, this is an excellent starting place.  The tutorial consists of simple, yet relevant, concepts that you are already familiar with to show how idiomatic Go compares to Java.

http://yourbasic.org/golang/go-java-tutorial/

 

Return to top

 

Career Development/Miscellaneous

 

Article: Software engineer salary numbers

This comprehensive infographic summarizes developer salary statistics from several reputable sources to give you a quick look at where you stand, based on industry sector, geography, experience and more.

https://devskiller.com/infographic-software-engineer-salary/

 

Article: Three-day no-meeting schedule for engineers

The Pinterest development manager discusses how they implemented a policy of no meetings for developers (and other individual contributors) Tuesday - Thursday.  He explains the impacts, both positive and negative, including the significant improvement in job satisfaction and productivity.

https://medium.com/@Pinterest_Engineering/three-day-no-meeting-schedule-for-engineers-fca9f857a567

 

Article: Is there a fix for impostor syndrome?

Technology jobs, such as developer or program, tend to have higher levels of “impostor syndrome” and associated stress-related problems.  This author examines what factors contribute to this and how employers and workers can address them.

http://interactions.acm.org/archive/view/may-june-2018/is-there-a-fix-for-impostor-syndrome

 

Article: Master your tools

As technologists, we typically think that we are far beyond the primitive days of simple tools.  However, as this article demonstrates, we are still fundamentally tool users (or, often, tool makers).  The author emphasizes that just as artisans and craftsmen of physical objects, we too need to learn to use our tools (editors, IDEs, build systems, deployment tools, etc.) effectively and efficiently to practice our craft well.

http://muratbuffalo.blogspot.com/2018/03/master-your-tools.html

 

Article: I am a mediocre developer

Let’s face it.  Most of us are average programmers and that’s nothing to be ashamed of.  Each of us contributes in our way.  This article provides some practical advice for those of us below the “rock-star programmer” classification for how to be successful.

https://dev.to/sobolevn/i-am-a-mediocre-developer--30hn

 

Return to top

 

Useful Utilities

 

Folder Icons (Free – Windows XP/7/8.x/10 – 97MB)

Using icons for visual cues is very helpful in locating what you are looking for.  This repository contains 50+ well-designed icons in ICO and PNG formats (and ICNS for Mac OS X users) that you can use to style folders on your system.  Icons include those for many different file types, programming languages, and popular frameworks.

https://vigokrumins.github.io/folder-icons/

 

Everest (Free – Cross-platform/Java – 16MB)

Everest is a small, self-contained, cross-platform REST client (like Insomnia or Postman) for web service testing.  Built on JavaFX, it runs on most any platform and has nice features like multiple tabs, API call history, formatted JSON response data, and more.

https://github.com/RohitAwate/Everest

 

Git Town (Free – Cross-platform/Bash – 10MB)

Git Town is a shell-based enhancement to the regular Git client to improve productivity and workflow for some common Git tasks, such as synchronizing your local branch with others, opening a pull request, and deleting all merged branches (pruning).  It fits in cleanly with your current workflow by simply adding the git town sub-set of commands with intuitive parameters.  And it works everywhere that Git works, including packages for many Linux distribution package managers.

http://www.git-town.com/

 

manly (Free – Cross-platform/Bash/Python – N/A)

Sometimes reading the man pages for Linux/Unix commands can be daunting, often due to the number of flags/parameters. Manly summarizes the man pages for a command to include only the specific flags/parameters that you are interested in.  Want to know what ls -lrt does?  Just run manly ls -lrt to get the details of only those flags.

https://github.com/Zaab1t/manly

 

Winfile (Free – Windows XP/7/8.x/10 – 730kB)

Even after 25+ years and dozens of file managers that I’ve tried, the original Windows file manager (a.k.a. Winfile) is still one of my favorites.  The MDI layout makes it easy to browse and copy/move files from a single window.  Now, Microsoft has released an open-source version compatible with all Windows versions up to Windows 10 for those nostalgic for the old days.  (Note:  VC140RUNTIME.DLL is required.  It can be installed from here.)

https://github.com/Microsoft/winfile

 

Return to top

 

Just For Fun

 

Blakbird's Technicopedia

The first time I encountered a Lego Technic set (a gift for my son), it baffled me about how much fun these “non-standard” kits could be.  But they kind of grew on me.  This site, which is a personal labor of love for the creator, provides an amazing catalog of the history of Lego Technic, including the incredible Super Car (set #8880).

http://www.technicopedia.com/

 

CmdlineGL

I debated about whether to put this down here or under the “Useful Utilities” section, because it is a real project to provide OpenGL bindings for Bash.  You never know when you might need to whip up a little FPS shell script!  Read this for the interesting story behind the library.

https://github.com/nrdvana/CmdlineGL

 

“Close to tears, he left at the intermission”: how Stanley Kubrick upset Arthur C. Clarke

One of the genre-defining science-fiction films, 2001: A Space Odyssey, premiered 50 years ago this month.  Here’s a less well-known story told by legendary fantasy/sci-fi writer Michael Moorcock about how 2001 author and screenwriter Arthur C. Clarke was not impressed by Kubrick’s film.

https://www.newstatesman.com/culture/books/2017/01/close-tears-he-left-intermission-how-stanley-kubrick-upset-arthur-c-clarke

 

IPv6 Excuses

Having trouble coming up with reasons to tell the boss about why your application or platform can’t support IPv6? This site is just for you!  Many “excuses” even include links to relevant information if it’s a little over your head.

https://ipv6excuses.com/

 

Return to top