Hello

Welcome to my blog, where I post about my projects and other stuff. I hope you will find something interesting here.

^ this text was generated by Copilot, but still, it’s true.

Another custom mechanical keyboard

Another keyboard During building my first keyboard (which you can find here) I learned a lot and also found out some stuff that I wanted to try to do differently on my next build. The case The biggest gripe with my previous board was the case. I printed two versions and even the second one did not fit correctly. Before I got around to design a third one, reddit user Abtswiath published this excellent model: https://www....

December 31, 2023

Building a custom ortholinear mechanical keyboard

Mechanical keyboards Mechanical keyboards. A topic so deep I am not even going to pretend that I understand half of it. In fact, everyone prefers something different in a keyboard. Do you want a large or a small one? Do you want clicky buttons or dead silent ones? Do you want high travel or low profile, laptop style keys? Do you want crazy looking gaming keyboard with RGB lighting effects or a subtle professional looking tool for the job?...

December 20, 2023

Switching my blog from Vue.js to Hugo

Moving the blog to a new technology, setting up pipeline and deploy. Why change at all? TLDR - I want to read my blog in a text only way When I started writing the blog, I wanted make a serverless application running on AWS. That worked just fine and the application did almost everything that I wanted it to do. Some details needed to be finished, but the base was there: upload a markdown document, compile it to html page and display in a Vue....

November 18, 2023

A cli only setup for my notes pc

How it all started I found this machine in my drawer where I keep all my cables and electronics. I bought it years ago, even before my first Raspberry Pi, but never got it to work, so it just sat there. The fix was as simple as using a barrell plug 5V power supply instead of usb - even the manufacturer states that the micro usb port is not for powering the thing....

November 17, 2023

Tutorial - Publishing a Vue.js app to Azure Static Web Apps and setting up routing

Publishing a Vue.js app on Azure Static Web Apps, setting up pipeline and routing. Why Azure? When I started writing the blog, I stated that I am going to make a serverless application running on AWS. Well, I was lying. But not intentionally. When I stared with the front end of the page, I developed locally on my machine and was originally planning to deploy it as a static web page on a AWS S3 bucket....

October 1, 2023

Tutorial - Allowing CORS on AWS API Gateway using SAM - the easy way

As with every project, CORS does problems. This is a manual for future me on how to set it correctly. Option 1 - the hard way By the hard way, I mean specifying CORS manually in the openapi schema specs file. I started normally, as one does, by googling (actually I use DuckDuckGO, but this is a little offtopic). I entered “enabling CORS on API gateway openapi” and a bunch of results came out....

September 24, 2023

Throwing away the prototype

Why and when is it beneficial to just throw away all your code and start from scratch. The motivation Some time ago, I read this article. TLDR - when you are building something new, that you don’t know that much about, it is a very good idea to spend a few days building and exploring the domain and technologies around it and then throw it away and start from scratch with a clear view of what you are actually building....

September 12, 2023

How to completely block your DynamoDB stream processing

How an simple mistake blocked my stream processing and had me debugging something that I was sure was working for the past week. Simple bug breaks down my whole article processing pipeline When I created my DynamoDB stream, I knew that I will be only adding articles, I was not considering removing records from the table at all. As such, I created a python lambda function, that always checks the NewImage field in the incomming records and processes it....

September 10, 2023

Configuring a DynamoDB stream

How I configured the DynamoDB stream that sends newly created articles to a lambda function for processing. Goal Whenever I insert a new article into my table, I want a lambda function to read the record and process it. Processing includes: extracting header, abstract and date noting last change from the stream event metadata compiling the markdown content to html Creating the table Creating a table in AWS SAM is really easy, it is just a few lines in the template....

September 5, 2023

Creating a serverless blog

I am creating a blog. Mainly to learn new stuff. During the build I will document the process on the blog itself. Technology and intentions The main purpose of building this blog is to deepen my skills in the AWS environment and also to have a place to document some of the stuff that i learn along the way. The high level goal is to build a fully serverless application using the AWS serverless application model - AWS SAM....

September 4, 2023