[{"data":1,"prerenderedAt":323},["ShallowReactive",2],{"project-19954195":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":43,"post_text":45,"what":46,"said":62,"maker_in_thread":182,"shape":193,"grid":198,"attempts":286,"same_week":287,"maker_shows":32,"maker_hidden":315,"reader_version":316,"card":317},"19954195","UXY","adding structure to Unix tools","title","Show HN: UXY – adding structure to Unix tools","https:\u002F\u002Fgithub.com\u002Fsustrik\u002Fuxy","github.com","rumcajz",1558284779,2019,126,39,364,2195,17,"notable","dev_tools","command-line data tools","cli",[24,25,26,27,28],"unix tools","structured output","tabular data","command line","text formatting","curious",-0.242,{"positive":32,"neutral":33,"mixed":32,"critical":34},1,14,8,24,{"idea":37,"design":39,"execution":41,"docs":42},{"positive":32,"critical":38},3,{"positive":40,"critical":38},0,{"positive":40,"critical":32},{"positive":40,"critical":32},[32,38,38,32,40,32,40,40,38,38,38,38,38,38,32,40,40,38,38,40,40,40,38,40,32,32,40,40,40,32,40,38,40,38,38,38,40,32,44],5,null,{"problem":47,"audience":45,"pricing":45,"motivation":45,"time_to_build":45,"stack":59,"openness":60,"stage":61,"team_size":61},{"value":48,"source":49,"evidence":50},"Unix tool output is unstructured text that is hard to manipulate as tables","inferred",[51,55],{"id":52,"by":53,"text":54},"19957013","dima55","This is becoming a really crowded space. Some other similar tools that make slightly different design choices and that have variable envisioned use cases: -…",{"id":56,"by":57,"text":58},"19958986","imglorp","Seems like an acro-mondeau of UX (user experience) and XY (tabular format). The tool normalizes some of the Unix tool outputs as a table which can be manipulated.",[],"open_source","unknown",{"praise":63,"objections":72,"requests":113,"questions":135,"alternatives":150},[64],{"value":65,"source":66,"evidence":67},"Clean idea that formalizes what unixy tools already do","commenter",[68],{"id":69,"by":70,"text":71},"19956663","kbd","> I'm not sure it's any better than CSV or PSV (pipe), and it also doesn't interoperate with existing tools. I think the point is that it's largely a formalization of what unixy…",[73,81,91,102],{"value":74,"source":66,"evidence":75},"Crowded space; similar tools already exist",[76,77],{"id":52,"by":53,"text":54},{"id":78,"by":79,"text":80},"19959963","majkinetor","There actually far more more tools created so far, for example - https:\u002F\u002Fgithub.com\u002Fadamwiggins\u002Frush - https:\u002F\u002Fgithub.com\u002Fxonsh\u002Fxonsh Its amazing that people still try this…",{"value":82,"source":66,"evidence":83},"PowerShell already provides structured pipelines",[84,88],{"id":85,"by":86,"text":87},"19959126","nailer","> This is becoming a really crowded space. Those who fail to understand powershell are condemned to recreate it poorly. It'd be great for GNU to create a standard for native…",{"id":89,"by":86,"text":90},"19959139","> It's nice for shell scripts, but it makes day-to-day usage cumbersome. How? `ps | kill node`. No pgrep hack because ps output a list of processes, not a line of text. As a Unix…",{"value":92,"source":66,"evidence":93},"Tab and separator choice adds no benefit over CSV",[94,98],{"id":95,"by":96,"text":97},"19957302","inimino","Glad we agree on escaping. I'm still not sure what the value is over CSV, which also has visible delimiters. It's true that you have to establish\u002Fenforce a specific convention…",{"id":99,"by":100,"text":101},"19955935","rabidrat","Fair enough, I've experienced those pains myself. But what is the strategy with UXY? kind of a semi-fixed-width format that is only partially aligned, but still requires…",{"value":103,"source":66,"evidence":104},"Lenient handling of invalid characters risks silent bad data",[105,109],{"id":106,"by":107,"text":108},"19960119","wgoodall01","Isn't it better to crash than to fail silently, possibly storing malformed data?",{"id":110,"by":111,"text":112},"19957919","adrianratnapala","> * any other escape sequence MUST be interpreted as ? (question mark) character. Isn't it better to forbid them? Presumably you are saving the space for further extensions, but…",[114,121,128],{"value":115,"source":66,"evidence":116},"Add a USV output mode",[117],{"id":118,"by":119,"text":120},"19956080","jph","Excellent, thank you for creating UXY! I will donate $50 to you or your favorite charity to encourage a new feature: to-usv, which outputs Unicode separated values (USV) with…",{"value":122,"source":66,"evidence":123},"Support rolling alignment for infinite streams",[124],{"id":125,"by":126,"text":127},"19957689","koolba","> uxy align > Aligns the data with the headers. This is done by resizing the columns so that even the longest value fits into the column. > ... > This command doesn't work with…",{"value":129,"source":66,"evidence":130},"Render output in a graphical toolkit",[131],{"id":132,"by":133,"text":134},"19956109","dharmatech","Cool project! Have you considered having a way to render output in a graphical toolkit? See for example: https:\u002F\u002Fgithub.com\u002Fdharmatech\u002FPsReplWpf which renders PowerShell output…",[136,143],{"value":137,"source":66,"evidence":138},"Why is the tool named UXY",[139],{"id":140,"by":141,"text":142},"19958926","mijoharas","Can anyone elaborate on why the tool is named UXY? I couldn't find anything in the repo, and there is no wiki.",{"value":144,"source":66,"evidence":145},"Why not use TSV or CSV instead",[146,149],{"id":147,"by":100,"text":148},"19955617","Very cool, I've had a similar idea myself recently! Though, why not go with a simpler format like TSV (tab-separated values)? Then you don't have to worry about quoting and…",{"id":95,"by":96,"text":97},[151,159,163,167,171,175],{"value":152,"source":66,"evidence":153},"PowerShell",[154,155],{"id":85,"by":86,"text":87},{"id":156,"by":157,"text":158},"19956276","nerdponx","Seems a lot like the Powershell model, which I have mixed feelings about. It's nice for shell scripts, but it makes day-to-day usage cumbersome. I think you can actually use…",{"value":160,"source":66,"evidence":161},"csvkit",[162],{"id":52,"by":53,"text":54},{"value":164,"source":66,"evidence":165},"Miller",[166],{"id":52,"by":53,"text":54},{"value":168,"source":66,"evidence":169},"jq",[170],{"id":52,"by":53,"text":54},{"value":172,"source":66,"evidence":173},"xsv",[174],{"id":52,"by":53,"text":54},{"value":176,"source":66,"evidence":177},"csvquote",[178],{"id":179,"by":180,"text":181},"19958241","dbro","While not exactly what you asked for, I wrote something similar called csvquote ( https:\u002F\u002Fgithub.com\u002Fdbro\u002Fcsvquote ) which transforms \"typical\" CSV or TSV data to use the ASCII…",{"comments":38,"answered":38,"key":183},[184,187,190],{"id":185,"text":186},"19957796","Currently it uses the alignment of the headers as the default. It's only when a field exceeds the size of the header when the output is misaligned. The next record returns to the…",{"id":188,"text":189},"19958110","Postel's principle: By liberal in what you accept... It means that the tool won't crash just because there's weird input.",{"id":191,"text":192},"19955634","Tabs are a nightmare to deal with when you want to align the columns. Also, I don't consider tabs to be human readable: They are too easily confused with spaces. (Case in point:…",{"commenters":194,"max_depth":195,"maker_replies":38,"first_comment_mins":196,"lifespan_hours":197},25,4,275,29,[199,201,205,208,209,212,213,217,221,224,226,228,231,234,236,238,241,242,244,246,247,249,251,252,254,257,260,261,262,265,268,272,273,275,278,279,281,283,284],[52,40,32,200,53,40],"project\u002Fcritical\u002Fidea",[202,40,38,203,204,40],"19957372","project\u002Fneutral\u002Fidea","jasonpeacock",[206,40,38,203,207,40],"19958308","vthriller",[85,40,32,200,86,40],[210,40,40,211,79,40],"19959948","commenter\u002Fneutral\u002Fnone",[78,40,32,200,79,40],[214,32,40,215,216,40],"19957470","other\u002Fneutral\u002Fnone","bayareanative",[218,32,40,219,220,40],"19957586","other\u002Fneutral\u002Fidea","xelxebar",[118,222,38,223,119,40],2,"project\u002Fneutral\u002Fdesign",[225,222,38,223,100,40],"19956141",[227,222,38,223,119,40],"19956828",[229,222,38,223,230,40],"19956166","driax",[232,222,38,233,96,40],"19956839","project\u002Fneutral\u002Fexecution",[235,222,38,223,119,40],"19957212",[95,222,32,237,96,40],"project\u002Fcritical\u002Fdesign",[239,222,40,211,240,40],"19957318","kragen",[179,222,40,219,180,40],[156,38,38,243,157,40],"project\u002Fmixed\u002Fidea",[245,38,38,203,111,40],"19957903",[89,38,40,215,86,40],[248,38,40,211,157,40],"19959507",[250,38,40,211,79,40],"19959699",[125,195,38,233,126,40],[185,195,40,253,11,32],"maker\u002Fneutral\u002Fexecution",[255,44,32,237,256,40],"19958395","no_gravity",[110,258,32,259,111,40],6,"project\u002Fcritical\u002Fexecution",[188,258,40,253,11,32],[106,258,40,211,107,40],[263,258,40,211,264,40],"19962119","lioeters",[266,258,32,267,111,40],"19965725","project\u002Fcritical\u002Fdocs",[269,270,40,215,271,40],"19962745",7,"vram22",[132,34,38,223,133,40],[274,34,40,215,53,40],"19957600",[140,276,38,277,141,40],9,"project\u002Fneutral\u002Fdocs",[56,276,38,277,57,40],[147,280,38,223,100,40],10,[191,280,40,282,11,32],"maker\u002Fneutral\u002Fdesign",[99,280,32,237,100,40],[69,280,44,285,70,40],"project\u002Fpositive\u002Fidea",[],[288,292,297,302,306,311],{"id":289,"name":290,"points":291,"category":20},"19968271","Keikai",386,{"id":293,"name":294,"points":295,"category":296},"19981869","Scar",363,"infrastructure",{"id":298,"name":299,"points":300,"category":301},"19946941","The Cyber Plumber's Handbook",277,"learning_science",{"id":303,"name":304,"points":305,"category":20},"19984582","Metacode",209,{"id":307,"name":308,"points":309,"category":310},"19960313","Link Drop",188,"productivity",{"id":312,"name":313,"points":314,"category":20},"19960412","Oya",116,false,"v2",{"id":318,"name":5,"line":6,"ai":315,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":319,"top":18,"kw":320,"maker":11,"domain":10,"tier":19,"attempts":40,"strip":321,"url":9,"mix":322,"praise":65,"objection":74,"sub":21},19954195,-0.24,[24,25,26,27,28],"133101003333331003300030110001030333015",[32,33,32,34],1794036577657]