Links
Essays I've Liked
- A Mathematician's Apology - G.H. Hardy [PDF]
- All I really need to know - David Stern
- What I learned building a parallel processor company from scratch -Andreas Olofsson
- Principles of Effective Research - Michael Nielsen
- Avoiding Classic Mistakes [In Software Engineering] - Steve McConnell
- Infinite Monkeys - Wisdom of Hacker News
- Reflections on my CS PhD Application Process - Bodun Hu
- Lessons from my PhD - Austin Henley
- How To Do Great Work - Paul Graham
- Work Hard - Terence Tao
- Turd Sandwiches and Purpose In Life - AvE [video]
- The TANDBERG Way - Olve Maudal
- The Bitter Lesson
- The story of ispc (auto-vectorization is not a programming model)
Papers I've Liked
Interesting approach to testing a program for faults. To summarize: For a set of inputs 'I' to a program 'P', 'P' can be divided into executed and unexecuted code ("dead code"). Re-ordering/manipulation on the dead code should cause no variance to the outputs for the inputs. This technique "EMI" allows one to have many versions of a program (in this case, a compiler) and test for miscompilations.
Makes a case that solving the phase ordering problem of compiler passes is not the ultimate solution for generating optimal code. For example, a compiler will never convert bubble sort into quick sort, no matter the order in which optimization passes are run because it lacks a semantic understand of the problem. Urges a “global” view of the optimization problem.
Programming/Hacking
- Hacker How To - Eric Raymond
- Architecture of Open Source Projects - Various Authors
- Linus Torvalds' linked list argument for good taste, explained
- Programming rants hosted on Felix Winkleman's (of chicken scheme fame) Website
- Continuations for Curmudgeons
- Video Lan (VLC) Hacker's Guide
- Fast IO on Unixes by the way of 'yes' command
- Greppability is an underrated code metric
- Concise Electronics for Geeks
Blogs
- Josh Haberman
- John Regehr
- Jannis Harder
- Max Bernstein
- Evan Martin
- Nirav Patel (of Framework)
- Krister Walfridsson (compilers, PLs, OS)
- Matt Pharr (compilers, gpus, rendering)
- Riya Bisht
- Alex Bradbury (compilers, LLVM)
- Nelson Elhage (compilers, SWE)
- Nikita Popov (LLVM)
- Ramkumar Ramachandra (Compilers, Formal Methods)
- Fangrui Song (compilers, LLVM)
- Min-Yih Hsu (compilers, LLVM)
- Keith Tsui (compilers, LLVM)a
- Fabien Sanglard (graphics, computers)
Books
- PLAI - Shriram Krishnamurthy
- Write yourself a scheme in Haskell - Jonathan Tang
- OS: Three easy pieces
- OS Design - Xinu Approach
Other Compilations of Books or Links
- List of compiler books
- Resources for Amateur Compiler Writers
- Freely Available CS Textbooks
- Online Math Textbooks
- Operating Systems