Yeah you’re not convincing me that JSON-RPC is a real protocol < 
 
 
 Let’s deal with JSON-RPC in C! Something I don’t ever want to hear when sipping an iced coffee, during a sunny, June afternoon. Fortunately, it’s January and I haven’t seen the sun in a while! This article is sponsored by my lack of vitamin D! 
 I have been building my own Moonraker…
AI wheels coming off < 
 
 
 Do you remember
 people loudly proclaiming we’ve built a sentient intelligence ? 
 Because you should. Those people should be remembered as the first line of “intellectuals” that has fallen to the onslaught of AI propaganda. AI is a marketing term and in the last few years it has become a test, just like NFTs, testing your resilience to corporate…
I really like my Ender 3. After several necessary upgrades, I think I’ve reached a place where it’s
dependable and I know it well enough to fix most of the issues. Moving apartments forced me to
pull it apart. That became a perfect opportunity to build it back up into something better. 
 I’ve always had an issue with leveling the bed - me, and everyone else who bought…
I already tried to write a blog post about AI. An article, discussing AI generated art, still
festers in my drafts folder. As someone who enjoys 3D modelling, drawing, animating, someone
who believes in art lifting our spirits, I find it pointless and distasteful. Not much to
discuss. 
 Here are some loose thoughts about AI, mostly from software development perspective, but…
It’s been a while since I have written one of these. There’s definitely a cadence to these.
That cadence would be something between once and thrice a year. 2024 will have to make with
just one. 
 I have spent a bit of time understanding the ggwave 
project, which allows for sending data over sound. It’s not an extremely complicated protocol.
I think the most…
I have recently tried to update my Zig project from 0.11.0 version of Zig, to 0.12.0. Zig compiler brings in its own build system. Since Zig is still under development, that API changes. The 0.12.0 changes forced me to dive a bit deeper into Zig’s source code. I went through Build.zig and Step.zig . What caught my attention was the usage of Tagged Unions . 
 Tagged unions aren’t…
It seems working in embedded means you’ll, sooner or later, use a Raspberry PI.
At my current work place we use Raspberry PIs, connected to the hardware we’re developing for,
as Github CI runners.
Anytime we want to add a new runner we need to flash an SD card and manually install all
the dependencies and tools. 
 What I’m looking for is an ability to generate…
This website used Cactus comments system, which leverages
Matrix protocol. It was a nice little experiment but it’s a half baked project, which
didn’t grow in the last few years. I have decided to make my own comment system.
Something as simple as possible, where comments are stored in the most universal way possible.
Because systems change, but data? Data is forever.…
One day I hope to design a product with quality of a commercial product. I do not feel I can go
through the entire process by myself. While I might never be able to do that, I still want to
close as much of that gap as possible. 
 This time the exercise was to design a PCB that can charge a 1S Li-Po battery. The design is not
a product of my lacking, electronics knowledge.…
For a long while now I’ve been using Google Photos service to store my photos. Few years ago I’ve switched to using iOS devices and Apple ’s ecosystem. That made me start using Apple Cloud service. I guess my life would be simple if not for the fact that these two places don’t store my entire photos collection. Some photos and videos are stored on my local drive, backed up…
At this point most people are pretty cynical about social media. The worst offender in that
space is Facebook , recently rebranded into Meta . In a world constantly incentivized by
profit it’s difficult to imagine Meta optimizing for anything else. The striking part
was always how cunning and ruthless they are in pursuing profit. Nevertheless, despite many
controversies…
Let’s control volume with a (moderately) fancy knob! 
 
 
 
 
 
 AS5601 might be my favourite sensor right now. It’s an on-axis magnetic
rotary position sensor. It generates a signal typical for encoders, but it does it by detecting the
change in a magnetic field of a diametrically magnetized, rotating magnet. 

 
 

 

 The…
I’ve not written one of those at all this year. Not surprisingly, the most productive year for this
website was 2020… thanks global pandemic…? 
 I’ve posted the RFID Explained blog post. I’m trying to
gather everything I’ve learned, while working on my RFID project, in one place. This is an
assumption but in the maker’s space a lot of…
This is the final part of a series of articles. I’d suggest going through part 1 ,
 part 2 and part 3 first. 
 I’ve been working on a project (which you can find here ),
using Bluepill board with a
 STM32F103C8T6 microcontroller. It’s a USB keyboard project. It uses the libopencm3 project and
I’d consider this a pretty minimalistic, baremetal project.…
Recently I haven’t been as productive as I’d like. Sure, the pandemic took its toll.
The summer is coming and if there is a time to consume what life has to offer,
instead of producing what you have to offer, this is it. Productivity should
never be the goal in itself. 
 Nevertheless, I could be better at focusing on what’s important. Significant amount
