Comments on post “ExplainToMe”
💖
Ryan Hoover
@rrhoover · Founder, Product Hunt
Very cool. Here's an accurate 5 sentence summary of my recent blog post:
This could be a useful Chrome extension built on Twitter. Instead of clicking through to read articles, simply hover over a shared article in your timeline to get the summary. #savedyouaclick 😊
This could be a useful Chrome extension built on Twitter. Instead of clicking through to read articles, simply hover over a shared article in your timeline to get the summary. #savedyouaclick 😊 15sharetweet・
H
Sang Han
@jjangsangy · Data Scientist at Qadium Inc
@rrhoover this is an interesting idea. So the next thing that I'm currently building on top of this is a Facebook bot. You can send it links and it'll parse and send you the summary. Chrome extension would probably be easier to build though
4sharetweet・
Lee Fuhr
@cozysd · Founder & Creative Director, Cozy
@rrhoover Absolute +1 to the Chrome extension. I went through the site expecting to find one. Gimme gimme! :D
2sharetweet・
Olivier El Mekki
@oelmekki · maker
@jjangsangy @rrhoover this would be cool, the latency of the heroku free plan may make it a bit slow, though.
@jjangsangy Btw, I can build that, if you want. Any chance to allow cors requests and return response as json or something?
1sharetweet・
H
Sang Han
@jjangsangy · Data Scientist at Qadium Inc
@oelmekki @rrhoover sure! I can modify the source code to return a json in response to something like POST {"url": "http://summarize-me.com"} to the url endpoint 'http://site-url/api/v1.0/summary'
2sharetweet・
Olivier El Mekki
@oelmekki · maker
@jjangsangy Cool, let's do that! I'll have a look tomorrow, after contract time :)
upvotesharetweet・
H
Sang Han
@jjangsangy · Data Scientist at Qadium Inc
@oelmekki @rrhoover I just implemented the API. Give it a try.
curl -X POST -H "Content-Type: application/json" -d '{"url": "https://www.technologyreview.com..."}' "https://explaintome.herokuapp.co..."
2sharetweet・
Olivier El Mekki
@oelmekki · maker
@jjangsangy Perfect, thanks, everything needed is there 👍
Btw, for other people you want to use it, you can change the number of sentences by using the `max_sent` parameter in json request.
1sharetweet・
Brian Roach
@anodigital · DJ / Producer @ANODIGITAL
@rrhoover that would be rad!
upvotesharetweet・
Olivier El Mekki
@oelmekki · maker
@jjangsangy @rrhoover Ok, we're getting there :) http://www.awesomescreenshot.com...
Making it works on twitter is surprisingly difficult, though, because they use bit.ly and it tries hard to prevent us to find the destination link from javascript (presumably so we won't build things to bypass it). Will try to find a workaround tomorrow.
upvotesharetweet・
Olivier El Mekki
@oelmekki · maker
Nevermind, powned it : http://www.awesomescreenshot.com...
Now, some UX/design work, and we're done!
1sharetweet・
Olivier El Mekki
@oelmekki · maker
omg, this is big :D
upvotesharetweet・
Abhas Tandon
@abhas9 · Software Engineer, Paypal
@oelmekki FYI: There is an open source JS implementation for `textrank` available at: https://github.com/dpressel/text...
1sharetweet・
Olivier El Mekki
@oelmekki · maker
@abhas9 Awesome, thanks :) I'll stay with ExplainToMe on this product, though, so that I don't have to get back to it if better algorithms are found or this one is tweaked.
1sharetweet・
H
Sang Han
@jjangsangy · Data Scientist at Qadium Inc
@abhas9 probably the cleanest JS I've read this week. Dunno how I feel about computing centroids in the browser, but I assume removing network access would be a speed improvement. Although inevitably you'll need to do it in order to scrape the article contents
upvotesharetweet・
H
Sang Han
@jjangsangy · Data Scientist at Qadium Inc
@oelmekki really cool how much new interfaces and mediums can change the possibilities of things!
1sharetweet・
Olivier El Mekki
@oelmekki · maker
@jjangsangy One cool thing with doing the work in the browser is that it would mean no load on server, the user computer doing all the work. Javascript perfs are really good for an interpreted langage (actually, wouldn't there be numpy, it probably would be at least as good as python, the most used langage for those kind of jobs). The only thing it could not do is parallelism (I tried an asm.js version of ffpmeg once for encoding videos client side, it was painfully slow because of single threading).
I prefer to stay with a server backend, though, if that's ok with you. That way, you can go on tweaking the algorithm or using new ones if you please, and there are no change / update rollout needed for the extension userbase.
And yeah indeed, interfaces help ;)
upvotesharetweet・
H
Sang Han
@jjangsangy · Data Scientist at Qadium Inc
@oelmekki but you'd always need the server to scrape content from web articles since js in the browser couldn't (shouldn't) make the cross-origin requests.
upvotesharetweet・
Olivier El Mekki
@oelmekki · maker
@jjangsangy You can, in chrome extensions (provided you asked for permission).
Actually, I had to do that anyway: all links on twitter use shorteners, so I have to fetch the link to see if it's a redirection. Even worse: when requesting from browser, bit.ly urls do not set a `Location:` http header with a 301 status, but actually reply with a 200 status and add a meta refresh tag in the html content for issuing the redirection, so I have to parse pages content in order to look for them.
Sometime, I even have to keep following several times. For example, bit.ly users who use a custom domain (eg: the t.co domain from twitter) make a first redirection to the bit.ly domain, then an other one the final domain ("final", provided it doesn't redirect itself).
Oh btw, ExplainToMe does not follow redirections. I have fixed that in extension, but maybe you want to have a look ;) (not sure if it makes sense for your landing page, since users post urls from their browser and should already be fully redirected).
upvotesharetweet・
H
Sang Han
@jjangsangy · Data Scientist at Qadium Inc
@oelmekki did not know that chrome extensions could do that. Sure, I can take a look at managing redirections. That logic should probably be on the backend anyways
upvotesharetweet・
Olivier El Mekki
@oelmekki · maker
@jjangsangy Awesome, this would considerably simplify things :) (and loosen permission requests)
upvotesharetweet・
Olivier El Mekki
@oelmekki · maker
@jjangsangy My product is done, I now leave it in pre-launch quarantine. Do you still consider handling redirections?
upvotesharetweet・
H
Sang Han
@jjangsangy · Data Scientist at Qadium Inc
@oelmekki apologies for the wait. Can you send me some bit.ly links that have this behavior. I've been testing it over Twitter and bit.ly and they all seem to redirect correctly
upvotesharetweet・
James Morgan
@morgano · Founder, RiskMap
@rrhoover I compared it to https://www.producthunt.com/tech..., the results are very similar with slightly different results. ExplainToMe left "but" in the sentence, Smmry missed a gap between first and This in the last sentence. :)

1sharetweet・
Olivier El Mekki
@oelmekki · maker
@jjangsangy Hi! Sorry for the delay: I've got my first customer in my main product, it's been an intense couple weeks :)
Let's take the example of this link : https://t.co/20KazEmiQ3 (pointing to https://medium.com/product-hunt/... ).
You can see steps here: https://gist.github.com/oelmekki...
Btw, my extension is ready for some time, now: https://chrome.google.com/websto...
I don't communicate on it just right now because I have a annoying bug to tackle, which cause the extension to stop working after some time on twitter, I have to investigate.
EDIT: markdown processing is not that great on PH, I've put code on gist instead.
upvotesharetweet・
H
Sang Han
@jjangsangy · Data Scientist at Qadium Inc
@oelmekki thanks a bunch! Ya maybe we should take development to the github page. And congrats to your work!
upvotesharetweet・