Calling C# from Ruby with NativeAOT and FFI
By Martijn Storck
read more
Freelance Software Developer / DevOps Consultant
Hi! I'm a freelance software developer from the Netherlands, specialised in .NET and Azure development with C# and TypeScript. Additionally, in my 15+ years as a software professional I've worked with a multitude of technologies, including Ruby on Rails, React, AWS, Kubernetes and various CI/CD pipelines.
I value pragmatism, developer productivity and clear communication. On this website I occasionally write about stuff that interests me. If you're interested in my side projects check out my GitHub profile.
I'm available for hybrid contract work in the Netherlands and remotely throughout the European Union. If you're interested in cooperation, I'd love to hear from you!
Cheers,
Martijn
By Martijn Storck
read moreBy Martijn Storck
read moreAssert.Collection.
By Martijn Storck
read moreBy Martijn Storck
read moreBy Martijn Storck
read moreBy Martijn Storck
read moreBy Martijn Storck
read moreBy Martijn Storck
read moreBy Martijn Storck
read moreBy Martijn Storck
read moreBy Martijn Storck
read moreBy Martijn Storck
read moreBy Martijn Storck
read moreYears ago I replaced my IKEA TRÅDFRI gateway with a Rasbperry Pi with a Raspbee, running deCONZ. It allowed me to mix and match ZigBee devices from various brands and make flexible configurations. Plus the integration with Home Assistant is superb.
However, one thing I lost is the ability for the IKEA remote to control my lights directly when the deCONZ gateway is down, which was possible back when I used the IKEA gateway. Depending on who you ask, this is either not possible at all or should be taken care of automatically be deCONZ when you set up the remote. The latter didn’t work for me and it took me quite a few attempts to figure out how to set up the pairing manually.
By Martijn Storck
read moreBy Martijn Storck
read moreBy Martijn Storck
read moreBy Martijn Storck
read moreBy Martijn Storck
read moreBy Martijn Storck
read moreBy Martijn Storck
read moreBy Martijn Storck
read morePrometheus Operator is the perfect cloud-native monitoring solution for Kubernetes. By deploying the Helm chart you get a preconfigured Prometheus and Grafana setup plus an array of CRDs to add monitoring your own services.
Not everything necessarily lives in a Kubernetes cluster, though. So how would you add external targets to a Prometheus Operator setup? One could define an Endpoint, Service and ServiceMonitor for the external resource to have it picked up by Prometheus’ Kubernetes service discovery, which works, but there is a better solution that is more in line with how Prometheus is used outside of the Operator deployment.
By Martijn Storck
read moreTL;DR I wrote a super fast Excel file reader called Xsv, check it out! It’s fast and low on memory because it uses a SAX-based XML parser instead of a DOM-based one. Here’s some benchmarks to prove it.
Simple API for XML, or SAX for short is an event-based API, of which development started in December 1997 1. It is an alternative to the well-known Document Object Model, which was developed around the same time 2.
By Martijn Storck
read moreThe topic of this post is neither new nor original, so I’m going to keep things short. People have been using jemalloc with MRI Ruby for years and praising it’s benefits all the while. The TL;DR here is: for Rails apps, using jemalloc will reduce memory consumption and might increase performance a little.
To illustrate my own experience, here’s a Grafana graph showing the effect of switching to jemalloc on a production server running a few instances of a Rails application:
By Martijn Storck
read moreRuby on Rails 6 allows us to leverage the excellent Webpack bundler to manage JavaScript and CSS components in a way that’s more native to those technologies than the old asset pipeline: no more gems to wrap JavaScript libraries and no more libv8 gem issues.
Another advantage Webpack brings is the excellent source maps. I was surprised to see the source code of my Svelte components, complete with comments available from the Firefox development tools:
By Martijn Storck
read moreFor a long time I’ve been thinking about getting out of my comfort zone and try to develop a game for something like the Sega Mega Drive or maybe the Atari 2600. But for a spoiled high-level developer like me that would be quite a daunting task so I’ve postponed indefinitely.
Then last week, in the midst of the COVID-19 crisis, I stumbeld upon this awesome project called PICO-8. To quote the official website:
By Martijn Storck
read moreBy Martijn Storck
read more