Pasta/80 is a simple Pascal cross compiler targeting the Z80 microprocessor
PASTA/80 is a simple Pascal cross compiler targeting the Z80 microprocessor. It generates code for these classic and modern machines: The compiler follows the single-pass recursive-descent approach championed by Niklaus Wirth, inventor of Pascal, in his books and lectures. It doesn’t have an explicit syntax tree, but instead generates code on the fly during parsing. […]
Language Support for Marginalia Search

One of the big ambitions for the search engine this year has been to enable searching in more languages than English, and a pilot project for this has just been completed, allowing experimental support for German, French and Swedish. These changes are now live for testing, but with an extremely small corpus of documents. As […]
Linux disk I/O diagram (2024)
Description Linux Disk I/O subsystem diagram This diagram represents Linux disk I/O subsystem components and the corresponding commands on each layer. Linux disk I/O diagram consists from the: Application layer VFS (Virtual Filesystem): Direct I/O or Buffer+Page Cache Filesystem Layer Optional block layer Generic block layer Disk scheduler layer: BLK-Mq or Clasic I/O scheduler (noop, […]
Practical Scheme

This page is a collection of libraries and extensions to use Scheme as a production tool. By “production tools” I mean the tools to process daily chores for systems engineers and programmers—parsing files, generate reports, watching processes, providing small GUI wrappers, and all sorts of those things. Currently I’m using Perl for those purpose, but […]
60k kids have avoided peanut allergies due to 2015 advice, study finds

A decade after a landmark study proved that feeding peanut products to young babies could prevent development of life-threatening allergies, new research finds the change has made a big difference in the real world. About 60,000 children have avoided developing peanut allergies after guidance first issued in 2015 upended medical practice by recommending introducing the […]
Normalize.css
A cross-browser CSS foundation normalize.css makes browsers render all elements more consistently and in line with modern standards. It precisely targets only the styles that need normalizing. npm install @csstools/normalize.css
Wikipedia says traffic is falling due to AI search summaries and social video

Wikipedia is often described as the last good website on an internet increasingly filled with toxic social media and AI slop. But it seems the online encyclopedia is not completely immune to broader trends, with human page views falling 8% year-over-year, according to a new blog post from Marshall Miller of the Wikimedia Foundation. The […]
The Rubygems.org takeover

In September, a group of long-time maintainers of Ruby packaging tools projects had their GitHub privileges revoked by nonprofit corporation Ruby Central in what many people are calling a hostile takeover. Ruby Central and its board members have issued several public statements that have, so far, failed to satisfy many in the Ruby community. In […]
Why UUIDs won’t protect your secrets

Blog Home This post is part of a collection on UUIDs. What is IDOR? Indirect Object Reference (IDOR) occurs when a resource can be accessed directly by its ID even when the user does not have proper authorization to access it. IDOR is a common mistake when using a separate service for storing files, such […]
Building a message queue with only two UNIX signals

Have you ever asked yourself what if we could replace any message broker with a very simple one using only two UNIX signals? Well, I’m not surprised if you didn’t. But I did. And I want to share my journey of how I achieved it. If you want to learn about UNIX signals, binary operations […]