<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Boris Orekhov</title>
    <description>The latest articles on DEV Community by Boris Orekhov (@nevmenandr).</description>
    <link>https://dev.to/nevmenandr</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1744598%2F40e52e7d-6806-4001-a9a4-bcc194def0d3.jpg</url>
      <title>DEV Community: Boris Orekhov</title>
      <link>https://dev.to/nevmenandr</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/nevmenandr"/>
    <language>en</language>
    <item>
      <title>Chess &amp; Computer Tech Today – A Programmer’s Take</title>
      <dc:creator>Boris Orekhov</dc:creator>
      <pubDate>Mon, 27 Jul 2026 05:25:00 +0000</pubDate>
      <link>https://dev.to/nevmenandr/chess-computer-tech-today-a-programmers-take-2338</link>
      <guid>https://dev.to/nevmenandr/chess-computer-tech-today-a-programmers-take-2338</guid>
      <description>&lt;h2&gt;
  
  
  Chess &amp;amp; Computer Tech Today – A Programmer’s Take
&lt;/h2&gt;

&lt;p&gt;Remember when beating a human at chess was the holy grail of AI? In 1972, it was literally &lt;em&gt;the&lt;/em&gt; benchmark. Fast forward to today: a random office desktop crushes any grandmaster. Game over? Not even close.&lt;/p&gt;

&lt;p&gt;Chess didn’t die – it went full cyberpunk. And as a programmer who barely knows a fork from a fianchetto (my Lichess rating is ~800), I’ve become obsessed with how code reshaped this ancient game. Here’s what every dev should care about.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Analysis engines – the real MVP
&lt;/h3&gt;

&lt;p&gt;Every chess move today gets instantly judged by an engine. That little “thermometer” on stream? It’s a live eval bar. One blunder, and the score tanks from +2 to -3 – you &lt;em&gt;feel&lt;/em&gt; the drama.&lt;/p&gt;

&lt;p&gt;But here’s the fun part for us: I built &lt;strong&gt;vector models of chess games&lt;/strong&gt; using word2vec. Treating moves like words in a sentence. Preprint here: &lt;a href="https://arxiv.org/abs/2407.19600" rel="noopener noreferrer"&gt;arxiv.org/abs/2407.19600&lt;/a&gt;. Turns out, chess positions embed nicely into vector space. Who knew?&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Cheating – from SMS to… sex toys?
&lt;/h3&gt;

&lt;p&gt;Cheating in chess is not like doping. A single engine move at the right moment = game over. So offline tournaments scan players like airport security.&lt;/p&gt;

&lt;p&gt;But the real WTF moment: during the 2022 Carlsen–Niemann scandal, Elon Musk suggested Niemann might have received moves via a &lt;strong&gt;remote-controlled vibrating sex toy&lt;/strong&gt; hidden inside his body. Yes, seriously.&lt;/p&gt;

&lt;p&gt;And how would you encode a chess move without Bluetooth? French team at 2010 Olympiad used SMS + captain standing near imaginary chessboard squares. Programmers, think about it: you could encode a move with just 2 vibrations (source square, target square). Someone even wrote Python demo for that.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Online chess – pre-moves, flag-hunting, and lag
&lt;/h3&gt;

&lt;p&gt;Online blitz (3+0, 3+1) is a different beast. &lt;strong&gt;Premoves&lt;/strong&gt; let you queue your next move while opponent thinks. Click, and it executes instantly when their move arrives. No physical clock button. No “oops I dropped the knight”.&lt;/p&gt;

&lt;p&gt;But then you get &lt;strong&gt;flag-hunting&lt;/strong&gt; – players in losing positions spam premoves hoping the winner runs out of time. Old-school champ Kramnik calls it unethical. New generation says “it’s in the rules”.&lt;/p&gt;

&lt;p&gt;The ultimate test? A 2024 match between Kramnik (legend, hates flag-hunting) and Jospem (online phenom, suspected cheater). Half the games OTB, half online, same room back-to-back. Result: inconclusive. But the drama? Chef’s kiss. Also, organizers printed fresh laptops – Windows updates caused lag &lt;em&gt;only for one player&lt;/em&gt;. Conspiracy? Probably just Windows.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why it matters for devs
&lt;/h3&gt;

&lt;p&gt;Chess is no longer about “intelligence”. It’s about psychology, emotion, and… code. We built machines that play perfect chess, then humans kept playing anyway. Now we’re debating: does a premove change the nature of the game? Is online chess “real” chess? Can we detect cheaters from move statistics?&lt;/p&gt;

&lt;p&gt;These are &lt;em&gt;our&lt;/em&gt; questions – systems design, anomaly detection, real-time constraints, UI/UX of time controls.&lt;/p&gt;

&lt;p&gt;And the best part? No definitive answers. Just like software engineering.&lt;/p&gt;

</description>
      <category>chess</category>
      <category>ai</category>
      <category>programming</category>
      <category>game</category>
    </item>
    <item>
      <title>Combinatorics of Beads</title>
      <dc:creator>Boris Orekhov</dc:creator>
      <pubDate>Fri, 17 Jul 2026 05:10:00 +0000</pubDate>
      <link>https://dev.to/nevmenandr/combinatorics-of-beads-38j3</link>
      <guid>https://dev.to/nevmenandr/combinatorics-of-beads-38j3</guid>
      <description>&lt;h2&gt;
  
  
  🧩 Combinatorics of Beads: When Tang Poetry Meets Chess in Python
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;What if you could shuffle classical Chinese verses using chess moves — and get weird, wonderful new poetry?&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If you’ve ever read Hermann Hesse’s &lt;em&gt;The Glass Bead Game&lt;/em&gt;, you know the feeling: a mysterious, intellectual game where players combine symbols from music, math, art, and literature to create beautiful, useless patterns. Hesse never explained the rules. He wanted every reader to invent their own.&lt;/p&gt;

&lt;p&gt;So I did. &lt;strong&gt;With Python.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Meet &lt;strong&gt;Chess Bead Game&lt;/strong&gt; – a small Python package that lets Tang dynasty poems (8 lines × 7 characters + punctuation = 8×8 grid) play a game of chess against themselves. Each character is a square. Every move swaps two characters. After 40 moves, the poem becomes… something else.&lt;/p&gt;

&lt;p&gt;And something surprisingly poetic.&lt;/p&gt;




