Understand your Mac and iPhone more deeply by tracing the evolution of Mac OS X from prelease to Swift. John Siracusa delivers the details.
You've got two main options:
Classes | |
* Keith Devlin - Introduction to Mathematical Thinking - https://www.coursera.org/learn/mathematical-thinking | |
* Michael Genesereth - Introduction to Logic - https://www.coursera.org/learn/logic-introduction | |
* Robert Harper - Homotopy Type Theory - http://www.cs.cmu.edu/~rwh/courses/hott/ | |
Books and Articles | |
* Benjamin C. Pierce - Types and Programming Languages - https://www.cis.upenn.edu/~bcpierce/tapl/ | |
* x775 - Introduction to Datalog - https://x775.net/2019/03/18/Introduction-to-Datalog.html | |
* Bartosz Milewski - Category Theory For Programmers - https://bartoszmilewski.com/2014/10/28/category-theory-for-programmers-the-preface/ | |
* Benjamin C. Pierce et al. - Software Foundations - https://softwarefoundations.cis.upenn.edu/ |
This is inspired by https://fasterthanli.me/blog/2020/a-half-hour-to-learn-rust/
the command zig run my_code.zig
will compile and immediately run your Zig
program. Each of these cells contains a zig program that you can try to run
(some of them contain compile-time errors that you can comment out to play
with)
from ortools.sat.python import cp_model | |
persons = ['robert', 'john', 'george', 'yolando', 'christine', 'barbara'] | |
rooms = ['kitchen', 'bathroom', 'dining', 'living', 'pantry', 'study'] | |
weapons = ['bag', 'firearm', 'gas', 'knife', 'poison', 'rope'] | |
robert, john, george, yolando, christine, barbara = 0, 1, 2, 3, 4, 5 | |
kitchen, bathroom, dining, living, pantry, study = 0, 1, 2, 3, 4, 5 | |
bag, firearm, gas, knife, poison, rope = 0, 1, 2, 3, 4, 5 |
See also my tech blog.
#!/bin/bash | |
# Usage: ./my-service --listen=127.0.0.1:`mon 8080` | |
PORT=$(( ((RANDOM<<15)|RANDOM) % 63001 + 2000 )) | |
echo "$PORT" | |
socat -v TCP4-LISTEN:"$1",bind=127.0.0.1,reuseaddr,fork TCP4:"${2:-127.0.0.1}":$PORT >&2 & ! |
Here's a list of mildly interesting things about the C language that I learned mostly by consuming Clang's ASTs. Although surprises are getting sparser, I might continue to update this document over time.
There are many more mildly interesting features of C++, but the language is literally known for being weird, whereas C is usually considered smaller and simpler, so this is (almost) only about C.
struct foo {
struct bar {
int x;
For the past two weeks or so, I've been working on a little compiler project in C, mostly for educational purposes, i.e. to understand how a compiler really works. I'm not using any libraries, other than the C runtime library.
I have a hand-written lexer and parser, and a simple code generator targetting