New Declarative Website Menu with Invoker Commands and noscript Hacks!
Read on the website: I updated my website menu to be prettier on mobile, and I did not sacrifice accessibility and noJS folks! Go check it out and adopt it!
Artyom's, blog on programming, art, and research.
Read on the website: I updated my website menu to be prettier on mobile, and I did not sacrifice accessibility and noJS folks! Go check it out and adopt it!
Read on the website: I dedicated this July to not using my laptop (and definitely not watching YouTube!) It’s a tentative win!
Read on the website: I have decided to go low-tech with my life lately. Here’s the low-tech know-how I use.
Read on the website: So I was considering starting a wiki. But it seems there are some unsurmountable value mismatches with me and wikis. So here’s a small reflection piece engaging Wittgenstein, literary theory, and a straw man idea of wikis.
Read on the website: It turns out, Armenian has at least one stenography system. The one designed in 1888 by a monastic order from Venice! Althought it’s imperfect, it’s a nice historic rarity.
Read on the website: Internet learned to speak gibberish that doesn’t always coincide with literary text. But it can be converted back to that. Here’s my experiment along these lines.
Read on the website: We need resilient systems that fall back to sanity when broken / discriminating. And not whatever.
Read on the website: There’s a bunch of guiding principles I follow when blogging to ensure what I do is kind to others. Here are some.
Read on the website: GESS (ГЕСС) is a Soviet / Russian standard for stenography (fast handwriting.) I want to use it for both Russian and English. And I dare say it works!
Read on the website: Atlas Engineer was a perfect Open Source Lispy team to work in. I was not the best teammate, though. Here’s how it worked in Atlas and what I’m worried about lately.
Read on the website: Binary Lambda Calculus is a really alluring idea. But it’s also hard to grasp and use! Here’s my list of complaints and obstacles to using BLC.
Read on the website: Kaktovik numerals are a surprisingly good counting system. It allows many arithmetic operations to be done visually and effortlessly. Though it takes some getting used to. Thus this page!
Read on the its own page: We all love READMEs. We also love websites. Why not have both in one file?
Read on the website: Package-inferred systems follow a useful one-file-per-package convention structure. But package-inferred systems themselves are harmful and should not be used.
Read on the website: Markdown seems to have taken root. But it’s not really a good choice of markup language, because it’s incomplete, non-semantic, and tool-specific.
Read on the website: HTML is flexible and was shaped by generations of web practitioners. It has enough tricks up its sleeve to actually be nice to author. Here are some.
Read on the website: There are narrow screen CSS problems I often email people because of. These three fixes should be enough for most.
Read on the website: Boredom and idleness are a necessary part of life and censoring and ennervating over them is not fine. Embrace boredom!
Read on the website: This was a hard year, filled with Lisp hacking, ed(1) editing and meta-programming, escapist writing, and heavy feeling. A good K-pop soundtrack tho.
Read on the website: Submodules give you the flexibility to fetch the dependencies, or not. And they enable more granular reproducible builds. Use submodules!
Read on the website: The concept of text editing word is inflexible and outdated. We need better.
Read on the website: Ed is customizable, actually. It can have syntax highlighting, interactive commands, and build/REPL setup. Enter rlwrap.
Read on the website: There’s data encoding in Lambda Calculus. But there are also algorithms. Recursive, usually. So let’s look at how recursion works when all you have is lambdas.
Read on the website: ed(1) is a versatile programming system. Yet no one talks about metaprogramming and algorithms in it. Now someone did, and that’s me!
Read on the website: Not all environments have Lisp-aware structural editing. Some are only line-oriented. How does one go about editing Lisp line-by-line?
Read on the website: Threading macros make Lisp-family languages much more readable. Other languages too, potentially! Except… other languages don’t have macros. How do we go about enabling threading “macros” there?
Read on the website: Text is a universal medium. And yet we try to prevent users of our UIs from using it. Let’s not.
Read on the website: I am an ed(1) fan. Naturally, I have a lot of scripts and implementations handy. Here are some.
Read on the website: Lisp REPLs are a good tool, but some consider it too rigid. Which leads to abundance of proxy REPLs. Except… you don’t need them!
Read on the website: Just stop artificially restricting yourself to bad software.
Read on the website: Plaintext emails are slowly becoming an artifact of the past. Still, there’s a lot interesting things about plaintext emails. Including... plaintext-only formatting!
Read on the website: Being stupid is a stigma. But it's also a way of doing my job well or destroying the system the job perpetuates. Come be stupid with me!
Read on the website: Logical pathnames are both a useful and obscure feature of Common Lisp. Here I’m trying to figure them out.
Read on the website: We keep losing context and computation when running programs. But we don't have to. Let’s see how this lost compute can be avoided.
Read on the website: Algorithms are all the rage in tech. And yet, they are useless unless you use them as black boxes. Better disseminate explanations—they are much more understandable and reproducible.
Read on the website: Any programming system needs a ways to aggregate values. Be it with structures, arrays, or closures. Lambda Calculus has these ways, so let's see what's there.
Read on the website: As GUI complexity grows, transparency plummets. Any way to fix that?
Read on the website: Designing programming languages is hard. But does it have to be this way?
Read on the website: Embrace ugly code. Maintain ugly code. Write ugly code.
Read on the website: Tarot is nice. It's showing us some archetypes and allowing to create stories. But are these stories as diverse as we are? No, and here're some simple NLP approaches to learning why.
Read on the website: LLMs and Vibe Coding are there. But why? Because our tech is not that advanced and we're disempowered by it. Make tech not suck, and you'll need no LLMs.
Read on the website: Lambda Calculus is a simple computation model that's easy to port to any language with functions. Probably? Hopefully? Actually, there are some problems when mapping from LC to programming. Here are some, with ways to cope.
Read on the website: With great generic functions comes great responsibility of making them readable and maintainable.
Read on the website: or just use CSS lol. Slides for the seminar I gave at work regarding modern CSS niceties. Deprecating a whole class of "modern" front-end practices/technologies.
Read on the website: I hate JS. (No, not really.) I don't want to have even a line of JS on my webite. Especially for something as simple as syntax highlighting. I should be able to do that with some CSS and minor preprocessing, right?
Read on the website: Tarot is a nice thing, but most websites about it are a pain to use. So I made my own, in HTML 3.2!
Read on the website: Indentation styles are a hot topic in every language. So let's see how Lisps do indentation!
Read on the website: ed is too simple to be customizable, right? Maybe it is not customizable, but the environment around it is!
Read on the website: Moving from Gitlab Pages to Codeberg Pages. There are some difficulties, but nothing impossible. Here's what I did.
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.