E
Extracheese
blog.extracheese.org · Personal blog · on HN since 2007
Extracheese is Gary Bernhardt's blog on Git, Vim, Unix tooling, testing, and comparisons of Python and Ruby.
What HN saysCommenters cite it for the 'Rebase Is Safe' post, the TDD limits essay, and screencasts on Vim refactoring and the string calculator kata.
29HN people shared it
13linked it in comments
21stories submitted
311story points
11 years agolast shared
2007people per year2026
Most-shared posts
- 1Custom Vim Refactorings (screencast)5 people · 29 points · first shared 2010 · 7 comments on HN
- 2The Tar Pipe (2010)5 people · 20 points · first shared 2010 · 7 comments on HN
- 3Why I Switched to Git From Mercurial4 people · 176 points · first shared 2010 · 100 comments on HN
- 4The Limits of TDD3 people · 3 points · first shared 2009 · discussion on HN
- 5Rebase Is Safe2 people · 24 points · first shared 2010 · 27 comments on HN
- 6Python vs. Ruby: A Battle to the Death2 people · 2 points · first shared 2010 · discussion on HN
- 7A raw view into my unix hackery2 people · first shared 2010
- 8Python to Shell to Ruby1 people · 19 points · first shared 2010 · 12 comments on HN
- 9A Brief History of BitBacker, A Startup1 people · 17 points · first shared 2009 · 1 comments on HN
- 10How I Started TDD1 people · 8 points · first shared 2009 · 7 comments on HN
- 11Python vs. Ruby: A Battle to The Death1 people · 3 points · first shared 2010 · 4 comments on HN
- 12Refactoring A Cyclomatic Complexity Script1 people · 3 points · first shared 2009 · discussion on HN
- 13On Abstraction1 people · 3 points · first shared 2009 · discussion on HN
- 14Globals and cargo culting1 people · 2 points · first shared 2014 · discussion on HN
- 15My Personal Failures in Test Isolation1 people · 1 points · first shared 2009 · discussion on HN
What HN people wrote when they linked it
wickedshimmy · 2016-04-20
Something like
(set -e; git rev-list --reverse upstream.. | while read r; do git checkout -q $r && make check; done)
(Aped from the very excellent http://blog.extracheese.org/2010/12/rebase-is-safe.html)
ewood · 2012-11-30
I worked at a company where we migrated from CVS to Mercurial in 2009 and then to Git a year later. I would say that the general move to distributed source control away from CVS/SVN style centralised systems picked up steam from 09 onwards, and for us Mercurial won over Git initially because it had better Windows support.
While I loved Mercurial's more simple command syntax, moving to Git was a no-brainer after we'd been bitten by Mercurial's poor handling of large binary files and Msysgit had improved the Windows support situation. This blog post (http://blog.extracheese.org/2010/05/why-i-switched-to-git-from-mercuri… from 2010 would seem to suggest that others had a similar experience.
exogen · 2010-12-12
This may not be real/actual work enough for you (it's still an example), and it's not exactly the same as this BDD workflow, but this brief screencast still may be of some interest to some folks: http://blog.extracheese.org/2010/01/string-calculator-kata-in-python.h…
(I recommend embiggening the video player.)
garybernhardt · 2009-11-10
The thing preventing infinite implementation is a combination of (1) the rules of simple design and (2) the definition of "simple". I write about those in the follow-up to this post: http://blog.extracheese.org/2009/11/the_limits_of_tdd.html
I've said this several times across several forums since publishing this post, but my goal was to write a very brief example of "doing the simplest thing". It's not about doing the entire TDD process on a real-life software problem, because that post would be so long that no one would read it! :) I don't think TDD can't be adequately demystified in any short example.
dsrguru · 2013-03-28
There's a lot more that the language of Vim can do than what's in this article. You should check out this screencast on vi/vim's command/text equivalence (analogous to LISP's code/data equivalence):
http://blog.extracheese.org/2010/11/screencast-custom-vim-refactorings…
Also, this thread's article doesn't go into keys like ftFT;,#* or the incredibly useful Vim-specific feature called text objects. This gives a good introduction to a lot of that: http://www.viemu.com/a-why-vi-vim.html
mcantelon · 2012-11-30
A blog post from 2010:
http://blog.extracheese.org/2010/05/why-i-switched-to-git-from-mercuri…
Concludes that Git handles larger amounts of data more efficiently and stores revision info in a safer/clearer way. Git might be more arcane in terms of it's command syntax, but gets the job done.
mun2mun · 2012-07-12
Just watch the video of the page http://blog.extracheese.org/2010/11/screencast-custom-vim-refactorings… to get the gist of "entire blocks of code with the flick of a finger".
binaryjohn · 2011-08-30
Gary Bernhardt,
just a taste:
http://blog.extracheese.org/2010/11/screencast-custom-vim-refactorings…
for the full monty:
http://vimeo.com/7642937
mixu · 2011-01-03
Related:
http://blog.extracheese.org/2010/02/python-vs-ruby-a-battle-to-the-dea… (blog post by the author)
http://blog.peepcode.com/tutorials/2010/what-pythonistas-think-of-ruby (Blog post about the video referred to by the author)
http://news.ycombinator.com/item?id=1097723 (HN discussion about that blog post)
henning · 2011-01-03
Gary Bernhardt did a screencast showing an example of this kind of Unix hacking: http://blog.extracheese.org/2010/04/a-raw-view-into-my-unix-hackery.ht… He always impresses me with how quickly he moves from one thing to the next. It's a beautiful thing to watch, to me.
babeKnuth · 2010-12-30
hi berntb,
re: US foreign policy, israel, bangladesh, etc.
see the vids i posted elsewhere in this thread here
http://news.ycombinator.com/item?id=2051777
you're right about all your comments and questions
the main issue of confusion i find is that the conversation is all about "chomsky" or "chomsky's hidden intentions", rather than the actual facts/policies
it's like wikileaks/assange deja-vu all over again....
full disclosure: i use emacs (with vimpulse). and i also try to use vim whenever possible as well. and if you want your mind blown by vim:
http://blog.extracheese.org/2010/11/screencast-custom-vim-refactorings…
akkartik · 2010-07-01
:) Yes I can relate. I started saving my shell logs in 2006 and one of my most commonly used commands is cmd_grep.
I'm now watching http://blog.extracheese.org/2010/04/a-raw-view-into-my-unix-hackery.ht… I've ended up constructing my own vocabulary (column, freq, etc.) for most common uses of perl/awk in the commandline. http://akkartik.name/bash.html
rdela · 2010-11-02
as I point out in the other HM #6 thread:
http://news.ycombinator.com/item?id=1856078
since the debate PDF is free to download, Cheng Soon didn't make a clickable table of contents for it on the site, but here are links to original articles:
Programming Languages?
http://postabon.posterous.com/why-i-chose-common-lisp-over-python-ruby…
http://thecleancoder.blogspot.com/2010/08/why-clojure.html
Key Decisions Google Founders Made?
http://www.quora.com/What-were-the-4-or-5-key-decisions-that-Larry-Pag…
http://news.ycombinator.com/item?id=1502765
New York or San Francisco?
http://adgrok.com/new-york-will-always-be-a-tech-backwater-i-dont-care…
http://kellysutton.tumblr.com/post/901431677/choosing-new-york-over-sa…
Git or Mercurial?
http://reprog.wordpress.com/2010/05/12/still-hatin-on-git-now-with-add…
http://yehudakatz.com/2010/05/13/common-git-workflows/
http://blog.extracheese.org/2010/05/why-i-switched-to-git-from-mercuri…