Hey guys. This listed is computed via the data we have at Datastreamer (http://www.datastreamer.io/) ... we basically index the web and have a petabyte search engine that we license for people very serious about open data.
I realized that we had Hacker News for every day and wanted to compute the top PDFs for my own usage so I wanted to share with you guys.
My side project, Polar (https://getpolarized.io/) is used for managing PDF and other reading so you might want to check that out too. It's basically a tool for researcher, students, or anyone passionate about long term education and use read a great deal of technical and research material.
PDFs are supported but we also support offline caching of web page content. We also support Anki sync so you can create flashcards and sync them with Anki so that you never forget what you've read.
EDIT. Awesome! This landed on the home page in less than 15 minutes and is now #2.. Super excited you guys found this helpful. Great to contribute back to such an awesome community!
Wow, your product is super cool! I was going to post this in an Ask HN but maybe you would like to share instead - what is it like to architect a crawler for social media sites?
With Twitter Music shutdown, I was looking back on their acquihire of WeAreHunted, a music ranking service which at its core was a crawler that indexed torrents/tumblr/soundcloud to find what's up and coming. As I was pondering this, I was thinking about how they would normalise the data.
My main question was, how much difficulty do you encounter indexing a social site? I can imagine Tumblr, Facebook, and other sites have a plurality of new content appearing at arbitrary intervals (posts, comments, etc) - and I don't imagine that there are RSS feeds to diff here. So how would it function?
There are a lot of papers/research on the design of a traditional web crawler.
Basically you have a link rank build out your crawl frontier and then you have an incremental ranking algorithm re-rank the frontier.
The problem is that latency is a major factor.
Many of the top social news posts start from some random user that witnesses something very interesting and then that shoots up rapidly.
Our goal basically has to be to index anything that's not spam and has a potential for being massive.
Additionally, a lot of the old school Google architecture applies. A lot of our infra is devoted to solving problems that would be insanely expensive to build out in the cloud.
We keep re-running the math but to purchase our infra on Amazon web services would be like 150-250k per month but we're doing it for about 12-15k per month.
It's definitely fun to have access to this much content though.
Additionally, our customers are brilliant and we get to work with the CTOs of some very cool companies which is always fun!
Thanks for the details. I'm exploring a side project to find viral\interesting\fresh content on web\social media. I know this is a hard problem to solve as 'interesting' varies from person to person.
Polar seems neat. I'm a little confused by the landing page. It says Offline-first, but you can use git or dropbox to share between machines. fine. Then later in the page it mentions Cloud Syncing. What's the distinction here?
If you're interested, I'd be happy to discuss it as what I focused on was ranking content (not indexing exactly). Might be some interesting synergy. They system requires a fraction of the data of a regular search engine and is often more effective.
Polar looks awesome! Do you plan to have support for a mobile app? For better or worse I do a ton of reading of PDFs on my phone while commuting by train. It’d be great to sync with my laptop too, but only mobile would be more than enough to get me started.
I just did haha I wish I wish there was an easy way for me to import all of my Pocket articles into Polar without doing them manually. I guess i'll do the research to figure out a way to script this.
Yeah.. Import I think is going to be big feature for us as we try to convert people from Mendeley, and Pocket which have huge existing repositories. I don't have that problem yet.
Right now Polar can import a whole directory full of PDFs but that doesn't really get tagging.
I might end up building a file format so that we can do imports.
So you could take the Pocket RSS list, then convert it to the Polar import format, then just import that directly.
We would probably try to bundle up standard importers though.
from __future__ import print_function
import re
import requests
from bs4 import BeautifulSoup
def download_file(download_url, name):
r = requests.get(download_url, stream = True)
with open("repo" + name, 'wb') as f:
for chunk in r.iter_content(chunk_size = 1024*1024):
if chunk:
f.write(chunk)
html = requests.get("https://getpolarized.io/2019/01/08/top-pdfs-of-2018-hackernews.html")
soup = BeautifulSoup(html.content, features='html.parser')
sAll = soup.findAll("a")
for href in sAll:
if href.has_attr('href'):
link = href['href']
if link.find(".pdf") > 0:
print(link)
last_index = link.rindex("/")
name = link[last_index + 1:]
print(name)
try:
download_file(link, name)
except:
print("error downloading " + link )
Yea.. there would be more total hits for PDFs found on page 2 or page 3... which I didn't analyze. 500 I think is good enough. Enough reading already ;)
meaning the ranking? Algolia is probably using a different score algorithm. If I were designing it I would probably also factor in number of comments but I think it's fair to use number of upvotes.
I realized that we had Hacker News for every day and wanted to compute the top PDFs for my own usage so I wanted to share with you guys.
My side project, Polar (https://getpolarized.io/) is used for managing PDF and other reading so you might want to check that out too. It's basically a tool for researcher, students, or anyone passionate about long term education and use read a great deal of technical and research material.
PDFs are supported but we also support offline caching of web page content. We also support Anki sync so you can create flashcards and sync them with Anki so that you never forget what you've read.
EDIT. Awesome! This landed on the home page in less than 15 minutes and is now #2.. Super excited you guys found this helpful. Great to contribute back to such an awesome community!