Applying to YC!

So I’m applying for a startup funding to YC. And I wanted to share this pic with them. Will update stuff here later.

December 13, 2023 · 1 min · 23 words

Metrics Server headache

One of the pains of playing around with Metrics server is that it sometimes doesn’t connect to the node. In my case it was unhealthy and complaining about x509 certs. Not for prod but here’s a resolution: Install Metrics Server kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.6.4/components.yaml Apply the patch: kubectl -n kube-system patch deployment metrics-server --type=json \ -p='[{"op": "add", "path": "/spec/template/spec/containers/0/args/-", "value": "--kubelet-insecure-tls"}]]' thanks to @awalker125

December 13, 2023 · 1 min · 64 words

Core Isolation Feature in STX4.0

StarlingX is continuing to evolve and update it’s Real-time capabilities but documentation can be a bit sparse. This page is hopefully a placeholder for until we have a great documentation around the capabilities. Isolating CPU Cores In a StarlingX cluster CPU isolation and Kernel commandline parameters are (generally) managed from the active controller through system host-cpu-XXX commands. For isolation, we have the Application-isolated assigned_function. Get current functions: $ system host-cpu-list controller-0 +--------------------------------------+----------+-----------+----------+--------+-----------------------------------------+-------------------+ | uuid | log_core | processor | phy_core | thread | processor_model | assigned_function | +--------------------------------------+----------+-----------+----------+--------+-----------------------------------------+-------------------+ | 65b8337e-08bf-4e32-b7e6-17505eaf0806 | 0 | 0 | 0 | 0 | Intel(R) Xeon(R) D-2146NT CPU @ 2.30GHz | Platform | | b7578ba2-cba0-46cd-b860-3ba5c03ba91d | 1 | 0 | 1 | 0 | Intel(R) Xeon(R) D-2146NT CPU @ 2.30GHz | Platform | | ff7447a2-00df-43db-8716-d1416faf89bc | 2 | 0 | 2 | 0 | Intel(R) Xeon(R) D-2146NT CPU @ 2.30GHz | Application | | 142796e5-b17d-48e9-b18a-b84c1ea5ae37 | 3 | 0 | 3 | 0 | Intel(R) Xeon(R) D-2146NT CPU @ 2.30GHz | Application | | c68a8dc7-367f-4512-84ca-ec559fbb63f4 | 4 | 0 | 4 | 0 | Intel(R) Xeon(R) D-2146NT CPU @ 2.30GHz | Application | | 15f360e2-d27c-4d9a-b0ff-0b78387eeb8c | 5 | 0 | 5 | 0 | Intel(R) Xeon(R) D-2146NT CPU @ 2.30GHz | Application | | 89274cb5-4fb5-4f5b-a8c5-ec36394b5ce5 | 6 | 0 | 6 | 0 | Intel(R) Xeon(R) D-2146NT CPU @ 2.30GHz | Application | | 33fb1e8e-77cd-4334-b061-dd40e6b7f7ba | 7 | 0 | 7 | 0 | Intel(R) Xeon(R) D-2146NT CPU @ 2.30GHz | Application | | 8c804a31-c61e-408c-83c4-3c7192a861d8 | 8 | 0 | 0 | 1 | Intel(R) Xeon(R) D-2146NT CPU @ 2.30GHz | Platform | | 560ad09d-48df-42ec-8588-7e739030d7e3 | 9 | 0 | 1 | 1 | Intel(R) Xeon(R) D-2146NT CPU @ 2.30GHz | Platform | | cbd83713-0118-4995-9810-486cfdbb912e | 10 | 0 | 2 | 1 | Intel(R) Xeon(R) D-2146NT CPU @ 2.30GHz | Application | | cb45713a-fa51-4628-b536-e3d5d57c891e | 11 | 0 | 3 | 1 | Intel(R) Xeon(R) D-2146NT CPU @ 2.30GHz | Application | | 28dff3de-9913-4055-89d5-09dfc084c3c1 | 12 | 0 | 4 | 1 | Intel(R) Xeon(R) D-2146NT CPU @ 2.30GHz | Application | | 98cf6c9e-2717-4f88-b487-487dbdadd18e | 13 | 0 | 5 | 1 | Intel(R) Xeon(R) D-2146NT CPU @ 2.30GHz | Application | | 73dcec10-7a62-4d07-ba23-3482d0e0f2af | 14 | 0 | 6 | 1 | Intel(R) Xeon(R) D-2146NT CPU @ 2.30GHz | Application | | 4a5a4477-f0db-4d77-9a6a-c77e5ca292e4 | 15 | 0 | 7 | 1 | Intel(R) Xeon(R) D-2146NT CPU @ 2.30GHz | Application | +--------------------------------------+----------+-----------+----------+--------+-----------------------------------------+-------------------+ The system host-cpu-modify command is used to modify the assigned function. ...

