Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    J

    James Golick

    jamesgolick.com · Personal blog · on HN since 2007

    James Golick was a software developer who wrote about Ruby on Rails, scaling, memory allocation and database design.

    Visit blogHN submissions
    ProgrammingWeb DevelopmentSystems & Performance
    What HN says

    HN links it for posts on MRI method caches, Rails design and service objects; commenters cite his scaling talks and refer to him as the late James Golick.

    Stats for nerds
    40HN people shared it
    37linked in comments
    1.1Kstory points
    May 2016last shared
    2010people per year2016

    Top posts on HN

    1. 1
      Reminder: "Broken gets fixed, but shitty lasts forever"
      1 person · 169 points · first shared 2011 · 34 comments on HN
    2. 2
      Memory Allocators 101
      1 person · 142 points · first shared 2013 · 21 comments on HN
    3. 3
      MRI's Method Caches
      2 people · 121 points · first shared 2013 · 15 comments on HN
    4. 4
      Why RubyGems Needs Loren Segal
      2 people · 90 points · first shared 2011 · 33 comments on HN
    5. 5
      How tcmalloc Works
      4 people · 85 points · first shared 2013 · 12 comments on HN
    6. 6
      Friendly: NoSQL With MySQL in Ruby
      1 person · 83 points · first shared 2009 · 17 comments on HN
    7. 7
      Crazy, Heretical, and Awesome: The Way I Write Rails Apps
      5 people · 73 points · first shared 2010 · 36 comments on HN
    8. 8
      The Cost of Ruby 1.9.3's GC::Profiler
      1 person · 70 points · first shared 2012 · 12 comments on HN
    9. 9
      Objectify: A Better Way to Build Rails Applications
      1 person · 65 points · first shared 2012 · 70 comments on HN
    10. 10
      Wearing Out My Delete Key
      1 person · 32 points · first shared 2008 · 12 comments on HN

    What HN people wrote when they linked it

    • tunesmithMay 2016

      Having little experience with Rails, it's the tone of that "Crazy, Heretical" article [1] that really strikes me. That tone where you're laboring to describe something that really truly does make sense when you're in the company of a bunch of people that just don't want to hear it.

      There's too much purism in those kinds of arguments, arguments that really are more about spectrums. It sounds like Rails is really great for learning the shallowest 40% of a wide variety of programming concerns, and a lot of web solutions for small clients aren't ever going to dip below that 40%. And as soon as you get beyond that 40%, asking questions like "but what if it doesn't make sense to do it that way?" and "what is that weird runtime bug that doesn't happen in my development environment?" and "why can't I refactor without being scared I'll introduce a weird regression bug?" then it's totally fine to be attracted to the idea of static typing, compilation, and libraries/frameworks that are more explicit.

      [1] http://jamesgolick.com/2010/3/14/crazy-heretical-and-awesome-the-way-i-write-rails-apps.html

    • douglasfshearerDec 2014

      Rails used as intended can be a real pain to upgrade, I agree.

      Recently I have been developing applications in the "thin-model, thin-controller, with a service layer and external API wrappers" style, as espoused by Gary Bernhardt [1] and others [2] [3] [4] [5]. I upgraded to the latest Rails this morning on one app, and apart from swapping the Money gem to use the git repository, until they have a new version out with compatible dependency, it went smoothly. All the specs and acceptance tests passing with no alteration required.

      [1] https://github.com/garybernhardt/sucks-rocks
      [2] http://jamesgolick.com/2010/3/14/crazy-heretical-and-awesome-the-way-i-write-rails-apps.html
      [3] http://objectsonrails.com/
      [4] http://solnic.eu/2011/08/01/making-activerecord-models-thin.html
      [5] https://www.youtube.com/watch?v=CGN4RFkhH2M

    • zmoazeniJun 2011

      You posted something similar at http://jamesgolick.com/2011/6/1/why-rubygems-needs-loren-segal.html#comment-217524976 and I've checked a few other posts of yours surrounding the context. I'm not sure why you're giving Loren grief.

      > If Loren can be part of that solution, I'd love to see him working for RubyGems rather than against it, for sure.

      I know you're trying to be a diplomatic bridge for the RubyGems team, however saying things like that just makes me shake my head.

      I appreciate James' appeal. As an outsider to the situation, I wonder why not just let Loren do his thing without comments like that? I'm also saying this with respect to Eric and Ryan's work.

    • basculeOct 2015

      Defining instance-specific behavior of any kind is catastrophic to method caching. JRuby has a hierarchical method cache so it can clear only what's needed, but MRI does not:

      http://jamesgolick.com/2013/4/14/mris-method-caches.html

      The late, great James Golick had a patch to add one once, but it never got merged upstream.

      If you care about performance even the tiniest bit at all whatsoever, please don't use the techniques discussed in the OP in production code or in your gems. It may make your memos 30% faster on a microbenchmark... while causing the rest of your program to run considerably slower.

    • CroakyDec 2014

      If you're a Rails developer, you probably have a config/initializers/backtrace_silencers.rb file in your app. Think of James the next time you see that file. He wrote the initial implementation:

      http://jamesgolick.com/2007/12/1/noisy-backtraces-got-you-down.html

      DHH later ported the work to Rails:

      https://github.com/rails/rails/commit/f42c77f927eb49b00e84d355e07de48723d03fcb.patch

      I knew James mostly online and a little in person from various programming conferences. He was smart, funny, and kind. He made a difference. He will be missed.

    • JonWoodMar 2012

      I'm starting to use service objects, which are responsible for coordinating things when multiple models are required to perform an operation, or complex business logic is involved.

      James Golick has a great blog post on that approach at http://jamesgolick.com/2010/3/14/crazy-heretical-and-awesome-the-way-i-write-rails-apps.html

    Related

    Unlimited Noveltyunlimitednovelty.com42 people

    Node.js has jumped the shark

    Unlimited Novelty
    Personal · last shared 2023
    Rob Pikecommandcenter.blogspot.com216 people

    Go: What we got right, what we got wrong

    Rob Pike
    Personal · last shared 2026
    Iron.io Blogblog.iron.io31 people

    How We Went from 30 Servers to 2: Go

    Iron.io Blog
    Company · last shared 2023
    Nate Berkopecspeedshop.co15 people

    Is Ruby Too Slow for Web-Scale?

    Nate Berkopec
    Personal · last shared 2025
    Jason Moironjmoiron.net36 people

    Go Performance Tales

    Jason Moiron
    Personal · last shared 2026
    Ryan Biggryanbigg.com35 people

    MacBook Pro Keyboard Drives Me Crazy

    Ryan Bigg
    Personal · last shared 2026
    Rails at Scalerailsatscale.com59 people

    Tiny JITs for a Faster FFI

    Rails at Scale
    Company · last shared 2026
    Charles Nutterblog.headius.com74 people

    My Thoughts on Oracle v Google

    Charles Nutter
    Personal · last shared 2025