27 Sep 24
Standard ML is a general purpose functional programming language. It is statically typed, which prevents a wide array of common programming errors, but also features powerful type inference, requiring few type declarations, if any. This makes it easy to build software that is easy to understand, extensible, and reliable.
01 Sep 24
23 Apr 24
This book provides an introduction to Conway’s Game of Life, the interesting mathematics behind it, and the methods used to construct many of its most interesting patterns. Lots of small “building block”-style patterns (especially in the first four or so chapters of this book) were found via brute-force or other computer searches, and the book does not go into the details of how these searches were implemented. However, from that point on it tries to guide the reader through the thought processes and ideas that are needed to combine those patterns into more interesting composite ones.
12 Feb 24
A really excellent educational document from Greg Wilson for folks who wanna learn sql.
07 Feb 24
A very detailed, approachable clerk notebook that gives an overview of clojure’s semantics
26 Jan 24
Physically based approaches to rendering, where an accurate modeling of the physics of light scattering is at the heart of image synthesis, offer both visual realism and predictability. Now in a comprehensively updated new edition, this best-selling computer graphics textbook sets the standard for physically based rendering in the industry and the field.Physically Based Rendering describes both the mathematical theory behind a modern photorealistic rendering system and its practical implementation. A method known as literate programming combines human-readable documentation and source code into a single reference that is specifically designed to aid comprehension. The book’s leading-edge algorithms, software, and ideas—including new material on GPU ray tracing—equip the reader to design and employ a full-featured rendering system capable of creating stunning imagery. This essential text represents the future of real-time graphics.
23 Dec 23
3blue1brown, or 3b1b for short, is primarily a YouTube channel about discovery and creativity in math. On this site, you can find written versions of many of these lessons, often with more interactive elements sprinkled in.
29 Nov 23
This is for study of programming in array languages such as APL 502, J 48, BQN 55, and K 44, as well as array-oriented features of other languages and notation such as einstein notation, numpy broadcasting, mathematica’s threaded 38. We may even get into discussions of combinatory logic 63.
28 Nov 23
This book discusses every kind of infinity: potential and actual, mathematical and physical, theological and mundane. Talking about infinity leads to many fascinating paradoxes. By closely examining these paradoxes we learn a great deal about the human mind, its powers, and its limitations.
27 Nov 23
Computer-generated artwork has been around for quite a while. The idea of using R for this purpose, however, is a little more recent. Designed originally as a programming language for academic statistical computing, R is now a mainstream language for data science and analytics. Can it also work as an artistic medium? Is there an overlap between our familiar data science workflows and the artistic process? Perhaps we can become better data scientists through art, and vice versa.
26 Nov 23
To find this path we can use a graph search algorithm, which works when the map is represented as a graph. A is a popular choice for graph search. Breadth First Search is the simplest of the graph search algorithms, so let’s start there, and we’ll work our way up to A.
25 Oct 23
The most surprising thing I learned was that, when screen readers process web pages, they very often inject their own code into the running web browser application process in order to extract information. Know what else does this? Malware. Know what else? Basically nothing.
Most introductions to accessibility APIs include a similar but shorter and simplified history lesson. This one collects details only found in one or the other, or none of them, throws in some trivia for fun, and cites what my ex-professor brain thinks of as primary sources. Grab your machete, because we’re heading into weeds so tall that a tiger couldn’t find its way home from an Indian buffet without GPS.
we’ll start from absolute scratch and recount the widely available basic story. It’s written for beginners, but the fact that I describe web accessibility in the broader context of software accessibility might offer a different twist for current practitioners as well.
The OS X accessibility model defines how accessibility clients interact with your app. There are two main components to this model. The first is the interface used to communicate with your app. The second is the hierarchy of accessible elements that your app presents.
To understand the role of an accessibility API in making Web applications accessible, it helps to know a bit about how assistive technologies provide access to applications and how that has evolved over time.
07 Oct 23
This book is intended to get you, the reader, programming quickly in Common Lisp. Although the Lisp programming language is often associated with artificial intelligence, this introduction is on general Common Lisp programming techniques. Later we will look at general example applications and artificial intelligence examples.
14 Sep 23
In early 2015 I was honored to be invited to develop and present a graduate course on Virtual Machines at UC Berkeley. The result is CS294-113: Virtual Machines and Managed Runtimes, which was presented in the Fall of 2015.This page contains the materials from that course.
12 Sep 23
CS 6120 is a PhD-level Cornell CS course by Adrian Sampson on programming language implementation. It covers universal compilers topics like intermediate representations, data flow, and “classic” optimizations as well as more research-flavored topics such as parallelization, just-in-time compilation, and garbage collection. The work consists of reading papers and open-source hacking tasks, which use LLVM and an educational IR invented just for this class.