{"@attributes":{"version":"2.0"},"channel":{"title":"DEV Community: Boris Orekhov","description":"The latest articles on DEV Community by Boris Orekhov (@nevmenandr).","link":"https:\/\/dev.to\/nevmenandr","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","title":"DEV Community: Boris Orekhov","link":"https:\/\/dev.to\/nevmenandr"},"language":"en","item":[{"title":"When Code Speaks Latin and Acts Like Shakespeare","pubDate":"Tue, 07 Jul 2026 05:02:00 +0000","link":"https:\/\/dev.to\/nevmenandr\/when-code-speaks-latin-and-acts-like-shakespeare-1c85","guid":"https:\/\/dev.to\/nevmenandr\/when-code-speaks-latin-and-acts-like-shakespeare-1c85","description":"<h2>\n  \n  \n  When Code Speaks Latin and Acts Like Shakespeare Or why programmers secretly love useless beauty\n<\/h2>\n\n<p>You\u2019d think poetry and programming are light-years apart. They aren\u2019t. Their intersection is the charming, useless zone where engineers become artists.<\/p>\n\n<h3>\n  \n  \n  \ud83e\udde0 Natural languages vs. code\n<\/h3>\n\n<p>Linguistics isn\u2019t pure humanities \u2014 it\u2019s 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.<\/p>\n\n<blockquote>\n<p>Latin lets you say \u201cthe generation that will beget even worse\u201d in one tight phrase. Russian? Awkward illiteracy. Same in code: Python is concise but hides massive overhead. Assembly is verbose but brutally efficient.<\/p>\n<\/blockquote>\n\n<h3>\n  \n  \n  \ud83d\udd01 The assignment quirk\n<\/h3>\n\n<p>Most languages write <code>x = 5<\/code> (right to left).<br><br>\nR flips it: <code>5 -&gt; x<\/code>.<br><br>\nIt\u2019s a tiny rebellion against how we think.<\/p>\n\n<h3>\n  \n  \n  \ud83d\udcdc Poetry in binary?\n<\/h3>\n\n<p>Victor Pelevin once joked about writing poems in assembly \u2014 \u201cfewer rhyming problems in binary.\u201d A wink at the myth that poetry needs rhymes. (It doesn\u2019t. Ask the Japanese or ancient Greeks.)<\/p>\n\n<h3>\n  \n  \n  \ud83c\udfad Esoteric languages: beauty without utility\n<\/h3>\n\n<p>These are languages built <em>not<\/em> to solve problems, but to amuse, provoke, and confuse.<\/p>\n\n<h4>\n  \n  \n  1. <strong>Perligata<\/strong> \u2014 code in Latin\n<\/h4>\n\n<p>No fixed word order. Declensions do the work.<br><br>\n<code>nexto stringum reperimentum da<\/code> = assign to <code>$next<\/code> the position in a string.<br><br>\nFree order, just like Latin poetry. The creator: <em>\u201cIf you ask \u2018Why?\u2019 \u2013 the answer won\u2019t make sense anyway.\u201d<\/em><br><br>\nPure humanities fuel.<\/p>\n\n<h4>\n  \n  \n  2. <strong>Shakespeare<\/strong> \u2014 programs as Elizabethan plays\n<\/h4>\n\n<p>Variables are characters (Romeo, Juliet).<br><br>\nLogic is hidden in dialogue: \u201cThou art as villainous as the square root of Romeo!\u201d<br><br>\nIt can only add, subtract, and print. But it <em>looks<\/em> like a postmodern play.<\/p>\n\n<h3>\n  \n  \n  \ud83d\udca1 Why this matters for devs\n<\/h3>\n\n<p>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 \u2014 absurd, beautiful, and deeply human.<\/p>\n\n<blockquote>\n<p><em>\u201cIf you have to ask \u2018Why?\u2019, then the answer probably won\u2019t make any sense to you either.\u201d<\/em><\/p>\n<\/blockquote>\n\n\n\n\n<p><strong>Enjoyed this?<\/strong> Share with a colleague who secretly writes poetry in their comments. Or someone who still thinks Latin is useless. \ud83d\ude09<\/p>\n\n","category":["esoteric","programming","poetry"]},{"title":"A Skeptical Review of Critical Code Studies","pubDate":"Sat, 27 Jun 2026 04:45:00 +0000","link":"https:\/\/dev.to\/nevmenandr\/a-skeptical-review-of-critical-code-studies-2lne","guid":"https:\/\/dev.to\/nevmenandr\/a-skeptical-review-of-critical-code-studies-2lne","description":"<h2>\n  \n  \n  Is Code Really a \u201cSocial Text\u201d? A Skeptical Review of <em>Critical Code Studies<\/em>\n<\/h2>\n\n<p><strong>TL;DR:<\/strong> A sharp academic review takes aim at Mark C. Marino\u2019s <em>Critical Code Studies<\/em> (MIT Press, 2020). The verdict? Lots of hype, some interesting cases, but little real code analysis. If you\u2019re a programmer who rolls your eyes at postmodern buzzwords, this one\u2019s for you.<\/p>\n\n\n\n\n<h3>\n  \n  \n  \ud83d\udcd6 The Book in a Nutshell\n<\/h3>\n\n<p>Marino argues that code has escaped the programmer\u2019s dungeon and entered mainstream culture. Code is no longer just a tool \u2013 it\u2019s a <strong>social text<\/strong> whose meaning changes with every new reader (lawyers, poets, activists, etc.). The book promises a literary\u2011style reading of software, drawing on postcolonial, feminist, and queer theory.<\/p>\n\n<h3>\n  \n  \n  \ud83d\udd0d What the Review Says (Boris Orekhov, <em>Digital Humanities<\/em>, 2026)\n<\/h3>\n\n<p>Me, Boris Orekhov - a digital humanities scholar - is <strong>not impressed<\/strong>. My main gripes:<\/p>\n\n<ul>\n<li><p><strong>Overblown claims<\/strong> \u2013 \u201cAudience of code has exploded!\u201d Really? When was the last time a climate change debate hinged on reading source code? I call it cherry\u2011picking.<\/p><\/li>\n<li><p><strong>Case\u2011dropping, not analysis<\/strong> \u2013 We get anecdotes: a protest sign in C, a feminist PHP app, the Transborder Immigrant Tool. But actual <strong>code examination<\/strong> is superficial. A license phrase (\u201cno warranties\u201d) is noted as tragicomic \u2013 that\u2019s about it.<\/p><\/li>\n<li><p><strong>Lost the plot<\/strong> \u2013 Marino sets up a story about two programmers competing for a job, then\u2026 never finishes it. This happens every 10\u201115 pages.<\/p><\/li>\n<li><p><strong>Postmodern catechism<\/strong> \u2013 The book wears its ideology on its sleeve (postcolonial, queer, feminist). Fine, but it substitutes slogans for rational argument. Systematic methodology? Nowhere.<\/p><\/li>\n<li><p><strong>Missing prior work<\/strong> \u2013 My own 2015 <a href=\"https:\/\/dev.to\/nevmenandr\/poetry-in-code-3iak\">paper<\/a> on code as poetry, and Black\u2019s 2015 Mozilla history (which <em>does<\/em> a real textual analysis), are ignored.<\/p><\/li>\n<\/ul>\n\n<h3>\n  \n  \n  \ud83e\udd16 The Elephant in the Room: LLMs\n<\/h3>\n\n<p>The book was written when only <strong>humans<\/strong> wrote code. Now LLMs generate code without intention or social context. That guts Marino\u2019s entire framework of authorial social meaning.<\/p>\n\n<h3>\n  \n  \n  \ud83c\udfaf Final Verdict\n<\/h3>\n\n<blockquote>\n<p><em>\u201cThis book is less a scientific study and more a cabinet of curiosities \u2013 or a postmodern art exhibit catalog dressed as a monograph.\u201d<\/em><\/p>\n<\/blockquote>\n\n<p>It might find its audience, but don\u2019t expect a toolkit for actually reading code.<\/p>\n\n\n\n\n<h2>\n  \n  \n  \ud83d\udc69\u200d\ud83d\udcbb Why Should Programmers Care?\n<\/h2>\n\n<p>Because the gap between <strong>how we write code<\/strong> and <strong>how humanities scholars talk about it<\/strong> is huge. This review gives you an honest, critical look at one of the most hyped books in \u201csoftware studies.\u201d You\u2019ll learn:<\/p>\n\n<ul>\n<li>Why calling code a \u201ctext\u201d is both obvious and misleading\n<\/li>\n<li>Why social\u2011justice lenses often skip the actual <code>for<\/code> loops\n<\/li>\n<li>What happens when ideology meets semicolons\n<\/li>\n<\/ul>\n\n<p>And you\u2019ll get a good laugh at academic overreach.<\/p>\n\n\n\n\n<h2>\n  \n  \n  \ud83d\udcc4 Read the Full Review (PDF)\n<\/h2>\n\n<p>\ud83d\udc49 <a href=\"https:\/\/nevmenandr.github.io\/portfolio\/assets\/pdf\/critical-code-studies.pdf\" rel=\"noopener noreferrer\">Critical Code Studies review \u2013 Orekhov 2026<\/a><\/p>\n\n\n\n\n<h2>\n  \n  \n  \ud83d\udcda Cite the Original Review\n<\/h2>\n\n<h3>\n  \n  \n  APA\n<\/h3>\n\n<p>Orekhov, B. (2026). \u0420\u0435\u0446\u0435\u043d\u0437\u0438\u044f \u043d\u0430 \u043a\u043d\u0438\u0433\u0443 \u041c\u0430\u0440\u043a\u0430 \u041a. \u041c\u0430\u0440\u0438\u043d\u043e \u00ab\u041a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u0434\u0430\u00bb [Review of <em>Critical Code Studies<\/em>, by M. C. Marino]. <em>\u0426\u0438\u0444\u0440\u043e\u0432\u044b\u0435 \u0433\u0443\u043c\u0430\u043d\u0438\u0442\u0430\u0440\u043d\u044b\u0435 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f<\/em>, (1), 114\u2013121. <a href=\"https:\/\/doi.org\/10.31860\/cgi-2026-1-114-121\" rel=\"noopener noreferrer\">https:\/\/doi.org\/10.31860\/cgi-2026-1-114-121<\/a><\/p>\n\n<h3>\n  \n  \n  MLA\n<\/h3>\n\n<p>Orekhov, Boris. \u201c\u0420\u0435\u0446\u0435\u043d\u0437\u0438\u044f \u043d\u0430 \u043a\u043d\u0438\u0433\u0443 \u041c\u0430\u0440\u043a\u0430 \u041a. \u041c\u0430\u0440\u0438\u043d\u043e \u00ab\u041a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u0434\u0430\u00bb.\u201d Review of <em>Critical Code Studies<\/em>, by Mark C. Marino. <em>\u0426\u0438\u0444\u0440\u043e\u0432\u044b\u0435 \u0433\u0443\u043c\u0430\u043d\u0438\u0442\u0430\u0440\u043d\u044b\u0435 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f<\/em>, no. 1, 2026, pp. 114\u2013121. DOI: 10.31860\/cgi-2026-1-114-121.<\/p>\n\n<h3>\n  \n  \n  Chicago\n<\/h3>\n\n<p>Orekhov, Boris. \u201c\u0420\u0435\u0446\u0435\u043d\u0437\u0438\u044f \u043d\u0430 \u043a\u043d\u0438\u0433\u0443 \u041c\u0430\u0440\u043a\u0430 \u041a. \u041c\u0430\u0440\u0438\u043d\u043e \u00ab\u041a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u0434\u0430\u00bb.\u201d Review of <em>Critical Code Studies<\/em>, by Mark C. Marino. <em>\u0426\u0438\u0444\u0440\u043e\u0432\u044b\u0435 \u0433\u0443\u043c\u0430\u043d\u0438\u0442\u0430\u0440\u043d\u044b\u0435 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f<\/em> 1 (2026): 114\u2013121. <a href=\"https:\/\/doi.org\/10.31860\/cgi-2026-1-114-121\" rel=\"noopener noreferrer\">https:\/\/doi.org\/10.31860\/cgi-2026-1-114-121<\/a>.<\/p>\n\n<h3>\n  \n  \n  BibTeX\n<\/h3>\n\n\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight bibtex\"><code><span class=\"nc\">@review<\/span><span class=\"p\">{<\/span><span class=\"nl\">Orekhov2026code<\/span><span class=\"p\">,<\/span>\n  <span class=\"na\">title<\/span> <span class=\"p\">=<\/span> <span class=\"s\">{\u0420\u0435\u0446\u0435\u043d\u0437\u0438\u044f \u043d\u0430 \u043a\u043d\u0438\u0433\u0443 \u041c\u0430\u0440\u043a\u0430 \u041a. \u041c\u0430\u0440\u0438\u043d\u043e \u00ab\u041a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u0434\u0430\u00bb}<\/span><span class=\"p\">,<\/span>\n  <span class=\"na\">author<\/span> <span class=\"p\">=<\/span> <span class=\"s\">{\u041e\u0440\u0435\u0445\u043e\u0432, \u0411\u043e\u0440\u0438\u0441}<\/span><span class=\"p\">,<\/span>\n  <span class=\"na\">year<\/span> <span class=\"p\">=<\/span> <span class=\"s\">{2026}<\/span><span class=\"p\">,<\/span>\n  <span class=\"na\">doi<\/span> <span class=\"p\">=<\/span> <span class=\"s\">{10.31860\/cgi-2026-1-114-121}<\/span><span class=\"p\">,<\/span>\n  <span class=\"na\">journal<\/span> <span class=\"p\">=<\/span> <span class=\"s\">{\u0426\u0438\u0444\u0440\u043e\u0432\u044b\u0435 \u0433\u0443\u043c\u0430\u043d\u0438\u0442\u0430\u0440\u043d\u044b\u0435 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f}<\/span><span class=\"p\">,<\/span>\n  <span class=\"na\">number<\/span> <span class=\"p\">=<\/span> <span class=\"s\">{1}<\/span><span class=\"p\">,<\/span>\n  <span class=\"na\">pages<\/span> <span class=\"p\">=<\/span> <span class=\"s\">{114--121}<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n\n<\/div>\n\n\n\n\n\n\n<h2>\n  \n  \n  \ud83d\udcac Let\u2019s Discuss\n<\/h2>\n\n<p>Have you read <em>Critical Code Studies<\/em>? Do you think code has a \u201csocial life\u201d beyond its function? Drop your take in the comments \u2013 and share this post if you want more honest, no\u2011BS book reviews for devs.<\/p>\n\n<h1>\n  \n  \n  CriticalCodeStudies #BookReview #SoftwareStudies #Programming #DigitalHumanities\n<\/h1>\n\n","category":["bookreview","softwarestudies","programming","digitalhumanities"]},{"title":"Poetry in Code","pubDate":"Wed, 17 Jun 2026 04:08:00 +0000","link":"https:\/\/dev.to\/nevmenandr\/poetry-in-code-3iak","guid":"https:\/\/dev.to\/nevmenandr\/poetry-in-code-3iak","description":"<h2>\n  \n  \n  Poetry in Code: When Code Becomes Poetry\n<\/h2>\n\n<p>Have you ever written poetry in Java? Or C++? It turns out there\u2019s a whole genre at the intersection of programming and poetry \u2014 <strong>code poetry<\/strong>. Not just poems <em>about<\/em> computers or programmers, but actual executable programs that are also poetic texts.<\/p>\n\n<p>Ten years ago I published a <a href=\"https:\/\/scholar.google.com\/scholar?cluster=12660271881389408371&amp;hl=ru&amp;as_sdt=0,5\" rel=\"noopener noreferrer\">paper<\/a> proposing a method for analysing such works. Here are the key ideas \u2014 I think the dev.to community will find them interesting.<\/p>\n\n\n\n\n<h2>\n  \n  \n  What is it?\n<\/h2>\n\n<p>Imagine writing code in Java, Python, or even CSS \u2014 it runs and works. But at the same time, the source code itself reads like a poem: rhythm, metre, imagery.<\/p>\n\n<p>Here\u2019s an <a href=\"https:\/\/habr.com\/ru\/articles\/186044\/\" rel=\"noopener noreferrer\">example<\/a> from Habr (2013):<br>\n<\/p>\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight java\"><code><span class=\"k\">if<\/span> <span class=\"o\">(<\/span><span class=\"n\">newGame<\/span><span class=\"o\">)<\/span> <span class=\"n\">resources<\/span><span class=\"o\">.<\/span><span class=\"na\">free<\/span><span class=\"o\">();<\/span>\n\n<span class=\"n\">s<\/span> <span class=\"o\">=<\/span> <span class=\"no\">FILENAME<\/span> <span class=\"o\">+<\/span> <span class=\"mi\">3<\/span><span class=\"o\">;<\/span>\n\n<span class=\"n\">setLocation<\/span><span class=\"o\">();<\/span> <span class=\"n\">load<\/span><span class=\"o\">(<\/span><span class=\"n\">s<\/span><span class=\"o\">);<\/span>\n\n<span class=\"n\">loadDialog<\/span><span class=\"o\">.<\/span><span class=\"na\">process<\/span><span class=\"o\">();<\/span>\n\n<span class=\"k\">try<\/span> <span class=\"o\">{<\/span> <span class=\"n\">setGamerColor<\/span><span class=\"o\">(<\/span><span class=\"no\">RED<\/span><span class=\"o\">);<\/span> <span class=\"o\">}<\/span>\n<span class=\"k\">catch<\/span><span class=\"o\">(<\/span><span class=\"nc\">Exception<\/span> <span class=\"n\">e<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span> <span class=\"n\">reset<\/span><span class=\"o\">();<\/span> <span class=\"o\">}<\/span>\n\n<span class=\"k\">while<\/span> <span class=\"o\">(<\/span><span class=\"n\">notReady<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span> <span class=\"n\">object<\/span><span class=\"o\">.<\/span><span class=\"na\">make<\/span><span class=\"o\">();<\/span>\n  <span class=\"k\">if<\/span> <span class=\"o\">(<\/span><span class=\"n\">resourceNotFound<\/span><span class=\"o\">)<\/span> <span class=\"k\">break<\/span><span class=\"o\">;<\/span> <span class=\"o\">}<\/span>\n\n<span class=\"kt\">byte<\/span> <span class=\"n\">result<\/span><span class=\"o\">;<\/span> <span class=\"c1\">\/\/ change to int!<\/span>\n\n<span class=\"n\">music<\/span><span class=\"o\">();<\/span>\n\n<span class=\"nc\">System<\/span><span class=\"o\">.<\/span><span class=\"na\">out<\/span><span class=\"o\">.<\/span><span class=\"na\">print<\/span><span class=\"o\">(<\/span><span class=\"s\">\"\"<\/span><span class=\"o\">);<\/span>\n<\/code><\/pre>\n\n<\/div>\n\n\n\n<p>This Java code can be compiled and executed. And when read aloud, it follows a strict <strong>trochaic tetrameter<\/strong>. The author deliberately arranged the accents so that the rhythm aligns with the poetic metre.<\/p>\n\n\n\n\n<h2>\n  \n  \n  How to classify such works?\n<\/h2>\n\n<p>In the paper I proposed three main analytical criteria:<\/p>\n\n<h3>\n  \n  \n  1. Programming language choice\n<\/h3>\n\n<ul>\n<li>\n<strong>High\u2011level languages<\/strong> (Python, PHP, Perl) \u2014 closer to humans, accessible to a wider audience.<\/li>\n<li>\n<strong>Low\u2011level languages<\/strong> (assembly) \u2014 elitist, requiring deep expertise.<\/li>\n<li>\n<strong>Dead languages<\/strong> (Pascal, Cobol) \u2014 like Latin poetry, archaic.<\/li>\n<\/ul>\n\n<p>Example from a Stanford poetry slam (C++):<br>\n<\/p>\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight cpp\"><code><span class=\"k\">class<\/span> <span class=\"nc\">For_every<\/span> <span class=\"p\">{<\/span>\n<span class=\"nl\">public:<\/span>\n  <span class=\"kt\">void<\/span> <span class=\"n\">ngular<\/span><span class=\"p\">(){<\/span><span class=\"n\">cout<\/span> <span class=\"o\">&lt;&lt;<\/span> <span class=\"n\">endl<\/span> <span class=\"o\">&lt;&lt;<\/span> <span class=\"s\">\"I\"<\/span><span class=\"p\">;};<\/span>\n  <span class=\"kt\">void<\/span> <span class=\"nf\">que<\/span><span class=\"p\">(){<\/span><span class=\"n\">cout<\/span><span class=\"o\">&lt;&lt;<\/span><span class=\"s\">\"f\"<\/span><span class=\"p\">;};<\/span>\n  <span class=\"kt\">void<\/span> <span class=\"nf\">ng<\/span><span class=\"p\">(){<\/span><span class=\"n\">cout<\/span><span class=\"o\">&lt;&lt;<\/span><span class=\"s\">\"w\"<\/span><span class=\"p\">;};<\/span>\n  <span class=\"kt\">void<\/span> <span class=\"nf\">ghting<\/span><span class=\"p\">(){<\/span><span class=\"n\">cout<\/span> <span class=\"o\">&lt;&lt;<\/span> <span class=\"s\">\"d\"<\/span><span class=\"p\">;};<\/span>\n  <span class=\"kt\">void<\/span> <span class=\"nf\">ving<\/span><span class=\"p\">(){<\/span><span class=\"n\">cout<\/span> <span class=\"o\">&lt;&lt;<\/span> <span class=\"s\">\"e\"<\/span><span class=\"p\">;};<\/span>\n  <span class=\"kt\">void<\/span> <span class=\"nf\">on<\/span><span class=\"p\">(){<\/span><span class=\"n\">cout<\/span> <span class=\"o\">&lt;&lt;<\/span> <span class=\"s\">\" n\"<\/span><span class=\"p\">;};<\/span>\n<span class=\"p\">};<\/span>\n\n<span class=\"kt\">int<\/span> <span class=\"nf\">main<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n  <span class=\"n\">For_every<\/span> <span class=\"n\">i<\/span><span class=\"p\">;<\/span>\n  <span class=\"n\">i<\/span><span class=\"p\">.<\/span><span class=\"n\">ngular<\/span><span class=\"p\">();<\/span> <span class=\"n\">i<\/span><span class=\"p\">.<\/span><span class=\"n\">quet<\/span><span class=\"p\">();<\/span> <span class=\"n\">i<\/span><span class=\"p\">.<\/span><span class=\"n\">ng<\/span><span class=\"p\">();<\/span>\n  <span class=\"n\">i<\/span><span class=\"p\">.<\/span><span class=\"n\">ving<\/span><span class=\"p\">();<\/span> <span class=\"n\">i<\/span><span class=\"p\">.<\/span><span class=\"n\">ghting<\/span><span class=\"p\">();<\/span>\n  <span class=\"n\">i<\/span><span class=\"p\">.<\/span><span class=\"n\">vidual<\/span><span class=\"p\">();<\/span> <span class=\"n\">i<\/span><span class=\"p\">.<\/span><span class=\"n\">on<\/span><span class=\"p\">();<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n\n<\/div>\n\n\n\n<p>Thanks to variable names (<code>i<\/code>, <code>us<\/code>) and method names, the sequence produces a phrase: <em>\"I fought we will surely seperately\"<\/em> \u2014 the theme of \u201cI vs. we\u201d.<\/p>\n\n<h3>\n  \n  \n  2. Functional load\n<\/h3>\n\n<p>What does the program do? Even if pragmatically \u201cuseless\u201d, the program\u2019s intended behaviour matters.<\/p>\n\n<p>Example: an infinite loop in C as a metaphor for addiction:<br>\n<\/p>\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight cpp\"><code><span class=\"kt\">void<\/span> <span class=\"nf\">addiction<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n  <span class=\"kt\">int<\/span> <span class=\"n\">mind<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">1<\/span><span class=\"p\">;<\/span>\n  <span class=\"k\">while<\/span> <span class=\"p\">(<\/span><span class=\"nb\">true<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n    <span class=\"n\">mind<\/span> <span class=\"o\">=<\/span> <span class=\"n\">mind<\/span> <span class=\"o\">+<\/span> <span class=\"mi\">1<\/span><span class=\"p\">;<\/span>\n    <span class=\"k\">if<\/span> <span class=\"p\">(<\/span><span class=\"n\">mind<\/span> <span class=\"o\">&lt;<\/span> <span class=\"mi\">0<\/span><span class=\"p\">)<\/span> <span class=\"k\">break<\/span><span class=\"p\">;<\/span>\n  <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n\n<\/div>\n\n\n\n<p>An infinite loop is usually considered a bug, but here it becomes an artistic device.<\/p>\n\n<h3>\n  \n  \n  3. Dependence on natural language\n<\/h3>\n\n<p>Can code poetry avoid relying on English? That\u2019s the holy grail. Most authors use English words as variable names \u2014 e.g., an SQL query:<br>\n<\/p>\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight sql\"><code><span class=\"k\">INSERT<\/span> <span class=\"err\">\u2018<\/span><span class=\"n\">your<\/span> <span class=\"n\">hand<\/span><span class=\"err\">\u2019<\/span> <span class=\"k\">INTO<\/span> <span class=\"err\">\u2018<\/span><span class=\"n\">mine<\/span><span class=\"err\">\u2019<\/span>\n<span class=\"k\">SELECT<\/span> <span class=\"err\">\u2018<\/span><span class=\"n\">restaurant<\/span><span class=\"err\">\u2019<\/span> <span class=\"k\">FROM<\/span> <span class=\"err\">\u2018<\/span><span class=\"n\">nearby<\/span><span class=\"err\">\u2019<\/span>\n<span class=\"k\">WHERE<\/span> <span class=\"err\">\u2018<\/span><span class=\"n\">you<\/span> <span class=\"n\">would<\/span><span class=\"err\">\u2019<\/span> <span class=\"k\">LIKE<\/span> <span class=\"err\">\u2018<\/span><span class=\"k\">to<\/span> <span class=\"nb\">date<\/span><span class=\"err\">\u2019<\/span><span class=\"p\">;<\/span>\n<\/code><\/pre>\n\n<\/div>\n\n\n\n<p>This is essentially English wrapped in SQL syntax. But if one could express meaning purely through the programming language itself (without borrowed natural language) \u2014 that would be a new art form, understandable to any developer regardless of their mother tongue.<\/p>\n\n\n\n\n<h2>\n  \n  \n  Not just \u201cnormal\u201d languages\n<\/h2>\n\n<p>At the <strong>Code Poetry Slam<\/strong> (Stanford, 2013\u20132015), even non\u2011Turing\u2011complete languages like CSS or lists of HTTP status codes are accepted.<\/p>\n\n<p>For example:<br>\n<\/p>\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight http\"><code><span class=\"err\">201 created\n200 OK\n100 continue\n303 see other\n302 found\n409 conflict\n403 forbidden\n520 origin error\n...\n<\/span><\/code><\/pre>\n\n<\/div>\n\n\n\n<p>These are Apache web server response codes. But arranged like this, they evoke a lyrical mood \u2014 reminiscent of human life with its errors, redirects, and successes.<\/p>\n\n<p>Or CSS:<br>\n<\/p>\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight css\"><code><span class=\"nc\">.ocean<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nl\">color<\/span><span class=\"p\">:<\/span> <span class=\"no\">cornflowerblue<\/span><span class=\"p\">;<\/span>\n  <span class=\"nl\">pitch<\/span><span class=\"p\">:<\/span> <span class=\"nb\">high<\/span><span class=\"p\">;<\/span>\n  <span class=\"nl\">overflow<\/span><span class=\"p\">:<\/span> <span class=\"nb\">visible<\/span><span class=\"p\">;<\/span>\n<span class=\"p\">}<\/span>\n<span class=\"nc\">.boat<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nl\">color<\/span><span class=\"p\">:<\/span> <span class=\"no\">firebrick<\/span><span class=\"p\">;<\/span>\n  <span class=\"nl\">transform<\/span><span class=\"p\">:<\/span> <span class=\"n\">rotate<\/span><span class=\"p\">(<\/span><span class=\"m\">94deg<\/span><span class=\"p\">);<\/span>\n  <span class=\"nl\">float<\/span><span class=\"p\">:<\/span> <span class=\"nb\">none<\/span><span class=\"p\">;<\/span>\n<span class=\"p\">}<\/span>\n<span class=\"nc\">.rescue-team<\/span> <span class=\"p\">{<\/span>\n  <span class=\"nl\">visibility<\/span><span class=\"p\">:<\/span> <span class=\"nb\">visible<\/span><span class=\"p\">;<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n\n<\/div>\n\n\n\n<p>That\u2019s already a narrative about a capsized boat and a rescue team.<\/p>\n\n\n\n\n<p><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\"><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\"><\/a><\/p>\n\n<h2>\n  \n  \n  What\u2019s next?\n<\/h2>\n\n<p>I think this practice is more than a hype. Behind it are:<\/p>\n\n<ul>\n<li>therapeutic relief (programmers unwind through creativity);<\/li>\n<li>carnivalisation of professional language;<\/li>\n<li>the search for new expressive means.<\/li>\n<\/ul>\n\n<p>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 \u201cpoetic programs\u201d.<\/p>\n\n\n\n\n<h2>\n  \n  \n  Link to the full paper\n<\/h2>\n\n<p>If you want to dive deeper, here\u2019s the PDF (in Russian, but with an English abstract and plenty of code examples):<\/p>\n\n<p>\ud83d\udd17 <a href=\"https:\/\/nevmenandr.github.io\/portfolio\/assets\/pdf\/21.pdf\" rel=\"noopener noreferrer\">https:\/\/nevmenandr.github.io\/portfolio\/assets\/pdf\/21.pdf<\/a><\/p>\n\n<p><strong>APA citation:<\/strong><\/p>\n\n<p>Orekhov, B. (2016). Stikhi v programmnom kode: sovremennyy opyt i metodika analiza [Poetry in program code: Contemporary experience and analysis methods]. <em>Kritika i Semiotika<\/em>, (2), 94\u2013101. <a href=\"https:\/\/nevmenandr.github.io\/portfolio\/assets\/pdf\/21.pdf\" rel=\"noopener noreferrer\">https:\/\/nevmenandr.github.io\/portfolio\/assets\/pdf\/21.pdf<\/a><\/p>\n\n<p><strong>BibTeX citation:<\/strong><br>\n<\/p>\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight bibtex\"><code><span class=\"nc\">@article<\/span><span class=\"p\">{<\/span><span class=\"nl\">Orekhov2015programmpoetry<\/span><span class=\"p\">,<\/span>\n  <span class=\"na\">title<\/span> <span class=\"p\">=<\/span> <span class=\"s\">{\u0421\u0442\u0438\u0445\u0438 \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u043c \u043a\u043e\u0434\u0435: \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 \u043e\u043f\u044b\u0442 \u0438 \u043c\u0435\u0442\u043e\u0434\u0438\u043a\u0430 \u0430\u043d\u0430\u043b\u0438\u0437\u0430}<\/span><span class=\"p\">,<\/span>\n  <span class=\"na\">author<\/span> <span class=\"p\">=<\/span> <span class=\"s\">{\u041e\u0440\u0435\u0445\u043e\u0432, \u0411\u043e\u0440\u0438\u0441}<\/span><span class=\"p\">,<\/span>\n  <span class=\"na\">year<\/span> <span class=\"p\">=<\/span> <span class=\"s\">{2016}<\/span><span class=\"p\">,<\/span>\n  <span class=\"na\">journal<\/span> <span class=\"p\">=<\/span> <span class=\"s\">{\u041a\u0440\u0438\u0442\u0438\u043a\u0430 \u0438 \u0441\u0435\u043c\u0438\u043e\u0442\u0438\u043a\u0430}<\/span><span class=\"p\">,<\/span>\n  <span class=\"na\">number<\/span> <span class=\"p\">=<\/span> <span class=\"s\">{2}<\/span><span class=\"p\">,<\/span>\n  <span class=\"na\">pages<\/span> <span class=\"p\">=<\/span> <span class=\"s\">{94--101}<\/span><span class=\"p\">,<\/span>\n  <span class=\"na\">issn<\/span> <span class=\"p\">=<\/span> <span class=\"s\">{2307-1737}<\/span><span class=\"p\">,<\/span>\n  <span class=\"na\">keywords<\/span> <span class=\"p\">=<\/span> <span class=\"s\">{poetry discourse, poetic text analysis, programming languages}<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n\n<\/div>\n\n\n\n\n\n\n<p>Let me know in the comments \u2014 have you ever tried writing \u201ccode poetry\u201d? Or do you know other examples? \ud83d\udc68\u200d\ud83d\udcbb\ud83d\udcdc<\/p>\n\n","category":["poetry","programminglanguages","code"]},{"title":"Verse Markup Language (VML)","pubDate":"Sun, 07 Jun 2026 04:02:53 +0000","link":"https:\/\/dev.to\/nevmenandr\/verse-markup-language-vml-37o4","guid":"https:\/\/dev.to\/nevmenandr\/verse-markup-language-vml-37o4","description":"<h2>\n  \n  \n  Verse Markup Language (VML): When Poetry Meets Code\n<\/h2>\n\n<p>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 \u201cplain text\u201d becomes a headache.<\/p>\n\n<p>I\u2019m <a href=\"https:\/\/nevmenandr.github.io\/homepage\/\" rel=\"noopener noreferrer\">Boris Orekhov<\/a>, and I created <strong><a href=\"https:\/\/github.com\/nevmenandr\/VML\" rel=\"noopener noreferrer\">VML<\/a> (Verse Markup Language)<\/strong> \u2014 a minimalist markup language that turns the chaos of poetic text into a machine-readable structure. And yes, it\u2019s already working on real\u2011world corpora (e.g., the <a href=\"http:\/\/web-corpora.net\/bashcorpus\/\" rel=\"noopener noreferrer\">Bashkir Poetry Corpus<\/a> with &gt;10,000 poems).<\/p>\n\n<p><strong>A note on language:<\/strong> The full <a href=\"https:\/\/github.com\/nevmenandr\/VML\" rel=\"noopener noreferrer\">VML<\/a> 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 \u2014 <code>&lt;a&gt;<\/code>, <code>&lt;&amp;&gt;<\/code>, <code>&lt;n&gt;<\/code> work the same in any idiom.<\/p>\n\n<h2>\n  \n  \n  Why not TEI, JSON, or Markdown?\n<\/h2>\n\n<ul>\n<li>\n<strong>TEI<\/strong> \u2013 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.<\/li>\n<li>\n<strong>JSON<\/strong> \u2013 great for machines, but a humanist will close their laptop in horror.<\/li>\n<li>\n<strong>Markdown<\/strong> \u2013 fine for documentation, but not for strict metadata markup.<\/li>\n<\/ul>\n\n<p><strong>VML<\/strong> is a text format that stays human\u2011readable and is easy to parse. Its tags are short (<code>&lt;a&gt;<\/code>, <code>&lt;&amp;&gt;<\/code>, <code>&lt;n&gt;<\/code>, <code>&lt;rm&gt;<\/code>), the hierarchy is strict, and learning it takes 5 minutes.<\/p>\n\n<h2>\n  \n  \n  Minimal example\n<\/h2>\n\n\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight xml\"><code><span class=\"nt\">&lt;a&gt;<\/span> William Blake\n<span class=\"err\">&lt;&amp;<\/span>&gt; Tyger Tyger, burning bright,\nIn the forests of the night,\nWhat immortal hand or eye,\nCould frame thy fearful symmetry?\n<\/code><\/pre>\n\n<\/div>\n\n\n\n<ul>\n<li>\n<code>&lt;a&gt;<\/code> \u2013 author (stays active until the next <code>&lt;a&gt;<\/code>)<\/li>\n<li>\n<code>&lt;&amp;&gt;<\/code> \u2013 the first line of the poem (incipit). Without it, the document is invalid.<\/li>\n<\/ul>\n\n<p>From this you can already extract the author, the title (none here), the list of lines, and even count them.<\/p>\n\n<h2>\n  \n  \n  Adding structure\n<\/h2>\n\n\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight xml\"><code><span class=\"nt\">&lt;a&gt;<\/span> Emily Dickinson\n<span class=\"nt\">&lt;rm&gt;<\/span> Hope is the thing with feathers   <span class=\"err\">&lt;<\/span>-- epigraph (prose insert)\n<span class=\"err\">&lt;&amp;<\/span>&gt; \u201cHope\u201d is the thing with feathers -\nThat perches in the soul -\nAnd sings the tune without the words -\nAnd never stops - at all -\n<span class=\"err\">&lt;<\/span>*&gt; And sweetest - in the Gale - is heard -\nAnd sore must be the storm -\nThat could abash the little Bird\nThat kept so many warm -\n<\/code><\/pre>\n\n<\/div>\n\n\n\n<ul>\n<li>\n<code>&lt;rm&gt;<\/code> \u2013 prose insert (epigraph, dedication, stage direction). Each line gets its own <code>&lt;rm&gt;<\/code>. Poetry parser skips it.<\/li>\n<li>\n<code>&lt;*&gt;<\/code> \u2013 start of a stanza. Stanzas are separated by repeated <code>&lt;*&gt;<\/code>.<\/li>\n<\/ul>\n\n<p><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\"><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\"><\/a><\/p>\n\n<h2>\n  \n  \n  Poetry cycles\n<\/h2>\n\n\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight xml\"><code><span class=\"nt\">&lt;nn&gt;<\/span> Sonnets to the Young Man\n<span class=\"nt\">&lt;n&gt;<\/span> Sonnet 1\n<span class=\"err\">&lt;&amp;<\/span>&gt; From fairest creatures we desire increase...\n<span class=\"nt\">&lt;n&gt;<\/span> Sonnet 2\n<span class=\"err\">&lt;&amp;<\/span>&gt; When forty winters shall beseige thy brow...\n<span class=\"nt\">&lt;\/nn&gt;<\/span>\n<\/code><\/pre>\n\n<\/div>\n\n\n\n<p><code>&lt;nn&gt; ... &lt;\/nn&gt;<\/code> \u2013 a cycle. Inside are several poems, each with its own title <code>&lt;n&gt;<\/code> and incipit <code>&lt;&amp;&gt;<\/code>.<\/p>\n\n<h2>\n  \n  \n  What if an epigraph appears before an incipit without a title?\n<\/h2>\n\n<p>Two poems in a row, and the second has an epigraph. How do you avoid attaching the epigraph to the first poem? VML provides <code>&lt;&amp;&amp;&gt;<\/code> \u2013 an explicit start of a new poem <strong>before<\/strong> an incipit:<br>\n<\/p>\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight xml\"><code><span class=\"nt\">&lt;a&gt;<\/span> John Keats\n<span class=\"err\">&lt;&amp;<\/span>&gt; A thing of beauty is a joy for ever...\n...\n<span class=\"err\">&lt;&amp;&amp;<\/span>&gt;\n<span class=\"nt\">&lt;rm&gt;<\/span> Epigraph to \u201cOde to a Nightingale\u201d\n<span class=\"nt\">&lt;rm&gt;<\/span> \u201cThou wast not born for death, immortal Bird!\u201d\n<span class=\"err\">&lt;&amp;<\/span>&gt; My heart aches, and a drowsy numbness pains...\n<\/code><\/pre>\n\n<\/div>\n\n\n\n<h2>\n  \n  \n  For the geeks: \u201cladder\u201d layout\n<\/h2>\n\n<p>If you\u2019re a verse scholar, you might need explicit  \u201cladder\u201d markup:<\/p>\n\n<p>For example Mayakovsky:<br>\n<\/p>\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>&lt;&amp;&gt; \u042f \u0432\u043e\u043b\u043a\u043e\u043c \u0431\u044b &lt;l-2&gt; \u0432\u044b\u0433\u0440\u044b\u0437 &lt;l-3&gt; \u0431\u044e\u0440\u043e\u043a\u0440\u0430\u0442\u0438\u0437\u043c.\n<\/code><\/pre>\n\n<\/div>\n\n\n\n<h2>\n  \n  \n  Tools\n<\/h2>\n\n<p>The repository contains:<\/p>\n\n<ul>\n<li>\n<strong><a href=\"https:\/\/github.com\/nevmenandr\/VML\/blob\/main\/Code\/vml_validator.py\" rel=\"noopener noreferrer\">Validator<\/a><\/strong> (<code>vml_validator.py<\/code>) \u2013 checks syntax, nesting, escaping.<\/li>\n<li>\n<strong><a href=\"https:\/\/github.com\/nevmenandr\/VML\/blob\/main\/Code\/vml_counter.py\" rel=\"noopener noreferrer\">Counter<\/a><\/strong> (<code>vml_counter.py<\/code>) \u2013 outputs statistics: authors, poems, lines, cycles.\n<\/li>\n<\/ul>\n\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code>python3 vml_validator.py poem.vml\npython3 vml_counter.py poem.vml\n<\/code><\/pre>\n\n<\/div>\n\n\n\n<h2>\n  \n  \n  Where is it already used?\n<\/h2>\n\n<p><strong>Bashkir Poetry Corpus<\/strong> (<a href=\"http:\/\/web-corpora.net\/bashcorpus\/\" rel=\"noopener noreferrer\">http:\/\/web-corpora.net\/bashcorpus\/<\/a>) \u2013 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.<\/p>\n\n<h2>\n  \n  \n  Who is it for?\n<\/h2>\n\n<ul>\n<li>\n<strong>Humanists<\/strong> who want to build their own corpus without learning XML\/JSON.<\/li>\n<li>\n<strong>Developers<\/strong> who need to extract metadata from poems for NLP tasks (author, date, metre, stanza structure).<\/li>\n<li>\n<strong>Digital Humanities enthusiasts<\/strong> looking for a simple, open standard.<\/li>\n<\/ul>\n\n<h2>\n  \n  \n  Links\n<\/h2>\n\n<ul>\n<li>\n<strong>Full specification<\/strong> \u2013 <a href=\"https:\/\/github.com\/nevmenandr\/VML\/blob\/main\/README.md\" rel=\"noopener noreferrer\">README.md<\/a>\n<\/li>\n<li>\n<strong>Repository with code and examples<\/strong> \u2013 <a href=\"https:\/\/github.com\/nevmenandr\/VML\" rel=\"noopener noreferrer\">github.com\/nevmenandr\/VML<\/a>\n<\/li>\n<li>\n<strong>Language DOI<\/strong> \u2013 <a href=\"https:\/\/doi.org\/10.5281\/zenodo.20100191\" rel=\"noopener noreferrer\">10.5281\/zenodo.20100191<\/a>\n<\/li>\n<li>\n<strong>License<\/strong> \u2013 Apache 2.0 (free to use, modify, and distribute, including commercial use)<\/li>\n<\/ul>\n\n<h2>\n  \n  \n  Biblio\n<\/h2>\n\n<p>Orekhov, B. V. (2019). <em>Bashkirskiy stikh XX veka. Korpusnoye issledovaniye<\/em> [Bashkir Verse of the 20th Century: A Corpus Study]. Saint Petersburg: Aleteya. 344 p. ISBN 978-5-907189-29-4. (In Russian)<\/p>\n\n<h2>\n  \n  \n  P.S. What about escaping?\n<\/h2>\n\n<p>In real poems, sequences like <code>&lt;a&gt;<\/code> almost never appear as part of the text. But just in case, escaping exists: <code>\\&lt;a&gt;<\/code> will be treated as plain <code>&lt;a&gt;<\/code> and won\u2019t break the parser.<\/p>\n\n\n\n\n<p><strong>Discussion in the comments is welcome.<\/strong> Do you use any formats for poetry markup? Would you like to try VML? Feel free to open issues on GitHub \u2013 any feedback is valuable.<\/p>\n\n<p><em><a href=\"https:\/\/nevmenandr.github.io\/homepage\/\" rel=\"noopener noreferrer\">Boris Orekhov<\/a>, 2026<\/em><\/p>\n\n","category":["markup","poetry","textcorpora","metadata"]},{"title":"Programming as text creation","pubDate":"Thu, 20 Mar 2025 07:45:26 +0000","link":"https:\/\/dev.to\/nevmenandr\/programming-as-text-creation-48nk","guid":"https:\/\/dev.to\/nevmenandr\/programming-as-text-creation-48nk","description":"<p>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. <\/p>\n\n<p>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 <a href=\"https:\/\/github.com\/search?q=owner%3Anevmenandr+lang%3APerl+&amp;type=repositories\" rel=\"noopener noreferrer\">Perl code in my github account<\/a>, so I had to remember it.<\/p>\n\n<p>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.<\/p>\n\n<p>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.<\/p>\n\n","category":["perl","text"]},{"title":"Font licensing","pubDate":"Wed, 24 Jul 2024 09:29:00 +0000","link":"https:\/\/dev.to\/nevmenandr\/font-licensing-4084","guid":"https:\/\/dev.to\/nevmenandr\/font-licensing-4084","description":"<p>A few years ago I created a <a href=\"https:\/\/nevmenandr.github.io\/18cent-font\/\" rel=\"noopener noreferrer\">font<\/a>. <\/p>\n\n<p>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.<\/p>\n\n<p>In general, I would like to use the <a href=\"https:\/\/github.com\/nevmenandr\/18cent-font\/blob\/master\/LICENSE\" rel=\"noopener noreferrer\">GNU General Public License v3.0<\/a> (+ Commercial use, + Distribution, \u221a License and copyright notice, \u221a Same license), but I haven't seen such cases, it doesn't seem to be common.<\/p>\n\n","category":["fonts","licensing"]},{"title":"Possible topics for Python podcast","pubDate":"Wed, 24 Jul 2024 00:12:00 +0000","link":"https:\/\/dev.to\/nevmenandr\/possible-topics-for-python-podcast-4i51","guid":"https:\/\/dev.to\/nevmenandr\/possible-topics-for-python-podcast-4i51","description":"<p>I taught programming to humanities students for many years. This is also something we can sometimes talk about within the programming community.<\/p>\n\n<p>What can you focus on in such a conversation?<\/p>\n\n<p>Here's an outline for a conversation plan:<\/p>\n\n<ul>\n<li>Why should humanities students learn python? Common problems that are solved by code.<\/li>\n<li>Why Python and not R or Fortran? What libraries are in demand for humanitarians? <\/li>\n<li>What are the differences in learning to develop for humanitarians, what are the challenges faced? Language barrier.<\/li>\n<li>Does GPT work? What do the humanities think about it?<\/li>\n<li>Esoteric programming languages from a humanist's point of view<\/li>\n<li><a href=\"http:\/\/nevmenandr.net\/personalia\/21.pdf\" rel=\"noopener noreferrer\">Poems in programming code<\/a><\/li>\n<li>What do natural language and programming language have in common? <a href=\"https:\/\/okna.hse.ru\/news\/218099432.html\" rel=\"noopener noreferrer\">Python as a foreign language<\/a> <\/li>\n<\/ul>\n\n","category":["podcast","python","humanities"]},{"title":"Scientific problems are not real problems for programmers","pubDate":"Wed, 24 Jul 2024 00:02:00 +0000","link":"https:\/\/dev.to\/nevmenandr\/scientific-problems-are-not-real-problems-for-programmers-4ama","guid":"https:\/\/dev.to\/nevmenandr\/scientific-problems-are-not-real-problems-for-programmers-4ama","description":"<p>In 2020, a rather famous person wrote to me through one service for sharing scientific papers. This person is a programmer.<\/p>\n\n<p>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.<br>\nThen, 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. <\/p>\n\n<p>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. <\/p>\n\n<p>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.<\/p>\n\n<p>In my opinion, this was already an implementation of someone else's library. To this I received an even greater stream of insults. <\/p>\n\n<p>One of the ways to hurt me, which my interlocutor chose, was to attack my abilities as a programmer. \u201cYou are not a real programmer, you just use programming for your small scientific tasks, and you don't understand anything\u201d.<\/p>\n\n<p><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\"><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\"><\/a><\/p>\n\n<p>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.<\/p>\n\n<p>But the most interesting thing here is the contrast between my \u201clittle science tasks\u201d and the apparently big and serious stuff that programming is actually for.<\/p>\n\n","category":["scientific","squabbles","libraries","jquery"]}]}}