[{"data":1,"prerenderedAt":208},["ShallowReactive",2],{"project-2734360":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":27,"sentiment":28,"stance_mix":29,"scored_comments":33,"aspects":34,"strip":39,"post_text":40,"what":41,"said":55,"maker_in_thread":117,"shape":123,"grid":127,"attempts":170,"same_week":171,"maker_shows":37,"maker_hidden":199,"reader_version":200,"card":201},"2734360","Two-faced URLs","This is a URL shortener that gives a link that sends \"preview\" processes one place and actual users somewhere else.","maker","Show HN: Two-faced URLs","http:\u002F\u002Fbrokenthings.org\u002F","brokenthings.org","ipsin",1309966629,2011,85,16,137,1097,13,"notable","dev_tools","url shortener","web_app",[21,24,25,26],"link preview","user agent","content negotiation","mixed",0.227,{"positive":30,"neutral":31,"mixed":32,"critical":31},5,2,0,9,{"execution":35,"idea":38},{"positive":36,"critical":37},3,1,{"positive":37,"critical":37},[32,32,32,32,32,30,32,30,32,36,36,37,30,37,30,30],null,{"problem":42,"audience":40,"pricing":40,"motivation":48,"time_to_build":40,"stack":52,"openness":53,"stage":54,"team_size":53},{"value":43,"source":7,"evidence":44},"Lets a link show one page to social preview bots and a different page to real users",[45],{"id":46,"by":11,"text":47},"2734431","This is a URL shortener that gives a link that sends \"preview\" processes one place and actual users somewhere else. It works for google plus and facebook and several other…",{"value":49,"source":7,"evidence":50},"Proof-of-concept; maker dislikes URL shorteners in general",[51],{"id":46,"by":11,"text":47},[],"unknown","prototype",{"praise":56,"objections":80,"requests":96,"questions":97,"alternatives":109},[57,73],{"value":58,"source":59,"evidence":60},"Clever routing based on headers and bot detection","commenter",[61,65,69],{"id":62,"by":63,"text":64},"2734423","inportb","Clever use of content negotiation!",{"id":66,"by":67,"text":68},"2734472","makethetick","Very clever\u002Fsneaky!",{"id":70,"by":71,"text":72},"2735013","phillco","Clever. I assume the only way for Facebook and Twitter to circumvent this would be to fake all of the HTTP headers sent by, say, a modern version of Firefox. I don't think it's…",{"value":74,"source":59,"evidence":75},"Useful for setting custom link previews",[76],{"id":77,"by":78,"text":79},"2735360","bgarbiak","This actually could be quite useful. Sometimes people need to post a nicely described link with an adequate thumbnail, yet the Facebook bot finds only some random image. With…",[81,88],{"value":82,"source":59,"evidence":83},"URL shorteners are harmful and should be eliminated",[84],{"id":85,"by":86,"text":87},"2734728","pak","Yet another reason for URL shorteners to be banished from the web (not that this will ever happen). Besides the arcane input requirements of Twitter and the semi-retarded…",{"value":89,"source":59,"evidence":90},"Preview bots could be defeated by caching or faking headers",[91,95],{"id":92,"by":93,"text":94},"2734699","jasondavies","To defend against this, social networking sites should simply cache the link that the preview bot sees, and send users there directly instead.",{"id":70,"by":71,"text":72},[],[98],{"value":99,"source":59,"evidence":100},"How does it distinguish HEAD and GET or bot requests?",[101,105],{"id":102,"by":103,"text":104},"2734544","rmccue","At a guess: HEAD requests give one URL, GET requests give another?",{"id":106,"by":107,"text":108},"2734564","MattBearman","I think it knows the user agent of specific bots and serves different pages based on that, as social networks tend to do a full GET request in order to grab a screenshot.",[110],{"value":111,"source":59,"evidence":112},"Twitter's own link handling",[113],{"id":114,"by":115,"text":116},"2734785","billpg","That's one thing that mildly annoys me about twitter. It clearly knows where a shortened link is heading because it reveals the full URL on the mouseover. Given that information,…",{"comments":31,"answered":32,"key":118},[119,120],{"id":46,"text":47},{"id":121,"text":122},"2734609","It's actually several things, including user agent strings, HTTP accept\u002Faccept language. The underlying script allows you to route between n different destinations based on…",{"commenters":124,"max_depth":36,"maker_replies":31,"first_comment_mins":125,"lifespan_hours":126},14,12,40,[128,130,132,136,138,140,142,143,146,150,153,154,159,161,163,165],[46,32,32,129,11,37],"maker\u002Fneutral\u002Fidea",[85,37,32,131,86,32],"other\u002Fcritical\u002Fidea",[133,37,32,134,135,32],"2734896","commenter\u002Fneutral\u002Fidea","covati",[137,37,32,134,86,32],"2735669",[121,31,32,139,11,37],"maker\u002Fneutral\u002Fexecution",[70,31,30,141,71,32],"project\u002Fpositive\u002Fexecution",[114,36,32,131,115,32],[77,144,30,145,78,32],4,"project\u002Fpositive\u002Fidea",[147,30,32,148,149,32],"2734846","other\u002Fneutral\u002Fidea","lawn",[102,151,36,152,103,32],6,"project\u002Fneutral\u002Fexecution",[106,151,36,152,107,32],[155,156,37,157,158,32],"2741575",7,"project\u002Fcritical\u002Fexecution","TobbenTM",[66,160,30,141,67,32],8,[92,33,37,162,93,32],"project\u002Fcritical\u002Fidea",[62,164,30,141,63,32],10,[166,167,30,168,169,32],"2734769",11,"project\u002Fpositive\u002Fnone","lbarrow",[],[172,177,182,187,191,195],{"id":173,"name":174,"points":175,"category":176},"2720341","GoPollGo",65,"web_saas",{"id":178,"name":179,"points":180,"category":181},"2723800","Twecommend",64,"consumer_social",{"id":183,"name":184,"points":185,"category":186},"2728110","iOS Theme for jQuery Mobile",51,"languages",{"id":188,"name":189,"points":190,"category":20},"2724861","Weekend project",39,{"id":192,"name":193,"points":194,"category":181},"2720937","ShoutFast",32,{"id":196,"name":197,"points":198,"category":181},"2714360","radiotanda",28,false,"v2",{"id":202,"name":5,"line":203,"ai":199,"cat":20,"year":13,"points":14,"comments":15,"rec":27,"s":204,"top":18,"kw":205,"maker":11,"domain":10,"tier":19,"attempts":32,"strip":206,"url":9,"mix":207,"praise":58,"objection":82,"sub":21},2734360,"This is a URL shortener that gives a link that sends \"preview\" processes one place and actual users…",0.23,[21,24,25,26],"0000050503315155",[30,31,32,31],1793990873699]