Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    K

    Kristaps Dzonsons

    kristaps.bsd.lv · Personal blog · on HN since 2012

    Kristaps Dzonsons, a BSD developer, writes about small, secure C tools like kcgi, lowdown and acme-client, and OpenBSD sandboxing with pledge.

    Visit blogHN submissions
    Open Source & LinuxSecurityProgramming
    What HN says

    Commenters recommend his small C acme-client and the fast lowdown Markdown tool, and some cite his SQLite conclusions as reason to skip the BCHS stack.

    Stats for nerds
    37HN people shared it
    18linked in comments
    127story points
    Aug 2026last shared
    2016people per year2026

    Top posts on HN

    1. 1
      How easy is it for a developer to "sandbox" a program?
      3 people · 68 points · first shared 2025 · 95 comments on HN
    2. 2
      Secure CGI Applications in C on BSD (2016)
      3 people · 17 points · first shared 2016 · 2 comments on HN
    3. 3
      Kcgi – minimal CGI and FastCGI library for C/C++
      9 people · 15 points · first shared 2016 · 1 comments on HN
    4. 4
      Let's Encrypt client from BSD in C
      3 people · 11 points · first shared 2016 · 1 comments on HN
    5. 5
      Lowdown – Simple Markdown Translator
      6 people · 5 points · first shared 2021 · Discussion on HN
    6. 6
      Slant – remote system monitor
      1 person · 3 points · first shared 2018 · Discussion on HN
    7. 7
      SQLite: Securely Using SQLite3 with Pledge(2) on OpenBSD
      2 people · 2 points · first shared 2019 · Discussion on HN
    8. 8
      Bsddistmake - distributed extension to bsdmake
      1 person · 2 points · first shared 2012 · Discussion on HN
    9. 9
      Kcgi: Securing CGI web applications [pdf]
      1 person · 2 points · first shared 2021 · Discussion on HN
    10. 10
      Lowdown can translate Markdown to an mdoc manpage
      1 person · 1 points · first shared 2026 · Discussion on HN

    What HN people wrote when they linked it

    • anjbeJun 2020

      I’m an OpenBSD developer (mostly a packager). IMO you’ve mischaracterized both Theo’s response and OpenBSD’s culture.

      If OpenBSD has a culture, it’s not “real men,” but “show me the code.” That’s plain from the mail linked in the post you responded to: mailing lists are full of people making suggestions (like “rewrite OpenBSD in Rust”), but few people doing the necessary work (like implementing or testing a reasonably POSIX‐compatible userland, handling the 8+ architectures that would immediately have to be dropped, measuring the performance impacts on the project build clusters…).

      Contrast the above response with the WireGuard implementation this whole discussion is about. A non‐OpenBSD contributor sent a draft patchset, which received suggestions and was iterated upon several times, and despite some complaints about the concept from one quarter (https://marc.info/?l=openbsd-cvs&m=159273877612032&w=2), it was committed by the very person who had those complaints! In the end Jason and Matt of WireGuard described the process as “extremely pleasant” (https://lists.zx2c4.com/pipermail/wireguard/2020-June/005588.html). This is feedback I see often from external contributors.

      You describe safety guards like privilege separation and pledge/unveil as “real men programming”, but they’re the complete opposite: they exist precisely to mitigate the damage that results from human error. acme-client’s design does keep private keys inaccessible this way (see…

    • tsegratisJul 2022

      I like the premise of embedded generating inline c. Kinda like php for c, rather than html

      I'm not sure of custom BNF per generating command. I notice they're mostly order independent, which makes it a little easier to learn, but what's the advantage over c syntax? Is it roughly that pointers etc are impossible. Maybe a c-esque syntax would be more learnable

      How does the existing syntax compose, i.e. can the user run away with writing tcl-style scripts

      If you don't get a lot of feedback, I would guess it is inpart due to custom syntax being an entry barrier to understanding

      I don't know, I think html is easy, so people want power with php. On the other hand for an audience that is using c, by the time I'm doing that, does Vely's custom syntax give me more than a set of convenient c library calls... such as https://kristaps.bsd.lv/kcgi/

      In any case, I like the apis, and aim, and I think the premise has legs

    • smartmicApr 2024

      My main authoring tool is then Emacs Markdown Mode (https://jblevins.org/projects/markdown-mode/). For data entry, it comes with some bells and whistles similar to org-mode, like C-c C-l for inserting links etc.

      I seldom export my notes for external usage, but if it is the case, I use lowdown (https://kristaps.bsd.lv/lowdown/) which also comes with some nice output targets (among the more unusual are Groff and Terminal). Of cource pandoc (https://pandoc.org/) does a very good job here, too.

    • brynetFeb 2018

      I probably wouldn't trust implementing important network speaking services as a shell script, potentially running as root.

      OpenBSD's acme-client [0] is a fork of Kristaps Dzonsons' project (formerly letskencrypt), it's a properly privilege separated ACME v1 client, written in C, using pledge(2) on OpenBSD, libseccomp on Linux.

      https://kristaps.bsd.lv/acme-client/

      [0] https://man.openbsd.org/acme-client

    • stepvhenApr 2020

      This looks great! I too have been working on a critter tracker[0], but writing it in C using kcgi[1] (no JS at all).

      I have never done a web project before, so this has been a great learning experience. I still have some functionality to complete, but so far it has been pretty useful, even just the "available now" feature.

      [0] https://xvetrd.tilde.institute/index.cgi

      [1] https://kristaps.bsd.lv/kcgi/

    • uticusAug 2025

      Pushing the burden of network permissions management outside the browser, to the OS? Heresy!

      To be serious, this has introduced me to sandboxing on BSD via pledge [0] and comparisons against Linux seccomp [1] - thank you!

      [0] https://news.ycombinator.com/item?id=17289654

      [1] https://kristaps.bsd.lv/devsecflops/ (submission by same poster at https://news.ycombinator.com/item?id=44264021)

    Related

    Peter Hansteenbsdly.blogspot.com54 people

    OpenBSD and the modern laptop

    Peter Hansteen
    Personal · last shared 2026
    Cambuscambus.net44 people

    Oldest domains in the .com, .net, and .org TLDs

    Cambus
    Personal · last shared 2026
    matkladmatklad.github.io237 people

    Architecture.md

    matklad
    Personal · last shared 2026
    euroquiseuroquis.nl24 people

    Python and SysV Shared Memory

    euroquis
    Personal · last shared 2025
    Chris Wellonsnullprogram.com295 people

    Why Aren't There C Conferences?

    Chris Wellons
    Personal · last shared 2026
    Atlassian Developer Blogdeveloper.atlassian.com115 people

    A better pull request

    Atlassian Developer Blog
    Company · last shared 2026
    Krisztián Kovácskkovacs.eu34 people

    Cool, but obscure Unix tools

    Krisztián Kovács
    Personal · last shared 2026
    Ted Unangsttedunangst.com269 people

    Can an email go 500 miles in 2025?

    Ted Unangst
    Personal · last shared 2026