of time gets wasted.…
RFID is complex but It’s also fun. Personally I find this technology to be a bit underutilized.
I’d like to explain it in a simple way so you don’t have to do the “wait, what?” through the many, many
documentation PDFs. I hope to give you some confidence and maybe inspire you to do something fun with RFID. 
 My experience is that you either grab the…
Having your own blog is a very interesting experiment. Like any other project it will teach you
something. Your writing skills will improve (that’s an assumption but it’s difficult not to improve
if you do it regularly). If you’re not writing in your native language, you’ll improve in the
language you do write in. You’ll notice holes in your understanding…
This year I’d like to play around with music. Mostly live looping. Live looping is a pretty specific
way of making music. It’s about recording short, simple music clips and overlaying those to create
more complex and interesting music. 
 A recent googling session took me to OpenAV ’s website. It’s Harry Van Haaren’s initiative.
He’s focusing on…
This will be the last update for 2020. We’re almost on the other side! We shouldn’t expect much out
of 2021, since the time doesn’t care about our labels. Still, there is a feeling of hope that we’ll
be able to, slowly, transition to post pandemic world. How will that world look like? Time will
tell. 
 Last few months have been very productive for me. For…
If I’m working on code or tech related tasks, I’m doing it on Linux . That’s because I enjoy
spending my time in terminal. I like playing around with new command line tools and fitting
them into my workflow. Improving my process is important so I often try to update parts of
my setup. The goal is to reduce the friction between my intention and execution. 
 Linux…
My current 3D graphics setup revolves around Blender , ZBrush and, less often, Marmoset Toolbag 3 .
Transferring the meshes between ZBrush and Blender is the constant dance of exporting and
importing (yes, I know about GoB but it’s not good enough for me). I strongly dislike this
back and forth. I feel it adds a lot of friction, throws me off and wastes a lot of time.
That…
This post is about using Python in Blender . It’s not a tutorial. It’s more of an inspiration
to learn and experiment with Python. 
 Imagine you work on a piece. The first stage is very experimental. You look for what works and what
doesn’t. At some point the piece and the process take shape. Some things become repetitive. It’s
very useful to notice those…
Warning : this is a very opinionated post. I’m not claiming I’m right. I’m describing
my observations. 
 This is a great time when it comes to new, fun programming languages. Languages
like Rust , Zig , Odin , Nim , Jai bring something new to the table. Those
are only the languages I’m keeping tabs on. There is way more projects worth following. 
 This…
Close to month and a half has passed since the last update. So many things have happened during that
time. I’ll only write about tech related topics. It’s not a hard constraint but it’s also not a
personal blog about my life. 
 The project that takes most of my free time is the custom controller for CG artists. Unfortunately
the BLE version is on hold. I have not…
If you’ve ever tried to get better at playing a particular song you want to learn, you might want
to first learn it in chunks. After you feel good with those chunks you start putting it all
together. Then you realize, you still suck at some of those chunks, so you practice them. 
 It would be nice to have a tool that works well for that process. I didn’t feel like coding…
I’m trying something new. I’d like to regularly write some sort of an update which explains what
I’m working on. Since this website doesn’t generate any meaningful traffic, I’m doing this for
myself. I’m not imposing any strict time frame on this. I don’t want to do this too often, since
I don’t want my blog to be full of posts like this…
I’ve started this website with the Beautiful Hugo theme. At that point in time I was learning
how Hugo works. I knew I wanted to design my own theme, only because I like customizing and
designing. The theme I’m currently using was designed and written by me. I’m not a web developer
so it’s not professional quality. It’s made by me - that’s what…
If you dabble in 3D printing, you’ve probably stumbled upon the OctoPrint project .
It’s a web interface for your printer. It’s a very cool project with lots of features. The typical
use case is to host OctoPrint on a Raspberry PI . That requires a bit of fiddling around if you
want to power it from the printer’s power supply. It’s a very popular project…
I like the idea of small, weekend projects. Something small you can make in a weekend. I’ve used
the last two days to play around with an idea for a microphone stand. That’s because the microphone
stand I’ve got when buying the microphone is really, really bad. It’s unstable and can barely hold
the weight of the microphone, which in my case is the Novox NC-1…
Today I’ve played around with Zig , the new, hip (is it hip?) programming language. I find it
pretty neat. I’m going to walk you (and myself) through my first, very short, piece of code. 
 Below you can see the entirety of it. It basically allocates a 2MB buffer and reads a file into
it… Yep, not particularly impressive, but this is a judgment free, learning zone,…
A lot of new programming languages pop up here and there. It’s a very interesting moment to pick
a new one up. The ones I’m interested in are Rust , Nim and Zig . 
 Rust ? Might be a good choice but it’s intimidating. I’m not convinced yet that what it brings to
