[{"data":1,"prerenderedAt":412},["ShallowReactive",2],{"project-17508151":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":47,"post_text":48,"what":49,"said":78,"maker_in_thread":227,"shape":238,"grid":240,"attempts":374,"same_week":375,"maker_shows":38,"maker_hidden":405,"reader_version":406,"card":407},"17508151","Online challenge","Build a CPU from scratch","title","Show HN: Online challenge: Build a CPU from scratch","http:\u002F\u002Fnandgame.com\u002F","nandgame.com","sergex",1531326361,2018,143,60,290,2155,14,"notable","learning_science","educational game","web_app",[24,25,26,27],"cpu from scratch","logic gates","nand2tetris","computer architecture","mixed",-0.17,{"positive":31,"neutral":32,"mixed":33,"critical":34},7,8,4,12,31,{"execution":37,"design":40,"idea":42,"performance":44,"docs":45},{"positive":38,"critical":39},1,5,{"positive":41,"critical":33},0,{"positive":43,"critical":41},6,{"positive":41,"critical":41},{"positive":41,"critical":46},3,[41,38,46,38,39,41,39,39,41,46,46,41,41,46,41,38,38,38,41,39,41,46,41,38,41,38,39,46,41,46,41,46,38,38,41,46,39,38,41,38],null,{"problem":50,"audience":57,"pricing":48,"motivation":65,"time_to_build":48,"stack":69,"openness":76,"stage":77,"team_size":76},{"value":51,"source":52,"evidence":53},"Learning how a CPU works from simple logic gates without coding or CS background","maker",[54],{"id":55,"by":11,"text":56},"17508178","This is an attempt to make an educational online game, where the mission is to build a microprocessor starting from simple logic gates. Hopefully it is both fun and challenging,…",{"value":58,"source":52,"evidence":59},"People learning computer architecture, including those without CS background",[60,61],{"id":55,"by":11,"text":56},{"id":62,"by":63,"text":64},"17522281","olavk","Great to hear. I would love to hear feedback from someone without CS background.",{"value":66,"source":52,"evidence":67},"Make an educational, accessible game teaching how CPUs work",[68],{"id":55,"by":11,"text":56},[70],{"value":71,"source":52,"evidence":72},"Angular",[73],{"id":74,"by":11,"text":75},"17512394","Thank you. I'm using Angular, but no library beyond that. I was looking for a library for the diagram, but didn't find anything that suited my needs, so it is just custom code. I…","unknown","beta",{"praise":79,"objections":111,"requests":152,"questions":189,"alternatives":204},[80,100],{"value":81,"source":82,"evidence":83},"Fun and educational, good for teaching fundamentals","commenter",[84,88,92,96],{"id":85,"by":86,"text":87},"17510796","pro_zac","This is great! I've been reading up on low level logic during long builds at work. Any chance you could add a clear all button?",{"id":89,"by":90,"text":91},"17521526","AnthonBerg","My fiancee is starting computer science this fall. I'm already using this to teach fundamentals. Thank you!!",{"id":93,"by":94,"text":95},"17514020","wlxiong","I always want to read The Elements of Computing Systems, but never finish it. Playing this game for a few minutes let me pick up the book again.",{"id":97,"by":98,"text":99},"17519970","farzadb82","This is really awesome. I just killed about an hour playing it part way through. I was saddened by the fact that I lost progress when I left the page. It would be nice if…",{"value":101,"source":82,"evidence":102},"Brings back memories of building logic circuits",[103,107],{"id":104,"by":105,"text":106},"17513445","fbomb","Holy crap! this brings back memories. I actually did this many years ago with real logic gates, eventually ending up with a 4-bit CPU that could address an entire 16 nybbles of…",{"id":108,"by":109,"text":110},"17520556","dzolvd","same! We actually built an 8-bit cpu, and while debugging some very strange, seemingly random bit flips, learned why you coil wires.",[112,123,145],{"value":113,"source":82,"evidence":114},"Progress is lost when leaving the page",[115,116,120],{"id":97,"by":98,"text":99},{"id":117,"by":118,"text":119},"17512913","ackfoo","I had more fun with this than I expected to. The only problem is that I got to the Full Adder level, then clicked on \"About\" and when I went back, my progress was not saved. It…",{"id":121,"by":11,"text":122},"17512967","Yes that is annoying. Also all progress is lost if you leave the page. I am considering saving the state in local storage so you can return to the page and continue where you…",{"value":124,"source":82,"evidence":125},"Several level bugs and out-of-order or incorrect specs",[126,130,134,138,141],{"id":127,"by":128,"text":129},"17515061","r3dey3","I'm enjoying this; but it looks like a few of the levels might be out of order. In State Selector uses Decoder in the library but it is before decoder. Then in the Arithmetics…",{"id":131,"by":132,"text":133},"17512089","Neeek","In the full adder level, shouldn't the input\u002Foutput table in the specification read 01 for the h\u002Fl on row 3? Had me a little confused trying to get my head around how the adder…",{"id":135,"by":136,"text":137},"17513240","gsaga","The level on subtraction doesn't mention how negative numbers are handled at all.",{"id":139,"by":136,"text":140},"17520565","In the chapter on RAM, it says we can index upto 64KB of memory in a 16 bit architecture. Shouldn't it be '128K words of memory', since we can index '2 words' with a single bit.",{"id":142,"by":143,"text":144},"17522552","Streetwalrus","I've looked through the code a bit, I think your assembler is actually buggy. The expected results for the tests are correct, however the encoded instructions that you're feeding…",{"value":146,"source":82,"evidence":147},"Hard to start over; no clear-all button",[148,149],{"id":85,"by":86,"text":87},{"id":150,"by":86,"text":151},"17516024","Exactly. Sometimes I realize my plan is no good. It takes a lot of clicking to start over.",[153,158,166,177,182],{"value":154,"source":82,"evidence":155},"Save progress between sessions",[156,157],{"id":97,"by":98,"text":99},{"id":117,"by":118,"text":119},{"value":159,"source":82,"evidence":160},"Clear-all \u002F reset button",[161,162],{"id":85,"by":86,"text":87},{"id":163,"by":164,"text":165},"17513441","barrystaes","Really nice! Ideas for features i missed: Reset button. Way to see diagram of previous components. Level goal text is not equal to whats shown left. Possibly mislabeled C in full…",{"value":167,"source":82,"evidence":168},"Optimization leaderboards for fewest components or gates",[169,173],{"id":170,"by":171,"text":172},"17513036","n4r9","This is fun. Reminds me a lot of Euclid the Game: http:\u002F\u002Feu.jugregator.org\u002FLevel1\u002F Would be awesome if you compare your answer to the \"best\" solution, i.e. which uses the minimum…",{"id":174,"by":175,"text":176},"17514960","jakear","Gate count is interesting from a \"how much would this const to make\" perspective, but I think minimum clock cycle time is a more interesting metric, as that will show how fast…",{"value":178,"source":82,"evidence":179},"Hints for levels",[180,181],{"id":97,"by":98,"text":99},{"id":163,"by":164,"text":165},{"value":183,"source":82,"evidence":184},"Touch support for dragging components",[185],{"id":186,"by":187,"text":188},"17508360","harperlee","FYI: I'm not able to drag components from the toolbox in mobile chrome.",[190,197],{"value":191,"source":82,"evidence":192},"Will it be open source?",[193],{"id":194,"by":195,"text":196},"17514180","frafra","Will it be released under an opensource license? It would be nice to try to improve, especially because it is an educational tool.",{"value":198,"source":82,"evidence":199},"Which canvas library was used?",[200],{"id":201,"by":202,"text":203},"17511246","chrisparton1991","This is really neat, good job! This reminded me of \"Code\" by Charles Petzold, which I saw you reference in the About page. As a software engineer with an interest (but no…",[205,209,213,220],{"value":206,"source":52,"evidence":207},"Nand2tetris",[208],{"id":55,"by":11,"text":56},{"value":210,"source":82,"evidence":211},"Euclid the Game",[212],{"id":170,"by":171,"text":172},{"value":214,"source":82,"evidence":215},"MHRD",[216],{"id":217,"by":218,"text":219},"17515135","Boxxed","Cool! Very similar to MHRD -- give that a look if this is your thing. https:\u002F\u002Fstore.steampowered.com\u002Fapp\u002F576030\u002FMHRD\u002F",{"value":221,"source":82,"evidence":222},"Zachtronics games",[223],{"id":224,"by":225,"text":226},"17513708","meta_AU","If you have a look at any Zachtronics games you can see one way of doing it. It is just a leaderboard represented as a histogram. A separate one for instructions, cycles, etc. No…",{"comments":228,"answered":229,"key":230},22,9,[231,232,235],{"id":55,"text":56},{"id":233,"text":234},"17508419","I'm sorry, it does not work with touch yet.",{"id":236,"text":237},"17512977","You mean for just wiping all components from the canvas? That should be possible.",{"commenters":35,"max_depth":43,"maker_replies":228,"first_comment_mins":46,"lifespan_hours":239},156,[241,243,245,247,249,251,253,254,255,258,259,261,262,265,267,268,270,273,276,278,283,284,287,288,290,293,295,297,300,301,303,304,305,308,310,314,318,320,322,323,326,328,331,333,334,339,341,342,344,346,349,351,353,357,359,363,365,369,371,373],[55,41,41,242,11,38],"project\u002Fpositive\u002Fidea",[186,41,38,244,187,41],"project\u002Fcritical\u002Fexecution",[233,41,41,246,11,38],"maker\u002Fneutral\u002Fexecution",[85,41,46,248,86,41],"project\u002Fneutral\u002Fdesign",[236,41,41,250,11,38],"maker\u002Fneutral\u002Fdesign",[150,41,38,252,86,41],"project\u002Fcritical\u002Fdesign",[201,41,39,242,202,41],[74,41,41,250,11,38],[256,41,41,257,202,41],"17555566","other\u002Fneutral\u002Fnone",[89,41,39,242,90,41],[62,41,46,260,63,41],"maker\u002Fneutral\u002Fnone",[170,38,39,242,171,41],[263,38,41,264,11,38],"17513094","maker\u002Fneutral\u002Fidea",[266,38,46,264,171,41],"17513257",[224,38,46,264,225,41],[174,38,46,269,175,41],"project\u002Fneutral\u002Fperformance",[271,38,41,272,11,38],"17515320","maker\u002Fneutral\u002Fperformance",[274,38,41,275,175,41],"17520977","other\u002Fneutral\u002Fperformance",[277,38,41,264,11,38],"17521228",[279,280,46,281,282,41],"17515885",2,"project\u002Fmixed\u002Fdesign","Djvacto",[217,46,41,257,218,41],[285,46,41,257,286,41],"17515406","notafraudster",[127,33,38,244,128,41],[289,33,41,246,11,38],"17515198",[291,39,38,252,292,41],"17515203","DonaldFisk",[294,39,41,250,11,38],"17515254",[131,43,38,296,132,41],"project\u002Fcritical\u002Fdocs",[298,43,41,299,11,38],"17512352","maker\u002Fpositive\u002Fdocs",[104,31,39,242,105,41],[302,31,41,264,11,38],"17513471",[108,31,41,257,109,41],[93,32,39,242,94,41],[306,229,38,252,307,41],"17516448","billpg",[309,229,41,250,11,38],"17516664",[311,312,41,257,313,41],"17513691",10,"Angostura",[315,316,38,244,317,41],"17513489",11,"Robin_Message",[319,316,41,246,11,38],"17513531",[321,316,46,250,164,41],"17513583",[142,316,38,244,143,41],[324,316,39,325,63,41],"17523136","maker\u002Fpositive\u002Fexecution",[327,316,41,246,11,38],"17524945",[329,316,46,330,143,41],"17530216","project\u002Fmixed\u002Fexecution",[332,316,41,325,11,38],"17531975",[97,34,46,281,98,41],[335,336,46,337,338,41],"17511690",13,"project\u002Fneutral\u002Fexecution","ganashaw",[340,336,41,246,11,38],"17512478",[163,18,46,281,164,41],[343,18,41,250,11,38],"17513462",[135,345,38,296,136,41],15,[347,345,41,348,11,38],"17513438","maker\u002Fneutral\u002Fdocs",[139,350,38,296,136,41],16,[352,350,41,348,11,38],"17521198",[354,355,41,257,356,41],"17514743",17,"zerr",[194,358,46,264,195,41],18,[360,361,39,242,362,41],"17514969",19,"tgb",[364,361,41,264,11,38],"17515021",[366,367,38,244,368,41],"17516633",20,"imtringued",[370,367,41,246,11,38],"17517098",[117,372,38,252,118,41],21,[121,372,41,250,11,38],[],[376,381,386,391,396,401],{"id":377,"name":378,"points":379,"category":380},"17487552","Browsh",967,"dev_tools",{"id":382,"name":383,"points":384,"category":385},"17470037","Hacker News job trends",371,"data",{"id":387,"name":388,"points":389,"category":390},"17509601","Solving Rush Hour",223,"games",{"id":392,"name":393,"points":394,"category":395},"17506753","Markdown New Tab",218,"productivity",{"id":397,"name":398,"points":399,"category":400},"17505559","Oathkeeper",174,"infrastructure",{"id":402,"name":403,"points":404,"category":400},"17471938","TaskBotJS",137,false,"v2",{"id":408,"name":5,"line":6,"ai":405,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":29,"top":18,"kw":409,"maker":11,"domain":10,"tier":19,"attempts":41,"strip":410,"url":9,"mix":411,"praise":81,"objection":113,"sub":21},17508151,[24,25,26,27],"0131505503300301110503010153030311035101",[31,32,33,34],1793990976643]