Security, software development and devops in a cloud world - AWS, Azure, Google, IBM & Alibaba

Author John Hanley

I design software for enterprise-class systems and data centers. My background is 30+ years in storage (SCSI, FC, iSCSI, disk arrays, imaging) virtualization. 20+ years in identity, security, and forensics.

For the past 14+ years, I have been working in the cloud (AWS, Azure, Google, Alibaba, IBM, Oracle) designing hybrid and multi-cloud software solutions. I am an MVP/GDE with several.

Pyscript: Apache Web Server Setup

Some of the PyScript WASM files are large. For example, pyodide.asm.wasm is ~9.5 MB. Correctly setting up your web server to serve these files takes some consideration. You should configure several items in your web server. This article covers Apache… Continue Reading →

PyScript: Interfacing with WASM

PyScript is possible because of WASM. I wanted to see what is involved in calling functions located in a WASM module from Python. Turns out it is very easy to do at least at the function import and export level…. Continue Reading →

PyScript: Debugging and Error Management Strategies

Knowing that an error occurred is the first step to preventing and solving errors. There are many types of errors that PyScript applications will experience. Network failures, resources not being available and programming mistakes are just a few problems to… Continue Reading →

PyScript: Creating Installable Offline Applications

PyScript PWA Creating installable PyScript applications that cache assets and runs offline offer enormous potential for Python. In this article, I will show you how to create a Python application that installs on the desktop and on mobile devices. This… Continue Reading →

PyScript – Getting Application Data

In PyScript, as well as JavaScript, there are only a few methods of getting data into your program: Read data from the local file system Read data from the network Input data from the user Create data inside your application… Continue Reading →

PyScript: Third Party Criticism of PyScript

A recent article by Luciano Abriata criticized PyScript. He made two statements: Pyscript is way too slow and heavy to load. Does not support all of Python’s features and libraries. He then provided two example programs link and link. The… Continue Reading →

Pyscript: Files and File Systems – Part 2

In this article, I will show how to use the File System Access API. This API is a web platform API that enables developers to build powerful web apps that interact with files on the user’s local device. There are… Continue Reading →

Pyscript: Building from Source

This article discusses downloading and building PyScript from the source for Ubuntu 20.04 running within Windows WSL. For Linux, skip over the first section covering WSL setup. This article is written for the Python developer with limited experience building JavaScript/Node.js… Continue Reading →

PyScript: Good Videos to Watch

As momentum builds for PyScript, a few good resources are being created. This article is my attempt to keep track of the ones that are very good and/or have detailed knowledge. Please let me know if you know of one… Continue Reading →

Pyscript: Files and File Systems – Part 1

This will be the first of several articles that provides details on Pyscript files and file systems. I will discuss the different virtual file systems and how to access files located on the desktop. I have put each example in… Continue Reading →

Pyscript: Graphics

Introduction If you are familiar with using the Canvas with JavaScript, then you will quickly know how to draw on the Canvas with Python knowing a couple of minor items. If you are a Python developer new to drawing inside… Continue Reading →

PyScript: Create the py-script tag at Runtime

Introduction There are times that you want to write pure HTML and JavaScript code and during runtime download and execute Python code based upon various criteria. This article shows how to create the <py-script> tag, load code into the py-script… Continue Reading →

Pyscript: JavaScript Event Callbacks

Introduction Setting up Python event handlers in Pyscript requires special handling. Pyodide provides a proxy so that DOM events can use Python functions as callbacks. To create a proxy, call the pyodide.create_proxy() function [link].

The Python function myFunction is… Continue Reading →

Pyscript: Page Load Time

Introduction I have noticed an interesting anomaly between Pyodide and Pyscript. Pyscript takes about one second longer to load an HTML + Python page than Pyodide. Pyodide averages 2 seconds and Pyscript 3 seconds. Other interesting stats: Downloads: Pyodide downloads… Continue Reading →

PyScript: JavaScript and Python Interoperability

Introduction Pyscript/Pyodide supports excellent interoperability between JavaScript and Python. Python can call JavaScript and JavaScript can call Python. DOM events can use Python functions as callbacks. This article covers Python calling JavaScript functions and how to pass and receive data… Continue Reading →

PyScript: Loading Python Code in the Browser

Introduction Today, you can now use Pyscript to run Python code in the web browser. This has enormous potential for AI, ML, Data Scientists, and regular Python developers. I often develop backend applications in Django and Flask, and the possibilities… Continue Reading →

