Ben McCormick

benmccormick.org · Personal blog · on HN since 2012

Ben McCormick, a web developer, writes about JavaScript, Vim, Backbone, Jest, and developer tooling.

What HN saysHN links it for JavaScript and Vim tutorials and his Jest snapshot testing review, which a Facebook engineer recommended; one commenter found his Vim series shallow.
27HN people shared it
7linked it in comments
121stories submitted
629story points
1 year agolast shared
2012people per year2026

Most-shared posts

  1. 1
    Ten Things a Serious JavaScript Developer Should Learn
    3 people · 41 points · first shared 2017 · 4 comments on HN
  2. 2
  3. 3
    The Sad State of the Backbone Ecosystem
    2 people · 126 points · first shared 2016 · 62 comments on HN
  4. 4
    Learning Vim in 2014
    2 people · 18 points · first shared 2014 · 2 comments on HN
  5. 5
    The Most Interesting Atom Packages I've Found So Far
    2 people · 12 points · first shared 2016 · 2 comments on HN
  6. 6
    Underscore vs. lodash
    2 people · 10 points · first shared 2014 · 2 comments on HN
  7. 7
    Simple Burnout Triage
    2 people · 8 points · first shared 2020 · discussion on HN
  8. 8
    JavaScript “Stale Practices”
    2 people · 6 points · first shared 2018 · discussion on HN
  9. 9
  10. 10
  11. 11
    ES6: The Bad Parts
    2 people · 4 points · first shared 2018 · discussion on HN
  12. 12
    Lessons Backbone Developers Can Learn from React
    2 people · 4 points · first shared 2015 · discussion on HN
  13. 13
    Why Backbone.js and ES6 Classes Don't Mix
    2 people · 3 points · first shared 2015 · discussion on HN
  14. 14
    Giving Context to Best Practices
    2 people · 3 points · first shared 2017 · discussion on HN
  15. 15
    The New Hello World
    2 people · 3 points · first shared 2018 · discussion on HN

What HN people wrote when they linked it

lkbm · 2023-06-14
"Vim as a Language"[0] is a similar article I benefited greatly from back in the day. One additional tip once you start using things like d8k: Try "set relativenumber" in your vimrc. It makes all except the current line display offsets rather than absolute line numbers. Initially, this seems silly, but you quickly realize that if you're at line 1668 and need to delete up to line 1619, it's much more helpful to see line 1619 listed as "line 49" rather than "1619" and having to do the mental math to figure out that the command you're looking for is "d49k". [0] https://benmccormick.org/2014/07/02/062700.html
cpojer · 2016-12-08
Hi! I work on JavaScript Tools at FB. There is a fantastic post by Ben McCormick about the up and downsides of this system: http://benmccormick.org/2016/09/19/testing-with-jest-snapshots-first-i… Snapshots aren't the only feature of Jest; it is simply one assertion in our assertion library. There is a ton of other stuff in the framework that makes setting up a test environment and writing tests easier. My philosophy for building a test framework is to build a good feature set to help you out in any situation but the user should be in total control. This allows you to find the best way to test your code which I've found to be extremely subjective. The choice of test framework and test methodology seems almost religious at times and I've deliberately tried to stay away from these conversations.
ben336 · 2016-03-09
Several made this point, that Backbone is stable, not abandoned. I agree! I said so in the post. My concern is with the libraries around it. I've elaborated in this followup post: http://benmccormick.org/2016/03/09/stability-vs-decline/
ggreer · 2015-02-20
If you find yourself annoyed by some aspects of Underscore, you might want to check out Lodash[1]. Lodash's API is a superset of Underscore, though you can create custom builds with only the parts you need. In general, Lodash performs better and has fewer bugs than Underscore. Unlike Underscore, Lodash has 100% test coverage. Also, Lodash has some handy things like _.cloneDeep(), and semantic versioning. That means your package.json can have "lodash": "3.x" in its dependencies without worrying about breakage. For a more in-depth discussion of the differences between Lodash and Underscore, I recommend Ben McCormick's Underscore vs Lo-Dash[2]. 1. https://lodash.com/ 2. http://benmccormick.org/2014/11/12/underscore-vs-lodash/
johncoltrane · 2014-07-21
Your articles are entitled "Learning Vim" so one could expect a little bit more depth and actual "teaching". And not promoting crap like Janus… installing that shit is the opposite of learning. It's like paying someone to do your homework for you. http://benmccormick.org/2014/07/07/learning-vim-in-2014-working-with-f… was ridiculous. In "Buffer Management", you don't talk about :find or command-line completion or the wildmenu or the possibility to use mappings or the fact that one can use buffer names to navigate or tag-based navigation. And under "Plugins", the following sentence (and the mandatory list of plugins) is not really helping you to get your point across: The good news is that Vim has solutions. They're just not baked into the Vim core. Seriously, don't do that under a "learning vim" umbrella. That series should be called "Get Vim to look like all those screenshots without worrying about learning to use it".
Veedrac · 2018-01-11
Emacs doesn't offer a fraction of the graphical flexibility that Atom does. How would you do any of the below? https://benmccormick.org/2016/01/11/the-most-interesting-atom-packages…
woogle · 2014-07-02
Thanks for the book I'll take a look on it, it seems interesting. For vimtutor it's introduced in the first part http://benmccormick.org/2014/06/30/learning-vim-in-2014-the-basics/ The most disturbing thing when learning vim is the fact that shortcuts actually "means" something rather than being near your fingers. Like the old flashioned way to use shortcuts in RTS games vs grid modes.

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close