12 May 23
The functional style of programming is founded on simple, everyday mathematical intuition: If a procedure or method has no side effects, then (ignoring efficiency) all we need to understand about it is how it maps inputs to outputs – that is, we can think of it as just a concrete method for computing a mathematical function. This is one sense of the word “functional” in “functional programming.” The direct connection between programs and simple mathematical objects supports both formal correctness proofs and sound informal reasoning about program behavior.
Introductory textbook on type theory
Textbook on Standard ML (PDF)
S-expressions are great, but if you think carefully, you might notice that S-expressions work as a kind of high-level assembly language on top of which you craft your own data structures. ML, by contrast, offers a powerful tool for expressing data structures directly: the algebraic data type. Don’t let the mathy name worry you; algebraic data types solve real programming problems
Instead, Naur is making the case that the most important part of writing and understand a program is building a “theory” about that program.
11 May 23
From the same mind that gave us Baba Is You. Use your knowledge of detecting landmines to instead detect monsters in a cave. Monsters are like landmines except different, you know?
This passage occurs as part of an argument that it’s possible to port videogames between platforms without changing the underlying game design (an argument that I ultimately agree with). However, I think that Emily Dickinson is—for reasons I’ll get into shortly—an inopportune choice as an example of a poet whose work “can survive a transcription.” In fact, I think Emily Dickinson’s work is an example of how, in fact, nothing survives transcription, and that’s the statement that I set out to prove in this talk. But along the way, it occurred to me that the converse is also true: nothing doesn’t survive transcription, and that the tension between these two seemingly opposite claims actually informs and explains them both.
10 May 23
Appen is among dozens of companies that offer data-labeling services for the AI industry. If you’ve bought groceries on Instacart or looked up an employer on Glassdoor, you’ve benefited from such labeling behind the scenes. Most profit-maximizing algorithms, which underpin e-commerce sites, voice assistants, and self-driving cars, are based on deep learning, an AI technique that relies on scores of labeled examples to expand its capabilities.
09 May 23
Technology is the active human interface with the material world.
08 May 23
SpaceTraders is an API-based game where you acquire and manage a fleet of ships to explore, trade, and fight your way across the galaxy.
07 May 23
Later, he enrolled at Auburn and got interested in sociology and geography, and wound up at Berkeley pursuing a doctorate, studying social organizations in Birmingham. He is a self-identified redneck (as in the original reference: communist-sympathizing miners in West Virginia), and once his Ph.D. was done, he dove into an anti-racist strain of Marxist political organizing in Birmingham, working on developing cooperative businesses, community land trusts, popular education, and community farming projects. But after eight years, Henson felt he had done little to tilt the balance of power towards working people. One of the great disappointments of his life was when he and fellow organizers endorsed a mayoral candidate who later betrayed their ideals.
The use of APL as a language for system design and prototyping is discussed. Benefits of APL over traditional design techniques are shown to include higher productivity, improved code reliability, superior maintainability and performance, and executable documentation.Hierarchical and hybrid approaches to modelling systems of various degrees of complexity are presented, with examples chosen from the author’s experience.
However, many new users of APL struggle to make sense of the wide array of integrations and tooling support provided by the Dyalog ecosystem, and often feel lost about how to architect their systems, deploy them, and integrate their APL code into new and existing products. This talk addresses these confusions by providing straightforward guidance and best practices, as well as providing a clear roadmap to navigating the wide array of APL tooling and products available.
06 May 23
There are a few things one can do to make APL look more… APL. What really characterises “classic” code is control structures and especially loops. Modern APL has control structures, too, and loops can easily be done with ¨. So those are really the features you want to avoid.
APL Thinking, Array-Oriented Programming and Notation as a Tool of Thought are terms used so often that they start to feel like buzzwords. In this high-level introduction to array programming, we explore these concepts and start to see if any practical advice can be found among the pontifications.
05 May 23
04 May 23
Hypergiant is a library for CHICKEN Scheme that tries to make it easy to make efficient games.1 The idea behind it is the belief that games should start with a prototype that should take minimal effort, but these should be extensible to be whatever you want the final product to be. So Hypergiant attempts to find the sweet spot between ease of use and power.
But not all languages have the same set of patterns. The patterns for looping in C or Python are very different from the patterns of recursion in Standard ML or Prolog. The way you organize a program in Lisp, where you name new language constructs, is very different from how you organize it in APL, where fragments of symbol sequences are both the definitions of behavior and become the label for that behavior in your mind.These distinct collections of fundamentals form various ur-languages. Learning a new language that traces to the same ur-language is an easy shift. Learning one that traces to an unfamiliar ur-language requires significant time and effort and new neural pathways.
03 May 23
WebGPU is the new WebGL. That means it is the new way to draw 3D in web browsers. It is, in my opinion, very good actually. It is so good I think it will also replace Canvas and become the new way to draw 2D in web browsers. In fact it is so good I think it will replace Vulkan as well as normal OpenGL, and become just the standard way to draw, in any kind of software, from any programming language. This is pretty exciting to me. WebGPU is a little bit irritating— but only a little bit, and it is massively less irritating than any of the things it replaces.
01 May 23
The Jewish Zine Archive began in 2019 and is a physical