&lt;h2&gt;
  
  
  🎯 The Rules (such as they are)
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Take a classical Chinese poem&lt;/strong&gt; from the Tang era (7 characters per line, 8 lines → 8×8 board).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Load a real chess game&lt;/strong&gt; from a PGN file.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;For each move:&lt;/strong&gt; swap the characters on the &lt;em&gt;from&lt;/em&gt; and &lt;em&gt;to&lt;/em&gt; squares.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Watch the original text mutate&lt;/strong&gt; – step by step, move by move.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No practical purpose whatsoever.&lt;/strong&gt; ✔️&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That’s it. Pure, useless, beautiful combinatorial art.&lt;/p&gt;




&lt;h2&gt;
  
  
  🐍 Show Me the Code
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;chess_bead&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;cb&lt;/span&gt;

&lt;span class="n"&gt;game&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;cb&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Game&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;           &lt;span class="c1"&gt;# loads a random poem + a random chess game
&lt;/span&gt;&lt;span class="n"&gt;verses&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;game&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;start_game&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="c1"&gt;# run all moves
&lt;/span&gt;
&lt;span class="n"&gt;viz&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;cb&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Viz&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;verses&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;game&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;author&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;game&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;title&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;viz&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;gif&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;                  &lt;span class="c1"&gt;# creates an animation of the whole transformation
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That’s literally it. Two lines to shuffle an 8th‑century poem using a Kasparov‑vs‑Topalov knight sacrifice.&lt;/p&gt;




&lt;h2&gt;
  
  
  📜 Before &amp;amp; After (with Machine Translation)
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Original poem&lt;/strong&gt; (anonymous Tang style):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;新婦去年胼手足，
衣不暇縫蠶廢簇。
白頭使我憂家事，
還如夜裏燒殘燭。
當初為取傍人語，
豈道如今自辛苦。
在時縱嫌織絹遲，
有絲不上鄰家機。
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Translation (DeepL):&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;em&gt;Last year the bride’s hands and feet were calloused,&lt;br&gt;
No time to sew, silkworms abandoned in their frames.&lt;br&gt;
White hair makes me worry about family matters,&lt;br&gt;
Like a candle burning low in the night.&lt;br&gt;
At first I listened to other people’s gossip,&lt;br&gt;
How could I know I’d suffer so myself?&lt;br&gt;
Back then I complained that weaving silk was too slow,&lt;br&gt;
But now I have silk – yet won’t use the neighbor’s loom.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;After 10 chess moves&lt;/strong&gt; – same characters, completely new order:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;新裏去年胼手家，
衣不暇婦憂廢簇。
白頭使我蠶足事，
還如夜織燒殘不。
當初為嫌絲人語，
豈道縫今自辛苦。
在時縱取傍絹遲，
有如燭上鄰家機。
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;New translation:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;em&gt;Last year in the inner chamber, calloused hands stayed home,&lt;br&gt;
No time for the woman – worries over wasted silk frames.&lt;br&gt;
White hair makes me busy with silkworm matters,&lt;br&gt;
Yet like weaving at night, burning the candle but not quite.&lt;br&gt;
At first I disliked the gossiping people,&lt;br&gt;
How did I know the seams would now be stiff with toil?&lt;br&gt;
Back then I freely took the silk, but too slow,&lt;br&gt;
It's like a candle on the neighbor's loom.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The two versions enter a dialogue. The banal candle becomes surreal. Helplessness turns into defiant.&lt;/p&gt;




&lt;h2&gt;
  
  
  ♟️ Why Programmers Will Love This
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;It’s completely useless&lt;/strong&gt; – perfect for a side project.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Combinatorial explosion&lt;/strong&gt; – 64! possible permutations, but constrained by chess move legality.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data mashing&lt;/strong&gt; – poetry × chess × machine translation × animation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Plug‑and‑play architecture&lt;/strong&gt; – easily extend to other text grids (Latin hexameters? Haiku? ASCII art?).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Python package on PyPI&lt;/strong&gt; – &lt;code&gt;pip install chess_bead&lt;/code&gt; and you’re ready.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The package already includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A small corpus of Tang‑style 8×8 poems.&lt;/li&gt;
&lt;li&gt;PGN parser for real chess games.&lt;/li&gt;
&lt;li&gt;GIF generator (shows each move as a frame).&lt;/li&gt;
&lt;li&gt;DeepL integration? No, but you can pipe the output yourself.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🧠 The Bigger Picture
&lt;/h2&gt;

&lt;p&gt;Hesse dreamed of a game that weaves together mathematics, music, astronomy, Greek, Latin, and Chinese wisdom. This is one tiny step: &lt;strong&gt;chess (rules) + Chinese poetry (data) + randomness (deterministic but emergent).&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The next steps? Add mathematical sequences, musical notation, ancient Greek fragments, maybe a SPARQL endpoint to Wikidata. Imagine a game where a Beethoven motif, a line from Ovid, and a tangram shape swap places according to chess rules.&lt;/p&gt;

&lt;p&gt;Yes, it’s absurd.&lt;br&gt;&lt;br&gt;
Yes, it’s beautiful.&lt;br&gt;&lt;br&gt;
Yes, I want to see the &lt;a href="https://chess-bead.readthedocs.io/en/latest/_images/game.gif" rel="noopener noreferrer"&gt;GIF&lt;/a&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  📦 Get It / Try It
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;PyPI: &lt;a href="https://pypi.org/project/chess_bead/" rel="noopener noreferrer"&gt;&lt;code&gt;chess_bead&lt;/code&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Docs: &lt;a href="https://chess-bead.readthedocs.io/" rel="noopener noreferrer"&gt;chess-bead.readthedocs.io&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/nevmenandr/chess_bead" rel="noopener noreferrer"&gt;github.com/nevmenandr/chess_bead&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;chess_bead
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then run the 3‑line script above and watch poetry disintegrate into art.&lt;/p&gt;




&lt;h2&gt;
  
  
  🎼 “Let it resound in our games, in our whole life, in everything we create and endure!”
&lt;/h2&gt;

&lt;p&gt;― Hermann Hesse (paraphrased)&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Inspired by Alexander Genis’s confession: “In *The Glass Bead Game&lt;/em&gt;, I was only interested in the game itself. Everything else – just because.”*&lt;/p&gt;

</description>
      <category>python</category>
      <category>chess</category>
      <category>game</category>
      <category>coding</category>
    </item>
    <item>
      <title>When Code Speaks Latin and Acts Like Shakespeare</title>
      <dc:creator>Boris Orekhov</dc:creator>
      <pubDate>Tue, 07 Jul 2026 05:02:00 +0000</pubDate>
      <link>https://dev.to/nevmenandr/when-code-speaks-latin-and-acts-like-shakespeare-1c85</link>
      <guid>https://dev.to/nevmenandr/when-code-speaks-latin-and-acts-like-shakespeare-1c85</guid>
      <description>&lt;h2&gt;
  
  
  When Code Speaks Latin and Acts Like Shakespeare Or why programmers secretly love useless beauty
