[{"data":1,"prerenderedAt":167},["ShallowReactive",2],{"project-33931677":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":32,"aspects":34,"strip":37,"post_text":39,"what":40,"said":67,"maker_in_thread":103,"shape":113,"grid":116,"attempts":130,"same_week":131,"maker_shows":159,"maker_hidden":160,"reader_version":161,"card":162},"33931677","TUI-apps","Interactive exercises for Linux CLI text processing commands","title","Show HN: Interactive exercises for Linux CLI text processing commands","https:\u002F\u002Fgithub.com\u002Flearnbyexample\u002FTUI-apps\u002Ftree\u002Fmain\u002FCLI-Exercises","github.com","asicsp",1670671163,2022,69,7,795,2570,31,"notable","learning_science","interactive exercises","cli",[24,25,26,27,28],"linux cli","text processing","command line exercises","textual tui","shell practice","quiet",null,{"positive":32,"neutral":33,"mixed":33,"critical":33},3,0,{"idea":35},{"positive":36,"critical":33},2,[33,38,33,38,33,38,33],5,"Last month, I started learning a Python TUI framework called Textual. After working on a 4x4 board game, I made an interactive app to test your CLI text processing skills with 40 beginner to intermediate level exercises. The app is fairly basic in terms of features — only single input file, so no stdin data, multiple files, etc.\n\nMost of the exercises in this app is based on my Computing from the Command Line ebook (https:\u002F\u002Flearnbyexample.github.io\u002Fcli-computing\u002Fpreface.html). I hope to improve the TUI app to support all the 200+ exercises sometime next year.",{"problem":41,"audience":47,"pricing":30,"motivation":51,"time_to_build":30,"stack":55,"openness":64,"stage":65,"team_size":66},{"value":42,"source":43,"evidence":44},"Practicing CLI text processing skills with exercises","maker",[45],{"id":46},"post",{"value":48,"source":43,"evidence":49},"Beginner to intermediate learners of Linux CLI text processing",[50],{"id":46},{"value":52,"source":43,"evidence":53},"Learning the Textual Python TUI framework and promoting the author's Computing from the Command Line ebook",[54],{"id":46},[56,60],{"value":57,"source":43,"evidence":58},"Python",[59],{"id":46},{"value":61,"source":43,"evidence":62},"Textual TUI framework",[63],{"id":46},"unknown","launched","solo",{"praise":68,"objections":88,"requests":89,"questions":95,"alternatives":96},[69,81],{"value":70,"source":71,"evidence":72},"Useful for brushing up Linux CLI skills and learning new tricks","commenter",[73,77],{"id":74,"by":75,"text":76},"33939761","ravoori","Excellent way to brush up Linux CLI skills and pick up a new trick or two along the way!",{"id":78,"by":79,"text":80},"33936221","exceptione","Thanks, I could pick up some useful tricks there!",{"value":82,"source":71,"evidence":83},"Looks great and worth trying",[84],{"id":85,"by":86,"text":87},"33935715","LionTamer","This looks great, I’m excited to check it out!",[],[90],{"value":91,"source":92,"evidence":93},"Support for multiple input files and stdin data","inferred",[94],{"id":46},[],[97],{"value":98,"source":43,"evidence":99},"Tkinter regex exercises by the same maker",[100],{"id":101,"by":11,"text":102},"33933221","Last year, I did a similar project for 75 Python regular expressions exercises: https:\u002F\u002Fgithub.com\u002Flearnbyexample\u002Fpy_regular_expressions\u002Ftree\u002Fmaster\u002Finteractive_exercises That…",{"comments":104,"answered":33,"key":105},4,[106,107,110],{"id":101,"text":102},{"id":108,"text":109},"33940823","Thanks for the feedback :)",{"id":111,"text":112},"33940829","Hope you find it useful and learn something new :)",{"commenters":104,"max_depth":36,"maker_replies":104,"first_comment_mins":114,"lifespan_hours":115},229,20,[117,120,122,124,126,127,128],[101,33,33,118,11,119],"maker\u002Fneutral\u002Fnone",1,[74,119,38,121,75,33],"project\u002Fpositive\u002Fidea",[108,119,33,123,11,119],"commenter\u002Fneutral\u002Fnone",[85,36,38,125,86,33],"project\u002Fpositive\u002Fnone",[111,36,33,123,11,119],[78,32,38,121,79,33],[129,32,33,123,11,119],"33940834",[],[132,137,141,146,150,155],{"id":133,"name":134,"points":135,"category":136},"33923907","LearnGPT",352,"ai",{"id":138,"name":139,"points":140,"category":136},"33910863","Hello (sayhello.so)",318,{"id":142,"name":143,"points":144,"category":145},"33931971","Pg_CRDT",296,"data",{"id":147,"name":148,"points":149,"category":145},"33969908","XetHub",279,{"id":151,"name":152,"points":153,"category":154},"33922754","Pynecone",209,"dev_tools",{"id":156,"name":157,"points":158,"category":154},"33906520","Ezy",155,10,false,"v2",{"id":163,"name":5,"line":6,"ai":160,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":30,"top":18,"kw":164,"maker":11,"domain":10,"tier":19,"attempts":33,"strip":165,"url":9,"mix":166,"praise":70,"objection":-1,"sub":21},33931677,[24,25,26,27,28],"0505050",[32,33,33,33],1794036628346]