I explore decades of experience in computers and the wonder of other technologies. Expand your mind: https://dr-bruce-cottman.medium.com/membership

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…

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…

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…

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

coffee cup beside a keyboard and computer screen
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. …

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

old-fashioned type in a case
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:

This blog article is the second blog article explaining Kubernetes without delving into its internal architecture. I discuss the next seven Kubernetes basic concepts with Minikube code examples.

Kubernetes orchestrates a distribution of virtual machines and applications all connected by a network. Photo by Samuel Sianipar on Unsplash

Install kubectl

I refer to kubectl often throughout this blog article.

kubectl is your local command-line interface (CLI) for exchanging declarative or imperative directives with a single Kubernetes cluster. The Kubernetes cluster is on your local sandbox; we use Minikube or remotely by the network.

You need to install kubectl, before you…

An explanation and usage of Kubernetes should not discuss internal architectural components. Instead, I discuss Kubernetes basic concepts with code examples. In the end, as a bonus, Kubernetes has a glaring hole in its design.

Kubernetes orchestrates a cloud or distribution of virtual machines connected by the network. Photo by Manuel Nägeli on Unsplash

Deploying and Managing an Application Without Kubernetes

Whether a single person, startup, or mega-corp, there will be a small number of users…

Literate programming is a superset of DevOps or Change Integration/Change Deployment (CI/CD). I detail how to implement literate programming by customizing nbdev for existing Github repositories. Example code can be used for other vendor repositories, such as Gitlab and Bitbucket.

Figure 1. The book cover of “Literate Programming” by Donald. Source: Author screenshot.

What is literate programming?

Literate programming is a programming paradigm introduced by Donald Knuth

The Docker image for our Jupyter Python and R users required them to set their Nbextensions preferences after every launch. We were able to increase Jupyter notebook user productivity by setting commonly used Nbextensions preferences in the Docker image.

A Jupyter notebook of R code showing ggplot graphs. Source: Giphy

Directory Structure for Dev for the 1.3.0 Release

We have a shared disk where anybody can copy the template…

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