&lt;/h2&gt;

&lt;p&gt;You’d think poetry and programming are light-years apart. They aren’t. Their intersection is the charming, useless zone where engineers become artists.&lt;/p&gt;

&lt;h3&gt;
  
  
  🧠 Natural languages vs. code
&lt;/h3&gt;

&lt;p&gt;Linguistics isn’t pure humanities — it’s closer to biology. But programming languages have words, syntax, and expressiveness. Just like in human speech, you can say anything in any programming language. The difference? How many lines you write and how much cruft the CPU swallows.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Latin lets you say “the generation that will beget even worse” in one tight phrase. Russian? Awkward illiteracy. Same in code: Python is concise but hides massive overhead. Assembly is verbose but brutally efficient.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  🔁 The assignment quirk
&lt;/h3&gt;

&lt;p&gt;Most languages write &lt;code&gt;x = 5&lt;/code&gt; (right to left).&lt;br&gt;&lt;br&gt;
R flips it: &lt;code&gt;5 -&amp;gt; x&lt;/code&gt;.&lt;br&gt;&lt;br&gt;
It’s a tiny rebellion against how we think.&lt;/p&gt;

&lt;h3&gt;
  
  
  📜 Poetry in binary?
&lt;/h3&gt;

&lt;p&gt;Victor Pelevin once joked about writing poems in assembly — “fewer rhyming problems in binary.” A wink at the myth that poetry needs rhymes. (It doesn’t. Ask the Japanese or ancient Greeks.)&lt;/p&gt;

&lt;h3&gt;
  
  
  🎭 Esoteric languages: beauty without utility
&lt;/h3&gt;

&lt;p&gt;These are languages built &lt;em&gt;not&lt;/em&gt; to solve problems, but to amuse, provoke, and confuse.&lt;/p&gt;

&lt;h4&gt;
  
  
  1. &lt;strong&gt;Perligata&lt;/strong&gt; — code in Latin
&lt;/h4&gt;

&lt;p&gt;No fixed word order. Declensions do the work.&lt;br&gt;&lt;br&gt;
&lt;code&gt;nexto stringum reperimentum da&lt;/code&gt; = assign to &lt;code&gt;$next&lt;/code&gt; the position in a string.&lt;br&gt;&lt;br&gt;
Free order, just like Latin poetry. The creator: &lt;em&gt;“If you ask ‘Why?’ – the answer won’t make sense anyway.”&lt;/em&gt;&lt;br&gt;&lt;br&gt;
Pure humanities fuel.&lt;/p&gt;

&lt;h4&gt;
  
  
  2. &lt;strong&gt;Shakespeare&lt;/strong&gt; — programs as Elizabethan plays
&lt;/h4&gt;

&lt;p&gt;Variables are characters (Romeo, Juliet).&lt;br&gt;&lt;br&gt;
Logic is hidden in dialogue: “Thou art as villainous as the square root of Romeo!”&lt;br&gt;&lt;br&gt;
It can only add, subtract, and print. But it &lt;em&gt;looks&lt;/em&gt; like a postmodern play.&lt;/p&gt;

&lt;h3&gt;
  
  
  💡 Why this matters for devs
&lt;/h3&gt;

&lt;p&gt;Because not every line of code needs to ship to production. Sometimes you write for the weird joy of it. These languages remind us that programming is also a form of expression — absurd, beautiful, and deeply human.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“If you have to ask ‘Why?’, then the answer probably won’t make any sense to you either.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;&lt;strong&gt;Enjoyed this?&lt;/strong&gt; Share with a colleague who secretly writes poetry in their comments. Or someone who still thinks Latin is useless. 😉&lt;/p&gt;

</description>
      <category>esoteric</category>
      <category>programming</category>
      <category>poetry</category>
    </item>
    <item>
      <title>A Skeptical Review of Critical Code Studies</title>
      <dc:creator>Boris Orekhov</dc:creator>
      <pubDate>Sat, 27 Jun 2026 04:45:00 +0000</pubDate>
      <link>https://dev.to/nevmenandr/a-skeptical-review-of-critical-code-studies-2lne</link>
      <guid>https://dev.to/nevmenandr/a-skeptical-review-of-critical-code-studies-2lne</guid>
      <description>&lt;h2&gt;
  
  
  Is Code Really a “Social Text”? A Skeptical Review of &lt;em&gt;Critical Code Studies&lt;/em&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; A sharp academic review takes aim at Mark C. Marino’s &lt;em&gt;Critical Code Studies&lt;/em&gt; (MIT Press, 2020). The verdict? Lots of hype, some interesting cases, but little real code analysis. If you’re a programmer who rolls your eyes at postmodern buzzwords, this one’s for you.&lt;/p&gt;




&lt;h3&gt;
  
  
  📖 The Book in a Nutshell
&lt;/h3&gt;

&lt;p&gt;Marino argues that code has escaped the programmer’s dungeon and entered mainstream culture. Code is no longer just a tool – it’s a &lt;strong&gt;social text&lt;/strong&gt; whose meaning changes with every new reader (lawyers, poets, activists, etc.). The book promises a literary‑style reading of software, drawing on postcolonial, feminist, and queer theory.&lt;/p&gt;

&lt;h3&gt;
  
  
  🔍 What the Review Says (Boris Orekhov, &lt;em&gt;Digital Humanities&lt;/em&gt;, 2026)
&lt;/h3&gt;

&lt;p&gt;Me, Boris Orekhov - a digital humanities scholar - is &lt;strong&gt;not impressed&lt;/strong&gt;. My main gripes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Overblown claims&lt;/strong&gt; – “Audience of code has exploded!” Really? When was the last time a climate change debate hinged on reading source code? I call it cherry‑picking.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Case‑dropping, not analysis&lt;/strong&gt; – We get anecdotes: a protest sign in C, a feminist PHP app, the Transborder Immigrant Tool. But actual &lt;strong&gt;code examination&lt;/strong&gt; is superficial. A license phrase (“no warranties”) is noted as tragicomic – that’s about it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Lost the plot&lt;/strong&gt; – Marino sets up a story about two programmers competing for a job, then… never finishes it. This happens every 10‑15 pages.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Postmodern catechism&lt;/strong&gt; – The book wears its ideology on its sleeve (postcolonial, queer, feminist). Fine, but it substitutes slogans for rational argument. Systematic methodology? Nowhere.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Missing prior work&lt;/strong&gt; – My own 2015 &lt;a href="https://dev.to/nevmenandr/poetry-in-code-3iak"&gt;paper&lt;/a&gt; on code as poetry, and Black’s 2015 Mozilla history (which &lt;em&gt;does&lt;/em&gt; a real textual analysis), are ignored.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🤖 The Elephant in the Room: LLMs
&lt;/h3&gt;