Impact of Russia/Ukraine on Cloud Developers

Introduction This article is not about politics, government policies, or war. This article is about the companies that provide services and technology to developers located in a country that is being blocked. What is the impact on Russian developers? Basically,… Continue Reading →

GitHub – Create a Self-Hosted Runner – Part 2

Introduction This article is part 2 of my series on GitHub self-hosted runners. In part 1 I created a Hyper-V virtual machine, installed Ubuntu Server 20.04, and set up the GitHub runner. I then tested the runner by creating a… Continue Reading →

GitHub – Create a Self-Hosted Runner – Hyper-V plus Ubuntu

Introduction I am currently writing an article January 2022 – Git and GitHub, which documents my 30-day journey to improve my GitHub skills. As part of this journey, I want to learn GitHub self-hosted runners. This article details how I… Continue Reading →

January 2022 – Git and GitHub

Introduction This article is a personal path to review and improve my Git and GitHub skills at the command line and in Visual Studio Enterprise and Visual Studio Code. My plan is to spend an hour every day on GitHub,… Continue Reading →

PHP 8: Setup PHP_SSH2

Introduction This article describes a problem that I ran into while developing an SSH application with PHP 8.0 on Windows 10 and the solution. Environment Windows 10 Professional XAMPP 8.0.6 – 2021-05-11 PHP 8.0.6 Example Code:

The problem line… Continue Reading →

Ubuntu 20.04 Desktop – Installing and Configuring SSH

Introduction Ubuntu 20.04 Desktop does not include an SSH server preinstalled. In this article, I show how I install OpenSSH, create an SSH keypair, install the keypair Ubuntu for a user and disable password-based SSH logins. I also include a… Continue Reading →

Laravel – Adding Azure Blob Storage

Introduction Recently I decided to deploy a Laravel site so that customers can upload large files privately and securely. Similar to Dropbox but without its bells and whistles. I did not want to share access keys or other secrets. I… Continue Reading →

Azure – OpenID Connect JSON Web Key Set

Introduction For a new project, I must validate Azure Access Tokens in PHP. This requires obtaining the public key to validate the JWT signature. This article shows the process of working with the Azure OpenID Connect Metadata Document to obtain… Continue Reading →

Azure – Setting up a Development Environment for Python

Introduction This article demonstrates how to set up a Windows development system with Python and the Azure SDK for Python. After my article, Azure – Lock a VM to Prevent Deletion, I wrote the Azure CLI equivalent commands in Python…. Continue Reading →

Laravel – GitHub Integration – Part 1

Introduction This article demonstrates backing up an existing Laravel site to GitHub. The next article demonstrates adding a GitHub WebHook to automatically update a Laravel site when you push updates to GitHub. I have many websites in production status. I… Continue Reading →

Azure – Update Network Security Group Rule with my IP Address

Introduction In Azure, I have security group rules that allow access to everything from my public IP address. I have a rule for the office and another for home. For sensitive ports such as SSH and RDP, similar rules are… Continue Reading →

Azure – Lock a VM to Prevent Deletion

Introduction You are busy developing. It is late at night. You decide to delete one of your test virtual machines and recreate it to validate your deployment procedure. You log into the Azure Portal, select a virtual machine and click… Continue Reading →

Azure – Recovering from UFW firewall lockout – Ubuntu

Introduction You have a Ubuntu instance running in an Azure Virtual Machine. You connect to this instance via SSH. One day you decide to enable the UFW firewall and your SSH connection drops. You cannot reconnect. Problem Enabling the UFW… Continue Reading →

What is Amezmo?

What is Amezmo? Amezmo is an excellent platform for .NET Core and PHP applications. Amezmo combines containers, GitHub, and Let’s Encrypt into an amazing platform for deploying applications. Updating your application is as simple as edit, commit and push. GitHub… Continue Reading →

Laravel – Redirecting HTTP to HTTPS

Introduction Once you have an SSL certificate configured, the next step is to redirect unencrypted traffic. There are several methods of doing this. Within your application (Laravel), by the web server (Apache or Nginx) or by the frontend (load balancer)…. Continue Reading →

Laravel – Displaying a GitHub Gist

Introduction Today (June 14, 2021) I answered a question on Stackoverflow regarding the Google Cloud Recommender API that required Python source code. I also created a GitHub Gist to make downloading the code easier. That got me thinking about how… Continue Reading →

