[{"data":1,"prerenderedAt":234},["ShallowReactive",2],{"project-7329517":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":41,"post_text":43,"what":44,"said":65,"maker_in_thread":148,"shape":155,"grid":159,"attempts":196,"same_week":197,"maker_shows":39,"maker_hidden":226,"reader_version":227,"card":228},"7329517","Learneroo","Learn Ruby by Example with Challenges","title","Show HN: Learn Ruby by Example with Challenges","http:\u002F\u002Fwww.learneroo.com\u002Fmodules\u002F61\u002Fnodes\u002F338","learneroo.com","arikrak",1393775968,2014,48,18,671,2272,30,"shown","learning_science","programming tutorial","web_app",[24,25,26,27],"learn ruby","ruby tutorial","ruby challenges","interactive coding","curious",-0.158,{"positive":31,"neutral":32,"mixed":33,"critical":34},1,4,0,3,8,{"execution":37,"design":38,"idea":40},{"positive":33,"critical":31},{"positive":33,"critical":39},2,{"positive":31,"critical":33},[31,33,31,33,34,33,33,33,33,31,34,33,33,34,42,34,33,33],5,null,{"problem":45,"audience":51,"pricing":43,"motivation":43,"time_to_build":43,"stack":62,"openness":63,"stage":64,"team_size":63},{"value":46,"source":47,"evidence":48},"Learning Ruby through examples and challenges","maker",[49],{"id":50},"post",{"value":52,"source":53,"evidence":54},"Beginners learning Ruby","inferred",[55,59],{"id":56,"by":57,"text":58},"7329785","kartikkumar","Great! Diving head first into Ruby so this will come in handy.",{"id":60,"by":11,"text":61},"7329838","Thanks for the feedback. I'm going to try to improve the design this week.",[],"unknown","launched",{"praise":66,"objections":79,"requests":102,"questions":118,"alternatives":134},[67,72],{"value":68,"source":69,"evidence":70},"Useful for those starting with Ruby","commenter",[71],{"id":56,"by":57,"text":58},{"value":73,"source":69,"evidence":74},"Fun challenges for experienced Rubyists",[75],{"id":76,"by":77,"text":78},"7330020","jeffrwells","This might be a fun challenge for experienced rubyists, but I do not think this is a good way to learn Ruby. I only looked at Ruby Basics, but here's my feedback: The challenge…",[80,88,95],{"value":81,"source":69,"evidence":82},"Challenges teach bad code patterns, such as using 'and' for boolean logic",[83,84],{"id":76,"by":77,"text":78},{"id":85,"by":86,"text":87},"7332082","SnacksOnAPlane","> The words 'and' and 'or' should not be used for boolean comparisons, they are intended to be used to join two separate clauses such as \"render 'template' and return\" in rails.…",{"value":89,"source":69,"evidence":90},"Advanced operator precedence is introduced before it is taught",[91],{"id":92,"by":93,"text":94},"7330467","Argorak","The biggest problem is that the interesting part about this challenge (different precendence) is rather advanced to beginners and is _not even touched_ in the preceding parts.",{"value":96,"source":69,"evidence":97},"Site design looks strange",[98],{"id":99,"by":100,"text":101},"7329716","marsay","The design of the site looks strange to my eyes. Colors and fonts doesn't make sense. I'm no expert on design so I can't explain why.",[103,110],{"value":104,"source":69,"evidence":105},"A similar tutorial for JavaScript",[106],{"id":107,"by":108,"text":109},"7329848","cabbeer","Is there anything like this for Javascript?",{"value":111,"source":69,"evidence":112},"Design improvements",[113,114],{"id":60,"by":11,"text":61},{"id":115,"by":116,"text":117},"7330714","bcjordan","Shoot me a quick hello if you'd like a few suggestions, my username at gmail.",[119],{"value":120,"source":69,"evidence":121},"Why Ruby has separate TrueClass and FalseClass",[122,126,130],{"id":123,"by":124,"text":125},"7329974","jader201","I don't know Ruby, but this caught my eye: ``` true.class #=> TrueClass false.class #=> FalseClass ``` Why would they have two different classes (types?) for what I consider…",{"id":127,"by":128,"text":129},"7330065","jonahx","http:\u002F\u002Fstackoverflow.com\u002Fquestions\u002F3192978\u002Fwhy-does-ruby-have-trueclass-and-falseclass-instead-of-a-single-boolean-class",{"id":131,"by":132,"text":133},"7330302","al2o3cr","TrueClass and FalseClass aren't exactly \"classes\" in the usual sense - for instance, `TrueClass.new` throws a NoMethodError. Under the hood, true and false are singletons - `(1…",[135,142],{"value":136,"source":69,"evidence":137},"Ruby Quiz",[138],{"id":139,"by":140,"text":141},"7329711","chucknelson","Ah, made me think of the good ol' days => http:\u002F\u002Frubyquiz.com\u002F Although this is definitely more tutorial-ish.",{"value":143,"source":47,"evidence":144},"LearnXinYminutes",[145],{"id":146,"by":11,"text":147},"7336618","Since it looks like this was pretty popular, I'll make one for Javascript too. Meanwhile, check out the original LearnXinYminutes.",{"comments":32,"answered":39,"key":149},[150,153,154],{"id":151,"text":152},"7330331","Thanks. The challenge was meant as a way to review the different booleans, instead of 'real code'. I added a warning, but I'll see if other code would be better.",{"id":60,"text":61},{"id":146,"text":147},{"commenters":156,"max_depth":34,"maker_replies":32,"first_comment_mins":157,"lifespan_hours":158},13,52,84,[160,162,164,166,168,170,172,173,175,176,177,180,184,186,187,189,191,193],[76,33,31,161,77,33],"project\u002Fcritical\u002Fexecution",[151,33,33,163,11,31],"maker\u002Fneutral\u002Fexecution",[92,33,31,165,93,33],"project\u002Fcritical\u002Fdesign",[85,33,33,167,86,33],"commenter\u002Fneutral\u002Fnone",[123,31,34,169,124,33],"project\u002Fneutral\u002Fnone",[127,31,33,171,128,33],"other\u002Fneutral\u002Fnone",[131,31,33,171,132,33],[174,31,33,167,93,33],"7330527",[139,39,33,171,140,33],[99,34,31,165,100,33],[178,34,34,179,140,33],"7329724","project\u002Fneutral\u002Fdesign",[181,34,33,182,183,33],"7329783","commenter\u002Fneutral\u002Fdesign","bzalasky",[60,34,33,185,11,31],"maker\u002Fneutral\u002Fdesign",[115,34,34,185,116,33],[56,32,42,188,57,33],"project\u002Fpositive\u002Fidea",[107,42,34,190,108,33],"project\u002Fneutral\u002Fidea",[146,42,33,192,11,31],"maker\u002Fpositive\u002Fidea",[194,42,33,195,11,31],"7351826","maker\u002Fneutral\u002Fnone",[],[198,203,208,213,217,221],{"id":199,"name":200,"points":201,"category":202},"7350265","Softcover",208,"creative",{"id":204,"name":205,"points":206,"category":207},"7348678","OpenSpritz",99,"productivity",{"id":209,"name":210,"points":211,"category":212},"7320614","Fireform",77,"web_saas",{"id":214,"name":215,"points":216,"category":20},"7309251","Coderust",71,{"id":218,"name":219,"points":220,"category":207},"7334060","Notable Docs",61,{"id":222,"name":223,"points":224,"category":225},"7314180","MealSquares",51,"consumer_social",false,"v2",{"id":229,"name":5,"line":6,"ai":226,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":230,"top":18,"kw":231,"maker":11,"domain":10,"tier":19,"attempts":33,"strip":232,"url":9,"mix":233,"praise":68,"objection":81,"sub":21},7329517,-0.16,[24,25,26,27],"101030000130035300",[31,32,33,34],1794036516190]