[{"content":"Below, a few recent highlights.\nFrom Hamming, \u0026ldquo;You and Your Research\u0026rdquo; (June 6, 1995).\nThe example I\u0026rsquo;ve given you already is working with the door closed or open. If you work the door closed, you won\u0026rsquo;t be interrupted and you get your work done. You work your door open, people come by and stop and chat and so on and so on. But I\u0026rsquo;ve noticed very clearly, at Bell Laboratories, those who work with door shut may be working just as hard ten years later but they don\u0026rsquo;t know what to work on. They are not connected with reality. Those who have the door open may very well know what\u0026rsquo;s important. Now I cannot prove to you whether the open door causes the open mind or whether the open mind causes the open door. I suspect it \u0026ndash; I can only establish the correlation, and it was quite spectacular. Almost always the guy with the door closed were often very well able, very gifted, but they seem to work always on slightly the wrong problem. So you\u0026rsquo;ll have to get wide feeling for what is going on and the supreme example of this closure is the Institute for Advanced Study at Princeton. They take in people who\u0026rsquo;ve done something great. They give them luxury, a beautiful office a beautiful restaurant to dine in, a wonderful grounds and everything else like that. Adequate salary to live on. No cares, no worries, no nothing, you\u0026rsquo;re freed for life on anything at all. What happens? The bulk of \u0026rsquo;em continue working on the problem they made that made them famous. They keep on elaborating and so on. Well, they\u0026rsquo;ve already made it famous. It doesn\u0026rsquo;t have to be added to. They got the thing going. Rarely do they change. Now, von Neumann was different. He was the Institute and he did go out in reality and turn up in Washington in other places. He traveled widely and was receptive of new ideas. But the bulk of the people got appointed the Institute for Advanced Study don\u0026rsquo;t keep the door open on life as it were. And they don\u0026rsquo;t do anything comparable to what they had done before. They are very able people, but the Institute in my opinion sterilized them a great extent. So what do you think are the ideal working conditions are not.\nFrom David Hilbert and his mathematical work by Hermann Weyl. Found in Levels of Infinity – Dover Publications.\nIn his famous address, Mathematische Problème, delivered before the Paris Congress in 1900, he stresses the importance of great concrete fruitful problems. \u0026ldquo;As long as a branch of science,\u0026rdquo; says he, \u0026ldquo;affords an abundance of problems, it is full of life; want of problems means death or cessation of independent development. Just as every human enterprise prosecutes final aims, so mathematical research needs problems. Their solution steels the force of the investigator; thus he discovers new methods and viewpoints and widens his horizon.\u0026rdquo; \u0026ldquo;One who without a definite problem before his eyes searches for methods, will probably search in vain.\u0026rdquo;\n","permalink":"https://valer.dev/posts/misc-signals-2025-11-18/","summary":"Below, a few recent highlights.\nFrom Hamming, \u0026ldquo;You and Your Research\u0026rdquo; (June 6, 1995).\nThe example I\u0026rsquo;ve given you already is working with the door closed or open. If you work the door closed, you won\u0026rsquo;t be interrupted and you get your work done. You work your door open, people come by and stop and chat and so on and so on. But I\u0026rsquo;ve noticed very clearly, at Bell Laboratories, those who work with door shut may be working just as hard ten years later but they don\u0026rsquo;t know what to work on.","title":"Misc signals 2025-11-18"},{"content":"String bending and visual navigation on the guitar Just realized that I want to try to think about the \u0026ldquo;destination\u0026rdquo; note of the string bend when playing it, rather than the starting note, which I usually do.\nWhat do I mean about \u0026ldquo;visualizing the destination\u0026rdquo; of the bend? Well, pretty much what I mean by visualizing any fret on the neck. But because I bend to the destination note and not fret it directly, I tend to focus on where my finger is at, instead of where the note is at.\nWhen I look at any fret, I see one scale projected around it, with that fret being a part of that scale, at a certain step in the scale. The scale I see is dependent on the context, on the key. Not all the time, I\u0026rsquo;m an amateur guitarist, so all my mental models of the guitar neck are mash-ups, stitched patterns of variable \u0026ldquo;coverage\u0026rdquo;. Sometimes I\u0026rsquo;m led to an area that\u0026rsquo;s plain shooting in the dark. Most times I stay in well ingrained \u0026ldquo;maps\u0026rdquo;.\nBut I realized that over time, over the years, I became more tolerant of \u0026ldquo;bad notes\u0026rdquo; as well as \u0026ldquo;unidentified notes\u0026rdquo;. So the 2nd thought in this was that maybe some \u0026ldquo;censors\u0026rdquo; are relaxed. Most probably off, the phenomenon is more complex, but it was fun to be reminded of Marvin Minski\u0026rsquo;s concepts of Correctors, Suppressors and Censors in his model of the mind.\n","permalink":"https://valer.dev/posts/misc-signals-2025-09-12/","summary":"String bending and visual navigation on the guitar Just realized that I want to try to think about the \u0026ldquo;destination\u0026rdquo; note of the string bend when playing it, rather than the starting note, which I usually do.\nWhat do I mean about \u0026ldquo;visualizing the destination\u0026rdquo; of the bend? Well, pretty much what I mean by visualizing any fret on the neck. But because I bend to the destination note and not fret it directly, I tend to focus on where my finger is at, instead of where the note is at.","title":"Misc signals 2025-09-12"},{"content":"A few highlights from reading All models are wrong: reflections on becoming a systems scientist; John D. Sterman. This is the paper form of a lecture held in 2002 by John D. Sterman, upon receiving the Jay Forrester award.\nWhat is System Dynamics? It can be seen through multiple lens, as:\nScience: the modeling process assumes hypothesizing, building a model, running an experiment - the simulation of the system through that model, and potentially invalidating the model. Engineering: the building of the model itself, building the simulation is engineering practice. Applied Mathematics: SD is grounded in Control Theory and Nonlinear Dynamics. Stocks \u0026amp; flows compile to differential equations which can be simulated on a computer. Social Science: modeling social systems, explaining social phenomena. Philosophy: it is a world view. Seeing feedbacks everywhere. A paradigm, Sterman says. Consulting: organizations want to achieve goals, stay competitive, etc.. Theory of Action: models are used to inform policy changes. They offer theoretical grounding for intervention through policy. Concepts Narrow Model Boundaries. \u0026ldquo;almost nothing is exogenous\u0026rdquo;; \u0026ldquo;invisible fences in the mind\u0026rdquo;, \u0026ldquo;infinite sources and infinite absorption capacity in sinks\u0026rdquo;, \u0026ldquo;a narrow boundary has cut critical feedback loops\u0026rdquo; I think this is one of the main points of the paper. Awarness of model boundaries. This means being aware of what you leave out of the model, how much is assumed exogenous in the sense that it\u0026rsquo;s not sourced by the system nor is it affected by the system. How much is part of \u0026ldquo;the environment\u0026rdquo; in which the system exists. How much is ignored. There\u0026rsquo;s an example in the paper that depicts Model Narrowness - the economics of Petroleum Resource Exploitation. The first narrow model presented is that of a economics-only view point which ignores geological aspects of resource exploration \u0026amp; exploitation, and considers resources as \u0026ldquo;exogenous\u0026rdquo;, meaning they have no beginning and no end, and are not affected by the system\u0026rsquo;s operation. Such a model fails to incorporate critical feedback loops, which makes it\u0026rsquo;s predictions unreliable, and the policies (or actions) derived from that worldview, ineffective. Non-Locality of cause \u0026amp; effect. In complex systems, cause and effect may reach large time \u0026amp; space distance! Intuitively we\u0026rsquo;re used to understanding locality, but that intuition is not as effective for grasping complex dynamics spanning wider space/time intervals. Event-oriented worldviews. Shift in feedback loop dominance. I love this one because it makes you ask \u0026ldquo;what is the dominant influence over this variable\u0026rdquo; and \u0026ldquo;how can this influence change over time\u0026rdquo;. Say we\u0026rsquo;re interested in a particular quantity, that\u0026rsquo;s measured in a system which is governed by multiple feedback loops. Each feedback acts with a certain power over the quantity we\u0026rsquo;re interested in. Over time, feedback dynamics can change: a reinforcing loop may be diminished by a stronger negative feedback, causing the quantity to start falling. Policy Resistence. When you have a certain understanding of a system, a given mental model in your head. You picture an intervention to improve some outcome. Policy resistence happens when, despite you implementing that change, that new policy, that new structure, the system over time re-adapts and renders your solution counterproductive. \u0026ldquo;Today\u0026rsquo;s solutions become tomorrow\u0026rsquo;s problems\u0026rdquo;. Some quick examples: increasing taxes intention: accrue more tax revenue actual system response: tax revenue income falls, as entities migrate to other jurisdictions. building more roads intention: more fluid traffic, less traffic jams actual system response: heavy traffic is maintained, since using the car becomes more attractive, more people use cars, and the problem compounds Time Delayed feedback. TBD, there\u0026rsquo;s a whole chapter in Business Dynamics studying the effects of delays in systems with feedbacks. Quotes \u0026ldquo;One [student] once told me I was a model professor. I thought this was high praise until I realized that a model is a small imitation of the real thing.\u0026rdquo;\n\u0026ldquo;People frequently talk about unexpected surprises and side effects as if they were a feature of reality.\u0026rdquo;\n\u0026ldquo;Most people, regardless of their background, are comfortable with their current philosophy\u0026rdquo;.\n\u0026ldquo;As system thinkers, we must always strive to break down the false barriers that divide us.\u0026rdquo;\n\u0026ldquo;Today\u0026rsquo;s solutions become tomorrow\u0026rsquo;s problems. The result is Policy Resistence, the tendency for interventions to be defeated by the response of the system to the intervention itself. [..] At the root of this phenomenon lies the narrow, event-based, reductionist world view that most people live by\u0026rdquo;. (the remaining 2 paragraphs are beautiful, but I should stop quoting here.)\n\u0026ldquo;We are unaware of the majority of the feedback effects of our actions. Instead, we see most of our experience as a kind of weather: something that happens to us but over which we have no control. Failure to recognize the feedbacks in which we are embedded, the way in which we shape the situation in which we find ourselves, leads to policy resistence in which we persistently react to the symptoms of difficulty, intervening in low-leverage points and triggering delayed and distant but powerful feedbacks.\u0026rdquo;\n\u0026ldquo;School teaches us that every subject is different and knowledge is fragmented. The invisible lines in the mind are the boundaries of our mental models.\u0026rdquo;\n\u0026ldquo;We are continuously pressured by our clients, our students, colleagues and our own egos to slip out of the role of the questioner and learner into the role of expert and teacher. Doing so often fails, by generating defensiveness and resistance. The phrase \u0026lsquo;getting client buy-in\u0026rsquo; should be banned from our lexicon. Selling a product is antithetical to the process of inquiry.\u0026rdquo;\n\u0026ldquo;There is no learning without feedback, without knowledge of the results of our actions.\u0026rdquo;\n\u0026ldquo;Developing the capacity to see the world through multiple lenses and to respect differences cannot become an excuse for indecision, for a retreat to impotent scholasticism. We have to act. We must make the best decisions we can despite the inevitable limitations of our knowledge and models, then take personal responsibility for them. Mastering this tension is an exceptionally difficult discipline, but one essential for effective systems thinking and learning.\u0026rdquo;\n\u0026ldquo;It\u0026rsquo;s by asking these \u0026lsquo;Why?\u0026rsquo; questions that we gain insight into how we are both shaped by and shape the world, where we can act most effectively, where we can make a difference and what we are striving for.\u0026rdquo;\nPsychology to succeed in modeling. A healthy mindset. Tips. Focusing on the process of modeling rather than results, or historical accuracy/replication. Diverse and vast array of tests. Statistical, sensitivity/robustness to parameter chanegs, qualitative assesment of model structure, evaluating results at model limits, being inclusive in the learning phase as the model is build and information from stakeholders integrated, etc.. Include soft-variables, for which data/measurements are missing, or is more qualitative in nature. Omitting them is stating that they\u0026rsquo;re influence is Zero; which is false. Qualitative information is still information, knowledge about reality and it may be crucial to be incorporated in the model. If it\u0026rsquo;s not been measured yet, probably no one has acknowledged its importance. But critical variables are exposed through the process of inquiry and learning, challenge and expansion of mental models, of current understanding. Concepts to dive deeper into Bifurcation: i finally realized why I had added bifurcation to the list. A few days ago, I read a paragraph in \u0026ldquo;The Complexity Paradox\u0026rdquo; which described 3 states a system can be in: equilibrium (dead, no gradients = no activity, no life), near-equilibrium (linearization, the system close to equilibrium can be approximated to a linear behavior, think a transistor in small-signal operation) and far-from-equilibrium.\n(p.54) A third condition is a system operating far from equilibrium. Here, behavior is no longer predictable because the system behaves in a nonlinear fashion. Unpredictability results from the capacity of the system to take on a number of surprising properties. Chaos, or small changes in one system variable that lead to unexpected changes in other system variables, cannot be modeled with simple mathematical equations. [..]\nFar-from-equilibrium conditions mean the system is subject to a large forcing agency that moves the system beyond regions of stability. In many cases, these systems will self-organize into more stable states called dissipative structures. As the system moves farther from equilibrium and becomes increasingly more unstable, a bifurcation or fork in the road is encountered, ant the system can \u0026ldquo;choose\u0026rdquo; which fork to take. These bifurcations lead to more complex stable states. The system acquires complexity by internal differentiation. Internal differentiation can be thought of as the establishment of novel interaction networks among system components. Accordingly, reductionist approaches to understanding complex systems have limited utility because the system reflects couple interactions among components that can be understood only by studying the whole rather than individual components.\nI\u0026rsquo;ll stop quoting here, otherwise I might keep on transcribing, the book\u0026rsquo;s really good!\nCriticality: Self-organized criticality, Critical brain hypothesis. I first noticed this when I watched this Quanta Mag video - Could One Physics Theory Unlock the Mysteries of the Brain?.\nNon-linear differential equations: List of nonlinear ordinary differential equations. I really have no clue here.\ndissipative structures: See Ilya Prigogine.\nDissipative structure theory led to pioneering research in self-organizing systems, as well as philosophical inquiries into the formation of complexity in biological entities and the quest for a creative and irreversible role of time in the natural sciences.\nsoliton: Soliton (ok, this is really outside the article, but it\u0026rsquo;s a good ref)\nReference Nonlinear Dynamics and Chaos - Steven Strogatz, Cornell University - YouTube Nonlinear Dynamics, Complexity Explorer course - YouTube Business Dynamics; John Sterman: https://www.amazon.com/Business-Dynamics-Systems-Thinking-Modeling/dp/007238915X ","permalink":"https://valer.dev/posts/2024-10-01-all-models-are-wrong-john-sterman/","summary":"A few highlights from reading All models are wrong: reflections on becoming a systems scientist; John D. Sterman. This is the paper form of a lecture held in 2002 by John D. Sterman, upon receiving the Jay Forrester award.\nWhat is System Dynamics? It can be seen through multiple lens, as:\nScience: the modeling process assumes hypothesizing, building a model, running an experiment - the simulation of the system through that model, and potentially invalidating the model.","title":"All models are wrong: reflections on becoming a systems scientist [2002]"},{"content":"I stumbled upon this paper while contemplating whether it\u0026rsquo;s possible (and valuable) to build a network representation of technology - eg. which tech requires which lower-level tech, which tech depends on which natural phenomena, how tech shifts over time, what feedback loops are present, \u0026hellip; An ill-defined task that remains just a draft, a fun thought experiment; but let\u0026rsquo;s switch to the paper now.\nLink: DeepDive: declarative knowledge base construction\nThe paper The author(s) are part of Hazy Research, the group that recently created FlashAttention - an algorithm to speed up training, increase context window of transformers (and something that I need to read more about). Check out their blog, it\u0026rsquo;s full of good stuff.\nDeclarative Knowledge is the set of true sentences that can be stated (by an individual, a collective, in a book, by humanity, on a topic, on everything, \u0026hellip;).\nDeclarative knowledge is an awareness of facts that can be expressed using declarative sentences. It is also called theoretical knowledge, descriptive knowledge, propositional knowledge, and knowledge-that. It is not restricted to one specific use or purpose and can be stored in books or on computers.\n\u0026hellip;\nDeclarative knowledge is often contrasted with other types of knowledge. A common classification in epistemology distinguishes it from practical knowledge and knowledge by acquaintance. All of them can be expressed with the verb \u0026ldquo;to know\u0026rdquo; but their differences are reflected in the grammatical structures used to articulate them. \u0026ndash; Declarative knowledge - Wikipedia\nOn computers, knowledge bases are typically structured repositories of information that can be queried. Knowledge is encoded by entities and relations between them. Populating these structured databases from unstructured data is called Knowledge Base Construction. It is done by humans (experts) or by automated means.\nKBs may seem to have been surpassed by LLMs nowadays. The methods in the paper belong to an older era of Machine Learning i guess, judging by the involvement of an Engineer-in-the-loop who is tasked with explicitly defining the domain-specific relations to be extracted from the large, unstructured input dataset.\nThe paper was published in 2017 and the project is now discontinued. However, I think it\u0026rsquo;s worth looking over the ideas.\nKB quality is evaluated by Precision and Recall. When you ask a question, the answers the KB returns are useful if they measure well on the criteria of:\nPrecision: the information is correct, has high precision; false answers are not included; Recall: the important information is revealed; good answers are not lost in the system. Some applications of KBs:\nMedical Genetics: statistically infer relations between genes, variants, phenotypes (what the organism looks like) Pharmacology: genes-drug-disease interaction Paleontology: fossils, tracing evolution Human Trafficking: aiding investigation DeepDive is a KBC framework: you can use it to build KBs. The KB produced by DeepDive is a static DB populated by entities and relations extracted by the construction process.\nThe KB Construction process has three phases:\nCandidate Mapping and Feature Extraction: Learning and Inference Error Analysis The key ideas it\u0026rsquo;s a framework to construct Knowledge Bases, not a KB system. it achieves performance equiv or above human-constructed KBs human-maintained KBs become impractical in fast-growing fields Medicine, Genetics \u0026hellip; (wip) Refs See \u0026ldquo;Epistemology\u0026rdquo; for more on Knowledge, Declarative Knowledge:\nEpistemology (Stanford Encyclopedia of Philosophy) Knowledge How (Stanford Encyclopedia of Philosophy) Glossary Sample-based science Gibbs Sampling Gibbs Sampling. Yet Another MCMC Method | by Cory Maklin Markov Logic Grounding Statistical Inference Joint Statistical Inference Factor Graphs ","permalink":"https://valer.dev/posts/2023-12-27-deep-dive-kbc/","summary":"I stumbled upon this paper while contemplating whether it\u0026rsquo;s possible (and valuable) to build a network representation of technology - eg. which tech requires which lower-level tech, which tech depends on which natural phenomena, how tech shifts over time, what feedback loops are present, \u0026hellip; An ill-defined task that remains just a draft, a fun thought experiment; but let\u0026rsquo;s switch to the paper now.\nLink: DeepDive: declarative knowledge base construction","title":"DeepDive: Declarative Knowledge Base Construction [2017]"},{"content":"WIP notes from reading The Strategy of Conflict by Thomas C. Schelling. Why this book? I wanted to see some real-world use of game theory in the writing of a classic.\nThomas Crombie Schelling (April 14, 1921 – December 13, 2016) was an American economist and professor of foreign policy, national security, nuclear strategy, and arms control at the School of Public Policy at University of Maryland, College Park.\nTheory development \u0026ldquo;We live in an age of exponential growth in knowledge, and it is increasingly futile to teach only polished theorems and proofs. We must abandon the guided tour through the art gallery of mathematics, and instead teach how to create the mathematics we need. In my opinion, there is no long-term practical alternative.\u0026rdquo; - Richard Hamming\nThe quote above opened my mind to the possibility of creating new frameworks of thought, new theories in the terms of which to reason about existing or emerging problems.\nAbstract Formalities (a talk about Lean4) goes over formalization in math. I find some ideas to be relevant in theory crafting in general. A parallel can be drawn to theorizing in less rigorous domains (like the domain of human conflict). Creating the right definitions, introducing the right concepts, developing the right grammar is paramount.\nThe Strategy of Conflict (TSOC) attempts to develop a theory of conflict. A framework in which to reason about conflict. He asks a few questions to guide the attempt (p.13).\nFormalizing, studying in the abstract and identifying analogies in other contexts.\nBargaining Neither party has an interest in the total destruction of the other. Compromise is a better alternative than no deal.\nSkill in negotiation lies in: setting the stage. Creating the definitions. Choosing the advantageous formulation of the problem.\nTacit bargain: requires coordination in form of clues in the environment, domain\nHints, intuitive alternatives have to be: Proeminent, Unique, Simple, have a Precedent, generally differentiated. Explicit bargaining: involves speech. Requires coordination of a different type - coordination of participants EXPECTATIONS.\nCoordination of expectations: some means - intuitive hints - that lead to common expectations. Eg. Meet at the bridge, retreat up to the river, choose A, choose 50-50.\nToward a theory of Interdependent Decision The mixed motive game also referred to as the bargaining game.\n\u0026ndash; The Topology of the 2×2 Games: A New Periodic Table\nTODO introduce yellow notebook notes from the book please \u0026ldquo;Theory of Incomplete Antagonism\u0026rdquo; (p.15) assumes conflict in varying degree, while sustaining mutual interest. Rationality: irrationality is not a 1-dimensional spectrum. It is a collection of attributes. Departure from rationality can be in many independent directions. \u0026hellip;\u0026hellip; TODO still\u0026hellip;.. GREAT NOTES! Keep up the yellow notebook!!\n","permalink":"https://valer.dev/posts/book-strategy-of-conflict-schelling/","summary":"WIP notes from reading The Strategy of Conflict by Thomas C. Schelling. Why this book? I wanted to see some real-world use of game theory in the writing of a classic.\nThomas Crombie Schelling (April 14, 1921 – December 13, 2016) was an American economist and professor of foreign policy, national security, nuclear strategy, and arms control at the School of Public Policy at University of Maryland, College Park.\nTheory development \u0026ldquo;We live in an age of exponential growth in knowledge, and it is increasingly futile to teach only polished theorems and proofs.","title":"The Strategy of Conflict, Thomas Schelling"},{"content":"This is absolute Misc stuff, just a bucket of paragraphs.\nDigital Fabrication A few days ago I listened to the Neil Gershenfeld episode of Lex\u0026rsquo;s podcast. It\u0026rsquo;s extremely inspiring! Highly recommend. A few highlights (please excuse the lack of details):\nDigital Fabrication, where \u0026ldquo;digital\u0026rdquo; is understood not as \u0026ldquo;binary\u0026rdquo; computer stuff, but by it\u0026rsquo;s deeper meaning. The concept is rooted in Vannevar Bush/Claude Shannon/Von Neumann Analog computer age and the transition to Digital as a way to get a grip on accumulated error. Actually, better just read his awesome article in Foreign Affairs here: \u0026ldquo;How to Make Almost Anything - The Digital Fabrication Revolution\u0026rdquo;. Multi-scale fabrication The stories of quantum compute 99 of 100 students: \u0026ldquo;i really admire your work, would love to join the lab\u0026rdquo;. 1 of 100: \u0026ldquo;here\u0026rsquo;s where you\u0026rsquo;re wrong, here\u0026rsquo;s an alternative\u0026rdquo; Ready Fire Aim - love the line as well as the stories behind it. There is no trash in nature - a quote which I heard not long ago in a John Baez talk on Math of 21st century. many more\u0026hellip; As a result, I ordered his book https://designingreality.org/.\nOther news Browsing Transalational Control in Biology which I bought not because I\u0026rsquo;m studying medicine, but because it was extra cheap and a pity not to have around. Last chapter is about future drugs based on engineering around the mRNA translation mechanism which converts mRNA into proteins. Says here that \u0026ldquo;some viral mRNAs frameshift during translation, an event that requires two components: a \u0026lsquo;slippery sequence\u0026rsquo; followed by an RNA secondary structure which is usually a -hairpin or pseudoknot-\u0026rdquo; . It\u0026rsquo;s lovely when biology and computers meet as this reminded me of a NOP sled. Ofc, the two patterns are similar in that they are structures over which a certain process \u0026ldquo;slides\u0026rdquo;. They\u0026rsquo;re both Hacks. But differ in function. In exploits, NOP slides are used to increase the probability of success of jumps to unknown/uncertain code addresses. In mRNA translation, the function is to break the abstraction: \u0026ldquo;Its use in viruses is primarily for compacting more genetic information into a shorter amount of genetic material.\u0026rdquo;\nOh yes, I should highlight the link above: Complexity Explorer Lecture: David Krakauer • What is Complexity? Beautiful!\n","permalink":"https://valer.dev/posts/misc-signals-2023-06-01/","summary":"This is absolute Misc stuff, just a bucket of paragraphs.\nDigital Fabrication A few days ago I listened to the Neil Gershenfeld episode of Lex\u0026rsquo;s podcast. It\u0026rsquo;s extremely inspiring! Highly recommend. A few highlights (please excuse the lack of details):\nDigital Fabrication, where \u0026ldquo;digital\u0026rdquo; is understood not as \u0026ldquo;binary\u0026rdquo; computer stuff, but by it\u0026rsquo;s deeper meaning. The concept is rooted in Vannevar Bush/Claude Shannon/Von Neumann Analog computer age and the transition to Digital as a way to get a grip on accumulated error.","title":"Misc signals 2023-06-01"},{"content":"A Chronology of Interpolation: From Ancient Astronomy to Modern Signal and Image Processing.\nPrinted this paper a few weeks ago while I was reading about KZG1, 2, 3 and left it aside. It\u0026rsquo;s aged enough, time to actually read it.\nThe problem of constructing a continuously defined function from given discrete data is unavoidable whenever one wishes to manipulate the data in a way that requires information not included explicitly in the data.\nThe relatively easiest and in many applications often most desired approach to solve the problem is interpolation, where an approximating function is constructed in such a way as to agree perfectly with the usually unknown original function at the given measurement points.\nKZG polynomial commitments | Dankrad Feist\u0026#160;\u0026#x21a9;\u0026#xfe0e;\nScroll – Native zkEVM Layer 2 for Ethereum\u0026#160;\u0026#x21a9;\u0026#xfe0e;\nhttps://www.iacr.org/archive/asiacrypt2010/6477178/6477178.pdf\u0026#160;\u0026#x21a9;\u0026#xfe0e;\n","permalink":"https://valer.dev/posts/interpolation/","summary":"A Chronology of Interpolation: From Ancient Astronomy to Modern Signal and Image Processing.\nPrinted this paper a few weeks ago while I was reading about KZG1, 2, 3 and left it aside. It\u0026rsquo;s aged enough, time to actually read it.\nThe problem of constructing a continuously defined function from given discrete data is unavoidable whenever one wishes to manipulate the data in a way that requires information not included explicitly in the data.","title":"Interpolation"},{"content":"Sketching a parser for graphviz/dot. Really slow on a ~300 statement input. Got about a 10x improvement by using Left instead of Right-recursion.\nHere\u0026rsquo;s the grammar I used initially, which was inspired by the recursive rules in the dot lang specification. If you\u0026rsquo;re familiar with dot, you\u0026rsquo;ll notice some hardcoded elements as well as some missing patterns. This grammar parses dot only partially, but it\u0026rsquo;s enough for my purpose here. It handles nodes, edges and attributes.\n(def grammar \u0026#34; G = \u0026#39;digraph\u0026#39; \u0026lt;WS\u0026gt; graph-name \u0026lt;WS*\u0026gt; block \u0026lt;WS*\u0026gt; \u0026lt;ws\u0026gt; = \u0026lt;#\u0026#39;[\\\\s\\\\t]+\u0026#39;\u0026gt; (* whitespace *) \u0026lt;WS\u0026gt; = \u0026lt;#\u0026#39;[\\\\s\\\\t\\\\n\\\\r]+\u0026#39;\u0026gt; (* multiline whitespace, graphviz is very newline tolerant *) \u0026lt;string-q\u0026gt; = \u0026lt;\u0026#39;\\\u0026#34;\u0026#39;\u0026gt; #\u0026#39;[^\\\u0026#34;]*\u0026#39; \u0026lt;\u0026#39;\\\u0026#34;\u0026#39;\u0026gt; \u0026lt;string-uq\u0026gt; = #\u0026#39;[a-zA-Z_][a-zA-Z_0-9]+\u0026#39; \u0026lt;string\u0026gt; = string-q | string-uq block = \u0026lt;\u0026#39;{\u0026#39;\u0026gt; WS* stmt-list WS* \u0026lt;\u0026#39;}\u0026#39;\u0026gt; graph-name = string node = string node-from = node node-to = node arrow = \u0026#39;-\u0026gt;\u0026#39; propName = string propValue = string prop = propName \u0026lt;\u0026#39;=\u0026#39;\u0026gt; propValue propList = prop \u0026lt;ws*\u0026gt; propList? props = \u0026lt;\u0026#39;[\u0026#39;\u0026gt; propList? \u0026lt;\u0026#39;]\u0026#39;\u0026gt; nodeSpec = \u0026lt;WS*\u0026gt; node \u0026lt;WS*\u0026gt; props? edgeSpec = \u0026lt;WS*\u0026gt; node-from \u0026lt;WS*\u0026gt; \u0026lt;arrow\u0026gt; \u0026lt;WS*\u0026gt; node-to \u0026lt;WS*\u0026gt; props? stmt-list = stmt stmt-list? \u0026lt;stmt\u0026gt; = nodeSpec | edgeSpec \u0026#34;) (def parse-dot (instaparse/parser grammar)) There are two right-recursions specified here:\npropList = prop \u0026lt;ws*\u0026gt; propList? stmt-list = stmt stmt-list? Running this against my sample input takes about 2 seconds which is huge!\n(time (parse-dot input)) \u0026#34;Elapsed time: 2199.23539 msecs\u0026#34; After looking around for hints, I got to the Instaparse Performance article which says:\nInstaparse\u0026rsquo;s algorithm is in the family of LL parsing algorithms. So if you know how to easily write your grammar as an LL grammar, that\u0026rsquo;s probably going to yield the best possible performance. If not, don\u0026rsquo;t worry about it.\nTo be frank, I have no clue how to easily write my grammar as a LL grammar. But what if I swap the recursion order to left recursion?\npropList = propList? prop \u0026lt;ws*\u0026gt; stmt-list = stmt-list? stmt (time (parse-dot input)) \u0026#34;Elapsed time: 284.527448 msecs\u0026#34; wowzz.. a 10x improvement!\nTracing the parse process Instaparse has an option to trace it\u0026rsquo;s execution. Traces get long very fast. The final line of the output is a \u0026ldquo;profile\u0026rdquo; report. It can be used to evaluate how the execution scales with input.\nI created two inputs to compare the two grammars. First input is a few statements long and the second 10 times larger (only replicating the first one for ten times, to maintain similar parsing complexity).\n;; Enable tracing in instaparse (parse-dot input :trace true) ; Original grammar, right recursion ;; Small input Profile: {:create-node 541 :push-full-listener 3 :push-stack 541 :push-listener 582 :push-result 369 :push-message 396} ;; 10x input Profile: {:create-node 5092 :push-full-listener 3 :push-stack 5092 :push-listener 5558 :push-result 8651 :push-message 8937} ; Left-recursive grammar ;; Small input Profile: {:create-node 506 :push-full-listener 3 :push-stack 506 :push-listener 544 :push-result 313 :push-message 354} ;; 10x input Profile: {:create-node 4718 :push-full-listener 3 :push-stack 4718 :push-listener 5145 :push-result 2919 :push-message 3350} Looking at push-result, notice how a 10x increase in size corresponds to 23x increase in the right-recursive grammar vs. a linear 10x increase with the left-recursive version.\nWin!\nFind the left-recursive (partially implemented) grammar for dot/graphviz here: https://gist.github.com/valer-cara/9f7af6b95309fceecde551f51a3fd0c0\n","permalink":"https://valer.dev/posts/instaparse-performance/","summary":"\u003cp\u003e\u003cem\u003eSketching a parser for \u003ca href=\"https://graphviz.org/doc/info/lang.html\"\u003egraphviz/dot.\u003c/a\u003e Really slow on a ~300 statement input. Got about a 10x improvement by using Left instead of Right-recursion.\u003c/em\u003e\u003c/p\u003e","title":"Mind your Instaparse recursion order"},{"content":"[2025-07-27 Sun]\nDEF CON 32 - From getting JTAG on the iPhone 15 to hacking Apple\u0026#39;s USB-C Controller - Stacksmashing. What an awesome rev-eng process. A lot of work went into it. Keeps pulling out bigger and bigger guns. \u0026#34;Dumping unknown sillicon is possible\u0026#34; [2025-03-16 Sun]\nHow to learn Quantum Mechanics on your own (a self-study guide) - YouTube. I love this video! Two parts to it. First, a nice howto for self-study, but what resonated esp. today was the Feynman method recap and the whole last part of the video - you get the arguments as you read, but to retain, explain it. We all know that, but hearing it again and in this form \u0026amp; context was perfect. ❤️ [2024-11-08 Fri]\nI was blown away by the Zed.dev (zed editor) video. But heh.. it\u0026#39;s good to be able to stay in emacs, with this absolutely awesome LLM plugin gptel. Every LLM in Emacs, with gptel - YouTube. Wow.. [2024-11-08 Fri]\nPainting a Landscape with Maths - YouTube. Beautiful! By Inigo Quilez, co-author of Shadertoy. [2024-10-24 Thu]\nSelf-organized criticality control - Wikipedia\nThe objective of the control is to reduce the probability of occurrence of and size of energy dissipation bursts, often called avalanches, of self-organized systems. Dissipation of energy in a self-organized critical system into a lower energy state can be costly for society, since it depends on avalanches of all sizes usually following a kind of power law distribution and large avalanches can be damaging and disruptive\n[2024-10-22 Tue]\nI was looking into how the mesa3d project started. It\u0026#39;s quite a large, successful project so it\u0026#39;s good to know how it came to be, what were the aims, the motivations.\nPaul was a graphics hobbyist. He thought it would be fun to implement a simple 3D graphics library using the OpenGL API. He spent eighteen months of part-time development before he released the software on the Internet. – Brian Paul - Wikipedia\nProfesioniştii cu Delia Budeanu (@TVR1). Watched it last night. Such an inspiring, strong character. [2024-10-06 Sun]\nGrammaticalization. \u0026#34;Semantic Bleaching\u0026#34;, a flattening of meaning. Think of the words \u0026#34;discipline\u0026#34;, \u0026#34;study\u0026#34;, or in Romanian - \u0026#34;materie\u0026#34;. The original words contain a nuance that feels absent in current usage. [2024-10-03 Thu]\nDavid Hahn - Wikipedia. This story is preposterous. Thanks @Guyri (https://gyuri.world/) for the ref. [2024-09-20 Fri]\nHow To Exit Emacs? nice \u0026amp; funny explainer. \u0026#34;But remember: you don\u0026#39;t really want to exit Emacs.\u0026#34; [2024-09-20 Fri]\nBest Practices for Working with Vertex Data. This is a comprehensive article on how to manage memory (buffers) in OpenGL for performance. Keeping it here for reference. Some common sense stuff like \u0026#34;keep data aligned\u0026#34; and \u0026#34;batch draws\u0026#34;, but also some more Graph Whiz stuff like \u0026#34;don\u0026#39;t reconfigure the graphics pipeline on every frame, but use VAOs\u0026#34; and \u0026#34;map buffers to host (client) memory when updating frequently\u0026#34;. While this is for iOS, and also deprecated in favor of Metal, I believe it\u0026#39;s generally applicable.\nWhen you are designing your vertex structure, align the beginning of each attribute to an offset that is either a multiple of its component size or 4 bytes, whichever is larger. When an attribute is misaligned, iOS must perform additional processing before passing the data to the graphics hardware.\n[2024-08-20 Tue]\nMinski: what is a K-line? It\u0026#39;s like a Punch Card Information Retrieval system. See Zatocoding, Superimposed code - Wikipedia. The Zatocoding system of information retrieval was developed by Calvin Mooers in 1947. A Bloom filter can be considered a kind of superimposed code. Mooers has worked in Information Retrieval at MIT. [2024-08-19 Mon]\nhttps://www.covingtoninnovations.com/mc/WriteThinkLearn.pdf which I found on Marvin Minski\u0026#39;s course page here: https://ocw.mit.edu/courses/6-868j-the-society-of-mind-fall-2011/pages/assignments/ [2024-08-17 Sat]\nRenderingNG architecture | Chromium | Chrome for Developers; the process of rendering web pages in Chrome, what\u0026#39;s the \u0026#34;GPU process\u0026#34;, how it uses HW acceleration to display web content. Throbol — Examples - robot simulation environment, general dynamic simulation framework [2024-06-13 Thu] Started with Vitalik\u0026#39;s article on Palladium Mag, found a few more articles.\n🔥 Why I Built Zuzalu. Vitalik\nBut perhaps this is not a failure: diversity done well is not about equally representing all of society or humanity, it’s about strategically bringing together groups that would otherwise not care for each other and building bridges. .. Many cultural movements—digital nomadism, cryptoanarchy, and others come to mind—excitedly grow at first, but then settle down into becoming part of the global political and cultural landscape. They are stable and even significant, but ultimately not world-changing once they saturate their natural base of enthusiasts. Would “Zuzaluism” meet the same fate? And might it in fact be good to decrease ambitions somewhat and let that happen?\nMy Last Five Years of Work\nWe also have to consider what effects unemployment will have when it encompasses entire civilizations. The Culture, the people of Iain Banks’ eponymously named science-fiction series, face exactly this conundrum. They are a completely post-scarcity society.\nScenario Planning for an AGI Future-Anton Korinek Quit Your Job [2024-05-30 Thu]\nSolidworks is also used in cinema. The Magic Behind Holywood Blockbusters Using SOLIDWORKS. Didn\u0026#39;t find the talk from Solidworks World 2018. [2024-05-28 Tue]\nconntrack -L List connections tracked by the netfilter/conntrack module. https://manpages.debian.org/bookworm/conntrack/conntrack.8.en.html. You can even see events in real time with conntrack -E 🚒. Also some conntrack stories from CF: https://blog.cloudflare.com/conntrack-tales-one-thousand-and-one-flows [2024-04-08 Mon]\nYoshi Sato\u0026#39;s work! Love the GPU, 3d-rendered simulations. I first saw this stuff with FlameGPU. Just stumbled into his work via a Uniswap simulation. The UI + unique graphs clicked instantly. Really love this kind of (i guess it\u0026#39;s) indie research. More work from him:\nYoshiharu (Josh) S. on LinkedIn: Schrodinger: A ChatGPT-Integrated Fully-Inte… Schrodinger: A ChatGPT-Integrated Fully-Interactive Multi-Agent Financial Mar… [2024-04-07 Sun]\nI started reading \u0026#34;Interpretable Machine Learning\u0026#34;. Really loved the chapter on \u0026#34;Human Friendly Explanations\u0026#34;. It outlines some properties of explanations that people consider satisfying.\nSee 3.6 Human-friendly Explanations | Interpretable Machine Learning The other titles from Christoph Molnar sound interesting, esp \u0026#34;Modeling Mindsets\u0026#34;. Saved some substack post for read later too, good stuff. Mindful Modeler | Christoph Molnar | Substack [2024-04-02 Tue]\nHow Weak Business Models Destroy Everything We Fight For\nkeybase/client#24105 Open source the server components of Keybase Explainable Machine Learning. XAI Review : Model Agnostic Tools\nTherefore, the prediction function f(x) is the surface that best approximates all the points in the geometric space, while at the same time, it represents the best guess about the causal relationship existing between Y and the Xs.\n[2023-12-26 Tue]\n#bucketlist2024 Challenging projects every programmer should try - Austin Z. Henley\nOther ideas:\nFluid Simulation (some top google links) Papers with code style\nGPT (Karpathy sessions: Let\u0026#39;s build GPT: from scratch, in code, spelled out. - YouTube ) Mixtral (I never get to watch N hours of geohot\u0026#39;s vlogs, it\u0026#39;s too long, but George Hotz | Programming | Mistral mixtral on a tinybox | AMD P2P multi-GPU …) [2023-12-12 Tue] Looks like the \u0026#34;good screen\u0026#34; part of today went towards a \u0026#34;conference at home\u0026#34; mood. Seen some really good stuff. I need to get that RAG going.\nVector Search Isn’t Enough | BRKFP301H - YouTube 🔥 \u0026#34;Hierarchical Navigable Small Worlds\u0026#34; (reminds me of a google maps talk many years ago where the speaker mentioned they did a hierarchical search somewhere, iirc the directions)\neDiscovery \u0026amp; Legal Search Software Solutions \u0026lt;- application of the above, presented in the 2nd half. This is very cool! Esp. after being primed by the Elastic presentation (acting as a \u0026#34;context store\u0026#34; for LLMs, a hub for many datasources, incl. traditional stuff you\u0026#39;d have in ES like Observability/Logs/… plus all the NLP as seen in the image above) Supabase Vector: The Postgres Vector database: Paul Copplestone - YouTube \u0026#34;How the sausage is made in an open source company\u0026#34; 🔥. Spoiler alert, the sausage made by -\u0026gt; ClippyGPT - How I Built Supabase’s OpenAI Doc Search (Embeddings) [2023-12-11 Mon]\nThe Mathematician\u0026#39;s Mind, Jacques Hadamard #todo 📖 (pdf, also nice to stumble on worrydream.com yet again, randomly via this book. Last time I ran into Bret\u0026#39;s writing on the preface of The Art of Doing Science and Engineering) [2023-12-09 Sat]\nThe Strategy of Conflict, by Thomas Schelling (1981) Atm on Part I/Ch3, Tacit \u0026amp; Explicit coordination sections. [2023-11-28 Tue]\nTudor Vianu, Cum se scrie o carte, 1963 - YouTube\nAceastă primă și esențială condiție este existența unei concepții în oricare dintre domeniile activității umane vrednice de a fi comunicată. Cred că cea dintâi întrebare pe care trebuie să și-o pună cineva hotărât să compună o carte este dacă are sau nu ceva de spus. Adică față de ceea ce cultura a produs în trecut, socotește că poate adăuga ceva nou, fie chiar și în forma unei sistematizări mai limpezi a cunoștințelor existente la un moment dat.\n[2023-11-16 Thu]\nL∃∀N\nAbstract Formalities: a talk on using Lean4 in the \u0026#34;Liquid tensor experiment\u0026#34;. Inspiring. Leonardo de Moura: \u0026#34;Lean 4: Empowering the Formal Mathematics Revolution and Beyond. This is the first Lean4 talk I watched, and it\u0026#39;s really good! And some LEAN4 codebases:\nGitHub - leanprover-community/mathlib4: The math library of Lean 4 GitHub - leanprover-community/lean-liquid: 💧 Liquid Tensor Experiment A good starting point:\nTheorem Proving in Lean 4 - Theorem Proving in Lean 4 [2023-11-02 Thu]\nhttps://constituteproject.org/topics compare constituions accross the world. [2023-10-31 Tue]\nIs Our Economy\u0026#39;s Financial Sector Worth What It Costs Us? | Benjamin Friedman (scihub) finally pinning here \u0026#34;Cursorless: A spoken language for editing code\u0026#34; by Pokey Rule (Strange Loop 2023) 🔥🔥 this is lovely! An awesome language, and also 🌲 tree-sitter. Reminds me that I should finish The Language Instinct. First thought, it\u0026#39;s like voice-operated paredit on steroids (or generally, \u0026#34;structural editing\u0026#34;). PS: I think it\u0026#39;s Strange Loop binge time! 🍿🥤\nOh, and finally, spent plenty of time today reading through Transaction Fee Mechanism Design for the Ethereum Blockchain: An Economic Analysis of EIP-1559; Tim Roughgarden. A really good read - a game theoretic analysis of a web3 mechanism, a very useful example. I\u0026#39;m wondering if there\u0026#39;s a chance I could use Lean4 to reproduce the formal proof in the paper (s.6). tbd..\n[2023-10-30 Mon]\nLecture: Complexity of Finding a Nash Equilibrium (Lecturer: Christos Papadimitriou) [2023-10-25 Wed]\nObtaining Statistical Properties by Simulating Specs with TLC - Jack Vanlightly and Markus A. Kuppe. Extract stats from TLC model simulations. Timestamped at a point where they show how changing the model structurally gives you different stats. TLA+ seems well suited to this kind of architectural switches. Still to try it out, but I sense a more succint expression of models in TLA+ vs. Python (or other modeling language/frameworks like rust, julia, etc..). Sidenote: Still looking fwd to using Clojure in modsim. Don\u0026#39;t miss the rest of the demo cases (rabbitmq, kafka protocol sim). The rabbitmq sim: they use TLA+ to express, simulate and propose protocol changes that ultimately went upstream in the client library 🔥. Plus, should try out R and ggplot2 (pity i missed this SHARE #2: Beautiful Data Visualisation in R). Conclusions interesting to hear about TLA+ in simulation: allows you to define workloads, perturbations, etc.. as the initial state predicate. [2023-10-19 Thu]\nCommon value representation—a neuroeconomic perspective | Handbook of Value\nHow do humans make choices between different types of rewards? Economists have long argued on theoretical grounds that humans typically make these choices “as if” the values of the options they consider have been mapped to a single common scale for comparison. Neuroimaging studies in humans have recently begun to suggest the existence of a small group of specific brain sites that appear to encode the subjective values of different types of rewards on a neural common scale\n[2023-10-18 Wed]\nManaging a research workflow (bibliographies, notes, arxiv) emacsconf 2021 [2023-10-16 Mon]\nRetrospectives: Friedrich Hayek and the Market Algorithm JEL classification codes - Wikipedia American Economic Association search results for D82 (D82: Asymmetric and Private Information • Mechanism Design) [2023-10-05 Thu]\nIt\u0026#39;s okay to Make Something Nobody Wants. This article off HN ringed a bell. I\u0026#39;ve been thinking about this \u0026#34;heuristic\u0026#34; of just \u0026#34;follow your own taste\u0026#34; when being creative - since you like a certain thing, it probably has some quality that others might enjoy too. Your own taste can be a good guide. Why do cells die from a lack of oxygen? (and related Oxygen deprivation induced cell death 🔥). Why don\u0026#39;t they just power down, hibernate, dehydrate or something while waiting for better conditions?\nThe most common causes of death in an aging population include myocardial infarction, stroke and cancer. These diseases share a common feature that limitation of oxygen availability contributes to the development of the pathology. (link)\n[2023-06-27 Tue]\nReplacing Jupyter Notebook with Org Mode [2023-06-21 Wed]\nEgo and Math | 2023 Stanford Math Department Commencement Speech. How to choose what to work on. How much of the choice depends on your perceived success, how much from what others find valuable in the solution? 3b1b\u0026#39;s Problem/Domain Worthiness Evaluation Function = low_weight_factors(hardness, originality for it\u0026#39;s own sake is hollow, math has intrinsic beauty which is more potent if there\u0026#39;s something useful in it too). Will matter more if it depends less on yourself and it depends a bit more on others and what you\u0026#39;re doing for them. [2023-06-14 Wed]\nHow to Write a Proof - Leslie Lamport I finally stumbled over this article once more, it\u0026#39;s been on my mind for a while. Thanks Trent! [2023-03-20 Mon]\nhttps://robert.kra.hn/posts/2023-02-22-copilot-emacs-setup/ thank you! I have been assimilated, got a copilot subscription, want to try it out for a while. [2023-03-07 Tue]\nhttps://grugbrain.dev/ ❤ 🔥 [2023-02-24 Fri]\nhttps://martinfowler.com/bliki/DslExceptionalism.html 🔥 https://martinfowler.com/bliki/ModelDrivenSoftwareDevelopment.html https://martinfowler.com/bliki/PolyglotPersistence.html 🤔 [2023-02-06 Mon]\nhttps://martinfowler.com/bliki/ProjectionalEditing.html\nProjectional editing thus usually displays a wider range of editing environments - including graphical and tabular structures - rather than just a textual form.\nSophisticated source based IDEs also show multiple projections - for instance a side pane showing a list of methods for a class with graphical annotations to indicate their AccessModifiers. However these projections are usually very much secondary to a source editor, and often the projections can\u0026#39;t be edited directly - you have to change the source and see the projection update.\nProjectional Editing: The Future of Programming\nIn parser-based approaches, users use text editors to enter character sequences that represent programs. A parser then checks the program for syntactic correctness and constructs an abstract syntax tree (AST) from the character sequence. The AST contains all the semantic information expressed by the program, i.e. keywords, and the purely syntactic aspects are then committed.\nIn projectional editors, the process happens the other way around: as a user edits the program, the AST is modified directly. This is similar to the Model-view-controller (MVC) pattern where every editing action triggers a change in the AST.\nhttp://blog.jenkster.com/2015/12/what-is-functional-programming.html (and sequel)\nSay it long, say it loud, functional programming is about side-effects. (And side-causes, of course).\n[2023-02-03 Fri]\nhttps://unhosted.org/\nclient-first webapps, good refs to ideas, problem areas and solutions\nhttps://thi.ng/\n\u0026#34;Open source building blocks for computational design. Est.2006.\u0026#34; Some crazy visualizations, packed with tons of software/libs.\n[2023-02-02 Thu]\nAlan Kay 2003 ACM A.M. Turing Award Lecture 🔥\nI have to watch this lecture again. In fact, adding the whole list of lectures ACM A.M. Turing Award Lectures.\nThe Hiring Post\n\u0026#34;[…] on that first-call, we’d gingerly ask the candidate some technical questions to find out how acquainted they were with our field. Many weren’t, at all. Those candidates got a study guide, a couple of free books, and an open invitation to proceed with the process whenever they were ready. Those $80 in books candidates received had one of the best ROIs of any investment we made anywhere in the business.\u0026#34; \u0026amp; more; from @tqbf.\n[2023-01-31 Tue]\nLet\u0026#39;s build GPT: from scratch, in code, spelled out.\nWonderful walkthrough of GPT from Andrej Karpathy. Plus the whole Neural Networks: Zero to Hero series.\n[2023-01-27 Fri]\nTokenomics Fundamentals\nAn excellent series on tokenomics by Charles Shen. It follows a mind-map style rooted in 6 key aspects that spans broadly in economics, governance, product, community, … . I enjoyed his talks and am really glad he published the content in written form!\n[2023-01-26 Thu]\nRascal: Code is Data, Analyzing Code\nRascal is super interesting. It\u0026#39;s got a REPL. It can slurp source code and you can CLI your way to analyze and manipulate programs, make DSLs. Must try! (I must try it I mean)\n[2023-01-25 Wed]\nWriting Wohpe - \u0026lt;antirez\u0026gt;\nGot @antirez\u0026#39; book on kindle, long queue, but will probably start reading soon.\n[2023-01-24 Tue]\nOrgpad\nlooks like an awesome tool! Intearctive Graph Knowledge.\nteam page architecture diagram (see the CLJS things like Garden CSS) a clojure tutorial and docs for orgpad\u0026#39;s animation library 🔥 [2023-01-22 Sun]\nhttp://trevorjim.com/c-and-cplusplus-are-not-context-free/\n\u0026#34;Law: You can’t check code you can’t parse. Checking code deeply requires understanding the code’s semantics. The most basic requirement is that you parse it. Parsing is considered a solved problem. Unfortunately, this view is naïve, rooted in the widely believed myth that programming languages exist.\u0026#34;\n[2023-01-17 Tue]\nhttp://www.structuredprocrastination.com/.\nJohn Perry\u0026#39;s essay on procrastinating. Got here via:\nhttps://pmarchive.com/guide_to_personal_productivity.html\nhttps://stopa.io/post/275 (yes, stopa is linked earlier, he\u0026#39;s got some good posts there) [2023-01-12 Thu]\nInteractive Data Lab\nDataviz, VEGA, IDL and more\nTODO https://idl.cs.washington.edu/files/2012-InterpretationTrust-CHI.pdf Systems Modeling Languages (MIT OpenCourseware) video, history \u0026amp; rationale.\nSee: http://www.ie.inf.uc3m.es/ggenova/Warsaw/Part1.pdf [2023-01-11 Wed]\nAn Intuition for Lisp Syntax The One About Blogging. Mapping the Process After Three Years of Learning Metaphor in Diagrams. Alan Blackwell Actor model: Unbounded nondeterminism controversy\nFew paragraphs on history of concurrency. Got me at \u0026#34;the first concurrent programs were interrupt handlers\u0026#34;.\n","permalink":"https://valer.dev/bookmarks/","summary":"[2025-07-27 Sun]\nDEF CON 32 - From getting JTAG on the iPhone 15 to hacking Apple\u0026#39;s USB-C Controller - Stacksmashing. What an awesome rev-eng process. A lot of work went into it. Keeps pulling out bigger and bigger guns. \u0026#34;Dumping unknown sillicon is possible\u0026#34; [2025-03-16 Sun]\nHow to learn Quantum Mechanics on your own (a self-study guide) - YouTube. I love this video! Two parts to it. First, a nice howto for self-study, but what resonated esp.","title":"Bookmarks"},{"content":"A summary of techniques to debug Clojure code via REPL (aka \u0026ldquo;the interactive console\u0026rdquo;, the \u0026ldquo;read-eval-print loop\u0026rdquo;) and Cider debugger.\nJust print As a beginner, it\u0026rsquo;s not clear how to print things from awkward points like inside of a (let [...]) binding declaration, or a (-\u0026gt; ...) threading expression. My initial journey landed on this article REPL Based Debugging in Clojure. It\u0026rsquo;s an easy start.\nFundamentals: the clojure.org docs Enhancing your REPL workflow is a must read! You can skip the intro, straight to the Debugging section. Read about inspecting and logging with libraries like spyscope and clojure.tools.logging.\n\u0026ldquo;Reproducing the context of an expression\u0026rdquo; is extremely useful when doing REPL development \u0026amp; debugging. Often times you work on a section of a function body. Evaluating that section alone will throw unable to resolve symbol. The \u0026ldquo;fix\u0026rdquo; consists of simply defining the intermediary variables that are expected in that section. I discovered this technique accidentally and was wondering if it\u0026rsquo;s fair game. When the clojure docs sanctify it, I guess it\u0026rsquo;s fair.\nMore to read: inline-def debugging and repl debugging: no stacktrace required. Finally, try not to skip the \u0026ldquo;Community Resources\u0026rdquo; section.\nData vizualization at the REPL goes over some more REPL tricks:\n*e is bound to the last thrown error. Print a stacktrace with (pst *e) *1, *2, *3 are bound to the last recent results in the REPL. Save for further use with (def foo *1) Reflection used to inspect mysterious values (type v) and (ancestors (type v)) show the type and the class hierarchy. clojure.reflect like (reflect/reflect (type v)). The debugger: Cider Cider is an Emacs debugger for Clojure. Highlighting some workflows from \u0026ldquo;using the debugger\u0026rdquo; section in the cider docs.\nInstrument a defn with C-u C-M-x. All refs to the function will be highlighted now. The debugger will break when calling the instrumented function.\nFigure 1: C-u C-M-x with cursor inside pairs-contained? function\nOnce instrumented, invoking the debugger on the first (assert) statement breaks and you\u0026rsquo;re dropped into the Cider debug menu.\nFigure 2: C-M-x with cursor right on top of (assert ...) leading paren\nTo remove instrumentation, re-evaluate the defn.\nFigure 1: ,ef within the function body\nAlternatives\nplace #break in front of the statement you want to break on, eg: (#break map foo [1 2 3]) C-M-x debug at point Evergreen authors Aphyr: https://aphyr.com/posts/319-clojure-from-the-ground-up-debugging. Recommend going through the whole series on \u0026ldquo;Clojure from the Ground Up\u0026rdquo;.\nAphyr has done amazing work analyzing consistency properties on numerous popular database systems here: https://jepsen.io/analyses.\nEli Benderski: https://eli.thegreenplace.net/2017/notes-on-debugging-clojure-code/.\nexcellent article! on point about the main difficulties of debugging clojure code\n(pst) to print stacktrace for last error\n\u0026ldquo;Learning to map from Clojure values and types to the JVM\u0026rsquo;s expectations will take time and grit - especially if you (like me) don\u0026rsquo;t have much Java experience. I suggest doing a bit of reading on Clojure/Java interoperability, and about other Java-isms Clojure inherits; it ain\u0026rsquo;t pretty, and you may not always want to use it, but being familiar with the terms can go a long way in deciphering cryptic stack traces.\u0026rdquo;\n(trace-forms (foo bar)) https://github.com/clojure/tools.trace#example-usage\n\u0026ldquo;very useful when errors manifest as exceptions. Unfortunately, this isn\u0026rsquo;t sufficient for all cases\u0026rdquo; (trace-vars (...))\ndiy Macros \u0026ldquo;I find that debuggers are even less useful in Clojure than in other languages. On the other hand, Clojure\u0026rsquo;s macros make it possible to trace / print stuff in a very nice way.\u0026rdquo;\nI knew Eli\u0026rsquo;s blog from his series of articles on the Go compiler which I loved reading while digging through the code.\nExtra refs http://www.futurile.net/2020/05/16/clojure-observability-and-debugging-tools/. Part of a series, goes over a few popular observability libraries in clojure, with examples. There are good references at the end of the article.\nFin Will add more content as I progress.\n","permalink":"https://valer.dev/posts/clojure-debugging/","summary":"\u003cp\u003eA summary of techniques to debug Clojure code via REPL (aka \u0026ldquo;the interactive console\u0026rdquo;, the \u0026ldquo;read-eval-print loop\u0026rdquo;) and Cider debugger.\u003c/p\u003e","title":"Debugging Clojure using the REPL"},{"content":" The original article by Dijkstra can be found here (pdf). These notes are mainly to summarize my read of the article for future ref.\nThere\u0026#39;s an audio recording of his Turing Award lecture available on youtube.\nHighlights Paraphrasing in the quotes below is in italic.\n[van Wijngaarden, who was then my boss at the Mathematical Centre in Amsterdam] went on to explain quietly that automatic computers were here to stay, that we were just at the beginning and could not I be one of the persons called to make programming a respectable discipline in the years to come?\nWhat about the poor programmer?\nHe was hardly noticed; machines were so bulky, most focus on running them; you could show machines, but not software;\nMost important of all, the programmer himself had a very modest view of his own work: his work derived all its significance from the existence of that wonderful machine. Because that was a unique machine, he knew only too well that his programs had only local significance, and also because it was patently obvious that this machine would have a limited lifetime, he knew that very little of his work would have a lasting value.\nA software crisis emerged Increased demand in programming activities and realizing the importance of reliability .\nAs the power of available machines grew by a factor of more than a thousand, society\u0026#39;s ambition to apply these machines grew in proportion.\n\u0026#34;The turning point was the Conference on Software Engineering in Garmisch, October 1968\u0026#34;, the first admission of the crisis and of a greater need of reliability in software.\nGoogling that, it\u0026#39;s the NATO Software Engineering Conferences. Wikipedia links to this hefty hundred page PDF report of that conference. Should be interesting to skim through, down the historical rabbit hole.\nThe result of the conferences were two reports, one for the 1968 conference and the other for the 1969 conference, that defined how software should be developed. The conferences played a major role in gaining general acceptance for the term software engineering. – wikipedia\nProgramming languages LISP has jokingly been described as \u0026#34;the most intelligent way to misuse a computer\u0026#34;. I think that description a great compliment because it transmits the full flavor of liberation: it has assisted a number of our most gifted fellow humans in thinking previously impossible thoughts.\nI guess some of the most gifted fellow humans probably refers to John McCarthy, ..\nSome of the previously impossible thoughts may be the concepts pioneered by LISP, from wiki: \u0026#34;Lisp pioneered many ideas in computer science, including tree data structures, automatic storage management, dynamic typing, conditionals, higher-order functions, recursion, the self-hosting compiler, and the read–eval–print loop\u0026#34;.\nParadigms Dijkstra highlights a succession of concepts in programming language development: Fortran programmers understand their programms in terms of the specific implementation (oct/hex dumps), Lisp mixes \u0026#34;what the language means and how the mechanism works\u0026#34;, finally ALGOL60 defines the programming language in an implementation-independent way.\nWhat does it mean to define a language in an implementation-independent way? The syntax is defined by the language grammar, eg. in BNF-notation. What\u0026#39;s left is defining the semantics of the language. I guess one of the initial methods to define semantics was via Syntax-Directed Translation?\nSoftware products vs. usual products Software seems to be different from many other products, where as a rule, a higher quality implies a higher cost.\nThis means that lowering the cost producing software can be achieved by increasing software quality. Less bugs means less debugging, so faster building and iteration. Correctness underlies reliability.\nThinking The cultural tradition, which in all probability has its roots in the Renaissance, to regard the human mind as the supreme and autonomous master of its artifacts.\nOne of the most important aspects of any computing tool is its influence on the thinking habits of those who try to use it.\nThe tools we are trying to use and the language or notation we are using to express or record our thoughts are the major factors determining what we can think or express at all! The best way to live with our limitations is to know them.\nSoftware correctness: testing vs. proving Program testing can be a very effective way to show the presence of bugs, but it is hopelessly inadequate for showing their absence.\nI think the zeitgeist in the first generation of computer scientists was the ideal of formally proving programs. Ofc, that still occupies important research space today, but it\u0026#39;s not the usual approach a software crafter takes when writing software. We do Test-Driven Development, we don\u0026#39;t write formal specs in TLA+ and model check them. 99.(9)% of the time.\nDijkstra gives some guidance on how to do \u0026#34;correct by construction\u0026#34; programming (if I may borrow from CBC Casper).\nThe programmer should let correctness proof and program grow hand in hand. If one first asks oneself what the structure of a convincing proof would be and, having found this, then constructs a program satisfying this proof\u0026#39;s requirements, then these correctness concerns turn out to be a very effective heuristic guidance.\nBanter Increased numbers of named registers in 3rd gen computers complicates subroutine mechanisms … we can only pray that the mutation won\u0026#39;t prove to be hereditary.\nAbout 3rd generation computers, starting around 1966, replacing transistors with integrated circuits, before the advent of the microprocessor.\nNot sure what that\u0026#39;s about but I guess more named registers means more \u0026#34;ceremony\u0026#34; to save their values when calling a subroutine? Is that how those old architectures worked? I guess so, looking at the \u0026#34;subroutine structure\u0026#34; of the IBM S360 – \u0026#34;S/360 programmers typically follow a callee save convention using a save area in memory.\u0026#34;\nFORTRAN\u0026#39;s tragic fate has been its wide acceptance, mentally chaining thousands and thousands of programmers to our past mistakes.\nMore about \u0026#34;one-liners\u0026#34; and \u0026#34;baroque monstrosities\u0026#34; in the article.\nEducation The first effect of teaching a methodology - rather than disseminating knowledge - is that of enhancing the capacities of the already capable, this magnifying the difference in intelligence.\nConclusion Automatic computers have been with us for a quarter of century. Their influence has been a ripple on the surface of our culture compared with the much more profound influence they will have in their capacity of intellectual challenge, which will be without precedent in the cultural history of mankind. Again, more in the article. Loved the description of the \u0026#34;depth\u0026#34; of the \u0026#34;abstraction hierarchy\u0026#34;. In computers it appears to span on so many levels.\n","permalink":"https://valer.dev/posts/notes-the-humble-programmer-dijkstra-1972/","summary":"\u003cp\u003e\nThe original article by \u003ca href=\"https://en.wikipedia.org/wiki/Edsger_W._Dijkstra\"\u003eDijkstra\u003c/a\u003e can be found \u003ca href=\"https://dl.acm.org/doi/10.1145/355604.361591\"\u003ehere\u003c/a\u003e (\u003ca href=\"https://dl.acm.org/doi/pdf/10.1145/355604.361591\"\u003epdf\u003c/a\u003e). These notes are mainly to summarize my read of the article for future ref.\u003c/p\u003e","title":"The Humble Programmer by Dijkstra (1972)"},{"content":" The gnuradio package in Arch is at 3.9.4 and marked as outdated for almost 2 months now. Not a huge issue, but there\u0026#39;s a bug in the QT range slider that\u0026#39;s fixed in the later versions.\nI need the osmosdr block in gnuradio since it looks like it allows me to specify a devicestring to select my LimeSDR as the radio in use.\nFirst thought: install gnuradio-git Installing gnuradio-git got me straight to 3.11.0, all good, however I need the osmosdr block for which there\u0026#39;s no -git AUR package.\nThe community/gnuradio-osmosdr package is linked against community/gnuradio which is at 3.9.4 and will not work.\nThe simple test is python -c \u0026#34;import osmosdr\u0026#34; which will error with libgnuradio-runtime.so.3.9.4 not found. Of course it\u0026#39;s not there because gnuradio-git replaces community/gnuradio along with those shared libraries.\nThe trick: rebuild gnuradio-osmosdr from source Rebuilding from source will force linking gnuradio-osmosdr against libgnuradio-runtime.so.3.11.0 that\u0026#39;s provided by gnuradio-git.\nWe\u0026#39;ll use the asp tool to fetch the package definitions from git.\nasp update asp checkout gnuradio-osmosdr asp checkout gnuradio-iqbal pushd gnuradio-iqbal \u0026amp;\u0026amp; makepkg -ci \u0026amp;\u0026amp; popd pushd gnuradio-osmosdr \u0026amp;\u0026amp; makepkg -ci \u0026amp;\u0026amp; podp Keeping that order as osmosdr is dependent on iqbal.\nNow both libraries are reinstalled and linked against gnuradio-git. The test runs fine now.\nIhh..\nAlternatives Install gnuradio with pybombs I wasn\u0026#39;t in the mood to fully understand how it works nor debug the errors. It feels like it\u0026#39;s using some items already on the system? Idk, tbd next time.\nInstall gnuradio with nix The slides are from this talk: GRCon18 - GNU Radio Ecosystem Management with Nix.\nI was tempted to do this. I\u0026#39;ve used nix in the past to quickly get around system\u0026#39;s package manager limitations. It\u0026#39;s so nice to just pop a nix shell and use whatever you need in isolation.\nThe problem here is that the nix gnuradio package is at 3.9.3 currently, one minor version behind arch, so no quick win here.\nI could go down the rabbit hole and create a custom nix spec, but it\u0026#39;d rather not.\n","permalink":"https://valer.dev/posts/gnuradio-arch-linux-outdated/","summary":"The gnuradio package in Arch is at 3.9.4 and marked as outdated for almost 2 months now. Not a huge issue, but there\u0026#39;s a bug in the QT range slider that\u0026#39;s fixed in the later versions.\nI need the osmosdr block in gnuradio since it looks like it allows me to specify a devicestring to select my LimeSDR as the radio in use.\nFirst thought: install gnuradio-git Installing gnuradio-git got me straight to 3.","title":"Arch linux: fixing outdated Gnuradio"},{"content":" This is pretty specific but I\u0026#39;ve hit it numerous times and got ultra-frustrated because it usually happens precisely when you don\u0026#39;t feel like doing side quests to fix your editor.\nSymptom Autocomplete no longer works.\nYou try to lsp-workspace-restart but that\u0026#39;s futile.\nYou try to pkill gopls but it\u0026#39;s useless.\nThe usual suspects go.mod Do you have a go.mod file? You should have a go.mod file.\ngo mod init \u0026lt;package_name\u0026gt; LSP workspaces Is your LSP workspace set correctly or does it end up somewhere in /home/user or equivalent nonsense when it should actually point to the root of your project?\nLook for your buffer in lsp-describe-session. If it\u0026#39;s in the wrong workspace, use these commands to fix that:\nEmacs Commands (spacemacs bindings) lsp-workspace-folders-add , F a lsp-workspace-folders-open lsp-workspace-folders-remove , F r lsp-workspace-folder-add with the root dir of my project usually helps.\nPS: Where does LSP persist the session? The list of LSP workspaces is stored in ~/.emacs.d/.lsp-session-v1.\n","permalink":"https://valer.dev/posts/emacs-lsp-go/","summary":"Some things that might help when LSP just won\u0026#39;t","title":"Fixing misbehaving go completion in emacs"},{"content":" I\u0026#39;ve read this great article about Consistent Hashing: Algorithmic Tradeoffs.\nIt\u0026#39;s really thorough. What especially caught my eye is @dgryski\u0026#39;s workflow and approach to research. At the end of the article there\u0026#39;s a list of repos, all Go implementations of research papers and algos for Caching and various flavors of Consistent Hashing.\nThis \u0026#34;just code the paper\u0026#34; approach is something that\u0026#39;s been on my mind. It\u0026#39;s a well known way to deepen one\u0026#39;s understanting of a subject. Hope I\u0026#39;d actually become more diligent and try it myself.\nSome context I\u0026#39;ve been trying to implement a rate limiting system for the largest system I\u0026#39;ve had the chance to work with so far. It\u0026#39;s doing around 30-60k queries per second (QPS).\nThere are many algorithms for the task and many ways to build such a system. To name a few algos, there\u0026#39;s Leaky Bucket, Token Bucket, Sliding window, Fixed window and others.\nSoftware options that do this off-the-shelf: nginx, haproxy, kong (which is based on openresty that\u0026#39;s nginx at core), envoy, etc.\nIf the available palette of software isn\u0026#39;t ticking all the boxes, you can implement these algorithms yourself using a central store like Redis, a distributed store like Memcached, stream processing like Kinesis Analytics and many others.\nMany implementations consist of key-value stores that track usage. You basically pick a set of parameters for which you want to track usage. That can be either a single param like (ip), (user_id) or multiple simoultaneous params for more granularity (user_id AND project_id).\nYou might also want to track usage over different time spans. Say I\u0026#39;m looking to track usage coming from an IP over 30 second intervals and only allow up to X queries in that frame, or maybe I also want to track usage per day for a user. To account for this, we\u0026#39;d also include the window size as part of the key so for each window size you have a different total requests count.\nWrapping up, imagine keys of the form window=30seconds;ip=1.2.3.4;user_id=foobar holding values like {hits: 500, max_allowed: 800, expires_at: 2021-01-30T10:51:42+02:00 }\nOne off-the-shelf ratelimiter: mailgun/gubernator I\u0026#39;ve been playing with mailgun/gubernator which has quite a nice gRPC API. It can run in single node or cluster mode.\nIt\u0026#39;s basically a distributed LRU cache that stores values computed by the ratelimiter algorithms that it implements. It\u0026#39;s much inspired from Brad Fritzpatrick\u0026#39;s groupcache.\nIt\u0026#39;s able to shard the keyspace over multiple nodes using the Consistent Hashing algorithm.\nIt might seem pretty simple to implement an in-memory cache. It can be a simple map[Key]Value. Where it starts to show some difficulty is when you push performance. That\u0026#39;s when more complex variants of a LRU cache become adequate, like dgraph\u0026#39;s Ristretto. There\u0026#39;s a really cool talk about how they achieve performance by minimizing locking so that threads can do their work fast without waiting on others to finish their business updating the store.\nI couldn\u0026#39;t get a 3-4-5 node cluster to ingest the 60k QPS with Gubernator. Initially i thought it\u0026#39;s the cache mutex, but then I fixated on cross-node performance. Bummer, end of story so far, I\u0026#39;m taking a different approach for now.\nWhat I ended up doing The AHA! moment was running redis-benchmark and seeing RPS north of 600k-700k RPS. That should cover my needs for now. Lots.\nSo I went to Redis Cluster, managed in Elasticache.\nThe performance is stunning, just what you\u0026#39;d expect from redis: P50 sub millisecond, P95 \u0026lt; 5ms, P99 \u0026lt; 40ms at sustained traffic. Those values are measured on the client, so probably a bit increased due to client load.\nIt\u0026#39;s also easy to scale your cluster: you can scale the shard count by adding master nodes and you can horizontally scale shards by setting the number of replicas.\nThere\u0026#39;s some attention to give to consistency. Redis Cluster is not consistent, however that\u0026#39;s not a detractor in a rate limiting application.\nConnection pooling issues Another thing to pay attention to is connection pooling. I\u0026#39;ve had the pleasure of seeing spikes of thousands of NewConnections (per sec? per min? don\u0026#39;t remember), but those were problems on the client side, not Redis.\nKeyword: connection churn. Cause: ContextTimeout.\nWhy? Client overload, go routines scheduled with significant delays, and contention on semaphores. All these issues are visible with pprof tracing.\nA general solution, that applies in many other cases with microservices is Concurrency Limiting, or Adaptive Throttling. See what Netflix and Google have on this subject:\nNetflix: concurrency limiting. Google: https://sre.google/sre-book/handling-overload/ (see client-side throttling) This section is worth a post of it\u0026#39;s own. Until then,\nThanks for reading! 😄\n","permalink":"https://valer.dev/posts/fun-with-rate-limiters/","summary":"2-in-1: Trying to build a distributed rate limiter \u0026amp; the cool work of dgryski","title":"Fun with rate limiters"},{"content":" A now page would be great here.\nRefs https://twitter.com/blankorized https://mastodon.social/@blankorized https://github.com/valer-cara https://medium.com/@valercara (few older articles, cross-posting) Notes Exclusion of Confusion\nK-Lines: A theory of Memory. Cognitive Science; Marvin Minski Seriously Imagining\nImaginable: How to See the Future Coming and Feel Ready for Anything―Even Things that seem impossible today There are no side-effects, only effects\nAll models are wrong: reflections on becoming a systems scientist; John D. Sterman ","permalink":"https://valer.dev/about/","summary":" A now page would be great here.\nRefs https://twitter.com/blankorized https://mastodon.social/@blankorized https://github.com/valer-cara https://medium.com/@valercara (few older articles, cross-posting) Notes Exclusion of Confusion\nK-Lines: A theory of Memory. Cognitive Science; Marvin Minski Seriously Imagining\nImaginable: How to See the Future Coming and Feel Ready for Anything―Even Things that seem impossible today There are no side-effects, only effects\nAll models are wrong: reflections on becoming a systems scientist; John D. Sterman ","title":"About"},{"content":" While setting up the domain for this blog in CloudFlare, I quickly went with YES to the optimization features they offered, among which is minifying the content served. Some time later I noticed my CSS/JS wasn\u0026#39;t loading and this error was showing up in the console:\nFailed to find a valid digest in the \u0026#39;integrity\u0026#39; attribute for resource \u0026#39;...\u0026#39;. The resource has been blocked. Subresource integrity embeds a hash of the included asset (css/js) into the integrity attribute like so:\n\u0026lt;link href=\u0026#34;/assets/css/stylesheet.min.4f1ad98d0.css\u0026#34; integrity=\u0026#34;sha256-TxrZjQu8UeoslQ8GPH4pUivIlFyd0GNIMYzUzOa\u0026amp;#43;RLs=\u0026#34;\u0026gt; If I\u0026#39;d enable Developer Mode the problem would disappear. Looking over the HTTP headers, I noticed this cf-polished header which reminded me of the optimization settings.\nFixed it by disabling the CF-side optimizations which were of not much benefit since Hugo can handle minification on it\u0026#39;s own. 👌\nAlternatively I could just disable fingerprinting in the Hugo config. But it\u0026#39;s actually quite nice, I\u0026#39;ll have it!\n","permalink":"https://valer.dev/posts/subresource-integrity/","summary":"The two features might interfere and cause failures in the browser","title":"Subresource Integrity \u0026 CloudFlare speed optimization"},{"content":" I recently read about about indieweb.org and POSSE.\nBasically it\u0026#39;s saying that in order to own your content you should publish it on your own site and syndicate (cross-post) to the targeted platforms (fb, twitter, ..). That sounded interesting so I thought I\u0026#39;d give it a go.\nThe other reason, actually the main one, is just trying to write a bit more. This talk inspired me to do that: Leslie Lamport: Thinking Above the Code. A quote from the talk:\nWriting is nature’s way of letting you know how sloppy your thinking is.\nTo think, you have to write.\nIf you’re thinking without writing, you only think you’re thinking.\nI\u0026#39;ve been reading \u0026#34;On Writing Well\u0026#34; by William Zinsser. Here\u0026#39;s a quote from the book on the same theme:\nWriting is not a special language owned by the English teacher. Writing is thinking on paper. Anyone who thinks clearly can write clearly, about anything at all.\nUpdate [2021-10-01 Fri] Just stumbled upon this short Paul Graham post about Weird Languages which has a great ending line!\nIn the process of learning how to say things you couldn\u0026#39;t previously say, you\u0026#39;ll probably be learning how to think things you couldn\u0026#39;t previously think.\nUpdate [2023-05-14 Sun] \u0026#34;Design in Practice\u0026#34; by Rich Hickey, generally great talk, but mentioned here specifically for \u0026#34;we\u0026#39;re going to be writing all the time, […] putting text in front of our faces so we can see what we\u0026#39;re thinking about. […]something very important to help you think in the first place, not an archival activity, not about docs, this is about writing as part of thinking.\u0026#34;\nUpdate [2024-01-11 Thu] Reading Messari Crypto Theses for 2024. Author wraps the ~200pg report on crypto with life advice and some more hints.\nhttps://twitter.com/nicolascole77/status/1575463016694513666 “Don’t just write words. Write music.” — Gary Provost Coming back to this mid-2024, the messari material is all right, but I wouldn\u0026#39;t jump into it first thing since it\u0026#39;s too crypto-laden. Rather check the next point below, the Minksi course.\nUpdate [2024-08-19 Mon] 🔥 \u0026#34;How to Write More Clearly, Think More Clearly, and Learn Complex Material More Easily\u0026#34;, Michael A. Covington PDF. I found this material on this MIT course from Marvin Minski: The Society Of Mind.\n","permalink":"https://valer.dev/posts/init/","summary":"Rationale, or why i\u0026#39;m starting this blog","title":"Zero: the initial post"}]