the table justifies its difficulty… Nim is pretty cool. Don’t have that much experience…
If you want to overlay a rendered graphics on top of an image or a static video in Blender
you should use the fSpy tool. It matches the camera to specified frame
of reference. Unfortunately it doesn’t support EXIF meta information. That means that
it sometimes fails to properly orient an image. 
 When it comes to an image orientation there are two factors: how image is…
Pointers seem to be the most confusing part about C. It takes a while to fully understand them.
As soon as you start feeling what they are about you stumble on a pointer to a pointer. Technically
not that much changes but, again, it takes a while to create a solid understanding of what’s going
on. As they say: you don’t understand something if you can’t explain it in…
I’m always curious about expanding functionality and improving workflow by connecting devices to
software that I already enjoy using. I love using Blender and making custom controllers for
creating computer graphics is something very interesting to me. 
 As long as a program has a scripting environment or a plugin support, you can usually connect
anything you like to it. In…
My experience in tech industry isn’t that big. It would be something around 5 years working as a
coder. This industry moves fast, things change, new technologies emerge on daily basis. In order
to do my job well I have to constantly learn something new. I enjoy that a lot. Learning is great.
It allows you to look at the world differently than you did before. 
 Sometimes…
Driven by the idea of building a Bluetooth keyboard like device, I’ve bought the SparkFun Artemis Thing
Plus board. It’s a board designed for small, power efficient devices with Bluetooth capability. 

 
 

 

 The board carries an Ambiq Apollo3 processor. It’s an ARM Cortex-M4F chip. Runs at 48MHz but
can, for a brief amount of time, go up to…
With the release of Blender 2.8 I went back to messing around with graphics.
I would like to be able to replicate some of the, already existing, effects.
Nothing fancy. Nothing new. At the same time looking… good! I also would like
to explain the process to learn and improve. 
 Lets look at a text with some scanlines. 






 
 

…
I work a lot with image processing. There is a lot of transformations and sub
images extraction. Often, it would be great to actually see those images when
debugging. Quick Google search pointed me to the dump command present in gdb . 
 In short, to get the memory dump, you would do something like this: 



 set $source = pointer_to_the_memory
 set $size_of_the_dump…
Inspired by a horrible Jenkins CI workflow I thought about a GUI app that could
help compose and request/monitor CI jobs. Node based GUI seemed like an
interesting option for that. I’ve tested several technological stack to develop
something like that and here are my observations. 






 
 

 
 
 

 
 

 Nodes…
THIS IS A WORK IN PROGRESS < 
 
 
 Below you will find log entries that describe the design/thinking process. 
 Idea < 
 
 
 The goal is to build a device that could allow me to comfortably measure time spent on a
project. I want to have a full history of the time spent on particular project. The time log
needs to be plain text, easily queried and human…
I’ve made a small visualization of a motorcycle fuel gauge in
 Godot engine . It allows you to disassemble the gauge
and learn what’s inside without actually buying a motorcycle… I did
that for you… 
 
 

TL;DR < 
 
 
 You can find the source code here . 
 I used the Wii Nunchuk controller to prototype one handed controller for creating
computer graphics. I used the Blue Pill board which carries a STM32F1 
microcontroller with a built-in USB peripheral . That allowed me to implement
it as a true USB HID (Human Interface Device) for the Windows OS . 
 The results were…
If you have ever worked with ARM Cortex M processors you’ve probably used GDB +
 OpenOCD combo for debugging. If you didn’t: OpenOCD connects to the processor
via a STLink programmer and opens a socket to which GDB can connect. It will push
data necessary for debugging (and understandable for GDB ) through this socket.
That means that if you connect GDB to this socket…
Have you ever heard about txti.es ? It’s a basic web page creator. You can basically
create a very simple website by typing content into a form. I thought it might be used as a
very simple frontend. 
 I always dabbled with automation. An example would be a scraping script that gets the job
postings from a specific website or one that checks when the bus I take every morning…
Recently I’ve enjoyed reading blog posts by Nikita .
You can find the blog here . One blog post I see quoted often is
 this one (you can read it in 6 languages - that
says something). It’s about the disastrous state of current software development. 
 The author brings a lot of good points. The message is that no one puts effort
into making software performant. We…
What’s a PiHole ? < 
 
 
 It’s basically a DNS sinkhole. DNS servers resolve domain names into IPs. DNS
sinkholes are basically faulty DNS servers. For example when you go to a website
your web browser will also download ads. In order to get them it has to
resolve the domain name of the ads provider into an IP. That’s what DNS server
does. PiHole is…
I’m not sure I need it. Maybe you will. It is an exercise in excess.
I rarely need something from my home PC because nowadays it’s so easy
to store things in the magical cloud . Still, it’s a nice exercise. 
 I have set up remote access on Void Linux and I will describe the
process of doing so for that OS. You might encounter some problems
if you are using…