[{"data":1,"prerenderedAt":246},["ShallowReactive",2],{"project-22343712":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":29,"sentiment":30,"stance_mix":31,"scored_comments":35,"aspects":36,"strip":42,"post_text":44,"what":45,"said":76,"maker_in_thread":147,"shape":157,"grid":160,"attempts":196,"same_week":210,"maker_shows":33,"maker_hidden":238,"reader_version":239,"card":240},"22343712","Nodebook","Multi-Lang Web REPL on Docker","title","Show HN: Nodebook – Multi-Lang Web REPL on Docker","https:\u002F\u002Fgithub.com\u002Fnetgusto\u002Fnodebook","github.com","netgusto",1581886687,2020,82,17,771,3028,26,"notable","dev_tools","code playground","web_app",[24,25,26,27,28],"repl","notebook","docker","code runner","coding interview","curious",0.033,{"positive":32,"neutral":33,"mixed":34,"critical":34},3,6,1,11,{"idea":37,"design":39,"execution":40,"privacy":41},{"positive":34,"critical":38},0,{"positive":34,"critical":38},{"positive":38,"critical":34},{"positive":38,"critical":38},[38,43,43,32,32,38,34,38,32,32,32,38,43,32,38,32,38],5,null,{"problem":46,"audience":44,"pricing":44,"motivation":53,"time_to_build":44,"stack":57,"openness":74,"stage":75,"team_size":75},{"value":47,"source":48,"evidence":49},"Quickly browse, edit and run code snippets in a browser or terminal","maker",[50],{"id":51,"by":11,"text":52},"22343741","I came up with Nodebook while training for coding interviews. I wrote this because I wanted to work in the kind of environment used for these interviews, namely an editor in a…",{"value":54,"source":48,"evidence":55},"Practising coding interviews and running quick experiments",[56],{"id":51,"by":11,"text":52},[58,66],{"value":59,"source":48,"evidence":60},"Docker",[61,63],{"id":62},"post",{"id":64,"by":11,"text":65},"22350012","> if it could run itself inside a docker container It could be done by running the snippet containers in the same docker host as the one running nodebook (by exposing the host's…",{"value":67,"source":68,"evidence":69},"Node.js","commenter",[70],{"id":71,"by":72,"text":73},"22350037","joshstrange","Yes, I was thinking docker-in-docker was probably the answer to that. Or a single docker container with all runtimes installed in it so you didn't have to deal with the DiD…","open_source","unknown",{"praise":77,"objections":88,"requests":103,"questions":127,"alternatives":135},[78],{"value":79,"source":68,"evidence":80},"Looks nice and useful for quick experiments",[81,85],{"id":82,"by":83,"text":84},"22346687","pjmlp","It looks nice, thanks for sharing it.",{"id":86,"by":72,"text":87},"22349711","Hmm, this is very interesting. Currently I use CodeRunner on my mac to do this kind of one-offs but I rarely save them. It's mainly an easily way for me to test out a theory on…",[89,96],{"value":90,"source":68,"evidence":91},"Fails to run on macOS without security workarounds",[92],{"id":93,"by":94,"text":95},"22347379","mattsfrey","It would go a long way to package this such that somebody on a mac can just download it and run, or install with brew. Also after disabling security, chmoding +x, and attempting…",{"value":97,"source":68,"evidence":98},"Unauthenticated local API is a security concern",[99],{"id":100,"by":101,"text":102},"22347933","asah","I'm curious about security... On one hand it's running inside a container? OTOH, there's no key\u002Fpassword required for clients to connect i.e. any local software can connect? For…",[104,112,117],{"value":105,"source":68,"evidence":106},"Homebrew or easier macOS install",[107,108],{"id":93,"by":94,"text":95},{"id":109,"by":110,"text":111},"22347628","talkingtab","As a long time mac user, I suggest getting access to a Linux machine and even learning how to use it if necessary. If you use the mac terminal its not all that hard. Options are:…",{"value":113,"source":68,"evidence":114},"Run snippets inside Docker containers",[115,116],{"id":86,"by":72,"text":87},{"id":71,"by":72,"text":73},{"value":118,"source":48,"evidence":119},"Token-based access for the API",[120,124],{"id":121,"by":122,"text":123},"22348050","mbreese","One mechanism I’ve seen (Jupyter) is to print out a token when the listening service (Webserver) starts. Then this is the credential needed to login to the web GUI. The token is…",{"id":125,"by":11,"text":126},"22348166","Oh yes I see, it’s indeed a nice in between. I will do that, like it! Thank you.",[128],{"value":129,"source":68,"evidence":130},"Are there caveats to embedding it in an iFrame?",[131],{"id":132,"by":133,"text":134},"22347147","cholantesh","Very cool; just curious as I am trying to implement something similar in a current project and I'm not the best frontend developer: would there be any caveats associated with…",[136,143],{"value":137,"source":68,"evidence":138},"repl.it",[139],{"id":140,"by":141,"text":142},"22348228","fenollp","From a quick look this looks like a subset of what https:\u002F\u002Frepl.it\u002F provides (which is fine!). Any features \u002F wild ideas you feel deserve more attention than a quick look?",{"value":144,"source":68,"evidence":145},"CodeRunner",[146],{"id":86,"by":72,"text":87},{"comments":33,"answered":148,"key":149},2,[150,151,154],{"id":51,"text":52},{"id":152,"text":153},"22348278","It does indeed look like repl.it! I'd say the main feature is owning the code you write (on your filesystem) which allows your scm on top of it. Also, the cli mode (watch and…",{"id":155,"text":156},"22347556","Hey! Thanks for the feedback. I'd need to sign the binary for mac for it to run without system security flag. Or indeed, brew; I'll think about it. As for the other problems you…",{"commenters":35,"max_depth":158,"maker_replies":33,"first_comment_mins":33,"lifespan_hours":159},4,23,[161,163,165,169,171,173,174,176,178,180,183,185,186,188,190,192,194],[51,38,38,162,11,34],"maker\u002Fneutral\u002Fidea",[82,38,43,164,83,38],"maker\u002Fpositive\u002Fnone",[166,38,43,167,168,38],"22347118","project\u002Fpositive\u002Fidea","giancarlostoro",[132,38,32,170,133,38],"project\u002Fneutral\u002Fdesign",[140,34,32,172,141,38],"project\u002Fneutral\u002Fidea",[152,34,38,172,11,34],[93,148,34,175,94,38],"project\u002Fcritical\u002Fexecution",[155,148,38,177,11,34],"maker\u002Fneutral\u002Fexecution",[109,148,32,179,110,38],"project\u002Fneutral\u002Fexecution",[181,148,32,179,182,38],"22348480","em500",[86,32,32,184,72,38],"project\u002Fmixed\u002Fidea",[64,32,38,170,11,34],[71,32,43,187,72,38],"project\u002Fpositive\u002Fdesign",[100,158,32,189,101,38],"project\u002Fneutral\u002Fprivacy",[191,158,38,189,11,34],"22348014",[121,158,32,193,122,38],"maker\u002Fneutral\u002Fprivacy",[125,158,38,195,11,34],"maker\u002Fpositive\u002Fprivacy",[197,202,206,209],{"id":198,"t":199,"points":200,"comments":201},"17916399",1536140185,69,12,{"id":203,"t":204,"points":205,"comments":32},"17962962",1536697045,16,{"id":207,"t":208,"points":148,"comments":38},"22341324",1581857473,{"id":4,"t":12,"points":14,"comments":15},[211,216,221,225,229,233],{"id":212,"name":213,"points":214,"category":215},"22344254","art42",277,"ai",{"id":217,"name":218,"points":219,"category":220},"22327086","DelayWebpage",232,"productivity",{"id":222,"name":223,"points":224,"category":20},"22318677","ShellMagic.xyz",213,{"id":226,"name":227,"points":228,"category":20},"22364040","Trevor demo",184,{"id":230,"name":231,"points":232,"category":20},"22338879","Configurable Route Planning",143,{"id":234,"name":235,"points":236,"category":237},"22371436","Top Fantasy Reads",107,"learning_science",false,"v2",{"id":241,"name":5,"line":6,"ai":238,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":242,"top":18,"kw":243,"maker":11,"domain":10,"tier":19,"attempts":158,"strip":244,"url":9,"mix":245,"praise":79,"objection":90,"sub":21},22343712,0.03,[24,25,26,27,28],"05533010333053030",[32,33,34,34],1794036586608]