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
    M

    Moonbase

    moonbase.rydia.net · Personal blog · on HN since 2007

    Moonbase is the site of a Ruby programmer who writes on monads, closures, asynchronous code and behavior change.

    Visit blogHN submissions
    ProgrammingLanguages & Compilers
    What HN says

    HN links it for its Ruby monads series and its essay on a common closure mistake, which commenters cite in discussions of dynamic languages.

    Stats for nerds
    18HN people shared it
    14linked in comments
    108story points
    Feb 2014last shared
    2010people per year2014

    Top posts on HN

    1. 1
      Top Mistakes in Behavior Change
      1 person · 62 points · first shared 2011 · 11 comments on HN
    2. 2
      Eavesdropping on Expressions (Ruby)
      1 person · 16 points · first shared 2008 · 3 comments on HN
    3. 3
      Monads in Ruby
      5 people · 8 points · first shared 2007 · 3 comments on HN
    4. 4
      The Biggest Mistake Everyone Makes With Closures
      2 people · 8 points · first shared 2010 · 1 comments on HN
    5. 5
      Games Are Not Art
      1 person · 3 points · first shared 2010 · 1 comments on HN
    6. 6
      Asynchronous Is Not “Fire and Forget”: Joiners Not Quitters
      1 person · 3 points · first shared 2014 · Discussion on HN
    7. 7
      MenTaLguY: The Sound of Sorting
      1 person · 2 points · first shared 2011 · Discussion on HN
    8. 8
      Set Operations in the Shell
      1 person · 2 points · first shared 2010 · Discussion on HN
    9. 9
      Atomic Operations in Ruby
      1 person · 1 points · first shared 2010 · Discussion on HN
    10. 10
      MenTaLguY's page
      1 person · 1 points · first shared 2011 · Discussion on HN

    What HN people wrote when they linked it

    • jamesbrittFeb 2014

      I think you're taking a very Railscentrc view of Ruby.

      rubygems the tool existed before Rails, as did multiple gem hosting mirrors. I believe rubygems.org sprang up because rubyforge.org was falling out of favor. And Bundler is not part of Ruby.

      It's possible Wayne Seguin created rvm due Rails but I never got that impression from his talks (but it's been some time).

      Pretty sure MenTaLguY created "tap"; Rails had "returning" (though they are similar and perhaps the usage in Rails made it popular enough to warrant inclusion in core).

      http://moonbase.rydia.net/mental/blog/programming/eavesdropping-on-expressions

      Certainly if any library gets a lot of use then that will influence aspects of the base language, but matz and ko1 seem pretty deliberate about what gets added.

    • rbxbxJan 2011

      Unfortunately most professional Ruby work is still done within the Rails framework these days, which more or less binds you to a more traditional OO type style. I do find that in regards to everything other than class/object abstraction my coding style gets more and more functional.

      Especially when working in a team environment though it's important to stick to some established standards and idioms...

      That said, Ruby itself gets more functional with each release, but it would seem unlikely that it'll ever completely shed it's OO-ness.

      Rambling aside, some great links.

      http://moonbase.rydia.net/mental/writings/programming/monads-in-ruby/00introduction.html

      http://www.khelll.com/blog/ruby/ruby-currying/

      http://nex-3.com/posts/43-fun-with-the-y-combinator-in-ruby

    • DanielRibeiroNov 2011

      Nils are a very bad code smell. They come from C's null, which is a billion dollar mistake[1], according to its creator: Tonny Hoare. Specially now that we have monads[2, 3].

      Scala's standard library provides very helpful information on how to replace null with its Maybe class (called Option in Scala). Just take a peek into their collections library[4], and search for Option.

      [1] http://www.infoq.com/presentations/Null-References-The-Billion-Dollar-Mistake-Tony-Hoare

      [2] http://moonbase.rydia.net/mental/writings/programming/monads-in-ruby/00introduction.html

      [3] http://andand.rubyforge.org/

      [4] http://www.scala-lang.org/api/current/scala/collection/immutable/Iterable.html

    • chocolateboyJan 2011

      Stop snickering at the back! Unless you're a Schemer, your pet dynamic language probably suffers from the same affliction:

      http://moonbase.rydia.net/mental/blog/programming/the-biggest-mistake-everyone-makes-with-closures.html

    • gueloDec 2010

      You meant to say http://moonbase.rydia.net/mental/writings/programming/monads-in-ruby/00introduction.html

    Related

    Ryan Tomaykotomayko.com78 people

    How I explained REST to my wife

    Ryan Tomayko
    Personal · last shared 2022
    Vidar Hokstadhokstad.com36 people

    Docker Development Patterns

    Vidar Hokstad
    Personal · last shared 2025
    Damien Katzdamienkatz.net71 people

    The Unreasonable Effectiveness of C

    Damien Katz
    Personal · last shared 2020
    Eric Kiddrandomhacks.net65 people

    Rust lifetimes: Getting away with things that would be reckless in C++

    Eric Kidd
    Personal · last shared 2026
    codeburst.iocodeburst.io174 people

    Google’s Flutter = React and Java Swing

    codeburst.io
    Publication · last shared 2023
    Engine Yard Blogengineyard.com204 people

    The Number One Trait of a Great Developer

    Engine Yard Blog
    Company · last shared 2025
    Boxbaseboxbase.org21 people

    Case against OOP is understated, not overstated (2020)

    Boxbase
    Personal · last shared 2025
    Tekin Suleymantekin.co.uk21 people

    Better Git diff output for Ruby, Python, Elixir, Go

    Tekin Suleyman
    Personal · last shared 2026