
Show HN: Hacker News Classics - jsomers
http://jsomers.net/hn
======
jsomers
Occasionally you see articles on HN with a date in the title, like “(1998)” —
and over the years I’ve noticed that these tend to be some of the best posts.

It makes sense: on a site devoted to _news_ , an article posted so long after
it was published has to be especially good.

So I hacked together this page, which links to every HN post with a date in
its title earning more than 40 votes. It’s sorted in chronological order to
encourage wandering.

~~~
degenerate
For links that are now defunct/gone (such as #2 on the chronological list),
can you pull the web archive at the closest date to the submission?

(dead)
[http://yorktownhistory.org/homepages/1900_predictions.htm](http://yorktownhistory.org/homepages/1900_predictions.htm)
===>
[https://web.archive.org/web/20100108205037/http://yorktownhi...](https://web.archive.org/web/20100108205037/http://yorktownhistory.org/homepages/1900_predictions.htm)
(archive from 6 days later)

I don't think this can be done programmatically though... thanks for putting
this together. I enjoy the old posts a lot, too.

~~~
Momquist
The url can be found via the archive's API, and you can specify a timestamp.

[http://archive.org/wayback/available?url=http://yorktownhist...](http://archive.org/wayback/available?url=http://yorktownhistory.org/homepages/1900_predictions.htm&timestamp=20010203)

It returns a json with, notably, the closest archived page given the
timestamp.

[https://archive.org/help/wayback_api.php](https://archive.org/help/wayback_api.php)

~~~
degenerate
That's way more fantastic than I thought their API would be! Thanks. Hope OP
sees it.

------
zaroth
So in case I’m not spending enough time on the front page of _this_ HN, good
to know there’s a nearly infinite depth to plumb.

And now I’m reading Arnold Bennett’s ‘How to Live on 24 Hours a Day’
originally published in 1908. Good to know tongue-in-cheek self-help books
will never go out of style!

[1] -
[http://www.gutenberg.org/files/2274/2274-h/2274-h.htm](http://www.gutenberg.org/files/2274/2274-h/2274-h.htm)

~~~
formalsystem
I actually enjoyed reading this today. One highlight was the below on "reading
the news every morning"

" The idea of devoting to them thirty or forty consecutive minutes of
wonderful solitude (for nowhere can one more perfectly immerse one's self in
one's self than in a compartment full of silent, withdrawn, smoking males) is
to me repugnant "

------
dang
You can also to go
[https://news.ycombinator.com/front](https://news.ycombinator.com/front) to
bounce around how HN's front page looked on past days, like
[https://news.ycombinator.com/front?day=2016-06-20](https://news.ycombinator.com/front?day=2016-06-20).

Or click on the date in an account's profile to see what HN looked like on its
birthday.

~~~
sillysaurus3
Note that
[https://news.ycombinator.com/front?day=2007-02-18](https://news.ycombinator.com/front?day=2007-02-18)
doesn't let you navigate backwards, but
[https://news.ycombinator.com/front?day=2006-10-09](https://news.ycombinator.com/front?day=2006-10-09)
is the first day.

Out of curiosity, for the date rendering, did you xdef racket's date libraries
or implement your own date algorithms in arc?

I guess you could've also shelled out to `date -r <timestamp>` which would get
the feature done in about ten seconds.

~~~
dang
> 2007-02-18 doesn't let you navigate backwards

Yes, and we specifically left it as an exercise for the pokey reader to figure
out why.

Arc does its own date stuff. We extended it a bit to be able to print things
like "x months ago". Edit: and "Feb 31, 2017".

~~~
greenhouse_gas
Just curious: do you (as in Y combinator) use Arc for anything else or is it a
"hobby language" for HN?

~~~
dang
All of YC's original investment software was written in Arc, though it has
been gradually factored out into other systems.

We use it for a browser extension that helps a lot with moderation work. And
for general experiments. If I do something more ambitiously new it will
probably be in Arc.

~~~
sillysaurus3
_We use it for a browser extension that helps a lot with moderation work._

Oho, so Arc does compile to JS now.

You gonna release the compiler or what? (Sometime this decade.)

------
aswerty
With regards to Classics, the "You're probably using the wrong dictionary"
blog post at
[http://jsomers.net/blog/dictionary](http://jsomers.net/blog/dictionary) was
probably the most interesting pieces I've read on HN.

~~~
wila
Very nice indeed. Immediately ran downstairs to verify a Websters encyclopedia
dictionary I bought in the UK around 1997 only to find it wasn't the version
with all the prose. It's still a very nice illustrated (and heavy!)
dictionary, but not quite like what jsomers describes.

So downloaded the version he offers for download and am now installing the
dictionary using the steps he provides.

Thank You, really looking forward to using it.

edit: and his install steps still work, using it in the dictionary app right
now. Super!

------
baddox
This is very cool! Based on the title “HN Classics,” I thought it might be an
implementation of another idea I’ve had. I had this idea to search for stand-
out articles that get reposted every so often and always get a lot of good
attention and discussion: so-called classics of HN.

I think that data could be very interesting, and would also serve as a sort of
“hall of fame” of articles the HN community loves (moreso than just a list of
the most upvoted articles of all time).

Of course, you could also figure out the optimal duration between successive
posts, and figure out when to repost yourself, if anyone wants a karma-grab.
;)

~~~
blauditore
I thought reposts (and therefore scattered discussions) were discouraged on
HN.

~~~
baddox
From what I’ve seen, it’s perfectly acceptable for older articles that are
reposted after a considerable amount of time.

The best example I can find on short notice is this hexagonal grids article:

[https://hn.algolia.com/?query=Hexagonal%20Grids&sort=byDate&...](https://hn.algolia.com/?query=Hexagonal%20Grids&sort=byDate&dateRange=all&type=story&storyText=false&prefix&page=0)

You could likely find more by searching HN comments for the phrase “previous
discussion,” because people tend to post links to the previous HN submissions.

It doesn’t bother me, since there are likely always new HN readers who haven’t
seen great “classic” articles.

The HN FAQ says:

> If a story has had significant attention in the last year or so, we kill
> reposts as duplicates. If not, a small number of reposts is ok.

[https://news.ycombinator.com/newsfaq.html](https://news.ycombinator.com/newsfaq.html)

------
gus_massa
I'd prefer to sort them by points. By age is interesting, by the way.

Do you do some deduplication. Some classics are resubmitted a few times
successfully. Perhaps add a third sort criteria, that is sorted by the number
of big reposts.

~~~
bringtheaction
Problem with by points is that over time as more people come to HN the number
of points are worth less, unless HN does like Reddit does and weighs them but
even then such a system tends to change over time and so it’s still not
comparable.

For example say that several years ago a post might hit front page and 500
people would vote on it. If 300 people voted up and 200 down then it gets 100
points.

Fast forward and now there are more people on the site. That means greater
confidence in the percentage but because only points and not percentage of
up/down is revealed, a post with similar percentage up- vs downvotes appears
to be better. 600 up and 400 down is still 60% up vs 40% down but it results
in 200 points total.

Like I said though maybe HN does account for this and 100 points today means
the same percentage of people upvoted it, I don’t know.

~~~
ZenoArrow
You can't downvote posts on HN, you can flag them but you can't downvote them.
On HN, downvoting is only possible on comments.

~~~
bringtheaction
You are right I forgot that, heh. Anyway, the problem remains that over time
there will be more people to upvote so a post is likely to get more points if
it was posted in the future than in the past.

~~~
fghtr
Not really. Just tried to upvote an old post from 10 years ago:

[https://news.ycombinator.com/item?id=243417](https://news.ycombinator.com/item?id=243417)

As a result, its score did not increase, although upvoting "worked".

~~~
bringtheaction
No I mean that a front page post five years ago had fewer people to vote on it
so it would get fewer points simply for that reason compared to a front page
post today.

------
CGamesPlay
Since the first post is 1900 and it appears to be sorted by date, I wanted to
verify: there were no posts from the 1800s worth showing?

~~~
lucideer
\-
[https://news.ycombinator.com/item?id=10374436](https://news.ycombinator.com/item?id=10374436)

\-
[https://news.ycombinator.com/item?id=11320169](https://news.ycombinator.com/item?id=11320169)

probably more

------
pmoriarty
Any way this could be done without requiring javascript?

For security, ad-blocking, and privacy reasons I have javascript blocked in my
browser, and really don't like to turn it on except for sites like my bank.

~~~
aplorbust
"Any way this could be done without requiring Javascript?"

Could be done _many_ ways.

Lets imagine you like text, you dont mind reading something somewhat
structured and regular like json and you dont need all the html, css, etc.
tags and window dressing.

5-minute quick and dirty solution

1\. curl -4o 1.htm
[http://jsomers.net/hn/stories.json](http://jsomers.net/hn/stories.json)

    
    
        tr , '\12' < 1.htm \
        |exec sed '
        1i\
        <pre>
    
        /./{
        /{\"/,/}/!d;
        }
        /\"url\":[^{]/{s/\"url\":/&<\/pre><a href=/;s/$/>[FETCH]<\/a><pre>/;};
        /\"objectID\":/{s//&<\/pre><a href=https:\/\/news.ycombinator.com\/item?id=/;s/$/>[FETCH COMMENTS]<\/a><pre>/;s/\"//3;s/\"//3;};
        s/{\"created_at\":/\
        \
        &/g;
        /}}}/s/$/\
        \
        -----------------/g;
        $a\
        <\/pre>
    
       ' > 2.htm
    

2\. Navigate to file:///2.htm

------
nugi
Wow, this is great.

Were there no pre 1900 refrences or is that just were you chose to start?

~~~
jsomers
I started it somewhat arbitrarily in 1900.

~~~
eridal
ahh was about to publish something in BC just to see what happens ;)

~~~
Cyphase
The Wheel: A More Efficient Method for the Production of Round Ceramic Wares
(3500 B.C.)

~~~
Cyphase
But more seriously, I remembered the complaint tablet to Ea-nasir[1], which
was on HN a few months ago[2]. Written in 1750 BCE.

[1] [https://en.wikipedia.org/wiki/Complaint_tablet_to_Ea-
nasir](https://en.wikipedia.org/wiki/Complaint_tablet_to_Ea-nasir)

[2]
[https://news.ycombinator.com/item?id=15669759](https://news.ycombinator.com/item?id=15669759)

------
swyx
ah i was thinking of making something like this but never did anything. i
would have called it Hacker Olds :)

well done!

------
CookieMon
It may need some broken link tools. I clicked on the 4th link and the site no
longer exists, Wayback Machine has it though -
[https://web.archive.org/web/20170606131659/http://www.lhup.e...](https://web.archive.org/web/20170606131659/http://www.lhup.edu/~dsimanek/hollow/tamarack.htm)

Perhaps Hacker Classics could automatically ensure all remaining live links
get archived?

~~~
toomuchtodo
> Perhaps Hacker Classics could automatically ensure all remaining live links
> get archived?

Done. I'm going to run through every URL ever cited on HN at some point when
time permits.

------
zestyping
There's something odd about the file checked in to Github; it's cut off on
line 50:

[https://github.com/jsomers/hacker-
classics/blob/master/index...](https://github.com/jsomers/hacker-
classics/blob/master/index.html)

------
jerkstate
Suggested title: Hacker Olds

------
mosselman
Interesting how both now and 'then' Tesla is still in the top stories.

------
bringtheaction
This is pretty nice. I also think a browse by year feature would be neat. By
that I mean in the same fashion as OP, so I could for example look at posts
that had (2011) in the title by going to 2011, etc.

------
jurnalanas
wow, this is really interesting..

and I just reliazed one of the reason why classic writings are special --
especially for another writing material purpose is because it has passed the
the test of time..

------
murukesh_s
Thanks for this. Can't upvote this enough. Still going through lots of gems
that I would never have read without this. p.s thanks for ruining lot of my
work hours. but thanks!

------
lamby
Anyone fancy putting all of these into a Kindle/PDF? :)

~~~
captn3m0
Weekend project challenge! I do lots of scrape-to-ebook projects, so this is
fun for me.

Check back a few hours later.

~~~
captn3m0
Progress so far: [https://git.captnemo.in/nemo/hn-
classics](https://git.captnemo.in/nemo/hn-classics)

(Scraped content to markdown, simple Jekyll website in progress)

~~~
lamby
Let me know...

------
hownottowrite
I'm not sure how I feel about having three items on this list (including the
current #1). I might need to take my buggy out for a long trot to contemplate.

------
boffinism
Hmmm... lovely idea, but in practice what I'm getting is a bunch of 404s. The
internet is a library with a bunch of books missing...

------
bordercases
Interesting how as we approach from 1903 to 2010 we ultimately go from more
general and deep to more specialized and disconnected.

------
lostlogin
There are some great comment threads there that had me itching to chime in, 5
years too late. What an excellent project.

------
zestyping
Why the cutoff at 2012? (line 71 of index.html)

> if (data.hasOwnProperty(yr) && parseInt(yr) < 2012)

------
hvd
this is fantastic. Great snapshot of the past. Thank you jsomers for sharing
this.

------
obbobo
It's fascinating to dig into HN literature from 1900!

------
lozzo
this is really brilliant. But is there a reason you sort the list from the
oldest to the newest ? I think it would make sense to have it the other way
around.

best

------
tambourine_man
Nice.

You could say they are… evergreen (title bar color)

------
bartl
Second link is dead. So is the fourth.

------
tmaly
Very cool! how will you maintain it?

------
mud_dauber
This is glorious. Thank you.

------
scotty79
Paywall on article from 1930. That's a sad state of affairs.

------
vamshidhar490
hacker news is awsome

------
katee
test

~~~
muthdra
It's working.

~~~
rapfaria
Really slow for me on chrome 64 for android.

------
kristofferR
I found this page of undocumented HN tips [1], finds Hacker News Classic [2]
and the top post there was Hacker News Classics [3].

[1] [https://github.com/minimaxir/hacker-news-
undocumented](https://github.com/minimaxir/hacker-news-undocumented)

[2]
[https://news.ycombinator.com/classic](https://news.ycombinator.com/classic)

[3] [http://jsomers.net/hn/](http://jsomers.net/hn/)

Quite a cool coincidence!

------
gt_
Nice to see E.M. Forster’s _The Machine Stops_ there near the top of the list
when clicking the link. Thanks for sharing.

