[{"data":1,"prerenderedAt":156},["ShallowReactive",2],{"project-4129337":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":33,"aspects":34,"strip":36,"post_text":30,"what":37,"said":64,"maker_in_thread":105,"shape":108,"grid":110,"attempts":118,"same_week":119,"maker_shows":148,"maker_hidden":149,"reader_version":150,"card":151},"4129337","Teena","Unix in Python, powered by Tornado","title","Show HN: Teena - Unix in Python, powered by Tornado","https:\u002F\u002Fgithub.com\u002Fzacharyvoase\u002Fteena","github.com","zacharyvoase",1340064217,2012,58,3,398,1677,24,"notable","dev_tools","unix shell utilities library","library",[24,25,26,27,28],"python","tornado","unix pipes","event loop","child processes","quiet",null,{"positive":32,"neutral":33,"mixed":32,"critical":32},0,1,{"design":35},{"positive":32,"critical":32},[32,32,15],{"problem":38,"audience":30,"pricing":30,"motivation":47,"time_to_build":30,"stack":52,"openness":62,"stage":63,"team_size":62},{"value":39,"source":40,"evidence":41},"Unix-style pipes, signals and child process handling in Python using async I\u002FO","inferred",[42,44],{"id":43},"post",{"id":45,"by":11,"text":46},"4129342","Note from the author: this is still a work in progress, but I wanted to demonstrate that Tornado (and async I\u002FO in general) is useful for more than just network servers.",{"value":48,"source":49,"evidence":50},"To show that Tornado and async I\u002FO are useful beyond network servers","maker",[51],{"id":45,"by":11,"text":46},[53,57],{"value":54,"source":49,"evidence":55},"Python",[56],{"id":43},{"value":58,"source":49,"evidence":59},"Tornado",[60,61],{"id":43},{"id":45,"by":11,"text":46},"unknown","prototype",{"praise":65,"objections":74,"requests":82,"questions":83,"alternatives":92},[66],{"value":67,"source":68,"evidence":69},"Commenter found the idea cool and built something similar using the Tornado event loop","commenter",[70],{"id":71,"by":72,"text":73},"4129771","chubot","This is cool... I started something very similar to this 6 months ago. I took the Tornado event loop (rather than depending all of Tornado) and made it work with pipes, signals,…",[75],{"value":76,"source":68,"evidence":77},"Tornado seems a heavy dependency for this kind of project",[78],{"id":79,"by":80,"text":81},"4138679","infinite8s","Why tornado instead of asyncore? Tornado seems like a heavy dependency for this type of project.",[],[84,88],{"value":85,"source":68,"evidence":86},"Why Tornado instead of asyncore?",[87],{"id":79,"by":80,"text":81},{"value":89,"source":68,"evidence":90},"How does its API compare to Node.js streams with pipe()?",[91],{"id":71,"by":72,"text":73},[93,97,101],{"value":94,"source":68,"evidence":95},"Node.js streams (pipe, tee)",[96],{"id":71,"by":72,"text":73},{"value":98,"source":68,"evidence":99},"asyncore",[100],{"id":79,"by":80,"text":81},{"value":102,"source":68,"evidence":103},"GNU parallel",[104],{"id":71,"by":72,"text":73},{"comments":33,"answered":32,"key":106},[107],{"id":45,"text":46},{"commenters":15,"max_depth":33,"maker_replies":33,"first_comment_mins":33,"lifespan_hours":109},43,[111,113,115],[71,32,32,112,72,32],"commenter\u002Fpositive\u002Fidea",[45,33,32,114,11,33],"maker\u002Fneutral\u002Fidea",[79,116,15,117,80,32],2,"project\u002Fneutral\u002Fdesign",[],[120,124,128,133,138,143],{"id":121,"name":122,"points":123,"category":20},"4113866","Easel",346,{"id":125,"name":126,"points":127,"category":20},"4137820","Action.io",210,{"id":129,"name":130,"points":131,"category":132},"4123523","Redis Dashboard",194,"infrastructure",{"id":134,"name":135,"points":136,"category":137},"4110686","Samo Colors",94,"creative",{"id":139,"name":140,"points":141,"category":142},"4112286","WakeMyself",76,"consumer_social",{"id":144,"name":145,"points":146,"category":147},"4127094","Stairway",68,"productivity",4,false,"v2",{"id":152,"name":5,"line":6,"ai":149,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":30,"top":18,"kw":153,"maker":11,"domain":10,"tier":19,"attempts":32,"strip":154,"url":9,"mix":155,"praise":67,"objection":76,"sub":21},4129337,[24,25,26,27,28],"003",[32,33,32,32],1793990882615]