[{"data":1,"prerenderedAt":448},["ShallowReactive",2],{"project-41473518":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":49,"post_text":50,"what":51,"said":93,"maker_in_thread":220,"shape":231,"grid":235,"attempts":407,"same_week":412,"maker_shows":39,"maker_hidden":440,"reader_version":441,"card":442},"41473518","HN Books","I mapped HN's favorite books with GPT-4o","title","Show HN: I mapped HN's favorite books with GPT-4o","https:\u002F\u002Fhnbooks.pieterma.es","hnbooks.pieterma.es","pmaze",1725711811,2024,285,61,227,3515,7,"legend","learning_science","book recommendations","web_app",[21,24,25,26,27],"hacker news","book map","embeddings visualization","reading list","mixed",0.159,{"positive":31,"neutral":32,"mixed":33,"critical":34},14,18,4,8,44,{"design":37,"performance":40,"execution":43,"idea":45,"docs":47,"pricing":48},{"positive":38,"critical":39},5,2,{"positive":41,"critical":42},1,3,{"positive":44,"critical":39},0,{"positive":46,"critical":41},6,{"positive":44,"critical":44},{"positive":44,"critical":44},[42,41,44,44,44,42,42,38,44,38,42,38,38,42,42,41,41,38,42,38,38,41,38,38,42,44,42,42,41,44,44,38,38,42,42,42,38,42,42,38],"Hey HN! I love finding new books to read on here. I wanted to gather the most mentioned books and recreate the serendipity of physical browsing. I scraped 20k comments from HN threads related to reading, extracted the references and opinions using GPT-4o mini, and visualised their embeddings as a map.\n\n- OpenAI's embeddings were processed using UMAP and HDBSCAN. A direct 2D projection from the text embeddings didn't yield visually interesting results. Instead, HDBSCAN is first applied on a high-dimensional projection. Those clusters tend to correspond to different genres. The genre memberships",{"problem":52,"audience":58,"pricing":58,"motivation":59,"time_to_build":58,"stack":63,"openness":90,"stage":91,"team_size":92},{"value":53,"source":54,"evidence":55},"Finding new books through serendipitous browsing of books HN users recommend","maker",[56],{"id":57},"post",null,{"value":60,"source":54,"evidence":61},"Recreate the serendipity of physical bookshop browsing for HN book recommendations",[62],{"id":57},[64,68,72,76,80,86],{"value":65,"source":54,"evidence":66},"GPT-4o mini",[67],{"id":57},{"value":69,"source":54,"evidence":70},"OpenAI embeddings",[71],{"id":57},{"value":73,"source":54,"evidence":74},"UMAP",[75],{"id":57},{"value":77,"source":54,"evidence":78},"HDBSCAN",[79],{"id":57},{"value":81,"source":54,"evidence":82},"Svelte Kit",[83],{"id":84,"by":11,"text":85},"41498935","My apologies for that! First time deploying Svelte Kit to Cloudflare Pages, and I messed up the static build. Should be fixed now, hope you can give it another shot.",{"value":87,"source":54,"evidence":88},"Cloudflare Pages",[89],{"id":84,"by":11,"text":85},"unknown","launched","solo",{"praise":94,"objections":126,"requests":158,"questions":182,"alternatives":209},[95,111],{"value":96,"source":97,"evidence":98},"Clean, fast, tasteful interface","commenter",[99,103,107],{"id":100,"by":101,"text":102},"41490439","alabhyajindal","Congrats! The interface is beautiful and fast! Adding direct links to the comments that mention the books could be a good feature to add. Hacker News Books [1] does this and it's…",{"id":104,"by":105,"text":106},"41497863","r_singh","Really cool! Never thought \"I Am That\" based on the conversations with Nisargdatta Maharaj would show up here. That's the beauty of HN. You never know what you're gonna get :)…",{"id":108,"by":109,"text":110},"41496540","bestinterest","Nice, super responsive - what's this using underneath? I see canvas + svelte",{"value":112,"source":97,"evidence":113},"Useful for finding books to read and checking favourites",[114,118,122],{"id":115,"by":116,"text":117},"41493845","the__alchemist","Well, now I have recommendations; ty! I just bought 9 books from this list, filling in around ones I know I like. This is outstanding.",{"id":119,"by":120,"text":121},"41491355","ijidak","Love this. I like that the clustering allows me to start from a book I've read and liked, and then move on the similar books in the cluster. For example, I just finished The…",{"id":123,"by":124,"text":125},"41492836","allenu","I think it's useful as a tool for browsing a getting a general gist of what people are into and seeing if your favorites are there, too. As for a tool to maximize one's reading…",[127,146],{"value":128,"source":97,"evidence":129},"Site crashes or becomes unresponsive due to heavy load",[130,134,138,142],{"id":131,"by":132,"text":133},"41491096","peteforde","Really cool to see my favs show up, but I honestly don't understand what we're actually looking at; the groupings seem very opaque beyond very general themes like sci-fi,…",{"id":135,"by":136,"text":137},"41489792","jppope","FYI I have a runaway recursive processing when I load the site... it goes down in ~30 seconds or so.",{"id":139,"by":140,"text":141},"41494023","Eduard","For my system: becomes unresponsive within the first second. * Google Chrome form flathub. Version 128.0.6613.119 (Official Build) (64-bit) * Debian 12 bookworm under KDE Wayland",{"id":143,"by":144,"text":145},"41490648","Nathanael_M","I'd like to explore this more, but I'm getting THOUSANDS of errors: Failed to load module script: Expected a JavaScript module script but the server responded with a MIME type of…",{"value":147,"source":97,"evidence":148},"Map visualization is unclear and cluster meaning is opaque",[149,150,154],{"id":131,"by":132,"text":133},{"id":151,"by":152,"text":153},"41489974","dangus","I find the graphical nature of this to be disorganized and distracting. If you didn’t explain to me what the meaning of the map was it would be essentially a meaningless cluster…",{"id":155,"by":156,"text":157},"41490385","SoftTalker","Interesting but the visualization is useless. How about a standard tabular format maybe grouped by genre?",[159,167,178],{"value":160,"source":97,"evidence":161},"Tabular or list format",[162,166],{"id":163,"by":164,"text":165},"41489900","Brajeshwar","This is awesome. Can I please request a way to have a list or a tabular format?",{"id":155,"by":156,"text":157},{"value":168,"source":97,"evidence":169},"Cluster names or labels and axes",[170,174],{"id":171,"by":172,"text":173},"41490904","LudwigNagasena","Is there a way to see cluster names?",{"id":175,"by":176,"text":177},"41490267","padolsey","Niiice! I really like it. The spatial approach is cool, though labelling\u002Fannotations\u002Faxes would help. I share the frustraion with getting book covers for my project ablf.io.…",{"value":179,"source":97,"evidence":180},"Links to the HN comments that mention each book",[181],{"id":100,"by":101,"text":102},[183,198],{"value":184,"source":97,"evidence":185},"What do the axes and cluster shapes represent",[186,190,194],{"id":187,"by":188,"text":189},"41489958","kthartic","I'm not sure I understand the \"map\" part of this. What does the geography represent exactly?",{"id":191,"by":192,"text":193},"41491216","WillAdams","What does each axis represent? What is the significance of the placement of each cluster?",{"id":195,"by":196,"text":197},"41490442","mooreed","Nice project. I also would love to hear more about the cluster shapes and cardinality of the coordinate system. I consider myself am pretty versed in data analysis, however with…",{"value":199,"source":97,"evidence":200},"How were book covers sourced reliably",[201,205],{"id":202,"by":203,"text":204},"41491013","pstorm","Fyi regarding cover images: I have built and run a handful of book related websites and Amazon is the easiest place I found to get book covers. You just need the Amazon id and…",{"id":206,"by":207,"text":208},"41474049","paulwarren","Check out the OpenLibrary Covers API: https:\u002F\u002Fopenlibrary.org\u002Fdev\u002Fdocs\u002Fapi\u002Fcovers",[210,214],{"value":211,"source":97,"evidence":212},"Hacker News Books (hackernewsbooks.com)",[213],{"id":100,"by":101,"text":102},{"value":215,"source":97,"evidence":216},"Literature Map (literature-map.com)",[217],{"id":218,"by":192,"text":219},"41491195","Well, for fiction there is: https:\u002F\u002Fwww.literature-map.com\u002F",{"comments":38,"answered":42,"key":221},[222,225,228],{"id":223,"text":224},"41498976","Hey, thanks for reporting - this is fixed now. I messed up the static build and some browsers freaked out. By law of showing things publicly, I of course only tested in a browser…",{"id":226,"text":227},"41499015","The crash was indeed not intended - my mistake! Should be fixed now. You've got the cluster semantics spot on, to be honest. Broad genres are grouped together, with a tendency…",{"id":229,"text":230},"41481978","Thanks! The cluster memberships that come out of the first round are distributions over the different clusters, e.g. a given book is weighted 0.8 for cluster A and 0.2 for…",{"commenters":232,"max_depth":33,"maker_replies":38,"first_comment_mins":233,"lifespan_hours":234},50,109,269,[236,238,242,246,248,252,256,258,261,264,268,270,273,276,277,278,281,283,284,285,288,291,293,296,299,301,305,310,313,314,318,323,328,329,330,334,336,340,341,344,348,350,354,359,361,364,367,369,370,372,375,380,384,386,388,392,394,396,399,400,402],[131,44,42,237,132,44],"project\u002Fmixed\u002Fdesign",[239,44,41,240,241,44],"41493071","project\u002Fcritical\u002Fperformance","jdthedisciple",[243,44,41,244,245,44],"41495325","project\u002Fcritical\u002Fexecution","zamber",[223,44,44,247,11,41],"maker\u002Fneutral\u002Fexecution",[249,44,44,250,251,44],"41495987","other\u002Fneutral\u002Fnone","refulgentis",[253,44,44,254,255,44],"41497413","commenter\u002Fneutral\u002Fnone","nostrebored",[226,44,44,257,11,41],"maker\u002Fneutral\u002Fidea",[259,44,42,260,132,44],"41500947","project\u002Fneutral\u002Fidea",[262,41,44,250,263,44],"41495629","kristianp",[265,41,42,266,267,44],"41497094","project\u002Fmixed\u002Fexecution","iwishiknewlisp",[175,39,38,269,176,44],"project\u002Fpositive\u002Fdesign",[271,39,44,250,272,44],"41492352","DantesKite",[274,39,44,250,275,44],"41494336","renjimen",[100,42,38,269,101,44],[206,33,42,247,207,44],[279,38,42,237,280,44],"41489911","sleazebreeze",[195,46,42,282,196,44],"project\u002Fneutral\u002Fdocs",[104,18,38,269,105,44],[163,34,38,269,164,44],[286,34,42,282,287,44],"41490122","theturtletalks",[289,34,42,282,290,44],"41491397","Strongbad536",[202,292,42,247,203,44],9,[294,292,44,250,295,44],"41508279","vismit2000",[151,297,41,298,152,44],10,"project\u002Fcritical\u002Fdesign",[135,300,41,240,136,44],11,[302,303,42,266,304,44],"41490297",12,"ilikehurdles",[306,307,38,308,309,44],"41496638",13,"project\u002Fpositive\u002Fidea","changexd",[311,31,42,247,312,44],"41475502","namanyayg",[229,31,44,247,11,41],[315,316,38,308,317,44],"41494513",15,"wtf242",[319,320,38,321,322,44],"41491484",16,"project\u002Fpositive\u002Fnone","noitpmeder",[324,325,42,326,327,44],"41492856",17,"project\u002Fneutral\u002Fdesign","answerheck",[143,32,41,244,144,44],[84,32,44,247,11,41],[331,332,38,308,333,44],"41514873",19,"dcchambers",[119,335,38,308,120,44],20,[337,338,42,260,339,44],"41491140",21,"23B1",[218,338,44,250,192,44],[342,343,44,250,295,44],"41497703",22,[345,346,38,308,347,44],"41494958",23,"motohagiography",[139,349,41,240,140,44],24,[351,352,42,326,353,44],"41491827",25,"reducesuffering",[355,356,41,357,358,44],"41505872",26,"project\u002Fcritical\u002Fidea","lucius_verus",[155,360,41,298,156,44],27,[362,360,44,254,363,44],"41491344","ok123456",[365,360,44,366,156,44],"41491522","commenter\u002Fcritical\u002Fdesign",[368,360,44,254,363,44],"41491881",[123,360,38,269,124,44],[171,371,42,326,172,44],28,[108,373,38,374,109,44],29,"project\u002Fpositive\u002Fperformance",[376,377,42,378,379,44],"41517732",30,"project\u002Fneutral\u002Fpricing","fruktmix",[381,382,42,247,383,44],"41497632",31,"maCDzP",[385,382,44,247,11,41],"41499085",[387,382,42,247,383,44],"41583071",[389,390,42,282,391,44],"41490053",32,"goshx",[115,393,38,308,116,44],33,[187,395,42,326,188,44],34,[397,395,42,260,398,44],"41489990","vegabook",[191,395,42,326,192,44],[401,395,44,250,363,44],"41491415",[403,404,38,405,406,44],"41494324",35,"maker\u002Fpositive\u002Fnone","dnlserrano",[408,411],{"id":409,"t":410,"points":34,"comments":44},"41425324",1725284627,{"id":4,"t":12,"points":14,"comments":15},[413,418,423,427,431,436],{"id":414,"name":415,"points":416,"category":417},"41465735","Wealthfolio",924,"finance_crypto",{"id":419,"name":420,"points":421,"category":422},"41467704","Infinity",481,"ai",{"id":424,"name":425,"points":426,"category":422},"41457633","AnythingLLM",368,{"id":428,"name":429,"points":14,"category":430},"41500938","YourNextStore","web_saas",{"id":432,"name":433,"points":434,"category":435},"41456411","Hacker League",192,"games",{"id":437,"name":438,"points":439,"category":422},"41512142","felafax",189,false,"v2",{"id":443,"name":5,"line":6,"ai":440,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":444,"top":18,"kw":445,"maker":11,"domain":10,"tier":19,"attempts":39,"strip":446,"url":9,"mix":447,"praise":96,"objection":128,"sub":21},41473518,0.16,[21,24,25,26,27],"3100033505355331153551553033100553335335",[31,32,33,34],1793991099734]