[{"data":1,"prerenderedAt":261},["ShallowReactive",2],{"maker-sharkdp":3},[4,32,53,73,93,110,126,141,159,182,202,220,241],{"id":5,"name":6,"line":7,"ai":8,"cat":9,"year":10,"points":11,"comments":12,"rec":13,"s":14,"top":15,"kw":16,"maker":21,"domain":22,"tier":23,"attempts":24,"strip":25,"url":26,"mix":27,"praise":30,"objection":31,"sub":17},8981162,"Quizzity","a geographical quiz built on top of a Leaflet map",false,"games",2015,5,6,"quiet",null,94,[17,18,19,20],"geography quiz","leaflet map","city quiz","map quiz","sharkdp","david-peter.de","shown",0,"300505","http:\u002F\u002Fdavid-peter.de\u002Fquizzity",[28,29,24,24],2,1,"Fun and useful for map quizzes","Not optimized for mobile; dialog and city panel not responsive",{"id":33,"name":34,"line":35,"ai":8,"cat":9,"year":10,"points":36,"comments":37,"rec":38,"s":39,"top":40,"kw":41,"maker":21,"domain":22,"tier":46,"attempts":24,"strip":47,"url":48,"mix":49,"praise":51,"objection":52,"sub":42},9644324,"cube-composer","A puzzle game inspired by functional programming, written in PureScript",121,49,"mixed",-0.09,8,[42,43,44,45],"puzzle game","functional programming","purescript","isometric blocks","notable","5000133033010301310130510010050050103003","http:\u002F\u002Fdavid-peter.de\u002Fcube-composer",[50,40,28,40],4,"Fun and challenging puzzle game","Visual blocks of same color are hard to distinguish",{"id":54,"name":55,"line":56,"ai":8,"cat":57,"year":10,"points":58,"comments":59,"rec":13,"s":14,"top":60,"kw":61,"maker":21,"domain":66,"tier":46,"attempts":24,"strip":67,"url":68,"mix":69,"praise":70,"objection":71,"sub":72},10434387,"great puzzles","A curated list of great puzzles","learning_science",59,14,19,[62,63,64,65],"puzzles","logic puzzles","riddles","puzzle solutions","github.com","30100000000305","https:\u002F\u002Fgithub.com\u002Fsharkdp\u002Fgreat-puzzles",[29,28,24,29],"Good list of puzzles","Grouped by Color solution is more complicated than needed","puzzle collection",{"id":74,"name":75,"line":76,"ai":8,"cat":57,"year":10,"points":77,"comments":78,"rec":79,"s":80,"top":60,"kw":81,"maker":21,"domain":22,"tier":46,"attempts":28,"strip":86,"url":87,"mix":88,"praise":91,"objection":92,"sub":82},10476716,"Parachuting robots","a programming puzzle",60,55,"curious",0.07,[82,83,84,85],"programming puzzle","robot simulation","linked list cycle detection","assembly-like language","3113033303305333005353333030330311333335","http:\u002F\u002Fdavid-peter.de\u002Fparachuting-robots\u002F",[11,89,90,11],25,3,"Fun puzzle with a great visualization","Play button disabled before parsing is confusing; parse and run needed",{"id":94,"name":22,"line":95,"ai":8,"cat":57,"year":10,"points":96,"comments":97,"rec":13,"s":14,"top":98,"kw":99,"maker":21,"domain":22,"tier":23,"attempts":28,"strip":104,"url":105,"mix":106,"praise":107,"objection":108,"sub":109},10648590,"Interactive factorization diagrams",26,10,40,[100,101,102,103],"prime factorization","factorization diagram","prime numbers","interactive math","3030100010","http:\u002F\u002Fdavid-peter.de\u002Ffactorization-diagrams\u002F",[24,29,29,28],"Commenters find the diagrams awesome and nice","Large prime factors render as tiny dots that look like circles, hard to read","math visualisation",{"id":111,"name":112,"line":113,"ai":8,"cat":114,"year":10,"points":115,"comments":29,"rec":13,"s":14,"top":116,"kw":117,"maker":21,"domain":22,"tier":23,"attempts":28,"strip":122,"url":123,"mix":124,"praise":-1,"objection":-1,"sub":125},10702675,"Flare","Spreadsheet-style reactive web interfaces with Flare","languages",11,76,[118,44,119,120,121],"reactive programming","spreadsheet interface","elm","frp","3","http:\u002F\u002Fdavid-peter.de\u002Farticles\u002Fflare\u002F",[24,29,24,24],"reactive ui library",{"id":127,"name":128,"line":129,"ai":8,"cat":130,"year":131,"points":97,"comments":11,"rec":13,"s":14,"top":132,"kw":133,"maker":21,"domain":66,"tier":23,"attempts":24,"strip":138,"url":139,"mix":140,"praise":-1,"objection":-1,"sub":134},12057970,"Trigger","run a shell command repeatedly on file changes","dev_tools",2016,82,[134,135,136,137],"file watcher","run command on change","inotify","shell command","00000","https:\u002F\u002Fgithub.com\u002Fsharkdp\u002Ftrigger",[24,24,24,24],{"id":142,"name":143,"line":144,"ai":8,"cat":9,"year":131,"points":145,"comments":146,"rec":147,"s":148,"top":149,"kw":150,"maker":21,"domain":153,"tier":23,"attempts":28,"strip":154,"url":155,"mix":156,"praise":157,"objection":158,"sub":42},12563692,"CuriositY","Thanks!",20,13,"loved",0.29,54,[42,64,151,152],"coding puzzles","logic game","shark.fish","5505300333335","https:\u002F\u002Fshark.fish\u002Fcuriosity\u002F",[50,12,24,24],"Fun and engaging puzzles","Some levels are very hard, with one commenter spending about 4 hours",{"id":160,"name":161,"line":162,"ai":8,"cat":130,"year":163,"points":164,"comments":165,"rec":38,"s":166,"top":90,"kw":167,"maker":21,"domain":172,"tier":173,"attempts":24,"strip":174,"url":175,"mix":176,"praise":180,"objection":181,"sub":168},14625795,"Insect","a high-precision scientific calculator with physical units",2017,354,195,-0.16,[168,169,170,171],"scientific calculator","unit conversion","physical units","command line calculator","insect.sh","legend","4150120033201251333331223533143431232213","https:\u002F\u002Finsect.sh\u002F",[177,178,97,179],16,38,30,"Units and expressions just work intuitively","Unit parsing and implicit multiplication cause surprising results",{"id":183,"name":184,"line":185,"ai":8,"cat":130,"year":163,"points":186,"comments":187,"rec":79,"s":188,"top":28,"kw":189,"maker":21,"domain":66,"tier":173,"attempts":90,"strip":195,"url":196,"mix":197,"praise":199,"objection":200,"sub":201},15429390,"fd","A simple, fast and user-friendly alternative to find, written in Rust",456,215,0.01,[190,191,192,193,194],"find alternative","rust","file search","gitignore","command line","5233313005450000111420004344154033035103","https:\u002F\u002Fgithub.com\u002Fsharkdp\u002Ffd",[177,198,29,146],36,"Simple, sensible defaults that are easy to learn","Not a drop-in replacement for find; lacks -exec, -delete, -mtime","file search cli",{"id":203,"name":204,"line":205,"ai":8,"cat":130,"year":206,"points":207,"comments":60,"rec":79,"s":208,"top":177,"kw":209,"maker":21,"domain":66,"tier":46,"attempts":28,"strip":214,"url":215,"mix":216,"praise":217,"objection":218,"sub":219},16193225,"Hyperfine","a command-line benchmarking tool",2018,126,-0.06,[210,211,212,213],"command line benchmark","benchmarking tool","wall clock time","process timing","0300003003030100030","https:\u002F\u002Fgithub.com\u002Fsharkdp\u002Fhyperfine",[24,11,24,29],"Useful for analysing multiple runs","Timing alone is not an effective benchmark without understanding what the program does","benchmarking cli",{"id":221,"name":222,"line":223,"ai":8,"cat":130,"year":224,"points":225,"comments":226,"rec":147,"s":227,"top":228,"kw":229,"maker":21,"domain":66,"tier":46,"attempts":24,"strip":233,"url":234,"mix":235,"praise":238,"objection":239,"sub":240},21034615,"dbg macro","A dbg(...) macro for C++",2019,162,51,0.21,12,[230,222,231,232],"c++ debugging","print debugging","rust dbg","5000003000000000033333030350330555533105","https:\u002F\u002Fgithub.com\u002Fsharkdp\u002Fdbg-macro",[236,237,24,29],7,17,"Convenient for debugging when a debugger is impractical","Always enabled, no runtime enable\u002Fdisable; performance concerns","debugging macro",{"id":242,"name":243,"line":244,"ai":8,"cat":114,"year":245,"points":246,"comments":247,"rec":79,"s":248,"top":59,"kw":249,"maker":21,"domain":253,"tier":46,"attempts":24,"strip":254,"url":255,"mix":256,"praise":258,"objection":259,"sub":260},38276430,"Numbat","A programming language with physical dimensions as types",2023,146,113,0.04,[250,251,252,169],"physical dimensions","units of measure","type system","numbat.dev","1030033230110015514330305505000000510010","https:\u002F\u002Fnumbat.dev\u002Farticles\u002Fintro.html",[257,145,24,257],9,"Clear, well-written introduction article","Month and year units are averaged constants, which can mislead","programming language",1793991202535]