RSSAmplifier

Blog

drpaneas

Recent content on drpaneas

drpaneas.comRSS feed ↗14 posts

Latest posts

NES Mathematics

NES Math A guide to the fixed-point arithmetic behind classic NES platformers, written for programmers porting NES games to modern languages. 1. Why This Article Exists You are porting a classic single-screen NES platformer to a modern platform. You have access to a full disassembly of the original ROM, you know the physics constants, and you can read wiki pages describing every system. What you…

How We Put OpenClaw on Developer Sandbox

OpenClaw is now on Developer Sandbox. You click a card, provide an API key, and get a personal AI assistant running on OpenShift. Under the hood, that assistant runs on OpenClaw, and the core building blocks come from claw-operator. That part is the boring story. The harder story is the one I actually care about. The first question I asked was not “does the demo work?” It was this: if…

The Case of the Phantom Memory Corruption

Or: How a Single Wrong Pointer Ruined My Week I’m building libgodc that is a Go runtime for the Sega Dreamcast. Yes, that Dreamcast. The one with the Hitachi SH-4 processor that Sega shipped (North America) in 9/9/1999. The one that ran Sonic Adventure and Crazy Taxi. I want it to run Go. If you’re wondering why anyone would do this: partly because it’s fun, partly because…

How test a PR locally

Well, use a script Let’s say I want to test this PR locally, meaning I need to fetch the code locally to my laptop. All I need is the URL and nothing more. Clone the repository locally (if you haven’t done it already), change into this directyory and then run the script: $ testpr https://github.com/redhat-appstudio/managed-gitops/pull/177 Output: remote: Enumerating objects: 202, done.…

What GitOps is

What GitOps is GitOps is a set of best practices to update or rollback your application, nowadays mostly in a cloud (e.g. k8s) environment. As the name implies, the whole process is controlled by Git, and the code includes both the application source and the infrastructure configuration. The goal, as usual, is to deploy fast and reliably. In 2021, the first OpenGitOps Standard v1 was created, to…

About

Panagiotis Georgiadis Wendelstein, Germany (Remote) · drpaneas@gmail.com · GitHub · LinkedIn Global Engineering Leader | Platform Engineering · Cloud Native · AI-Driven Developer Productivity Executive Summary Global engineering leader who builds organizations and ships production software. Leads a multi-continent Red Hat engineering organization delivering cloud-native developer platforms on…

Write a Google GCP client with Go

In this article I will explain the mechanics of writing a client for Google GCP, pretty similar like gcloud. The purpose is to not write a full-featured client (that would make no sense, since you can use gcloud already) but to learn the how to communicate with Google’s GCP API using Go. Such a pkg can be useful in small projects where you need to talk to Google GCP API, like the…

How to write your own Kubernetes controller

Write your own controller Before going down the operator framework out there, it is important to understand what is happening under the hood. Then you would be able to appreciate the generated boilerplate code and feel more comfortable to change it. Prereq This tutorial assumes you have a cluster up and running and you can successfully communicate with it (e.g. kubectl get pods -A should work). If…

How to run Traefik ingress controller as non-root

What is ingress? Ingress are (in a sense) reverse-proxies. But to understand, you need to know first what a proxy is – and only then will be able to understand the reverse of it. What is a proxy? For those of you who do not know what a proxy is, the word proxy describes someone/something acting on behalf of someone/something else. In terms on networking, when we are talking about a proxy…

Contribute to minikube in a nutshell

It’s very easy to contribute to minikube (and other similar packages) when the only thing that is needed is just a version bump in the spec file. You first need to install these: # zypper in osc spec-cleaner Configure your ~/.oscrc file: [general] no_verify = 1 extra-pkgs = vim less mc [https://api.opensuse.org] user=pgeorgiadis # CHANGE email=pgeorgiadis@suse.com # CHANGE pass=123456789 #…

My personal Go environment setup

How many go version do you have installed? The default upstream location for the binary is: /usr/local/go. But in SUSE it is: /usr/bin/go. This is a symlink created via update-alternatives. # update-alternatives --list go /usr/lib64/go/1.10/bin/go /usr/lib64/go/1.8/bin/go /usr/lib64/go/1.9/bin/go I want to keep only the 1.10 so I will remove the others: # zypper rm $(rpm -qf…

Deploy openSUSE Leap15 VM in Kubernetes using KubeVirt

Introduction If you think that Kubernetes is a cluster for managing containers, then you are dead wrong. Kubernetes is a cluster for managing Pods. In most cases, a Pod is considered to be an abstraction of an container object, so Pod talks to Docker and they know each other. What happens though when we introduce a new guy called libvirt and we learn Pod to talk to it? We have KubeVirt.

How to start with OpenFaaS

Introduction Before we get into what is serverless or openfaas, I would like to talk about the concept behind this. So, before going into the details, I want to give you the big picture of this new way of developing applications and how the users are supposed to use them. Containers are now more efficient than ever So let’s go back in time, when computers were enormous things and filled complete…

Kubernetes Basics

What is Kubernetes By definition, Kubernetes is an open source container cluster manager, and it is usually referred to by its internal name withing Google development - k8s. Google donated it to the open source world as a “seed technology” at 2015, to the newly formed CNCF - Cloud Native Computing Foundation, which established partnership with The Linux Foundation. The primary goal of…