The archive
Browse by topic
Practical notes from software design, Java, Linux and embedded systems.
Computer Science Concepts
1 article- Byte Order (Endianness): Big-Endian vs Little-Endian
Endianness describes the order in which the bytes of a multi-byte value are stored in memory. It does not change the value itself; it describes how that value is represented acr...
Design Patterns
5 articles- Relationships Between Classes: Inheritance, Association and Composition
Class relationships are a foundation of object-oriented design. Two useful questions are whether one type can substitute for another (“is-a”) and whether an object collaborates ...
- SOLID Principles: A Practical Guide to Object-Oriented Design
This article introduces the SOLID design principles and some of the trade-offs behind applying them.
- The Builder Pattern in C++
The Builder pattern separates the construction of a complex object from its representation. This article uses tuner configurations to illustrate a classic builder and director a...
- The Chain of Responsibility Pattern in C++
The Chain of Responsibility pattern lets a request pass through a sequence of handlers. A handler can process the request or pass it to the next handler, reducing the sender’s d...
- The Observer Pattern in C++ and Qt
The Observer pattern lets a subject notify interested observers when its state changes. A subject can add or remove observers at runtime; the observers depend on the subject’s n...
DevOps
10 articles- AWS Architecture Terminology
This glossary introduces common concepts used when discussing cloud architecture anddisaster recovery.
- AWS Block Storage vs. Object Storage
This article compares block storage and object storage at a high level. The examples arehistorical; check current service documentation before making an architectural decision.
- AWS Storage Types: S3, EFS, EBS, and Snowball
This article introduces several AWS storage and data-transfer services. Product names,classes, and availability can change; consult current AWS documentation before choosinga se...
- An Introduction to AWS Service Models
This article introduces cloud service models and the AWS shared responsibility model.
- Docker Images and Dockerfiles: An Introduction
This historical introduction explains Docker image layers and a simple Nginx image. TheUbuntu and Nginx versions shown are obsolete; use maintained base images and currentpackag...
- Docker Swarm, Backups, and Container Isolation
This historical walkthrough introduces Docker Swarm and Linux container isolation.Commands and recovery procedures are version- and environment-specific; verify them in atest en...
- Installing Docker Engine on Ubuntu
This historical guide records an installation of Docker Engine on Ubuntu Bionic. Thecommands, repository-key instructions, and package versions below are obsolete; followthe cur...
- Managing Docker Versions and Logging Drivers
This historical Ubuntu walkthrough covers Docker package versions and logging drivers.Package versions, repository configuration, and supported drivers depend on the DockerEngin...
- The AWS Well-Architected Framework and Elasticity
This article describes the original AWS Well-Architected Framework pillars as they werepresented when this post was written, and introduces elasticity. AWS has since updatedthe ...
- Understanding AWS Accounts and Regions
This article introduces AWS accounts, Regions, Availability Zones, and edge locations.
EM Technical Spine
1 article- How I Passed RHCSA on RHEL 10: Practical Lessons and Preparation Tips
This article is for anyone preparing for the Red Hat Certified System Administrator (RHCSA) exam.
Embedded Linux
6 articles- Adding Packages to a Yocto Image
This short, historical note shows how I added packages to a Yocto image. Recipe names and override syntax vary by Yocto release; this example is from the Warrior-era setup.For e...
- Booting a MicroZed Linux Root Filesystem over NFS
This walkthrough records an NFS-root setup for an Avnet MicroZed Zynq board and an Ubuntu 18.04 development VM. It is specific to that older environment and is not a current pro...
- Bringing Up Avnet MicroZed Linux with Yocto
This historical walkthrough records the steps I used to build U-Boot, a Linux kernel, a device tree, and a root filesystem for an Avnet MicroZed Zynq-7010 board using Yocto Warr...
- Debugging Linux Device Tree Overlays on MicroZed
This historical walkthrough records how I debugged a device tree overlay for an out-of-tree PHY driver on a Yocto-built MicroZed system. Kernel, compiler, and board details affe...
- Reading and Writing QSPI Flash with U-Boot on Zynq
This historical walkthrough records how I loaded a kernel and device tree from an SD card, wrote them to QSPI NOR flash with U-Boot, read them back for verification, and booted ...
- Submitting My First Linux Kernel Patch
This is all about my journey to submit my first kernel patch. Here I have discussed all the important things you must know before you submit your kernel patch and also respond t...
JavaScript
9 articles- JavaScript Arrays and Common Methods
JavaScript arrays are objects accessed through references. Their elements can be changed,and many array methods mutate the original array while others return a new one.
- JavaScript Built-in Objects and APIs
This article introduces JavaScript timers and selected built-in APIs for numbers, strings,dates, and regular expressions.
- JavaScript Conditionals and Comparison with C/C++
This article introduces JavaScript objects, functions, strict mode, truthiness, andconditional statements, with comparisons to C and C++.
- JavaScript Functions, Closures, and Error Handling
This article introduces JavaScript exceptions, closures, immediately invoked functionexpressions (IIFEs), and selected function properties.
- JavaScript Fundamentals Compared with C++
This article compares selected JavaScript and C++ fundamentals. The languages share somesyntax, but differ in their type systems, runtime behavior, and memory models.
- JavaScript Objects, Prototypes, and Functions
JavaScript objects are accessed through references. This article introduces objectcreation, property access, prototypes, constructors, and function methods.
- JavaScript Switch Statements and Loops
This article is all about basic javascript features like switch and looping. This is in continuation to the basic javascript conditional structs.
- JavaScript Values, References, and Scope
When you assign a primitive value, the variable receives that value. JavaScriptprimitives include strings, numbers, booleans, null, undefined, symbols, and bigints.
- Setting Up Visual Studio Code for JavaScript
This historical guide records a Visual Studio Code setup on Ubuntu 18.04. VS Code,Node.js, and extensions change over time; check the current documentation and review anextensio...
Utilities
1 article- Linux and Windows Utilities: Practical Notes, Part 1
This article collects short answers to common Linux and Windows questions. The examples reflect the tools available when these notes were written; check local versions and optio...
cpp
1 article- Calling JavaScript from C++ with Qt WebKit
This article discusses on how to call a JavaScript function from C++ usingQt Framework. This framework uses Qt-Webkit. Currently, there are two waysto achieve this.