Sign in

Physicist, Machine Learning Scientist and constantly improving Software Engineer. I extrapolate the future from emerging technologies.

Docker is the app-ware for your computers that are not a smartphone.

Photo by Jonas Lee on Unsplash

At The Beginning

You have programmed for a few years and have cluttered up your sandbox, your local development machine, with downloads of many different libraries, frameworks, and maybe a virus or two.

The above described my life in 2008. The arduous tasks below detail the giant PIA (you are on your own to resolve the acronym) in my life at the time:

  1. Upgrading from Python 2.x to 3.x;
  2. Supporting production services written in Python 2.x and you were not allowed, even if you wanted to, upgrade them to Python 3.x;
  3. Upgrading Linux OS servers to the next major release and layers of…


I offer a checklist for your Machine Learning Operation (MLOps) endeavor.

Create a Check List for your MLOps Rollout. Photo by Glenn Carstens-Peters on Unsplash

As part of the AI 1.0 surge (1983–1987), I felt that AI, to be of practical use, had to be distributed. Since then, I have been building distributed operating systems.

I admit I stopped when I encountered Kubernetes in 2016 because from a Software Architect and Engineer viewpoint, there was little I could add, and what I could add would be minor.

Yes, I think Kubernetes is a great distributed operating system architecture for a cloud of virtual machines (VMs) to a hive of Rasberry Pis.

I returned to Machine Learning about nine years ago during the AI 2.0 …


MLOps = DevOps + DataOps+ MLLabOps + MLProdOps + DSOps

MLOps is complex. Photo by Neven Krcmarek on Unsplash

I was taught to transform a complex problem into a simpler problem, by dividing the problem into smaller sub-problems.

I made the process paradigm of Machine Learning Operations (MLOps) simpler by dividing it into five different, but overlapping process groups or Operations (Ops) groups.

What Does MLOps mean to me?

MLOps is automating the Machine Learning product life cycle.

Why Do MLOps exist?

In 1990, we had 80%+ IT projects that were never rolled out. Failure rate dropped because of standardized developer tools, repeatable process iteration, death of the Waterfall method, a rise of the Agile method, and unit testing — to list some of the code development advances.

In…


Let’s expand the definition of refactoring to include new functionalities

Proper refactoring lowers technical debt (Photo by Ryland Dean on Unsplash)

Different Kind of Refactoring

I plan to increase stability and performance and to decrease the cost of maintenance in the Photonai code base. I add clustering functionality to the original code base and change the architecture.

A small code refactoring task is usually fixing bugs. Some consider that it is not refactoring if the bug-fixing occurs before releasing to test.

A significant code refactoring project example is causing a program to be Y2K-compliant but not changing functionality. Y2K compliance is enabling code to operate correctly with dates at or beyond January 1, 2000. (Yes, this was a thing!)

“Refactoring is a disciplined technique for…


Let’s discuss why type hinting techniques and tools improve your Python code

Typesetting. Source: Mr. Cup, Unsplash

Overview of Type Hints or Type Annotations

Python is a dynamically typed language. However, starting with Python 3.5 (PEP 484), type hints were introduced. Type hints (note: not strong type checking) make it possible, post coding of Python, to do static type checking of code.

Here’s a great figure showing the evolution of Python type hinting:


Docker Containers inherit environment variables from their host, set externally at launch-time, or set internally in the Dockerfile. Also shown is how to patch a running Docker container.

Virtual environments are hosted on the parent environment. Photo by Joseph Akbrud on Unsplash

A software engineer needs to know a broad range of Linux commands. Why?

  • Linux variants are free and open-source.
  • Linux variants are the defacto bare-metal operating system base of a virtual machine (node) in all clouds.
  • Linux variants are the defacto standard for enterprise servers.
  • Linux variants are the defacto operating system base of Docker and other virtual environment creation tools.
  • It is worth repeating that Linux variants, such as Redhat, Ubuntu…


Photonai has different end-user objectives than Scikit-Learn. I recommend both for Machine Learning. Photonai is a high-code framework that works well for Kaggle competitions.

Machine Learning flow. Photo by mahdis mousavi on Unsplash

Brief Comparison Scikit-Learn and Photonai

Use Scikit-Learn as a core Machine Learning (ML) library and use other packages to broaden your ML solutions. As an ML scientist, you may use Deep Learning (DL) frameworks such as Pytorch or Tensorflow for specialized ML models.

Photoai incorporates Scikit-Learn and any other ML/DL frameworks with one unifying paradigm. Photonai adopts Scikit-Learn’s and classes.

Photonai is a great Kaggle framework or framework for your enterprise solutions (work).

Scikit-Learn supplies the majority of Photonai’s core of machine learning (ML) algorithms.

Photonai adds code that reduces manual coding and error by transforming pre- and post-learner algorithms into components with parameters. Examples…


Visualize your architecture

Figure 1. Cloud computing consists of a tangled weave of data centers throughout the world. Photo by Dallas Reedy on Unsplash

The rendering of high-quality architecture diagrams of Azure, AWS, and GCP is shown using the Python package Diagrams. Diagrams depend on the Graphviz runtime. This article shows step-by-step how to create a Docker image with Diagrams and Graphviz. All code is included and can be downloaded.

Docker Solution for Graphviz, Diagram, and Cluster

I have posted several articles on creating development and test Docker images [see references 4, 5, and 6 below]. I assume you know of Docker and have read them.

Docker is used for encapsulating an individual image of your application.

Docker-Compose is used to manage several images at the same time for the same…


I recommend that you audit edX AWS SageMaker. I would not pay for the course certificate, and I recommend neither should you. I do detail twenty-one alternative resources (free).

AWS Sagemaker pipeline. Image Source: slideshare.net

I go through the AWS (Amazon Web Services) Sagemaker Certification EdX course [1].

In the beginning, I used my standard review filters of: “I wish I had known that.” or “I wish that had been emphasized.”

In a way, I guess I did ask the above review filters. Unlike my previous articles, it ended up being a shortlist of “I wish I had known that.”.

I TRY to stay neutral. I…


Yes, the title is a little controversial. However, our experience leads us to predict that GitHub Actions will be the dominant choice for Continuous Development, Continuous Integration, and Continuous Deployment on and off GitHub. We list nineteen reasons why we prefer GitHub Actions over Jenkins. We finish with a walkthrough of creating and then running a GitHub Actions script for automatic checking of PEP-8 formatting.

Can Jenkins and other CI/CD tools be on the endangered technology list? Source: Unsplash

What we Cover

  1. We offer a short definition of CD/CI/CD;
  2. We give a concise definition of Jenkins;
  3. We list the reasons we switched from Jenkins to Github Actions;
  4. We explain Github Actions by showing the implementation of a…

Bruce H. Cottman, Ph.D.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store