&lt;p&gt;The book was written when only &lt;strong&gt;humans&lt;/strong&gt; wrote code. Now LLMs generate code without intention or social context. That guts Marino’s entire framework of authorial social meaning.&lt;/p&gt;

&lt;h3&gt;
  
  
  🎯 Final Verdict
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“This book is less a scientific study and more a cabinet of curiosities – or a postmodern art exhibit catalog dressed as a monograph.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It might find its audience, but don’t expect a toolkit for actually reading code.&lt;/p&gt;




&lt;h2&gt;
  
  
  👩‍💻 Why Should Programmers Care?
&lt;/h2&gt;

&lt;p&gt;Because the gap between &lt;strong&gt;how we write code&lt;/strong&gt; and &lt;strong&gt;how humanities scholars talk about it&lt;/strong&gt; is huge. This review gives you an honest, critical look at one of the most hyped books in “software studies.” You’ll learn:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Why calling code a “text” is both obvious and misleading
&lt;/li&gt;
&lt;li&gt;Why social‑justice lenses often skip the actual &lt;code&gt;for&lt;/code&gt; loops
&lt;/li&gt;
&lt;li&gt;What happens when ideology meets semicolons
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And you’ll get a good laugh at academic overreach.&lt;/p&gt;




&lt;h2&gt;
  
  
  📄 Read the Full Review (PDF)
&lt;/h2&gt;

&lt;p&gt;👉 &lt;a href="https://nevmenandr.github.io/portfolio/assets/pdf/critical-code-studies.pdf" rel="noopener noreferrer"&gt;Critical Code Studies review – Orekhov 2026&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  📚 Cite the Original Review
&lt;/h2&gt;

&lt;h3&gt;
  
  
  APA
&lt;/h3&gt;

&lt;p&gt;Orekhov, B. (2026). Рецензия на книгу Марка К. Марино «Критические исследования кода» [Review of &lt;em&gt;Critical Code Studies&lt;/em&gt;, by M. C. Marino]. &lt;em&gt;Цифровые гуманитарные исследования&lt;/em&gt;, (1), 114–121. &lt;a href="https://doi.org/10.31860/cgi-2026-1-114-121" rel="noopener noreferrer"&gt;https://doi.org/10.31860/cgi-2026-1-114-121&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  MLA
&lt;/h3&gt;

&lt;p&gt;Orekhov, Boris. “Рецензия на книгу Марка К. Марино «Критические исследования кода».” Review of &lt;em&gt;Critical Code Studies&lt;/em&gt;, by Mark C. Marino. &lt;em&gt;Цифровые гуманитарные исследования&lt;/em&gt;, no. 1, 2026, pp. 114–121. DOI: 10.31860/cgi-2026-1-114-121.&lt;/p&gt;

&lt;h3&gt;
  
  
  Chicago
&lt;/h3&gt;

&lt;p&gt;Orekhov, Boris. “Рецензия на книгу Марка К. Марино «Критические исследования кода».” Review of &lt;em&gt;Critical Code Studies&lt;/em&gt;, by Mark C. Marino. &lt;em&gt;Цифровые гуманитарные исследования&lt;/em&gt; 1 (2026): 114–121. &lt;a href="https://doi.org/10.31860/cgi-2026-1-114-121" rel="noopener noreferrer"&gt;https://doi.org/10.31860/cgi-2026-1-114-121&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  BibTeX
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight bibtex"&gt;&lt;code&gt;&lt;span class="nc"&gt;@review&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;Orekhov2026code&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;title&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{Рецензия на книгу Марка К. Марино «Критические исследования кода»}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;author&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{Орехов, Борис}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;year&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{2026}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;doi&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{10.31860/cgi-2026-1-114-121}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;journal&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{Цифровые гуманитарные исследования}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;number&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{1}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;pages&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{114--121}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  💬 Let’s Discuss
&lt;/h2&gt;

&lt;p&gt;Have you read &lt;em&gt;Critical Code Studies&lt;/em&gt;? Do you think code has a “social life” beyond its function? Drop your take in the comments – and share this post if you want more honest, no‑BS book reviews for devs.&lt;/p&gt;

&lt;h1&gt;
  
  
  CriticalCodeStudies #BookReview #SoftwareStudies #Programming #DigitalHumanities
&lt;/h1&gt;

</description>
      <category>bookreview</category>
      <category>softwarestudies</category>
      <category>programming</category>
      <category>digitalhumanities</category>
    </item>
    <item>
      <title>Poetry in Code</title>
      <dc:creator>Boris Orekhov</dc:creator>
      <pubDate>Wed, 17 Jun 2026 04:08:00 +0000</pubDate>
      <link>https://dev.to/nevmenandr/poetry-in-code-3iak</link>
      <guid>https://dev.to/nevmenandr/poetry-in-code-3iak</guid>
      <description>&lt;h2&gt;
  
  
  Poetry in Code: When Code Becomes Poetry
&lt;/h2&gt;

&lt;p&gt;Have you ever written poetry in Java? Or C++? It turns out there’s a whole genre at the intersection of programming and poetry — &lt;strong&gt;code poetry&lt;/strong&gt;. Not just poems &lt;em&gt;about&lt;/em&gt; computers or programmers, but actual executable programs that are also poetic texts.&lt;/p&gt;

&lt;p&gt;Ten years ago I published a &lt;a href="https://scholar.google.com/scholar?cluster=12660271881389408371&amp;amp;hl=ru&amp;amp;as_sdt=0,5" rel="noopener noreferrer"&gt;paper&lt;/a&gt; proposing a method for analysing such works. Here are the key ideas — I think the dev.to community will find them interesting.&lt;/p&gt;




&lt;h2&gt;
  
  
  What is it?
&lt;/h2&gt;

&lt;p&gt;Imagine writing code in Java, Python, or even CSS — it runs and works. But at the same time, the source code itself reads like a poem: rhythm, metre, imagery.&lt;/p&gt;

&lt;p&gt;Here’s an &lt;a href="https://habr.com/ru/articles/186044/" rel="noopener noreferrer"&gt;example&lt;/a&gt; from Habr (2013):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;newGame&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="n"&gt;resources&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;free&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;

&lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;FILENAME&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

&lt;span class="n"&gt;setLocation&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt; &lt;span class="n"&gt;load&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;

&lt;span class="n"&gt;loadDialog&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;process&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;

