<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Posts on storck.io</title>
    <link>https://storck.io/posts/</link>
    <description>Recent content in Posts on storck.io</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Mon, 24 Aug 2026 17:00:06 +0200</lastBuildDate>
    <atom:link href="https://storck.io/posts/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>What Swift-style actors could look like in C#</title>
      <link>https://storck.io/posts/swift-style-actors-in-csharp/</link>
      <pubDate>Sun, 23 Aug 2026 16:39:00 +0200</pubDate>
      <guid>https://storck.io/posts/swift-style-actors-in-csharp/</guid>
      <description>Swift makes actors a language feature: ordinary reference types whose mutable state is isolated by the compiler. I wanted to know how close C# could get. A single-reader Channel provides most of the runtime, revealing that the missing feature is language-enforced isolation.</description>
    </item>
    <item>
      <title>Calling C# from Ruby with NativeAOT and FFI</title>
      <link>https://storck.io/posts/calling-csharp-from-ruby-nativeaot-ffi/</link>
      <pubDate>Thu, 12 Feb 2026 17:00:00 +0100</pubDate>
      <guid>https://storck.io/posts/calling-csharp-from-ruby-nativeaot-ffi/</guid>
      <description>Some Ruby operations are painfully slow but writing a C extension to fix them is a big commitment. I wanted to explore an alternative: compile C# to a native shared library with NativeAOT and call it from Ruby using FFI. I picked C# because I know it and love its standard library. To see if it holds up I built a benchmark, reimplementing ActiveSupport&amp;rsquo;s String#parameterize in ~20 lines of C# stdlib code.</description>
    </item>
    <item>
      <title>Adding Azure SignalR Service to Pointing Party</title>
      <link>https://storck.io/posts/azure-signalr-service-is-pretty-pretty-good/</link>
      <pubDate>Fri, 21 Mar 2025 14:15:00 +0000</pubDate>
      <guid>https://storck.io/posts/azure-signalr-service-is-pretty-pretty-good/</guid>
      <description>One of the biggest drawbacks of SignalR is that it&amp;rsquo;s hard to scale. Microsoft provides a solution called Azure SignalR Service that promises to handle it wihout hassle. And guess what? It does! Your application doesn&amp;rsquo;t have to run on Azure and configuration is easy. It&amp;rsquo;s good.. pretty, pretty good!</description>
    </item>
    <item>
      <title>Downloading Sharepoint documents from .NET with PnP.Core, without Windows</title>
      <link>https://storck.io/posts/downloading-sharepoint-documents-from-dotnet/</link>
      <pubDate>Thu, 28 Sep 2023 13:05:00 +0200</pubDate>
      <guid>https://storck.io/posts/downloading-sharepoint-documents-from-dotnet/</guid>
      <description>Accessing Sharepoint from a .NET application without using Windows is easy.&#xA;This article will download files from Sharepoint using the &lt;a href=&#34;https://pnp.github.io/pnpcore/&#34;&gt;PnP.Core&lt;/a&gt; package on macOS with .NET 7.</description>
    </item>
    <item>
      <title>Testing list contents with xUnit and Assert.Collection</title>
      <link>https://storck.io/posts/testing-lists-with-xunit-assert-collection/</link>
      <pubDate>Thu, 09 Feb 2023 12:30:00 +0200</pubDate>
      <guid>https://storck.io/posts/testing-lists-with-xunit-assert-collection/</guid>
      <description>xUnit has become the favorite unit testing tool for many .NET developers. The assertion library&#xA;documentation however is quite sparse. Let&amp;rsquo;s explore the testing of list collections using a lesser&#xA;known xUnit assertion, &lt;code&gt;Assert.Collection&lt;/code&gt;.</description>
    </item>
    <item>
      <title>Writing and testing Azure Functions with TypeScript</title>
      <link>https://storck.io/posts/writing-testing-azure-functions-with-typescript/</link>
      <pubDate>Thu, 03 Nov 2022 10:28:00 +0200</pubDate>
      <guid>https://storck.io/posts/writing-testing-azure-functions-with-typescript/</guid>
      <description>Azure Functions is a serverless compute solution that integrates with a wide selection of cloud&#xA;services to allow developers to build isolated blocks of event-driven code in a cloud-native fashion.&#xA;This post demonstrates how an Azure Function written in TypeScript can interact with a database without&#xA;any actual database logic in the function itself, and how to write unit tests for these functions.</description>
    </item>
    <item>
      <title>Serializing .NET 6s new DateOnly to JSON</title>
      <link>https://storck.io/posts/serializing-net-6-dateonly-to-json/</link>
      <pubDate>Mon, 11 Jul 2022 10:55:00 +0200</pubDate>
      <guid>https://storck.io/posts/serializing-net-6-dateonly-to-json/</guid>
      <description>The DateOnly type that was introduced in .NET 6 is convenient for exchanging strongly typed date information&#xA;in APIs. Unfortunately, the ever popular JSON format has no standard for date fields. This leads to&#xA;UnsupportedTypeConverter errors when trying to serialize these fields using System.Text.Json. This article explains&#xA;how to create a custom JsonConverter to define the serialization format for DateOnly fields and how to show the&#xA;correct format in generated Swagger documentation.</description>
    </item>
    <item>
      <title>Validating HTTP(S) URLs in Ruby on Rails</title>
      <link>https://storck.io/posts/better-http-url-validation-in-ruby-on-rails/</link>
      <pubDate>Fri, 10 Jun 2022 16:33:00 +0200</pubDate>
      <guid>https://storck.io/posts/better-http-url-validation-in-ruby-on-rails/</guid>
      <description>Regular expressions are not a great way to validate URLs. Using Ruby&amp;rsquo;s built-in&#xA;URI parser, a custom Active Record Validation Helper can be built to safely&#xA;validate URLs in Ruby on Rails applications while allowing for flexible domain name&#xA;allow-listing.</description>
    </item>
    <item>
      <title>Adding a .NET 6 minimal Web API to a Blazor Server project</title>
      <link>https://storck.io/posts/web-api-in-blazor-net-6/</link>
      <pubDate>Sun, 31 Oct 2021 15:13:00 +0200</pubDate>
      <guid>https://storck.io/posts/web-api-in-blazor-net-6/</guid>
      <description>The new minimal APIs in .NET 6 make creating low-ceremony microservices and backends very appealing,&#xA;and they&amp;rsquo;re also a great way to add simple endpoints to Blazor Server applications, complete with&#xA;Dependency Injection and JSON serialization.</description>
    </item>
    <item>
      <title>Draw a line chart with Blazor and SVG</title>
      <link>https://storck.io/posts/charts-and-graphs-with-blazor-svg/</link>
      <pubDate>Fri, 17 Sep 2021 15:15:00 +0200</pubDate>
      <guid>https://storck.io/posts/charts-and-graphs-with-blazor-svg/</guid>
      <description>Blazor is so great that I&amp;rsquo;d rather not use anything else. That made me wonder:&#xA;can I build SVG files using Razor syntax and is that a good idea?&#xA;The answers are absolutely and definitely!</description>
    </item>
    <item>
      <title>The broken windows of software</title>
      <link>https://storck.io/posts/broken-windows-theory-in-software/</link>
      <pubDate>Mon, 17 May 2021 12:47:00 +0200</pubDate>
      <guid>https://storck.io/posts/broken-windows-theory-in-software/</guid>
      <description>In sociology, the broken windows theory states that if a window in a building is broken and is left unrepaired, all the rest of the windows will&#xA;soon be broken. This equally applies to software developement is it&amp;rsquo;s importatnt to be aware of this and make fixing these broken windows a team priority!</description>
    </item>
    <item>
      <title>Trix editor as a Blazor Component</title>
      <link>https://storck.io/posts/basecamp-trix-as-a-blazor-component/</link>
      <pubDate>Tue, 09 Mar 2021 12:30:00 +0200</pubDate>
      <guid>https://storck.io/posts/basecamp-trix-as-a-blazor-component/</guid>
      <description>Trix is a rich text editor that is popular with Ruby on Rails developers.&#xA;In this post we&amp;rsquo;re going to take Trix out of Rails and use it inside an&#xA;ASP.NET Blazor application by making a drop in replacement for Blazor&amp;rsquo;s&#xA;InputText component.</description>
    </item>
    <item>
      <title>Deploying AWS CloudFormation templates from CircleCI</title>
      <link>https://storck.io/posts/deploying-aws-cloudformation-templates-from-circleci/</link>
      <pubDate>Fri, 26 Feb 2021 10:10:00 +0200</pubDate>
      <guid>https://storck.io/posts/deploying-aws-cloudformation-templates-from-circleci/</guid>
      <description>CircleCI provides several official orbs for interacting with Amazon Web Services,&#xA;but not for CloudFormation specifically. However, that doesn&amp;rsquo;t mean you need to&#xA;reach for a community orb to update your stacks from a CI pipeline. A single&#xA;AWS CLI command is all that is needed to push template updates to your AWS&#xA;account.</description>
    </item>
    <item>
      <title>Announcing Xsv 1.0.0</title>
      <link>https://storck.io/posts/announcing-xsv-1-0-0/</link>
      <pubDate>Tue, 26 Jan 2021 11:21:00 +0200</pubDate>
      <guid>https://storck.io/posts/announcing-xsv-1-0-0/</guid>
      <description>Today marks the release of Xsv 1.0.0, a high performance, pure-Ruby gem to parse .xlsx (Excel) files</description>
    </item>
    <item>
      <title>Forcing C# indentation in Visual Studio Code using Omnisharp</title>
      <link>https://storck.io/posts/vscode-csharp-change-indentation/</link>
      <pubDate>Mon, 04 Jan 2021 13:55:00 +0200</pubDate>
      <guid>https://storck.io/posts/vscode-csharp-change-indentation/</guid>
      <description>I always thought indentation was a solved problem, until I needed to adapt&#xA;to something different. Here&amp;rsquo;s a trick to force correct indentation for your&#xA;.NET projects by using the Omnisharp language server.</description>
    </item>
    <item>
      <title>Pair a TRÅDFRI remote to deCONZ - the hard way</title>
      <link>https://storck.io/posts/pair-tradfri-remote-to-deconz-raspbee-conbee/</link>
      <pubDate>Sun, 22 Nov 2020 14:45:00 +0200</pubDate>
      <guid>https://storck.io/posts/pair-tradfri-remote-to-deconz-raspbee-conbee/</guid>
      <description>&lt;p&gt;Years 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.&lt;/p&gt;&#xA;&lt;p&gt;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.&lt;/p&gt;</description>
    </item>
    <item>
      <title>It&#39;s time to consider C# and .NET 5</title>
      <link>https://storck.io/posts/its-time-to-consider-csharp-and-dotnet-5/</link>
      <pubDate>Fri, 06 Nov 2020 09:40:00 +0200</pubDate>
      <guid>https://storck.io/posts/its-time-to-consider-csharp-and-dotnet-5/</guid>
      <description>People have been sleeping on .NET and they&amp;rsquo;re mising out. With the release of .NET 5 this month, it&amp;rsquo;s time to consider C# .NET for your next project! It&amp;rsquo;s a great general-purpose software framework that&amp;rsquo;s likeable, in high demand, easy to sell to customers, has decent performance, is completely open source, mature and has a large backing. What more could you want? Let me explain to you why I see it as the best alternative for Ruby on Rails and share some resources to get you started.</description>
    </item>
    <item>
      <title>The case for proportional programming fonts</title>
      <link>https://storck.io/posts/proportional-programming-code-fonts/</link>
      <pubDate>Tue, 03 Nov 2020 20:45:00 +0200</pubDate>
      <guid>https://storck.io/posts/proportional-programming-code-fonts/</guid>
      <description>Programming fonts are stuck in the past. Proportional typesetting is everywhere and&#xA;there is no reason why you can&amp;rsquo;t use it for code.</description>
    </item>
    <item>
      <title>Adding TypeScript to your Svelte components in Rails 6</title>
      <link>https://storck.io/posts/adding-typescript-to-svelte-with-webpacker/</link>
      <pubDate>Tue, 29 Sep 2020 10:28:00 +0200</pubDate>
      <guid>https://storck.io/posts/adding-typescript-to-svelte-with-webpacker/</guid>
      <description>Combine Svelte and Typescript with Ruby on Rails&amp;rsquo; Webpacker to improve your JavaScript workflow and get better feedback in your editor.</description>
    </item>
    <item>
      <title>Moving from Capybara to Cypress</title>
      <link>https://storck.io/posts/moving-from-capybara-to-cypress/</link>
      <pubDate>Fri, 03 Jul 2020 14:51:00 +0200</pubDate>
      <guid>https://storck.io/posts/moving-from-capybara-to-cypress/</guid>
      <description>Cypress makes writing integration tests (or system tests) easier and more fun. This posts shows you the tools needed to add Cypress tests to your Rails application.</description>
    </item>
    <item>
      <title>Building a small Docker image to deploy your Go application</title>
      <link>https://storck.io/posts/minimal-dockerfile-for-golang-deployment/</link>
      <pubDate>Mon, 15 Jun 2020 11:38:00 +0200</pubDate>
      <guid>https://storck.io/posts/minimal-dockerfile-for-golang-deployment/</guid>
      <description>Docker image size matters. Here&amp;rsquo;s how you build a small image on top of debian:slim and why&#xA;that&amp;rsquo;s a better option than alpine or scratch.</description>
    </item>
    <item>
      <title>Deploying Ruby on Rails apps to Kubernetes from Gitlab CI</title>
      <link>https://storck.io/posts/deploying-ruby-on-rails-to-kubernetes-from-gitlab-ci/</link>
      <pubDate>Thu, 11 Jun 2020 12:18:00 +0200</pubDate>
      <guid>https://storck.io/posts/deploying-ruby-on-rails-to-kubernetes-from-gitlab-ci/</guid>
      <description>Gitlab CI allows you to create and manage Kubernetes clusters directly from the interface and easily deploy builds to your existing Kubernets infrastructure. Here&amp;rsquo;s how.</description>
    </item>
    <item>
      <title>Full resolution Jump Desktop on iPad Pro 11&#34; using SwitchResX</title>
      <link>https://storck.io/posts/jump-desktop-ipad-pro-11-inch-full-screen/</link>
      <pubDate>Wed, 10 Jun 2020 09:15:00 +0200</pubDate>
      <guid>https://storck.io/posts/jump-desktop-ipad-pro-11-inch-full-screen/</guid>
      <description>Since the introduction of the Magic Keyboard, interest in using an iPad as a remote terminal for desktops is bigger than ever. The tool of choice for many iPad enthusiasts seems to be Jump Desktop, which supports VNC, RDP and their proprietary Fluid protocol. Let&amp;rsquo;s try to get the most out of it when connecting to a macOS desktop.</description>
    </item>
    <item>
      <title>Adding external hosts to a Prometheus Operator helm release</title>
      <link>https://storck.io/posts/prometheus-operator-external-host/</link>
      <pubDate>Wed, 03 Jun 2020 09:27:00 +0200</pubDate>
      <guid>https://storck.io/posts/prometheus-operator-external-host/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://github.com/coreos/prometheus-operator&#34;&gt;Prometheus Operator&lt;/a&gt; is the perfect cloud-native monitoring solution for Kubernetes. By deploying the &lt;a href=&#34;https://github.com/helm/charts/tree/master/stable/prometheus-operator&#34;&gt;Helm chart&lt;/a&gt; you get a preconfigured Prometheus and Grafana setup plus an array of CRDs to add monitoring your own services.&lt;/p&gt;&#xA;&lt;p&gt;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&amp;rsquo; Kubernetes service discovery, which works, but there is a better solution that is more in line with how Prometheus is used outside&#xA;of the Operator deployment.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Efficient XML parsing in Ruby</title>
      <link>https://storck.io/posts/efficient-xml-parsing-in-ruby/</link>
      <pubDate>Tue, 02 Jun 2020 10:31:00 +0200</pubDate>
      <guid>https://storck.io/posts/efficient-xml-parsing-in-ruby/</guid>
      <description>&lt;p&gt;&lt;strong&gt;TL;DR I wrote a super fast Excel file reader called &lt;a href=&#34;https://github.com/martijn/xsv&#34;&gt;Xsv&lt;/a&gt;, check it out! It&amp;rsquo;s fast and low on memory because it uses a SAX-based XML parser instead of a DOM-based one. &lt;a href=&#34;https://storck.io/posts/efficient-xml-parsing-in-ruby/&#34;&gt;Here&amp;rsquo;s some benchmarks to prove it.&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;Simple API for XML, or SAX for short is an event-based API, of which development started in December 1997 &lt;a href=&#34;https://docstore.mik.ua/orelly/xml/sax2/ch01_04.htm&#34;&gt;1&lt;/a&gt;. It is an alternative to the well-known Document Object Model, which was developed around the same time &lt;a href=&#34;https://www.w3.org/Press/DOM-core&#34;&gt;2&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Add jemalloc to your Ruby Docker images, now!</title>
      <link>https://storck.io/posts/psa-switch-ruby-docker-to-jemalloc-now/</link>
      <pubDate>Fri, 08 May 2020 10:30:00 +0200</pubDate>
      <guid>https://storck.io/posts/psa-switch-ruby-docker-to-jemalloc-now/</guid>
      <description>&lt;p&gt;The 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.&lt;/p&gt;&#xA;&lt;h2 id=&#34;why&#34;&gt;Why?&lt;/h2&gt;&#xA;&lt;p&gt;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:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Disable JavaScript source maps in production Rails applications</title>
      <link>https://storck.io/posts/rails-webpack-disable-source-maps-in-production/</link>
      <pubDate>Mon, 20 Apr 2020 10:30:00 +0200</pubDate>
      <guid>https://storck.io/posts/rails-webpack-disable-source-maps-in-production/</guid>
      <description>&lt;p&gt;Ruby on Rails 6 allows us to leverage the excellent Webpack bundler to manage JavaScript and CSS components in a way that&amp;rsquo;s more native to those technologies than the old asset pipeline: no more gems to wrap JavaScript libraries and no more libv8 gem issues.&lt;/p&gt;&#xA;&lt;p&gt;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:&lt;/p&gt;</description>
    </item>
    <item>
      <title>PICO-8 is the coolest thing I&#39;ve seen all year</title>
      <link>https://storck.io/posts/pico-8-is-the-coolest-thing/</link>
      <pubDate>Tue, 07 Apr 2020 13:15:31 +0200</pubDate>
      <guid>https://storck.io/posts/pico-8-is-the-coolest-thing/</guid>
      <description>&lt;p&gt;For a long time I&amp;rsquo;ve been thinking about getting out of my comfort zone and try&#xA;to develop a game for something like the Sega Mega Drive or maybe the Atari&#xA;2600. But for a spoiled high-level developer like me that would be quite a daunting&#xA;task so I&amp;rsquo;ve postponed indefinitely.&lt;/p&gt;&#xA;&lt;p&gt;Then last week, in the midst of the COVID-19 crisis, I stumbeld upon this&#xA;awesome project called PICO-8. To quote the &lt;a href=&#34;https://www.lexaloffle.com/pico-8.php&#34;&gt;official website&lt;/a&gt;:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Raspberry Pi Can&#39;t Find My Wifi</title>
      <link>https://storck.io/posts/raspberry-pi-cant-find-my-wifi/</link>
      <pubDate>Mon, 30 Mar 2020 09:00:31 +0200</pubDate>
      <guid>https://storck.io/posts/raspberry-pi-cant-find-my-wifi/</guid>
      <description>If your Wi-Fi network is on channel 12 or 13, change the regulatory domain of your&#xA;wireless networking driver to make the Raspberry PI 3B see it.</description>
    </item>
  </channel>
</rss>
