Practicing Ruby
practicingruby.com · Group blog · on HN since 2011
Practicing Ruby is a journal of Ruby programming articles, with pieces on low-level computing, simulations, DSLs and software design.
What HN saysHN commenters recommend its free articles, such as the one on domain-specific APIs, and its author explains the journal is free for those who can't pay.
21HN people shared it
6linked it in comments
34stories submitted
233story points
2 years agolast shared
2011people per year2026
Most-shared posts
- 1Practicing Ruby journal moves to open-access, 68 free articles already available3 people · 6 points · first shared 2011 · 1 comments on HN
- 2Simulating the emergent behavior of ant colonies2 people · 36 points · first shared 2014 · 9 comments on HN
- 3The anatomy of information in software systems2 people · 3 points · first shared 2016 · discussion on HN
- 4Parsing JSON the hard way (in Ruby)2 people · 2 points · first shared 2014 · discussion on HN
- 5"Unobtrusive Ruby" in Practice1 people · 66 points · first shared 2011 · 6 comments on HN
- 6Infrastructure automation by example1 people · 52 points · first shared 2014 · 15 comments on HN
- 7Exploring low-level computing concepts with Ruby1 people · 11 points · first shared 2013 · discussion on HN
- 8Simulating tiny worlds for fun and profit1 people · 8 points · first shared 2013 · discussion on HN
- 9Rocket Science and the Law of Demeter1 people · 4 points · first shared 2012 · 2 comments on HN
- 10Responsibility-centric vs. data-centric design1 people · 4 points · first shared 2012 · discussion on HN
- 11Guidelines for growing a stable codebase1 people · 4 points · first shared 2014 · discussion on HN
- 12Expanding your code reading horizons1 people · 4 points · first shared 2012 · discussion on HN
- 13Compiler Tools for use with Ruby1 people · 3 points · first shared 2013 · discussion on HN
- 14Implementing a minimal HTTP file server in Ruby1 people · 3 points · first shared 2013 · discussion on HN
- 15Parsing JSON the hard way1 people · 2 points · first shared 2013 · discussion on HN
What HN people wrote when they linked it
jamesbritt · 2011-11-01
BTW, that online copy is the 1st edition of the book, for ruby 1.8.6 (or maybe even earlier).
The language is now at 1.9.3, and while things are fundamentally the same there are assorted little differences.
Still, as a free intro to the language it's not bad.
If you want to buy a book I'd suggest The Ruby Programming Language, as well as anything by Gregory Brown or David A. Black.
Greg also produces the Practicing Ruby newsletter which I cannot recommend highly enough.
http://practicingruby.com/
Greg does amazing stuff.
See also http://university.rubymendicant.com and http://blog.rubybestpractices.com
CalinBalauru · 2014-10-13
One of the best articlets I've read about the ruby dsl's was on practicingruby. You guys can check it out here https://practicingruby.com/articles/domain-specific-apis is free now.
sandal · 2011-10-17
I am the author of "Practicing Ruby" ( http://practicingruby.com ). It's a paid newsletter but I offer it for free for anyone who can't pay for it, and try to release back issues relatively frequently.
cheshire_cat · 2016-06-24
He said "[...] it is encouraged to think of it that way rather than calling functions."
This is what Sandi Metz talks about when she speaks about message/responsibility centric design vs data-centric design in OOP. The conceptual difference is said to lead to different designs. You don't start out your design by thinking about what data you hold but you think about which responsibilities/roles you have and create objects around those by thinking how they might talk to each other to reach their goals.
(I'm currently reading POODR by Sandi Metz, so this is still new to me, if I got anything wrong there then please feel free to correct me)
https://www.practicingruby.com/articles/responsibility-centric-vs-data…
6figurelenins · 2025-04-04
Not to pick on Rails, sorting files into "models / views / controllers" seems to be our first instinct. My pantry is organized that way: baking stuff goes here, oils go there, etc.
A directory hierarchy feels more pleasant when it maps to features, instead. Less clutter.
Most programmers do not care about OO design, but "connascence" has some persuasive arguments.
https://randycoulman.com/blog/2013/08/27/connascence/
https://practicingruby.com/articles/connascence
https://connascence.io/
> Knowing the various kinds of connascence gives us a metric for determining the characteristics and severity of the coupling in our systems. The idea is simple: The more remote the connection between two clusters of code, the weaker the connascence between them should be.
> Good design principles encourages us to move from tight coupling to looser coupling where possible. But connascence allows us to be much more specific about what kinds of problems we’re dealing with, which makes it easier to reason about the types of refactorings that can be used to weaken the connascence between components.