Richard Schneeman

schneems.com · Personal blog · on HN since 2011

Richard Schneeman, a Ruby and Rails engineer formerly at Heroku, writes about Puma, Rails internals, performance and developer life.

What HN saysCommenters cite his posts on Rails, tutorials and an online master's program, though one says his recent headlines have become clickbaity.
80HN people shared it
16linked it in comments
124stories submitted
915story points
8 months agolast shared
2011people per year2026

Most-shared posts

  1. 1
    The room where it happens: How Rails gets made
    5 people · 28 points · first shared 2021 · 1 comments on HN
  2. 2
    Puma 4: New I/O 4 Your Server
    5 people · 11 points · first shared 2019 · discussion on HN
  3. 3
    How I Reduced My DB Server Load by 80%
    4 people · 209 points · first shared 2017 · 110 comments on HN
  4. 4
    My Red Hot ADHD Programming 'Affliction'
    4 people · 21 points · first shared 2024 · 2 comments on HN
  5. 5
    I know how to code, I can code in anything
    4 people · 17 points · first shared 2017 · 1 comments on HN
  6. 6
    A free 10 week rails course
    4 people · 9 points · first shared 2012 · discussion on HN
  7. 7
  8. 8
    Sharp Tools
    4 people · 5 points · first shared 2016 · discussion on HN
  9. 9
    Saving Sprockets
    4 people · 4 points · first shared 2016 · discussion on HN
  10. 10
    Rubyist makes some Python code 5x Faster
    3 people · 25 points · first shared 2017 · 10 comments on HN
  11. 11
    Don't McBlock Me
    3 people · 8 points · first shared 2025 · 5 comments on HN
  12. 12
    WTF is a Thread
    3 people · 7 points · first shared 2017 · 1 comments on HN
  13. 13
    Disallow code usage with a custom `clippy.toml`
    3 people · 6 points · first shared 2025 · discussion on HN
  14. 14
    OMG OMSCS: Is an Online Masters Right for You?
    3 people · 2 points · first shared 2017 · discussion on HN
  15. 15

What HN people wrote when they linked it

schneems · 2024-12-22
Thanks for the fast reply! For some background: Rundoc is a tool for writing tutorials such that the author is guaranteed the outcome is valid (if a command fails, the tutorial fails) and for helping users see the exact output they would expect (instead of a static output). The tool has website integration that allows you to take screenshots and navigate a webpage. Recently I wrote this tutorial https://schneems.com/2023/06/14/its-dangerous-to-go-alone-pub-mod-use-… which makes heavy use of vscode extension shortcuts and hover over tips. I would love to be able to keep that tutorial up to date by scripting the tooltips to make sure the options don’t change and the suggested commands like CMD+. Continue to work.
mijoharas · 2024-06-03
The other answer is correct I believe, but I think the most common recommendation I've seen for rails boils down to "Use Timeout, and then kill and restart the process" (ref: [0], [1]), which obviously doesn't feel great for performance when a timeout in one thread can cause all other threads to need to be killed. [0] https://www.schneems.com/2017/02/21/the-oldest-bug-in-ruby-why-racktim… [1] https://github.com/zombocom/rack-timeout (c.f. term_on_timeout)
speps · 2017-11-03
https://www.schneems.com/ Recently his headlines have become very clickbaity... if that's any inspiration, particularly the Python one...
CoachRufus87 · 2017-08-15
Richard Schneeman (an engineer at Heroku) wrote a great blog post on this very topic; worth the read: https://schneems.com/2017/07/26/omscs-omg-is-an-online-masters-right-f…
fokinsean · 2017-08-15
I've been entertaining the idea of going through this course as well. I graduated 2 years ago, BS in CS, and part of me misses being in school. Plus my employer has a decent tuition reimbursement program. Would anyone who works full time and gone through this program care to share their thoughts? Edit: Just found this great article from another comment https://schneems.com/2017/07/26/omscs-omg-is-an-online-masters-right-f…
Manishearth · 2017-07-17
Reminds me of this excellent blog post about sharp tools https://schneems.com/2016/08/16/sharp-tools.html
alipitch · 2022-04-09
Slightly off-topic digression: Would WAS compilation help solve the ruby / rails timeout problem? https://devcenter.heroku.com/articles/h12-request-timeout-in-ruby-mri > H12 - Request Timeout in Ruby (MRI) > Rack-timeout limitations > Due to the design of the Ruby programming language’s Thread#raise API, which timing out code depends on, there is a known bug with rack-timeout that can put your app into a bad state if rack-timeout fires too frequently. (Other related URLs) https://github.com/ankane/the-ultimate-guide-to-ruby-timeouts https://headius.blogspot.com/2008/02/rubys-threadraise-threadkill-time… https://www.schneems.com/2017/02/21/the-oldest-bug-in-ruby-why-racktim…
thibaut_barrere · 2017-11-26
(note: I use both Elixir & Ruby, for different reasons) You can most of the time rely on object.method(:blank?).source_location to quickly determine where a specific method is defined. More useful debugging tips can be found here: https://www.schneems.com/2016/01/25/ruby-debugging-magic-cheat-sheet.h…
steveklabnik · 2016-12-02
Here's a fun blog post about this particular analogy: https://www.schneems.com/2016/08/16/sharp-tools.html
drewda · 2016-06-17
Re Sprockets, I found this recent talk at RailsConf about the history, problems, and future of Sprockets maintenance and development to be an interesting read: http://schneems.com/2016/05/31/saving-sprockets.html
stephenitis · 2014-01-27
@Schneems has a really good tutorial on this using ffmpeg. http://www.schneems.com/post/41104255619/use-gifs-in-your-pull-request…
petercooper · 2013-12-02
It exists, though does rely on the central service: http://schneems.com/post/61514247453/explain-shell-from-your-shell
craigkerstiens · 2012-06-14
For those interested there's also a Rails equivalent post at - http://schneems.com/post/19298469372/you-got-nosql-in-my-postgres-usin…
danskil · 2012-06-08
I was just doing a write up on swapping auth back ends to gain more security http://schneems.com/post/24678036532/zomg-my-passwords-are-insecure-no…
thinkbohemian · 2014-11-14
> 2.0.0 means no memory errors 2.1 has a totally new GC setup (generational GC). It is guaranteed to use more memory (expect 3~5%), but be MUCH MUCH MUCH faster. Typically you can trade off running one less Puma worker to decrease memory usage, and the increase in speed may make up for it. Alternatively you can bump up to 2x dynos, and cut the number of dynos you have in half. If you haven't tried 2.1.3 or above do yourself a favor and revisit. The 2.1.3 patch means memory grows much more slowly. Also if you didn't see my post on memory profiling: http://www.schneems.com/2014/11/07/i-ram-what-i-ram.html (It got over 40 upvotes on reddit, and like 3 on HN, again...HN what is going on? I've had much less substantial posts make it front page). That post shows you how to remove ~30% starting RAM (by bumping mail version to 2.6.3+) and shows you can profile and remove libraries that are using a ton of memory in your app. You can also use something like puma_worker_killer (or unicorn_worker_killer) to tame your memory growth if it only balloons over 512mb after a while, but ultimately those two solutions are bandaids. Ruby 2.0 isn't going to be supported forever and the generational GC is definitely here to stay. Maybe try the 2.2.0 preview (it's on Heroku), it has 3 generations (total) which means much less retained memory and you still get speed performance improvements. I see most of the bigger production apps using 2.1+ fwiw.

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