[{"data":1,"prerenderedAt":383},["ShallowReactive",2],{"project-21545703":3},{"id":4,"name":5,"line":5,"line_source":6,"title":7,"url":8,"domain":9,"maker":10,"posted_at":11,"year":12,"points":13,"comments":14,"rank_in_year":15,"shown_in_year":16,"top":17,"tier":18,"category":19,"subcategory":20,"format":21,"keywords":22,"reception":27,"sentiment":28,"stance_mix":29,"scored_comments":33,"aspects":34,"strip":44,"post_text":47,"what":48,"said":90,"maker_in_thread":194,"shape":203,"grid":206,"attempts":343,"same_week":344,"maker_shows":43,"maker_hidden":375,"reader_version":376,"card":377},"21545703","Simple PDF to PNG Server","title","Show HN: Simple PDF to PNG Server","https:\u002F\u002Fsecureview.cloudbrowser.xyz\u002Fsecretpage-canneverbefound.html","secureview.cloudbrowser.xyz","slowenough",1573832461,2019,78,56,604,2195,28,"notable","infrastructure","document conversion server","api",[23,24,25,26],"pdf to png","document conversion","imagemagick","libreoffice","mixed",-0.154,{"positive":30,"neutral":31,"mixed":32,"critical":31},6,12,0,30,{"execution":35,"performance":38,"idea":39,"docs":40,"design":41,"privacy":42},{"positive":36,"critical":37},1,2,{"positive":32,"critical":37},{"positive":36,"critical":37},{"positive":32,"critical":37},{"positive":36,"critical":32},{"positive":36,"critical":43},4,[32,45,36,32,32,45,32,46,45,45,32,45,36,32,45,36,32,45,45,32,32,36,36,36,46,32,46,45,32,46,32,36,36,36,36,46,32,36,32,46],3,5,null,{"problem":49,"audience":47,"pricing":47,"motivation":59,"time_to_build":47,"stack":66,"openness":87,"stage":88,"team_size":89},{"value":50,"source":51,"evidence":52},"Converting PDF and Office documents to images on a server without the client downloading the file","maker",[53,56],{"id":54,"by":10,"text":55},"21546038","OK, that's a good point. I think the only reason was I looked at PDF.js and felt the quality was not so good, and then I tried ImageMagick and found it gave good quality, so I…",{"id":57,"by":10,"text":58},"21546870","It sounds like that makes you think the site accepts a link to a PDF\u002FXLS\u002FDOC and returns a PNG. Actually, that is basically what happens in the original context for this service.…",{"value":60,"source":51,"evidence":61},"Built as a secure document viewer for a remote cloud browser product",[62,65],{"id":63,"by":10,"text":64},"21545992","It looks like the URLs named like that are trying to hack you and steal your secrets, I get that. The reason they're named that way is an artifact of how this was meant to be a…",{"id":57,"by":10,"text":58},[67,73,79,83],{"value":68,"source":51,"evidence":69},"Node.js",[70],{"id":71,"by":10,"text":72},"21545880","Just a digital ocean droplet running FreeBSD, then PM2 running Node.JS and ImageMagick built with multicore support.",{"value":74,"source":51,"evidence":75},"ImageMagick",[76],{"id":77,"by":10,"text":78},"21545711","Actually it just uses ImageMagick and soffice under the hood, so it can do way more than PDF. I've tested it with DOC, DOCX, XLS, and they all seem to work. Edit: in case anyone…",{"value":80,"source":51,"evidence":81},"LibreOffice (soffice)",[82],{"id":77,"by":10,"text":78},{"value":84,"source":51,"evidence":85},"FreeBSD",[86],{"id":71,"by":10,"text":72},"open_source","launched","unknown",{"praise":91,"objections":107,"requests":133,"questions":156,"alternatives":171},[92,100],{"value":93,"source":94,"evidence":95},"Good design argument for server-side conversion to protect clients from file exploits","commenter",[96],{"id":97,"by":98,"text":99},"21546144","mirimir","That's a great point. I typically don't like using remote resources for stuff that I can do locally. But for iffy pdfs, it's a good tradeoff. Edit: Nice to see the PDF capability…",{"value":101,"source":94,"evidence":102},"Minimalist design",[103],{"id":104,"by":105,"text":106},"21549463","andrewstuart","I like the minimalism.",[108,119,126],{"value":109,"source":94,"evidence":110},"Uploading files to a random-looking URL is a privacy and security risk",[111,115],{"id":112,"by":113,"text":114},"21545842","jermaustin1","Before I upload and download a file from a random Show HN with URLs like \"secretpage-canneverbefound\" and \"very-secure-manifest-convert\", I'd like to see some source code.…",{"id":116,"by":117,"text":118},"21545791","bluetidepro","Yeah, let's just upload our files to a page that's called \"secretpage-canneverbefound.html\", and with no info other than the 5 word title on HN. -_-",{"value":120,"source":94,"evidence":121},"Multicore ImageMagick will not scale well under concurrent load",[122],{"id":123,"by":124,"text":125},"21546075","z92","ImageMagick with \"multicore\" support won't speed things up the moment number of concurrent requests touches the number of cores you have. And in digital ocean's case you have…",{"value":127,"source":94,"evidence":128},"No warning that files are sent to the server",[129],{"id":130,"by":131,"text":132},"21546221","mobilemidget","No but a mention this is happening serverside and you are actually copying the file to the server kind of notice or message would be correct imho",[134,138,149],{"value":135,"source":94,"evidence":136},"Publish source code",[137],{"id":112,"by":113,"text":114},{"value":139,"source":94,"evidence":140},"Package as a Docker image",[141,145],{"id":142,"by":143,"text":144},"21548376","yegle","Package it as a docker image and you can then run it on cloud.run (Might be expensive though). Disclaimer: I work for Google Cloud.",{"id":146,"by":147,"text":148},"21548777","alpb","Have you considered making this open source and distribute as a container image that people can self-build\u002Fdeploy\u002Fhost on a serverless platform, like a Google Cloud Run? For…",{"value":150,"source":94,"evidence":151},"Support SVG input",[152],{"id":153,"by":154,"text":155},"21546667","7777fps","Does it support SVG?",[157,164],{"value":158,"source":94,"evidence":159},"Does it use Ghostscript and what is the license",[160],{"id":161,"by":162,"text":163},"21546418","4ver","Does this use ghostscript? Was looking into doing this a while back but wasn't sure if I'd have to get a license from Artifex to use it in a SaaS app.",{"value":165,"source":94,"evidence":166},"How does it hold up under heavy traffic",[167],{"id":168,"by":169,"text":170},"21546678","marcus_holmes","hmm, OK, I didn't know that. Thanks that's useful :) Be interesting to see how your demo site holds up under HN front page traffic - I know Imagemagic is used a lot for random…",[172,183,187],{"value":173,"source":94,"evidence":174},"PDF.js client-side rendering",[175,179],{"id":176,"by":177,"text":178},"21545973","devxpy","With superb open source, cross platform libraries like pdfium available to the public, why won't I just do this on the client?",{"id":180,"by":181,"text":182},"21547469","redman25","I used PDF.js in a side project for comparing pdfs and it worked quite well. It runs completely client side, so I can build the site with a static site generator and html:…",{"value":184,"source":94,"evidence":185},"pdfium",[186],{"id":176,"by":177,"text":178},{"value":188,"source":94,"evidence":189},"Existing free online conversion sites",[190],{"id":191,"by":192,"text":193},"21547911","sanjeetsuhag","It seems like there are free sites that do that already.",{"comments":195,"answered":196,"key":197},20,7,[198,199,200],{"id":77,"text":78},{"id":71,"text":72},{"id":201,"text":202},"21546116","Actually I created a Droplet with 6 cores",{"commenters":204,"max_depth":196,"maker_replies":195,"first_comment_mins":36,"lifespan_hours":205},31,191,[207,209,213,214,216,218,222,225,229,233,237,240,243,245,247,249,252,254,255,257,260,263,267,270,272,274,276,278,280,282,286,288,290,292,293,295,297,300,302,306,307,309,310,312,313,316,319,321,325,327,331,333,334,335,337,340],[77,32,32,208,10,36],"project\u002Fpositive\u002Fperformance",[210,32,45,211,212,32],"21545838","maker\u002Fneutral\u002Fexecution","FreeHugs",[71,32,32,211,10,36],[123,32,36,215,124,32],"project\u002Fcritical\u002Fperformance",[201,32,32,217,10,36],"maker\u002Fneutral\u002Fperformance",[219,32,32,220,221,32],"21546712","commenter\u002Fneutral\u002Fperformance","Koshkin",[223,32,32,220,224,32],"21547861","mlyle",[226,32,45,227,228,32],"21549444","project\u002Fneutral\u002Fidea","kodablah",[230,32,32,231,232,32],"21551469","other\u002Fneutral\u002Fnone","johnsonjo",[234,32,46,235,236,32],"21545854","project\u002Fpositive\u002Fnone","dandanio",[238,32,32,239,10,36],"21545926","maker\u002Fneutral\u002Fdocs",[241,32,45,239,242,32],"21546015","michaelmior",[244,32,32,239,10,36],"21546082",[142,32,45,246,143,32],"project\u002Fneutral\u002Fdesign",[248,32,32,211,10,36],"21614216",[250,32,45,251,169,32],"21546598","project\u002Fneutral\u002Fexecution",[253,32,32,211,10,36],"21546633",[168,32,36,215,169,32],[256,32,32,217,10,36],"21546750",[258,32,45,259,169,32],"21546787","maker\u002Fneutral\u002Fnone",[261,32,45,251,262,32],"21547846","ztravis",[264,32,36,265,266,32],"21549298","project\u002Fcritical\u002Fexecution","lixtra",[268,32,32,269,169,32],"21552571","commenter\u002Fneutral\u002Fnone",[153,32,45,271,154,32],"project\u002Fneutral\u002Fnone",[273,32,32,271,10,36],"21546718",[275,32,45,271,154,32],"21565292",[277,32,32,251,10,36],"21614211",[279,32,32,259,10,36],"21547902",[281,32,32,259,10,36],"21551607",[283,32,36,284,285,32],"21564782","maker\u002Fcritical\u002Fexecution","umvi",[112,36,36,287,113,32],"project\u002Fcritical\u002Fprivacy",[63,36,32,289,10,36],"maker\u002Fneutral\u002Fprivacy",[176,37,36,291,177,32],"project\u002Fcritical\u002Fidea",[54,37,32,289,10,36],[97,37,46,294,98,32],"maker\u002Fpositive\u002Fprivacy",[296,37,32,269,10,36],"21546267",[298,37,46,299,177,32],"21546186","maker\u002Fpositive\u002Fnone",[301,37,32,269,10,36],"21546384",[303,37,45,304,305,32],"21546566","project\u002Fneutral\u002Fprivacy","vyuh",[57,37,32,304,10,36],[180,37,46,308,181,32],"project\u002Fpositive\u002Fexecution",[161,45,45,271,162,32],[311,45,32,269,10,36],"21546601",[116,43,36,287,117,32],[314,43,36,287,315,32],"21545804","thatguyagain",[317,43,36,287,318,32],"21545940","exhilaration",[130,43,36,320,131,32],"project\u002Fcritical\u002Fdocs",[322,43,32,323,324,32],"21546424","commenter\u002Fneutral\u002Fdocs","behindsight",[326,43,36,320,131,32],"21553531",[328,46,46,329,330,32],"21547427","project\u002Fpositive\u002Fidea","bluedino",[332,46,32,259,10,36],"21547616",[191,46,36,291,192,32],[146,30,45,251,147,32],[336,30,32,211,10,36],"21614196",[338,196,32,231,339,32],"21551978","fahrixds",[104,341,46,342,105,32],8,"project\u002Fpositive\u002Fdesign",[],[345,350,355,360,365,370],{"id":346,"name":347,"points":348,"category":349},"21559139","Chatwoot",417,"web_saas",{"id":351,"name":352,"points":353,"category":354},"21561613","BrowserGap",253,"security_privacy",{"id":356,"name":357,"points":358,"category":359},"21587935","EasyDB",158,"data",{"id":361,"name":362,"points":363,"category":364},"21558343","2019",144,"ai",{"id":366,"name":367,"points":368,"category":369},"21545291","Scholarref tools",127,"productivity",{"id":371,"name":372,"points":373,"category":374},"21547369","Faster UTF-8 validator",122,"languages",false,"v2",{"id":378,"name":5,"line":5,"ai":375,"cat":19,"year":12,"points":13,"comments":14,"rec":27,"s":379,"top":17,"kw":380,"maker":10,"domain":9,"tier":18,"attempts":32,"strip":381,"url":8,"mix":382,"praise":93,"objection":109,"sub":20},21545703,-0.15,[23,24,25,26],"0310030533031031033001115053050111150105",[30,31,32,31],1794036583020]