[{"data":1,"prerenderedAt":370},["ShallowReactive",2],{"project-29729335":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":34,"aspects":35,"strip":42,"post_text":44,"what":45,"said":71,"maker_in_thread":171,"shape":179,"grid":183,"attempts":333,"same_week":334,"maker_shows":41,"maker_hidden":362,"reader_version":363,"card":364},"29729335","Wall of Text","I learnt how to use WebSockets, made something beautiful\u002Fterrible","title","Show HN: I learnt how to use WebSockets, made something beautiful\u002Fterrible","https:\u002F\u002Fwww.walloftext.art\u002F","walloftext.art","g105b",1640808377,2021,145,60,344,2533,14,"notable","learning_science","websocket demo","web_app",[24,25,26,27],"websockets","anonymous comments","php websocket","realtime grid","curious",0.024,{"positive":31,"neutral":32,"mixed":33,"critical":31},4,18,0,26,{"execution":36,"idea":38,"performance":40},{"positive":33,"critical":37},3,{"positive":39,"critical":33},2,{"positive":33,"critical":41},1,[33,43,33,33,37,41,33,33,33,33,33,33,33,33,33,33,37,37,33,37,43,37,33,41,33,41,41,33,33,43,33,33,33,43,33,37,37,37,37,37],5,null,{"problem":46,"audience":44,"pricing":44,"motivation":53,"time_to_build":44,"stack":57,"openness":68,"stage":69,"team_size":70},{"value":47,"source":48,"evidence":49},"Minimal project to learn and test bidirectional WebSocket communication","maker",[50],{"id":51,"by":11,"text":52},"29729442","This last week I've been isolating due to contracting COVID at Christmas. Not fun... With my time recovering in bed, I finished off learning about WebSockets by building…",{"value":54,"source":48,"evidence":55},"Learning WebSockets while recovering from COVID",[56],{"id":51,"by":11,"text":52},[58,64],{"value":59,"source":48,"evidence":60},"PHP",[61],{"id":62,"by":11,"text":63},"29735182","OP here. There were no scaling issues while this was getting hammered. PHP has native support for sockets, so can handle thousands of connections, no better or worse than any…",{"value":65,"source":48,"evidence":66},"WebSockets",[67],{"id":51,"by":11,"text":52},"open_source","launched","solo",{"praise":72,"objections":88,"requests":109,"questions":122,"alternatives":145},[73,81],{"value":74,"source":75,"evidence":76},"Fun and nostalgic concept, similar to early Facebook wall","commenter",[77],{"id":78,"by":79,"text":80},"29729958","neoncontrails","My first thought was \"vintage Facebook\" actually — back when it was called _the_ Facebook and open only to university students. The wall was a beautifully chaotic thing,…",{"value":82,"source":75,"evidence":83},"Code is succinct and instructive",[84],{"id":85,"by":86,"text":87},"29736921","exikyut","Seeing the URL end in .php gave me the wrong impression - I thought it was running a separate PHP interpreter for each connection... which is naturally insane, and why I was…",[89,99],{"value":90,"source":75,"evidence":91},"Site was abused with slurs and illegal content and taken offline",[92,96],{"id":93,"by":94,"text":95},"29731758","squarefoot","From the site: > I've had to take this project offline! > I was expecting it to be abused and violated, but was completely naive to what the internet people were capable of. >…",{"id":97,"by":11,"text":98},"29735171","Illegal content uploaded via my naive websocket implementation. I thought it was best to turn it off than fix while it was \"hot\".",{"value":100,"source":75,"evidence":101},"Insecure implementation accepted arbitrary input and rendered HTML",[102,106],{"id":103,"by":104,"text":105},"29732250","jvanderbot","let me see. I open a page and text that other people enter in real time is rendered as html on that page? what could possibly go wrong.",{"id":107,"by":11,"text":108},"29735149","hey, with web sockets I am a noob. I'm generally quite ok with internet security as a concept, but I was massively naive in my implementation here, and one very obvious…",[110,114],{"value":111,"source":75,"evidence":112},"Add accounts or limit access to real users",[113],{"id":85,"by":86,"text":87},{"value":115,"source":75,"evidence":116},"Bring the site back online",[117,118],{"id":85,"by":86,"text":87},{"id":119,"by":120,"text":121},"29747485","Aeolun","Ok, fair enough :)",[123,134],{"value":124,"source":75,"evidence":125},"What was the site like before it was taken down?",[126,130],{"id":127,"by":128,"text":129},"29732302","can16358p","Anyone who saw what it was before it was taken down (which is just what I saw when I opened it now for the first time), what exactly was it?",{"id":131,"by":132,"text":133},"29731401","joshspankit","Also curious. I thought the last thing up would be a screenshot.",{"value":135,"source":75,"evidence":136},"Why was it taken down and what illegal content was posted?",[137,141],{"id":138,"by":139,"text":140},"29734935","unbanned","Why was it taken down?",{"id":142,"by":143,"text":144},"29743093","throwaway127596","what sort of illegal content…",[146,157,164],{"value":147,"source":75,"evidence":148},"yourworldoftext.com",[149,153],{"id":150,"by":151,"text":152},"29729783","sanqui","Is this perchance inspired by https:\u002F\u002Fwww.yourworldoftext.com\u002F? I remember reading an interesting technical writeup when that went out -- it was early days for websocket. It…",{"id":154,"by":155,"text":156},"29729891","pjot","This looks similar to yourworldoftext[0] that was posted a few weeks ago. Very cool. [0]: https:\u002F\u002Fnews.ycombinator.com\u002Fitem?id=29576394",{"value":158,"source":75,"evidence":159},"300 Lines shared canvas",[160],{"id":161,"by":162,"text":163},"29730830","mikehall314","I worked on a similar little project about 10 years ago. We called it 300 Lines. It was a shared public canvas which displayed only the last 300 lines drawn. We used socket.io to…",{"value":165,"source":75,"evidence":166},"gorilla\u002Fwebsocket chat example",[167],{"id":168,"by":169,"text":170},"29732002","scrose","While I didn't get to see what the site originally looked like. If it was just 'submit anonymous comments that websocket subscribers can see', there's a golang example leveraging…",{"comments":172,"answered":43,"key":173},8,[174,175,176],{"id":51,"text":52},{"id":107,"text":108},{"id":177,"text":178},"29729855","yeah :( the hacker news hug of death...",{"commenters":180,"max_depth":181,"maker_replies":172,"first_comment_mins":181,"lifespan_hours":182},40,9,82,[184,186,190,193,195,198,201,204,205,207,210,213,216,218,221,223,226,229,232,234,237,240,242,245,247,250,252,253,254,255,259,262,266,269,272,274,278,279,282,285,288,291,293,295,296,297,301,304,307,309,311,315,317,320,323,326,328,329,331,332],[51,33,33,185,11,41],"maker\u002Fneutral\u002Fnone",[187,41,33,188,189,33],"29732661","other\u002Fneutral\u002Fnone","eyelidlessness",[191,41,43,192,189,33],"29732726","maker\u002Fpositive\u002Fnone",[107,41,33,194,11,41],"maker\u002Fneutral\u002Fexecution",[196,41,33,188,197,33],"29737855","emj",[199,41,33,188,200,33],"29766201","graderjs",[202,39,37,203,86,33],"29731094","project\u002Fneutral\u002Fnone",[131,39,37,203,132,33],[103,39,41,206,104,33],"project\u002Fcritical\u002Fexecution",[208,39,33,188,209,33],"29732434","toomanyrichies",[211,39,33,188,212,33],"29732705","stavros",[214,39,33,188,215,33],"29732790","LesZedCB",[217,39,33,188,212,33],"29732818",[219,39,33,188,220,33],"29733351","girvo",[222,39,33,188,215,33],"29765862",[224,39,33,188,225,33],"29735070","mehrdada",[227,39,33,228,212,33],"29735077","commenter\u002Fneutral\u002Fnone",[230,39,33,188,231,33],"29732794","lofatdairy",[233,39,33,188,220,33],"29733359",[235,39,33,188,236,33],"29734077","robbedpeter",[238,39,33,188,239,33],"29732798","temp8964",[241,39,33,188,209,33],"29732922",[243,39,33,188,244,33],"29733403","nirui",[246,39,33,228,209,33],"29733448",[248,39,37,203,249,33],"29732865","Havoc",[150,37,37,251,151,33],"project\u002Fneutral\u002Fidea",[78,37,37,251,79,33],[161,31,33,188,162,33],[127,43,37,203,128,33],[256,257,37,203,258,33],"29729542",6,"sokoloff",[154,260,43,261,155,33],7,"project\u002Fpositive\u002Fidea",[263,172,37,264,265,33],"29729942","project\u002Fneutral\u002Fexecution","davidw",[267,181,37,203,268,33],"29729882","madmod",[270,181,33,188,271,33],"29730870","quickthrower2",[168,273,37,251,169,33],10,[275,276,41,206,277,33],"29729846",11,"camhart",[177,276,33,185,11,41],[280,276,37,264,281,33],"29730127","onefuncman",[283,276,41,206,284,33],"29730326","ncfausti",[286,276,41,287,86,33],"29731059","project\u002Fcritical\u002Fperformance",[289,276,33,290,220,33],"29733382","commenter\u002Fneutral\u002Fperformance",[292,276,33,290,86,33],"29733465",[62,276,33,294,11,41],"maker\u002Fneutral\u002Fperformance",[85,276,43,192,86,33],[93,276,37,203,94,33],[298,299,33,188,300,33],"29732793",12,"colechristensen",[302,299,33,188,303,33],"29732811","DenseComet",[305,299,33,188,306,33],"29733962","igitur",[308,299,33,228,11,41],"29735198",[310,299,33,228,300,33],"29739849",[312,313,43,261,314,33],"29730882",13,"ncphil",[316,313,33,192,11,41],"29735189",[318,18,37,251,319,33],"29729872","Antrikshy",[321,18,37,251,322,33],"29731031","allen-munsch",[324,325,37,203,120,33],"29733673",15,[327,325,33,185,11,41],"29735204",[119,325,37,185,120,33],[138,330,37,203,139,33],16,[97,330,33,185,11,41],[142,330,37,203,143,33],[],[335,340,345,350,355,358],{"id":336,"name":337,"points":338,"category":339},"29690877","mwmbl",441,"web_saas",{"id":341,"name":342,"points":343,"category":344},"29726787","Voiceliner",297,"productivity",{"id":346,"name":347,"points":348,"category":349},"29715464","ntfy",241,"infrastructure",{"id":351,"name":352,"points":353,"category":354},"29705794","Drovp",105,"dev_tools",{"id":356,"name":357,"points":353,"category":349},"29711433","Uptrace",{"id":359,"name":360,"points":361,"category":344},"29703671","Alfread",104,false,"v2",{"id":365,"name":5,"line":6,"ai":362,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":366,"top":18,"kw":367,"maker":11,"domain":10,"tier":19,"attempts":33,"strip":368,"url":9,"mix":369,"praise":74,"objection":90,"sub":21},29729335,0.02,[24,25,26,27],"0500310000000000330353010110050005033333",[31,32,33,31],1794036614699]