[{"data":1,"prerenderedAt":285},["ShallowReactive",2],{"project-2622558":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":28,"sentiment":29,"stance_mix":30,"scored_comments":34,"aspects":35,"strip":40,"post_text":41,"what":42,"said":82,"maker_in_thread":186,"shape":189,"grid":194,"attempts":248,"same_week":249,"maker_shows":32,"maker_hidden":277,"reader_version":278,"card":279},"2622558","Google Charts done in Canvas, side project","title","Show HN: Google Charts done in Canvas, side project","http:\u002F\u002Fwww.mattgreer.org\u002Fpost\u002F1yokulIntro","mattgreer.org","city41",1307299054,2011,143,28,64,1097,6,"notable","languages","javascript charting library","library",[23,24,25,26,27],"canvas charts","javascript charts","google charts alternative","html5 canvas","bsd license","roasted",-0.182,{"positive":31,"neutral":32,"mixed":33,"critical":17},3,1,0,10,{"idea":36,"performance":39},{"positive":37,"critical":38},2,5,{"positive":32,"critical":32},[32,33,33,33,32,32,33,32,31,33,33,33,33,33,33,33,33,33,32,33,38,38,38,32,33,33,33,33],null,{"problem":43,"audience":41,"pricing":41,"motivation":57,"time_to_build":41,"stack":64,"openness":80,"stage":81,"team_size":81},{"value":44,"source":45,"evidence":46},"Offers an alternative to Google Charts that renders on Canvas without calling Google's API","inferred",[47,49,53],{"id":48},"post",{"id":50,"by":51,"text":52},"2622580","tnc","Its very good to have an alternative to google charts. Your license should cover commercial use.",{"id":54,"by":55,"text":56},"2622620","dangrossman","It's a standard 3-clause BSD license. Commercial use and distribution is allowed.",{"value":58,"source":59,"evidence":60},"Personal experiment and exploration","maker",[61],{"id":62,"by":10,"text":63},"2622639","I did not know that. Thanks for the tip. My project is more of an experiment and for personal exploration and all that. So I don't mind if it has a strong competitor.",[65,72],{"value":66,"source":45,"evidence":67},"JavaScript",[68],{"id":69,"by":70,"text":71},"2622669","d0vs","Useless since now Google charts are SVG-based: http:\u002F\u002Fcode.google.com\u002Fintl\u002Fen\u002Fapis\u002Fchart\u002Finteractive\u002Fdocs\u002F",{"value":73,"source":45,"evidence":74},"HTML5 Canvas",[75,76],{"id":69,"by":70,"text":71},{"id":77,"by":78,"text":79},"2622686","dstein","Canvas has some advantages, like working in IE, and easily exporting to PNG.","open_source","unknown",{"praise":83,"objections":96,"requests":119,"questions":131,"alternatives":139},[84,89],{"value":85,"source":86,"evidence":87},"Good to have an alternative to Google Charts","commenter",[88],{"id":50,"by":51,"text":52},{"value":90,"source":86,"evidence":91},"Looks great",[92],{"id":93,"by":94,"text":95},"2622616","patrickod","One of the major gripes I had when I played around with the Google charts API is that it didn't seem to support log scales. Implement that and I'm sure you'll have won the hearts…",[97,101,111],{"value":98,"source":86,"evidence":99},"Google Charts is now SVG-based, so Canvas charts are less useful",[100],{"id":69,"by":70,"text":71},{"value":102,"source":86,"evidence":103},"Closure local rendering still calls Google's chart server",[104,108],{"id":105,"by":106,"text":107},"2622938","irahul","> You can run the charts through Google's closure locally It talks to google chart server. ``` goog.ui.ServerChart.CHART_SERVER_URI = 'http:\u002F\u002Fchart.apis.google.com\u002Fchart'; ``` It…",{"id":109,"by":106,"text":110},"2622939","I looked at the source for goog\u002Fui\u002Fserverchart.js and checked the documentation(yes, in that order:)). There is no way to make it work without going through the Google chartserver.",{"value":112,"source":86,"evidence":113},"No log scale support",[114,115],{"id":93,"by":94,"text":95},{"id":116,"by":117,"text":118},"2623019","personalcompute","You can definitely use log scales with google charts, just it won't do it for you. You'll have to perform the math beforehand and send custom number labels.",[120,124],{"value":121,"source":86,"evidence":122},"Add log scale support",[123],{"id":93,"by":94,"text":95},{"value":125,"source":86,"evidence":126},"Recommend a tutorial or source for running charts locally",[127],{"id":128,"by":129,"text":130},"2622636","pforpal","could you recomment a tutorial or blogpost or source repo demonstrating how to do this?",[132],{"value":133,"source":86,"evidence":134},"Can Closure ServerChart be run without Google's chartserver?",[135],{"id":136,"by":137,"text":138},"2622903","anko","I can't find any way to use that locally - it says ui.ServerChart Extends goog.ui.Component Will construct a chart using Google's chartserver. is there some way to stop it…",[140,147,158,165,172,179],{"value":141,"source":86,"evidence":142},"Google Closure library",[143],{"id":144,"by":145,"text":146},"2622609","yannis","You can run the charts through Google's closure locally http:\u002F\u002Fclosure-library.googlecode.com\u002Fsvn\u002Ftrunk\u002Fclosure\u002Fgoog\u002Fdemos\u002Fserverchart.html All the routines are public, there is…",{"value":148,"source":86,"evidence":149},"Protovis and D3",[150,154],{"id":151,"by":152,"text":153},"2622729","knowledgesale","Great job! Also, there are many other Javascript visualization libraries besides the Google Chart API that you might want to know about (if you did't). All of them are open and…",{"id":155,"by":156,"text":157},"2622798","evlapix","Also D3, which evolved from Protovis. http:\u002F\u002Fmbostock.github.com\u002Fd3\u002Ftutorial\u002Fprotovis.html",{"value":159,"source":86,"evidence":160},"Highcharts",[161],{"id":162,"by":163,"text":164},"2623510","matthew-wegner","http:\u002F\u002Fwww.highcharts.com is quite nice too!",{"value":166,"source":86,"evidence":167},"Raphaël",[168],{"id":169,"by":170,"text":171},"2623074","lmok","Raphaël is another great Javastcript visualisation library. http:\u002F\u002Fraphaeljs.com",{"value":173,"source":86,"evidence":174},"JavaScript InfoVis Toolkit",[175],{"id":176,"by":177,"text":178},"2622738","wh-uws","Also JavaScript InfoVis Toolkit http:\u002F\u002Fthejit.org\u002F",{"value":180,"source":86,"evidence":181},"Processing.js",[182],{"id":183,"by":184,"text":185},"2622785","tarmstrong","Somewhat related: there's a Processing port to JavaScript. http:\u002F\u002Fprocessingjs.org\u002F You can write your code in Processing or JavaScript, which is nice if you want to take…",{"comments":32,"answered":33,"key":187},[188],{"id":62,"text":63},{"commenters":190,"max_depth":191,"maker_replies":32,"first_comment_mins":192,"lifespan_hours":193},24,4,9,15,[195,197,199,201,203,204,205,208,209,211,213,214,215,218,220,222,223,224,227,229,230,232,233,237,238,239,242,245],[144,33,32,196,145,33],"project\u002Fcritical\u002Fidea",[128,33,33,198,129,33],"commenter\u002Fneutral\u002Fnone",[200,33,33,198,145,33],"2622657",[62,33,33,202,10,32],"maker\u002Fneutral\u002Fidea",[136,33,32,196,137,33],[109,33,32,196,106,33],[206,33,33,198,207,33],"2624018","tosh",[105,33,32,196,106,33],[151,32,31,210,152,33],"project\u002Fneutral\u002Fidea",[176,32,33,212,177,33],"other\u002Fneutral\u002Fnone",[183,32,33,212,184,33],[155,32,33,212,156,33],[216,32,33,212,217,33],"2622874","trjordan",[219,32,33,198,152,33],"2623281",[221,32,33,212,117,33],"2623029",[169,32,33,212,170,33],[162,32,33,212,163,33],[225,32,33,212,226,33],"2623843","kilian",[93,37,32,228,94,33],"project\u002Fcritical\u002Fperformance",[116,37,33,198,117,33],[50,31,38,231,51,33],"project\u002Fpositive\u002Fidea",[54,31,38,231,55,33],[234,191,38,235,236,33],"2622958","project\u002Fpositive\u002Fperformance","tchvil",[69,38,32,196,70,33],[77,38,33,198,78,33],[240,38,33,198,241,33],"2624023","jasonkester",[243,38,33,198,244,33],"2624080","nxn",[246,38,33,198,247,33],"2624196","mofle",[],[250,255,260,265,270,274],{"id":251,"name":252,"points":253,"category":254},"2622909","Log.io",205,"infrastructure",{"id":256,"name":257,"points":258,"category":259},"2621144","Hacker News Instant",91,"consumer_social",{"id":261,"name":262,"points":263,"category":264},"2616479","RecruiterBox",43,"web_saas",{"id":266,"name":267,"points":268,"category":269},"2631574","Sleepwiththefish.es",39,"games",{"id":271,"name":272,"points":273,"category":264},"2616041","JSON CMS",37,{"id":275,"name":276,"points":273,"category":269},"2625707","Paperblocks",false,"v2",{"id":280,"name":5,"line":5,"ai":277,"cat":19,"year":12,"points":13,"comments":14,"rec":28,"s":281,"top":17,"kw":282,"maker":10,"domain":9,"tier":18,"attempts":33,"strip":283,"url":8,"mix":284,"praise":85,"objection":98,"sub":20},2622558,-0.18,[23,24,25,26,27],"1000110130000000001055510000",[31,32,33,17],1793990873250]