Up to Newsletter Index

March 2021 Newsletter


Quotable Quotes


The thing always happens that you really believe in; and the belief in a thing makes it happen. –Frank Lloyd Wright

Success is a collection of problems solved. –I.M. Pei

Above all, do not lose your desire to walk. Everyday, I walk myself into a state of well-being and walk away from every illness. I have walked myself into my best thoughts, and I know of no thought so burdensome that one cannot walk away from it. But by sitting still, and the more one sits still, the closer one comes to feeling ill. Thus if one just keeps on walking, everything will be all right. –Søren Kierkegaard

I’m not a great programmer; I’m just a good programmer with great habits. –Kent Beck

"Reading maketh a full man, conference a ready man, and writing an exact man," said Mr. Knowledge is Power. "And, therefore, if a man writes little, he had needed have a great memory; if he confers little, he had need of a ready wit; and if he read little, he had need of much cunning to seem to know that he knoweth not." –Francis Bacon

We don't stop playing because we grow old; we grow old because we stop playing. –George Bernard Shaw

Aging is an extraordinary process where you become the person you should have been. –David Bowie


Return to top


Software Development Process and Methodology


Article: Developers spend most of their time figuring the system out

This observation probably falls in the category of "open secrets" in the programming world. Developers and managers know or intuit that so much time is taken in understanding applications, but it is rarely accounted for in project planning. According to recent research, as much as half of developer time goes to system comprehsension.

https://blog.feenk.com/developers-spend-most-of-their-time-figuri-7aj1ocjhe765vvlln8qqbuhto/


Article: Thinking about software engineering

As a programmer or other technical professional, how often do you think about your work? Do you consider if you are doing the right things? Doing them the right way? This article provides some good perspective on several philosophical aspects of development, from the practical to the sublime, that you may find useful to consider in your situation. Regardless, take time to discuss with your team how work better together.

https://nintil.com/programming


Article: How I started believing in Cycle Time over Estimation

Work duration and effort estimation remains one of the bugbears of software development. This author proposes an alternative approach to both the traditional estimation process and the new vogue #NoEstimates option by focusing on cycle time, which most agile development tools allow you to calculate. He says that intrinsic value of cycle time rests on use of historical data to predict future delivery.

https://www.norberhuis.nl/how-i-started-believing-in-cycle-time-over-estimation/


Article: The Cult of Best Practice

Undoubtedly, each of us wants to do the best job that we can in our work and, often, that means finding best practices for how to do things. However, sometimes, the search for "best practices" can become a toxic obsession in an organization. This article explores some of the pitfalls to avoid and how and why any best practice needs to be carefully tailored for your organization’s specific situation.

http://domk.website/blog/2021-01-31-cult-of-best-practise.html


Article: Software estimation is your most costly activity. Why not reduce it?

I thought that the title of this article was click-bait at first, because surely development or testing costs more than something like estimation. But the author makes a strong case from an economic perspective, because estimation has no intrinsic value in your process, so it's not something that you should look to optimize.

https://morethancoding.com/2021/02/24/software-estimation-is-your-most-costly-activity-why-not-reduce-it/


Article: You've only added two lines - why did that take two days!

You've probably been there: The customer wants to know what took so long to fix a problem or add a feature when the net code change was minuscule. This article examines some of the important aspects of bug-fixing that you need to take into account to ensure that you don't have any unintended negative side-effects of the change.

https://www.mrlacey.com/2020/07/youve-only-added-two-lines-why-did-that.html


Article: Stop Nitpicking in Code Reviews

Too often, code reviews are confrontational and protracted. This article emphasizes that the purpose of code reviews is to focus is "vital few" important code problems, such as underlying architectural issues and fundamental logic problems, and avoid getting bogged down with small "preference" matters. It is important for teams to "pre-review" code before the code review to be familiar with it to make the most of the actual code review, which in itself should identify any of the small issues anyway and save time for the critical discussions.

https://blog.danlew.net/2021/02/23/stop-nitpicking-in-code-reviews/


Return to top


Software Testing & Quality


Reference: Generating Software Tests: Breaking Software for Fun and Profit

This free, interactive online book helps you learn software testing techniques, especially around fuzzing and software test automation. It is a work in progress with new chapters arriving weekly and intended to be a comprehensive resource when complete.

https://www.fuzzingbook.org/


Article: Should You Hunt for That Bug?

