PageSourceSearch

https://chrisvoncsefalvay.com/posts/

html chrisvoncsefalvay.com collected 2026-09-24 09:28:33 UTC 131,145 bytes, 2,556 lines download raw bytes

1<!DOCTYPE html>
2<html xmlns="http://www.w3.org/1999/xhtml" lang="en-GB" xml:lang="en-GB"><head>
3
4<meta charset="utf-8">
5<meta name="generator" content="quarto-1.10.18">
6
7<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
8
9<meta name="author" content="Chris von Csefalvay">
10<meta name="description" content="Essays and notes by Chris von Csefalvay on AI, public health, technology, history and the odd side road.">
11
12<title>The Notebook – Chris von Csefalvay</title>
13<style>
14/* Default styles provided by pandoc.
15** See https://pandoc.org/MANUAL.html#variables-for-html for config info.
16*/
17span.smallcaps{font-variant: small-caps;}
18div.columns{display: flex; gap: 1.5em;}
19div.column{flex: auto;}
20@media screen {
21div.columns{gap: min(4vw, 1.5em);}
22div.column{overflow-x: auto;}
23}
24div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
25ul.task-list{list-style: none;}
26ul.task-list li input[type="checkbox"] {
27  width: 0.8em;
28  margin: 0 0.8em 0.2em -1em; /* quarto-specific, see https://github.com/quarto-dev/quarto-cli/issues/4556 */ 
29  vertical-align: middle;
30}
31</style>
32
33
34<script src="../site_libs/quarto-nav/quarto-nav.js"></script>
vendor: 1 bytes, line 34
34
35<script src="../site_libs/quarto-nav/headroom.min.js"></script>
vendor: 1 bytes, line 35
35
36<script src="../site_libs/clipboard/clipboard.min.js"></script>
vendor: 1 bytes, line 36
36
37<script src="../site_libs/quarto-search/autocomplete.umd.js"></script>
vendor: 1 bytes, line 37
37
38<script src="../site_libs/quarto-search/fuse.min.js"></script>
vendor: 1 bytes, line 38
38
39<script src="../site_libs/quarto-search/quarto-search.js"></script>
39
40<meta name="quarto:offset" content="../">
41<script src="../site_libs/quarto-listing/list.min.js"></script>
vendor: 1 bytes, line 41
41
42<script src="../site_libs/quarto-listing/quarto-listing.js"></script>
vendor: 1 bytes, line 42
42
43<script src="../site_libs/quarto-html/quarto.js" type="module"></script>
vendor: 1 bytes, line 43
43
44<script src="../site_libs/quarto-html/tabsets/tabsets.js" type="module"></script>
vendor: 1 bytes, line 44
44
45<script src="../site_libs/quarto-html/popper.min.js"></script>
vendor: 1 bytes, line 45
45
46<script src="../site_libs/quarto-html/tippy.umd.min.js"></script>
vendor: 1 bytes, line 46
46
47<script src="../site_libs/quarto-html/anchor.min.js"></script>
47
48<link href="../site_libs/quarto-html/tippy.css" rel="stylesheet">
49<link href="../site_libs/quarto-html/quarto-syntax-highlighting-64a204ab8560d761af7679ceaba22944.css" rel="stylesheet" id="quarto-text-highlighting-styles">
50<script src="../site_libs/bootstrap/bootstrap.min.js"></script>
50
51<link href="../site_libs/bootstrap/bootstrap-icons.css" rel="stylesheet">
52<link href="../site_libs/bootstrap/bootstrap-01a80aa1be267aa4e262ac3a3e4623da.min.css" rel="stylesheet" append-hash="true" id="quarto-bootstrap" data-mode="light">
53<script id="quarto-search-options" type="application/json">{
54  "location": "navbar",
55  "copy-button": false,
56  "collapse-after": 3,
57  "panel-placement": "end",
58  "type": "overlay",
59  "limit": 50,
60  "keyboard-shortcut": [
61    "f",
62    "/",
63    "s"
64  ],
65  "show-item-context": false,
66  "language": {
67    "search-no-results-text": "No results",
68    "search-matching-documents-text": "matching documents",
69    "search-copy-link-title": "Copy link to search",
70    "search-hide-matches-text": "Hide additional matches",
71    "search-more-match-text": "more match in this document",
72    "search-more-matches-text": "more matches in this document",
73    "search-clear-button-title": "Clear",
74    "search-text-placeholder": "",
75    "search-detached-cancel-button-title": "Cancel",
76    "search-submit-button-title": "Submit",
77    "search-label": "Search"
78  }
79}</script>
79<script>
80
81  window.document.addEventListener("DOMContentLoaded", function (_event) {
82    const listingTargetEl = window.document.querySelector('#listing-listing .list');
83    if (!listingTargetEl) {
84      // No listing discovered, do not attach.
85      return; 
86    }
87
88    const options = {
89      valueNames: ['listing-date','listing-title','listing-author','listing-image','listing-description','listing-categories',{ data: ['index'] },{ data: ['categories'] },{ data: ['listing-date-sort'] },{ data: ['listing-file-modified-sort'] }],
90      page: 25,
91    pagination: { item: "<li class='page-item'><a class='page page-link' href='#'></a></li>" },
92      searchColumns: ["listing-date","listing-title","listing-author","listing-image","listing-description","listing-categories"],
93    };
94
95    window['quarto-listings'] = window['quarto-listings'] || {};
96    window['quarto-listings']['listing-listing'] = new List('listing-listing', options);
97
98    if (window['quarto-listing-loaded']) {
99      window['quarto-listing-loaded']();
100    }
101  });
102
103  window.addEventListener('hashchange',() => {
104    if (window['quarto-listing-loaded']) {
105      window['quarto-listing-loaded']();
106    }
107  })
108  </script>
108<script async="" src="https://www.googletagmanager.com/gtag/js?id=395640625"></script>
108
109
110<script type="text/javascript">
111
112window.dataLayer = window.dataLayer || [];
113function gtag(){dataLayer.push(arguments);}
114gtag('js', new Date());
115gtag('config', '395640625', { 'anonymize_ip': true});
116</script>
116<script type="application/ld+json">{"@context":"https://schema.org","@type":"Person","@id":"https://chrisvoncsefalvay.com/#person","name":"Chris von Csefalvay","givenName":"Chris","familyName":"von Csefalvay","jobTitle":"Principal","description":"Chris von Csefalvay is a Principal at HCLTech's AI Practice, leading post-training research and clinical intelligence. He is an AI researcher and computational epidemiologist and the author of The Craft of Post-Training: A Practical Guide for AI Engineers and Developers (published by No Starch Press in 2026), Differentiable Photon Transport, Volume I: Foundations and Computational Modeling of Infectious Disease (Elsevier, 2023).","url":"https://chrisvoncsefalvay.com","image":"https://chrisvoncsefalvay.com/img/portrait_2x3midres.webp","sameAs":["https://orcid.org/0000-0003-3131-0864","https://scholar.google.com/citations?user=X_2G-VsAAAAJ","https://www.wikidata.org/wiki/Q107095298","https://hu.wikipedia.org/wiki/Chris_von_Csefalvay","https://github.com/chrisvoncsefalvay","https://twitter.com/epichrisis","https://www.linkedin.com/in/chrisvoncsefalvay/","https://www.instagram.com/chrisvoncsefalvay/","https://viaf.org/viaf/7190162669581955500004","https://isni.org/isni/0000000502655729","https://www.webofscience.com/wos/author/record/IZD-6900-2023","https://osf.io/awhgj","https://en.wikiquote.org/wiki/Chris_von_Csefalvay","https://www.researchgate.net/profile/Chris-Von-Csefalvay","https://www.crunchbase.com/person/chris-von-csefalvay","https://dblp.org/pid/157/8137.html","https://www.goodreads.com/author/show/15108248.Chris_von_Csefalvay","https://golden.com/wiki/Chris_von_Csefalvay-BY88G48","https://oxford.academia.edu/ChrisVonCsefalvay","https://medium.com/@chrisvcsefalvay","https://commons.wikimedia.org/wiki/Category:Chris_von_Csefalvay","https://sciprofiles.com/profile/1163482"],"address":{"@type":"PostalAddress","addressLocality":"Denver","addressRegion":"CO","addressCountry":"United States"},"alumniOf":[{"@type":"CollegeOrUniversity","name":"University of Oxford","sameAs":"https://en.wikipedia.org/wiki/University_of_Oxford"},{"@type":"CollegeOrUniversity","name":"Cardiff University","sameAs":"https://en.wikipedia.org/wiki/Cardiff_University"}],"worksFor":{"@type":"Organization","@id":"https://www.hcltech.com/#organization","name":"HCLTech","url":"https://www.hcltech.com","sameAs":"https://en.wikipedia.org/wiki/HCLTech"},"birthDate":"1986-07-15","birthPlace":{"@type":"Place","name":"Budapest","address":{"@type":"PostalAddress","addressCountry":"HU"}},"nationality":[{"@type":"Country","name":"United Kingdom"},{"@type":"Country","name":"Hungary"}],"memberOf":[{"@type":"Organization","name":"Royal Society for Public Health"},{"@type":"Organization","name":"IEEE"}],"knowsAbout":["post-training for language models","supervised fine-tuning","reinforcement learning from verifiable rewards","group relative policy optimization","agentic AI systems","multi-agent frameworks","large language models","LLM evaluation","computational epidemiology","AI alignment","LLMOps"],"hasCredential":[{"@type":"EducationalOccupationalCredential","name":"Certified in Public Health (CPH)","credentialCategory":"Professional Certification","recognizedBy":{"@type":"Organization","name":"National Board of Public Health Examiners","url":"https://www.nbphe.org"}},{"@type":"EducationalOccupationalCredential","name":"Fellow of the Royal Society for Public Health (FRSPH)","credentialCategory":"Fellowship","recognizedBy":{"@type":"Organization","name":"Royal Society for Public Health","url":"https://www.rsph.org.uk","sameAs":"https://en.wikipedia.org/wiki/Royal_Society_for_Public_Health"}},{"@type":"EducationalOccupationalCredential","name":"IEEE Senior Member","credentialCategory":"Professional Membership","recognizedBy":{"@type":"Organization","name":"IEEE","url":"https://www.ieee.org","sameAs":"https://en.wikipedia.org/wiki/Institute_of_Electrical_and_Electronics_Engineers"}}],"hasOccupation":{"@type":"Occupation","name":"AI Researcher and Computational Epidemiologist","occupationalCategory":"15-2051.00","skills":["Machine Learning","Natural Language Processing","Epidemiological Modeling","Reinforcement Learning","Large Language Models"]},"award":"Martin Wronker Prize, University of Oxford"}</script>
vendor: 1 bytes, line 116
116
117<script type="application/ld+json">{"@context":"https://schema.org","@type":"Book","@id":"https://chrisvoncsefalvay.com/#book-post-training","name":"The Craft of Post-Training","alternativeHeadline":"A Practical Guide for AI Engineers and Developers","isbn":"9781718505209","numberOfPages":416,"bookFormat":"https://schema.org/Paperback","inLanguage":"en","publisher":{"@type":"Organization","name":"No Starch Press"},"url":"https://posttraining.guide","sameAs":"https://www.amazon.com/dp/1718505205","datePublished":"2026","author":{"@id":"https://chrisvoncsefalvay.com/#person"}}</script>
vendor: 1 bytes, line 117
117
118<script type="application/ld+json">{"@context":"https://schema.org","@type":"Book","@id":"https://chrisvoncsefalvay.com/#book-cmid","name":"Computational Modeling of Infectious Disease","isbn":"9780323953894","inLanguage":"en","publisher":{"@type":"Organization","name":"Elsevier"},"url":"https://computationalinfectiousdisease.com","sameAs":"https://shop.elsevier.com/books/computational-modeling-of-infectious-disease/von-csefalvay/978-0-323-95389-4","datePublished":"2023-06-01","author":{"@id":"https://chrisvoncsefalvay.com/#person"}}</script>
vendor: 1 bytes, line 118
118
119<script type="application/ld+json">{"@context":"https://schema.org","@type":"Book","@id":"https://chrisvoncsefalvay.com/#book-photon-transport","name":"Differentiable Photon Transport","alternativeHeadline":"Volume I: Foundations","inLanguage":"en","url":"https://photontransport.com","datePublished":"2026","author":{"@id":"https://chrisvoncsefalvay.com/#person"}}</script>
vendor: 1 bytes, line 119
119
120<script type="application/ld+json">{"@context":"https://schema.org","@type":"WebSite","@id":"https://chrisvoncsefalvay.com/#website","name":"Chris von Csefalvay","url":"https://chrisvoncsefalvay.com","author":{"@id":"https://chrisvoncsefalvay.com/#person"},"description":"Chris von Csefalvay is an AI researcher and computational epidemiologist specialising in post-training for language models, agentic AI systems, and reinforcement learning from verifiable rewards.","inLanguage":"en"}</script>
120
121<meta name="author" content="Chris von Csefalvay">
122<link rel="me" href="https://github.com/chrisvoncsefalvay">
123<link rel="me" href="https://www.linkedin.com/in/chrisvoncsefalvay/">
124<link rel="me" href="https://orcid.org/0000-0003-3131-0864">
125<link rel="me" href="https://twitter.com/epichrisis">
126<link rel="me" href="https://www.wikidata.org/wiki/Q107095298">
127<link rel="me" href="https://scholar.google.com/citations?user=X_2G-VsAAAAJ">
128<link rel="canonical" href="https://chrisvoncsefalvay.com/posts/">
129<meta property="og:url" content="https://chrisvoncsefalvay.com/posts/">
130<meta property="og:type" content="website">
131
132  
132<script src="https://cdnjs.cloudflare.com/polyfill/v3/polyfill.min.js?features=es6"></script>
132
133  
133<script defer="" src="https://cdn.jsdelivr.net/npm/mathjax@4/tex-chtml.js" type="text/javascript"></script>
133
134
135<script type="text/javascript">
136const typesetMath = (el) => {
137  if (window.MathJax) {
138    // MathJax Typeset
139    window.MathJax.typeset([el]);
140  } else if (window.katex) {
141    // KaTeX Render
142    var mathElements = el.getElementsByClassName("math");
143    var macros = [];
144    for (var i = 0; i < mathElements.length; i++) {
145      var texText = mathElements[i].firstChild;
146      if (mathElements[i].tagName == "SPAN" && texText && texText.data) {
147        window.katex.render(texText.data, mathElements[i], {
148          displayMode: mathElements[i].classList.contains('display'),
149          throwOnError: false,
150          macros: macros,
151          fleqn: false
152        });
153      }
154    }
155  }
156}
157window.Quarto = {
158  typesetMath
159};
160</script>
160
161
162<link rel="alternate" type="application/rss+xml" title="Chris von Csefalvay" href="index.xml" data-external="1"><meta property="og:title" content="The Notebook – Chris von Csefalvay">
163<meta property="og:description" content="Essays and notes by Chris von Csefalvay on AI, public health, technology, history and the odd side road.">
164<meta property="og:image" content="https://chrisvoncsefalvay.com/posts/data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo1N0NEMjA4MDI1MjA2ODExOTk0QzkzNTEzRjZEQTg1NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozM0NDOEJGNEZGNTcxMUUxODdBOEVCODg2RjdCQ0QwOSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozM0NDOEJGM0ZGNTcxMUUxODdBOEVCODg2RjdCQ0QwOSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkZDN0YxMTc0MDcyMDY4MTE5NUZFRDc5MUM2MUUwNEREIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU3Q0QyMDgwMjUyMDY4MTE5OTRDOTM1MTNGNkRBODU3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+84NovQAAAR1JREFUeNpiZEADy85ZJgCpeCB2QJM6AMQLo4yOL0AWZETSqACk1gOxAQN+cAGIA4EGPQBxmJA0nwdpjjQ8xqArmczw5tMHXAaALDgP1QMxAGqzAAPxQACqh4ER6uf5MBlkm0X4EGayMfMw/Pr7Bd2gRBZogMFBrv01hisv5jLsv9nLAPIOMnjy8RDDyYctyAbFM2EJbRQw+aAWw/LzVgx7b+cwCHKqMhjJFCBLOzAR6+lXX84xnHjYyqAo5IUizkRCwIENQQckGSDGY4TVgAPEaraQr2a4/24bSuoExcJCfAEJihXkWDj3ZAKy9EJGaEo8T0QSxkjSwORsCAuDQCD+QILmD1A9kECEZgxDaEZhICIzGcIyEyOl2RkgwAAhkmC+eAm0TAAAAABJRU5ErkJggg==">
165<meta property="og:site_name" content="Chris von Csefalvay">
166<meta property="og:image:alt" content="">
167<meta name="twitter:title" content="The Notebook – Chris von Csefalvay">
168<meta name="twitter:description" content="Essays and notes by Chris von Csefalvay on AI, public health, technology, history and the odd side road.">
169<meta name="twitter:image" content="https://chrisvoncsefalvay.com/posts/data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo1N0NEMjA4MDI1MjA2ODExOTk0QzkzNTEzRjZEQTg1NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozM0NDOEJGNEZGNTcxMUUxODdBOEVCODg2RjdCQ0QwOSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozM0NDOEJGM0ZGNTcxMUUxODdBOEVCODg2RjdCQ0QwOSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkZDN0YxMTc0MDcyMDY4MTE5NUZFRDc5MUM2MUUwNEREIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU3Q0QyMDgwMjUyMDY4MTE5OTRDOTM1MTNGNkRBODU3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+84NovQAAAR1JREFUeNpiZEADy85ZJgCpeCB2QJM6AMQLo4yOL0AWZETSqACk1gOxAQN+cAGIA4EGPQBxmJA0nwdpjjQ8xqArmczw5tMHXAaALDgP1QMxAGqzAAPxQACqh4ER6uf5MBlkm0X4EGayMfMw/Pr7Bd2gRBZogMFBrv01hisv5jLsv9nLAPIOMnjy8RDDyYctyAbFM2EJbRQw+aAWw/LzVgx7b+cwCHKqMhjJFCBLOzAR6+lXX84xnHjYyqAo5IUizkRCwIENQQckGSDGY4TVgAPEaraQr2a4/24bSuoExcJCfAEJihXkWDj3ZAKy9EJGaEo8T0QSxkjSwORsCAuDQCD+QILmD1A9kECEZgxDaEZhICIzGcIyEyOl2RkgwAAhkmC+eAm0TAAAAABJRU5ErkJggg==">
170<meta name="twitter:creator" content="@epichrisis">
171<meta name="twitter:site" content="@epichrisis">
172<meta name="twitter:image:alt" content="">
173<meta name="twitter:card" content="summary_large_image">
174</head>
175
176<body class="nav-fixed quarto-light">
177
178<div id="quarto-search-results"></div>
179  <header id="quarto-header" class="headroom fixed-top">
180    <nav class="navbar navbar-expand-lg " data-bs-theme="dark">
181      <div class="navbar-container container-fluid">
182      <div class="navbar-brand-container mx-auto">
183    <a class="navbar-brand" href="../index.html">
184    <span class="navbar-title">Chris von Csefalvay</span>
185    </a>
186  </div>
187            <div id="quarto-search" class="" title="Search"></div>
188          <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarCollapse" aria-controls="navbarC
188ollapse" role="menu" aria-expanded="false" aria-label="Toggle navigation" onclick="if (window.quartoToggleHeadroom) { window.quartoToggleHeadroom(); }">
189  <span class="navbar-toggler-icon"></span>
190</button>
191          <div class="collapse navbar-collapse" id="navbarCollapse">
192            <ul class="navbar-nav navbar-nav-scroll me-auto">
193  <li class="nav-item">
194    <a class="nav-link" href="../index.html"> 
195<span class="menu-text">Home</span></a>
196  </li>  
197  <li class="nav-item">
198    <a class="nav-link" href="../about"> 
199<span class="menu-text">About</span></a>
200  </li>  
201  <li class="nav-item">
202    <a class="nav-link" href="../papers"> 
203<span class="menu-text">Papers</span></a>
204  </li>  
205  <li class="nav-item">
206    <a class="nav-link" href="../teaching"> 
207<span class="menu-text">Teaching</span></a>
208  </li>  
209  <li class="nav-item">
210    <a class="nav-link" href="../media"> 
211<span class="menu-text">Media</span></a>
212  </li>  
213  <li class="nav-item">
214    <a class="nav-link" href="../posts"> 
215<span class="menu-text">The Notebook</span></a>
216  </li>  
217  <li class="nav-item">
218    <a class="nav-link" href="../talks"> 
219<span class="menu-text">Talks</span></a>
220  </li>  
221  <li class="nav-item">
222    <a class="nav-link" href="https://computationalinfectiousdisease.com"> 
223<span class="menu-text">Computational Modeling of Infectious Disease</span></a>
224  </li>  
225  <li class="nav-item">
226    <a class="nav-link" href="https://nostarch.com/craft-of-post-training"> 
227<span class="menu-text">The Craft of Post-Training</span></a>
228  </li>  
229  <li class="nav-item">
230    <a class="nav-link" href="https://photontransport.com"> 
231<span class="menu-text">Differentiable Photon Transport</span></a>
232  </li>  
233</ul>
234          </div> <!-- /navcollapse -->
235            <div class="quarto-navbar-tools">
236</div>
237      </div> <!-- /container-fluid -->
238    </nav>
239</header>
240<!-- content -->
241<div id="quarto-content" class="quarto-container page-columns page-rows-contents page-layout-full page-navbar">
242<!-- sidebar -->
243<!-- margin-sidebar -->
244    <div id="quarto-margin-sidebar" class="sidebar margin-sidebar">
245        
246    <h5 class="quarto-listing-category-title">Categories</h5><div class="quarto-listing-category category-default"><div class="category" data-category="">All <span class="quarto-category-count">(53)</span></div><div class="category" data-category="QUJNcw==">ABMs <span class="quarto-category-count">(2)</span></div><div class="category" data-category="YWNhZGVtaWE=">academia <span class="quarto-category-count">(1)</span></div><div class="category" data-category="YWdlbnRpYyUyMEFJ">agentic AI <span class="quarto-category-count">(6)</span></div><div class="category" data-category="QWdlbnRpYyUyMEFJ">Agentic AI <span class="quarto-category-count">(3)</span></div><div class="category" data-category="YWdlbnRz">agents <span class="quarto-category-count">(4)</span></div><div class="category" data-category="QUk=">AI <span class="quarto-category-count">(41)</span></div><div class="category" data-category="QUklMjBwb2xpY3k=">AI policy <span class="quarto-category-count">(1)</span></div><div class="category" data-category="YWxpZ25tZW50">alignment <span class="quarto-category-count">(1)</span></div><div class="category" data-category="YXJ0">art <span class="quarto-category-count">(1)</span></div><div class="category" data-category="YmFkJTIwc2NpZW5jZQ==">bad science <span class="quarto-category-count">(1)</span></div><div class="category" data-category="Y29tcHV0YXRpb25hbCUyMGNoZW1pc3RyeQ==">computational chemistry <span class="quarto-category-count">(1)</span></div><div class="category" data-category="Y29tcHV0YXRpb25hbCUyMGVwaWRlbWlvbG9neQ==">computational epidemiology <span class="quarto-category-count">(1)</span></div><div class="category" data-category="Y29udGV4dCUyMGVuZ2luZWVyaW5n">context engineering <span class="quarto-category-count">(1)</span></div><div class="category" data-category="Q09WSUQtMTk=">COVID-19 <span class="quarto-category-count">(1)</span></div><div class="category" data-category="Q3Jvc3MtcG9zdCUzQSUyMFN0YXJzY2hlbWE=">Cross-post: Starschema <span class="quarto-category-count">(4)</span></div><div class="category" data-category="Y3liZXJzZWN1cml0eQ==">cybersecurity <span class="quarto-category-count">(1)</span></div><div class="category" data-category="ZGFzaGJvYXJkcw==">dashboards <span class="quarto-category-count">(1)</span></div><div class="category" data-category="ZGF0YQ==">data <span class="quarto-category-count">(1)</span></div><div class="category" data-category="ZGF0YSUyMHNjaWVuY2U=">data science <span class="quarto-category-count">(2)</span></div><div class="category" data-category="ZGF0YSUyMHZpc3VhbGl6YXRpb24=">data visualization <span class="quarto-category-count">(1)</span></div><div class="category" data-category="ZGlzYWJpbGl0eQ==">disability <span class="quarto-category-count">(1)</span></div><div class="category" data-category="ZWNvbG9neQ==">ecology <span class="quarto-category-count">(1)</span></div><div class="category" data-category="ZWNvbm9tZXRyaWNz">econometrics <span class="quarto-category-count">(1)</span></div><div class="category" data-category="ZXBpZGVtaWNz">epidemics <span class="quarto-category-count">(1)</span></div><div class="category" data-category="ZXRoaWNz">ethics <span class="quarto-category-count">(4)</span></div><div class="category" data-category="ZXZhbHM=">evals <span class="quarto-category-count">(1)</span></div><div class="category" data-category="ZXZvbHV0aW9u">evolution <span class="quarto-category-count">(1)</span></div><div class="category" data-category="ZmluZS10dW5pbmc=">fine-tuning <span class="quarto-category-count">(2)</span></div><div class="category" data-category="Zml0bmVzcw==">fitness <span class="quarto-category-count">(2)</span></div><div class="category" data-category="Z2FtZSUyMHRoZW9yeQ==">game theory <span class="quarto-category-count">(1)</span></div><div class="category" data-category="Z2FtZXM=">games <span class="quarto-category-count">(1)</span></div><div class="category" data-category="Z292ZXJuYW5jZQ==">governance <span class="quarto-category-count">(1)</span></div><div class="category" data-category="R1BULTU=">GPT-5 <span class="quarto-category-count">(1)</span></div><div class="category" data-category="R1JQTw==">GRPO <span class="quarto-category-count">(1)</span></div><div class="category" data-category="aGlzdG9yeQ==">history <span class="quarto-category-count">(1)</span></div><div class="category" data-category="aHVtYW4lMjBhZ2VuY3k=">human agency <span class="quarto-category-count">(1)</span></div><div class="category" data-category="aHVtYW4tY29tcHV0ZXIlMjBpbnRlcmFjdGlvbg==">human-computer interaction <span class="quarto-category-count">(1)</span></div><div class="category" data-category="SW50ZXJvcGVyYWJpbGl0eQ==">Interoperability <span class="quarto-category-count">(1)</span></div><div class="category" data-category="SnVsaWE=">Julia <span class="quarto-category-count">(1)</span></div><div class="category" data-category="bGFuZ3VhZ2U=">language <span class="quarto-category-count">(1)</span></div><div class="category" data-category="bGl0ZXJhdHVyZQ==">literature <span class="quarto-category-count">(1)</span></div><div class="category" data-category="TExNT3Bz">LLMOps <span class="quarto-category-count">(3)</span></div><div class="category" data-category="TExNcw==">LLMs <span class="quarto-category-count">(31)</span></div><div class="category" data-category="TUNQ">MCP <span class="quarto-category-count">(1)</span></div><div class="category" data-category="TUxPcHM=">MLOps <span class="quarto-category-count">(1)</span></div><div class="category" data-category="bmV1cm9zY2llbmNl">neuroscience <span class="quarto-category-count">(1)</span></div><div class="category" data-category="cGVyc29uYWw=">personal <span class="quarto-category-count">(1)</span></div><div class="category" data-category="cGhhcm1hY29sb2d5">pharmacology <span class="quarto-category-count">(1)</span></div><div class="category" data-category="cGhpbG9zb3BoeQ==">philosophy <span class="quarto-category-count">(7)</span></div><div class="category" data-category="cGh5c2ljYWwlMjBBSQ==">physical AI <span class="quarto-category-count">(1)</span></div><div class="category" data-category="cG9zdC10cmFpbmluZw==">
246post-training <span class="quarto-category-count">(5)</span></div><div class="category" data-category="cHJvZ3JhbW1pbmc=">programming <span class="quarto-category-count">(1)</span></div><div class="category" data-category="cHJvbXB0JTIwZW5naW5lZXJpbmc=">prompt engineering <span class="quarto-category-count">(1)</span></div><div class="category" data-category="cHVibGljJTIwaGVhbHRo">public health <span class="quarto-category-count">(1)</span></div><div class="category" data-category="UHl0aG9u">Python <span class="quarto-category-count">(1)</span></div><div class="category" data-category="UXVhcnRv">Quarto <span class="quarto-category-count">(2)</span></div><div class="category" data-category="UXVvcmE=">Quora <span class="quarto-category-count">(1)</span></div><div class="category" data-category="cmVpbmZvcmNlbWVudCUyMGxlYXJuaW5n">reinforcement learning <span class="quarto-category-count">(2)</span></div><div class="category" data-category="UkxIRg==">RLHF <span class="quarto-category-count">(1)</span></div><div class="category" data-category="cm9ib3RpY3M=">robotics <span class="quarto-category-count">(1)</span></div><div class="category" data-category="c2NpZW5jZQ==">science <span class="quarto-category-count">(1)</span></div><div class="category" data-category="c2Vuc2VtYWtpbmc=">sensemaking <span class="quarto-category-count">(1)</span></div><div class="category" data-category="U2tpRXJn">SkiErg <span class="quarto-category-count">(1)</span></div><div class="category" data-category="U29jaWV0eQ==">Society <span class="quarto-category-count">(1)</span></div><div class="category" data-category="c3Rvcnl0ZWxsaW5n">storytelling <span class="quarto-category-count">(1)</span></div><div class="category" data-category="c3R5bGUlMjB0cmFuc2Zlcg==">style transfer <span class="quarto-category-count">(1)</span></div><div class="category" data-category="dGVjaCUyMHByZWRpY3Rpb25z">tech predictions <span class="quarto-category-count">(3)</span></div><div class="category" data-category="dGVjaG5vbG9neQ==">technology <span class="quarto-category-count">(1)</span></div><div class="category" data-category="dmFjY2luZXM=">vaccines <span class="quarto-category-count">(1)</span></div><div class="category" data-category="d3JpdGluZw==">writing <span class="quarto-category-count">(1)</span></div></div></div>
247<!-- main -->
248<main class="content column-page-left" id="quarto-document-content">
249
250<header id="title-block-header" class="quarto-title-block default">
251<div class="quarto-title">
252<h1 class="title">The Notebook</h1>
253</div>
254
255<div>
256  <div class="description">
257    Essays and notes by Chris von Csefalvay on AI, public health, technology, history and the odd side road.
258  </div>
259</div>
260
261
262<div class="quarto-title-meta column-page-left">
263
264    <div>
265    <div class="quarto-title-meta-heading">Author</div>
266    <div class="quarto-title-meta-contents">
267             <p>Chris von Csefalvay <a href="mailto:[email protected]" class="quarto-title-author-email"><i class="bi bi-envelope"></i></a> <a href="https://orcid.org/0000-0003-3131-0864" class="quarto-title-author-orcid" aria-label="ORCID profile for Chris von Csefalvay"> <img alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo1N0NEMjA4MDI1MjA2ODExOTk0QzkzNTEzRjZEQTg1NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozM0NDOEJGNEZGNTcxMUUxODdBOEVCODg2RjdCQ0QwOSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozM0NDOEJGM0ZGNTcxMUUxODdBOEVCODg2RjdCQ0QwOSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkZDN0YxMTc0MDcyMDY4MTE5NUZFRDc5MUM2MUUwNEREIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU3Q0QyMDgwMjUyMDY4MTE5OTRDOTM1MTNGNkRBODU3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+84NovQAAAR1JREFUeNpiZEADy85ZJgCpeCB2QJM6AMQLo4yOL0AWZETSqACk1gOxAQN+cAGIA4EGPQBxmJA0nwdpjjQ8xqArmczw5tMHXAaALDgP1QMxAGqzAAPxQACqh4ER6uf5MBlkm0X4EGayMfMw/Pr7Bd2gRBZogMFBrv01hisv5jLsv9nLAPIOMnjy8RDDyYctyAbFM2EJbRQw+aAWw/LzVgx7b+cwCHKqMhjJFCBLOzAR6+lXX84xnHjYyqAo5IUizkRCwIENQQckGSDGY4TVgAPEaraQr2a4/24bSuoExcJCfAEJihXkWDj3ZAKy9EJGaEo8T0QSxkjSwORsCAuDQCD+QILmD1A9kECEZgxDaEZhICIzGcIyEyOl2RkgwAAhkmC+eAm0TAAAAABJRU5ErkJggg=="></a></p>
268          </div>
269  </div>
270    
271  
272    
273  </div>
274  
275
276
277</header>
278
279
280
281
282
283
284<div class="quarto-listing quarto-listing-container-default" id="listing-listing">
285<div class="list quarto-listing-default">
286<div class="quarto-post image-right" data-index="0" data-categories="cGh5c2ljYWwlMjBBSSUyQ2RhdGElMkNyb2JvdGljcw==" data-listing-date-sort="1785801600000" data-listing-file-modified-sort="1790221797508" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="20" data-listing-word-count-sort="3811">
287<div class="thumbnail"><a href="../posts/skeleton-coast/index.html" class="no-external">
288
289<img loading="lazy" src="../posts/skeleton-coast/header.webp" class="thumbnail-image">
290
291</a></div>
292<div class="body">
293<h3 class="no-anchor listing-title">
294<a href="../posts/skeleton-coast/index.html" class="no-external">The view from Skeleton Coast</a>
295</h3>
296<div class="listing-categories">
297
298<div class="listing-category" onclick="window.quartoListingCategory('cGh5c2ljYWwlMjBBSQ=='); return false;">physical AI</div>
299
300<div class="listing-category" onclick="window.quartoListingCategory('ZGF0YQ=='); return false;">data</div>
301
302<div class="listing-category" onclick="window.quartoListingCategory('cm9ib3RpY3M='); return false;">robotics</div>
303
304</div>
305<div class="delink listing-description"><a href="../posts/skeleton-coast/index.html" class="no-external">
306<p>There is an ocean of egocentric data and a desert next to it, and almost nobody selling either can tell you what it is for.</p>
307</a></div>
308</div>
309<div class="metadata">
310<a href="../posts/skeleton-coast/index.html" class="no-external">
311<div class="listing-date">
3124 Aug 2026
313</div>
314<div class="listing-author">
315Chris von Csefalvay
316</div>
317</a>
318</div>
319</div>
320<div class="quarto-post image-right" data-index="1" data-categories="QUklMkNwb3N0LXRyYWluaW5nJTJDQUklMjBwb2xpY3klMkNodW1hbiUyMGFnZW5jeQ==" data-listing-date-sort="1785024000000" data-listing-file-modified-sort="1790221797508" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="11" data-listing-word-count-sort="2149">
321<div class="thumbnail"><a href="../posts/right-to-become-more/index.html" class="no-external">
322
323<img loading="lazy" src="../posts/right-to-become-more/header.webp" class="thumbnail-image">
324
325</a></div>
326<div class="body">
327<h3 class="no-anchor listing-title">
328<a href="../posts/right-to-become-more/index.html" class="no-external">The right to become more</a>
329</h3>
330<div class="listing-categories">
331
332<div class="listing-category" onclick="window.quartoListingCategory('QUk='); return false;">AI</div>
333
334<div class="listing-category" onclick="window.quartoListingCategory('cG9zdC10cmFpbmluZw=='); return false;">
334post-training</div>
335
336<div class="listing-category" onclick="window.quartoListingCategory('QUklMjBwb2xpY3k='); return false;">AI policy</div>
337
338<div class="listing-category" onclick="window.quartoListingCategory('aHVtYW4lMjBhZ2VuY3k='); return false;">human agency</div>
339
340</div>
341<div class="delink listing-description"><a href="../posts/right-to-become-more/index.html" class="no-external">
342<p>On post-training, human agency and the right to shape our technological future.</p>
343</a></div>
344</div>
345<div class="metadata">
346<a href="../posts/right-to-become-more/index.html" class="no-external">
347<div class="listing-date">
34826 Jul 2026
349</div>
350<div class="listing-author">
351Chris von Csefalvay
352</div>
353</a>
354</div>
355</div>
356<div class="quarto-post image-right" data-index="2" data-categories="TExNcyUyQ0FJJTJDYWdlbnRpYyUyMEFJ" data-listing-date-sort="1767830400000" data-listing-file-modified-sort="1790221797534" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="11" data-listing-word-count-sort="2172">
357<div class="thumbnail"><a href="../posts/war-for-the-soul-of-ai/index.html" class="no-external">
358
359<img loading="lazy" src="../posts/war-for-the-soul-of-ai/header.webp" class="thumbnail-image">
360
361</a></div>
362<div class="body">
363<h3 class="no-anchor listing-title">
364<a href="../posts/war-for-the-soul-of-ai/index.html" class="no-external">The War for the Soul of AI</a>
365</h3>
366<div class="listing-categories">
367
368<div class="listing-category" onclick="window.quartoListingCategory('TExNcw=='); return false;">LLMs</div>
369
370<div class="listing-category" onclick="window.quartoListingCategory('QUk='); return false;">AI</div>
371
372<div class="listing-category" onclick="window.quartoListingCategory('YWdlbnRpYyUyMEFJ'); return false;">agentic AI</div>
373
374</div>
375<div class="delink listing-description"><a href="../posts/war-for-the-soul-of-ai/index.html" class="no-external">
376<p>Where does intelligence live? Just about everything depends on the answer to that question.</p>
377</a></div>
378</div>
379<div class="metadata">
380<a href="../posts/war-for-the-soul-of-ai/index.html" class="no-external">
381<div class="listing-date">
3828 Jan 2026
383</div>
384<div class="listing-author">
385Chris von Csefalvay
386</div>
387</a>
388</div>
389</div>
390<div class="quarto-post image-right" data-index="3" data-categories="QUklMkNMTE1zJTJDTExNT3BzJTJDcG9zdC10cmFpbmluZyUyQ3JlaW5mb3JjZW1lbnQlMjBsZWFybmluZyUyQ0dSUE8=" data-listing-date-sort="1767484800000" data-listing-file-modified-sort="1790221797484" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="44" data-listing-word-count-sort="8692">
391<div class="thumbnail"><a href="../posts/post-training-instrument-cluster-grpo/index.html" class="no-external">
392
393<img loading="lazy" src="../posts/post-training-instrument-cluster-grpo/grpo_dashboard.png" class="thumbnail-image">
394
395</a></div>
396<div class="body">
397<h3 class="no-anchor listing-title">
398<a href="../posts/post-training-instrument-cluster-grpo/index.html" class="no-external">The post-training instrument cluster – Part III</a>
399</h3>
400<div class="listing-categories">
401
402<div class="listing-category" onclick="window.quartoListingCategory('QUk='); return false;">AI</div>
403
404<div class="listing-category" onclick="window.quartoListingCategory('TExNcw=='); return false;">LLMs</div>
405
406<div class="listing-category" onclick="window.quartoListingCategory('TExNT3Bz'); return false;">LLMOps</div>
407
408<div class="listing-category" onclick="window.quartoListingCategory('cG9zdC10cmFpbmluZw=='); return false;">post-training</div>
409
410<div class="listing-category" onclick="window.quartoListingCategory('cmVpbmZvcmNlbWVudCUyMGxlYXJuaW5n'); return false;">reinforcement learning</div>
411
412<div class="listing-category" onclick="window.quartoListingCategory('R1JQTw=='); return false;">GRPO</div>
413
414</div>
415<div class="delink listing-description"><a href="../posts/post-training-instrument-cluster-grpo/index.html" class="no-external">
416<p>The part where you have to take all that you have learned and work hard to completely unlearn it. Here be dragons.</p>
417</a></div>
418</div>
419<div class="metadata">
420<a href="../posts/post-training-instrument-cluster-grpo/index.html" class="no-external">
421<div class="listing-date">
4224 Jan 2026
423</div>
424<div class="listing-author">
425Chris von Csefalvay
426</div>
427</a>
428</div>
429</div>
430<div class="quarto-post image-right" data-index="4" data-categories="TExNcyUyQ0FJJTJDdGVjaCUyMHByZWRpY3Rpb25z" data-listing-date-sort="1767139200000" data-listing-file-modified-sort="1790221797412" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="17" data-listing-word-count-sort="3270">
431<div class="thumbnail"><a href="../posts/five-wild-guesses-2026/index.html" class="no-external">
432
433<img loading="lazy" src="../posts/five-wild-guesses-2026/header.webp" class="thumbnail-image">
434
435</a></div>
436<div class="body">
437<h3 class="no-anchor listing-title">
438<a href="../posts/five-wild-guesses-2026/index.html" class="no-external">Five wild guesses for 2026</a>
439</h3>
440<div class="listing-categories">
441
442<div class="listing-category" onclick="window.quartoListingCategory('TExNcw=='); return false;">LLMs</div>
443
444<div class="listing-category" onclick="window.quartoListingCategory('QUk='); return false;">AI</div>
445
446<div class="listing-category" onclick="window.quartoListingCategory('dGVjaCUyMHByZWRpY3Rpb25z'); return false;">tech predictions</div>
447
448</div>
449<div class="delink listing-description"><a href="../posts/five-wild-guesses-2026/index.html" class="no-external">
450<p>The bubble everyone’s watching for isn’t the one that’s coming.</p>
451</a></div>
452</div>
453<div class="metadata">
454<a href="../posts/five-wild-guesses-2026/index.html" class="no-external">
455<div class="listing-date">
45631 Dec 2025
457</div>
458<div class="listing-author">
459Chris von Csefalvay
460</div>
461</a>
462</div>
463</div>
464<div class="quarto-post image-right" data-index="5" data-categories="QUklMkNMTE1zJTJDTExNT3BzJTJDcG9zdC10cmFpbmluZyUyQ3JlaW5mb3JjZW1lbnQlMjBsZWFybmluZyUyQ1JMSEY=" data-listing-date-sort="1766880000000" data-listing-file-modified-sort="1790221797491" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="39" data-listing-word-count-sort="7763">
465<div class="thumbnail"><a href="../posts/post-training-instrument-cluster-rl/index.html" class="no-external">
466
467<img loading="lazy" src="../posts/post-training-instrument-cluster-rl/rl_failure_patterns.png" class="thumbnail-image">
468
469</a></div>
470<div class="body">
471<h3 class="no-anchor listing-title">
472<a href="../posts/post-training-instrument-cluster-rl/index.html" class="no-external">The post-training instrument cluster – Part II</a>
473</h3>
474<div class="listing-categories">
475
476<div class="listing-category" onclick="window.quartoListingCategory('QUk='); return false;">AI</div>
477
478<div class="listing-category" onclick="window.quartoListingCategory('TExNcw=='); return false;">LLMs</div>
479
480<div class="listing-category" onclick="window.quartoListingCategory('TExNT3Bz'); return false;">LLMOps</div>
481
482<div class="listing-category" onclick="window.quartoListingCategory('cG9zdC10cmFpbmluZw=='); return false;">
482post-training</div>
483
484<div class="listing-category" onclick="window.quartoListingCategory('cmVpbmZvcmNlbWVudCUyMGxlYXJuaW5n'); return false;">reinforcement learning</div>
485
486<div class="listing-category" onclick="window.quartoListingCategory('UkxIRg=='); return false;">RLHF</div>
487
488</div>
489<div class="delink listing-description"><a href="../posts/post-training-instrument-cluster-rl/index.html" class="no-external">
490<p>Monitoring reward curves, KL divergence, and policy health when training with DPO, PPO, and GRPO.</p>
491</a></div>
492</div>
493<div class="metadata">
494<a href="../posts/post-training-instrument-cluster-rl/index.html" class="no-external">
495<div class="listing-date">
49628 Dec 2025
497</div>
498<div class="listing-author">
499Chris von Csefalvay
500</div>
501</a>
502</div>
503</div>
504<div class="quarto-post image-right" data-index="6" data-categories="QUklMkNMTE1zJTJDTExNT3BzJTJDZmluZS10dW5pbmclMkNwb3N0LXRyYWluaW5nJTJDTUxPcHM=" data-listing-date-sort="1766620800000" data-listing-file-modified-sort="1790221797499" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="61" data-listing-word-count-sort="12040">
505<div class="thumbnail"><a href="../posts/post-training-instrument-cluster/index.html" class="no-external">
506
507<img loading="lazy" src="../posts/post-training-instrument-cluster/failure_patterns.png" class="thumbnail-image">
508
509</a></div>
510<div class="body">
511<h3 class="no-anchor listing-title">
512<a href="../posts/post-training-instrument-cluster/index.html" class="no-external">The post-training instrument cluster – Part I</a>
513</h3>
514<div class="listing-categories">
515
516<div class="listing-category" onclick="window.quartoListingCategory('QUk='); return false;">AI</div>
517
518<div class="listing-category" onclick="window.quartoListingCategory('TExNcw=='); return false;">LLMs</div>
519
520<div class="listing-category" onclick="window.quartoListingCategory('TExNT3Bz'); return false;">LLMOps</div>
521
522<div class="listing-category" onclick="window.quartoListingCategory('ZmluZS10dW5pbmc='); return false;">fine-tuning</div>
523
524<div class="listing-category" onclick="window.quartoListingCategory('cG9zdC10cmFpbmluZw=='); return false;">post-training</div>
525
526<div class="listing-category" onclick="window.quartoListingCategory('TUxPcHM='); return false;">MLOps</div>
527
528</div>
529<div class="delink listing-description"><a href="../posts/post-training-instrument-cluster/index.html" class="no-external">
530<p>Beyond loss curves – what you should actually be watching when fine-tuning LLMs.</p>
531</a></div>
532</div>
533<div class="metadata">
534<a href="../posts/post-training-instrument-cluster/index.html" class="no-external">
535<div class="listing-date">
53625 Dec 2025
537</div>
538<div class="listing-author">
539Chris von Csefalvay
540</div>
541</a>
542</div>
543</div>
544<div class="quarto-post image-right" data-index="7" data-categories="QUklMkNMTE1zJTJDcG9zdC10cmFpbmluZw==" data-listing-date-sort="1766188800000" data-listing-file-modified-sort="1790221797503" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="11" data-listing-word-count-sort="2123">
545<div class="thumbnail"><a href="../posts/post-training-scale/index.html" class="no-external">
546
547<img loading="lazy" src="../posts/post-training-scale/header.webp" class="thumbnail-image">
548
549</a></div>
550<div class="body">
551<h3 class="no-anchor listing-title">
552<a href="../posts/post-training-scale/index.html" class="no-external">Post-training: three disciplines in a trenchcoat</a>
553</h3>
554<div class="listing-categories">
555
556<div class="listing-category" onclick="window.quartoListingCategory('QUk='); return false;">AI</div>
557
558<div class="listing-category" onclick="window.quartoListingCategory('TExNcw=='); return false;">LLMs</div>
559
560<div class="listing-category" onclick="window.quartoListingCategory('cG9zdC10cmFpbmluZw=='); return false;">post-training</div>
561
562</div>
563<div class="delink listing-description"><a href="../posts/post-training-scale/index.html" class="no-external">
564<p>On the comfortable delusion of a unitary post-training discipline.</p>
565</a></div>
566</div>
567<div class="metadata">
568<a href="../posts/post-training-scale/index.html" class="no-external">
569<div class="listing-date">
57020 Dec 2025
571</div>
572<div class="listing-author">
573Chris von Csefalvay
574</div>
575</a>
576</div>
577</div>
578<div class="quarto-post image-right" data-index="8" data-categories="QUklMkNhZ2VudGljJTIwQUklMkNMTE1zJTJDZmluZS10dW5pbmc=" data-listing-date-sort="1765756800000" data-listing-file-modified-sort="1790221797408" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="18" data-listing-word-count-sort="3576">
579<div class="thumbnail"><a href="../posts/dorkestration/index.html" class="no-external">
580
581<img loading="lazy" src="../posts/dorkestration/header.webp" class="thumbnail-image">
582
583</a></div>
584<div class="body">
585<h3 class="no-anchor listing-title">
586<a href="../posts/dorkestration/index.html" class="no-external">Dorkestration</a>
587</h3>
588<div class="listing-categories">
589
590<div class="listing-category" onclick="window.quartoListingCategory('QUk='); return false;">AI</div>
591
592<div class="listing-category" onclick="window.quartoListingCategory('YWdlbnRpYyUyMEFJ'); return false;">agentic AI</div>
593
594<div class="listing-category" onclick="window.quartoListingCategory('TExNcw=='); return false;">LLMs</div>
595
596<div class="listing-category" onclick="window.quartoListingCategory('ZmluZS10dW5pbmc='); return false;">fine-tuning</div>
597
598</div>
599<div class="delink listing-description"><a href="../posts/dorkestration/index.html" class="no-external">
600<p>Why everybody missed the point about tool use in agentic AI, and how a handful of primitives can orchestrate your entire ML workflow.</p>
601</a></div>
602</div>
603<div class="metadata">
604<a href="../posts/dorkestration/index.html" class="no-external">
605<div class="listing-date">
60615 Dec 2025
607</div>
608<div class="listing-author">
609Chris von Csefalvay
610</div>
611</a>
612</div>
613</div>
614<div class="quarto-post image-right" data-index="9" data-categories="TExNcyUyQ0FJJTJDdGVjaCUyMHByZWRpY3Rpb25zJTJDZWNvbG9neQ==" data-listing-date-sort="1763856000000" data-listing-file-modified-sort="1790221797415" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="18" data-listing-word-count-sort="3443">
615<div class="thumbnail"><a href="../posts/hype-slop-craft/index.html" class="no-external">
616
617<img loading="lazy" src="../posts/hype-slop-craft/header.webp" class="thumbnail-image">
618
619</a></div>
620<div class="body">
621<h3 class="no-anchor listing-title">
622<a href="../posts/hype-slop-craft/index.html" class="no-external">The Hype, the Slop and the Craft</a>
623</h3>
624<div class="listing-categories">
625
626<div class="listing-category" onclick="window.quartoListingCategory('TExNcw=='); return false;">LLMs</div>
627
628<div class="listing-category" onclick="window.quartoListingCategory('QUk='); return false;">AI</div>
629
630<div class="listing-category" onclick="window.quartoListingCategory('dGVjaCUyMHByZWRpY3Rpb25z'); return false;">tech predictions</div>
631
632<div class="listing-category" onclick="window.quartoListingCategory('ZWNvbG9neQ=='); return false;">ecology</div>
633
634</div>
635<div class="delink listing-description"><a href="../posts/hype-slop-craft/index.html" class="no-external">
636<p>A differential ecology of AI, as she is done in late 2025.</p>
637</a></div>
638</div>
639<div class="metadata">
640<a href="../posts/hype-slop-craft/index.html" class="no-external">
641<div class="listing-date">
64223 Nov 2025
643</div>
644<div class="listing-author">
645Chris von Csefalvay
646</div>
647</a>
648</div>
649</div>
650<div class="quarto-post image-right" data-index="10" data-categories="TExNcyUyQ0FJJTJDYWdlbnRpYyUyMEFJJTJDcGVyc29uYWw=" data-listing-date-sort="1761955200000" data-listing-file-modified-sort="1790221797532" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="19" data-listing-word-count-sort="3692">
651<div class="thumbnail"><a href="../posts/two-years-of-agents/index.html" class="no-external">
652
653<img loading="lazy" src="../posts/two-years-of-agents/header.webp" class="thumbnail-image">
654
655</a></div>
656<div class="body">
657<h3 class="no-anchor listing-title">
658<a href="../posts/two-years-of-agents/index.html" class="no-external">What I talk about when I talk about agentic AI</a>
659</h3>
660<div class="listing-categories">
661
662<div class="listing-category" onclick="window.quartoListingCategory('TExNcw=='); return false;">LLMs</div>
663
664<div class="listing-category" onclick="window.quartoListingCategory('QUk='); return false;">AI</div>
665
666<div class="listing-category" onclick="window.quartoListingCategory('YWdlbnRpYyUyMEFJ'); return false;">agentic AI</div>
667
668<div class="listing-category" onclick="window.quartoListingCategory('cGVyc29uYWw='); return false;">personal</div>
669
670</div>
671<div class="delink listing-description"><a href="../posts/two-years-of-agents/index.html" class="no-external">
672<p>Two years on from helping to articulate a concept that changed everything, some thoughts on where we are, where we’re going and the things we lost along the way.</p>
673</a></div>
674</div>
675<div class="metadata">
676<a href="../posts/two-years-of-agents/index.html" class="no-external">
677<div class="listing-date">
6781 Nov 2025
679</div>
680<div class="listing-author">
681Chris von Csefalvay
682</div>
683</a>
684</div>
685</div>
686<div class="quarto-post image-right" data-index="11" data-categories="TExNcyUyQ0FJJTJDYWdlbnRpYyUyMEFJJTJDZXZvbHV0aW9u" data-listing-date-sort="1761350400000" data-listing-file-modified-sort="1790221797382" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="10" data-listing-word-count-sort="1975">
687<div class="thumbnail"><a href="../posts/agentic-speciation/index.html" class="no-external">
688
689<div class="listing-item-img-placeholder card-img-top" >&nbsp;</div>
690
691</a></div>
692<div class="body">
693<h3 class="no-anchor listing-title">
694<a href="../posts/agentic-speciation/index.html" class="no-external">Deep kimchi</a>
695</h3>
696<div class="listing-categories">
697
698<div class="listing-category" onclick="window.quartoListingCategory('TExNcw=='); return false;">LLMs</div>
699
700<div class="listing-category" onclick="window.quartoListingCategory('QUk='); return false;">AI</div>
701
702<div class="listing-category" onclick="window.quartoListingCategory('YWdlbnRpYyUyMEFJ'); return false;">agentic AI</div>
703
704<div class="listing-category" onclick="window.quartoListingCategory('ZXZvbHV0aW9u'); return false;">evolution</div>
705
706</div>
707<div class="delink listing-description"><a href="../posts/agentic-speciation/index.html" class="no-external">
708<p>
708You’re probably doing agentic AI wrong, and I wish this were clickbait. Here’s why agentic AI is in deep kimchi, and how to get out of it.</p>
709</a></div>
710</div>
711<div class="metadata">
712<a href="../posts/agentic-speciation/index.html" class="no-external">
713<div class="listing-date">
71425 Oct 2025
715</div>
716<div class="listing-author">
717Chris von Csefalvay
718</div>
719</a>
720</div>
721</div>
722<div class="quarto-post image-right" data-index="12" data-categories="TExNcyUyQ0FJJTJDZXZhbHM=" data-listing-date-sort="1760832000000" data-listing-file-modified-sort="1790221797523" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="12" data-listing-word-count-sort="2393">
723<div class="thumbnail"><a href="../posts/soya/index.html" class="no-external">
724
725<div class="listing-item-img-placeholder card-img-top" >&nbsp;</div>
726
727</a></div>
728<div class="body">
729<h3 class="no-anchor listing-title">
730<a href="../posts/soya/index.html" class="no-external">SOYA - the only benchmark that matters</a>
731</h3>
732<div class="listing-categories">
733
734<div class="listing-category" onclick="window.quartoListingCategory('TExNcw=='); return false;">LLMs</div>
735
736<div class="listing-category" onclick="window.quartoListingCategory('QUk='); return false;">AI</div>
737
738<div class="listing-category" onclick="window.quartoListingCategory('ZXZhbHM='); return false;">evals</div>
739
740</div>
741<div class="delink listing-description"><a href="../posts/soya/index.html" class="no-external">
742<p>All benchmarks are wrong – and if you want some that are useful, you might need to build your own.</p>
743</a></div>
744</div>
745<div class="metadata">
746<a href="../posts/soya/index.html" class="no-external">
747<div class="listing-date">
74819 Oct 2025
749</div>
750<div class="listing-author">
751Chris von Csefalvay
752</div>
753</a>
754</div>
755</div>
756<div class="quarto-post image-right" data-index="13" data-categories="QUklMkNBZ2VudGljJTIwQUklMkNMTE1z" data-listing-date-sort="1760140800000" data-listing-file-modified-sort="1790221797391" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="12" data-listing-word-count-sort="2399">
757<div class="thumbnail"><a href="../posts/biome-engineering/index.html" class="no-external">
758
759<img loading="lazy" src="../img/portrait_2x3midres.webp" class="thumbnail-image">
760
761</a></div>
762<div class="body">
763<h3 class="no-anchor listing-title">
764<a href="../posts/biome-engineering/index.html" class="no-external">Biome engineering</a>
765</h3>
766<div class="listing-categories">
767
768<div class="listing-category" onclick="window.quartoListingCategory('QUk='); return false;">AI</div>
769
770<div class="listing-category" onclick="window.quartoListingCategory('QWdlbnRpYyUyMEFJ'); return false;">Agentic AI</div>
771
772<div class="listing-category" onclick="window.quartoListingCategory('TExNcw=='); return false;">LLMs</div>
773
774</div>
775<div class="delink listing-description"><a href="../posts/biome-engineering/index.html" class="no-external">
776<p>Giving agents space, for fun and profit.</p>
777</a></div>
778</div>
779<div class="metadata">
780<a href="../posts/biome-engineering/index.html" class="no-external">
781<div class="listing-date">
78211 Oct 2025
783</div>
784<div class="listing-author">
785Chris von Csefalvay
786</div>
787</a>
788</div>
789</div>
790<div class="quarto-post image-right" data-index="14" data-categories="QUklMkNBZ2VudGljJTIwQUklMkNMTE1z" data-listing-date-sort="1759536000000" data-listing-file-modified-sort="1790221797391" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="16" data-listing-word-count-sort="3048">
791<div class="thumbnail"><a href="../posts/choral-ai/index.html" class="no-external">
792
793<div class="listing-item-img-placeholder card-img-top" >&nbsp;</div>
794
795</a></div>
796<div class="body">
797<h3 class="no-anchor listing-title">
798<a href="../posts/choral-ai/index.html" class="no-external">From agents to the Chorus</a>
799</h3>
800<div class="listing-categories">
801
802<div class="listing-category" onclick="window.quartoListingCategory('QUk='); return false;">AI</div>
803
804<div class="listing-category" onclick="window.quartoListingCategory('QWdlbnRpYyUyMEFJ'); return false;">Agentic AI</div>
805
806<div class="listing-category" onclick="window.quartoListingCategory('TExNcw=='); return false;">LLMs</div>
807
808</div>
809<div class="delink listing-description"><a href="../posts/choral-ai/index.html" class="no-external">
810<p>The coming evolution from agentic AI to persistent, volitional systems</p>
811</a></div>
812</div>
813<div class="metadata">
814<a href="../posts/choral-ai/index.html" class="no-external">
815<div class="listing-date">
8164 Oct 2025
817</div>
818<div class="listing-author">
819Chris von Csefalvay
820</div>
821</a>
822</div>
823</div>
824<div class="quarto-post image-right" data-index="15" data-categories="QUklMkNBZ2VudGljJTIwQUklMkNNQ1AlMkNJbnRlcm9wZXJhYmlsaXR5JTJDTExNcw==" data-listing-date-sort="1759276800000" data-listing-file-modified-sort="1790221797441" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="13" data-listing-word-count-sort="2593">
825<div class="thumbnail"><a href="../posts/mcp-mcpmark/index.html" class="no-external">
826
827<img loading="lazy" src="../img/portrait_2x3midres.webp" class="thumbnail-image">
828
829</a></div>
830<div class="body">
831<h3 class="no-anchor listing-title">
832<a href="../posts/mcp-mcpmark/index.html" class="no-external">A slow walk out of Dikika Cave</a>
833</h3>
834<div class="listing-categories">
835
836<div class="listing-category" onclick="window.quartoListingCategory('QUk='); return false;">AI</div>
837
838<div class="listing-category" onclick="window.quartoListingCategory('QWdlbnRpYyUyMEFJ'); return false;">Agentic AI</div>
839
840<div class="listing-category" onclick="window.quartoListingCategory('TUNQ'); return false;">MCP</div>
841
842<div class="listing-category" onclick="window.quartoListingCategory('SW50ZXJvcGVyYWJpbGl0eQ=='); return false;">Interoperability</div>
843
844<div class="listing-category" onclick="window.quartoListingCategory('TExNcw=='); return false;">LLMs</div>
845
846</div>
847<div class="delink listing-description"><a href="../posts/mcp-mcpmark/index.html" class="no-external">
848<p>MCP is great. The models, however, just didn’t show up.</p>
849</a></div>
850</div>
851<div class="metadata">
852<a href="../posts/mcp-mcpmark/index.html" class="no-external">
853<div class="listing-date">
8541 Oct 2025
855</div>
856<div class="listing-author">
857Chris von Csefalvay
858</div>
859</a>
860</div>
861</div>
862<div class="quarto-post image-right" data-index="16" data-categories="QUklMkNTb2NpZXR5JTJDTExNcw==" data-listing-date-sort="1758326400000" data-listing-file-modified-sort="1790221797386" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="11" data-listing-word-count-sort="2065">
863<div class="thumbnail"><a href="../posts/ai-girlfriends/index.html" class="no-external">
864
865<img loading="lazy" src="../img/portrait_2x3midres.webp" class="thumbnail-image">
866
867</a></div>
868<div class="body">
869<h3 class="no-anchor listing-title">
870<a href="../posts/ai-girlfriends/index.html" class="no-external">Love in the Time of Algorithms</a>
871</h3>
872<div class="listing-categories">
873
874<div class="listing-category" onclick="window.quartoListingCategory('QUk='); return false;">AI</div>
875
876<div class="listing-category" onclick="window.quartoListingCategory('U29jaWV0eQ=='); return false;">Society</div>
877
878<div class="listing-category" onclick="window.quartoListingCategory('TExNcw=='); return false;">LLMs</div>
879
880</div>
881<div class="delink listing-description"><a href="../posts/ai-girlfriends/index.html" class="no-external">
882<p>Exploring the phenomenon of AI-powered companions and their societal implications.</p>
883</a></div>
884</div>
885<div class="metadata">
886<a href="../posts/ai-girlfriends/index.html" class="no-external">
887<div class="listing-date">
88820 Sept 2025
889</div>
890<div class="listing-author">
891Chris von Csefalvay
892</div>
893</a>
894</div>
895</div>
896<div class="quarto-post image-right" data-index="17" data-categories="QUklMkNHUFQtNSUyQ0xMTXM=" data-listing-date-sort="1754784000000" data-listing-file-modified-sort="1790221797441" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="14" data-listing-word-count-sort="2681">
897<div class="thumbnail"><a href="../posts/metadynamic-ai/index.html" class="no-external">
898
899<div class="listing-item-img-placeholder card-img-top" >&nbsp;</div>
900
901</a></div>
902<div class="body">
903<h3 class="no-anchor listing-title">
904<a href="../posts/metadynamic-ai/index.html" class="no-external">The end of isotropy and the rise of metadynamic AI</a>
905</h3>
906<div class="listing-categories">
907
908<div class="listing-category" onclick="window.quartoListingCategory('QUk='); return false;">AI</div>
909
910<div class="listing-category" onclick="window.quartoListingCategory('R1BULTU='); return false;">GPT-5</div>
911
912<div class="listing-category" onclick="window.quartoListingCategory('TExNcw=='); return false;">LLMs</div>
913
914</div>
915<div class="delink listing-description"><a href="../posts/metadynamic-ai/index.html" class="no-external">
916<p>GPT-5 has changed the story in ways few seem to have considered. For better or worse: we’re all architects now. Welcome to the post-isotropy age and metadynamic AI.</p>
917</a></div>
918</div>
919<div class="metadata">
920<a href="../posts/metadynamic-ai/index.html" class="no-external">
921<div class="listing-date">
92210 Aug 2025
923</div>
924<div class="listing-author">
925Chris von Csefalvay
926</div>
927</a>
928</div>
929</div>
930<div class="quarto-post image-right" data-index="18" data-categories="QUklMkNMTE1zJTJDYWdlbnRpYyUyMEFJ" data-listing-date-sort="1753488000000" data-listing-file-modified-sort="1790221797503" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="12" data-listing-word-count-sort="2282">
931<div class="thumbnail"><a href="../posts/programmatic-agentic-ai/index.html" class="no-external">
932
933<div class="listing-item-img-placeholder card-img-top" >&nbsp;</div>
934
935</a></div>
936<div class="body">
937<h3 class="no-anchor listing-title">
938<a href="../posts/programmatic-agentic-ai/index.html" class="no-external">A little less conversation: why we need to move from prompting to programming</a>
939</h3>
940<div class="listing-categories">
941
942<div class="listing-category" onclick="window.quartoListingCategory('QUk='); return false;">AI</div>
943
944<div class="listing-category" onclick="window.quartoListingCategory('TExNcw=='); return false;">LLMs</div>
945
946<div class="listing-category" onclick="window.quartoListingCategory('YWdlbnRpYyUyMEFJ'); return false;">agentic AI</div>
947
948</div>
949<div class="delink listing-description"><a href="../posts/programmatic-agentic-ai/index.html" class="no-external">
950<p>Prompting is fine if you want to have a conversation. Building stuff, however, requires us to learn to program LLMs. Sorry, vibe coders.</p>
951</a></div>
952</div>
953<div class="metadata">
954<a href="../posts/programmatic-agentic-ai/index.html" class="no-external">
955<div class="listing-date">
95626 Jul 2025
957</div>
958<div class="listing-author">
959Chris von Csefalvay
960</div>
961</a>
962</div>
963</div>
964<div class="quarto-post image-right" data-index="19" data-categories="QUklMkNwaGlsb3NvcGh5JTJDTExNcyUyQ0FCTXMlMkNhZ2VudGljJTIwQUk=" data-listing-date-sort="1752969600000" data-listing-file-modified-sort="1790221797382" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="7" data-listing-word-count-sort="1328">
965<div class="thumbnail"><a href="../posts/agentic-simulation/index.html" class="no-external">
966
967<div class="listing-item-img-placeholder card-img-top" >&nbsp;</div>
968
969</a></div>
970<div class="body">
971<h3 class="no-anchor listing-title">
972<a href="../posts/agentic-simulation/index.html" class="no-external">Between the motion and the act</a>
973</h3>
974<div class="listing-categories">
975
976<div class="listing-category" onclick="window.quartoListingCategory('QUk='); return false;">AI</div>
977
978<div class="listing-category" onclick="window.quartoListingCategory('cGhpbG9zb3BoeQ=='); return false;">philosophy</div>
979
980<div class="listing-category" onclick="window.quartoListingCategory('TExNcw=='); return false;">LLMs</div>
981
982<div class="listing-category" onclick="window.quartoListingCategory('QUJNcw=='); return false;">ABMs</div>
983
984<div class="listing-category" onclick="window.quartoListingCategory('YWdlbnRpYyUyMEFJ'); return false;">agentic AI</div>
985
986</div>
987<div class="delink listing-description"><a href="../posts/agentic-simulation/index.html" class="no-external">
988<p>What if agents can do more than act?</p>
989</a></div>
990</div>
991<div class="metadata">
992<a href="../posts/agentic-simulation/index.html" class="no-external">
993<div class="listing-date">
99420 Jul 2025
995</div>
996<div class="listing-author">
997Chris von Csefalvay
998</div>
999</a>
1000</div>
1001</div>
1002<div class="quarto-post image-right" data-index="20" data-categories="QUklMkNwaGlsb3NvcGh5JTJDTExNcw==" data-listing-date-sort="1752364800000" data-listing-file-modified-sort="1790221797526" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="14" data-listing-word-count-sort="2678">
1003<div class="thumbnail"><a href="../posts/tlon/index.html" class="no-external">
1004
1005<div class="listing-item-img-placeholder card-img-top" >&nbsp;</div>
1006
1007</a></div>
1008<div class="body">
1009<h3 class="no-anchor listing-title">
1010<a href="../posts/tlon/index.html" class="no-external">The world will be Tlön.</a>
1011</h3>
1012<div class="listing-categories">
1013
1014<div class="listing-category" onclick="window.quartoListingCategory('QUk='); return false;">AI</div>
1015
1016<div class="listing-category" onclick="window.quartoListingCategory('cGhpbG9zb3BoeQ=='); return false;">philosophy</div>
1017
1018<div class="listing-category" onclick="window.quartoListingCategory('TExNcw=='); return false;">LLMs</div>
1019
1020</div>
1021<div class="delink listing-description"><a href="../posts/tlon/index.html" class="no-external">
1022<p>In which we attend the funeral of any semblance of an epistemically coherent world.</p>
1023</a></div>
1024</div>
1025<div class="metadata">
1026<a href="../posts/tlon/index.html" class="no-external">
1027<div class="listing-date">
102813 Jul 2025
1029</div>
1030<div class="listing-author">
1031Chris von Csefalvay
1032</div>
1033</a>
1034</div>
1035</div>
1036<div class="quarto-post image-right" data-index="21" data-categories="QUklMkNMTE1zJTJDY29udGV4dCUyMGVuZ2luZWVyaW5n" data-listing-date-sort="1751760000000" data-listing-file-modified-sort="1790221797395" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="10" data-listing-word-count-sort="1931">
1037<div class="thumbnail"><a href="../posts/context-engineering/index.html" class="no-external">
1038
1039<img loading="lazy" src="../posts/context-engineering/header.webp" class="thumbnail-image">
1040
1041</a></div>
1042<div class="body">
1043<h3 class="no-anchor listing-title">
1044<a href="../posts/context-engineering/index.html" class="no-external">The Snowmobile Symptom</a>
1045</h3>
1046<div class="listing-categories">
1047
1048<div class="listing-category" onclick="window.quartoListingCategory('QUk='); return false;">AI</div>
1049
1050<div class="listing-category" onclick="window.quartoListingCategory('TExNcw=='); return false;">LLMs</div>
1051
1052<div class="listing-category" onclick="window.quartoListingCategory('Y29udGV4dCUyMGVuZ2luZWVyaW5n'); return false;">context engineering</div>
1053
1054</div>
1055<div class="delink listing-description"><a href="../posts/context-engineering/index.html" class="no-external">
1056<p>AI’s latest buzzword is more confession than innovation.</p>
1057</a></div>
1058</div>
1059<div class="metadata">
1060<a href="../posts/context-engineering/index.html" class="no-external">
1061<div class="listing-date">
10626 Jul 2025
1063</div>
1064<div class="listing-author">
1065Chris von Csefalvay
1066</div>
1067</a>
1068</div>
1069</div>
1070<div class="quarto-post image-right" data-index="22" data-categories="QUklMkNhZ2VudHMlMkNuZXVyb3NjaWVuY2UlMkNwaGlsb3NvcGh5" data-listing-date-sort="1750982400000" data-listing-file-modified-sort="1790221797481" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="15" data-listing-word-count-sort="2903">
1071<div class="thumbnail"><a href="../posts/noise-in-the-neurons/index.html" class="no-external">
1072
1073<img loading="lazy" src="../posts/noise-in-the-neurons/header.webp" class="thumbnail-image">
1074
1075</a></div>
1076<div class="body">
1077<h3 class="no-anchor listing-title">
1078<a href="../posts/noise-in-the-neurons/index.html" class="no-external">Just noise in the neurons</a>
1079</h3>
1080<div class="listing-categories">
1081
1082<div class="listing-category" onclick="window.quartoListingCategory('QUk='); return false;">AI</div>
1083
1084<div class="listing-category" onclick="window.quartoListingCategory('YWdlbnRz'); return false;">agents</div>
1085
1086<div class="listing-category" onclick="window.quartoListingCategory('bmV1cm9zY2llbmNl'); return false;">neuroscience</div>
1087
1088<div class="listing-category" oncl
1088ick="window.quartoListingCategory('cGhpbG9zb3BoeQ=='); return false;">philosophy</div>
1089
1090</div>
1091<div class="delink listing-description"><a href="../posts/noise-in-the-neurons/index.html" class="no-external">
1092<p>Your language model isn’t experiencing a cognitive defect. It’s just wrong.</p>
1093</a></div>
1094</div>
1095<div class="metadata">
1096<a href="../posts/noise-in-the-neurons/index.html" class="no-external">
1097<div class="listing-date">
109827 Jun 2025
1099</div>
1100<div class="listing-author">
1101Chris von Csefalvay
1102</div>
1103</a>
1104</div>
1105</div>
1106<div class="quarto-post image-right" data-index="23" data-categories="TExNcyUyQ0FJJTJDYWdlbnRz" data-listing-date-sort="1739145600000" data-listing-file-modified-sort="1790221797386" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="10" data-listing-word-count-sort="1917">
1107<div class="thumbnail"><a href="../posts/agents-agora/index.html" class="no-external">
1108
1109<img loading="lazy" src="../posts/agents-agora/B20C419F-6819-49E1-B80E-11B95A28D6CC.webp" class="thumbnail-image">
1110
1111</a></div>
1112<div class="body">
1113<h3 class="no-anchor listing-title">
1114<a href="../posts/agents-agora/index.html" class="no-external">After agents, part 2 – Agents and the Agora</a>
1115</h3>
1116<div class="listing-categories">
1117
1118<div class="listing-category" onclick="window.quartoListingCategory('TExNcw=='); return false;">LLMs</div>
1119
1120<div class="listing-category" onclick="window.quartoListingCategory('QUk='); return false;">AI</div>
1121
1122<div class="listing-category" onclick="window.quartoListingCategory('YWdlbnRz'); return false;">agents</div>
1123
1124</div>
1125<div class="delink listing-description"><a href="../posts/agents-agora/index.html" class="no-external">
1126<p>Why agents are the least interesting part of agentic AI.</p>
1127</a></div>
1128</div>
1129<div class="metadata">
1130<a href="../posts/agents-agora/index.html" class="no-external">
1131<div class="listing-date">
113210 Feb 2025
1133</div>
1134<div class="listing-author">
1135Chris von Csefalvay
1136</div>
1137</a>
1138</div>
1139</div>
1140<div class="quarto-post image-right" data-index="24" data-categories="QUklMkNMTE1zJTJDYWxpZ25tZW50JTJDZXRoaWNz" data-listing-date-sort="1737763200000" data-listing-file-modified-sort="1790221797398" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="10" data-listing-word-count-sort="1828">
1141<div class="thumbnail"><a href="../posts/deepseek-seatbelts-and-straitjackets/index.html" class="no-external">
1142
1143<img loading="lazy" src="../posts/deepseek-seatbelts-and-straitjackets/header.webp" class="thumbnail-image">
1144
1145</a></div>
1146<div class="body">
1147<h3 class="no-anchor listing-title">
1148<a href="../posts/deepseek-seatbelts-and-straitjackets/index.html" class="no-external">Seatbelts and straitjackets</a>
1149</h3>
1150<div class="listing-categories">
1151
1152<div class="listing-category" onclick="window.quartoListingCategory('QUk='); return false;">AI</div>
1153
1154<div class="listing-category" onclick="window.quartoListingCategory('TExNcw=='); return false;">LLMs</div>
1155
1156<div class="listing-category" onclick="window.quartoListingCategory('YWxpZ25tZW50'); return false;">alignment</div>
1157
1158<div class="listing-category" onclick="window.quartoListingCategory('ZXRoaWNz'); return false;">ethics</div>
1159
1160</div>
1161<div class="delink listing-description"><a href="../posts/deepseek-seatbelts-and-straitjackets/index.html" class="no-external">
1162<p>What happens when a despotic regime turns alignment into control, open source into propaganda and guardrails into straitjackets.</p>
1163</a></div>
1164</div>
1165<div class="metadata">
1166<a href="../posts/deepseek-seatbelts-and-straitjackets/index.html" class="no-external">
1167<div class="listing-date">
116825 Jan 2025
1169</div>
1170<div class="listing-author">
1171Chris von Csefalvay
1172</div>
1173</a>
1174</div>
1175</div>
1176<div class="quarto-post image-right" data-index="25" data-categories="QUklMkNnb3Zlcm5hbmNl" data-listing-date-sort="1736985600000" data-listing-file-modified-sort="1790221797388" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="7" data-listing-word-count-sort="1201">
1177<div class="thumbnail"><a href="../posts/ai-opportunities-action-plan/index.html" class="no-external">
1178
1179<img loading="lazy" data-src="../posts/ai-opportunities-action-plan/header.webp" class="thumbnail-image">
1180
1181</a></div>
1182<div class="body">
1183<h3 class="no-anchor listing-title">
1184<a href="../posts/ai-opportunities-action-plan/index.html" class="no-external">Deja Vu, All Over Again.</a>
1185</h3>
1186<div class="listing-categories">
1187
1188<div class="listing-category" onclick="window.quartoListingCategory('QUk='); return false;">AI</div>
1189
1190<div class="listing-category" onclick="window.quartoListingCategory('Z292ZXJuYW5jZQ=='); return false;">governance</div>
1191
1192</div>
1193<div class="delink listing-description"><a href="../posts/ai-opportunities-action-plan/index.html" class="no-external">
1194<p>The UK now has an AI Action Plan. The problem is, innovation does not grow from plans.</p>
1195</a></div>
1196</div>
1197<div class="metadata">
1198<a href="../posts/ai-opportunities-action-plan/index.html" class="no-external">
1199<div class="listing-date">
120016 Jan 2025
1201</div>
1202<div class="listing-author">
1203Chris von Csefalvay
1204</div>
1205</a>
1206</div>
1207</div>
1208<div class="quarto-post image-right" data-index="26" data-categories="TExNcyUyQ0FJJTJDYWdlbnRz" data-listing-date-sort="1735948800000" data-listing-file-modified-sort="1790221797382" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="12" data-listing-word-count-sort="2230">
1209<div class="thumbnail"><a href="../posts/after-agents/index.html" class="no-external">
1210
1211<img loading="lazy" data-src="../posts/after-agents/header.webp" class="thumbnail-image">
1212
1213</a></div>
1214<div class="body">
1215<h3 class="no-anchor listing-title">
1216<a href="../posts/after-agents/index.html" class="no-external">After agents</a>
1217</h3>
1218<div class="listing-categories">
1219
1220<div class="listing-category" onclick="window.quartoListingCategory('TExNcw=='); return false;">LLMs</div>
1221
1222<div class="listing-category" onclick="window.quartoListingCategory('QUk='); return false;">AI</div>
1223
1224<div class="listing-category" onclick="window.quartoListingCategory('YWdlbnRz'); return false;">agents</div>
1225
1226</div>
1227<div class="delink listing-description"><a href="../posts/after-agents/index.html" class="no-external">
1228<p>2024 was the year of agents. 2025 will be about figuring out how we orchestrate their interactions. Welcome to the year of ecosystems.</p>
1229</a></div>
1230</div>
1231<div class="metadata">
1232<a href="../posts/after-agents/index.html" class="no-external">
1233<div class="listing-date">
12344 Jan 2025
1235</div>
1236<div class="listing-author">
1237Chris von Csefalvay
1238</div>
1239</a>
1240</div>
1241</div>
1242<div class="quarto-post image-right" data-index="27" data-categories="TExNcyUyQ0FJJTJDdGVjaCUyMHByZWRpY3Rpb25z" data-listing-date-sort="1735603200000" data-listing-file-modified-sort="1790221797413" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="13" data-listing-word-count-sort="2483">
1243<div class="thumbnail"><a href="../posts/five-wild-guesses/index.html" class="no-external">
1244
1245<img loading="lazy" data-src="../posts/five-wild-guesses/header.webp" class="thumbnail-image">
1246
1247</a></div>
1248<div class="body">
1249<h3 class="no-anchor listing-title">
1250<a href="../posts/five-wild-guesses/index.html" class="no-external">Five unconventional predictions</a>
1251</h3>
1252<div class="listing-categories">
1253
1254<div class="listing-category" onclick="window.quartoListingCategory('TExNcw=='); return false;">LLMs</div>
1255
1256<div class="listing-category" onclick="window.quartoListingCategory('QUk='); return false;">AI</div>
1257
1258<div class="listing-category" onclick="window.quartoListingCategory('dGVjaCUyMHByZWRpY3Rpb25z'); return false;">tech predictions</div>
1259
1260</div>
1261<div class="delink listing-description"><a href="../posts/five-wild-guesses/index.html" class="no-external">
1262<p>Or, the GenAI årsgång, 2025 edition</p>
1263</a></div>
1264</div>
1265<div class="metadata">
1266<a href="../posts/five-wild-guesses/index.html" class="no-external">
1267<div class="listing-date">
126831 Dec 2024
1269</div>
1270<div class="listing-author">
1271Chris von Csefalvay
1272</div>
1273</a>
1274</div>
1275</div>
1276<div class="quarto-post image-right" data-index="28" data-categories="TExNcyUyQ0FJJTJDc3R5bGUlMjB0cmFuc2Zlcg==" data-listing-date-sort="1704499200000" data-listing-file-modified-sort="1790221797435" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="12" data-listing-word-count-sort="2230">
1277<div class="thumbnail"><a href="../posts/lair/index.html" class="no-external">
1278
1279<img loading="lazy" data-src="../posts/lair/header.webp" class="thumbnail-image">
1280
1281</a></div>
1282<div class="body">
1283<h3 class="no-anchor listing-title">
1284<a href="../posts/lair/index.html" class="no-external">LAIR - Language As Intermediate Representation</a>
1285</h3>
1286<div class="listing-categories">
1287
1288<div class="listing-category" onclick="window.quartoListingCategory('TExNcw=='); return false;">LLMs</div>
1289
1290<div class="listing-category" onclick="window.quartoListingCategory('QUk='); return false;">AI</div>
1291
1292<div class="listing-category" onclick="window.quartoListingCategory('c3R5bGUlMjB0cmFuc2Zlcg=='); return false;">style transfer</div>
1293
1294</div>
1295<div class="delink listing-description"><a href="../posts/lair/index.html" class="no-external">
1296<p>Language As Intermediate Representation - a new paradigm for transformation using multimodal LLMs</p>
1297</a></div>
1298</div>
1299<div class="metadata">
1300<a href="../posts/lair/index.html" class="no-external">
1301<div class="listing-date">
13026 Jan 2024
1303</div>
1304<div class="listing-author">
1305Chris von Csefalvay
1306</div>
1307</a>
1308</div>
1309</div>
1310<div class="quarto-post image-right" data-index="29" data-categories="Zml0bmVzcyUyQ3NjaWVuY2UlMkNiYWQlMjBzY2llbmNl" data-listing-date-sort="1703635200000" data-listing-file-modified-sort="1790221797379" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="14" data-listing-word-count-sort="2731">
1311<div class="thumbnail"><a href="../posts/95-percent-myth/index.html" class="no-external">
1312
1313<img loading="lazy" data-src="../posts/95-percent-myth/93e3df55-79ec-44b0-87c1-03bbca32ee46.webp" class="thumbnail-image">
1314
1315</a></div>
1316<div class="body">
1317<h3 class="no-anchor listing-title">
1318<a href="../posts/95-percent-myth/index.html" class="no-external">The 95% myth</a>
1319</h3>
1320<div class="listing-categories">
1321
1322<div class="listing-category" onclick="window.quartoListingCategory('Zml0bmVzcw=='); return false;">fitness</div>
1323
1324<div class="listing-category" onclick="window.quartoListingCategory('c2NpZW5jZQ=='); return false;">science</div>
1325
1326<div class="listing-category" onclick="window.quartoListingCategory('YmFkJTIwc2NpZW5jZQ=='); return false;">bad science</div>
1327
1328</div>
1329<div class="delink listing-description"><a href="../posts/95-percent-myth/index.html" class="no-external">
1330<p>How a study from 1959 on 100 patients created one of the most enduring myths about human weight and nutrition.</p>
1331</a></div>
1332</div>
1333<div class="metadata">
1334<a href="../posts/95-percent-myth/index.html" class="no-external">
1335<div class="listing-date">
133627 Dec 2023
1337</div>
1338<div class="listing-author">
1339Chris von Csefalvay
1340</div>
1341</a>
1342</div>
1343</div>
1344<div class="quarto-post image-right" data-index="30" data-categories="QUklMkNkaXNhYmlsaXR5JTJDaHVtYW4tY29tcHV0ZXIlMjBpbnRlcmFjdGlvbg==" data-listing-date-sort="1702339200000" data-listing-file-modified-sort="1790221797387" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="5" data-listing-word-count-sort="868">
1345<div class="thumbnail"><a href="../posts/ai-human-interaction/index.html" class="no-external">
1346
1347<img loading="lazy" data-src="../posts/ai-human-interaction/cd091fdb-e9e7-49d9-9b11-2b1eb92e2f86.webp" class="thumbnail-image">
1348
1349</a></div>
1350<div class="body">
1351<h3 class="no-anchor listing-title">
1352<a href="../posts/ai-human-interaction/index.html" class="no-external">What I learned from getting bodied by a robot.</a>
1353</h3>
1354<div class="listing-categories">
1355
1356<div class="listing-category" onclick="window.quartoListingCategory('QUk='); return false;">AI</div>
1357
1358<div class="listing-category" onclick="window.quartoListingCategory('ZGlzYWJpbGl0eQ=='); return false;">disability</div>
1359
1360<div class="listing-category" onclick="window.quartoListingCategory('aHVtYW4tY29tcHV0ZXIlMjBpbnRlcmFjdGlvbg=='); return false;">human-computer interaction</div>
1361
1362</div>
1363<div class="delink listing-description"><a href="../posts/ai-human-interaction/index.html" class="no-external">
1364<p>I’m fine, the robot’s fine, society on the other hand has some questions to tackle.</p>
1365</a></div>
1366</div>
1367<div class="metadata">
1368<a href="../posts/ai-human-interaction/index.html" class="no-external">
1369<div class="listing-date">
137012 Dec 2023
1371</div>
1372<div class="listing-author">
1373Chris von Csefalvay
1374</div>
1375</a>
1376</div>
1377</div>
1378<div class="quarto-post image-right" data-index="31" data-categories="QUklMkNhY2FkZW1pYSUyQ3dyaXRpbmclMkNMTE1z" data-listing-date-sort="1701820800000" data-listing-file-modified-sort="1790221797381" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="7" data-listing-word-count-sort="1349">
1379<div class="thumbnail"><a href="../posts/academic-generative-ai/index.html" class="no-external">
1380
1381<img loading="lazy" data-src="../posts/academic-generative-ai/4ae87543-b5d3-4373-b691-3fb71d8cf1d0.webp" class="thumbnail-image">
1382
1383</a></div>
1384<div class="body">
1385<h3 class="no-anchor listing-title">
1386<a href="../posts/academic-generative-ai/index.html" class="no-external">
1386Stochastic parrots, cap and gown edition</a>
1387</h3>
1388<div class="listing-categories">
1389
1390<div class="listing-category" onclick="window.quartoListingCategory('QUk='); return false;">AI</div>
1391
1392<div class="listing-category" onclick="window.quartoListingCategory('YWNhZGVtaWE='); return false;">academia</div>
1393
1394<div class="listing-category" onclick="window.quartoListingCategory('d3JpdGluZw=='); return false;">writing</div>
1395
1396<div class="listing-category" onclick="window.quartoListingCategory('TExNcw=='); return false;">LLMs</div>
1397
1398</div>
1399<div class="delink listing-description"><a href="../posts/academic-generative-ai/index.html" class="no-external">
1400<p>Academic AI is a hot mess. Here’s why.</p>
1401</a></div>
1402</div>
1403<div class="metadata">
1404<a href="../posts/academic-generative-ai/index.html" class="no-external">
1405<div class="listing-date">
14066 Dec 2023
1407</div>
1408<div class="listing-author">
1409Chris von Csefalvay
1410</div>
1411</a>
1412</div>
1413</div>
1414<div class="quarto-post image-right" data-index="32" data-categories="UXVhcnRv" data-listing-date-sort="1699833600000" data-listing-file-modified-sort="1790221797391" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="11" data-listing-word-count-sort="2026">
1415<div class="thumbnail"><a href="../posts/auto-doi/index.html" class="no-external">
1416
1417<img loading="lazy" data-src="../posts/auto-doi/free-photo-of-a-drink-with-mint-in-a-glass-and-a-small-cookie-on-a-plate.jpeg" class="thumbnail-image">
1418
1419</a></div>
1420<div class="body">
1421<h3 class="no-anchor listing-title">
1422<a href="../posts/auto-doi/index.html" class="no-external">Auto-DOI for Quarto posts via Rogue Scholar</a>
1423</h3>
1424<div class="listing-categories">
1425
1426<div class="listing-category" onclick="window.quartoListingCategory('UXVhcnRv'); return false;">Quarto</div>
1427
1428</div>
1429<div class="delink listing-description"><a href="../posts/auto-doi/index.html" class="no-external">
1430<p>Oh, that’s mint. We can finally use Rogue Scholar to mint DOIs for Quarto posts and append them automagically.</p>
1431</a></div>
1432</div>
1433<div class="metadata">
1434<a href="../posts/auto-doi/index.html" class="no-external">
1435<div class="listing-date">
143613 Nov 2023
1437</div>
1438<div class="listing-author">
1439Chris von Csefalvay
1440</div>
1441</a>
1442</div>
1443</div>
1444<div class="quarto-post image-right" data-index="33" data-categories="QUklMkNwaGlsb3NvcGh5" data-listing-date-sort="1699228800000" data-listing-file-modified-sort="1790221797509" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="11" data-listing-word-count-sort="2013">
1445<div class="thumbnail"><a href="../posts/skeuomorphic-fallacy/index.html" class="no-external">
1446
1447<p class="card-img-top"><img loading='lazy' data-src="skeuomorphic-fallacy/6506c915cd637c0019c66997.webp"  class="thumbnail-image card-img"/></p>
1448
1449</a></div>
1450<div class="body">
1451<h3 class="no-anchor listing-title">
1452<a href="../posts/skeuomorphic-fallacy/index.html" class="no-external">The skeuomorphic fallacy</a>
1453</h3>
1454<div class="listing-categories">
1455
1456<div class="listing-category" onclick="window.quartoListingCategory('QUk='); return false;">AI</div>
1457
1458<div class="listing-category" onclick="window.quartoListingCategory('cGhpbG9zb3BoeQ=='); return false;">philosophy</div>
1459
1460</div>
1461<div class="delink listing-description"><a href="../posts/skeuomorphic-fallacy/index.html" class="no-external">
1462<p>What something is isn’t the same as what it uses to manifest that being. Also, robot CEOs are nonsense.</p>
1463</a></div>
1464</div>
1465<div class="metadata">
1466<a href="../posts/skeuomorphic-fallacy/index.html" class="no-external">
1467<div class="listing-date">
14686 Nov 2023
1469</div>
1470<div class="listing-author">
1471Chris von Csefalvay
1472</div>
1473</a>
1474</div>
1475</div>
1476<div class="quarto-post image-right" data-index="34" data-categories="QUklMkNMTE1zJTJDYWdlbnRz" data-listing-date-sort="1698624000000" data-listing-file-modified-sort="1790221797526" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="22" data-listing-word-count-sort="4322">
1477<div class="thumbnail"><a href="../posts/team-of-rivals/index.html" class="no-external">
1478
1479<img loading="lazy" data-src="../posts/team-of-rivals/aaz4729-f1.jpeg" class="thumbnail-image">
1480
1481</a></div>
1482<div class="body">
1483<h3 class="no-anchor listing-title">
1484<a href="../posts/team-of-rivals/index.html" class="no-external">Teams of Rivals</a>
1485</h3>
1486<div class="listing-categories">
1487
1488<div class="listing-category" onclick="window.quartoListingCategory('QUk='); return false;">AI</div>
1489
1490<div class="listing-category" onclick="window.quartoListingCategory('TExNcw=='); return false;">LLMs</div>
1491
1492<div class="listing-category" onclick="window.quartoListingCategory('YWdlbnRz'); return false;">agents</div>
1493
1494</div>
1495<div class="delink listing-description"><a href="../posts/team-of-rivals/index.html" class="no-external">
1496<p>Finally, some discussion on LLM connectionism, and what LLMs could usefully become.</p>
1497</a></div>
1498</div>
1499<div class="metadata">
1500<a href="../posts/team-of-rivals/index.html" class="no-external">
1501<div class="listing-date">
150230 Oct 2023
1503</div>
1504<div class="listing-author">
1505Chris von Csefalvay
1506</div>
1507</a>
1508</div>
1509</div>
1510<div class="quarto-post image-right" data-index="35" data-categories="QUklMkNMTE1zJTJDcHJvbXB0JTIwZW5naW5lZXJpbmc=" data-listing-date-sort="1698537600000" data-listing-file-modified-sort="1790221797504" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="8" data-listing-word-count-sort="1429">
1511<div class="thumbnail"><a href="../posts/prompt-engineering/index.html" class="no-external">
1512
1513<p class="card-img-top"><img loading='lazy' data-src="prompt-engineering/03880260005fa86e78ddb88e645bfcef.jpg"  class="thumbnail-image card-img"/></p>
1514
1515</a></div>
1516<div class="body">
1517<h3 class="no-anchor listing-title">
1518<a href="../posts/prompt-engineering/index.html" class="no-external">Prompt Engineering: The Art of Yesterday</a>
1519</h3>
1520<div class="listing-categories">
1521
1522<div class="listing-category" onclick="window.quartoListingCategory('QUk='); return false;">AI</div>
1523
1524<div class="listing-category" onclick="window.quartoListingCategory('TExNcw=='); return false;">LLMs</div>
1525
1526<div class="listing-category" onclick="window.quartoListingCategory('cHJvbXB0JTIwZW5naW5lZXJpbmc='); return false;">prompt engineering</div>
1527
1528</div>
1529<div class="delink listing-description"><a href="../posts/prompt-engineering/index.html" class="no-external">
1530<p>Why prompt engineering has been obsolete before it even took off.</p>
1531</a></div>
1532</div>
1533<div class="metadata">
1534<a href="../posts/prompt-engineering/index.html" class="no-external">
1535<div class="listing-date">
153629 Oct 2023
1537</div>
1538<div class="listing-author">
1539Chris von Csefalvay
1540</div>
1541</a>
1542</div>
1543</div>
1544<div class="quarto-post image-right" data-index="36" data-categories="QUklMkNzdG9yeXRlbGxpbmclMkNzZW5zZW1ha2luZyUyQ2V0aGljcyUyQ3BoaWxvc29waHk=" data-listing-date-sort="1698278400000" data-listing-file-modified-sort="1790221797441" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="14" data-listing-word-count-sort="2752">
1545<div class="thumbnail"><a href="../posts/moral-maps/index.html" class="no-external">
1546
1547<p class="card-img-top"><img loading='lazy' data-src="moral-maps/site_0491_0011-1200-630-20151105103027.jpg"  class="thumbnail-image card-img"/></p>
1548
1549</a></div>
1550<div class="body">
1551<h3 class="no-anchor listing-title">
1552<a href="../posts/moral-maps/index.html" class="no-external">The Moral Pulse of the Machine</a>
1553</h3>
1554<div class="listing-categories">
1555
1556<div class="listing-category" onclick="window.quartoListingCategory('QUk='); return false;">AI</div>
1557
1558<div class="listing-category" onclick="window.quartoListingCategory('c3Rvcnl0ZWxsaW5n'); return false;">storytelling</div>
1559
1560<div class="listing-category" onclick="window.quartoListingCategory('c2Vuc2VtYWtpbmc='); return false;">sensemaking</div>
1561
1562<div class="listing-category" onclick="window.quartoListingCategory('ZXRoaWNz'); return false;">ethics</div>
1563
1564<div class="listing-category" onclick="window.quartoListingCategory('cGhpbG9zb3BoeQ=='); return false;">philosophy</div>
1565
1566</div>
1567<div class="delink listing-description"><a href="../posts/moral-maps/index.html" class="no-external">
1568<p>On bedtime stories, and what making machines tell them tells us about their moral make-up.</p>
1569</a></div>
1570</div>
1571<div class="metadata">
1572<a href="../posts/moral-maps/index.html" class="no-external">
1573<div class="listing-date">
157426 Oct 2023
1575</div>
1576<div class="listing-author">
1577Chris von Csefalvay
1578</div>
1579</a>
1580</div>
1581</div>
1582<div class="quarto-post image-right" data-index="37" data-categories="UXVhcnRvJTJDUHl0aG9u" data-listing-date-sort="1697932800000" data-listing-file-modified-sort="1790221797504" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="8" data-listing-word-count-sort="1423">
1583<div class="thumbnail"><a href="../posts/quarto-project-scripts/index.html" class="no-external">
1584
1585<div class="listing-item-img-placeholder card-img-top" >&nbsp;</div>
1586
1587</a></div>
1588<div class="body">
1589<h3 class="no-anchor listing-title">
1590<a href="../posts/quarto-project-scripts/index.html" class="no-external">Quarto project scripts are awesomeness</a>
1591</h3>
1592<div class="listing-categories">
1593
1594<div class="listing-category" onclick="window.quartoListingCategory('UXVhcnRv'); return false;">Quarto</div>
1595
1596<div class="listing-category" onclick="window.quartoListingCategory('UHl0aG9u'); return false;">Python</div>
1597
1598</div>
1599<div class="delink listing-description"><a href="../posts/quarto-project-scripts/index.html" class="no-external">
1600<p>Project scripts help you integrate just about every possible hare-brained scheme into your Quarto rendering pipeline. Go on, build that page from that YAML file. You know you want to.<
1600/p>
1601</a></div>
1602</div>
1603<div class="metadata">
1604<a href="../posts/quarto-project-scripts/index.html" class="no-external">
1605<div class="listing-date">
160622 Oct 2023
1607</div>
1608<div class="listing-author">
1609Chris von Csefalvay
1610</div>
1611</a>
1612</div>
1613</div>
1614<div class="quarto-post image-right" data-index="38" data-categories="QUklMkNhcnQlMkNwaGlsb3NvcGh5" data-listing-date-sort="1697414400000" data-listing-file-modified-sort="1790221797441" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="11" data-listing-word-count-sort="2070">
1615<div class="thumbnail"><a href="../posts/lyre-of-hephaestus/index.html" class="no-external">
1616
1617<img loading="lazy" data-src="../posts/lyre-of-hephaestus/IMG_8534.jpeg" class="thumbnail-image">
1618
1619</a></div>
1620<div class="body">
1621<h3 class="no-anchor listing-title">
1622<a href="../posts/lyre-of-hephaestus/index.html" class="no-external">The Lyre of Hephaestus</a>
1623</h3>
1624<div class="listing-categories">
1625
1626<div class="listing-category" onclick="window.quartoListingCategory('QUk='); return false;">AI</div>
1627
1628<div class="listing-category" onclick="window.quartoListingCategory('YXJ0'); return false;">art</div>
1629
1630<div class="listing-category" onclick="window.quartoListingCategory('cGhpbG9zb3BoeQ=='); return false;">philosophy</div>
1631
1632</div>
1633<div class="delink listing-description"><a href="../posts/lyre-of-hephaestus/index.html" class="no-external">
1634<p>AI, art, language, and what makes us truly what we are.</p>
1635</a></div>
1636</div>
1637<div class="metadata">
1638<a href="../posts/lyre-of-hephaestus/index.html" class="no-external">
1639<div class="listing-date">
164016 Oct 2023
1641</div>
1642<div class="listing-author">
1643Chris von Csefalvay
1644</div>
1645</a>
1646</div>
1647</div>
1648<div class="quarto-post image-right" data-index="39" data-categories="QUklMkNMTE1zJTJDcGhpbG9zb3BoeSUyQ2xhbmd1YWdl" data-listing-date-sort="1697328000000" data-listing-file-modified-sort="1790221797440" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="11" data-listing-word-count-sort="2071">
1649<div class="thumbnail"><a href="../posts/llms-language/index.html" class="no-external">
1650
1651<div class="listing-item-img-placeholder card-img-top" >&nbsp;</div>
1652
1653</a></div>
1654<div class="body">
1655<h3 class="no-anchor listing-title">
1656<a href="../posts/llms-language/index.html" class="no-external">Beyond Broca</a>
1657</h3>
1658<div class="listing-categories">
1659
1660<div class="listing-category" onclick="window.quartoListingCategory('QUk='); return false;">AI</div>
1661
1662<div class="listing-category" onclick="window.quartoListingCategory('TExNcw=='); return false;">LLMs</div>
1663
1664<div class="listing-category" onclick="window.quartoListingCategory('cGhpbG9zb3BoeQ=='); return false;">philosophy</div>
1665
1666<div class="listing-category" onclick="window.quartoListingCategory('bGFuZ3VhZ2U='); return false;">language</div>
1667
1668</div>
1669<div class="delink listing-description"><a href="../posts/llms-language/index.html" class="no-external">
1670<p>What if we’ve got one of the most important things in our understanding of who we are, and what makes us intelligent, utterly wrong?</p>
1671</a></div>
1672</div>
1673<div class="metadata">
1674<a href="../posts/llms-language/index.html" class="no-external">
1675<div class="listing-date">
167615 Oct 2023
1677</div>
1678<div class="listing-author">
1679Chris von Csefalvay
1680</div>
1681</a>
1682</div>
1683</div>
1684<div class="quarto-post image-right" data-index="40" data-categories="Zml0bmVzcyUyQ1NraUVyZw==" data-listing-date-sort="1697155200000" data-listing-file-modified-sort="1790221797516" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="5" data-listing-word-count-sort="1000">
1685<div class="thumbnail"><a href="../posts/skierg-marathon/index.html" class="no-external">
1686
1687<p class="card-img-top"><img loading='lazy' data-src="skierg-marathon/index_files/figure-html/skierg-marathon-fig-skierg-marathon-output-1.png"  class="thumbnail-image card-img"/></p>
1688
1689</a></div>
1690<div class="body">
1691<h3 class="no-anchor listing-title">
1692<a href="../posts/skierg-marathon/index.html" class="no-external">How to do a SkiErg marathon entirely the wrong way (but still finish)</a>
1693</h3>
1694<div class="listing-categories">
1695
1696<div class="listing-category" onclick="window.quartoListingCategory('Zml0bmVzcw=='); return false;">fitness</div>
1697
1698<div class="listing-category" onclick="window.quartoListingCategory('U2tpRXJn'); return false;">SkiErg</div>
1699
1700</div>
1701<div class="delink listing-description"><a href="../posts/skierg-marathon/index.html" class="no-external">
1702<p>How to eat the wrong way, rest the wrong way (i.e.&nbsp;
1702not), half-ass all relevant parts of preparation for a marathon and still finish with an okay time.</p>
1703</a></div>
1704</div>
1705<div class="metadata">
1706<a href="../posts/skierg-marathon/index.html" class="no-external">
1707<div class="listing-date">
170813 Oct 2023
1709</div>
1710<div class="listing-author">
1711Chris von Csefalvay
1712</div>
1713</a>
1714</div>
1715</div>
1716<div class="quarto-post image-right" data-index="41" data-categories="QUklMkNMTE1zJTJDQ3Jvc3MtcG9zdCUzQSUyMFN0YXJzY2hlbWE=" data-listing-date-sort="1696204800000" data-listing-file-modified-sort="1790221797417" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="2" data-listing-word-count-sort="208">
1717<div class="thumbnail"><a href="../posts/knowledge-dividend-of-llms/index.html" class="no-external">
1718
1719<img loading="lazy" data-src="../posts/knowledge-dividend-of-llms/header.webp" class="thumbnail-image">
1720
1721</a></div>
1722<div class="body">
1723<h3 class="no-anchor listing-title">
1724<a href="../posts/knowledge-dividend-of-llms/index.html" class="no-external">The knowledge dividend of large language models</a>
1725</h3>
1726<div class="listing-categories">
1727
1728<div class="listing-category" onclick="window.quartoListingCategory('QUk='); return false;">AI</div>
1729
1730<div class="listing-category" onclick="window.quartoListingCategory('TExNcw=='); return false;">LLMs</div>
1731
1732<div class="listing-category" onclick="window.quartoListingCategory('Q3Jvc3MtcG9zdCUzQSUyMFN0YXJzY2hlbWE='); return false;">Cross-post: Starschema</div>
1733
1734</div>
1735<div class="delink listing-description"><a href="../posts/knowledge-dividend-of-llms/index.html" class="no-external">
1736<p>Crosspost from the work blog: a pragmatic perspective on the knowledge dividend in large language models (and what it may, or may not, mean for knowledge in models, and what this can do for you).</p>
1737</a></div>
1738</div>
1739<div class="metadata">
1740<a href="../posts/knowledge-dividend-of-llms/index.html" class="no-external">
1741<div class="listing-date">
17422 Oct 2023
1743</div>
1744<div class="listing-author">
1745Chris von Csefalvay
1746</div>
1747</a>
1748</div>
1749</div>
1750<div class="quarto-post image-right" data-index="42" data-categories="QUklMkNMTE1zJTJDQ3Jvc3MtcG9zdCUzQSUyMFN0YXJzY2hlbWE=" data-listing-date-sort="1679529600000" data-listing-file-modified-sort="1790221797390" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="3" data-listing-word-count-sort="564">
1751<div class="thumbnail"><a href="../posts/asemantic-induction-of-hallucinations/index.html" class="no-external">
1752
1753<img loading="lazy" data-src="../posts/asemantic-induction-of-hallucinations/header.jpg" class="thumbnail-image">
1754
1755</a></div>
1756<div class="body">
1757<h3 class="no-anchor listing-title">
1758<a href="../posts/asemantic-induction-of-hallucinations/index.html" class="no-external">Asemantic Induction of Hallucinations in LLMs</a>
1759</h3>
1760<div class="listing-categories">
1761
1762<div class="listing-category" onclick="window.quartoListingCategory('QUk='); return false;">AI</div>
1763
1764<div class="listing-category" onclick="window.quartoListingCategory('TExNcw=='); return false;">LLMs</div>
1765
1766<div class="listing-category" onclick="window.quartoListingCategory('Q3Jvc3MtcG9zdCUzQSUyMFN0YXJzY2hlbWE='); return false;">Cross-post: Starschema</div>
1767
1768</div>
1769<div class="delink listing-description"><a href="../posts/asemantic-induction-of-hallucinations/index.html" class="no-external">
1770<p>Large language models (LLMs) struggle with asemantic information: the more we stray outside the confines of language, the worse it gets. Here’s how we’ll use this for fun and profit.</p>
1771</a></div>
1772</div>
1773<div class="metadata">
1774<a href="../posts/asemantic-induction-of-hallucinations/index.html" class="no-external">
1775<div class="listing-date">
177623 Mar 2023
1777</div>
1778<div class="listing-author">
1779Chris von Csefalvay
1780</div>
1781</a>
1782</div>
1783</div>
1784<div class="quarto-post image-right" data-index="43" data-categories="Y29tcHV0YXRpb25hbCUyMGVwaWRlbWlvbG9neSUyQ2VwaWRlbWljcyUyQ0Nyb3NzLXBvc3QlM0ElMjBTdGFyc2NoZW1h" data-listing-date-sort="1678147200000" data-listing-file-modified-sort="1790221797397" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="1" data-listing-word-count-sort="132">
1785<div class="thumbnail"><a href="../posts/data-for-the-next-pandemic/index.html" class="no-external">
1786
1787<img loading="lazy" data-src="../posts/data-for-the-next-pandemic/header.webp" class="thumbnail-image">
1788
1789</a></div>
1790<div class="body">
1791<h3 class="no-anchor listing-title">
1792<a href="../posts/data-for-the-next-pandemic/index.html" class="no-external">Data for the next pandemic</a>
1793</h3>
1794<div class="listing-categories">
1795
1796<div class="listing-category" onclick="window.quartoListingCategory('Y29tcHV0YXRpb25hbCUyMGVwaWRlbWlvbG9neQ=='); return false;">computational epidemiology</div>
1797
1798<div class="listing-category" onclick="window.quartoListingCategory('ZXBpZGVtaWNz'); return false;">epidemics</div>
1799
1800<div class="listing-category" onclick="window.quartoListingCategory('Q3Jvc3MtcG9zdCUzQSUyMFN0YXJzY2hlbWE='); return false;">
1800Cross-post: Starschema</div>
1801
1802</div>
1803<div class="delink listing-description"><a href="../posts/data-for-the-next-pandemic/index.html" class="no-external">
1804<p>If there’s one thing that emerged with any clarity from COVID-19, it’s that where data played a decisive role in guiding policy interventions, outcomes were better. We need better data for the next pandemic.</p>
1805</a></div>
1806</div>
1807<div class="metadata">
1808<a href="../posts/data-for-the-next-pandemic/index.html" class="no-external">
1809<div class="listing-date">
18107 Mar 2023
1811</div>
1812<div class="listing-author">
1813Chris von Csefalvay
1814</div>
1815</a>
1816</div>
1817</div>
1818<div class="quarto-post image-right" data-index="44" data-categories="QUklMkNnYW1lcyUyQ0FCTXM=" data-listing-date-sort="1678147200000" data-listing-file-modified-sort="1790221797409" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="11" data-listing-word-count-sort="2006">
1819<div class="thumbnail"><a href="../posts/dwarf-fortress/index.html" class="no-external">
1820
1821<img loading="lazy" data-src="../posts/dwarf-fortress/7433642A-221D-4AC6-B3FD-DEE5F01C1123.jpeg.webp" class="thumbnail-image">
1822
1823</a></div>
1824<div class="body">
1825<h3 class="no-anchor listing-title">
1826<a href="../posts/dwarf-fortress/index.html" class="no-external">The hardest AI problem you’ve never heard of.</a>
1827</h3>
1828<div class="listing-categories">
1829
1830<div class="listing-category" onclick="window.quartoListingCategory('QUk='); return false;">AI</div>
1831
1832<div class="listing-category" onclick="window.quartoListingCategory('Z2FtZXM='); return false;">games</div>
1833
1834<div class="listing-category" onclick="window.quartoListingCategory('QUJNcw=='); return false;">ABMs</div>
1835
1836</div>
1837<div class="delink listing-description"><a href="../posts/dwarf-fortress/index.html" class="no-external">
1838<p>Dwarves. Elephants. AI. Let the games begin.</p>
1839</a></div>
1840</div>
1841<div class="metadata">
1842<a href="../posts/dwarf-fortress/index.html" class="no-external">
1843<div class="listing-date">
18447 Mar 2023
1845</div>
1846<div class="listing-author">
1847Chris von Csefalvay
1848</div>
1849</a>
1850</div>
1851</div>
1852<div class="quarto-post image-right" data-index="45" data-categories="QUklMkNjb21wdXRhdGlvbmFsJTIwY2hlbWlzdHJ5JTJDZXRoaWNz" data-listing-date-sort="1649808000000" data-listing-file-modified-sort="1790221797380" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="9" data-listing-word-count-sort="1791">
1853<div class="thumbnail"><a href="../posts/a-different-shade-of-grey/index.html" class="no-external">
1854
1855<img loading="lazy" data-src="../posts/a-different-shade-of-grey/155mmMu
1855stardGasShells-1200x900.jpg" class="thumbnail-image">
1856
1857</a></div>
1858<div class="body">
1859<h3 class="no-anchor listing-title">
1860<a href="../posts/a-different-shade-of-grey/index.html" class="no-external">A different shade of grey</a>
1861</h3>
1862<div class="listing-categories">
1863
1864<div class="listing-category" onclick="window.quartoListingCategory('QUk='); return false;">AI</div>
1865
1866<div class="listing-category" onclick="window.quartoListingCategory('Y29tcHV0YXRpb25hbCUyMGNoZW1pc3RyeQ=='); return false;">computational chemistry</div>
1867
1868<div class="listing-category" onclick="window.quartoListingCategory('ZXRoaWNz'); return false;">ethics</div>
1869
1870</div>
1871<div class="delink listing-description"><a href="../posts/a-different-shade-of-grey/index.html" class="no-external">
1872<p>A response to Urbina <em>et al.</em> (2022) and the unreasonable spectre of AI coming up with chemical warfare agents (as if we didn’t already have enough of them).</p>
1873</a></div>
1874</div>
1875<div class="metadata">
1876<a href="../posts/a-different-shade-of-grey/index.html" class="no-external">
1877<div class="listing-date">
187813 Apr 2022
1879</div>
1880<div class="listing-author">
1881Chris von Csefalvay
1882</div>
1883</a>
1884</div>
1885</div>
1886<div class="quarto-post image-right" data-index="46" data-categories="bGl0ZXJhdHVyZSUyQ2RhdGElMjBzY2llbmNlJTJDZXRoaWNz" data-listing-date-sort="1649808000000" data-listing-file-modified-sort="1790221797410" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="5" data-listing-word-count-sort="943">
1887<div class="thumbnail"><a href="../posts/five-non-data-science-books-for-data-scientists/index.html" class="no-external">
1888
1889<img loading="lazy" data-src="../posts/five-non-data-science-books-for-data-scientists/book.jpg" class="thumbnail-image">
1890
1891</a></div>
1892<div class="body">
1893<h3 class="no-anchor listing-title">
1894<a href="../posts/five-non-data-science-books-for-data-scientists/index.html" class="no-external">Five non-data-science books for data scientists</a>
1895</h3>
1896<div class="listing-categories">
1897
1898<div class="listing-category" onclick="window.quartoListingCategory('bGl0ZXJhdHVyZQ=='); return false;">literature</div>
1899
1900<div class="listing-category" onclick="window.quartoListingCategory('ZGF0YSUyMHNjaWVuY2U='); return false;">data science</div>
1901
1902<div class="listing-category" onclick="window.quartoListingCategory('ZXRoaWNz'); return false;">ethics</div>
1903
1904</div>
1905<div class="delink listing-description"><a href="../posts/five-non-data-science-books-for-data-scientists/index.html" class="no-external">
1906<p>Read stuff outside your field. It’ll be good for you.</p>
1907</a></div>
1908</div>
1909<div class="metadata">
1910<a href="../posts/five-non-data-science-books-for-data-scientists/index.html" class="no-external">
1911<div class="listing-date">
191213 Apr 2022
1913</div>
1914<div class="listing-author">
1915Chris von Csefalvay
1916</div>
1917</a>
1918</div>
1919</div>
1920<div class="quarto-post image-right" data-index="47" data-categories="UXVvcmElMkNoaXN0b3J5JTJDdGVjaG5vbG9neQ==" data-listing-date-sort="1649808000000" data-listing-file-modified-sort="1790221797505" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="45" data-listing-word-count-sort="8858">
1921<div class="thumbnail"><a href="../posts/quora-answers/index.html" class="no-external">
1922
1923<img loading="lazy" data-src="../posts/quora-answers/quora.png" class="thumbnail-image">
1924
1925</a></div>
1926<div class="body">
1927<h3 class="no-anchor listing-title">
1928<a href="../posts/quora-answers/index.html" class="no-external">My favourite Quora answers</a>
1929</h3>
1930<div class="listing-categories">
1931
1932<div class="listing-category" onclick="window.quartoListingCategory('UXVvcmE='); return false;">Quora</div>
1933
1934<div class="listing-category" onclick="window.quartoListingCategory('aGlzdG9yeQ=='); return false;">history</div>
1935
1936<div class="listing-category" onclick="window.quartoListingCategory('dGVjaG5vbG9neQ=='); return false;">technology</div>
1937
1938</div>
1939<div class="delink listing-description"><a href="../posts/quora-answers/index.html" class="no-external">
1940<p>I’m no longer on Quora, but I used to be. Here are some of my favourite answers.</p>
1941</a></div>
1942</div>
1943<div class="metadata">
1944<a href="../posts/quora-answers/index.html" class="no-external">
1945<div class="listing-date">
194613 Apr 2022
1947</div>
1948<div class="listing-author">
1949Chris von Csefalvay
1950</div>
1951</a>
1952</div>
1953</div>
1954<div class="quarto-post image-right" data-index="48" data-categories="ZGFzaGJvYXJkcyUyQ2RhdGElMjB2aXN1YWxpemF0aW9uJTJDZGF0YSUyMHNjaWVuY2UlMkNDcm9zcy1wb3N0JTNBJTIwU3RhcnNjaGVtYQ==" data-listing-date-sort="1648771200000" data-listing-file-modified-sort="1790221797389" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="2" data-listing-word-count-sort="256">
1955<div class="thumbnail"><a href="../posts/as-we-may-see/index.html" class="no-external">
1956
1957<img loading="lazy" data-src="../posts/as-we-may-see/header.webp" class="thumbnail-image">
1958
1959</a></div>
1960<div class="body">
1961<h3 class="no-anchor listing-title">
1962<a href="../posts/as-we-may-see/index.html" class="no-external">As we may see: the world after dashboards</a>
1963</h3>
1964<div class="listing-categories">
1965
1966<div class="listing-category" onclick="window.quartoListingCategory('ZGFzaGJvYXJkcw=='); return false;">dashboards</div>
1967
1968<div class="listing-category" onclick="window.quartoListingCategory('ZGF0YSUyMHZpc3VhbGl6YXRpb24='); return false;">data visualization</div>
1969
1970<div class="listing-category" onclick="window.quartoListingCategory('ZGF0YSUyMHNjaWVuY2U='); return false;">data science</div>
1971
1972<div class="listing-category" onclick="window.quartoListingCategory('Q3Jvc3MtcG9zdCUzQSUyMFN0YXJzY2hlbWE='); return false;">
1972Cross-post: Starschema</div>
1973
1974</div>
1975<div class="delink listing-description"><a href="../posts/as-we-may-see/index.html" class="no-external">
1976<p>Dashboards are over – if you want it.</p>
1977</a></div>
1978</div>
1979<div class="metadata">
1980<a href="../posts/as-we-may-see/index.html" class="no-external">
1981<div class="listing-date">
19821 Apr 2022
1983</div>
1984<div class="listing-author">
1985Chris von Csefalvay
1986</div>
1987</a>
1988</div>
1989</div>
1990<div class="quarto-post image-right" data-index="49" data-categories="Q09WSUQtMTklMkNwaGFybWFjb2xvZ3k=" data-listing-date-sort="1637971200000" data-listing-file-modified-sort="1790221797481" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="5" data-listing-word-count-sort="946">
1991<div class="thumbnail"><a href="../posts/paxlovid/index.html" class="no-external">
1992
1993<img loading="lazy" data-src="../posts/paxlovid/paxlovid.png.webp" class="thumbnail-image">
1994
1995</a></div>
1996<div class="body">
1997<h3 class="no-anchor listing-title">
1998<a href="../posts/paxlovid/index.html" class="no-external">Peace, love, Paxlovid and ‘Pfizermectin’</a>
1999</h3>
2000<div class="listing-categories">
2001
2002<div class="listing-category" onclick="window.quartoListingCategory('Q09WSUQtMTk='); return false;">COVID-19</div>
2003
2004<div class="listing-category" onclick="window.quartoListingCategory('cGhhcm1hY29sb2d5'); return false;">pharmacology</div>
2005
2006</div>
2007<div class="delink listing-description"><a href="../posts/paxlovid/index.html" class="no-external">
2008<p>Debunking a remarkably popular and persistent misconception about the relationship between Paxlovid and ivermectin.</p>
2009</a></div>
2010</div>
2011<div class="metadata">
2012<a href="../posts/paxlovid/index.html" class="no-external">
2013<div class="listing-date">
201427 Nov 2021
2015</div>
2016<div class="listing-author">
2017Chris von Csefalvay
2018</div>
2019</a>
2020</div>
2021</div>
2022<div class="quarto-post image-right" data-index="50" data-categories="cHVibGljJTIwaGVhbHRoJTJDdmFjY2luZXM=" data-listing-date-sort="1636416000000" data-listing-file-modified-sort="1790221797444" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="6" data-listing-word-count-sort="1024">
2023<div class="thumbnail"><a href="../posts/mrna-gene-therapy/index.html" class="no-external">
2024
2025<img loading="lazy" data-src="../posts/mrna-gene-therapy/gettyimages-1666317109-1.jpg" class="thumbnail-image">
2026
2027</a></div>
2028<div class="body">
2029<h3 class="no-anchor listing-title">
2030<a href="../posts/mrna-gene-therapy/index.html" class="no-external">Why the COVID-19 vaccines are not gene therapy</a>
2031</h3>
2032<div class="listing-categories">
2033
2034<div class="listing-category" onclick="window.quartoListingCategory('cHVibGljJTIwaGVhbHRo'); return false;">public health</div>
2035
2036<div class="listing-category" onclick="window.quartoListingCategory('dmFjY2luZXM='); return false;">vaccines</div>
2037
2038</div>
2039<div class="delink listing-description"><a href="../posts/mrna-gene-therapy/index.html" class="no-external">
2040<p>Reflections on some definitional issues.</p>
2041</a></div>
2042</div>
2043<div class="metadata">
2044<a href="../posts/mrna-gene-therapy/index.html" class="no-external">
2045<div class="listing-date">
20469 Nov 2021
2047</div>
2048<div class="listing-author">
2049Chris von Csefalvay
2050</div>
2051</a>
2052</div>
2053</div>
2054<div class="quarto-post image-right" data-index="51" data-categories="Y3liZXJzZWN1cml0eSUyQ2Vjb25vbWV0cmljcyUyQ2dhbWUlMjB0aGVvcnk=" data-listing-date-sort="1620950400000" data-listing-file-modified-sort="1790221797506" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="10" data-listing-word-count-sort="1880">
2055<div class="thumbnail"><a href="../posts/ransomware-prisoners-dilemma/index.html" class="no-external">
2056
2057<img loading="lazy" data-src="../posts/ransomware-prisoners-dilemma/106880381-1620638044898-gettyimages-1232803207-COLONIAL_HACK.jpeg" class="thumbnail-image">
2058
2059</a></div>
2060<div class="body">
2061<h3 class="no-anchor listing-title">
2062<a href="../posts/ransomware-prisoners-dilemma/index.html" class="no-external">Ransomware attacks as n-person prisoner’s dilemmas</a>
2063</h3>
2064<div class="listing-categories">
2065
2066<div class="listing-category" onclick="window.quartoListingCategory('Y3liZXJzZWN1cml0eQ=='); return false;">cybersecurity</div>
2067
2068<div class="listing-category" onclick="window.quartoListingCategory('ZWNvbm9tZXRyaWNz'); return false;">econometrics</div>
2069
2070<div class="listing-category" onclick="window.quartoListingCategory('Z2FtZSUyMHRoZW9yeQ=='); return false;">game theory</div>
2071
2072</div>
2073<div class="delink listing-description"><a href="../posts/ransomware-prisoners-dilemma/index.html" class="no-external">
2074<p>
2074A game theoretical perspective on ransomware attacks as n-person prisoner’s dilemmas, and why forced cooperation isn’t the answer.</p>
2075</a></div>
2076</div>
2077<div class="metadata">
2078<a href="../posts/ransomware-prisoners-dilemma/index.html" class="no-external">
2079<div class="listing-date">
208014 May 2021
2081</div>
2082<div class="listing-author">
2083Chris von Csefalvay
2084</div>
2085</a>
2086</div>
2087</div>
2088<div class="quarto-post image-right" data-index="52" data-categories="QUklMkNKdWxpYSUyQ3Byb2dyYW1taW5n" data-listing-date-sort="1615075200000" data-listing-file-modified-sort="1790221797416" data-listing-date-modified-sort="NaN" data-listing-reading-time-sort="16" data-listing-word-count-sort="3103">
2089<div class="thumbnail"><a href="../posts/julia-a-post-mortem/index.html" class="no-external">
2090
2091<img loading="lazy" data-src="../posts/julia-a-post-mortem/julia.jpg" class="thumbnail-image">
2092
2093</a></div>
2094<div class="body">
2095<h3 class="no-anchor listing-title">
2096<a href="../posts/julia-a-post-mortem/index.html" class="no-external">Julia: A post-mortem</a>
2097</h3>
2098<div class="listing-categories">
2099
2100<div class="listing-category" onclick="window.quartoListingCategory('QUk='); return false;">AI</div>
2101
2102<div class="listing-category" onclick="window.quartoListingCategory('SnVsaWE='); return false;">Julia</div>
2103
2104<div class="listing-category" onclick="window.quartoListingCategory('cHJvZ3JhbW1pbmc='); return false;">programming</div>
2105
2106</div>
2107<div class="delink listing-description"><a href="../posts/julia-a-post-mortem/index.html" class="no-external">
2108<p>Why I no longer believe my favourite programming language will save the world.</p>
2109</a></div>
2110</div>
2111<div class="metadata">
2112<a href="../posts/julia-a-post-mortem/index.html" class="no-external">
2113<div class="listing-date">
21147 Mar 2021
2115</div>
2116<div class="listing-author">
2117Chris von Csefalvay
2118</div>
2119</a>
2120</div>
2121</div>
2122</div>
2123<div class="listing-no-matching d-none">No matching items</div>
2124<nav id="listing-pagination" class="listing-pagination" aria-label="Page Navigation">
2125  <ul class="pagination"></ul>
2126</nav>
2127</div><div id="quarto-appendix" class="default"><section class="quarto-appendix-contents" id="quarto-citation"><h2 class="anchored quarto-appendix-heading">Citation</h2><div><div class="quarto-appendix-secondary-label">BibTeX citation:</div><pre class="sourceCode code-with-copy quarto-appendix-bibtex"><code class="sourceCode bibtex">@misc{csefalvay,
2128  author = {{Chris von Csefalvay}},
2129  title = {The {Notebook}},
2130  url = {https://chrisvoncsefalvay.com/posts/},
2131  langid = {en-GB}
2132}
2133</code><button title="Copy to Clipboard" class="code-copy-button"><i class="bi"></i></button></pre><div class="quarto-appendix-secondary-label">For attribution, please cite this work as:</div><div id="ref-csefalvay" class="csl-entry quarto-appendix-citeas" role="listitem">
2134Chris von Csefalvay. n.d. <span>“The Notebook.”</span> Preprint. <a href="https://chrisvoncsefalvay.com/posts/">https://chrisvoncsefalvay.com/posts/</a>.
2135</div></div></section></div></main> <!-- /main -->
2136<script id="quarto-html-after-body" type="application/javascript">
2137  window.document.addEventListener("DOMContentLoaded", function (event) {
2138    const icon = "";
2139    const anchorJS = new window.AnchorJS();
2140    anchorJS.options = {
2141      placement: 'right',
2142      icon: icon
2143    };
2144    anchorJS.add('.anchored');
2145    const isCodeAnnotation = (el) => {
2146      for (const clz of el.classList) {
2147        if (clz.startsWith('code-annotation-')) {                     
2148          return true;
2149        }
2150      }
2151      return false;
2152    }
2153    const onCopySuccess = function(e) {
2154      // button target
2155      const button = e.trigger;
2156      // don't keep focus
2157      button.blur();
2158      // flash "checked"
2159      button.classList.add('code-copy-button-checked');
2160      var currentTitle = button.getAttribute("title");
2161      button.setAttribute("title", "Copied!");
2162      let tooltip;
2163      if (window.bootstrap) {
2164        button.setAttribute("data-bs-toggle", "tooltip");
2165        button.setAttribute("data-bs-placement", "left");
2166        button.setAttribute("data-bs-title", "Copied!");
2167        tooltip = new bootstrap.Tooltip(button, 
2168          { trigger: "manual", 
2169            customClass: "code-copy-button-tooltip",
2170            offset: [0, -8]});
2171        tooltip.show();    
2172      }
2173      setTimeout(function() {
2174        if (tooltip) {
2175          tooltip.hide();
2176          button.removeAttribute("data-bs-title");
2177          button.removeAttribute("data-bs-toggle");
2178          button.removeAttribute("data-bs-placement");
2179        }
2180        button.setAttribute("title", currentTitle);
2181        button.classList.remove('code-copy-button-checked');
2182      }, 1000);
2183      // clear code selection
2184      e.clearSelection();
2185    }
2186    const getTextToCopy = function(trigger) {
2187      const outerScaffold = trigger.parentElement.cloneNode(true);
2188      const codeEl = outerScaffold.querySelector('code');
2189      for (const childEl of codeEl.children) {
2190        if (isCodeAnnotation(childEl)) {
2191          childEl.remove();
2192        }
2193      }
2194      return codeEl.innerText;
2195    }
2196    const clipboard = new window.ClipboardJS('.code-copy-button:not([data-in-quarto-modal])', {
2197      text: getTextToCopy
2198    });
2199    clipboard.on('success', onCopySuccess);
2200    if (window.document.getElementById('quarto-embedded-source-code-modal')) {
2201      const clipboardModal = new window.ClipboardJS('.code-copy-button[data-in-quarto-modal]', {
2202        text: getTextToCopy,
2203        container: window.document.getElementById('quarto-embedded-source-code-modal')
2204      });
2205      clipboardModal.on('success', onCopySuccess);
2206    }
2207      var localhostRegex = new RegExp(/^(?:http|https):\/\/localhost\:?[0-9]*\//);
2208      var mailtoRegex = new RegExp(/^mailto:/);
2209        var filterRegex = new RegExp("https:\/\/chrisvoncsefalvay\.com");
2210      var isInternal = (href) => {
2211          return filterRegex.test(href) || localhostRegex.test(href) || mailtoRegex.test(href);
2212      }
2213      // Inspect non-navigation links and adorn them if external
2214     var links = window.document.querySelectorAll('a[href]:not(.nav-link):not(.navbar-brand):not(.toc-action):not(.sidebar-link):not(.sidebar-item-toggle):not(.pagination-link):not(.no-external):not([aria-hidden]):not(.dropdown-item):not(.quarto-navigation-tool):not(.about-link)');
2215      for (var i=0; i<links.length; i++) {
2216        const link = links[i];
2217        if (!isInternal(link.href)) {
2218          // undo the damage that might have been done by quarto-nav.js in the case of
2219          // links that we want to consider external
2220          if (link.dataset.originalHref !== undefined) {
2221            link.href = link.dataset.originalHref;
2222          }
2223        }
2224      }
2225    function tippyHover(el, contentFn, onTriggerFn, onUntriggerFn) {
2226      const config = {
2227        allowHTML: true,
2228        maxWidth: 500,
2229        delay: 100,
2230        arrow: false,
2231        appendTo: function(el) {
2232            return el.parentElement;
2233        },
2234        interactive: true,
2235        interactiveBorder: 10,
2236        theme: 'quarto',
2237        placement: 'bottom-start',
2238      };
2239      if (contentFn) {
2240        config.content = contentFn;
2241      }
2242      if (onTriggerFn) {
2243        config.onTrigger = onTriggerFn;
2244      }
2245      if (onUntriggerFn) {
2246        config.onUntrigger = onUntriggerFn;
2247      }
2248      window.tippy(el, config); 
2249    }
2250    const noterefs = window.document.querySelectorAll('a[role="doc-noteref"]');
2251    for (var i=0; i<noterefs.length; i++) {
2252      const ref = noterefs[i];
2253      tippyHover(ref, function() {
2254        // use id or data attribute instead here
2255        let href = ref.getAttribute('data-footnote-href') || ref.getAttribute('href');
2256        try { href = new URL(href).hash; } catch {}
2257        const id = href.replace(/^#\/?/, "");
2258        const note = window.document.getElementById(id);
2259        if (note) {
2260          return note.innerHTML;
2261        } else {
2262          return "";
2263        }
2264      });
2265    }
2266    const xrefs = window.document.querySelectorAll('a.quarto-xref');
2267    const processXRef = (id, note) => {
2268      // Strip column container classes
2269      const stripColumnClz = (el) => {
2270        el.classList.remove("page-full", "page-columns");
2271        if (el.children) {
2272          for (const child of el.children) {
2273            stripColumnClz(child);
2274          }
2275        }
2276      }
2277      stripColumnClz(note)
2278      if (id === null || id.startsWith('sec-')) {
2279        // Special case sections, only their first couple elements
2280        const container = document.createElement("div");
2281        if (note.children && note.children.length > 2) {
2282          container.appendChild(note.children[0].cloneNode(true));
2283          for (let i = 1; i < note.children.length; i++) {
2284            const child = note.children[i];
2285            if (child.tagName === "P" && child.innerText === "") {
2286              continue;
2287            } else {
2288              container.appendChild(child.cloneNode(true));
2289              break;
2290            }
2291          }
2292          if (window.Quarto?.typesetMath) {
2293            window.Quarto.typesetMath(container);
2294          }
2295          return container.innerHTML
2296        } else {
2297          if (window.Quarto?.typesetMath) {
2298            window.Quarto.typesetMath(note);
2299          }
2300          return note.innerHTML;
2301        }
2302      } else {
2303        // Remove any anchor links if they are present
2304        const anchorLink = note.querySelector('a.anchorjs-link');
2305        if (anchorLink) {
2306          anchorLink.remove();
2307        }
2308        if (window.Quarto?.typesetMath) {
2309          window.Quarto.typesetMath(note);
2310        }
2311        if (note.classList.contains("callout")) {
2312          return note.outerHTML;
2313        } else {
2314          return note.innerHTML;
2315        }
2316      }
2317    }
2318    for (var i=0; i<xrefs.length; i++) {
2319      const xref = xrefs[i];
2320      tippyHover(xref, undefined, function(instance) {
2321        instance.disable();
2322        let url = xref.getAttribute('href');
2323        let hash = undefined; 
2324        if (url.startsWith('#')) {
2325          hash = url;
2326        } else {
2327          try { hash = new URL(url).hash; } catch {}
2328        }
2329        if (hash) {
2330          const id = hash.replace(/^#\/?/, "");
2331          const note = window.document.getElementById(id);
2332          if (note !== null) {
2333            try {
2334              const html = processXRef(id, note.cloneNode(true));
2335              instance.setContent(html);
2336            } finally {
2337              instance.enable();
2338              instance.show();
2339            }
2340          } else {
2341            // See if we can fetch this
2342            fetch(url.split('#')[0])
2343            .then(res => res.text())
2344            .then(html => {
2345              const parser = new DOMParser();
2346              const htmlDoc = parser.parseFromString(html, "text/html");
2347              const note = htmlDoc.getElementById(id);
2348              if (note !== null) {
2349                const html = processXRef(id, note);
2350                instance.setContent(html);
2351              } 
2352            }).finally(() => {
2353              instance.enable();
2354              instance.show();
2355            });
2356          }
2357        } else {
2358          // See if we can fetch a full url (with no hash to target)
2359          // This is a special case and we should probably do some content thinning / targeting
2360          fetch(url)
2361          .then(res => res.text())
2362          .then(html => {
2363            const parser = new DOMParser();
2364            const htmlDoc = parser.parseFromString(html, "text/html");
2365            const note = htmlDoc.querySelector('main.content');
2366            if (note !== null) {
2367              // This should only happen for chapter cross references
2368              // (since there is no id in the URL)
2369              // remove the first header
2370              if (note.children.length > 0 && note.children[0].tagName === "HEADER") {
2371                note.children[0].remove();
2372              }
2373              const html = processXRef(null, note);
2374              instance.setContent(html);
2375            } 
2376          }).finally(() => {
2377            instance.enable();
2378            instance.show();
2379          });
2380        }
2381      }, function(instance) {
2382      });
2383    }
2384        let selectedAnnoteEl;
2385        const selectorForAnnotation = ( cell, annotation) => {
2386          let cellAttr = 'data-code-cell="' + cell + '"';
2387          let lineAttr = 'data-code-annotation="' +  annotation + '"';
2388          const selector = 'span[' + cellAttr + '][' + lineAttr + ']';
2389          return selector;
2390        }
2391        const selectCodeLines = (annoteEl) => {
2392          const doc = window.document;
2393          const targetCell = annoteEl.getAttribute("data-target-cell");
2394          const targetAnnotation = annoteEl.getAttribute("data-target-annotation");
2395          const annoteSpan = window.document.querySelector(selectorForAnnotation(targetCell, targetAnnotation));
2396          const lines = annoteSpan.getAttribute("data-code-lines").split(",");
2397          const lineIds = lines.map((line) => {
2398            return targetCell + "-" + line;
2399          })
2400          let top = null;
2401          let height = null;
2402          let parent = null;
2403          if (lineIds.length > 0) {
2404              //compute the position of the single el (top and bottom and make a div)
2405              const el = window.document.getElementById(lineIds[0]);
2406              top = el.offsetTop;
2407              height = el.offsetHeight;
2408              parent = el.parentElement.parentElement;
2409            if (lineIds.length > 1) {
2410              const lastEl = window.document.getElementById(lineIds[lineIds.length - 1]);
2411              const bottom = lastEl.offsetTop + lastEl.offsetHeight;
2412              height = bottom - top;
2413            }
2414            if (top !== null && height !== null && parent !== null) {
2415              // cook up a div (if necessary) and position it 
2416              let div = window.document.getElementById("code-annotation-line-highlight");
2417              if (div === null) {
2418                div = window.document.createElement("div");
2419                div.setAttribute("id", "code-annotation-line-highlight");
2420                div.style.position = 'absolute';
2421                parent.appendChild(div);
2422              }
2423              div.style.top = top - 2 + "px";
2424              div.style.height = height + 4 + "px";
2425              div.style.left = 0;
2426              let gutterDiv = window.document.getElementById("code-annotation-line-highlight-gutter");
2427              if (gutterDiv === null) {
2428                gutterDiv = window.document.createElement("div");
2429                gutterDiv.setAttribute("id", "code-annotation-line-highlight-gutter");
2430                gutterDiv.style.position = 'absolute';
2431                const codeCell = window.document.getElementById(targetCell);
2432                const gutter = codeCell.querySelector('.code-annotation-gutter');
2433                gutter.appendChild(gutterDiv);
2434              }
2435              gutterDiv.style.top = top - 2 + "px";
2436              gutterDiv.style.height = height + 4 + "px";
2437            }
2438            selectedAnnoteEl = annoteEl;
2439          }
2440        };
2441        const unselectCodeLines = () => {
2442          const elementsIds = ["code-annotation-line-highlight", "code-annotation-line-highlight-gutter"];
2443          elementsIds.forEach((elId) => {
2444            const div = window.document.getElementById(elId);
2445            if (div) {
2446              div.remove();
2447            }
2448          });
2449          selectedAnnoteEl = undefined;
2450        };
2451          // Handle positioning of the toggle
2452      window.addEventListener(
2453        "resize",
2454        throttle(() => {
2455          elRect = undefined;
2456          if (selectedAnnoteEl) {
2457            selectCodeLines(selectedAnnoteEl);
2458          }
2459        }, 10)
2460      );
2461      function throttle(fn, ms) {
2462      let throttle = false;
2463      let timer;
2464        return (...args) => {
2465          if(!throttle) { // first call gets through
2466              fn.apply(this, args);
2467              throttle = true;
2468          } else { // all the others get throttled
2469              if(timer) clearTimeout(timer); // cancel #2
2470              timer = setTimeout(() => {
2471                fn.apply(this, args);
2472                timer = throttle = false;
2473              }, ms);
2474          }
2475        };
2476      }
2477        // Attach click handler to the DT
2478        const annoteDls = window.document.querySelectorAll('dt[data-target-cell]');
2479        for (const annoteDlNode of annoteDls) {
2480          annoteDlNode.addEventListener('click', (event) => {
2481            const clickedEl = event.target;
2482            if (clickedEl !== selectedAnnoteEl) {
2483              unselectCodeLines();
2484              const activeEl = window.document.querySelector('dt[data-target-cell].code-annotation-active');
2485              if (activeEl) {
2486                activeEl.classList.remove('code-annotation-active');
2487              }
2488              selectCodeLines(clickedEl);
2489              clickedEl.classList.add('code-annotation-active');
2490            } else {
2491              // Unselect the line
2492              unselectCodeLines();
2493              clickedEl.classList.remove('code-annotation-active');
2494            }
2495          });
2496        }
2497    const findCites = (el) => {
2498      const parentEl = el.parentElement;
2499      if (parentEl) {
2500        const cites = parentEl.dataset.cites;
2501        if (cites) {
2502          return {
2503            el,
2504            cites: cites.split(' ')
2505          };
2506        } else {
2507          return findCites(el.parentElement)
2508        }
2509      } else {
2510        return undefined;
2511      }
2512    };
2513    var bibliorefs = window.document.querySelectorAll('a[role="doc-biblioref"]');
2514    for (var i=0; i<bibliorefs.length; i++) {
2515      const ref = bibliorefs[i];
2516      const citeInfo = findCites(ref);
2517      if (citeInfo) {
2518        tippyHover(citeInfo.el, function() {
2519          var popup = window.document.createElement('div');
2520          citeInfo.cites.forEach(function(cite) {
2521            var citeDiv = window.document.createElement('div');
2522            citeDiv.classList.add('hanging-indent');
2523            citeDiv.classList.add('csl-entry');
2524            var biblioDiv = window.document.getElementById('ref-' + cite);
2525            if (biblioDiv) {
2526              citeDiv.innerHTML = biblioDiv.innerHTML;
2527            }
2528            popup.appendChild(citeDiv);
2529          });
2530          return popup.innerHTML;
2531        });
2532      }
2533    }
2534  });
2535  </script>
2535
2536</div> <!-- /content -->
2537<footer class="footer">
2538  <div class="nav-footer">
2539    <div class="nav-footer-left">
2540<ol start="3" type="a">
2541<li>Chris von Csefalvay, 2011–. <a href="../disclaimer/">Disclaimer</a> · <a href="../privacy-policy/">Privacy</a> · <a href="../corrections/">Corrections</a></li>
2542</ol>
2543</div>   
2544    <div class="nav-footer-center">
2545      &nbsp;
2546    </div>
2547    <div class="nav-footer-right">
2548      &nbsp;
2549    </div>
2550  </div>
2551</footer>
2552
2553
2554
2555
2556</body></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.