[{"data":1,"prerenderedAt":423},["ShallowReactive",2],{"project-8888089":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":36,"aspects":37,"strip":44,"post_text":45,"what":46,"said":102,"maker_in_thread":223,"shape":234,"grid":238,"attempts":385,"same_week":386,"maker_shows":18,"maker_hidden":415,"reader_version":416,"card":417},"8888089","blessed-contrib","Building terminal dashboards using ASCII\u002FANSI art and JavaScript","title","Show HN: Building terminal dashboards using ASCII\u002FANSI art and JavaScript","https:\u002F\u002Fgithub.com\u002Fyaronn\u002Fblessed-contrib","github.com","yaronn01",1421260539,2015,305,55,49,2565,2,"legend","dev_tools","terminal dashboard library","library",[24,25,26,27,28],"terminal dashboard","ascii charts","node.js","ncurses alternative","blessed","loved",0.464,{"positive":32,"neutral":33,"mixed":34,"critical":35},17,16,3,1,37,{"design":38,"execution":40,"docs":41,"idea":42},{"positive":18,"critical":39},0,{"positive":35,"critical":39},{"positive":35,"critical":39},{"positive":43,"critical":35},5,[43,39,34,39,34,43,39,34,43,35,43,34,34,34,39,43,34,34,43,34,43,34,39,34,34,39,34,43,34,39,39,34,34,39,43,43,43,43,43,43],null,{"problem":47,"audience":45,"pricing":45,"motivation":58,"time_to_build":63,"stack":67,"openness":99,"stage":100,"team_size":101},{"value":48,"source":49,"evidence":50},"Showing dashboards and charts directly in a terminal","inferred",[51,54],{"id":52,"by":11,"text":53},"8890166","It took me a few weeks, one of them was fully on this project. Most of the time was spent on investigating and improving the different canvas implementations (map and charts work…",{"id":55,"by":56,"text":57},"8891788","cgb_","Wow this is the coolest thing I've seen in the terminal since I discovered a sparkline bash script. I've embarrassingly used gnuplot's ascii output to realtime chart Cisco…",{"value":59,"source":60,"evidence":61},"Inspiration and a fit for the author's dashboard work at HP","maker",[62],{"id":52,"by":11,"text":53},{"value":64,"source":60,"evidence":65},"A few weeks, one of them full-time",[66],{"id":52,"by":11,"text":53},[68,73,85,90],{"value":69,"source":60,"evidence":70},"JavaScript",[71],{"id":72},"post",{"value":74,"source":75,"evidence":76},"Node.js","commenter",[77,81],{"id":78,"by":79,"text":80},"8890018","andrewchambers","So bringing some of the web designers into the terminal isn't such a bad thing after all, they have great taste. I'm partially sad its written in nodejs, but I can't really think…",{"id":82,"by":83,"text":84},"8890514","mdcox","This is really nice! Just built something quick with it and I find it way easier to work with than something like ncurses, though that might just be because I work with…",{"value":28,"source":60,"evidence":86},[87],{"id":88,"by":11,"text":89},"8890481","It's easy to do. The grid layout is optional. You can give relative and absolute positions. The first code sample in the readme shows something like this (though position is…",{"value":91,"source":60,"evidence":92},"node-drawille",[93,96],{"id":94,"by":11,"text":95},"8894295","in the node-drawille dependency: https:\u002F\u002Fgithub.com\u002Fmadbence\u002Fnode-drawille",{"id":97,"by":11,"text":98},"8890656","Initially I used chart.js to paint the charts but I had to introduce it so many flags (no label Transformation, sensitive spacing etc) that I reverted to do it myself (even…","open_source","unknown","solo",{"praise":103,"objections":134,"requests":157,"questions":179,"alternatives":194},[104,119,123],{"value":105,"source":75,"evidence":106},"Looks cool and nostalgic, reminiscent of BBS days",[107,111,115],{"id":108,"by":109,"text":110},"8891157","SwellJoe","That's both adorable and oddly soothing to watch. Moreso than \"nice\" graphics, actually. It may be that I'm old enough to remember when text terminals were the way we interfaced…",{"id":112,"by":113,"text":114},"8892447","psp","Reminds me of modem days and BBSs. Sigh.",{"id":116,"by":117,"text":118},"8890682","jszymborski","ahahah this is great... the map looks like it's something out of War Games",{"value":120,"source":75,"evidence":121},"Easier to work with than ncurses",[122],{"id":82,"by":83,"text":84},{"value":124,"source":75,"evidence":125},"Useful for monitoring dashboards",[126,130],{"id":127,"by":128,"text":129},"8890254","tlrobinson","Neat. One cool thing about this is you could wire up a SSH server to show this when you login. \"ssh stats.mycompany.com\". Or you could wire it up to a browser-based terminal…",{"id":131,"by":132,"text":133},"8890137","auvi","this would cool to connect to newrelic type app analytics data",[135,145,150],{"value":136,"source":75,"evidence":137},"Example data is random or hard-coded, not real data sources",[138,142],{"id":139,"by":140,"text":141},"8890062","hbz","Seems to be randomly generated- https:\u002F\u002Fgithub.com\u002Fyaronn\u002Fblessed-contrib\u002Fblob\u002Fmaster\u002Fexamples\u002Fdashboard.js#L92-L101",{"id":143,"by":11,"text":144},"8890084","I'm the Author. Yes, data in this sample is random or hard coded.",{"value":146,"source":75,"evidence":147},"Node.js is a questionable choice for terminal apps",[148,149],{"id":82,"by":83,"text":84},{"id":78,"by":79,"text":80},{"value":151,"source":75,"evidence":152},"Terminal ncurses-style UI is an ugly hack",[153],{"id":154,"by":155,"text":156},"8894009","zokier","> I think it's telling that after 50 years, and all the work on GUI's, this is still a good idea. While definitely neat, I'm not that sure that this is actually a good idea. I…",[158,165,172],{"value":159,"source":75,"evidence":160},"More examples with real data gathering",[161],{"id":162,"by":163,"text":164},"8892797","lightstalker","Awesome project. I will definitely be using this! The provided example is a great illustration of how to build various layouts and use the various widgets. I find it lacks any…",{"value":166,"source":75,"evidence":167},"Standalone widgets usable in tmux",[168],{"id":169,"by":170,"text":171},"8890454","yellowapple","How difficult would it be to split the widgets off into their own independent\u002Fstandalone terminal applications? I like the idea, but I'd rather lay things out myself with tmux…",{"value":173,"source":75,"evidence":174},"Inline image support via iTerm2",[175],{"id":176,"by":177,"text":178},"8892378","sgt","It would get really interesting if this combined with the new inline image support present in iTerm2 (only nightly builds for now). Basically you can do something like : ``` ESC…",[180,187],{"value":181,"source":75,"evidence":182},"Where does the data come from in the examples",[183],{"id":184,"by":185,"text":186},"8890036","FleegmanGuy","It's not 100% clear unless you can read the code. Where is the data coming from? Seems like a lot of animated data with limited data points specified.",{"value":188,"source":75,"evidence":189},"Why a gauge instead of a progress bar",[190],{"id":191,"by":192,"text":193},"8893970","leovander","Why choose 'gauge' over the widely used 'progress bar'? Keep up the good work, it looks sleek.",[195,202,205,212,219],{"value":196,"source":75,"evidence":197},"vtop",[198],{"id":199,"by":200,"text":201},"8891013","morenoh149","reminds me ALOT of https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fvtop you guys should join forces",{"value":28,"source":60,"evidence":203},[204],{"id":88,"by":11,"text":89},{"value":206,"source":75,"evidence":207},"OhUI",[208],{"id":209,"by":210,"text":211},"8892114","arcatek","As a side note, there is also OhUI (https:\u002F\u002Fgithub.com\u002Farcanis\u002Fohui, i'm the author) which has the same goal than blessed, but a different api (dom-based) and codebase. Blessed…",{"value":213,"source":75,"evidence":214},"Conky",[215],{"id":216,"by":217,"text":218},"8890374","clebio","Along with using Tmux as your login shell [1], this would be a nice equivalent to something like Conky [2]. Or, replacing `top` with sparklines, say. [1]:…",{"value":220,"source":75,"evidence":221},"gnuplot ASCII output",[222],{"id":55,"by":56,"text":57},{"comments":224,"answered":225,"key":226},12,8,[227,230,231],{"id":228,"text":229},"8890090","Hi everyone, I am the author. Let me know if you have any questions or ideas.",{"id":52,"text":53},{"id":232,"text":233},"8893836","what do you mean? You are right that in this sample I have not changed the values of the X axis but the api allows you to change its values anytime.",{"commenters":235,"max_depth":43,"maker_replies":224,"first_comment_mins":236,"lifespan_hours":237},39,311,116,[239,241,243,246,247,251,255,256,258,261,263,266,270,272,275,277,281,282,285,287,288,289,291,292,297,299,303,306,309,312,313,314,316,318,320,322,324,327,330,332,336,338,340,342,344,348,350,355,359,361,365,369,373,377,381],[55,39,43,240,56,39],"project\u002Fpositive\u002Fdesign",[228,35,39,242,11,35],"maker\u002Fneutral\u002Fnone",[244,35,34,242,245,39],"8890105","edpichler",[52,35,39,242,11,35],[248,35,39,249,250,39],"8890948","other\u002Fneutral\u002Fnone","hnriot",[252,35,34,253,254,39],"8892165","project\u002Fmixed\u002Fexecution","hip911",[232,35,39,242,11,35],[162,35,43,257,163,39],"project\u002Fpositive\u002Fdocs",[259,35,39,260,11,35],"8893862","maker\u002Fneutral\u002Fdocs",[176,18,34,262,177,39],"project\u002Fneutral\u002Fidea",[264,18,39,265,11,35],"8893817","maker\u002Fneutral\u002Fidea",[267,34,43,268,269,39],"8890067","project\u002Fpositive\u002Fidea","warble",[154,34,35,271,155,39],"project\u002Fcritical\u002Fidea",[82,273,43,274,83,39],4,"project\u002Fpositive\u002Fexecution",[276,273,39,242,11,35],"8890523",[278,273,34,279,280,39],"8891375","project\u002Fneutral\u002Fdocs","bostonvaulter2",[127,43,34,262,128,39],[169,283,34,284,170,39],6,"project\u002Fneutral\u002Fdesign",[286,283,34,284,79,39],"8890461",[88,283,39,284,11,35],[209,283,39,249,210,39],[108,290,43,268,109,39],7,[216,225,34,262,217,39],[293,294,34,295,296,39],"8890634",9,"project\u002Fmixed\u002Fidea","tmandry",[97,294,39,298,11,35],"maker\u002Fneutral\u002Fexecution",[300,301,43,268,302,39],"8896061",10,"bradleyjohnson",[199,304,34,305,200,39],11,"project\u002Fneutral\u002Fnone",[307,224,43,268,308,39],"8890058","Gyonka",[184,310,34,311,185,39],13,"project\u002Fneutral\u002Fexecution",[139,310,34,311,140,39],[143,310,39,311,11,35],[315,310,34,284,185,39],"8890147",[317,310,39,242,11,35],"8890316",[191,319,34,284,192,39],14,[321,319,39,284,11,35],"8894006",[112,323,34,262,113,39],15,[325,323,34,262,326,39],"8893005","xofer",[328,33,43,268,329,39],"8890973","Natsu",[78,32,34,331,79,39],"project\u002Fmixed\u002Fdesign",[333,32,39,334,335,39],"8891012","commenter\u002Fneutral\u002Fnone","juliangregorian",[337,32,39,334,79,39],"8891036",[339,32,39,334,335,39],"8891125",[341,32,39,334,79,39],"8891218",[131,343,34,262,132,39],18,[345,346,34,284,347,39],"8894273",19,"touristtam",[94,346,39,349,11,35],"maker\u002Fneutral\u002Fdesign",[351,352,43,353,354,39],"8890015",20,"project\u002Fpositive\u002Fnone","simlevesque",[356,357,43,353,358,39],"8889988",21,"ely-s",[116,360,43,240,117,39],22,[362,363,43,353,364,39],"8893286",23,"wincus",[366,367,43,353,368,39],"8890359",24,"dmamills",[370,371,43,353,372,39],"8891561",25,"willempienaar",[374,375,43,353,376,39],"8912124",26,"jpetersonmn",[378,379,43,353,380,39],"8892515",27,"passfree",[382,383,43,353,384,39],"8890675",28,"boydc",[],[387,392,397,402,407,411],{"id":388,"name":389,"points":390,"category":391},"8869305","LoveActualize",252,"consumer_social",{"id":393,"name":394,"points":395,"category":396},"8857632","sideprojects.assembly.com",175,"web_saas",{"id":398,"name":399,"points":400,"category":401},"8886842","c-smart-pointers",126,"languages",{"id":403,"name":404,"points":405,"category":406},"8882197","Powder",107,"games",{"id":408,"name":409,"points":410,"category":396},"8886588","Youth Service Network (ysnmn.org)",100,{"id":412,"name":413,"points":414,"category":20},"8881090","Slalom",96,false,"v2",{"id":418,"name":5,"line":6,"ai":415,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":419,"top":18,"kw":420,"maker":11,"domain":10,"tier":19,"attempts":39,"strip":421,"url":9,"mix":422,"praise":105,"objection":136,"sub":21},8888089,0.46,[24,25,26,27,28],"5030350351533305335353033035300330555555",[32,33,34,35],1794036527355]