WireGuard Introduction

Introduction This article is the first in a series of using WireGuard in the cloud. This article starts by explaining what WireGuard is. Additional articles will demonstrate how to configure WireGuard for both Windows and Ubuntu for the following VPN… Continue Reading →

Terraform – Experiments with Google Cloud DNS and IAM

Introduction I am currently preparing to recertify for the Google Professional Cloud Security Engineer Certification. I previously scheduled the HashiCorp Certified: Terraform Associate on March 29, 2021 at 3 PM. Maybe I will take both exams on the same day…. Continue Reading →

Google Professional Cloud Security Engineer Recertification

This article is a journal of my path to take the Google Professional Cloud Security Engineer Recertification. I plan to track my progress, resources and post exam tips. Date created: March 2, 2021 Last updated: March 7, 2021 Exam Completed:… Continue Reading →

Google Cloud Run – Debugging an ASP.NET Core Time Zone Issue

Introduction I am writing ASP.NET Core code for an automated cloud directory synchronization process that will run on Google Cloud Run and Kubernetes. This code requires the current date and time in the local time zone. Simple problem, or so… Continue Reading →

Hostwinds – Virtual Private Servers

Introduction One of the things that I love about the cloud, is that you can deploy servers in minutes. What previously took weeks of time, purchase orders, etc. is now a few clicks of the mouse. One of my action… Continue Reading →

What programming language do I write software in?

Introduction I recently had a conversation with the Principle Security Architect for a large company concerned with security, identity, and access management. He asked me, “What language do you write your code in and why?”. I answered his question with… Continue Reading →

Google Cloud – Improving Security with Impersonation

Introduction A common practice in Google Cloud is to create one or more service accounts to authorize the Google Cloud CLI. Using service accounts is recommended by Google instead of user accounts. However, a service account JSON or P12 file… Continue Reading →

PowerShell – Impersonate Google Service Account

Introduction This article shows how to impersonate a service account from user account credentials. To understand how to set up everything, read the companion article: Google Cloud – Improving Security with Impersonation Save the following PowerShell script as a file… Continue Reading →

Google Cloud Compute – Mastering SSH

Introduction One of the more frequent problems on Stackoverflow is Compute Engine SSH. This article will dive into how SSH is configured on Compute Engine and how to connect using various SSH tools. I will also cover how to create… Continue Reading →

Certification Practice Tests

What is a Certification Practice Test? There are two types: Practice Questions and Practice Tests. Practice Questions help you test your knowledge and prepare for certification. These could be as simple as a list of questions where you select an… Continue Reading →

Microsoft Security Certifications – New Year’s Resolution

Introduction I am working on two new security certifications for my new year’s resolution. My specialties include security, identity, access management, and networking with a focus on hybrid and multi-cloud. For the first quarter, I plan to prepare for and… Continue Reading →

IBM Cloud – New Website

Today I moved all of my IBM Cloud and Red Hat OpenShift content to a new site. The new site will focus on IBM Cloud, Red Hat, Serverless Containers and OpenShift. Most of my work is in Hybrid and Multi-Cloud…. Continue Reading →

Socratica Python Kickstarter Project

 Socratica Python Kickstarter Campaign Introduction from Socratica’s Kickstarter Campaign Socratica – a small educational film studio with big dreams. You know us for our high-quality video lessons about math, science, and programming, especially PYTHON. Over the course of five… Continue Reading →

Never Implement Proxy TLS Interception

Introduction I was answering a question on StackOverflow. The questioner has implemented Proxy TLS Interception which is very dangerous. I am reposting this thread on my website to share the details of my answer. The Question: how to configure Google… Continue Reading →

Google Cloud – SSL Certificates the Easy Way

Introduction I use SSL certificates for everything. I am constantly creating them for internal systems and cloud services. This includes services such as web servers, SQL servers, anything where you might use a paid SSL certificate, or a self-signed certificate… Continue Reading →

Cloud Storage Bytes – New Training Videolab

This training videolab is a collection of videos Google Cloud created by Jennifer Brown @jbrojbrojbro. Jennifer is a Google Cloud Developer Advocate and a Google employee. Her videos are very good and average about 3 minutes each. This lab combines… Continue Reading →

« Older posts

© 2022 John Hanley — Powered by WordPress

Theme by Anders NorenUp ↑