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
    T

    Timeless

    timelessrepo.com · Publication · on HN since 2011

    Timeless is a Ruby-focused developer blog covering JSON, REST and HATEOAS, Ruby language features, and gem packaging.

    Visit blogHN submissions
    ProgrammingLanguages & CompilersWeb Development
    What HN says

    HN commenters cite it as a reference for why JSON is not strictly a JavaScript subset and as worthwhile reading on HATEOAS.

    Stats for nerds
    33HN people shared it
    10linked in comments
    261story points
    Jun 2018last shared
    2011people per year2018

    Top posts on HN

    1. 1
      JSON: The JavaScript subset that isn't
      19 people · 163 points · first shared 2011 · 35 comments on HN
    2. 2
      Haters Gonna HATEOAS
      7 people · 66 points · first shared 2011 · 44 comments on HN
    3. 3
      Abstraction Creep
      2 people · 30 points · first shared 2012 · 6 comments on HN
    4. 4
      Tail call optimization in Ruby
      1 person · 1 points · first shared 2012 · Discussion on HN
    5. 5
      Making Ruby Gems
      1 person · 1 points · first shared 2013 · Discussion on HN
    6. 6
      Refinements in ruby
      3 people · first shared 2012
    7. 7
      Haiku
      2 people · first shared 2012
    8. 8
      On camping vs sinatra
      1 person · first shared 2013
    9. 9
      Mockup driven development
      1 person · first shared 2011
    10. 10
      Tribute
      1 person · first shared 2013

    What HN people wrote when they linked it

    • nnqJul 2013

      Ah, destructuring is so sweet!

      You're right, it's no real need for it and it's unfeasible because you need to either (a) fully static type analyze everything or (b) what anonymous just explained... and they're both out of the question.

      The refinements thing was a joke, in the spirit of what else can one add: it's a controlled form of monkeypatching / classboxing about which a lot of fuss was made in the Ruby community after Matz decided to add it to the language (http://timelessrepo.com/refinements-in-ruby), mainly because it's very hard to implement without creating more problems, even if you have your own interpreter to hack on (short answer: don't bother looking about it and even if you're smart enough to figure out a way to add it to a compile-to-JS language, don't waste your effort on it - they're not an anti-feature and they could make sense in languages that allow monkeypatching, like JS and Ruby, but they're too much work for too little benefit and too much possibility for bad use and unneeded complexity).

    • josephgJun 2018

      I really wish we had a JSON 2 format which could fix JSON's obvious shortcomings. I would like to see:

      - Support for Maps and Sets (unlike objects, maps allow arbitrary types to be used as keys)

      - A standard Date format

      - Embedded binary blobs. No idea how to do this and keep it human readable, but when you need this its super useful. Maybe something similar to WS's binary message encoding.

      - Arbitrary precision integer support. This is particularly useful for cryptocurrencies and for interoperability with 64 bit integers in other languages. And bigints are coming to javascript - https://github.com/tc39/proposal-bigint

      - Maybe even fix JSON's weird unicode encoding: http://timelessrepo.com/json-isnt-a-javascript-subset

      Unfortunately it seems like nobody 'owns' JSON enough to give JSON 2.0 the political weight it would need for cross-language support.

    • guscostJul 2017

      > Insisting that a URL change with state is taking it too far. It's not how I understood what Tim Berners-Lee and others were saying at the beginning. I would be interested, however, in articles that espouse this.

      I'm referring to HATEOAS, the final and most demanding "stage" of RESTful API design: http://timelessrepo.com/haters-gonna-hateoas

      > A better rule is one URL per "document" or "record." So in your Photoshop example, there would be a different URL per file that you edit (www.photoshop.com/image001.psd) but not per edit. Well, if the app saved versions, then you could append ?v=203. But in general I think it's enough to align URLs to "documents" (like a news story) or "records" (like a particular profile in a contact database).

      This sounds like a good idea.

    • smoyerFeb 2014

      It's really worth reading the thesis that started it all (http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm) and I also find this HATEOAS article (http://timelessrepo.com/haters-gonna-hateoas) worthwhile reading, but to answer your question succinctly, here's my short definition:

      "REST is inter-computer communication structured such that the server doesn't maintain any client state so that neither the duration between requests nor the number of clients impacts the resource usage of the server."

      It's not quite true, but the architecture has benefits:

      1) No need to replicate client sessions in a clustered environment.

      2) There's no impact if a client wait hours between requests.

      3) Every resource a client uses has a unique location on the network.

    • buro9Mar 2013

      http://timelessrepo.com/haters-gonna-hateoas#hateoas

      It shows in the example:

      <entry>
      <id>1337</id>
      <author>Steve Klabnik</author>
      <link rel = "/linkrels/entry/newcomment"
      uri = "/entries/1337/comments" />
      <link rel = "self"
      uri = "/entries/1337" />
      </entry>

      But I would go further and suggest that whether to show those shouldn't just be based on what the API can do, but what the client (and perhaps user controlling the client) can do.

      As in... if they can read but not create, then show the "self" link but not the "newcomment" link.

      Thus we're not just saying "our API has these endpoints", we're saying "you can do this".

    • acjohnson55Jun 2018

      JSON is not actually strictly a subset of JavaScript, surprisingly. Although, in practice, it doesn't really matter, because you wouldn't want to blindly eval JSON data, anyway.

      I mention this not to be pedantic, but in case it helps another coder from wasting a couple days chasing a bug like I once had to, when I thought I could template raw JSON into a script file to make some server-side data available as a global var on in the browser.

      http://timelessrepo.com/json-isnt-a-javascript-subset

    Related

    Ruby Insiderubyinside.com147 people

    Sinatra 1.0 Released: Major Milestone for Ruby’s Best Webapp DSL

    Ruby Inside
    Publication · last shared 2021
    blogs.perl.orgblogs.perl.org213 people

    Is Perl 6 Being Renamed?

    blogs.perl.org
    Publication · last shared 2026
    RubyGems Blogblog.rubygems.org48 people

    Making popular Ruby packages more secure

    RubyGems Blog
    Company · last shared 2026
    Ruby on Rails Blogweblog.rubyonrails.org192 people

    Rails 5.0: Action Cable, API mode, and more

    Ruby on Rails Blog
    Company · last shared 2021
    Jason Moironjmoiron.net36 people

    Go Performance Tales

    Jason Moiron
    Personal · last shared 2026
    Rust Blogblog.rust-lang.org533 people

    Announcing Rust 1.0

    Rust Blog
    Company · last shared 2026
    Mislav Marohnićmislav.uniqpath.com100 people

    Vim: revisited

    Mislav Marohnić
    Personal · last shared 2015
    Shopify Engineeringshopify.engineering268 people

    Building all of our new mobile apps using React Native

    Shopify Engineering
    Company · last shared 2026