&lt;span class="k"&gt;try&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt; &lt;span class="n"&gt;setGamerColor&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="no"&gt;RED&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt; &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="k"&gt;catch&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;Exception&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt; &lt;span class="n"&gt;reset&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt; &lt;span class="o"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;notReady&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt; &lt;span class="n"&gt;object&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;make&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;
  &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;resourceNotFound&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="k"&gt;break&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt; &lt;span class="o"&gt;}&lt;/span&gt;

&lt;span class="kt"&gt;byte&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// change to int!&lt;/span&gt;

&lt;span class="n"&gt;music&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;

&lt;span class="nc"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;out&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;print&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s"&gt;""&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This Java code can be compiled and executed. And when read aloud, it follows a strict &lt;strong&gt;trochaic tetrameter&lt;/strong&gt;. The author deliberately arranged the accents so that the rhythm aligns with the poetic metre.&lt;/p&gt;




&lt;h2&gt;
  
  
  How to classify such works?
&lt;/h2&gt;

&lt;p&gt;In the paper I proposed three main analytical criteria:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Programming language choice
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;High‑level languages&lt;/strong&gt; (Python, PHP, Perl) — closer to humans, accessible to a wider audience.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Low‑level languages&lt;/strong&gt; (assembly) — elitist, requiring deep expertise.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dead languages&lt;/strong&gt; (Pascal, Cobol) — like Latin poetry, archaic.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example from a Stanford poetry slam (C++):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;For_every&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="nl"&gt;public:&lt;/span&gt;
  &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="n"&gt;ngular&lt;/span&gt;&lt;span class="p"&gt;(){&lt;/span&gt;&lt;span class="n"&gt;cout&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;endl&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="s"&gt;"I"&lt;/span&gt;&lt;span class="p"&gt;;};&lt;/span&gt;
  &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;que&lt;/span&gt;&lt;span class="p"&gt;(){&lt;/span&gt;&lt;span class="n"&gt;cout&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="s"&gt;"f"&lt;/span&gt;&lt;span class="p"&gt;;};&lt;/span&gt;
  &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;ng&lt;/span&gt;&lt;span class="p"&gt;(){&lt;/span&gt;&lt;span class="n"&gt;cout&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class="s"&gt;"w"&lt;/span&gt;&lt;span class="p"&gt;;};&lt;/span&gt;
  &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;ghting&lt;/span&gt;&lt;span class="p"&gt;(){&lt;/span&gt;&lt;span class="n"&gt;cout&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="s"&gt;"d"&lt;/span&gt;&lt;span class="p"&gt;;};&lt;/span&gt;
  &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;ving&lt;/span&gt;&lt;span class="p"&gt;(){&lt;/span&gt;&lt;span class="n"&gt;cout&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="s"&gt;"e"&lt;/span&gt;&lt;span class="p"&gt;;};&lt;/span&gt;
  &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;on&lt;/span&gt;&lt;span class="p"&gt;(){&lt;/span&gt;&lt;span class="n"&gt;cout&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="s"&gt;" n"&lt;/span&gt;&lt;span class="p"&gt;;};&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="n"&gt;For_every&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ngular&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;quet&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ng&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
  &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ving&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ghting&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
  &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;vidual&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;on&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Thanks to variable names (&lt;code&gt;i&lt;/code&gt;, &lt;code&gt;us&lt;/code&gt;) and method names, the sequence produces a phrase: &lt;em&gt;"I fought we will surely seperately"&lt;/em&gt; — the theme of “I vs. we”.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Functional load
&lt;/h3&gt;

&lt;p&gt;What does the program do? Even if pragmatically “useless”, the program’s intended behaviour matters.&lt;/p&gt;

&lt;p&gt;Example: an infinite loop in C as a metaphor for addiction:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;addiction&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;mind&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;true&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;mind&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;mind&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;mind&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;break&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;An infinite loop is usually considered a bug, but here it becomes an artistic device.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Dependence on natural language
&lt;/h3&gt;

&lt;p&gt;Can code poetry avoid relying on English? That’s the holy grail. Most authors use English words as variable names — e.g., an SQL query:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;INSERT&lt;/span&gt; &lt;span class="err"&gt;‘&lt;/span&gt;&lt;span class="n"&gt;your&lt;/span&gt; &lt;span class="n"&gt;hand&lt;/span&gt;&lt;span class="err"&gt;’&lt;/span&gt; &lt;span class="k"&gt;INTO&lt;/span&gt; &lt;span class="err"&gt;‘&lt;/span&gt;&lt;span class="n"&gt;mine&lt;/span&gt;&lt;span class="err"&gt;’&lt;/span&gt;
&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="err"&gt;‘&lt;/span&gt;&lt;span class="n"&gt;restaurant&lt;/span&gt;&lt;span class="err"&gt;’&lt;/span&gt; &lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="err"&gt;‘&lt;/span&gt;&lt;span class="n"&gt;nearby&lt;/span&gt;&lt;span class="err"&gt;’&lt;/span&gt;
&lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="err"&gt;‘&lt;/span&gt;&lt;span class="n"&gt;you&lt;/span&gt; &lt;span class="n"&gt;would&lt;/span&gt;&lt;span class="err"&gt;’&lt;/span&gt; &lt;span class="k"&gt;LIKE&lt;/span&gt; &lt;span class="err"&gt;‘&lt;/span&gt;&lt;span class="k"&gt;to&lt;/span&gt; &lt;span class="nb"&gt;date&lt;/span&gt;&lt;span class="err"&gt;’&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is essentially English wrapped in SQL syntax. But if one could express meaning purely through the programming language itself (without borrowed natural language) — that would be a new art form, understandable to any developer regardless of their mother tongue.&lt;/p&gt;




&lt;h2&gt;
  
  
  Not just “normal” languages
&lt;/h2&gt;

&lt;p&gt;At the &lt;strong&gt;Code Poetry Slam&lt;/strong&gt; (Stanford, 2013–2015), even non‑Turing‑complete languages like CSS or lists of HTTP status codes are accepted.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;201 created
200 OK
100 continue
303 see other
302 found
409 conflict
403 forbidden
520 origin error
...
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;These are Apache web server response codes. But arranged like this, they evoke a lyrical mood — reminiscent of human life with its errors, redirects, and successes.&lt;/p&gt;

&lt;p&gt;Or CSS:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.ocean&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;cornflowerblue&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;pitch&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;high&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;overflow&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;visible&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nc"&gt;.boat&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;firebrick&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;transform&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;rotate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;94deg&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="nl"&gt;float&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;none&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nc"&gt;.rescue-team&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;visibility&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;visible&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That’s already a narrative about a capsized boat and a rescue team.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flbauzlzgq8oehzjnyf5t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flbauzlzgq8oehzjnyf5t.png" alt="Poetry in Code" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What’s next?
&lt;/h2&gt;

