Saturday, January 1, 2022

Retrospective XIII

Last year, I conducted a simple retrospective for 2020. Therefore, here is a retrospective for 2021.

2021 Achievements
  • Setup Z80 Assembly Programming cross platform for Windows, MacOS/X and Linux
  • Configure VS Code Emulicious Debugger plugin for Z80 source code stepin + hacks
  • Enter Van Halen demo for SMS Power! 2021 competition built in pure Z80 Assembly
  • Build Van Halen quiz using C/SGDK for the Sega MegaDrive similar to C/devkitSMS
  • Upgrade Simpsons Trivia for Sega Master System include more characters and SFX
  • Port Simpsons Trivia to the Sega MegaDrive using similar C development processes
  • Compile Docker cheat sheet for cluster containerization in Cloud Native technology
  • Compile Kuberenetes cheat sheet for Cloud Native technology cluster orchestration
Note: port low level homebrew games built from C/devkitSMS to C/SGDK is an achievement!

2022 Objectives
  • Configure VS Code Emulicious Debugger plugin for C/devkitSMS source code step thru
  • Transition homebrew programming skills in C to professional work for example in CGo
  • Expand low level cross platform skills to Linux kernel e.g. eBPF networking + security
  • Extend Golang into Docker / Kubernetes experience as Cloud Native technology work

Cloud Cloud Computing is the on-demand delivery of infrastructure [hardware / servers], storage + databases via the Internet frequently delivered by cloud-based platforms: Amazon AWS / Google GCP / Microsoft Azure.

Cloud Native is architecture for assembling these cloud-based components optimized for cloud environment; Not about servers but the services. Enterprises modernize their infrastructure and process by choosing cloud technologies e.g. Docker for containerization, Kuberenetes for orchestration, that best fit their specific needs.

Golang Golang [Go] is statically typed programming language syntactically similar to C but with memory safety and garbage collection. Go was developed at Google to help solve the problem of concurrent messaging between distributed systems in the cloud using CSP style concurrency. Subsequently, Go is asynchronous by default.

Therefore, all three major public cloud providers AWS, GCP, Azure support Go and have SDKs that interface with their systems in Go. Thus Go may become the standard way of distributed computing into the future.

Cgo
CGo is a technology which allows Go programs to interoperate with C libraries. For example distributed cloud computing packages that consume ModSecurity C/C++ library for Web Applicaton Firewall (WAF) detection.

Another example eBPF: a revolutionary technology that can run sandboxed C programs safely and efficiently extending the capabilities of the Linux kernel, without requiring changes to kernel source code or load kernel modules, consumed from Go packages providing high-performance networking in cloud native environments.

Summary
Writing low level C code to target 8-bit Sega Master System hardware and now the 16-bit Sega Mega Drive it has proved to be very valuable experience for CGo applications which could assist in Go + Cloud Computing. The next challenge is port projects exclusively on Windows and include Linux system builds cross platform J