[{"data":1,"prerenderedAt":361},["ShallowReactive",2],{"project-9644324":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":27,"sentiment":28,"stance_mix":29,"scored_comments":32,"aspects":33,"strip":40,"post_text":42,"what":43,"said":82,"maker_in_thread":196,"shape":207,"grid":210,"attempts":322,"same_week":323,"maker_shows":352,"maker_hidden":353,"reader_version":354,"card":355},"9644324","cube-composer","A puzzle game inspired by functional programming, written in PureScript","title","Show HN: A puzzle game inspired by functional programming, written in PureScript","http:\u002F\u002Fdavid-peter.de\u002Fcube-composer","david-peter.de","sharkdp",1433228343,2015,121,49,199,2565,8,"notable","games","puzzle game","web_app",[21,24,25,26],"functional programming","purescript","isometric blocks","mixed",-0.088,{"positive":30,"neutral":18,"mixed":31,"critical":18},4,2,22,{"execution":34,"design":36,"docs":37},{"positive":35,"critical":35},1,{"positive":35,"critical":30},{"positive":38,"critical":39},0,3,[41,38,38,38,35,39,39,38,39,39,38,35,38,39,38,35,39,35,38,35,39,38,41,35,38,38,35,38,38,41,38,38,41,38,35,38,39,38,38,39],5,null,{"problem":42,"audience":44,"pricing":42,"motivation":42,"time_to_build":42,"stack":56,"openness":79,"stage":80,"team_size":81},{"value":45,"source":46,"evidence":47},"People interested in functional programming and puzzles","inferred",[48,52],{"id":49,"by":50,"text":51},"9645611","boobsbr","An intro would've been nice for people like me who know nothing about functional programming.",{"id":53,"by":54,"text":55},"9646307","tseing","Great implementation! I'm researching functional programming front-end solutions for my latest web app project. PureScript has been on my radar but would love to hear about…",[57,64,73],{"value":58,"source":59,"evidence":60},"PureScript","maker",[61],{"id":62,"by":11,"text":63},"9645173","Thank you! I started this project with plain JS + lodash, went on to JS + ramda and ended up using PureScript. I absolutely recommend it. I also have been using Haste before…",{"value":65,"source":59,"evidence":66},"Isomer.js",[67,70],{"id":68,"by":11,"text":69},"9645235","Exactly! The code for stackEqual is here: https:\u002F\u002Fgithub.com\u002Fsharkdp\u002Fcube-composer\u002Fblob\u002Fmaster\u002Fsrc\u002FTransformer.purs#L45-L49 I should definitely add a better description somewhere!",{"id":71,"by":11,"text":72},"9645933","On the contrary. It was a pleasure working with Isomer! It's an integral part of the game .. thank you very much!",{"value":74,"source":59,"evidence":75},"Sortable (drag and drop)",[76],{"id":77,"by":11,"text":78},"9645250","Thank you. The drag and drop should work on mobile (I use https:\u002F\u002Fgithub.com\u002FRubaXa\u002FSortable). I definitely have to make the layout responsive, however.","open_source","beta","unknown",{"praise":83,"objections":107,"requests":142,"questions":168,"alternatives":185},[84,100],{"value":85,"source":86,"evidence":87},"Fun and challenging puzzle game","commenter",[88,92,96],{"id":89,"by":90,"text":91},"9644858","MegaLeon","Thi is damn fun, well done. Any plans for a mobile version?",{"id":93,"by":94,"text":95},"9645161","ilya-pi","This is so amazing, I love it so much! Very challenging, yet highly entertaining.",{"id":97,"by":98,"text":99},"9644857","deepnet","This is very challenging. Very very challenging",{"value":101,"source":86,"evidence":102},"PureScript implementation is clean and praised",[103],{"id":104,"by":105,"text":106},"9644995","cies","PureScript is a game changer. Compilation is fairly simple (unlike GHCJS), full Haskell'ish type system and modern\u002Fcompact syntax, picked up a lot of momentum lately. It find it…",[108,119,134],{"value":109,"source":86,"evidence":110},"Visual blocks of same color are hard to distinguish",[111,115],{"id":112,"by":113,"text":114},"9644795","shultays","It would be better if we could see the adjacent cubes with same color clearly. Especially on objective part, it is hard to determine how long a line segment is if it is same color.",{"id":116,"by":117,"text":118},"9644935","thaumasiotes","Yeah, thin black borders between all the cubes would be a world of help.",{"value":120,"source":86,"evidence":121},"stackEqual function is confusing with no documentation",[122,126,130],{"id":123,"by":124,"text":125},"9644916","gholap","Awesome game! The stackequal function is confusing though... Any help or description would've saved a lot of time...",{"id":127,"by":128,"text":129},"9645063","thomasahle","I solved the second one using stackEqual. Still have no idea what it does... The interface is really fun though, and the blocks look nice. Only the \"Solved!\" text is quite small…",{"id":131,"by":132,"text":133},"9646664","swang","Maybe I've just stared at the page too long looking for what to do, but I had to come into the comments to figure it out. My eyes completely glossed over \"Goal\" as it doesn't…",{"value":135,"source":86,"evidence":136},"Lacks introduction and tutorial for newcomers",[137,138],{"id":49,"by":50,"text":51},{"id":139,"by":140,"text":141},"9645744","icefox","* Rather than saying to hit 'R' to reset have a button (keyboard can work too, but only allowing the keyboard goes against the rest of the game which is mouse\u002Ftouch driven). * On…",[143,151,158,163],{"value":144,"source":86,"evidence":145},"Add a help panel or introductory levels explaining functions",[146,147,148],{"id":49,"by":50,"text":51},{"id":139,"by":140,"text":141},{"id":149,"by":11,"text":150},"9645245","Thank you! I haven't really worked on a nice 'transition' in difficulty. I will try to add more introductory levels with explanations in the future.",{"value":152,"source":86,"evidence":153},"Show import\u002Fexport of programs as text for sharing",[154],{"id":155,"by":156,"text":157},"9645080","deskamess","Like others I would like to second the visualization of block sizes better. And a brief explanation of commands like stackEqual (is there some sort of normalization going on to…",{"value":159,"source":86,"evidence":160},"Show a solved indicator more clearly",[161,162],{"id":139,"by":140,"text":141},{"id":127,"by":128,"text":129},{"value":164,"source":86,"evidence":165},"Mobile version \u002F responsive layout",[166,167],{"id":89,"by":90,"text":91},{"id":77,"by":11,"text":78},[169,181],{"value":170,"source":86,"evidence":171},"What does stackEqual do",[172,173,177],{"id":123,"by":124,"text":125},{"id":174,"by":175,"text":176},"9645085","altschuler","stackEqual stacks neighboring blocks of the same color on top of each other.",{"id":178,"by":179,"text":180},"9645133","sweezyjeezy","Not quite, it stacks neighbouring columns with the same pattern of colours on top of each other, e.g. http:\u002F\u002Fi.imgur.com\u002F35N4tPu.png The columns have to be the same pattern…",{"value":182,"source":86,"evidence":183},"Experiences using PureScript",[184],{"id":53,"by":54,"text":55},[186,192],{"value":187,"source":86,"evidence":188},"Haste, Fay, GHCJS (Haskell to JavaScript compilers)",[189],{"id":190,"by":105,"text":191},"9645600","Thanks for these insights. I used the Fay project to compile Haskell to JS for some time. But in the next overhaul I probably switch to GHCJS, as for my project interop with…",{"value":193,"source":86,"evidence":194},"CoffeeScript, TypeScript, ES6, Opal",[195],{"id":190,"by":105,"text":191},{"comments":197,"answered":198,"key":199},18,6,[200,201,204],{"id":62,"text":63},{"id":202,"text":203},"9644331","This is still work in progress. I would love to hear your feedback. GitHub link: https:\u002F\u002Fgithub.com\u002Fsharkdp\u002Fcube-composer",{"id":205,"text":206},"9644833","Thank you for the feedback. I have been thinking about this earlier (https:\u002F\u002Fgithub.com\u002Fsharkdp\u002Fcube-composer\u002Fissues\u002F7). I will definitely try to improve it.",{"commenters":208,"max_depth":198,"maker_replies":197,"first_comment_mins":31,"lifespan_hours":209},25,33,[211,213,215,217,219,221,223,225,228,230,232,235,238,241,244,246,249,251,253,255,257,260,263,266,268,270,272,276,278,279,281,284,285,287,289,293,295,296,300,301,302,303,307,310,314,317,318,319,320],[104,38,41,212,105,38],"project\u002Fpositive\u002Fexecution",[62,38,38,214,11,35],"maker\u002Fneutral\u002Fnone",[190,38,38,216,105,38],"commenter\u002Fneutral\u002Fnone",[202,35,38,218,11,35],"project\u002Fneutral\u002Fnone",[112,35,35,220,113,38],"project\u002Fcritical\u002Fdesign",[205,35,38,222,11,35],"maker\u002Fneutral\u002Fdesign",[116,35,39,224,117,38],"project\u002Fneutral\u002Fdesign",[226,35,39,224,227,38],"9645451","odabaxok",[229,35,38,222,11,35],"9645486",[155,35,39,231,156,38],"project\u002Fneutral\u002Fdocs",[233,35,38,234,11,35],"9645225","maker\u002Fneutral\u002Fdocs",[236,35,39,224,237,38],"9645150","minikomi",[239,35,38,240,11,35],"9645205","maker\u002Fpositive\u002Fdesign",[242,35,35,220,243,38],"9645261","fvirexi",[245,35,38,222,11,35],"9645289",[247,35,39,224,248,38],"9647187","jessaustin",[250,35,39,224,248,38],"9649236",[252,35,38,222,11,35],"9653489",[49,35,35,254,50,38],"project\u002Fcritical\u002Fdocs",[139,35,39,256,140,38],"project\u002Fmixed\u002Fdesign",[258,35,38,259,11,35],"9645830","maker\u002Fpositive\u002Fnone",[261,35,35,220,262,38],"9646481","ICWiener",[264,35,38,265,140,38],"9650098","commenter\u002Fneutral\u002Fdesign",[267,35,35,220,262,38],"9646505",[269,35,39,224,248,38],"9647272",[271,35,38,222,11,35],"9647533",[273,35,41,274,275,38],"9649457","project\u002Fpositive\u002Fdesign","tgb",[277,35,38,222,11,35],"9653607",[123,31,35,254,124,38],[280,31,38,234,11,35],"9645143",[282,31,38,283,237,38],"9645170","commenter\u002Fneutral\u002Fdocs",[131,39,35,254,132,38],[286,39,38,234,11,35],"9646996",[53,30,38,288,54,38],"other\u002Fneutral\u002Fnone",[290,41,38,291,292,38],"9645644","other\u002Fpositive\u002Fnone","galfarragem",[89,198,41,294,90,38],"project\u002Fpositive\u002Fnone",[77,198,38,222,11,35],[297,298,38,288,299,38],"9645880",7,"prezjordan",[71,298,38,259,11,35],[93,18,41,294,94,38],[149,18,38,222,11,35],[304,305,35,306,243,38],"9645240",9,"project\u002Fcritical\u002Fexecution",[308,305,38,309,11,35],"9645281","maker\u002Fpositive\u002Fexecution",[311,312,38,288,313,38],"9645092",10,"glaberficken",[127,315,39,316,128,38],11,"project\u002Fmixed\u002Fdocs",[174,315,38,283,175,38],[178,315,38,283,179,38],[68,315,38,234,11,35],[97,321,39,218,98,38],12,[],[324,329,333,338,343,347],{"id":325,"name":326,"points":327,"category":328},"9624673","Percy.io",249,"dev_tools",{"id":330,"name":331,"points":332,"category":328},"9643579","Diff.io",194,{"id":334,"name":335,"points":336,"category":337},"9652367","Green Cards explorer (jobsintech)",173,"data",{"id":339,"name":340,"points":341,"category":342},"9635037","Karplus-Strong Guitar Synthesizer",171,"creative",{"id":344,"name":345,"points":341,"category":346},"9654091","Differential Equations Explained","learning_science",{"id":348,"name":349,"points":350,"category":351},"9624043","Startup Developer Jobs",150,"web_saas",13,false,"v2",{"id":356,"name":5,"line":6,"ai":353,"cat":20,"year":13,"points":14,"comments":15,"rec":27,"s":357,"top":18,"kw":358,"maker":11,"domain":10,"tier":19,"attempts":38,"strip":359,"url":9,"mix":360,"praise":85,"objection":109,"sub":21},9644324,-0.09,[21,24,25,26],"5000133033010301310130510010050050103003",[30,18,31,18],1794036531881]