It’s a conundrum that all testers face at one time or another: You have a hard-to-reproduce defect. How much time should you spend trying to track it down? This author uses the analogy of the sock missing from the dryer to look at both sides of the coin.

https://thinkingtester.com/should-you-hunt-for-that-bug/


Article: Align your Test Strategy to your Business Strategy

This article title should sound quite obvious to most testers. Nevertheless, the author provides some great context and guidance for how to provide this this alignment specifically by using a great tool called a Wardley map.

https://jlottosen.wordpress.com/2020/11/09/align-you-test-strategy-to-your-business-strategy/


Article: Is Test Automation Alienating Your Business Testers?

This article offers an interesting perspective on test automation that you might overlook. In the effort to automate, you need to ensure that you don’t lose the human touch, especially when it comes to how you interact with your business customers and SMEs.

https://testwithnishi.com/2021/01/19/is-test-automation-alienating-your-business-testers/


Article: Ten More Commandments Of Automation

For a long time, I was quite skeptical of test automation. Of course, now, I recognize the value and importance of good automation, with the emphasis on good. This article discusses ten frequently overlooked principles of good automation efforts. And make sure to check out the author’s 11th Commandment, as well.

https://responsibleautomation.wordpress.com/2020/09/14/ten-more-commandments-of-automation/


Article: How Amazon tests their website. A discussion with Jayden Yang.

Understanding how others do things is one of the best ways to learn new things. In this interview with a lead engineer in Amazon's testing group, you'll find out about their testing approach and how they run up to 400 tests in parallel to support multiple releases per day.

https://monica-alma-ramirez.medium.com/how-amazon-tests-their-website-a-discussion-with-jayden-yang-2e98fea2b9cb


Return to top


Tutorials/References


Tutorial: What is Complexity Science?

This is a nice one-page overview of complexity science that provides highlights of the core concepts with interactive visualizations of examples for each of the major topics and links to more information for each area. The material is both fascinating and understandable even for novices.

https://complexityexplained.github.io/


Tutorial: 33 Concepts Every JavaScript Developer Should Know

Even if you don’t write JavaScript every day, this excellent list and explanation of some of the key concepts about the language will help you. If nothing else, it will likely help you better understand some of the quirks of the language.

https://github.com/leonardomso/33-js-concepts


Tutorial: Running VSCode in Docker

If you would have told me thee years ago (perhaps even just 18 – 24 months ago!) that Visual Studio Code (a.k.a. VSCode) would be the editor of choice today, I would have scoffed. But that is the reality, and, although I still prefer Vim for most basic editing tasks, I really do like VSCode, especially on Windows with WSL. And for data science tasks with Python and Jupyter, VSCode is the tool to beat. Anyway, all of that to say that this tutorial provides an amazing way to set up VSCode with Docker for a portable configuration for a Python-Jupyter-VSCode environment on any platform.

https://binal.pub/2019/04/running-vscode-in-docker/


Reference: You want HOW MANY years experience?!

Have you ever run across job postings that ask for 20 years of experience in React.JS? Check out this resource to counteract sites that make these irrational experience requirements.

https://howoldisit.glitch.me/


Tutorial: HTTPS In Development: A Practical Guide

Eventually, everyone involved in development, whether it’s "traditional" web design or building services that use HTTP, will need to set up SSL/HTTPS in their development environment. This excellent tutorial takes you through the various steps, including how to set it up in Docker and with several examples using JavaScript, such as with React and Node.JS.

https://marmelab.com/blog/2019/01/23/https-in-development.html


Return to top


Career Development/Miscellaneous


Article: The Full Automation Fallacy

For quite some time, we’ve heard that technology and automation would replace human workers in almost every area of work "real soon now". This article brings some realism to the discussion about what automation means and how it will affect work in the near-term and and the long-run.

https://futuresofwork.co.uk/2020/12/02/the-full-automation-fallacy/


Article: Why It’s Okay To Feel Like An Impostor

With the pace of change in the technology realm, it’s easy to feel like you are getting left behind and that everyone else knows so much more than you do. This article helps you realize that everyone is really in the same boat and that you shouldn’t be to hard on yourself when you doubt your skills.

https://medium.com/javascript-in-plain-english/why-its-okay-to-feel-like-an-imposter-e33a4f98f646


Article: How to be more productive without forcing yourself

I freely admit to being a chronic procrastinator. While I’m not proud of it, I’ve struggled with procrastination throughout my career. This article was so helpful to me, because it helps establish your productivity around three healthy ways of reframing your work as interesting, meaningful, and well-defined.

