RSSAmplifier

Blog

Chaotic Blog of Artyom Bologov

Artyom's, blog on programming, art, and research.

aartaka.meRSS feed ↗39 posts

Latest posts

Procnames Start Lines. But Why?

Read on the website: Putting procedure names at column 0 is a widespread convention in C codebases. But the exact reasons are not really elaborated anywhere. We just do that. So I decided to make my own summary for why it's a thing.

Using ed(1) as My Static Site Generator

Read on the website: You can tell I'm an ed fan. Not only do I use it for esoteric challenges or compiler building, it also is my new SSG (Static Site Generator.) So here's how it works:

Three Minutes Writing

Read on the website: We're all suffering with attention deficit. So let's finally write like we do.

Generating This Post Without LLMs

Read on the website: Text generation was a lot of fun before ChatGPT—it was chaotic and deranged. I written this post using the old text generation techniques. You'll like how absurd it turned out, I promise!

Printf Is Useless

Read on the website: Printf (and the derivatives every language has) are a bane that should only be tolerated when printing floats. Otherwise, I beg you, use string interpolation or structured output.

s/sed/ed

Read on the website: ed is a stupid simple text editor. sed is a nice streaming text processing tool. Why would one even want to use ed for anything, let alone for text processing if there's sed?

5 (Wrong) Regex To Parse Parentheses

Read on the website: Regex are powerful. To the point you may try to parse HTML or Lisp with it. A doomed enterprise, right? But it's possible, actually.

Parameterized Procedures for Testing, Mocking, Plumbing

Read on the website: It's often the case that a functional (Scheme?) codebase needs to plug something into the computation. Here's one way to do that with almost no syntactic overhead.

C Until It Is No Longer C

Read on the website: Get horrified by how pretty I'm making my C code!

There Is No Such Thing As The Regex

Read on the website: Regular expressions seem to be quite coherent, right? This scary (.*[^}(]) symbol soup that only the select few can master. Except that there are at least half a dozen (slightly incompatible) varieties of this soup. Bon Appétit!

A's Commit Messages Guide: Location, Action, Rationale

Read on the website: Commit messages are the critical thing you stare at often enough. So better make them informational and readable.

I Am Not an AI—My Writing Is Terible

Read on the website: My writing is imperfect. "AI" could help. But, you know, I no longer want to hide myself. My terible writing is the only things that differentiates me from the sterile AI slop you find everywhere now.

Explaining Wisp Without Parentheses

Read on the website: Wisp is an indentation-sensitive syntax for Scheme. Its semantics are defined in terms of nested parentheses, though. But what if it was defined in other terms?

Disroot Custom Domain Email Gotcha: Do Not Change the Settings!

Read on the website: I'm a happy Disroot custom domain email user now! Here's a small tip that helped me set things up after linking.

I Want My Scrollbar Back (A 2-Minute Read)

Read on the website: The modern web is empowered by dynamic content loading. The modern reading is impoverished by it.

Prose vs. Tweet: How We Tell Stories

Read on the website: We always told stories. We always will. Though our stories fit into 140 chars now, which is both a blessing and a curse.

Making Sense of Lambda Calculus 3: Truth or Dare With Booleans

Read on the website: Booleans are simple and elegant in Lambda Calculus, but they take some getting used to. This post tries to explain LC booleans to at least myself.

Gemtext Is Not Accessible

Read on the website: Gemtext is a minimalist markup/hypertext format initially from Gemini network. It's intended to be a lightweight, easy to learn, and accessible language... But at least the latter is not true with the current state of things.

Common Lisp Is Not a Single Language, It Is Lots

Read on the website: Lisp is an ambiguous category. But Common Lisp isn't, right? It's a restricted self-sufficient language, after all.

Making Sense of Lambda Calculus 2: Numerous Quirks of Numbers

Read on the website: Lambda Calculus is extremely elegant, including in how it handles numbers. But this elegance often comes at the cost of understandability. This post goes through examples of arithmetics in Lambda Calculus to understand how they work.

Guile Optimization Gotchas: There Is No Free Beer, Only Cheap

Read on the website: Optimizing Guile Scheme is not always obvious. This post is a collection of takeaways from optimizing a heavily numeric piece of code.

Object-Oriented C: A Primer

Read on the website: One can go Object-Oriented in C, and do so with decent success. Although it's definitely not quite the popular version of OOP everyone is conditioned to.

Falsehoods Programmers Believe About HTML

Read on the website: There are many things programmers believe about HTML that are not necessarily true. Here're some.

Text UIs != Terminal UIs

Read on the website: TUI is an ambiguous term, meaning either of 'terminal' or 'text' user interface. The difference is even more pronounced now, with chat interfaces and assistive tech. So let's stop calling TUIs 'text' and call them 'terminal'—by their real name. Reserving 'text' for more appropriate conversational UIs.

Moving From Nyxt To Surf

Read on the website: I switched to Surf because of habit switch from distracted kitchen sinks to focused app-like web browsing.

Lisp Design Patterns

Read on the website: Lisp projects might be smaller and neater that other tech. But still, there are emergent patterns in any software. So here's an arbitrary list of design patterns I found in Lisp codebases.

Making Sense of Lambda Calculus 1: Ignorant, Lazy, and Greedy Evaluation

Read on the website: Lambda Calculus is a strong model for computation, but computing examples in it often feels off. In this post, I'm trying to understand how Lambda Calculus evaluation/reduction actually works.

What Writing 2K+ Lines of Brainfuck Taught Me

Read on the website: I am a Brainfuck programmer. I made some projects that caused me immence pai... joy. I learned something from these, and you can too!

Making Sense of Lambda Calculus 0: Abstration, Reduction, Substitution?

Read on the website: Lambda Calculus is a fascinating idea, but it's not immediately obvious. In this post, I'm trying to understand and explain the basic terms used in Lambda Calculus.

Regex Pronouns?

Read on the website: Pronouns are important. They are part of one's identity, after all. But what if one also identifies as a programmer? Regexes as pronoun listing!

I Generated This Post With C Preprocessor

Read on the website: Yes, you can use C preprocessor as a website generator.

Making C Code Prettier

Read on the website: C code might be ugly at times. But it can also be pretty! Here are some features and snippets with pretty C code.

Making C Code Uglier

Read on the website: C code is scary. It's often hard to read and has lots of footguns. But it can get even uglier than you imagine. Lo and behold!

Write Hypertext, not Plaintext

Read on the website: Living a plaintext-only life is tempting. But the further one goes with plaintext, the more they re-invent Markdown or HTML. Let's just give up and live hypertext life instead.

Digital Bum: Finding a Home/lessness on the Internet

Read on the website: Internet grew out of a non-commercial academic network with free resources for everyone. Can one get back to this dream of free Internet and build a lifestyle out of it?

This Post is Written in Lisp

Read on the website: This is probably some fanatic with weird AST magic, you say. But if this magic allows one writing with tab-completion, automatic HTML boilerplate, and other goodies—then why not try it? 😉

Designing for Exploitation: How Meta-Programming Leads to Safer Code

Read on the website: Security tip: You should use meta-programming abilities of your technology (I mostly mean programming languages there) as much as possible, and you should allow your users to program your program by exposing programming languages to them.

Tripod, the restrictively productive blog engine

Read on the website: Okay, so you want to have your blog backed by a good blog engine?

Welcome!

This is basically a welcoming note for you, whoever you are! It also serves the purpose of properly aligning XML tags, but hush...