[{"data":1,"prerenderedAt":274},["ShallowReactive",2],{"project-3553793":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":28,"sentiment":29,"stance_mix":30,"scored_comments":35,"aspects":36,"strip":41,"post_text":42,"what":43,"said":64,"maker_in_thread":162,"shape":169,"grid":174,"attempts":239,"same_week":240,"maker_shows":33,"maker_hidden":267,"reader_version":268,"card":269},"3553793","JavaScript Instagram-like Filters","Yeah, I am aware of that.","maker","Show HN: JavaScript Instagram-like Filters","https:\u002F\u002Fgithub.com\u002Falexmic\u002Ffiltrr","github.com","alexmic",1328438098,2012,127,27,152,1677,10,"notable","creative","image filters","library",[24,25,26,27],"javascript image filters","instagram filters","canvas filters","client-side image processing","curious",0.15,{"positive":31,"neutral":32,"mixed":33,"critical":34},5,9,1,3,18,{"performance":37,"idea":39,"execution":40},{"positive":38,"critical":33},0,{"positive":34,"critical":38},{"positive":38,"critical":33},[33,34,38,38,31,34,34,31,38,33,34,34,34,33,38,34,34,38,31,38,38,31,38,38,31,34,34],null,{"problem":42,"audience":42,"pricing":42,"motivation":42,"time_to_build":44,"stack":50,"openness":61,"stage":62,"team_size":63},{"value":45,"source":7,"evidence":46},"A weekend",[47],{"id":48,"by":11,"text":49},"3555091","Yeah, I am aware of that. This was literally a weekend thing, so I'll try and improve it when I have some time. Thanks for the feedback!",[51],{"value":52,"source":53,"evidence":54},"JavaScript","inferred",[55,57],{"id":56},"post",{"id":58,"by":59,"text":60},"3555003","kwamenum86","You should rewrite a \"pseudo-non-blocking\" implementation of these filters. Right now they block the UI thread for too long, which limits how useful these can be. Web workers in…","open_source","unknown","solo",{"praise":65,"objections":82,"requests":105,"questions":134,"alternatives":143},[66],{"value":67,"source":68,"evidence":69},"Great work, a fantastic contribution, useful for user profile images","commenter",[70,74,78],{"id":71,"by":72,"text":73},"3554232","hhastings","What a fantastic contribution & thanks for considering MIT\u002FMPL. This will definitely come in handy as a small side side feature for user profiles on my upcoming projects.",{"id":75,"by":76,"text":77},"3553977","franze","really great work there. not a big fan of the license choice, though.",{"id":79,"by":80,"text":81},"3554503","leak","This is awesome. Thanks!",[83,90,97],{"value":84,"source":68,"evidence":85},"Filters block the UI thread and are too slow on the client side",[86,87],{"id":58,"by":59,"text":60},{"id":88,"by":59,"text":89},"3555330","Web workers are not well-supported yet: http:\u002F\u002Fcaniuse.com\u002F#feat=webworkers The most important omissions from that list are IE \u003C 10. Using web workers if present and falling back…",{"value":91,"source":68,"evidence":92},"Filter quality is not on par with Instagram",[93],{"id":94,"by":95,"text":96},"3556410","huytoan_pc","It's definitely a good start, but IMO the quality of the filters are not on par with those of Instagram. A better JS filter library I found is CarmanJS. Check out their demos at…",{"value":98,"source":68,"evidence":99},"GPL license is restrictive for closed applications",[100,101],{"id":75,"by":76,"text":77},{"id":102,"by":103,"text":104},"3554035","Keverw","I don't really like the GPL also. Make's it basically useless in a closed application but this isn't the place to rant.",[106,115,123],{"value":107,"source":68,"evidence":108},"Switch license to MIT",[109,112],{"id":110,"by":76,"text":111},"3554189","yeah, strongly preferred. here are two very handy articles about the differences between open source (and other) licenses…",{"id":113,"by":11,"text":114},"3555092","Thanks for this - will change the licence to MIT.",{"value":116,"source":68,"evidence":117},"Use web workers or chunked processing for performance",[118,119],{"id":58,"by":59,"text":60},{"id":120,"by":121,"text":122},"3555109","iso8859-1","Why not use WebWorkers?",{"value":124,"source":68,"evidence":125},"Save filtered images locally or server side",[126,130],{"id":127,"by":128,"text":129},"3554732","whymsicalburito","Awesome work! Is there a way that these filtered images could then be saved server side to be used later without the js?",{"id":131,"by":132,"text":133},"3554913","maxjaderberg","this is very good! is it possible to save the filtered images locally?",[135,139],{"value":136,"source":68,"evidence":137},"Can filtered images be saved server side without JavaScript?",[138],{"id":127,"by":128,"text":129},{"value":140,"source":68,"evidence":141},"Can filtered images be saved locally?",[142],{"id":131,"by":132,"text":133},[144,151,155],{"value":145,"source":68,"evidence":146},"glfx.js (WebGL shader filters)",[147],{"id":148,"by":149,"text":150},"3556021","paulirish","I just added fltrr to https:\u002F\u002Fgithub.com\u002Fbebraw\u002Fjswiki\u002Fwiki\u002FImage-manipulation which tracks libraries that do this. glfx.js does exactly what you suggest, leveraging WebGL…",{"value":152,"source":68,"evidence":153},"CamanJS",[154],{"id":94,"by":95,"text":96},{"value":156,"source":68,"evidence":157},"vintagejs",[158],{"id":159,"by":160,"text":161},"3555287","pie","Another recent Lomo-esque JS library: http:\u002F\u002Fvintagejs.com\u002F",{"comments":31,"answered":33,"key":163},[164,165,168],{"id":48,"text":49},{"id":166,"text":167},"3554050","I don't really have a reason for picking GPL. Would you prefer MIT instead?",{"id":113,"text":114},{"commenters":170,"max_depth":171,"maker_replies":31,"first_comment_mins":172,"lifespan_hours":173},19,6,134,20,[175,177,181,183,185,188,189,190,192,194,196,201,203,207,209,211,214,215,216,217,220,222,224,228,231,233,236],[58,38,33,176,59,38],"project\u002Fcritical\u002Fperformance",[178,38,34,179,180,38],"3555074","project\u002Fneutral\u002Fperformance","newhouseb",[148,38,38,182,149,38],"other\u002Fneutral\u002Fnone",[48,38,38,184,11,33],"maker\u002Fneutral\u002Fperformance",[186,38,31,187,59,38],"3555334","project\u002Fpositive\u002Fnone",[120,38,34,179,121,38],[88,38,34,179,59,38],[71,33,31,191,72,38],"project\u002Fpositive\u002Fidea",[159,193,38,182,160,38],2,[94,34,33,195,95,38],"project\u002Fcritical\u002Fexecution",[197,198,34,199,200,38],"3554517",4,"project\u002Fneutral\u002Fidea","rokhayakebe",[75,31,34,202,76,38],"project\u002Fmixed\u002Fnone",[204,31,34,205,206,38],"3554006","project\u002Fneutral\u002Fnone","cleverjake",[102,31,33,208,103,38],"project\u002Fcritical\u002Fnone",[166,31,38,210,11,33],"maker\u002Fneutral\u002Fnone",[212,31,34,210,213,38],"3554086","icebraining",[110,31,34,210,76,38],[113,31,38,210,11,33],[127,171,31,191,128,38],[218,171,38,219,11,33],"3555087","maker\u002Fneutral\u002Fdocs",[221,171,38,219,11,33],"3555097",[131,223,31,191,132,38],7,[225,223,38,226,227,38],"3555037","commenter\u002Fneutral\u002Fdocs","jamesflorentino",[229,223,38,230,76,38],"3555138","commenter\u002Fneutral\u002Fnone",[79,232,31,187,80,38],8,[234,32,34,205,235,38],"3553928","DanBlake",[237,32,34,205,238,38],"3553947","Kiro",[],[241,246,251,256,259,263],{"id":242,"name":243,"points":244,"category":245},"3560321","Tinycon",271,"dev_tools",{"id":247,"name":248,"points":249,"category":250},"3557805","JobPoacher",182,"web_saas",{"id":252,"name":253,"points":254,"category":255},"3560750","Cron.io",153,"infrastructure",{"id":257,"name":258,"points":172,"category":245},"3546149","PageBlox",{"id":260,"name":261,"points":262,"category":245},"3558466","Parallax.js",108,{"id":264,"name":265,"points":266,"category":245},"3541060","Hackerest",95,false,"v2",{"id":270,"name":5,"line":6,"ai":267,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":29,"top":18,"kw":271,"maker":11,"domain":10,"tier":19,"attempts":38,"strip":272,"url":9,"mix":273,"praise":67,"objection":84,"sub":21},3553793,[24,25,26,27],"130053350133310330500500533",[31,32,33,34],1793990878567]