8 months of OCaml after 8 years of Haskell in production (2023)
Dmitrii Kovanikov's Personas Web Space
The latest blog posts to take off on Hacker News. 1,535 posts.
Dmitrii Kovanikov's Personas Web Space
Parenthetically Speaking: Articles by Shriram Krishnamurthi
Demystifying git submodules by showing exactly how they work.
Challenging your software modelling techniques to be simpler
How to program the Commodore 64 in BASIC, Assembly or C using Microsoft Visual Studio Code on Mac, Windows and Linux!
Hi, my name is Bill. I’m a software engineer based in London. This is a blog about software development.
New database library for Rust
Frameworkism is now the dominant creed of today's frontend discourse, and it's bullshit. We owe it to ourselves and to our users to reject dogma and embrace engineering as a discipline that strives to serve users first and foremost.
In a previous post, I’ve shown how to use the rayon framework in Rust to automatically parallelize a loop computation across multiple CPU cores.Disappointingly, my benchmarks showed that this only provided a 2x speedup for my workload, on a computer with 8 CPU threads.Worse, the total “user” and “system” times…
I just finished reading the paper Borrow checking Hylo . It outlines the basic design of Hylo . Hylo is an early-stage programming language, but unlike other contenders of C++, it provides memory safety like rust. Specifically it merges rust’s borrow checking ideas into the framework of moveable value semantics (MVS)…
UPDATE MARCH 2025: This post, and the template attached, were written for Typst v 0.11 – Typst has upgraded twice since then, and this template will not work with the newer versions of Typst. Please see the new post (Mar 26, 2025) at A New Typst Template for Pandoc
Please refer to How Much Memory Do You Need in 2024 to Run 1 Million Concurrent Tasks? - Take 2 to check the latest result.
Practical accounting for fintech engineers, and also how not to repeat my silly mistakes.
Reflecting on my most successful open source project.
where my words occasionally escape /dev/null
As someone who has from time to time written on parsing, and even published some parsing research , I get asked questions about parsing fairly regularly, some of which I’m even capable of answering.
C-Reduce is a tool by Regehr and friends for minimizing C compiler bug reproducers. Imagine if you had a 10,000 line long C file that triggered a Clang bug. You don’t want to send a massive blob to the compiler developers because that’s unhelpful, but you also don’t want to cut it down to size by hand. The good news…
Follow me on Bluesky! A Log-Structured Merge tree, or LSM, is a popular data structure for storage engines. It’s what is used by RocksDB, which is sort of...
A post by Eshel Yaron with details and advice about a long standing arbitrary code execution vulnerability in Emacs
Inspired by Jack Wrenn’s post on Undroppable Types in Rust, I set out to see if it’s possible to create types that must be used exactly once. From my understanding, those things are called linear types, but don’t quote me on that1. Unless you are quoting the title of this article which explicitly says linear types… I…
Yes I know I'm technically on vacation but if I go too long without writing I die from a witch's curse and I don't want to work on longform projects For...
Update 2024-12-02 : There was a lively discussion about the post on Hacker News you might also find interesting: link to thread.
I wrote a book. It’s called Janet for Mortals, and it’s free, and it’s on the internet, and you can read it right now. And you should read it right now, instead of reading this blog post, because this blog post is not very interesting if you haven’t read the book. Heck, this blog post is not very interesting even if…
Unleash your creativity with the full power and Python, without the hassle of learning a new templating language or dealing with its limitations!
Virtualization is a powerful technique for code obfuscation, and reversing it can be challenging. In this post, we cover the work done during an internship on developing an automated devirtualization tool. We explore a simplified taint-based approach and discuss its limitations. For a more in-depth analysis, the full…
Dmitrii Kovanikov writes posts about enterprise software development and functional programming, both entertaining and serious. I never used a functional programming language (such as Haskell or OCaml) at work, but several ideas from functional programming have become popular in mainstream general-purpose programming…
Oracle is holding the JavaScript trademark hostage, and we’re pursuing legal means to #FreeJavaScript. Here’s a brief update.