[{"data":1,"prerenderedAt":628},["ShallowReactive",2],{"project-28670252":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":28,"sentiment":29,"stance_mix":30,"scored_comments":35,"aspects":36,"strip":46,"post_text":48,"what":49,"said":81,"maker_in_thread":235,"shape":246,"grid":250,"attempts":591,"same_week":592,"maker_shows":42,"maker_hidden":620,"reader_version":621,"card":622},"28670252","Tidy Viewer","a cross-platform CSV pretty printer for viewer enjoyment","title","Show HN: Tidy Viewer – a cross-platform CSV pretty printer for viewer enjoyment","https:\u002F\u002Fgithub.com\u002Falexhallam\u002Ftv","github.com","flusteredBias",1632748503,2021,392,136,80,2533,4,"legend","dev_tools","csv pretty printer","cli",[24,25,26,27],"csv viewer","terminal csv","pretty print csv","command line csv","mixed",-0.123,{"positive":31,"neutral":32,"mixed":33,"critical":34},12,32,3,19,66,{"design":37,"idea":40,"execution":41,"performance":43,"docs":44},{"positive":38,"critical":39},2,9,{"positive":33,"critical":18},{"positive":42,"critical":18},1,{"positive":42,"critical":38},{"positive":45,"critical":45},0,[47,38,42,18,33,42,33,38,33,33,38,33,33,42,42,45,42,45,33,38,42,33,42,45,45,47,42,33,47,45,47,33,47,42,33,33,45,18,47,42],5,null,{"problem":50,"audience":57,"pricing":48,"motivation":61,"time_to_build":48,"stack":65,"openness":78,"stage":79,"team_size":80},{"value":51,"source":52,"evidence":53},"Glancing at CSV files in the terminal is hard; cat and column output is not pretty enough","maker",[54],{"id":55,"by":11,"text":56},"28670253","I spend a lot of time in the terminal and want to quickly glance at a csv files without making a new script, opening excel, or using a tui. I made tidy-viewer (tv) because…",{"value":58,"source":52,"evidence":59},"People who spend time in the terminal and need to quickly view CSV files",[60],{"id":55,"by":11,"text":56},{"value":62,"source":52,"evidence":63},"Wanted a quick way to glance at CSVs in the terminal without writing a script, opening Excel, or using a TUI",[64],{"id":55,"by":11,"text":56},[66],{"value":67,"source":68,"evidence":69},"Rust","commenter",[70,74],{"id":71,"by":72,"text":73},"28671031","mileza","I think it's a great first effort, but there are a number of possible improvements to do. The most obvious one would be to support passing the file as an argument instead of…",{"id":75,"by":76,"text":77},"28673734","thamer","Some (most?) tools that output data in columns and fit each one to the largest value in that column need to scan the whole file as a first pass just to start displaying data. Not…","open_source","beta","solo",{"praise":82,"objections":107,"requests":144,"questions":176,"alternatives":203},[83,98],{"value":84,"source":68,"evidence":85},"Pretty output and handy for quick CSV viewing",[86,90,94],{"id":87,"by":88,"text":89},"28671982","frankfrank13","Brings a tear to my eye. Everything else I've used is so heavy-handed, I just wanted the jq of CSV's",{"id":91,"by":92,"text":93},"28680333","watersb","This is beautiful. Perl could do this, but I have to think about it every time. Often, I don't want to think.",{"id":95,"by":96,"text":97},"28687456","xtat","Very handy thanks for sharing.",{"value":99,"source":52,"evidence":100},"Fast on large files",[101,104],{"id":102,"by":11,"text":103},"28675089","> these design choices seem to limit its use to relatively small files 1. As a rule-of-thumb, I have been working on functionality before optimization. That said, `tv` is really…",{"id":105,"by":11,"text":106},"28671638","I love visidata! But when I want to just glance at a csv file I reach for tv (I used to use `column` which is more of a tv competitor than visidata). This is for a couple…",[108,124,129,133],{"value":109,"source":68,"evidence":110},"Cannot take a file path argument; requires cat or redirection",[111,112,116,120],{"id":71,"by":72,"text":73},{"id":113,"by":114,"text":115},"28672552","Someone","I think it’s a bad idea to go against half a century of conventions without good reason. It’s very surprising to see a tool that only works as a filter, and doesn’t take file…",{"id":117,"by":118,"text":119},"28671643","stavros","This is quite nice, but I don't like how it cuts off the output (instead of making it scrollable). Also, why require the use of `cat`? Accepting a filename so I can do `tv…",{"id":121,"by":122,"text":123},"28673504","gurgeous","Hey, great start. I spend half my day in CSVs and I am definitely your target audience. Most of the time I use bat, visidata or tabview. In many ways tabview is the best, though…",{"value":125,"source":68,"evidence":126},"Output is cut off instead of scrollable",[127,128],{"id":117,"by":118,"text":119},{"id":121,"by":122,"text":123},{"value":130,"source":68,"evidence":131},"Loads whole file into memory",[132],{"id":75,"by":76,"text":77},{"value":134,"source":68,"evidence":135},"Prebuilt binaries and install needed newer libc",[136,140],{"id":137,"by":138,"text":139},"28672204","iso1210","Demo looks great, alas the prebuilt binaries don't work ``` $ wget https:\u002F\u002Fgithub.com\u002Falexhallam\u002Ftv\u002Freleases\u002Fdownload\u002F0.0.10\u002Ftidy-viewer --2021-09-27 16:47:43--…",{"id":141,"by":142,"text":143},"28673821","mejari","Does it really need libc6 >= 2.31? Having problems installing it on Ubuntu 16.04 LTS because of that dependency.",[145,151,159,170],{"value":146,"source":68,"evidence":147},"Accept file path as argument",[148,149,150],{"id":71,"by":72,"text":73},{"id":117,"by":118,"text":119},{"id":121,"by":122,"text":123},{"value":152,"source":68,"evidence":153},"Add scrolling, horizontal and vertical",[154,155],{"id":121,"by":122,"text":123},{"id":156,"by":157,"text":158},"28671352","dotancohen","Very nice! How does it handle CSVs that are wider or longer than the terminal? How does it deal with columns that are exceptionally long, or multiline? Often when working with…",{"value":160,"source":68,"evidence":161},"Add a space after the prompt",[162,166],{"id":163,"by":164,"text":165},"28670623","GrayShade","Cool project (and written in my favourite language), but I really hate how there's no space at the end of your prompt.",{"id":167,"by":168,"text":169},"28671325","TacticalCoder","It's very weird for a project made to \"maximize viewer enjoyment\" to not put a space after the prompt. The one saved character on the line is definitely not worth the illegible…",{"value":171,"source":68,"evidence":172},"Support older Rust versions",[173],{"id":174,"by":11,"text":175},"28672823","First of all - kudos on tackling this task - it is indeed very annoying to get CSVs to render nicely on a terminal. > How does tidy-viewer compare with csvlook? The most…",[177,181,188],{"value":178,"source":68,"evidence":179},"How does it handle wide or long CSVs and multiline cells?",[180],{"id":156,"by":157,"text":158},{"value":182,"source":68,"evidence":183},"How does it handle quoted fields and escaped characters?",[184],{"id":185,"by":186,"text":187},"28671219","tambourine_man","This looks great. How well does it handle the edge cases of CSV, like escaped commas, quoted text, escaped quotes, and all that fun, fun stuff?",{"value":189,"source":68,"evidence":190},"What is the difference from xsv, column, or visidata?",[191,195,199],{"id":192,"by":193,"text":194},"28671656","davidatbu","What is the value-add when compared to using `xsv` to pretty print? Is it only the fact that it highlights NA values?",{"id":196,"by":197,"text":198},"28672530","sigg3","This is kinda cool, but why not just use column? The video of catting into tv is equivalent to: ``` column -s, -t FILE ```",{"id":200,"by":201,"text":202},"28671105","rlue","Why not visidata? https:\u002F\u002Fwww.visidata.org\u002F https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=N1CBDTgGtOU (It does much, much more than pretty printing, but no reason you can't use it for that.)",[204,208,216,220,228],{"value":205,"source":68,"evidence":206},"column",[207],{"id":196,"by":197,"text":198},{"value":209,"source":68,"evidence":210},"xsv",[211,215],{"id":212,"by":213,"text":214},"28671726","ComputerGuru","XSV [0] can also pretty-print (minus the colors), but that's just the tip of the iceberg as far as what it can do. It's very handle for quick statistical analysis of CSV input.…",{"id":192,"by":193,"text":194},{"value":217,"source":68,"evidence":218},"visidata",[219],{"id":200,"by":201,"text":202},{"value":221,"source":68,"evidence":222},"csvkit csvlook",[223,227],{"id":224,"by":225,"text":226},"28675093","timwis","csvkit’s csvlook works similarly but outputs a markdown table.",{"id":174,"by":11,"text":175},{"value":229,"source":68,"evidence":230},"PowerShell Format-Table",[231],{"id":232,"by":233,"text":234},"28672762","claimred","Wanted to mention that Windows PowerShell supports pretty CSV printing out of the box, like so ``` Import-Csv .\\Levels.csv | Format-Table Count Level elevation Level name Name…",{"comments":236,"answered":237,"key":238},36,14,[239,240,243],{"id":55,"text":56},{"id":241,"text":242},"28671034","Thanks! I appreciate the compliment!",{"id":244,"text":245},"28671955","I would need more details on what you mean by \"pre-parsing\". It works with any deliminator, it could be comma-separated, pipe-separated, etc.",{"commenters":247,"max_depth":248,"maker_replies":236,"first_comment_mins":45,"lifespan_hours":249},76,8,92,[251,253,257,259,261,264,266,269,272,276,277,280,284,288,290,294,297,298,301,304,306,309,311,314,316,318,321,323,326,329,332,336,338,342,344,347,349,351,354,357,360,362,364,366,369,372,374,377,379,382,384,386,389,392,395,397,399,401,404,407,410,412,415,419,422,424,426,429,431,434,436,439,441,443,446,449,452,454,458,461,463,465,468,471,473,475,476,478,480,483,485,487,490,492,496,497,500,502,506,508,511,513,516,518,521,523,525,527,529,531,533,534,536,538,540,542,544,546,548,551,553,555,557,560,562,565,568,571,573,575,578,580,582,584,587,589],[55,45,45,252,11,42],"maker\u002Fneutral\u002Fnone",[254,45,47,255,256,45],"28670906","project\u002Fpositive\u002Fnone","IgorPartola",[241,45,45,258,11,42],"maker\u002Fpositive\u002Fnone",[71,45,33,260,72,45],"project\u002Fneutral\u002Fdesign",[262,45,33,260,263,45],"28671451","MobiusHorizons",[113,45,42,265,114,45],"project\u002Fcritical\u002Fdesign",[267,45,42,265,268,45],"28673490","GuB-42",[270,45,45,271,263,45],"28683931","commenter\u002Fneutral\u002Fnone",[273,45,33,274,275,45],"28671205","project\u002Fneutral\u002Fidea","moritonal",[244,45,45,271,11,42],[278,45,33,260,279,45],"28672465","mixmastamyk",[281,45,33,282,283,45],"28673577","project\u002Fneutral\u002Fnone","inostia",[285,45,47,286,287,45],"28676694","project\u002Fpositive\u002Fdesign","hnlmorg",[289,45,45,271,11,42],"28708035",[291,45,33,292,293,45],"28671591","project\u002Fmixed\u002Fexecution","einpoklum",[295,45,45,271,296,45],"28671678","notafraudster",[174,45,45,282,11,42],[299,45,42,265,300,45],"28711965","bofh23",[302,45,42,265,303,45],"28671683","contravariant",[305,45,45,260,11,42],"28671931",[307,45,33,260,308,45],"28672092","ayoubElk",[310,45,45,260,11,42],"28672388",[312,45,45,271,313,45],"28672685","nicoburns",[315,45,45,271,11,42],"28672912",[317,45,33,260,313,45],"28672957",[319,45,33,260,320,45],"28679415","ac29",[322,45,42,265,303,45],"28673010",[324,45,33,260,325,45],"28673765","eevilspock",[327,45,33,260,328,45],"28672368","psadauskas",[330,45,45,271,331,45],"28674395","a1369209993",[333,45,33,334,335,45],"28671738","project\u002Fneutral\u002Fexecution","berlinquin",[337,45,45,334,11,42],"28672070",[339,45,45,340,341,45],"28671962","other\u002Fneutral\u002Fnone","asicsp",[343,45,45,340,11,42],"28672422",[345,45,33,260,346,45],"28673391","sneak",[75,42,42,348,76,45],"project\u002Fcritical\u002Fperformance",[350,42,33,274,325,45],"28673886",[352,42,33,260,353,45],"28673923","killjoywashere",[355,42,33,260,356,45],"28674229","fiddlerwoaroof",[358,42,33,334,359,45],"28674573","eli",[361,42,45,271,11,42],"28675510",[363,42,45,271,359,45],"28675597",[365,42,45,271,11,42],"28675898",[367,42,33,260,368,45],"28677692","IncRnd",[370,42,42,265,371,45],"28674874","franga2000",[102,42,45,373,11,42],"project\u002Fneutral\u002Fperformance",[375,42,33,373,376,45],"28675281","TAForObvReasons",[378,42,45,373,11,42],"28675365",[380,42,45,271,381,45],"28676086","adamdusty",[383,42,45,271,11,42],"28676153",[232,38,42,385,233,45],"project\u002Fcritical\u002Fidea",[387,38,45,340,388,45],"28672821","slaymaker1907",[390,38,45,340,391,45],"28672861","sixothree",[393,38,45,340,394,45],"28675121","qorrect",[396,38,45,340,368,45],"28677733",[398,38,45,340,287,45],"28672901",[400,38,42,385,368,45],"28677716",[402,33,45,340,403,45],"28671245","wly_cdgr",[405,33,45,340,406,45],"28671615","brap",[408,33,45,340,409,45],"28671862","BrianOnHN",[411,33,45,340,11,42],"28672936",[413,33,45,340,414,45],"28675137","c3534l",[416,18,33,417,418,45],"28670852","maker\u002Fneutral\u002Fdocs","semireg",[420,18,33,421,164,45],"28670889","project\u002Fneutral\u002Fdocs",[423,18,42,348,114,45],"28672692",[425,18,45,417,11,42],"28673148",[427,47,33,274,428,45],"28672655","6502nerdface",[121,430,33,292,122,45],6,[432,430,42,385,433,45],"28677609","udkl",[163,435,42,265,164,45],7,[437,435,45,438,11,42],"28670690","maker\u002Fpositive\u002Fidea",[440,435,33,260,164,45],"28670709",[442,435,45,252,11,42],"28671019",[444,435,33,445,118,45],"28670767","project\u002Fmixed\u002Fdesign",[447,435,42,265,448,45],"28671320","BiteCode_dev",[450,435,45,340,451,45],"28672222","hoosieree",[453,435,45,340,448,45],"28672511",[455,435,42,456,457,45],"28671475","project\u002Fcritical\u002Fexecution","lambic",[459,435,45,271,460,45],"28671622","netcraft",[462,435,45,271,213,45],"28671705",[464,435,45,271,460,45],"28671915",[466,435,45,271,467,45],"28672365","mthoms",[469,435,45,271,470,45],"28672783","hibbelig",[472,435,45,271,300,45],"28712117",[474,435,45,438,11,42],"28692717",[156,248,33,334,157,45],[477,248,45,334,11,42],"28672556",[479,248,47,258,157,45],"28673334",[481,39,45,340,482,45],"28671709","treve",[484,39,45,340,11,42],"28672941",[117,486,42,456,118,45],10,[488,486,45,271,489,45],"28671873","bityard",[491,486,45,271,118,45],"28671919",[493,494,45,340,495,45],"28675800",11,"leptoniscool",[192,31,33,274,193,45],[498,31,45,499,11,42],"28673484","project\u002Fpositive\u002Fidea",[501,31,47,258,193,45],"28679831",[503,504,47,255,505,45],"28705342",13,"robbiejs",[507,504,45,340,11,42],"28708069",[509,237,45,340,510,45],"28671455","oaiey",[512,237,45,252,11,42],"28673191",[514,237,45,340,515,45],"28678217","b0afc375b5",[185,517,33,334,186,45],15,[519,517,47,520,164,45],"28671471","project\u002Fpositive\u002Fexecution",[522,517,45,252,11,42],"28673497",[524,517,45,520,11,42],"28675567",[91,526,47,286,92,45],16,[141,528,42,456,142,45],17,[530,528,45,252,11,42],"28675272",[87,532,47,499,88,45],18,[224,34,33,274,225,45],[95,535,47,255,96,45],20,[537,535,45,258,11,42],"28692556",[196,539,42,385,197,45],21,[541,539,33,274,279,45],"28672628",[137,543,42,456,138,45],22,[545,543,45,421,11,42],"28672242",[200,547,33,274,201,45],23,[549,547,47,499,550,45],"28671199","certifiedloud",[552,547,33,334,157,45],"28671412",[554,547,45,255,11,42],"28675548",[105,547,45,556,11,42],"project\u002Fpositive\u002Fperformance",[558,547,45,340,559,45],"28675493","saulpw",[561,547,45,417,11,42],"28692624",[563,547,45,564,11,42],"28692886","maker\u002Fpositive\u002Fdocs",[566,547,47,499,567,45],"28671751","qwertyuiop_",[569,547,33,282,570,45],"28681444","d4rkp4ttern",[212,572,33,282,213,45],24,[574,572,45,417,11,42],"28671881",[576,572,47,556,577,45],"28675023","baggiponte",[579,572,45,258,11,42],"28675314",[581,572,33,373,577,45],"28716185",[167,583,42,265,168,45],25,[585,583,45,271,586,45],"28671376","drcongo",[588,583,45,271,287,45],"28671397",[590,583,45,271,118,45],"28671634",[],[593,598,602,607,612,616],{"id":594,"name":595,"points":596,"category":597},"28680136","Extract Table",217,"data",{"id":599,"name":600,"points":601,"category":20},"28669703","SQLite Playground",213,{"id":603,"name":604,"points":605,"category":606},"28697828","Ampie",194,"productivity",{"id":608,"name":609,"points":610,"category":611},"28683231","Firezone",183,"infrastructure",{"id":613,"name":614,"points":615,"category":20},"28636540","Go Playground WASM",140,{"id":617,"name":618,"points":619,"category":606},"28627374","Lucky Resume Maker",119,false,"v2",{"id":623,"name":5,"line":6,"ai":620,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":624,"top":18,"kw":625,"maker":11,"domain":10,"tier":19,"attempts":45,"strip":626,"url":9,"mix":627,"praise":84,"objection":109,"sub":21},28670252,-0.12,[24,25,26,27],"5214313233233110103213100513505351330451",[31,32,33,34],1794036611647]