November 9, 2020 · 4 min · 732 words

Remapping Keys

I use Vim a lot. And if you’re a productive user of Vim, you will definitely appreciate the following remaps: ESC: I have remapped the Escape key to CAPSLOCK. Who uses CapsLock? ESC on the other hand is a Vim user’s go-to reflex. So keep it close-by. ESC+HJKL: For navigation. Why would you use muscles to move over to the arrow keys when you have them under your fingers. How-to xmodmap can be used to modify these key settings. But I think it will only work for X-sessions. ...

July 15, 2020 · 1 min · 128 words

On WebAssembly

This blog is not going to define what WebAssembly is, how it interacts with JS or other languages; there are too many blogs and posts available on the internet already. If you’re not familiar with WebAssembly, I would suggest you start here: A cartoon intro to WebAssembly WebAssembly Concepts This blog post is about wondering what WebAssembly can look like for some usecases. Run Everywhere WebAssembly can run everywhere - atleast that’s the goal. It’s performant - as performant as C/C++ and it’s secure. ...

March 17, 2020 · 2 min · 294 words

My Python Environment

The most common way people go about setting up a Python environment is to do something like this: $ sudo apt install python3 python3-pip # installs pip3 $ sudo pip3 install --upgrade pip # upgrade pip to latest version Congrats, now you’re stuck with whatever version ships with the distro. I think we can do better! pyenv My recommendation now, is to use pyenv with which you can manage multiple versions, virtualenvs through a nice CLI ...

February 12, 2020 · 2 min · 256 words

New Year's Resolutions (2020 Edition)

Resolutions… Goals… things you write down to not follow! But you write them down anyways.. 2020 used to be hindsight but not any more. It’s here. I’ll write down my own resolutions for this year here… Technology Continue with my FP journey (Clojure and F#) Keep on learning Rust and Golang (Maybe) look into Ziglang DDD and Software Architecture. I have been reading a lot about it recently and will continue to try to do so. Especially Wlachsinn’s book! Health Start exercising regularly Eat healthy food normally (it’s fine to eat unhealthy sometimes) Swim! Misc Start a side-project in Rust (embedded??) Start a web Frontend (Clojurescript??) project Conclusion I’m sure I’ll miss out on some things and do some right… Fingers crossed.

January 7, 2020 · 1 min · 122 words

Answering Questions on SPS 2019 Demo

SPS Nuremberg is one of the largest gatherings of the Industry. This year was no different. I was part of a team that presented the concept of OT/IT consolidation. I got quite a few comments and questions about the demo video (in Urdu here). So here’s a shot at answering some of the questions I got forwarded: The demo was (in oversimplified terms) showing PLC compute moved to software which can be orchestrated using Kubernetes. ...

December 1, 2019 · 3 min · 625 words

Getting Started with Clojure[script] Behind Corporate Proxy

So on my Clojurescript journey, the first roadblock I hit was corporate proxy. I don’t know why Java, maven, clojure (everybody?) doesn’t respect the environment variables but this is a real pain. Getting started Clojurescript is written in Clojure which requires Java. So we need to get all three up and running. Java To get Java JDK and JRE, run: $ sudo apt install openjdk-11-jre $ sudo apt install openjdk-11-jdk For proxy settings, edit /etc/java-11-openjdk/net.properties. ...

October 14, 2019 · 2 min · 231 words

Evolutionary Architecture

Evolvability of Architectural Styles… Big ball of mud Monoliths Event-driven architectures Service-oriented architectures (SOA) Serverless

September 22, 2019 · 1 min · 15 words