&lt;p&gt;I think this practice is more than a hype. Behind it are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;therapeutic relief (programmers unwind through creativity);&lt;/li&gt;
&lt;li&gt;carnivalisation of professional language;&lt;/li&gt;
&lt;li&gt;the search for new expressive means.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Of course, when the element of contrast wears off, the wave may subside. But for now, such texts keep appearing, and a subculture has already formed around them. Over time, researchers will amass a whole corpus of “poetic programs”.&lt;/p&gt;




&lt;h2&gt;
  
  
  Link to the full paper
&lt;/h2&gt;

&lt;p&gt;If you want to dive deeper, here’s the PDF (in Russian, but with an English abstract and plenty of code examples):&lt;/p&gt;

&lt;p&gt;🔗 &lt;a href="https://nevmenandr.github.io/portfolio/assets/pdf/21.pdf" rel="noopener noreferrer"&gt;https://nevmenandr.github.io/portfolio/assets/pdf/21.pdf&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;APA citation:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Orekhov, B. (2016). Stikhi v programmnom kode: sovremennyy opyt i metodika analiza [Poetry in program code: Contemporary experience and analysis methods]. &lt;em&gt;Kritika i Semiotika&lt;/em&gt;, (2), 94–101. &lt;a href="https://nevmenandr.github.io/portfolio/assets/pdf/21.pdf" rel="noopener noreferrer"&gt;https://nevmenandr.github.io/portfolio/assets/pdf/21.pdf&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;BibTeX citation:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight bibtex"&gt;&lt;code&gt;&lt;span class="nc"&gt;@article&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;Orekhov2015programmpoetry&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;title&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{Стихи в программном коде: современный опыт и методика анализа}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;author&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{Орехов, Борис}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;year&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{2016}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;journal&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{Критика и семиотика}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;number&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{2}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;pages&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{94--101}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;issn&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{2307-1737}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;keywords&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;{poetry discourse, poetic text analysis, programming languages}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;p&gt;Let me know in the comments — have you ever tried writing “code poetry”? Or do you know other examples? 👨‍💻📜&lt;/p&gt;

</description>
      <category>poetry</category>
      <category>programminglanguages</category>
      <category>code</category>
    </item>
    <item>
      <title>Verse Markup Language (VML)</title>
      <dc:creator>Boris Orekhov</dc:creator>
      <pubDate>Sun, 07 Jun 2026 04:02:53 +0000</pubDate>
      <link>https://dev.to/nevmenandr/verse-markup-language-vml-37o4</link>
      <guid>https://dev.to/nevmenandr/verse-markup-language-vml-37o4</guid>
      <description>&lt;h2&gt;
  
  
  Verse Markup Language (VML): When Poetry Meets Code
&lt;/h2&gt;

&lt;p&gt;Have you ever tried to make a computer understand a poem? Not just find rhymes, but parse where the author is, where the title is, where the epigraph is, and where the actual verses are? If so, you know how quickly “plain text” becomes a headache.&lt;/p&gt;

