- HOWTO: Change your behavior
- Hello, Perceptron: An introduction to neural networks
- Make a game in 5 minutes with generative AI
- 12 resolutions for programmers [2023 update]
- 26 languages in 25 days: Reflections on language design
- [see all]
Random:
- Learning JavaScript in small bites, Part 1
- Memoizing recursive functions in Javascript with the Y combinator
- Implementing Java as a CESK machine, in Java
Illustrated:
- Peer fortress: The scientific battlefield
- Classroom Fortress: Nine Kinds of Students
- The shape of your problem
- The illustrated guide to a Ph.D.
- 26 languages in 25 days: Reflections on language design
- 26 languages in 25 days: Strategy, tactics, logistics
- Church encodings and the Y Combinator in Python
- Introducing QuickCheck: Number theory and red-black trees
- Understanding and implementing laziness
- Higher-order list operations
- Implementing Java as a CESK machine, in Java
- Writing an interpreter, CESK-style
- Writing CEK-style interpreters in Haskell
- Compiling up to the λ-calculus
- Parsing with derivatives (Yacc is dead: An update)
- Deleting from Okasaki's red-black trees
- By example: Continuation-passing style in JavaScript
- Self-inlining anonymous closures in C++
- 7 lines of code, 3 minutes: Implement a programming language
- Self-inlining anonymous functions in C++
- Lambda-style anonymous functions in C++
- Lambda-calculus in C++ templates
- Lazy-list-based streams in Scala
- Church encodings in Scheme
- An interpreter for Lambdo
- Okasaki red-black tree maps in Scala
- Non-termination without loops, iteration or recursion in Javascript
- Memoizing recursive functions in Javascript with the Y combinator
- Advanced programming languages
- Tips for defending a Ph.D.
- HOWTO: Respond to peer reviews
- Tips for work-life balance
- 12 resolutions for grad students
- HOWTO: Peer review scientific work
- Electric meat
- HOWTO: Get a great letter of recommendation
- Boost productivity: Cripple your technology
- HOWTO: Send and reply to email
- Classroom Fortress: Nine Kinds of Students
- The 5+5 Commandments of a Ph.D.
- 10 tips for academic talks
- 10 reasons Ph.D. students fail
- 6 tips for low-cost academic blogging
- Get The Illustrated Guide in print; fund Ph.D. students; save lives
- The illustrated guide to a Ph.D.
- A Ph.D. thesis proposal is a contract
- 3 qualities of successful Ph.D. students
- HOWTO: Get in to grad school
- Recommended books and papers for grad students
- Academic job hunt advice
- HOWTO: Change your behavior
- 12 resolutions for programmers [2023 update]
- 26 languages in 25 days: Reflections on language design
- 26 languages in 25 days: Strategy, tactics, logistics
- HOWTO: Avoid temptation
- HOWTO: Control yourself
- Parsing BibTeX into S-Expressions, JSON, XML and BibTeX
- Productivity tips for academics
- Travel hacks
- Tips for work-life balance
- 12 resolutions for grad students
- End artificial scarcities to boost productivity
- Boost productivity: Cripple your technology
- Console productivity hack: Exploiting task frequency
- Essential iPhone tips and apps
- Multitouch remote for a robot: 200 lines of JavaScript and Python
- HOWTO: Native iPhone/iPad apps in JavaScript
- HOWTO: Change your behavior
- HOWTO: Avoid temptation
- HOWTO: Control yourself
- HOWTO: Get tenure
- HOWTO: Home and neighborhood security
- HOWTO: Use make
- HOWTO: Use encryption to protect privacy
- HOWTO: Respond to peer reviews
- HOWTO: Gain strength and muscle
- HOWTO: Peer review scientific work
- HOWTO: Translate math into code
- HOWTO: Get a great letter of recommendation
- HOWTO: Send and reply to email
- HOWTO: Make a cat 5 ethernet cable
- HOWTO: Rip a DVD on Mac OS X or Linux
- HOWTO: Fix mold and allergy problems
- HOWTO: Eliminate pet stains with enzymes and black lights
- HOWTO: Use Skype for home phone line service
- A quick overview of programming with bash
- College tips, tricks and hacks
- Grammar: The language of languages (BNF, EBNF, ABNF)
- Settling into Unix
- HOWTO: Get a great letter of recommendation
- A survival guide for Unix beginners
- What every CS major should know
- Logical literacy
- Desugaring regular operations in context-free grammars
- Grammar: The language of languages (BNF, EBNF, ABNF)
- Parsing regular expressions with recursive descent
- Standalone lexers with lex: synopsis, examples, and pitfalls
- Parsing with derivatives (Yacc is dead: An update)
- A non-blocking lexing toolkit for Scala from regex derivatives
- Lexical analysis and syntax-highlighting in JavaScript
- Matching regular expressions with derivatives
- Implementing regular expressions and NFAs in Java
- Parsing M-Expressions in Scala with combinators
- Implementing Java as a CESK machine, in Java
- Writing an interpreter, CESK-style
- How to compile with continuations
- Understand exceptions by implementing them
- By example: Continuation-passing style in JavaScript
- Programming with continuations by example
- Desugaring regular operations in context-free grammars
- Parsing S-Expressions in Scala
- Tree transformations: Desugaring Scheme
- Lexical analysis in Racket
- Grammar: The language of languages (BNF, EBNF, ABNF)
- Standalone lexers with lex: synopsis, examples, and pitfalls
- Closure conversion: How to compile lambda
- How to compile with continuations
- Understand exceptions by implementing them
- A-Normalization: Why and How
- Compiling up to the λ-calculus
- Parsing with derivatives (Yacc is dead: An update)
- 7 lines of code, 3 minutes: Implement a programming language
- Compiling Scheme to C
- Compiling to Java
- An interpreter for Lambdo
- Counting hash collisions with the birthday paradox
- Order theory for computer scientists
- HOWTO: Translate math into code
- Logical literacy
- Fermat and Solovay-Strassen primality tests in Scheme
- An implementation of RSA in Scheme
- Why guaranteed file compression is impossible
- 26 languages in 25 days: Reflections on language design
- 26 languages in 25 days: Strategy, tactics, logistics
- Tree transformations: Desugaring Scheme
- Lexical analysis in Racket
- Grammar: The language of languages (BNF, EBNF, ABNF)
- What is static program analysis?
- Implementing Java as a CESK machine, in Java
- Writing an interpreter, CESK-style
- Order theory for computer scientists
- HOWTO: Translate math into code
- Writing CEK-style interpreters in Haskell
- Closure conversion: How to compile lambda
- How to compile with continuations
- Understand exceptions by implementing them
- A-Normalization: Why and How
- Compiling up to the λ-calculus
- Parsing with derivatives (Yacc is dead: An update)
- By example: Continuation-passing style in JavaScript
- 7 lines of code, 3 minutes: Implement a programming language
- Architectures for interpreters
- First-class macros from meta-circular evaluators
- Programming with continuations by example
- Compiling Scheme to C
- Compiling to Java
- Church encodings in Scheme
- Non-termination without loops, iteration or recursion in Javascript
- Memoizing recursive functions in Javascript with the Y combinator
- Advanced programming languages
- Recommended books and papers for grad students
- HOWTO: Peer review scientific work
- Electric meat
- HOWTO: Send and reply to email
- A Ph.D. thesis proposal is a contract
- 3 shell scripts that can improve your writing
- Recommended books and papers for grad students
Lambda Calculus:
- Implementing Java as a CESK machine, in Java
- Writing an interpreter, CESK-style
- Church encodings in JavaScript
- Writing CEK-style interpreters in Haskell
- Compiling up to the λ-calculus
- 7 lines of code, 3 minutes: Implement a programming language
- Lambda-calculus in C++ templates
- Church encodings in Scheme
- Memoizing recursive functions in Javascript with the Y combinator
- 26 languages in 25 days: Reflections on language design
- 26 languages in 25 days: Strategy, tactics, logistics
- Standalone lexers with lex: synopsis, examples, and pitfalls
- Hacking the OS X Address Book with C, Racket and LaTeX
- Compiling Scheme to C
- 26 languages in 25 days: Reflections on language design
- 26 languages in 25 days: Strategy, tactics, logistics
- Self-inlining anonymous closures in C++
- Self-inlining anonymous functions in C++
- Lambda-style anonymous functions in C++
- Lambda-calculus in C++ templates
- 26 languages in 25 days: Reflections on language design
- 26 languages in 25 days: Strategy, tactics, logistics
- Understanding and implementing laziness
- Parsing S-Expressions in Scala
- Tree transformations: Desugaring Scheme
- 99 ways to say '(I love you) in Racket
- Writing an interpreter, CESK-style
- 2011 Scheme Workshop: Accepting Submissions
- Closure conversion: How to compile lambda
- How to compile with continuations
- Understand exceptions by implementing them
- A-Normalization: Why and How
- Compiling up to the λ-calculus
- 7 lines of code, 3 minutes: Implement a programming language
- Lexical analysis and syntax-highlighting in JavaScript
- k-CFA: Analyzing types and control-flow in dynamic languages
- First-class macros from meta-circular evaluators
- Programming with continuations by example
- Compiling Scheme to C
- Compiling to Java
- Fast vector-structs in Scheme from syntax-rules
- Church encodings in Scheme
- Matching regular expressions with derivatives
- Fermat and Solovay-Strassen primality tests in Scheme
- An implementation of RSA in Scheme
- Advanced programming languages
- 26 languages in 25 days: Reflections on language design
- 26 languages in 25 days: Strategy, tactics, logistics
- Parsing BibTeX into S-Expressions, JSON, XML and BibTeX
- Low-level web programming in Racket
- Desugaring regular operations in context-free grammars
- Understanding and implementing laziness
- Tree transformations: Desugaring Scheme
- Higher-order list operations
- 99 ways to say '(I love you) in Racket
- Lexical analysis in Racket
- What is static program analysis?
- Writing an interpreter, CESK-style
- HOWTO: Translate math into code
- Closure conversion: How to compile lambda
- How to compile with continuations
- Understand exceptions by implementing them
- A-Normalization: Why and How
- Compiling up to the λ-calculus
- Hacking the OS X Address Book with C, Racket and LaTeX
- Parsing with derivatives (Yacc is dead: An update)
- 7 lines of code, 3 minutes: Implement a programming language
- Church encodings in JavaScript
- JavaScript: Warts and workarounds
- Greasemonkey scripts for NSF's Fastlane
- Multitouch remote for a robot: 200 lines of JavaScript and Python
- By example: Continuation-passing style in JavaScript
- HOWTO: Native iPhone/iPad apps in JavaScript
- Lexical analysis and syntax-highlighting in JavaScript
- Learning JavaScript in small bites, Part 4
- Learning JavaScript in small bites, Part 3
- Learning JavaScript in small bites, Part 2
- Learning JavaScript in small bites, Part 1
- Canvas tag rendering of mathematical functions
- Syllabus management in Javascript
- Greasemonkey scripts to fix the UI on Apply Yourself
- Non-termination without loops, iteration or recursion in Javascript
- Memoizing recursive functions in Javascript with the Y combinator
Python:
- Hello, Perceptron: An introduction to neural networks
- Church encodings and the Y Combinator in Python
- HOWTO: Translate math into code
- Understand exceptions by implementing them
- Multitouch remote for a robot: 200 lines of JavaScript and Python
Java:
- 26 languages in 25 days: Reflections on language design
- 26 languages in 25 days: Strategy, tactics, logistics
- Implementing Java as a CESK machine, in Java
- HOWTO: Translate math into code
- Compiling to Java
- Implementing regular expressions and NFAs in Java
- 26 languages in 25 days: Reflections on language design
- 26 languages in 25 days: Strategy, tactics, logistics
- Understanding and implementing laziness
- Parsing S-Expressions in Scala
- A pipelined, non-blocking, extensible web server in Scala
- Architectures for interpreters
- Lazy-list-based streams in Scala
- Learning Scala in small bites
- An interpreter for Lambdo
- Okasaki red-black tree maps in Scala
- Parsing M-Expressions in Scala with combinators
- Advanced programming languages
- 26 languages in 25 days: Reflections on language design
- 26 languages in 25 days: Strategy, tactics, logistics
- Hacking the OS X Address Book with C, Racket and LaTeX
SQL:
- Relational shell programming
- HOWTO: Native iPhone/iPad apps in JavaScript
- Console productivity hack: Exploiting task frequency
- 26 languages in 25 days: Reflections on language design
- 26 languages in 25 days: Strategy, tactics, logistics
- Introducing QuickCheck: Number theory and red-black trees
- Higher-order list operations
- HOWTO: Translate math into code
- Writing CEK-style interpreters in Haskell
- Advanced programming languages
- 26 languages in 25 days: Reflections on language design
- 26 languages in 25 days: Strategy, tactics, logistics
- Church encodings and the Y Combinator in Python
- Learn Perl by experiment
- A quick overview of programming with bash
- 3 shell scripts that can improve your writing
- Console productivity hack: Exploiting task frequency
- Church encodings and the Y Combinator in Python
- How to compile with continuations
- Compiling up to the λ-calculus
- Self-inlining anonymous closures in C++
- Self-inlining anonymous functions in C++
- Lambda-style anonymous functions in C++
- Lambda-calculus in C++ templates
- Church encodings in Scheme
- Settling into Unix
- A survival guide for Unix beginners
- Essential iPhone tips and apps
- Multitouch remote for a robot: 200 lines of JavaScript and Python
- HOWTO: Word, Excel and PowerPoint without MS Office
- Tips, tricks and software for (new) Apple users
- Learn Perl by experiment
- A quick overview of programming with bash
- HOWTO: Use make
- SSH hacks
- Standalone lexers with lex: synopsis, examples, and pitfalls
- Sculpting text with regex, grep, sed and awk
- Relational shell programming
- Settling into Unix
- A survival guide for Unix beginners
- Console productivity hack: Exploiting task frequency
- HOWTO: Word, Excel and PowerPoint without MS Office
- Tips, tricks and tools for Linux and Unix
- Low-level web programming in Racket
- Multitouch remote for a robot: 200 lines of JavaScript and Python
- By example: Continuation-passing style in JavaScript
- A pipelined, non-blocking, extensible web server in Scala
- What is static program analysis?
- Order theory for computer scientists
- k-CFA: Analyzing types and control-flow in dynamic languages
- HOWTO: Home and neighborhood security
- HOWTO: Use encryption to protect privacy
- SSH hacks
- Fermat and Solovay-Strassen primality tests in Scheme
- An implementation of RSA in Scheme
- Why peer reviewers should use TOR
- Travel hacks
- Hacking the OS X Address Book with C, Racket and LaTeX
- Three techniques to scale your site in an emergency
- Console productivity hack: Exploiting task frequency
- Google analytics hacks: Real-time stats and referring URLs
- HOWTO: Use Skype for home phone line service
Greasemonkey Hacks:
Academia:
- HOWTO: Get tenure
- Parsing BibTeX into S-Expressions, JSON, XML and BibTeX
- PAANDA: An NDA for academics
- College tips, tricks and hacks
- Tips for defending a Ph.D.
- HOWTO: Respond to peer reviews
- 12 resolutions for grad students
- HOWTO: Peer review scientific work
- Electric meat
- Peer fortress: The scientific battlefield
- The shape of your problem
- 6 tips for low-cost academic blogging
- The illustrated guide to a Ph.D.
- The CRAPL: An open source license for academia
- Why peer reviewers should use TOR
- Academic job hunt advice
Artificial Intelligence:
Science:
Health:
- 12 resolutions for programmers [2023 update]
- HOWTO: Get tenure
- Rare disease match-making via the internet
- Meeting notes: Small thoughts on large cohorts
- HOWTO: Gain strength and muscle
- Least resistance weight loss
- HOWTO: Fix mold and allergy problems
- Preventing and healing repetitive strain injury (RSI)
- Gadget review: Telling time quickly on a binary watch
- HOWTO: Catalog a library with a $10 barcode scanner
Home Improvement:
- HOWTO: Make a cat 5 ethernet cable
- HOWTO: Fix mold and allergy problems
- HOWTO: Eliminate pet stains with enzymes and black lights
- HOWTO: Catalog a library with a $10 barcode scanner
- HOWTO: Use Skype for home phone line service
Chronological Order:
- HOWTO: Change your behavior
- Hello, Perceptron: An introduction to neural networks
- Make a game in 5 minutes with generative AI
- 12 resolutions for programmers [2023 update]
- 26 languages in 25 days: Reflections on language design
- 26 languages in 25 days: Strategy, tactics, logistics
- HOWTO: Avoid temptation
- HOWTO: Control yourself
- HOWTO: Get tenure
- Counting hash collisions with the birthday paradox
- Parsing BibTeX into S-Expressions, JSON, XML and BibTeX
- Low-level web programming in Racket
- Rare disease match-making via the internet
- Desugaring regular operations in context-free grammars
- Meeting notes: Small thoughts on large cohorts
- PAANDA: An NDA for academics
- Productivity tips for academics
- Church encodings and the Y Combinator in Python
- HOWTO: Home and neighborhood security
- Introducing QuickCheck: Number theory and red-black trees
- Travel hacks
- Understanding and implementing laziness
- A short guide to Salt Lake City
- Learn Perl by experiment
- A quick overview of programming with bash
- HOWTO: Use make
- Parsing S-Expressions in Scala
- College tips, tricks and hacks
- Tips for defending a Ph.D.
- HOWTO: Use encryption to protect privacy
- HOWTO: Respond to peer reviews
- HOWTO: Gain strength and muscle
- Tree transformations: Desugaring Scheme
- Higher-order list operations
- 99 ways to say '(I love you) in Racket
- Tips for work-life balance
- Lexical analysis in Racket
- Grammar: The language of languages (BNF, EBNF, ABNF)
- 12 resolutions for grad students
- HOWTO: Peer review scientific work
- What is static program analysis?
- Implementing Java as a CESK machine, in Java
- Writing an interpreter, CESK-style
- Parsing regular expressions with recursive descent
- Hunting down my son's killer
- Electric meat
- Church encodings in JavaScript
- Peer fortress: The scientific battlefield
- JavaScript: Warts and workarounds
- SSH hacks
- Standalone lexers with lex: synopsis, examples, and pitfalls
- Sculpting text with regex, grep, sed and awk
- Relational shell programming
- Settling into Unix
- End artificial scarcities to boost productivity
- Order theory for computer scientists
- Least resistance weight loss
- HOWTO: Translate math into code
- HOWTO: Get a great letter of recommendation
- A survival guide for Unix beginners
- Writing CEK-style interpreters in Haskell
- What every CS major should know
- Boost productivity: Cripple your technology
- Essential iPhone tips and apps
- HOWTO: Send and reply to email
- 2011 Scheme Workshop: Accepting Submissions
- Greasemonkey scripts for NSF's Fastlane
- Classroom Fortress: Nine Kinds of Students
- Closure conversion: How to compile lambda
- How to compile with continuations
- Understand exceptions by implementing them
- A-Normalization: Why and How
- Compiling up to the λ-calculus
- The 5+5 Commandments of a Ph.D.
- Multitouch remote for a robot: 200 lines of JavaScript and Python
- 10 tips for academic talks
- Hacking the OS X Address Book with C, Racket and LaTeX
- Parsing with derivatives (Yacc is dead: An update)
- Deleting from Okasaki's red-black trees
- By example: Continuation-passing style in JavaScript
- The shape of your problem
- Logical literacy
- Self-inlining anonymous closures in C++
- 10 reasons Ph.D. students fail
- HOWTO: Native iPhone/iPad apps in JavaScript
- 6 tips for low-cost academic blogging
- Get The Illustrated Guide in print; fund Ph.D. students; save lives
- Three techniques to scale your site in an emergency
- The illustrated guide to a Ph.D.
- Gadget review: Telling time quickly on a binary watch
- A Ph.D. thesis proposal is a contract
- 3 qualities of successful Ph.D. students
- The CRAPL: An open source license for academia
- 3 shell scripts that can improve your writing
- 7 lines of code, 3 minutes: Implement a programming language
- Console productivity hack: Exploiting task frequency
- Google analytics hacks: Real-time stats and referring URLs
- A non-blocking lexing toolkit for Scala from regex derivatives
- Self-inlining anonymous functions in C++
- Lambda-style anonymous functions in C++
- A pipelined, non-blocking, extensible web server in Scala
- HOWTO: Make a cat 5 ethernet cable
- HOWTO: Rip a DVD on Mac OS X or Linux
- Lexical analysis and syntax-highlighting in JavaScript
- Learning JavaScript in small bites, Part 4
- k-CFA: Analyzing types and control-flow in dynamic languages
- Learning JavaScript in small bites, Part 3
- Learning JavaScript in small bites, Part 2
- Learning JavaScript in small bites, Part 1
- American Airlines sucks
- Canvas tag rendering of mathematical functions
- Architectures for interpreters
- First-class macros from meta-circular evaluators
- Programming with continuations by example
- Compiling Scheme to C
- Compiling to Java
- Fast vector-structs in Scheme from syntax-rules
- Lambda-calculus in C++ templates
- Lazy-list-based streams in Scala
- Learning Scala in small bites
- Church encodings in Scheme
- Matching regular expressions with derivatives
- Implementing regular expressions and NFAs in Java
- An interpreter for Lambdo
- Syllabus management in Javascript
- HOWTO: Get in to grad school
- Greasemonkey scripts to fix the UI on Apply Yourself
- Okasaki red-black tree maps in Scala
- Parsing M-Expressions in Scala with combinators
- Non-termination without loops, iteration or recursion in Javascript
- Memoizing recursive functions in Javascript with the Y combinator
- HOWTO: Fix mold and allergy problems
- Fermat and Solovay-Strassen primality tests in Scheme
- An implementation of RSA in Scheme
- HOWTO: Word, Excel and PowerPoint without MS Office
- HOWTO: Eliminate pet stains with enzymes and black lights
- Why guaranteed file compression is impossible
- HOWTO: Catalog a library with a $10 barcode scanner
- Tips, tricks and tools for Linux and Unix
- Advanced programming languages
- HOWTO: Use Skype for home phone line service
- Why peer reviewers should use TOR
- Tips, tricks and software for (new) Apple users
- Preventing and healing repetitive strain injury (RSI)
- Recommended books and papers for grad students
- Academic job hunt advice
Twitter: @mattmight
Instagram: @mattmight
LinkedIn: matthewmight
Mastodon: @mattmight@mathstodon.xyz
Sub-reddit: /r/mattmight