https://www.deprocrastination.co/blog/how-to-be-productive-without-forcing-yourself


Article: 1x Engineer

The Internet is filled with stories about the (mostly mythical, in my view) "10x developer": the individual who can do the work of ten peers. Since that creature is exceedingly rare, this article discusses the traits of the of the common species who does the vast majority of the work in most organizations. Perhaps you’ve seen him or her and can learn a thing or two.

https://1x.engineer/


Article: What is the definition of a good software engineer?

I don't think that the question asked in the title of this article has one single, simple answer. However, certainly, there are a few principles that that all good developers have and the author of this article hits on several of them very well. What would you add to the list?

https://luminousmen.com/post/what-is-the-definition-of-good-engineer


Return to top


PLOM (Programing Language of the Month)


dotLang

DotLang is a new functional programming language with focus on simplicity and performance, which adapts concepts from C, Go, and Haskell. It supports all standard functional language constructs and includes nice features like type-inference, built-in sequence and map data structures and more. The run-time is cross-platform supporting Windows, Linux, and Mac OS X.

https://github.com/dotlang/language


Return to top



Useful Utilities


Keynavish (Free – Windows XP/7/8.x/10 – 1.1MB)

Keynavish is a tiny productivity enhancement for Windows that allows you to control your mouse with the keyboard based on the Unix/Linux favorite, keynav. After activating the tool (default activation hotkey is <Ctrl>+;, but you can choose anything), you use h, j, k, and l repeatedly to narrow down the mouse target by selecting from quadrants of the screen. Then just hit <Space> to click.

https://github.com/lesderid/keynavish


dckr (Free – Cross-platform/Bash – 5kB)

If you frequently spin up ad hoc Docker instances for quickly testing things or running things at a shell prompt, dckr is a handy tool. It allows you to save your common configurations in a standard configuration ("dot") file and then reference them by a friendly name. You can even pass in additional command-line parameters, such as a script name.

https://github.com/jotaen/dckr


QuickLook for Windows (Free – Windows XP/7/8.x/10 and Mac OS X – 52MB)

One of the coolest features of Mac OS X is Quick Look, which gives you the ability to peek inside most any file system object and interact with it. This little gem emulates almost all of the features of its Mac forebear, plus a few Windows-specific extras.

https://github.com/QL-Win/QuickLook


Uniclip (Free – Windows XP/7/8.x/10, Linux, Android, and Mac OS X – 1MB)

Uniclip is a tiny cross-platform shared clipboard utility that lets you share content on your network between machines. Just run the tool on one machine and it will tell you the IP address and port that it’s running on and then start the tool with the command that it gives you on the other machines for sharing. Uniclip uses the native clipboard tools on each machine and no central server is required.

https://github.com/quackduck/uniclip


Grepy (Free – Windows XP/7/8.x/10 – 300kB)

Grepy is a tiny and lightning-fast Windows text-search tool. It supports searching by regex and even integrates with Everything file search tool for the list of files to search. It automatically ignores binary files to improve performance.

https://github.com/botman99/Grepy2


Gisto (Free – Cross-platform/Electron – 110MB)

Github’s Gist tool for storing code snippets is very handy. But your snippets can quickly get out of hand. Gisto is a cross-platform tool built with Electron for desktop management of Gists. It provides a dashboard overview of Gists and allows you display and edit Gists. And it requires nothing more than having an existing Github account to use.

https://github.com/Gisto/Gisto


Return to top


Just For Fun


Guido van Rossum explains Python to Eric Idle

Even if you aren’t a Python programmer by profession most readers of newsletter likely know that Python creator Guido van Rossum named it after Monty Python. Interestingly, Eric Idle had never heard of the language and in this Twitter exchange Guido tries to educate him about it.

https://twitter.com/EricIdle/status/1355325081954574345


Stacksort

Is Stackoverflow your "go to" resource for programming questions? If so, here’s a fun twist on the site. Put in a list of items to sort, it searches Stackoverflow for JavaScript sorting algorithms until it finds one that properly performs the sort.

http://gkoberger.github.io/stacksort/


Sandspiel

This fun little online physics simulation could turn into a major time-waster! It’s another falling sand simulator, but with several different dimensions of control, including grain size, grain type (sand, seeds, etc.), medium, and more.

https://sandspiel.club/


Return to top