&lt;p&gt;I’m &lt;a href="https://nevmenandr.github.io/homepage/" rel="noopener noreferrer"&gt;Boris Orekhov&lt;/a&gt;, and I created &lt;strong&gt;&lt;a href="https://github.com/nevmenandr/VML" rel="noopener noreferrer"&gt;VML&lt;/a&gt; (Verse Markup Language)&lt;/strong&gt; — a minimalist markup language that turns the chaos of poetic text into a machine-readable structure. And yes, it’s already working on real‑world corpora (e.g., the &lt;a href="http://web-corpora.net/bashcorpus/" rel="noopener noreferrer"&gt;Bashkir Poetry Corpus&lt;/a&gt; with &amp;gt;10,000 poems).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A note on language:&lt;/strong&gt; The full &lt;a href="https://github.com/nevmenandr/VML" rel="noopener noreferrer"&gt;VML&lt;/a&gt; specification is written in Russian. However, given the current state of machine translation (DeepL, GPT-4, etc.), this is hardly a barrier. Anyone can obtain an accurate, readable English version in seconds. The tag names and syntax are language-agnostic anyway — &lt;code&gt;&amp;lt;a&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;&amp;amp;&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;n&amp;gt;&lt;/code&gt; work the same in any idiom.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why not TEI, JSON, or Markdown?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;TEI&lt;/strong&gt; – a beast. It can handle anything, but marking up a single poem feels like writing a new gospel in XML. Impossible for handling for humanists.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;JSON&lt;/strong&gt; – great for machines, but a humanist will close their laptop in horror.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Markdown&lt;/strong&gt; – fine for documentation, but not for strict metadata markup.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;VML&lt;/strong&gt; is a text format that stays human‑readable and is easy to parse. Its tags are short (&lt;code&gt;&amp;lt;a&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;&amp;amp;&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;n&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;rm&amp;gt;&lt;/code&gt;), the hierarchy is strict, and learning it takes 5 minutes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Minimal example
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;a&amp;gt;&lt;/span&gt; William Blake
&lt;span class="err"&gt;&amp;lt;&amp;amp;&lt;/span&gt;&amp;gt; Tyger Tyger, burning bright,
In the forests of the night,
What immortal hand or eye,
Could frame thy fearful symmetry?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;&amp;lt;a&amp;gt;&lt;/code&gt; – author (stays active until the next &lt;code&gt;&amp;lt;a&amp;gt;&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;&amp;lt;&amp;amp;&amp;gt;&lt;/code&gt; – the first line of the poem (incipit). Without it, the document is invalid.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;From this you can already extract the author, the title (none here), the list of lines, and even count them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Adding structure
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;a&amp;gt;&lt;/span&gt; Emily Dickinson
&lt;span class="nt"&gt;&amp;lt;rm&amp;gt;&lt;/span&gt; Hope is the thing with feathers   &lt;span class="err"&gt;&amp;lt;&lt;/span&gt;-- epigraph (prose insert)
&lt;span class="err"&gt;&amp;lt;&amp;amp;&lt;/span&gt;&amp;gt; “Hope” is the thing with feathers -
That perches in the soul -
And sings the tune without the words -
And never stops - at all -
&lt;span class="err"&gt;&amp;lt;&lt;/span&gt;*&amp;gt; And sweetest - in the Gale - is heard -
And sore must be the storm -
That could abash the little Bird
That kept so many warm -
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;&amp;lt;rm&amp;gt;&lt;/code&gt; – prose insert (epigraph, dedication, stage direction). Each line gets its own &lt;code&gt;&amp;lt;rm&amp;gt;&lt;/code&gt;. Poetry parser skips it.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;&amp;lt;*&amp;gt;&lt;/code&gt; – start of a stanza. Stanzas are separated by repeated &lt;code&gt;&amp;lt;*&amp;gt;&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flbfeyshs8a5y9j40s5z8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flbfeyshs8a5y9j40s5z8.png" alt="VML logo" width="800" height="640"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Poetry cycles
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;nn&amp;gt;&lt;/span&gt; Sonnets to the Young Man
&lt;span class="nt"&gt;&amp;lt;n&amp;gt;&lt;/span&gt; Sonnet 1
&lt;span class="err"&gt;&amp;lt;&amp;amp;&lt;/span&gt;&amp;gt; From fairest creatures we desire increase...
&lt;span class="nt"&gt;&amp;lt;n&amp;gt;&lt;/span&gt; Sonnet 2
&lt;span class="err"&gt;&amp;lt;&amp;amp;&lt;/span&gt;&amp;gt; When forty winters shall beseige thy brow...
&lt;span class="nt"&gt;&amp;lt;/nn&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;&amp;lt;nn&amp;gt; ... &amp;lt;/nn&amp;gt;&lt;/code&gt; – a cycle. Inside are several poems, each with its own title &lt;code&gt;&amp;lt;n&amp;gt;&lt;/code&gt; and incipit &lt;code&gt;&amp;lt;&amp;amp;&amp;gt;&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What if an epigraph appears before an incipit without a title?
&lt;/h2&gt;

&lt;p&gt;Two poems in a row, and the second has an epigraph. How do you avoid attaching the epigraph to the first poem? VML provides &lt;code&gt;&amp;lt;&amp;amp;&amp;amp;&amp;gt;&lt;/code&gt; – an explicit start of a new poem &lt;strong&gt;before&lt;/strong&gt; an incipit:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;a&amp;gt;&lt;/span&gt; John Keats
&lt;span class="err"&gt;&amp;lt;&amp;amp;&lt;/span&gt;&amp;gt; A thing of beauty is a joy for ever...
...
&lt;span class="err"&gt;&amp;lt;&amp;amp;&amp;amp;&lt;/span&gt;&amp;gt;
&lt;span class="nt"&gt;&amp;lt;rm&amp;gt;&lt;/span&gt; Epigraph to “Ode to a Nightingale”
&lt;span class="nt"&gt;&amp;lt;rm&amp;gt;&lt;/span&gt; “Thou wast not born for death, immortal Bird!”
&lt;span class="err"&gt;&amp;lt;&amp;amp;&lt;/span&gt;&amp;gt; My heart aches, and a drowsy numbness pains...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  For the geeks: “ladder” layout
&lt;/h2&gt;

&lt;p&gt;If you’re a verse scholar, you might need explicit  “ladder” markup:&lt;/p&gt;

&lt;p&gt;For example Mayakovsky:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;&amp;amp;&amp;gt; Я волком бы &amp;lt;l-2&amp;gt; выгрыз &amp;lt;l-3&amp;gt; бюрократизм.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Tools
&lt;/h2&gt;

&lt;p&gt;The repository contains:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://github.com/nevmenandr/VML/blob/main/Code/vml_validator.py" rel="noopener noreferrer"&gt;Validator&lt;/a&gt;&lt;/strong&gt; (&lt;code&gt;vml_validator.py&lt;/code&gt;) – checks syntax, nesting, escaping.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://github.com/nevmenandr/VML/blob/main/Code/vml_counter.py" rel="noopener noreferrer"&gt;Counter&lt;/a&gt;&lt;/strong&gt; (&lt;code&gt;vml_counter.py&lt;/code&gt;) – outputs statistics: authors, poems, lines, cycles.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python3 vml_validator.py poem.vml
python3 vml_counter.py poem.vml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Where is it already used?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Bashkir Poetry Corpus&lt;/strong&gt; (&lt;a href="http://web-corpora.net/bashcorpus/" rel="noopener noreferrer"&gt;http://web-corpora.net/bashcorpus/&lt;/a&gt;) – more than 10,000 poems marked up in VML. Based on this corpus, a monograph (Orekhov, 2019) and several articles on quantitative verse studies have been published.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who is it for?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Humanists&lt;/strong&gt; who want to build their own corpus without learning XML/JSON.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Developers&lt;/strong&gt; who need to extract metadata from poems for NLP tasks (author, date, metre, stanza structure).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Digital Humanities enthusiasts&lt;/strong&gt; looking for a simple, open standard.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Full specification&lt;/strong&gt; – &lt;a href="https://github.com/nevmenandr/VML/blob/main/README.md" rel="noopener noreferrer"&gt;README.md&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Repository with code and examples&lt;/strong&gt; – &lt;a href="https://github.com/nevmenandr/VML" rel="noopener noreferrer"&gt;github.com/nevmenandr/VML&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Language DOI&lt;/strong&gt; – &lt;a href="https://doi.org/10.5281/zenodo.20100191" rel="noopener noreferrer"&gt;10.5281/zenodo.20100191&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;License&lt;/strong&gt; – Apache 2.0 (free to use, modify, and distribute, including commercial use)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Biblio
&lt;/h2&gt;

&lt;p&gt;Orekhov, B. V. (2019). &lt;em&gt;Bashkirskiy stikh XX veka. Korpusnoye issledovaniye&lt;/em&gt; [Bashkir Verse of the 20th Century: A Corpus Study]. Saint Petersburg: Aleteya. 344 p. ISBN 978-5-907189-29-4. (In Russian)&lt;/p&gt;

&lt;h2&gt;
  
  
  P.S. What about escaping?
&lt;/h2&gt;

&lt;p&gt;In real poems, sequences like &lt;code&gt;&amp;lt;a&amp;gt;&lt;/code&gt; almost never appear as part of the text. But just in case, escaping exists: &lt;code&gt;\&amp;lt;a&amp;gt;&lt;/code&gt; will be treated as plain &lt;code&gt;&amp;lt;a&amp;gt;&lt;/code&gt; and won’t break the parser.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Discussion in the comments is welcome.&lt;/strong&gt; Do you use any formats for poetry markup? Would you like to try VML? Feel free to open issues on GitHub – any feedback is valuable.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;a href="https://nevmenandr.github.io/homepage/" rel="noopener noreferrer"&gt;Boris Orekhov&lt;/a&gt;, 2026&lt;/em&gt;&lt;/p&gt;

</description>
      <category>markup</category>
      <category>poetry</category>
      <category>textcorpora</category>
      <category>metadata</category>
    </item>
    <item>
      <title>Programming as text creation</title>
      <dc:creator>Boris Orekhov</dc:creator>
      <pubDate>Thu, 20 Mar 2025 07:45:26 +0000</pubDate>
      <link>https://dev.to/nevmenandr/programming-as-text-creation-48nk</link>
      <guid>https://dev.to/nevmenandr/programming-as-text-creation-48nk</guid>
      <description>&lt;p&gt;I am a philologist and I need to write texts: scientific papers, popularization articles. But sometimes I want to write code. I often treat code as natural language texts. Just as sometimes you want to try your hand at a new genre, you want to leave behind and offer the community code in a programming language that is not your primary language. &lt;/p&gt;

&lt;p&gt;I used to write a lot in Perl, it was my second language, but now I've thoroughly forgotten it. However, for sentimental reasons I'd like to have &lt;a href="https://github.com/search?q=owner%3Anevmenandr+lang%3APerl+&amp;amp;type=repositories" rel="noopener noreferrer"&gt;Perl code in my github account&lt;/a&gt;, so I had to remember it.&lt;/p&gt;

&lt;p&gt;I tried using ChatGPT to accomplish the task I wanted, but never got the results I wanted. I had to write code the old fashioned way and work out the rules of the language.&lt;/p&gt;

&lt;p&gt;I plan to write some more applications (useful and just beautiful) in different programming languages in the near future and make them available to the public.&lt;/p&gt;

</description>
      <category>perl</category>
      <category>text</category>
    </item>
    <item>
      <title>Font licensing</title>
      <dc:creator>Boris Orekhov</dc:creator>
      <pubDate>Wed, 24 Jul 2024 09:29:00 +0000</pubDate>
      <link>https://dev.to/nevmenandr/font-licensing-4084</link>
      <guid>https://dev.to/nevmenandr/font-licensing-4084</guid>
      <description>&lt;p&gt;A few years ago I created a &lt;a href="https://nevmenandr.github.io/18cent-font/" rel="noopener noreferrer"&gt;font&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;I would like it to be open and free for distribution. This is unusual because most fonts are paid for. I was faced with the problem of choosing a license for the font. Fonts have their own licenses, and they are not supposed to be free to distribute. It seemed appropriate to me to use a license that included the font as part of the software, because fonts are now electronic and used on websites.&lt;/p&gt;

&lt;p&gt;In general, I would like to use the &lt;a href="https://github.com/nevmenandr/18cent-font/blob/master/LICENSE" rel="noopener noreferrer"&gt;GNU General Public License v3.0&lt;/a&gt; (+ Commercial use, + Distribution, √ License and copyright notice, √ Same license), but I haven't seen such cases, it doesn't seem to be common.&lt;/p&gt;

</description>
      <category>fonts</category>
      <category>licensing</category>
    </item>
    <item>
      <title>Possible topics for Python podcast</title>
      <dc:creator>Boris Orekhov</dc:creator>
      <pubDate>Wed, 24 Jul 2024 00:12:00 +0000</pubDate>
      <link>https://dev.to/nevmenandr/possible-topics-for-python-podcast-4i51</link>
      <guid>https://dev.to/nevmenandr/possible-topics-for-python-podcast-4i51</guid>
      <description>&lt;p&gt;I taught programming to humanities students for many years. This is also something we can sometimes talk about within the programming community.&lt;/p&gt;

&lt;p&gt;What can you focus on in such a conversation?&lt;/p&gt;

&lt;p&gt;Here's an outline for a conversation plan:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Why should humanities students learn python? Common problems that are solved by code.&lt;/li&gt;
&lt;li&gt;Why Python and not R or Fortran? What libraries are in demand for humanitarians? &lt;/li&gt;
&lt;li&gt;What are the differences in learning to develop for humanitarians, what are the challenges faced? Language barrier.&lt;/li&gt;
&lt;li&gt;Does GPT work? What do the humanities think about it?&lt;/li&gt;
&lt;li&gt;Esoteric programming languages from a humanist's point of view&lt;/li&gt;
&lt;li&gt;&lt;a href="http://nevmenandr.net/personalia/21.pdf" rel="noopener noreferrer"&gt;Poems in programming code&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;What do natural language and programming language have in common? &lt;a href="https://okna.hse.ru/news/218099432.html" rel="noopener noreferrer"&gt;Python as a foreign language&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>podcast</category>
      <category>python</category>
      <category>humanities</category>
    </item>
    <item>
      <title>Scientific problems are not real problems for programmers</title>
      <dc:creator>Boris Orekhov</dc:creator>
      <pubDate>Wed, 24 Jul 2024 00:02:00 +0000</pubDate>
      <link>https://dev.to/nevmenandr/scientific-problems-are-not-real-problems-for-programmers-4ama</link>
      <guid>https://dev.to/nevmenandr/scientific-problems-are-not-real-problems-for-programmers-4ama</guid>
      <description>&lt;p&gt;In 2020, a rather famous person wrote to me through one service for sharing scientific papers. This person is a programmer.&lt;/p&gt;

&lt;p&gt;First, she asked about the Master's program at our university, whether it was worth going there. We also talked about the website that this person had created. The site is very famous and useful.&lt;br&gt;
Then, as part of my reflections, I suggested thinking about adding some functionality to this site. This functionality would have to be at the backend level, and would require the implementation of free third-party libraries. &lt;/p&gt;

&lt;p&gt;This idea seemed unfortunate to my interlocutor. She did not want to implement any third-party code. But the main thing is that I heard a number of insults against me. According to her, I did not understand the subject of the conversation. &lt;/p&gt;

&lt;p&gt;To show that I had studied the subject of the conversation, I went to the site and, opening the source code of the page, discovered the use of jQuery there.&lt;/p&gt;

&lt;p&gt;In my opinion, this was already an implementation of someone else's library. To this I received an even greater stream of insults. &lt;/p&gt;

&lt;p&gt;One of the ways to hurt me, which my interlocutor chose, was to attack my abilities as a programmer. “You are not a real programmer, you just use programming for your small scientific tasks, and you don't understand anything”.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi1nwcdw4wtc2pndz07x1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi1nwcdw4wtc2pndz07x1.png" alt="Image description" width="500" height="70"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is true, by the way, I am not a real programmer and I write academic code which is much worse in quality than the one created in the industry.&lt;/p&gt;

&lt;p&gt;But the most interesting thing here is the contrast between my “little science tasks” and the apparently big and serious stuff that programming is actually for.&lt;/p&gt;

</description>
      <category>scientific</category>
      <category>squabbles</category>
      <category>libraries</category>
      <category>jquery</category>
    </item>
  </channel>
</rss>
