<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <id>https://kramkow.ski/</id>
  <title>Tomasz Kramkowski</title>
  <updated>2025-06-27T00:00:00Z</updated>
  <author>
    <name>Tomasz Kramkowski</name>
    <email>tomasz@kramkow.ski</email>
    <uri>https://kramkow.ski/</uri>
  </author>
  <link rel="self" href="https://kramkow.ski/atom.xml" />
  <link rel="alternate" href="https://kramkow.ski/archive.html" />
  <entry>
    <title>My Lights Run on Bash</title>
    <link rel="alternate" href="https://kramkow.ski/article/2025/06/27/my_lights_run_on_bash.html" />
    <id>https://kramkow.ski/article/2025/06/27/my_lights_run_on_bash.html</id>
    <updated>2025-06-27T00:00:00Z</updated>
    <summary>Among the many hobbies that modern nerds pick up, one has recently become
incredibly popular: making everything in your house dangerously unreliable by
inserting a bunch of software where previously simple wires had sufficed. In
this post, I describe how I replaced the wires between my lights and my light
switches with some Bash.</summary>
  </entry>
  <entry>
    <title>Systemd Notifications on a Budget</title>
    <link rel="alternate" href="https://kramkow.ski/article/2024/03/31/systemd-notifications-on-a-budget.html" />
    <id>https://kramkow.ski/article/2024/03/31/systemd-notifications-on-a-budget.html</id>
    <updated>2024-03-31T00:00:00Z</updated>
    <summary>Recently, the inclusion of `libsystemd` as a dependency of distribution vendored
copies of OpenSSH server caused a bit of a scare. Not necessarily because of
`libsystemd`. That being said, maybe NIH isn&#39;t that bad in some situations,
maybe we shouldn&#39;t be so eager to add a dependency when a short bit of code is
sufficient. So I wrote a short bit of code.</summary>
  </entry>
  <entry>
    <title>Option Parsing on a Budget</title>
    <link rel="alternate" href="https://kramkow.ski/article/2021/07/29/option-parsing-on-a-budget.html" />
    <id>https://kramkow.ski/article/2021/07/29/option-parsing-on-a-budget.html</id>
    <updated>2021-07-29T00:00:00Z</updated>
    <summary>Recently I was writing a little code generation utility which took lots of
positional arguments. I wanted to add two optional features to this utility,
these options would take no arguments. I decided to use `getopt` but realised
that this would make the code depend on POSIX, I liked the idea of staying
dependency free so I quickly investigated really simple solutions for option
parsing (without compromises) which would be equivalent to POSIX and GNU
`getopt`.</summary>
  </entry>
  <entry>
    <title>N900 Fast GPS Fix</title>
    <link rel="alternate" href="https://kramkow.ski/article/2018/07/18/n900-fast-gps-fix.html" />
    <id>https://kramkow.ski/article/2018/07/18/n900-fast-gps-fix.html</id>
    <updated>2018-07-18T00:00:00Z</updated>
    <summary>If anyone is, like me, still using the N900, they may have noticed that
acquiring an initial GPS fix can take minutes. The reason for this is that even
in the latest CSSU, supl.nokia.com no longer works as a location server. The fix
for this is actually relatively quick and easy and will make an initial GPS fix
take seconds rather than minutes.</summary>
  </entry>
  <entry>
    <title>DNSSEC</title>
    <link rel="alternate" href="https://kramkow.ski/article/2016/04/04/dnssec.html" />
    <id>https://kramkow.ski/article/2016/04/04/dnssec.html</id>
    <updated>2016-04-04T00:00:00Z</updated>
    <summary>As of today my domain finally supports DNSSEC. It was much simpler than I
thought it would be. It seems namecheap now officially allows you to publish DS
records in the parent zone of your domain (limited only to TLDs which support
it). This is one of the last things that I wanted to set up on my server.</summary>
  </entry>
  <entry>
    <title>malloc, realloc and sizeof</title>
    <link rel="alternate" href="https://kramkow.ski/article/2015/12/02/malloc-realloc-and-sizeof.html" />
    <id>https://kramkow.ski/article/2015/12/02/malloc-realloc-and-sizeof.html</id>
    <updated>2015-12-02T00:00:00Z</updated>
    <summary>I spend a lot of time in ##c hoping to provide useful information to people
wishing to learn and understand C and almost every day I see malloc and realloc
code which appears to be straight from a horror movie. I&#39;ve had to say what I
say in this post repeatedly to many people so I&#39;ve decided that it&#39;s time to
write it once and simply give people a link every time I wish to explain why
such code is incorrect.</summary>
  </entry>
  <entry>
    <title>The Mystery DS Record</title>
    <link rel="alternate" href="https://kramkow.ski/article/2015/08/16/mystery-ds-record.html" />
    <id>https://kramkow.ski/article/2015/08/16/mystery-ds-record.html</id>
    <updated>2015-08-16T00:00:00Z</updated>
    <summary>So after transferring my domain from transip.eu to namecheap.com for WHOIS
privacy I realised that suddenly the Google public DNS servers were no longer
able to resolve my domain. Very quickly, I realised that quite a few things
seemed to rely on the Google public DNS services (and DNSSEC supporting
resolvers). Fun ensued.</summary>
  </entry>
  <entry>
    <title>It&#39;s Alive... Again...</title>
    <link rel="alternate" href="https://kramkow.ski/article/2015/06/28/it_s-alive-again.html" />
    <id>https://kramkow.ski/article/2015/06/28/it_s-alive-again.html</id>
    <updated>2015-06-28T00:00:00Z</updated>
    <summary>After putting it off for a few months, and a weekend of trying to make the
perfect simple stylesheet, I finally got around to re-doing my website. It&#39;s
now simpler, easier to read and actually has a blog.</summary>
  </entry>
  
</feed>