Mary Rose Cook
maryrosecook.com · Personal blog · on HN since 2008
Mary Rose Cook, a programmer and educator, writes about Git internals, functional programming, a small Lisp interpreter and teaching.
What HN saysHN commenters repeatedly recommend her Git from the inside out essay as the piece that helped them understand Git.
43HN people shared it
20linked it in comments
44stories submitted
1.6Kstory points
5 months agolast shared
2008people per year2026
Most-shared posts
- 1Git from the inside out13 people · 60 points · first shared 2015 · 2 comments on HN
- 2A practical introduction to functional programming (2013)10 people · 564 points · first shared 2015 · 151 comments on HN
- 3Git in six hundred words5 people · 286 points · first shared 2015 · 108 comments on HN
- 4Little Lisp interpreter3 people · 163 points · first shared 2017 · 21 comments on HN
- 5Git in six hundred words3 people · 7 points · first shared 2015 · 1 comments on HN
- 6Dijkstra’s algorithm and the Fibonacci heap2 people · 246 points · first shared 2014 · 95 comments on HN
- 7Become an AI-Augmented Engineer2 people · 6 points · first shared 2025 · 1 comments on HN
- 8What I do when a student asks for help2 people · 4 points · first shared 2016 · discussion on HN
- 9Using encapsulated development to code on my phone2 people · 3 points · first shared 2026 · 1 comments on HN
- 10How I implemented 2D collision detection in Pistol Slut1 people · 90 points · first shared 2011 · 35 comments on HN
- 11Andro.js1 people · 49 points · first shared 2012 · 13 comments on HN
- 12My Node.js app, or, a simple explanation of asynchronicity and non-blocking IO1 people · 47 points · first shared 2010 · 13 comments on HN
- 13A practical introduction to functional programming1 people · 4 points · first shared 2013 · discussion on HN
- 14Hacking and transience1 people · 3 points · first shared 2010 · discussion on HN
- 15Machine.js, a library for making behaviour trees1 people · 3 points · first shared 2011 · discussion on HN
What HN people wrote when they linked it
leobakerhytch · 2020-12-18
You might like to try Write yourself a Git [0] (discussed here previously [1]). YMMV, but I find the best way to learn something deeply is to get hands on. Less of a chance of convincing yourself you understand something that you really don’t.
For less of a time commitment, Git from the inside out [2] is a really nice explanation of the internals, from initializing a repo and the files that creates in the .git directory, all the way to pulling from and pushing to remotes.
[0]: https://wyag.thb.lt/
[1]: https://news.ycombinator.com/item?id=19386141
[2]: https://maryrosecook.com/blog/post/git-from-the-inside-out
seleniumBubbles · 2019-03-14
This is great, thanks for sharing.
People in this thread might also appreciate this essay: https://maryrosecook.com/blog/post/git-in-six-hundred-words
And the more expanded version: https://maryrosecook.com/blog/post/git-from-the-inside-out
It really helped me comprehend Git enough to start understanding the more complex work flows.
maryrosecook · 2008-10-14
Excellent! Glad to hear the recommendations are good.
I find links between artists and recommend based upon that. These links include: being recommended by a human, being on the same record label, being mutual admirers, playing gigs together, being posted to the same mp3 blog, being on the same mixtapes and so on.
I wrote a post on my blog that gives a comprehensive account of how the recommendation system works: http://www.maryrosecook.com/post/show/130
And, yes, I know the UI is horrible.
asfarley · 2022-07-14
This really helped me:
https://maryrosecook.com/blog/post/git-from-the-inside-out
chmaynard · 2021-04-05
This article/video by Mary Rose Cook is helpful:
https://maryrosecook.com/blog/post/git-from-the-inside-out
JustSomeNobody · 2018-12-05
Here's another article on FP in Python for those who'd rather an alternate than go to kite.com.
https://maryrosecook.com/blog/post/a-practical-introduction-to-functio…
Edit: After scanning the kite.com article for a second time, I see the author actually links to Mary Rose Cook's article.
dvddgld · 2018-02-24
Now this is high quality content, thanks for sharing!
This caught my eye too https://maryrosecook.com/blog/post/little-lisp-interpreter
azeirah · 2017-05-28
I don't think you can do any better than to look at Mary Rose Cook's blog posts and heavily annotated Git implementation in JavaScript
https://maryrosecook.com/blog/post/git-from-the-inside-out
chubot · 2017-04-27
Related: http://gitlet.maryrosecook.com/
Gitlet is an implemention of Git in JavaScript.
https://maryrosecook.com/blog/post/git-from-the-inside-out
vs4vijay · 2017-01-02
Go for Clojure if you want to explore Functional Programming, Clojure is 21st Century Lisp.
Some good resources:
1. https://github.com/hemanth/functional-programming-jargon
2. https://maryrosecook.com/blog/post/a-practical-introduction-to-functio…
3. http://www.secretgeek.net/lisp_truth
4. http://www.buildyourownlisp.com/
5. OS Written is Lisp: https://github.com/froggey/Mezzano
6. For Clojure: https://changelog.com/posts/rich-hickeys-greatest-hits
7. http://yogthos.github.io/ClojureDistilled.html
8. SICP https://mitpress.mit.edu/sicp/
9. Lisp http://www.gigamonkeys.com/book/
scandox · 2016-10-27
There's also this from the same author: https://maryrosecook.com/blog/post/git-in-six-hundred-words
She's a really clear informative writer
kang · 2016-02-07
Yesterday I was reading this blogpost (http://maryrosecook.com/blog/post/scarface-prince-of-the-city-and-piet… so as soon as I clicked this link I thought no way can a computer learn to do what I read yesterday on its own!
I had read headlines about computer-generated images but had never seen them, yet I managed 9/10, anticipating that an artist's technique is not just relation between color etc. but a philosophy.
Edit: Also, it is not a turing test in true sense, since it's one sided. It would be turing test if I tell them what to draw & then it's tough to distinguish between what an artist & computer paints.
jonjacky · 2015-07-27
Mary Rose Cook: http://maryrosecook.com/blog/archive
Julia Evans: http://jvns.ca/blog/archives/ also http://jvns.ca/projects/
Most of their articles are about technical topics beyond the beginner level, but each has some articles about learning and teaching in their archives.
Tara Mahoney: https://medium.com/the-chronicles-learning-web-development-at/the-chro…
By a web designer self-taught in HTML/CSS, learning Ruby/Rails at a coding bootcamp.
mattchew · 2015-07-24
Don't think this is the one you're thinking of, but I do like Mary Rose Cook's intro to fp using Python:
http://maryrosecook.com/blog/post/a-practical-introduction-to-function…
julian25 · 2015-06-28
Seems like some images are broken on that link...here is an alternate version: http://maryrosecook.com/blog/post/git-from-the-inside-out
bdevine · 2015-01-23
Procrastes · 2015-01-22
I really liked your "Git in 600 words.[1]" I think it will help clear up some confusion for some of my VCS wary colleagues.
1. http://maryrosecook.com/blog/post/git-in-six-hundred-words
graue · 2013-03-15
This reminds me a bit of Mary Rose Cook's story, "When I died": http://maryrosecook.com/post/when-i-died-2
logicallee · 2017-04-08
Here is an explanation, it's the top when when I googled "easy explanation of functional programming."
https://maryrosecook.com/blog/post/a-practical-introduction-to-functio…
Please read it. Do you know functional programming now? Do you get it? Do you get the point of it? Did you "grok" the whole reason that the functional paradigm exists?
In my opinion that article fails to meet the test. In its very first paragraph it calls out some negative approaches that assume too much or are too hard; in the second paragraph it does the same thing.
>The assertion that no one is able to explain functional programming is rather extreme and doesn't pass the sniff test.
It's certainly easy to falsify my claim. You can do so with a single link.
So if anyone is able to explain functional program in a way that makes it clear and easy, and really lets people grok its purpose and approach, where is that explanation? Where are the benefits that people reap by reading it?
The fact is, the resources I have reviewed fail that metric. The people who teach it aren't actually able to explain it easily and well. You suggest that "perhaps [I] mean to say that it is very difficult to explain" -- maybe so, but that is still a reason why it is not true that if someone understands something, then they can also explain it. Here we have a clear example where this is not the case. There are also many more examples in the arts and sciences. Not everything can be explained. …
agumonkey · 2015-07-24
Just in case, a few years back I've seen an article on functional programming in python. Mostly arithmetic but the patterns were very pretty (think Euclid algorithm generalized). I never managed to find it again. If that rings a bell to someone, I'll be forever virtually indebted.
- http://www.ibm.com/developerworks/library/l-prog/
- http://kachayev.github.io/talks/uapycon2012/#/
- http://anandology.com/python-practice-book/functional-programming.html
- http://maryrosecook.com/blog/post/a-practical-introduction-to-function…
- http://rosettacode.org/wiki/Numerical_integration#Python