How Do You Troubleshoot Automation?

Problem scenario
You have a task that is supposed to redirect the output to a file. The command produces output when you manually run it. But the output is not getting to the file. What could be wrong?

Possible Solution #1
If there is an error message, Google the error message. If that does not help, scrutinize the command before the error.

Possible Solution #2
Manually run the automation line-by-line if possible. Be aware of the different environment variables, current working directories, and user contexts associated with the automation. The small differences are not inconsequential.

Possible Solution #3
Has the automation ever worked? If so was a change made that broke it? To execute the script a triggering event needs to happen. Are you 100% sure that the initiating event happened? User authentication and network ports being blocked are two common problems that stymie automation. To troubleshoot network problems, see this posting.

Possible Solution #4
The user running the script does not have permissions to write to the destination location (e.g., of the file).

Possible Solution #5
If the automation is a crontab job, see this posting.

Possible Solution #6
If the automation involves a Linux command not writing/redirecting to a target file, see this posting.

How Do You Use gRPC to Learn More about It?

Problem scenario
You want to use gRPC as a proof of concept. What should you do?

Solution
Go here: https://chromium.googlesource.com/external/github.com/grpc/grpc/+/chromium-deps/2016-08-17/examples/python/README.md

You may want to clone this repository:
https://github.com/grpc/grpc

(Look in the directory for the language of your choice; it should have an "examples" directory.)

For using gRPC with Python you can install a certain package; for assistance with this, see this posting.

What Is Feature Hiding?

Question
What is feature hiding?

Answer
Feature hiding is the practice of toggling or disabling of a feature. The feature may be part of an application, but the users cannot access it or use it. Sometimes code is released in an imperfect way; sometimes there is insufficient confidence to make the feature visible and accessible, but to remove the feature from a release would require too much work. Feature hiding is an aspect of incremental development used to keep a codebase deployable. A future release may unhide (or toggle on) the feature. The term is used in the book Continuous Delivery (on pages 405 and 415).

Feature hiding is related to canary releases. A canary release is one that is released to a subset of users (e.g., via a single pod in a multi-pod application or a single server in a cluster of servers). This way it can be tested in production. If it introduces a problem (e.g., fails regressive testing), the problem(s) should be limited by the nature of its release. To dark release code, feature hiding may be a way to do it.

What Is a Container in I.T.?

Problem scenario
In computing, you have heard of containers. There are many types. Where can you find a disambiguation of containers?

Answers

For SQL Server
In SQL Server for over 10 years, there have been "Foreach Loop Containers". It is a built-in control flow for SQL Server Integration Services. To read more see this Microsoft page.

For Apache Web Server
In Apache Web Server, a container is a portion of configuration code. Filesystem Containers look like this:

<Directory "/var/web/dir1">
    Options +Indexes
</Directory>

(The above was taken from https://httpd.apache.org/docs/2.4/sections.html.)

For Python
Python's built-in containers include dict, list, set, and tuple. according to https://docs.python.org/3/library/collections.html. The previous link explains the different "container datatypes" also known as collections that are commonly used in Python.

For Emulation like Docker, LXC, rkt
In modern computing, emulation containers such as Docker are exceedingly popular. This type of container is a portion of an operating system isolated (via cgroups and namespaces) from other portions of the operating system. In some cases a container's runtime engine is not the same as its host; in these cases it is not a portion of the underlying operating system but an emulation of another operating system. Microsoft defines a container as follows "A standard package of software—known as a container—bundles an application’s code together with the related configuration files and libraries, and with the dependencies required for the app to run." (Taken from https://azure.microsoft.com/en-us/overview/what-is-a-container/#overview.)

Docker defines a container as "A container is a standard unit of software that packages up code and all its dependencies so the application runs quickly and reliably from one computing environment to another." (Taken from https://www.docker.com/resources/what-container.)

A container empowers immutable infrastructure, dependency management, and rapid development and testing while potentially reducing licensing costs (as virtual servers would require additional licenses). LXC, LXD (newer than LXC), and rkt are other types of containers.

See also:
What is the Difference between a Data Structure Container and a Virtual Environment Container?

What is the Apache Web Server Container?

Is There a Large Print Edition of Atlas Shrugged by Ayn Rand?

Problem scenario
You would like a larger font edition of Atlas Shrugged (a fictional book that involves technology). Is there an option?

Solution
Maybe. There is a smaller edition (width and height) that is roughly ~4.2" X ~6.8"; if this is the size you bought, you would prefer the Centennial Edition that is ~6.1" X ~9.1" version at Amazon or Barnes & Noble. The number of pages in these two different versions are roughly the same. The difference is the size (~4.2" X ~6.8" vs ~6.1" X ~9.1") of the pages and the size of the font. Bigger pages facilitate bigger font. The biggest version we know of is here.