Philip Guo
people.csail.mit.edu · Personal blog · on HN since 2007
Philip Guo's page at MIT CSAIL hosts research papers, essays, and old mailing-list posts on programming languages, vision, and AI.
What HN saysHN links it for the hosted papers and posts, such as the closures-and-objects note, and commenters point to its research projects as worth a look.
784HN people shared it
581linked it in comments
313stories submitted
7.9Kstory points
4 months agolast shared
2007people per year2026
Most-shared posts
- 1“A closure is a poor man’s object; an object is a poor man’s closure” (2003)41 people · 604 points · first shared 2007 · 227 comments on HN
- 2Eulerian Video Magnification for Revealing Subtle Changes in the World35 people · 567 points · first shared 2012 · 129 comments on HN
- 3The Visual Microphone: Passive Recovery of Sound from Video19 people · 141 points · first shared 2014 · 38 comments on HN
- 4S-Expressions (1997)13 people · 130 points · first shared 2012 · 45 comments on HN
- 5Msg0404512 people · first shared 2008
- 6Wi-Vi: See Through Walls with Wi-Fi Signals11 people · 71 points · first shared 2013 · 22 comments on HN
- 7LCS35 Time Capsule Crypto-Puzzle (1999)9 people · 12 points · first shared 2012 · 2 comments on HN
- 8Rodney Brooks: Intelligence Without Representation (1987) [pdf]9 people · 8 points · first shared 2013 · discussion on HN
- 9Gilad algorand eprint.pdf9 people · first shared 2017
- 10Elephants Don't Play Chess [pdf]8 people · 3 points · first shared 2007 · 1 comments on HN
- 11RSW96.pdf8 people · first shared 2013
- 12D-Expressions: Lisp power, Dylan style [pdf]7 people · 173 points · first shared 2008 · 89 comments on HN
- 13Eulerian Video Magnification7 people · 116 points · first shared 2018 · 42 comments on HN
- 14Chaffing and Winnowing: Confidentiality without Encryption (1998)7 people · 105 points · first shared 2009 · 47 comments on HN
- 15What’s Wrong with Git? A Conceptual Design Analysis6 people · 70 points · first shared 2013 · 74 comments on HN
What HN people wrote when they linked it
themafia · 2026-06-19
The results are interesting but the whole project is worth a look.
https://people.csail.mit.edu/mengjia/data/2026.SP.fractal.pdf
aseipp · 2026-06-06
This paper is great and I also really like one of its references [29] as it goes into some more subtle parts of scalable interfaces, including fork. It's a gem IMO: The Scalable Commutativity Rule: Designing Scalable Software for Multicore Processors https://people.csail.mit.edu/nickolai/papers/clements-sc.pdf
barishnamazov · 2025-11-10
I recommend checking out concept design [0] from Daniel Jackson [1]. It provides a framework to enforce modularity while building meaningfully designed software.
I have done a bit of work implementing a prototype framework for coding concepts using TypeScript [2], and it has worked beautifully for the Software Design class at MIT Daniel teaches. I think the newest iteration of class this semester uses a different approach to code concepts, but it's still a research space.
[0] https://essenceofsoftware.com/tutorials/
[1] https://people.csail.mit.edu/dnj/
[2] https://61040-fa24.github.io/pages/concept-implementations.html
kragen · 2025-11-05
I originally posted it to a mailing list where we were discussing the issues: https://people.csail.mit.edu/gregs/ll1-discuss-archive-html/msg01676.h…
He posted it on his website with my approval, presumably because he thought it was a different perspective worth reading.
bitwize · 2025-10-30
Implementing objects as closures interpreting messages passed as parameters is exactly how many Scheme programmers (myself included) wrote "babby's first object system" in Scheme. Such an object system is also presented in SICP.
Finally we have the following Scheme Koan:
https://people.csail.mit.edu/gregs/ll1-discuss-archive-html/msg03277.h…
snthpy · 2025-10-02
Not sure if this is what you had in mind but here are the links to the two papers that I was referencing.
[1] covers the first 40 years of databases. [2] fills in the gap of the last 20 years and gives their thoughts on the future.
My apologies, the first one was actually Stonebraker & Hellerstein and didn't involve Pavlo. They're both excellent papers though for anyone working with data.
Stonebraker, for those who don't know, is the creator of Postgres, a database you might have heard of.
1: Stonebraker & Hellerstein, "What Goes Around Comes Around", 2005, https://people.csail.mit.edu/tdanford/6830papers/stonebraker-what-goes…
2: Stonebraker & Pavlo, "What Goes Around Comes Around... And Around...", 2024, https://db.cs.cmu.edu/papers/2024/whatgoesaround-sigmodrec2024.pdf
whilenot-dev · 2025-07-05
The Leap Motion Controller came out in 2014 already (11 years ago, wow!) and isn't very expensive. The SDK was lacking in the beginning if I recall correctly, but a webcam seems to be inferior. Technology isn't the limiting factor for a quite some time now. I'm sure many projects existed to translate gestures to MIDI, some less polished, some more polished[0][1].
Reminds me... I even used two PlayStation Eyes (EUR 5 each) with OpenCV and the EVM algorithm[2] on a ThinkPad X230 for a dance performance piece back in 2015. Movements rather than gestures and OSC instead of MIDI, but it worked great!
[0]: https://midipaw.com/
[1]: https://uwyn.com/geco/
[2]: https://people.csail.mit.edu/mrub/evm/
transpute · 2024-07-05
> It took three years to finish, but our follow-up to the 2006 "What Goes Around Comes Around" is finally out! Stonebraker and I examine the last 20 years in databases and discuss why relational databases + SQL will continue to remain on top. The catalyst for the paper was this 2021 HackerNews post about somebody wondering why people use relational databases instead of graph databases, https://news.ycombinator.com/item?id=28736405.
2024 paper: https://db.cs.cmu.edu/papers/2024/whatgoesaround-sigmodrec2024.pdf
2006 paper: https://people.csail.mit.edu/tdanford/6830papers/stonebraker-what-goes…
ma2t · 2024-06-22
"significantly lower level affair, on par of the other Star-something languages for the CM"
I'm not sure what this means. C* and CM Fortran weren't particularly low-level, unless C or Fortran 90 are "significantly low-level". For low-level fun, you'd drop to Paris (or to CMIS for "breathtakingly heart-stoppingly low-level").
For the curious, a great archive of documentation for stuff that actually shipped is here: https://people.csail.mit.edu/bradley/cm5docs/
dumbo-octopus · 2023-11-30
The smallest GLSL program that generates content generally regarded as NSFW.
It's among the more interesting of concepts in computer science: https://en.wikipedia.org/wiki/Kolmogorov_complexity
Though it probably greatly benefits from a good lecturer if you do not have the background... https://people.csail.mit.edu/rrw/6.045-2020/
data_maan · 2023-05-06
I get this drift!
And I think a bit of cheating is healthy.
The late Mihai Patrascu (brilliant CS researcher for those who don't know), outspoken as he was, said data faking skills were essential to keeping his sanity in some courses. [1]
Cheating just means you're not satisfying some random persons bureaucratic needs of assigning a number to your performance. But such a one-dimensional measure cannot really capture anyone's potential.
For some reason few people ponder why people cheat and if the reasons perhaps are valid. Go to that party, if it helps you develop yourself!
[1] https://people.csail.mit.edu/mip/acad.html
whymauri · 2022-10-12
Virginia Williams teaches an excellent course:
https://people.csail.mit.edu/virgi/6.890/
Lecture notes are open.
Rediscover · 2022-08-12
This reminds me of Rodney Brooks' (et al) work on Subsumption architecture, which I find quite enjoyable.
A subset of the AI group at MIT and also some non-MIT people (eg, R.Beer, L.Steels) during the 1980's produced many [similar] papers that I really enjoyed.
Really, ALL of the autonomous mobile robot people working with subsumption were pretty fantastic.
(Also, check out the Roomba vacuum lineage)
http://people.csail.mit.edu/brooks/papers/ -- "Elephants..." is a simple one.
Edit: (adding) If anyone in the Seattle area wants to chat about this, I can talk your ear off. I'm up for coffee/beers.
marzoeva · 2022-06-16
Funnily enough, I wrote a paper on this topic when I was in grad school. It's not on our short-term roadmap at ReadySet, but this idea is certainly compatible with the underlying dataflow model. I'd love to hear more about what you had in mind here, shoot me an email at [email protected]
https://people.csail.mit.edu/malte/pub/papers/2019-hotos-multiversedb.…
morninglight · 2022-06-11
The late Patrick Henry Winston stopped eating at his desk in an effort to lose weight. As part of his "General Patton Diet", he subsequently lost 60 lbs in 100 days.
Before: http://people.csail.mit.edu/phw/pensees/welcomethen.jpg
After: https://people.csail.mit.edu/phw/pensees/welcomenow.jpg
"I learned to eat and drink veeeeeery slowly at the table meant for eating, not in front of my computer screen. I used to cram in a day's worth of calories in a few minutes, before my body had any idea I was eating anything, which experts say takes 20 minutes."
https://people.csail.mit.edu/phw/index.html
.
skobovm · 2022-04-19
There’s actually a pretty interesting approach in which: voters can see that their vote counted, everyone can tally anonymous votes, and it is resistant to DoS https://people.csail.mit.edu/rivest/pubs/RR14b.pdf
Of course, the real problem would be explaining to the general population that this works. Great in theory, but will never pan out
JonChesterfield · 2022-03-25
Corresponding paper is probably http://people.csail.mit.edu/kostas/papers/CADE1996.pdf. Thanks for the name drop, looks great
guyomes · 2022-03-09
For further reading, this list [0] of resources on how to write scientific articles includes notably this excellent set of slides [1]. The author notably presents full fledge examples of rewritten sentences and paragraphs that are enlightening.
[0]: https://people.csail.mit.edu/fredo/student.html
[1]: http://www.principiae.be/pdfs/UGent-X-003-slideshow.pdf
dmurray · 2021-11-24
Yes, by induction. Suppose the total number of squares is 2n. Remove any domino that doesn't disconnect the board, and reduce to the problem for 2n - 2.
Alternative proof: no, by example. Consider the shape made up by the X's in
XXX
.X.
.X.
XXX
(All maths proofs should be presented alongside a proof of the opposite result, to allow the reader to judge which one is likely to have slipped something past you. My favourite presentation following this rule is Mental Poker [0] by the authors of RSA.)
[0] https://people.csail.mit.edu/rivest/pubs/SRA81.pdf
rauhl · 2021-04-24
For your purposes, I think that your choice of PEM is probably the best. As you note, it is logically equivalent to the s-expression (it is typed, not a bag of bytes), and it has the advantage of being a well-known format.
If æsthetic concerns are a higher priority than interoperability (say, for a personal hobby project), then I do recommend folks adopt the format I gave an example of. It has some history behind it, dating back to the 1997–1999 timeframe and the IETF’s SPKI Working Group (e.g. https://theworld.com/~cme/examples.txt) which resulted in RFCs 2692 & 2693, as well as some great drafts (https://people.csail.mit.edu/rivest/Sexp.txt & https://theworld.com/~cme/spki.txt) which never progressed because Reasons™.
I still think that the SPKI project got PKI right. Oh well, what might have been!
Twisol · 2021-02-01
If GHC intrigues you, I recommend looking up the CC class of languages as well. [1] The change from get/set to ask/tell has a surprisingly significant impact on how one thinks about shared state and communication between concurrent parts of the program, and the logical basis is still pleasingly declarative.
[1] https://people.csail.mit.edu/rinard/paper/popl91.pdf
cambalache · 2020-12-02
Stanford is a treasure trove of advanced courses in ML/AI.
Reddit has also this pretty great list of advanced courses in ML: https://www.reddit.com/r/MachineLearning/comments/fdw0ax/d_advanced_co…
There is this from MIT (Graph Analysis) https://people.csail.mit.edu/jshun/6886-s18/
I like the distributed systems class too (The assignments are in Golang) : https://pdos.csail.mit.edu/6.824/
My "loose" definition of advanced: "If you follow the class and do the work you will be able to implement something not trivial"
ericjang · 2020-10-21
The report, while a fun thought exercise for any aspiring academic, is not a novel insight, and is obviously untrue for most definitions of market efficiency.
If we are going to play the academic one-upmanship game, a more general result that "best" or "multiple" N-player Nash Equilibria for N > 2 is already NP-hard. The implication of an efficient market would be if every player had a polynomial-time algorithm to solve the NP-hard problem, ergo P=NP.
[1] https://people.csail.mit.edu/costis/simplified.pdf
[2] https://www.quantamagazine.org/in-game-theory-no-clear-path-to-equilib…
[3] https://arxiv.org/abs/1104.3760#:~:text=Unlike%20general%20Nash%20equi…
throw0101a · 2020-09-26
Guy Steele,[1] Java spec co-author, LL1 Mailing list (2003-08-21):
> And you're right: we were not out to win over the Lisp programmers; we were after the C++ programmers. We managed to drag a lot of them about halfway to Lisp. Aren't you happy?
* https://people.csail.mit.edu/gregs/ll1-discuss-archive-html/msg04045.h…
A follow-up noted:
> Yes! Java broke C++'s monopoly, and now C# is breaking Java's, and this sequence of broken monopolies dispelled the belief that have to use "the standard language", and now I code in Python for a living.
[1] https://en.wikipedia.org/wiki/Guy_L._Steele_Jr%2e
Steele is/was well-acquainted with the bad parts of Java—he helped design Scheme after all. But in the alternative timeline where Java was not created, Java (and other machine-independent runtimes) would have not have become popular, and everyone would still be statically compiling C++.
saagarjha · 2020-05-28
> I'll take some koanic license and combine Norman Adams (alleged source of "objects are a poor man's closures") and Christian Queinnec ("closures are a poor man's objects") into a single great Zen language master named Qc Na.
(From https://people.csail.mit.edu/gregs/ll1-discuss-archive-html/msg03277.h…
arjunnarayan · 2020-05-12
This is not the original Differential Privacy paper, this is an invited talk (I agree with you that it remains a great read). However, the original paper is "Calibrating Noise to Sensitivity in Private Data Analysis"[1] with four co-authors: Cynthia Dwork, Frank McSherry, Kobbi Nissim, and Adam Smith.
[1]: https://people.csail.mit.edu/asmith/PS/sensitivity-tcc-final.pdf
throwlaplace · 2020-01-03
>As a practical example, figuring out where a given pixel moves from one video frame to the next one, when working on real-world videos, the best known algorithms get about 50% of the pixels correct. With clever filtering, you can maybe bump that to 60 or 70%, but in any case you will be left with a 30%+ error rate.
what do you mean by this? optical flow isn't really a learning problem? it's a classical problem with very good classical algorithms
https://www.mia.uni-saarland.de/Publications/brox-eccv04-of.pdf
https://people.csail.mit.edu/celiu/OpticalFlow/
https://github.com/pathak22/pyflow
gwern · 2019-12-25
Another one you might like is the Amazonism 'disagree and commit': https://www.amazon.com/p/feature/z6o9g6sysxur57t
I ( https://www.gwern.net/Timing#try-try-again-but-less-less ) see it as a kind of bandit as well, but specifically, Thompson sampling, because you can interpret groups of people with strong but inconsistent beliefs individually as collectively implementing a Bayesian distribution, and then individuals going off and following what seems to then like the most profitable opportunity is equivalent to Thompson sampling: https://people.csail.mit.edu/pkrafft/papers/krafft-thesis-final.pdf
slumos · 2019-12-21
I really recommend the paper referenced and the whole idea of calm technology. I was inspired enough by LavaPS and the paper that I implemented a similar model for a Program Visualization course project back in 2000 or so, and brought the idea back when working on monitoring for my first web ops job in 2008!
The link is dead of course, but it was easy to find another copy (https://people.csail.mit.edu/rudolph/Teaching/weiser.pdf), and in searching I learned that there was even an O’Reilly book published in 2015!
high_derivative · 2019-08-12
For the topic of optimization, I recommend:
https://people.csail.mit.edu/jsolomon/share/book/numerical_book.pdf
It will give you a decent introduction to optimization methods underpinning deep learning. Deep learning theory is optimization theory.
There are youtube lectures as well and Justin is a great lecturer.
I personally would not recommend the Goodfellow book. It's not a good book for newcomers, at best it's a quick reminder of how some things work on a non-rigorous level.