All blogs / Functional / PL theory
Matt Might's blog
Functional / PL theoryCompilersEngineering management / careersEngineering blogs
- Posts
- 151 from 20 Jan 2009 to 18 Aug 2014
- Posting
- quiet since 2014
- Kind
- personal blog
2014 1
2013 1
2010 1
2009 1
Undated 147
- A-Normalization: Why and How (with code)
- 10 tips on how to give an academic talk
- Hacking your Address Book with C, Racket and LaTeX to print mailing labels correctly
- Academic job hunt advice: Tips for searching for and landing a professorship
- A Ph.D. thesis proposal is a contract
- American Airlines sucks: How to lose a customer
- Apply Yourself Greasemonkey scripts for Firefox to fix the user interface
- End artificial scarcities to boost productivity
- Shell programming with bash: by example, by counter-example
- iPhone tips and tricks: Syncing, productivity, analytics and more
- Advanced programming languages
- Tips, tricks and tools for using and learning Linux and Unix
- Books and papers every graduate student should read
- By example: Continuation-passing style in JavaScript
- C++ template programming: Embedding the lambda-calculus to show Turing-completeness
- Writing CEK-style interpreters (or semantics) in Haskell
- Writing an interpreter, CESK-style
- Church-encoded numbers, lists, booleans, conditionals with fixed-point recursion in Scheme
- Closure conversion: How to compile lambda
- College tips: Advice from a professor
- Compiling Scheme to C with flat closure conversion
- Compiling to Java as a target language
- Compiling up to the λ-calculus: Church encodings and the Y combinator
- Console productivity hack: Discover the frequent; then make it the easy
- How to compile with continuations
- The CRAPL: An academic-strength open source license
- Boost your productivity: Cripple your technology
- Quick easy cheap last minute gift ideas
- A denotational interpreter for a Scheme and Lisp-like lambda-calculus-based language in Scala
- Desugaring Scheme with tree transformations
- Translating mathematics into code: Examples in Java, Python, Haskell and Racket
- Rare disease hunting
- Electric meat
- Get The Illustrated Guide to a Ph.D. in print; fund Ph.D. students; save lives
- Gadget review: Telling time quickly on a binary watch
- Google analytics hacks: A real-time stats bookmarklet and full referring URLs
- 12 resolutions for grad students
- Grammar: The language of languages (BNF, EBNF, ABNF and more)
- Greasemonkey scripts for NSF's Fastlane
- Hacking strength: Gaining muscle with least resistance
- Higher-order list operations in Racket and Haskell
- HOWTO: Home and neighborhood security
- HOWTO: Apply for and get into grad school in science, engineering, mathematics and computer science: Tip, tricks, hints and mistakes
- 6 tips for low-cost academic blogging
- HOWTO: Quickly create an online catalog of your books using a $10 CueCat barcode scanner and LibraryThing
- How to send and reply to email
- Surviving a traffic surge: Three techniques to scale your site fast
- HOWTO: Get rid of mold and allergy problems with dehumidifiers, air purifiers and vacuums
- HOWTO: Make a cat 5/ethernet/RJ45 cable
- HOWTO: Native iPhone/iPad apps in JavaScript
- How to peer review scientfic work
- HOWTO: Read and create Word documents, Excel spreadsheets and PowerPoint presentations without Microsoft Office
- Asking for a letter of recommendation
- HOWTO: Eliminate dog, cat and pet stains and odors in carpets using bacteria, enzymes and UV black lights
- HOWTO: Rip a DVD on Mac OS X--perfect copies and iPhone/iPod transfer and conversion
- 99 ways to say '(I love you) in Racket
- Implementation of the Fermat and Solovay-Strassen primality tests for RSA key generation in Scheme
- Okasaki-style red-black tree maps: A purely functional implementation in Scala
- k-CFA: Determining control-flow and/or types in functional, scripting and object-oriented languages
- Lazy-list-based Streams in Scala
- Writing a lexer and parser for M-Expressions from scratch using Scala's combinators
- Converting regular expressions into nondeterministic finite automata (NFAs): An implementation in Java
- Non-termination without loops, iteration or recursion: Applying functional programming techniques to Javascript
- Memoizing recursive functions via the fixed-point Y combinator: Applying functional programming techniques to Javascript
- Pattern-matching regular expressions in Scheme using derivatives
- Implementation of the RSA public-key cryptography algorithm in the Scheme dialect of Lisp
- Fast, portable, expressive vector-based records\/structs for Scheme from syntax-rules
- 7 lines of code, 3 minutes: Implement a programming language
- You don't understand exceptions, but you should
- Understand and implement laziness with examples in Scala, JavaScript, Swift and Racket
- Demo title
- What is static analysis?
- A short introduction to make
- Multitouch remote for a robot: 200 lines of JavaScript & Python
- JavaScript: Warts and workarounds
- Church encodings in JavaScript
- Lambdas? In *my* C++?
- Meeting notes: Small thoughts on large cohorts
- Learning JavaScript in small bites, Part 1
- Learning JavaScript in small bites, Part 2
- Learning JavaScript in small bites, Part 3
- Learning JavaScript in small bites, Part 4
- Least resistance weight loss
- Legal information, disclaimers and disclosures
- Lexical analysis in Racket
- McLexer and McHighlight: A JavaScript library for syntax-highlighting (or generating lexical analyzers)
- Logical literacy
- First-class, run-time macros from meta-circular evaluators
- Demo title
- Demo title
- Hunting down my son's killer
- Classroom Fortress: The Nine Kinds of Students
- A non-blocking lexing toolkit for Scala based on the derivative of regular expressions
- Advisor types
- Code project interview
- How to learn functional programming books articles resources
- How to learn or teach yourself mathematics
- P np good bad irrelevant
- New
- Regex to dfa
- Understanding s expressions
- Unwritten rules of grad school
- Implementing Java as a CESK machine, in Java
- PAANDA: The academic alternative to NDAs
- Parsing regular expressions with recursive descent
- Parsing S-Expressions in Scala
- Yacc is dead: An update
- Order theory for computer scientists
- Peer fortress: The scientific battlefield
- Responding to peer review
- An experiment-driven guide to Perl
- The 5+5 Commandments of a Ph.D.
- Academic martial arts: Defending your Ph.D.
- The illustrated guide to a Ph.D.
- M2HTTPD: A pipelined, non-blocking, extensible web server in under 1400 lines of Scala
- Practicing privacy with encryption
- Preventing and healing repetitive strain injury (RSI) and carpal tunnel syndrome: Ergonomic tips, techniques and keyboards
- The shape of your problem
- Productivity hints, tips, hacks and tricks for graduate students and professors
- 12 resolutions for programmers [2023 update]
- Coroutines, exceptions, time-traveling search, generators and threads: Continuations by example
- Equational derivations of Church encodings and the Y Combinator in Python
- An introduction to QuickCheck with number theory and red-black trees
- Discovering patients and new diseases with the internet
- Desugaring regular operations in context-free grammars
- Canvas-tag rendering of mathematical functions
- Sculpting text with regex, grep, sed and awk
- Self-inlining anonymous functions in C++
- Settling into Unix
- 3 shell scripts: Kill weasel words, avoid the passive, eliminate duplicates
- Relational shell programming
- SSH tricks
- Standalone lexers with lex: synopsis, examples, and pitfalls
- Self-inlining anonymous closures in C++
- 2011 Scheme Workshop: Accepting Submissions
- 3 qualities of successful Ph.D. students: Perseverance, tenacity and cogency
- Mac tips, tricks and software for new Apple users: Switching from Windows or Linux
- HOWTO: Use Skype for home phone line service
- HOWTO: Get tenure
- Travel hacks (Updated July 2014)
- 10 reasons Ph.D. students fail
- What every computer science major should know
- A short guide to Salt Lake City
- Why guaranteed file compression is impossible
- Why peer reviewers should use an anonymizing network like TOR
- Tips for work-life balance
- Architectures for interpreters: Substitutional, denotational, big-step and small-step