[{"data":1,"prerenderedAt":413},["ShallowReactive",2],{"project-18023105":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":43,"post_text":46,"what":47,"said":68,"maker_in_thread":209,"shape":211,"grid":214,"attempts":374,"same_week":375,"maker_shows":34,"maker_hidden":405,"reader_version":406,"card":407},"18023105","SAN","a Safe and Nice TOML\u002FYAML Alternative","title","Show HN: SAN – a Safe and Nice TOML\u002FYAML Alternative","https:\u002F\u002Fastrocorp.net\u002Fsan","astrocorp.net","_3lin",1537351428,2018,45,64,830,2155,39,"shown","languages","configuration file format","library",[24,25,26,27,28],"configuration format","toml alternative","yaml alternative","config file parser","comments preserved","curious",-0.264,{"positive":32,"neutral":33,"mixed":34,"critical":35},7,21,2,12,42,{"idea":38,"design":40,"docs":41},{"positive":34,"critical":39},3,{"positive":39,"critical":32},{"positive":42,"critical":42},0,[44,39,39,44,42,39,44,45,45,42,45,39,39,45,45,42,39,44,39,44,42,45,39,39,39,39,44,39,39,42,45,45,42,42,39,39,39,45,39,45],5,1,null,{"problem":48,"audience":46,"pricing":46,"motivation":56,"time_to_build":46,"stack":60,"openness":65,"stage":66,"team_size":67},{"value":49,"source":50,"evidence":51},"Configuration formats like YAML and TOML are either ambiguous or lose comments when programs edit files","commenter",[52],{"id":53,"by":54,"text":55},"18023115","z0mbie42","Hi author here. We've created a new file format designed specifically for configuration: SAN (pronounce \u002Fseɪn\u002F like sane). You can find a Go parser here:…",{"value":57,"source":50,"evidence":58},"A simple, neat configuration format with comments that is easy to parse",[59],{"id":53,"by":54,"text":55},[61],{"value":62,"source":50,"evidence":63},"Go (reference parser)",[64],{"id":53,"by":54,"text":55},"open_source","beta","unknown",{"praise":69,"objections":86,"requests":135,"questions":166,"alternatives":186},[70,78],{"value":71,"source":50,"evidence":72},"Comments preserved so programs can edit files safely",[73,74],{"id":53,"by":54,"text":55},{"id":75,"by":76,"text":77},"18031049","wezm","This looks great. I love the strictness and improvements over JSON and also the goal of preserving comments. The absence of specified a date type feels like a back compared to…",{"value":79,"source":50,"evidence":80},"Strictness and trailing comma idea appreciated",[81,85],{"id":82,"by":83,"text":84},"18030965","ainar-g","This is indeed very sane. One thing I personally would change is making a trailing comma in multiline lists obligatory, like in Go. I hope this gains traction, so that I could…",{"id":75,"by":76,"text":77},[87,102,114,124],{"value":88,"source":50,"evidence":89},"Name pronunciation and existing SAN abbreviation (Storage Area Network)",[90,94,98],{"id":91,"by":92,"text":93},"18030688","playpause","> SAN (pronounce \u002Fseɪn\u002F, like sane) No, absolutely not.",{"id":95,"by":96,"text":97},"18032228","xellisx","1. SAN is an already used an abbreviation for something that has been in the tech world for a while, and well, would be hard to search for. 2. No multi-line support? What about…",{"id":99,"by":100,"text":101},"18032363","jcwayne","This feels a lot like HashiCorp configuration language[0]. But more standards[1] are always welcome ;) [0] https:\u002F\u002Fgithub.com\u002Fhashicorp\u002Fhcl [1] https:\u002F\u002Fxkcd.com\u002F927\u002F",{"value":103,"source":50,"evidence":104},"Too similar to HCL with little new value",[105,109,110],{"id":106,"by":107,"text":108},"18030808","rayredd","This looks a lot like HCL (https:\u002F\u002Fgithub.com\u002Fhashicorp\u002Fhcl).",{"id":99,"by":100,"text":101},{"id":111,"by":112,"text":113},"18031181","hardwaresofton","Thanks for including a comparison page[0]! I'm not sure I buy that it's a large improvement over TOML -- In practice I haven't found the homogeneous list requirement to be an…",{"value":115,"source":50,"evidence":116},"Curly braces and non-indentation syntax are unfriendly",[117,121],{"id":118,"by":119,"text":120},"18030761","andybak","Human friendly with curly braces? I don't buy it. I would never unleash a curly braces syntax on a non-developer. And if it's a format for developers then there are already…",{"id":122,"by":119,"text":123},"18050696","I think semantic identation is very intuitive to non-developers. It's used in print everywhere. I think there's a touch of Stockholm syndrome in your belief otherwise. You have…",{"value":125,"source":50,"evidence":126},"Homogeneous lists and lack of null limit compatibility",[127,131],{"id":128,"by":129,"text":130},"18031272","chme","Interesting, but the first thing I checked was if it allows list elements to have different types. And it doesn't. That was one issue I had with TOML, because the allowed data…",{"id":132,"by":133,"text":134},"18031681","epage","The other way SAN isn't json compatible is lack of null. As for heterogenous list types, great reason to have them is when your list is logically the same type but physically…",[136,147,151,159],{"value":137,"source":50,"evidence":138},"Allow tabs for indentation",[139,143],{"id":140,"by":141,"text":142},"18031107","oftenwrong","More sane than TOML, and far more sane than YAML. Tabs would be more sane for indentation: one tab, one indentation level. Also, it would match gofmt, if that matters to you.",{"id":144,"by":145,"text":146},"18031127","IshKebab","Here's the github issue for that. Looks like they are starting to come around to the idea: https:\u002F\u002Fgithub.com\u002Fastrocorp42\u002Fsan\u002Fissues\u002F3",{"value":148,"source":50,"evidence":149},"Add a date type",[150],{"id":75,"by":76,"text":77},{"value":152,"source":50,"evidence":153},"Make trailing commas obligatory in multiline lists",[154,155],{"id":82,"by":83,"text":84},{"id":156,"by":157,"text":158},"18031671","izietto","> One thing I personally would change is making a trailing comma in multiline lists obligatory Can I ask you why?",{"value":160,"source":50,"evidence":161},"Allow heterogeneous lists",[162,163],{"id":132,"by":133,"text":134},{"id":164,"by":129,"text":165},"18031913","I used lists to build my own include concept in yaml like so: ``` includes: - relative-include-file.yml - url: git:\u002F\u002Fstuff.git file: git-included-file.yml ``` Not possible here.…",[167,179],{"value":168,"source":50,"evidence":169},"What are the advantages over TOML, YAML and JSON5?",[170,174,178],{"id":171,"by":172,"text":173},"18030771","ortuman","Why another serialization format? What are the advantages over TOML\u002FYAML?",{"id":175,"by":176,"text":177},"18030599","wattengard","What are the benefits over JSON5?",{"id":111,"by":112,"text":113},{"value":180,"source":50,"evidence":181},"How does it differ from HCL?",[182],{"id":183,"by":184,"text":185},"18030806","phaer","Could you elaborate on the differences to HCL? It looks almost the same on first glance. Maybe minus functions and and nested blocks in HCL.",[187,192,197,202],{"value":188,"source":50,"evidence":189},"HCL (HashiCorp configuration language)",[190,191],{"id":106,"by":107,"text":108},{"id":99,"by":100,"text":101},{"value":193,"source":50,"evidence":194},"JSON5",[195,196],{"id":175,"by":176,"text":177},{"id":95,"by":96,"text":97},{"value":198,"source":50,"evidence":199},"TOML",[200,201],{"id":111,"by":112,"text":113},{"id":128,"by":129,"text":130},{"value":203,"source":50,"evidence":204},"SDLang",[205],{"id":206,"by":207,"text":208},"18031021","akvadrako","If you are looking for a YAML alternative, https:\u002F\u002Fsdlang.org is also worth considering. It's a bit richer.",{"comments":42,"answered":42,"key":210},[],{"commenters":212,"max_depth":32,"maker_replies":42,"first_comment_mins":34,"lifespan_hours":213},36,98,[215,217,219,222,224,226,230,234,237,240,244,247,249,250,251,254,256,259,261,263,266,268,270,274,277,281,284,286,288,290,292,294,297,300,302,304,307,309,313,315,317,319,320,321,325,327,330,333,335,338,340,342,345,346,348,350,354,358,360,362,364,367,370,372],[53,42,44,216,54,42],"project\u002Fpositive\u002Fidea",[183,42,39,218,184,42],"project\u002Fneutral\u002Fdesign",[220,42,39,221,54,42],"18030898","project\u002Fneutral\u002Fidea",[223,42,39,221,184,42],"18030976",[225,42,44,216,54,42],"18032445",[227,42,42,228,229,42],"18036304","other\u002Fneutral\u002Fnone","laurentlb",[231,42,42,232,233,42],"18037313","other\u002Fneutral\u002Fidea","kjeetgill",[235,42,42,232,236,42],"18031423","crdoconnor",[238,42,39,221,239,42],"18031912","eptcyka",[241,45,39,242,243,42],"18030882","project\u002Fmixed\u002Fdesign","geoah",[245,45,44,246,54,42],"18030946","maker\u002Fpositive\u002Fnone",[128,34,45,248,129,42],"project\u002Fcritical\u002Fdesign",[132,34,45,248,133,42],[164,34,45,248,129,42],[252,34,42,253,54,42],"18032404","commenter\u002Fneutral\u002Fdesign",[255,34,42,253,129,42],"18033387",[257,34,45,248,258,42],"18032004","vinceguidry",[260,34,39,218,54,42],"18032391",[262,34,42,253,258,42],"18032488",[264,34,39,221,265,42],"18033310","Entangled",[267,34,42,228,258,42],"18033795",[269,34,45,248,233,42],"18037345",[271,39,39,272,273,42],"18030990","project\u002Fneutral\u002Fnone","Keats",[91,275,45,276,92,42],4,"project\u002Fcritical\u002Fnone",[278,275,42,279,280,42],"18032203","commenter\u002Fneutral\u002Fnone","bovermyer",[282,275,45,276,283,42],"18040932","h1d",[82,44,44,285,83,42],"project\u002Fpositive\u002Fdesign",[287,44,44,246,54,42],"18030992",[156,44,39,289,157,42],"maker\u002Fneutral\u002Fdesign",[291,44,39,218,83,42],"18032292",[293,44,44,285,54,42],"18032462",[295,296,42,232,233,42],"18037398",6,[298,32,42,228,299,42],"18032132","thechao",[75,301,45,248,76,42],8,[303,301,42,279,141,42],"18031481",[305,301,39,306,54,42],"18032485","maker\u002Fneutral\u002Fnone",[111,308,39,242,112,42],9,[310,311,42,232,312,42],"18034416",10,"henryluo",[314,311,42,228,312,42],"18036858",[106,316,39,218,107,42],11,[318,316,39,221,54,42],"18030879",[140,35,44,285,141,42],[144,35,39,218,145,42],[322,323,39,221,324,42],"18031753",13,"iofiiiiiiiii",[175,326,39,221,176,42],14,[328,326,42,232,329,42],"18030636","arethuza",[331,326,42,228,332,42],"18031316","benjaminjackman",[334,326,42,279,329,42],"18031457",[171,336,45,337,172,42],15,"project\u002Fcritical\u002Fidea",[118,339,45,248,119,42],16,[341,339,39,218,54,42],"18030873",[343,339,42,253,344,42],"18031091","krapp",[122,339,42,253,119,42],[206,347,42,228,207,42],17,[349,347,42,228,145,42],"18031134",[351,352,39,221,353,42],"18030663",18,"dalbotex",[355,356,39,218,357,42],"18030606",19,"rambojazz",[359,356,39,218,54,42],"18030861",[361,356,39,218,357,42],"18034974",[95,363,45,337,96,42],20,[365,363,39,366,54,42],"18032475","project\u002Fneutral\u002Fdocs",[368,363,42,369,96,42],"18033146","commenter\u002Fpositive\u002Fnone",[371,33,42,232,344,42],"18031099",[99,373,45,337,100,42],22,[],[376,381,386,390,395,400],{"id":377,"name":378,"points":379,"category":380},"18024277","Simple Analytics",968,"data",{"id":382,"name":383,"points":384,"category":385},"17993933","Interplanetary Postal Service",660,"games",{"id":387,"name":388,"points":389,"category":20},"17987657","Guitar Dashboard",590,{"id":391,"name":392,"points":393,"category":394},"17988464","TechYaks",514,"consumer_social",{"id":396,"name":397,"points":398,"category":399},"18004270","Grapedrop",229,"web_saas",{"id":401,"name":402,"points":403,"category":404},"17987560","Rwtxt",146,"productivity",false,"v2",{"id":408,"name":5,"line":6,"ai":405,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":409,"top":18,"kw":410,"maker":11,"domain":10,"tier":19,"attempts":42,"strip":411,"url":9,"mix":412,"praise":71,"objection":88,"sub":21},18023105,-0.26,[24,25,26,27,28],"5335035110133110353501333353301100333131",[32,33,34,35],1793990979441]