[{"data":1,"prerenderedAt":302},["ShallowReactive",2],{"project-34680269":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":40,"post_text":42,"what":43,"said":75,"maker_in_thread":134,"shape":143,"grid":147,"attempts":263,"same_week":264,"maker_shows":41,"maker_hidden":294,"reader_version":295,"card":296},"34680269","SQRL","Anti-spam rules language Twitter acquired in 2018, open-sourced","title","Show HN: SQRL – Anti-spam rules language Twitter acquired in 2018, open-sourced","https:\u002F\u002Fwebsqrl.vercel.app\u002Ftwitter","websqrl.vercel.app","qixxiq",1675702471,2023,200,44,278,3109,9,"notable","security_privacy","spam filtering rules language","library",[24,25,26,27],"anti-spam rules","spam filtering","rules engine","trust and safety","roasted",-0.179,{"positive":31,"neutral":31,"mixed":32,"critical":33},3,0,6,12,{"execution":36,"idea":38},{"positive":32,"critical":37},2,{"positive":39,"critical":31},1,[32,32,32,32,32,32,32,32,32,32,32,32,31,39,32,41,32,32,32,32,39,31,31,32,39,32,39,32,39,41,41,32,39,32,32,32,32,32,32,32],5,null,{"problem":44,"audience":51,"pricing":42,"motivation":59,"time_to_build":42,"stack":63,"openness":72,"stage":73,"team_size":74},{"value":45,"source":46,"evidence":47},"Blocking spam and abuse with hand-written rules at scale.","maker",[48],{"id":49,"by":11,"text":50},"34701732","Honestly our findings from working at scale (Facebook, Google, Twitter, Discord, Reddit, ...) were actually the opposite. With hand written (not arbitrary) rules it's easier to…",{"value":52,"source":53,"evidence":54},"Trust and safety and platform engineers fighting spam.","inferred",[55,58],{"id":56,"by":11,"text":57},"34699703","I've tried to release this a couple times in the past (you'll notice the git repo has a four year history), and happy it's finally out the door. If anyone is interested in using…",{"id":49,"by":11,"text":50},{"value":60,"source":46,"evidence":61},"Give the Smyte-built system a life outside Twitter after earlier release attempts.",[62],{"id":56,"by":11,"text":57},[64],{"value":65,"source":66,"evidence":67},"Python-like rules language","commenter",[68],{"id":69,"by":70,"text":71},"34699110","jhgg","We used to use Smyte at my place of work prior to the twitter acquisition. Very cool stuff. Ended up rewriting it in house. We ended up with a SQRL variant that is a restricted…","open_source","launched","unknown",{"praise":76,"objections":89,"requests":107,"questions":115,"alternatives":123},[77],{"value":78,"source":66,"evidence":79},"Cool, neat demo and useful ideas from experienced spam fighters.",[80,84,88],{"id":81,"by":82,"text":83},"34680575","rengers","That’s a really neat demo!",{"id":85,"by":86,"text":87},"34702328","karinemellata","Super neat demo!",{"id":69,"by":70,"text":71},[90,100],{"value":91,"source":66,"evidence":92},"Hard-coded rules are useless at Twitter scale; spammers adapt.",[93,97],{"id":94,"by":95,"text":96},"34701135","simondotau","At Twitter scale, arbitrary hard-coded rules are almost always useless; they make life more difficult for authentic posters while nefarious actors can work around them with…",{"id":98,"by":95,"text":99},"34705533","As someone who has personally battled such adversaries, I call bullshit on that. People with a financial incentive to spam in a user discussion environment are able to change…",{"value":101,"source":66,"evidence":102},"Python expressions already do this internally.",[103],{"id":104,"by":105,"text":106},"34703286","est","I built something similar internally, just use Python expressions directly.",[108],{"value":109,"source":66,"evidence":110},"Working live demo with more events and a pause control.",[111],{"id":112,"by":113,"text":114},"34698702","codetrotter","It says \"Compiled! Running\", and shows some code in their language, but the other half of the screen is just black for me. I assume from the text on the page that it is supposed…",[116],{"value":117,"source":66,"evidence":118},"Is Twitter still using this system?",[119],{"id":120,"by":121,"text":122},"34700878","anigbrowl","I wonder is Twitter even using this any more? I report spam a lot and i's common to find 50+ identical tweets being pumped out at the rate of 10\u002Fminute, or tweets that include…",[124,128],{"value":125,"source":66,"evidence":126},"Python expressions used directly.",[127],{"id":104,"by":105,"text":106},{"value":129,"source":66,"evidence":130},"Twitter filtered stream rules.",[131],{"id":132,"by":121,"text":133},"34710988","These are Twitter's filtered stream rules. They're accessible via the API to select from the global feed in real time. I don't have access to the firehose, of course, but my…",{"comments":41,"answered":39,"key":135},[136,137,140],{"id":56,"text":57},{"id":138,"text":139},"34698793","Ah! Yeah extremely poor timing. The Twitter API has stopped letting me fetch the events. Going to try see if I can fix it quickly. In the meantime the Wikipedia demo should be…",{"id":141,"text":142},"34699251","Sorry based on some other feedback I was just hacking away on turning off the profanity filter. Didn't think about the profile images (which we're not scanning, but typically is…",{"commenters":144,"max_depth":41,"maker_replies":41,"first_comment_mins":145,"lifespan_hours":146},29,19,76,[148,150,154,155,158,160,164,167,169,171,173,176,179,182,186,189,190,193,197,200,203,205,207,211,214,217,220,222,227,228,232,235,236,239,241,244,246,247,248,249,251,253,254,257,260],[56,32,32,149,11,39],"maker\u002Fneutral\u002Fnone",[151,32,32,152,153,32],"34715702","commenter\u002Fneutral\u002Fnone","kuhlmann",[69,39,32,152,70,32],[156,39,32,152,157,32],"34699347","whatupdave",[159,39,32,152,70,32],"34701633",[161,37,32,162,163,32],"34699421","other\u002Fneutral\u002Fnone","wnevets",[165,37,32,162,166,32],"34703107","mike_d",[168,37,32,162,163,32],"34703158",[170,37,32,162,166,32],"34703191",[172,37,32,152,163,32],"34703210",[174,37,32,152,175,32],"34707519","KyeRussell",[177,37,32,162,178,32],"34705976","ntdll",[180,37,32,162,181,32],"34707478","borplk",[183,31,31,184,185,32],"34701355","project\u002Fneutral\u002Fnone","snehesht",[112,187,39,188,113,32],4,"project\u002Fcritical\u002Fexecution",[138,187,32,149,11,39],[191,187,32,162,192,32],"34699423","mdaniel",[194,41,41,195,196,32],"34702873","project\u002Fpositive\u002Fidea","latchkey",[198,41,32,162,199,32],"34702921","arthurcolle",[201,41,32,162,202,32],"34703487","emmelaich",[204,41,32,162,196,32],"34704247",[206,41,32,162,199,32],"34730967",[208,41,39,209,210,32],"34703094","project\u002Fcritical\u002Fidea","mouse_",[212,41,31,213,196,32],"34704269","project\u002Fneutral\u002Fidea",[215,33,31,213,216,32],"34701815","fsckboy",[218,33,32,152,219,32],"34702372","saurik",[221,33,32,152,216,32],"34704506",[223,224,39,225,226,32],"34699180",7,"project\u002Fcritical\u002Fnone","BoorishBears",[141,224,32,149,11,39],[229,230,39,188,231,32],"34698732",8,"croes",[233,230,32,234,11,39],"34699328","maker\u002Fneutral\u002Fexecution",[104,18,39,209,105,32],[81,237,41,238,82,32],10,"project\u002Fpositive\u002Fnone",[85,240,41,238,86,32],11,[242,34,32,162,243,32],"34700008","revskill",[120,245,32,162,121,32],13,[94,245,39,209,95,32],[49,245,32,149,11,39],[98,245,32,152,95,32],[250,245,32,152,121,32],"34702194",[252,245,32,152,95,32],"34705505",[132,245,32,162,121,32],[255,245,32,162,256,32],"34701527","KennyBlanken",[258,245,32,162,259,32],"34702014","emodendroket",[261,245,32,162,262,32],"34703290","astrange",[],[265,270,275,280,285,290],{"id":266,"name":267,"points":268,"category":269},"34635352","Maroofy",753,"ai",{"id":271,"name":272,"points":273,"category":274},"34713202","Filmbox",658,"creative",{"id":276,"name":277,"points":278,"category":279},"34706098","Kuboble.com",437,"games",{"id":281,"name":282,"points":283,"category":284},"34646199","Glidesort",389,"languages",{"id":286,"name":287,"points":288,"category":289},"34639728","DriftDB",367,"dev_tools",{"id":291,"name":292,"points":293,"category":289},"34648266","DocsGPT",256,false,"v2",{"id":297,"name":5,"line":6,"ai":294,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":298,"top":18,"kw":299,"maker":11,"domain":10,"tier":19,"attempts":32,"strip":300,"url":9,"mix":301,"praise":78,"objection":91,"sub":21},34680269,-0.18,[24,25,26,27],"0000000000003105000013301010155010000000",[31,31,32,33],1793991059931]