[{"data":1,"prerenderedAt":392},["ShallowReactive",2],{"project-3970870":3},{"id":4,"name":5,"line":5,"line_source":6,"title":7,"url":8,"domain":9,"maker":10,"posted_at":11,"year":12,"points":13,"comments":14,"rank_in_year":15,"shown_in_year":16,"top":17,"tier":18,"category":19,"subcategory":20,"format":21,"keywords":22,"reception":27,"sentiment":28,"stance_mix":29,"scored_comments":34,"aspects":35,"strip":43,"post_text":44,"what":45,"said":76,"maker_in_thread":192,"shape":203,"grid":208,"attempts":348,"same_week":353,"maker_shows":37,"maker_hidden":384,"reader_version":385,"card":386},"3970870","c","title","Show HN: c","https:\u002F\u002Fgithub.com\u002FJonovono\u002FC","github.com","Jonovono",1337000992,2012,54,60,433,1677,26,"notable","productivity","file annotation","cli",[23,24,25,26],"file comments","directory notes","command line","learning c","mixed",-0.087,{"positive":30,"neutral":31,"mixed":32,"critical":33},5,13,0,11,29,{"execution":36,"docs":38,"design":40,"idea":41},{"positive":32,"critical":37},3,{"positive":32,"critical":39},1,{"positive":32,"critical":37},{"positive":42,"critical":39},4,[39,39,37,32,32,32,32,32,37,37,32,32,32,32,32,39,37,39,32,37,32,39,37,32,32,39,32,39,39,37,32,39,30,30,32,30,39,39,30,30],null,{"problem":46,"audience":44,"pricing":44,"motivation":58,"time_to_build":44,"stack":65,"openness":74,"stage":75,"team_size":75},{"value":47,"source":48,"evidence":49},"Attaching comments to files and directories","inferred",[50,54],{"id":51,"by":52,"text":53},"3971010","gouranga","Great idea - I think 'c' should be a shell alias though. Tagging support would be cool.",{"id":55,"by":56,"text":57},"3971201","markdrago","It may be more appropriate to store the comments in extended attributes rather than in dotfiles: http:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FExtended_file_attributes",{"value":59,"source":60,"evidence":61},"Built it to help learn C and because it seemed useful","maker",[62],{"id":63,"by":10,"text":64},"3972328","Yeah! I am happy with the feedback. I just made this because I thought it would be useful for me and to help learn C since I just got K&R book. Also, I know people are always…",[66],{"value":67,"source":68,"evidence":69},"C","commenter",[70],{"id":71,"by":72,"text":73},"3971072","leif","Comments for your C learning: ``` #include \u003Cstdbool.h> ``` is better than ``` typedef int bool; #define true 1 #define false 0 ``` Always, always, surround your if and else…","open_source","unknown",{"praise":77,"objections":104,"requests":146,"questions":167,"alternatives":182},[78,89,97],{"value":79,"source":68,"evidence":80},"Good learning project and useful feedback",[81,85],{"id":82,"by":83,"text":84},"3972767","mfonda","I love this post and the exchange of comments going on here. The OP is just starting to learn C, and to help learn it got started on a project that they found useful, which I…",{"id":86,"by":87,"text":88},"3972253","azelfrath","As a sub-novice C\u002F++ programmer myself, it's awesome to see a program like this being discussed. The source code is relatively short, it's a simple enough implementation, and all…",{"value":90,"source":68,"evidence":91},"Useful idea",[92,93],{"id":51,"by":52,"text":53},{"id":94,"by":95,"text":96},"3971029","swordswinger12","This is really cool! Thanks for sharing.",{"value":98,"source":68,"evidence":99},"Hidden-file comment storage is a handy feature, like 4DOS",[100],{"id":101,"by":102,"text":103},"3971234","zephyrfalcon","4DOS used to have this. It was especially useful back in the day with the 8.3 DOS filenames, which often weren't very descriptive. It's nice to see this feature return.",[105,116,127,135],{"value":106,"source":68,"evidence":107},"Name 'c' is a bad name and conflicts with others",[108,112],{"id":109,"by":110,"text":111},"3971012","davyjones","Terrible, terrible name.",{"id":113,"by":114,"text":115},"3971850","mjschultz","Are you sure you committed it to the homebrew repository on github? Your github page doesn't show any activity that indicates you've forked the homebrew repo or created a pull…",{"value":117,"source":68,"evidence":118},"Homebrew install suggestion is a bad idea",[119,123],{"id":120,"by":121,"text":122},"3970979","redbad","``` And those on Mac should be able to use: $ brew install c ``` Wow, uh, didn't it strike you that this might be a bad idea?",{"id":124,"by":125,"text":126},"3971658","sharth","As far as I can tell, this program is not included in Homebrew.",{"value":128,"source":68,"evidence":129},"Code has memory and error handling problems",[130,131],{"id":71,"by":72,"text":73},{"id":132,"by":133,"text":134},"3971373","databus","I see 17 mallocs and not one free!",{"value":136,"source":68,"evidence":137},"Comments stored in hidden dotfiles is messy",[138,142],{"id":139,"by":140,"text":141},"3972997","brimpa","I'd prefer to have all the comments located in a single location (e.g. ~\u002F.comments or ~\u002FDropbox\u002Fcomments-\u003Chostname>) rather than litter hidden files all over the place because I…",{"id":143,"by":144,"text":145},"3971259","jcromartie","Hidden files are handy for some things, but a README.txt file would be apparent to anybody who comes across the directory, and not just someone who knows that the hidden…",[147,155,159,163],{"value":148,"source":68,"evidence":149},"Store comments in extended file attributes",[150,151],{"id":55,"by":56,"text":57},{"id":152,"by":153,"text":154},"3972182","ga2arch","Wouldn't it be better to use Extended file attributes ? https:\u002F\u002Fgist.github.com\u002F2695264 (actually my first attempt to a bash script)",{"value":156,"source":68,"evidence":157},"Add tagging support",[158],{"id":51,"by":52,"text":53},{"value":160,"source":68,"evidence":161},"Store all comments in one location",[162],{"id":139,"by":140,"text":141},{"value":164,"source":68,"evidence":165},"Add a README so the feature is discoverable",[166],{"id":143,"by":144,"text":145},[168,175],{"value":169,"source":68,"evidence":170},"Why use autoconf",[171],{"id":172,"by":173,"text":174},"3971516","mccoyst","Why did you decide to use autoconf?",{"value":176,"source":68,"evidence":177},"Why use getcwd this way instead of an if check",[178],{"id":179,"by":180,"text":181},"3971190","ajanuary","``` if (getcwd(cwd, sizeof(cwd)) != NULL) ; else perror(\"getcwd() error\"); ``` Is that common? What's the advantages over the below? ``` if (... == NULL) { perror(...); } ```",[183,188],{"value":184,"source":68,"evidence":185},"Extended file attributes",[186,187],{"id":55,"by":56,"text":57},{"id":152,"by":153,"text":154},{"value":189,"source":68,"evidence":190},"4DOS",[191],{"id":101,"by":102,"text":103},{"comments":33,"answered":42,"key":193},[194,197,200],{"id":195,"text":196},"3971691","This is awesome, thanks! I just started learning C and am just beginning going through \"The C programming language\" so thanks for the advice! I definitely plan to improve the…",{"id":198,"text":199},"3971741","hmm. It should be. You may just have to run brew update? It wasn't added very long ago so you may not see it if brew has not been updated. If it still doesn't work then not sure.",{"id":201,"text":202},"3971899","hmm interesting. I just followed the instructions on http:\u002F\u002Fmxcl.github.com\u002Fhomebrew\u002F and when I run brew install c in my terminal it says \"Error: c-1.0.0 already installed\". But…",{"commenters":204,"max_depth":205,"maker_replies":33,"first_comment_mins":206,"lifespan_hours":207},32,7,24,28,[209,211,215,217,221,224,226,229,231,233,235,237,240,243,246,250,252,255,257,259,262,264,265,267,269,271,272,274,275,277,279,281,284,287,290,294,296,299,301,303,305,306,308,311,313,316,319,323,325,328,330,331,332,334,336,338,340,341,343,346],[71,32,39,210,72,32],"maker\u002Fcritical\u002Fexecution",[212,32,32,213,214,32],"3971113","commenter\u002Fneutral\u002Fnone","fsaintjacques",[132,32,39,216,133,32],"project\u002Fcritical\u002Fexecution",[218,32,37,219,220,32],"3971427","project\u002Fneutral\u002Fexecution","JoachimSchipper",[222,32,32,213,223,32],"3971521","derleth",[225,32,32,213,220,32],"3971599",[227,32,32,213,228,32],"3971971","tptacek",[230,32,32,213,223,32],"3972185",[232,32,32,213,228,32],"3972228",[234,32,32,213,72,32],"3973569",[236,32,32,213,133,32],"3971523",[238,32,32,213,239,32],"3972070","mikeash",[241,32,37,242,72,32],"3971431","maker\u002Fneutral\u002Fnone",[244,32,37,245,220,32],"3971501","maker\u002Fneutral\u002Fexecution",[247,32,32,248,249,32],"3971810","commenter\u002Fneutral\u002Fexecution","lubutu",[251,32,32,248,228,32],"3971895",[253,32,32,213,254,32],"3971556","haberman",[256,32,32,213,72,32],"3971797",[258,32,32,213,249,32],"3971862",[260,32,32,213,261,32],"3971947","chc",[263,32,32,213,228,32],"3971936",[195,32,32,242,10,39],[266,32,37,245,72,32],"3971816",[120,39,39,268,121,32],"project\u002Fcritical\u002Fdocs",[124,39,37,270,125,32],"project\u002Fneutral\u002Fnone",[198,39,32,242,10,39],[113,39,39,273,114,32],"project\u002Fcritical\u002Fnone",[201,39,32,242,10,39],[276,39,37,270,114,32],"3972156",[278,39,32,242,10,39],"3972310",[280,39,32,242,10,39],"3971731",[109,282,39,283,110,32],2,"project\u002Fcritical\u002Fdesign",[285,282,37,270,286,32],"3971357","veyron",[288,282,37,270,289,32],"3971383","suraj",[291,282,32,292,293,32],"3971525","other\u002Fneutral\u002Fnone","entropie",[295,282,32,292,249,32],"3971900",[297,282,32,292,298,32],"3972728","acuozzo",[300,282,37,270,228,32],"3971998",[302,282,39,273,286,32],"3972401",[304,282,32,242,10,39],"3971686",[179,37,37,245,180,32],[307,37,39,210,228,32],"3971981",[309,42,39,283,310,32],"3971028","zhov",[55,30,37,312,56,32],"project\u002Fneutral\u002Fidea",[143,314,37,315,144,32],6,"project\u002Fneutral\u002Fdocs",[317,205,32,292,318,32],"3971067","axitanull",[320,321,39,322,310,32],"3971064",8,"maker\u002Fcritical\u002Fnone",[324,321,32,242,10,39],"3971666",[82,326,30,327,83,32],9,"project\u002Fpositive\u002Fidea",[172,329,37,245,173,32],10,[86,33,30,327,87,32],[63,33,32,242,10,39],[51,333,30,327,52,32],12,[335,333,32,242,10,39],"3977595",[152,31,39,337,153,32],"project\u002Fcritical\u002Fidea",[339,31,32,242,10,39],"3972398",[139,31,39,283,140,32],[101,342,30,327,102,32],14,[94,344,30,345,95,32],15,"project\u002Fpositive\u002Fnone",[347,344,32,242,10,39],"3971668",[349,352],{"id":350,"t":351,"points":39,"comments":32},"3922305",1336016972,{"id":4,"t":11,"points":13,"comments":14},[354,359,364,369,374,379],{"id":355,"name":356,"points":357,"category":358},"3959305","The Toolbox",164,"other",{"id":360,"name":361,"points":362,"category":363},"3955646","Mixture",125,"consumer_social",{"id":365,"name":366,"points":367,"category":368},"3960609","Try Design Lab",122,"learning_science",{"id":370,"name":371,"points":372,"category":373},"3965588","PDF parsing in Racket",101,"languages",{"id":375,"name":376,"points":377,"category":378},"3957258","Wovyn",78,"hardware",{"id":380,"name":381,"points":382,"category":383},"3965073","JSONP",51,"infrastructure",false,"v2",{"id":387,"name":5,"line":5,"ai":384,"cat":19,"year":12,"points":13,"comments":14,"rec":27,"s":388,"top":17,"kw":389,"maker":10,"domain":9,"tier":18,"attempts":282,"strip":390,"url":8,"mix":391,"praise":79,"objection":106,"sub":20},3970870,-0.09,[23,24,25,26],"1130000033000001310301300101130155051155",[30,31,32,33],1793990881428]