[{"approved_at_utc":null,"subreddit":"programming","selftext":"","author_fullname":"t2_7rgiuzs4","saved":false,"mod_reason_title":null,"gilded":0,"clicked":false,"title":"Make yourself replaceable","link_flair_richtext":[],"subreddit_name_prefixed":"r/programming","hidden":false,"pwls":6,"link_flair_css_class":null,"downs":0,"top_awarded_type":null,"hide_score":false,"name":"t3_1xb7t0x","quarantine":false,"link_flair_text_color":"dark","upvote_ratio":0.87,"author_flair_background_color":null,"subreddit_type":"public","ups":142,"total_awards_received":0,"media_embed":{},"author_flair_template_id":null,"is_original_content":false,"user_reports":[],"secure_media":null,"is_reddit_media_domain":false,"is_meta":false,"category":null,"secure_media_embed":{},"link_flair_text":null,"can_mod_post":false,"score":142,"approved_by":null,"is_created_from_ads_ui":false,"author_premium":false,"thumbnail":"","edited":false,"author_flair_css_class":null,"author_flair_richtext":[],"gildings":{},"content_categories":null,"is_self":false,"mod_note":null,"created":1792539736,"link_flair_type":"text","wls":6,"removed_by_category":null,"banned_by":null,"author_flair_type":"text","domain":"maroun-baydoun.com","allow_live_comments":false,"selftext_html":null,"likes":null,"suggested_sort":null,"banned_at_utc":null,"url_overridden_by_dest":"https://maroun-baydoun.com/blog/make-yourself-replaceable/","view_count":null,"archived":false,"no_follow":false,"is_crosspostable":false,"pinned":false,"over_18":false,"all_awardings":[],"awarders":[],"media_only":false,"can_gild":false,"spoiler":false,"locked":false,"author_flair_text":null,"treatment_tags":[],"visited":false,"removed_by":null,"num_reports":null,"distinguished":null,"subreddit_id":"t5_2fwo","author_is_blocked":false,"mod_reason_by":null,"removal_reason":null,"link_flair_background_color":"","id":"1xb7t0x","is_robot_indexable":true,"report_reasons":null,"author":"maroun-baydoun","discussion_type":null,"num_comments":34,"send_replies":true,"contest_mode":false,"mod_reports":[],"author_patreon_flair":false,"author_flair_text_color":null,"permalink":"/r/programming/comments/1xb7t0x/make_yourself_replaceable/","stickied":false,"url":"https://maroun-baydoun.com/blog/make-yourself-replaceable/","subreddit_subscribers":6928602,"created_utc":1792539736,"num_crossposts":0,"media":null,"is_video":false},{"approved_at_utc":null,"subreddit":"programming","selftext":"","author_fullname":"t2_6a5k5","saved":false,"mod_reason_title":null,"gilded":0,"clicked":false,"title":"Critical Vulnerabilities in PHP","link_flair_richtext":[],"subreddit_name_prefixed":"r/programming","hidden":false,"pwls":6,"link_flair_css_class":null,"downs":0,"top_awarded_type":null,"hide_score":false,"name":"t3_1xbcv7y","quarantine":false,"link_flair_text_color":"dark","upvote_ratio":0.96,"author_flair_background_color":null,"subreddit_type":"public","ups":49,"total_awards_received":0,"media_embed":{},"author_flair_template_id":null,"is_original_content":false,"user_reports":[],"secure_media":null,"is_reddit_media_domain":false,"is_meta":false,"category":null,"secure_media_embed":{},"link_flair_text":null,"can_mod_post":false,"score":49,"approved_by":null,"is_created_from_ads_ui":false,"author_premium":false,"thumbnail":"","edited":false,"author_flair_css_class":null,"author_flair_richtext":[],"gildings":{},"content_categories":null,"is_self":false,"mod_note":null,"created":1792554534,"link_flair_type":"text","wls":6,"removed_by_category":null,"banned_by":null,"author_flair_type":"text","domain":"cert.europa.eu","allow_live_comments":false,"selftext_html":null,"likes":null,"suggested_sort":null,"banned_at_utc":null,"url_overridden_by_dest":"https://cert.europa.eu/publications/security-advisories/2026-018/","view_count":null,"archived":false,"no_follow":false,"is_crosspostable":false,"pinned":false,"over_18":false,"all_awardings":[],"awarders":[],"media_only":false,"can_gild":false,"spoiler":false,"locked":false,"author_flair_text":null,"treatment_tags":[],"visited":false,"removed_by":null,"num_reports":null,"distinguished":null,"subreddit_id":"t5_2fwo","author_is_blocked":false,"mod_reason_by":null,"removal_reason":null,"link_flair_background_color":"","id":"1xbcv7y","is_robot_indexable":true,"report_reasons":null,"author":"LordAlfredo","discussion_type":null,"num_comments":3,"send_replies":true,"contest_mode":false,"mod_reports":[],"author_patreon_flair":false,"author_flair_text_color":null,"permalink":"/r/programming/comments/1xbcv7y/critical_vulnerabilities_in_php/","stickied":false,"url":"https://cert.europa.eu/publications/security-advisories/2026-018/","subreddit_subscribers":6928602,"created_utc":1792554534,"num_crossposts":0,"media":null,"is_video":false},{"approved_at_utc":null,"subreddit":"programming","selftext":"","author_fullname":"t2_9ya05","saved":false,"mod_reason_title":null,"gilded":0,"clicked":false,"title":"eMudhra Intermediate CA Compromise","link_flair_richtext":[],"subreddit_name_prefixed":"r/programming","hidden":false,"pwls":6,"link_flair_css_class":null,"downs":0,"top_awarded_type":null,"hide_score":false,"name":"t3_1xb32yj","quarantine":false,"link_flair_text_color":"dark","upvote_ratio":0.96,"author_flair_background_color":null,"subreddit_type":"public","ups":96,"total_awards_received":0,"media_embed":{},"author_flair_template_id":null,"is_original_content":false,"user_reports":[],"secure_media":null,"is_reddit_media_domain":false,"is_meta":false,"category":null,"secure_media_embed":{},"link_flair_text":null,"can_mod_post":false,"score":96,"approved_by":null,"is_created_from_ads_ui":false,"author_premium":false,"thumbnail":"","edited":false,"author_flair_css_class":null,"author_flair_richtext":[],"gildings":{},"content_categories":null,"is_self":false,"mod_note":null,"created":1792527690,"link_flair_type":"text","wls":6,"removed_by_category":null,"banned_by":null,"author_flair_type":"text","domain":"emudhra.we-have-a-problem.com","allow_live_comments":false,"selftext_html":null,"likes":null,"suggested_sort":null,"banned_at_utc":null,"url_overridden_by_dest":"https://emudhra.we-have-a-problem.com/","view_count":null,"archived":false,"no_follow":false,"is_crosspostable":false,"pinned":false,"over_18":false,"all_awardings":[],"awarders":[],"media_only":false,"can_gild":false,"spoiler":false,"locked":false,"author_flair_text":null,"treatment_tags":[],"visited":false,"removed_by":null,"num_reports":null,"distinguished":null,"subreddit_id":"t5_2fwo","author_is_blocked":false,"mod_reason_by":null,"removal_reason":null,"link_flair_background_color":"","id":"1xb32yj","is_robot_indexable":true,"report_reasons":null,"author":"the_gnarts","discussion_type":null,"num_comments":12,"send_replies":true,"contest_mode":false,"mod_reports":[],"author_patreon_flair":false,"author_flair_text_color":null,"permalink":"/r/programming/comments/1xb32yj/emudhra_intermediate_ca_compromise/","stickied":false,"url":"https://emudhra.we-have-a-problem.com/","subreddit_subscribers":6928602,"created_utc":1792527690,"num_crossposts":0,"media":null,"is_video":false},{"approved_at_utc":null,"subreddit":"programming","selftext":"I've recently discovered that you can use Touch ID (rather, the Mac's Secure Enclave) for SSH authentication. I'm the author of the post, feel free to ask any questions and if there are any experts I'd love to hear your thoughts!","author_fullname":"t2_xl03f","saved":false,"mod_reason_title":null,"gilded":0,"clicked":false,"title":"SSH keys on macOS with Touch ID","link_flair_richtext":[],"subreddit_name_prefixed":"r/programming","hidden":false,"pwls":6,"link_flair_css_class":null,"downs":0,"top_awarded_type":null,"hide_score":false,"name":"t3_1xaqyzu","quarantine":false,"link_flair_text_color":"dark","upvote_ratio":0.95,"author_flair_background_color":null,"subreddit_type":"public","ups":350,"total_awards_received":0,"media_embed":{},"author_flair_template_id":null,"is_original_content":false,"user_reports":[],"secure_media":null,"is_reddit_media_domain":false,"is_meta":false,"category":null,"secure_media_embed":{},"link_flair_text":null,"can_mod_post":false,"score":350,"approved_by":null,"is_created_from_ads_ui":false,"author_premium":false,"thumbnail":"","edited":false,"author_flair_css_class":null,"author_flair_richtext":[],"gildings":{},"content_categories":null,"is_self":false,"mod_note":null,"created":1792499752,"link_flair_type":"text","wls":6,"removed_by_category":null,"banned_by":null,"author_flair_type":"text","domain":"nmattia.com","allow_live_comments":false,"selftext_html":"&lt;!-- SC_OFF --&gt;&lt;div class=\"md\"&gt;&lt;p&gt;I&amp;#39;ve recently discovered that you can use Touch ID (rather, the Mac&amp;#39;s Secure Enclave) for SSH authentication. I&amp;#39;m the author of the post, feel free to ask any questions and if there are any experts I&amp;#39;d love to hear your thoughts!&lt;/p&gt;\n&lt;/div&gt;&lt;!-- SC_ON --&gt;","likes":null,"suggested_sort":null,"banned_at_utc":null,"url_overridden_by_dest":"https://nmattia.com/posts/2026-10-19-setting-up-ssh-keys-touch-id/","view_count":null,"archived":false,"no_follow":false,"is_crosspostable":false,"pinned":false,"over_18":false,"all_awardings":[],"awarders":[],"media_only":false,"can_gild":false,"spoiler":false,"locked":false,"author_flair_text":null,"treatment_tags":[],"visited":false,"removed_by":null,"num_reports":null,"distinguished":null,"subreddit_id":"t5_2fwo","author_is_blocked":false,"mod_reason_by":null,"removal_reason":null,"link_flair_background_color":"","id":"1xaqyzu","is_robot_indexable":true,"report_reasons":null,"author":"nmattia","discussion_type":null,"num_comments":46,"send_replies":true,"contest_mode":false,"mod_reports":[],"author_patreon_flair":false,"author_flair_text_color":null,"permalink":"/r/programming/comments/1xaqyzu/ssh_keys_on_macos_with_touch_id/","stickied":false,"url":"https://nmattia.com/posts/2026-10-19-setting-up-ssh-keys-touch-id/","subreddit_subscribers":6928602,"created_utc":1792499752,"num_crossposts":0,"media":null,"is_video":false},{"approved_at_utc":null,"subreddit":"programming","selftext":"","author_fullname":"t2_xog63","saved":false,"mod_reason_title":null,"gilded":0,"clicked":false,"title":"C vs C#: racing VLC's Gaussian blur","link_flair_richtext":[],"subreddit_name_prefixed":"r/programming","hidden":false,"pwls":6,"link_flair_css_class":null,"downs":0,"top_awarded_type":null,"hide_score":false,"name":"t3_1xbbkuq","quarantine":false,"link_flair_text_color":"dark","upvote_ratio":0.88,"author_flair_background_color":null,"subreddit_type":"public","ups":25,"total_awards_received":0,"media_embed":{},"author_flair_template_id":null,"is_original_content":false,"user_reports":[],"secure_media":null,"is_reddit_media_domain":false,"is_meta":false,"category":null,"secure_media_embed":{},"link_flair_text":null,"can_mod_post":false,"score":25,"approved_by":null,"is_created_from_ads_ui":false,"author_premium":false,"thumbnail":"","edited":false,"author_flair_css_class":null,"author_flair_richtext":[],"gildings":{},"content_categories":null,"is_self":false,"mod_note":null,"created":1792550582,"link_flair_type":"text","wls":6,"removed_by_category":null,"banned_by":null,"author_flair_type":"text","domain":"martinfinkel.com","allow_live_comments":false,"selftext_html":null,"likes":null,"suggested_sort":null,"banned_at_utc":null,"url_overridden_by_dest":"https://martinfinkel.com/blog/gaussian-blur-c-vs-csharp/","view_count":null,"archived":false,"no_follow":false,"is_crosspostable":false,"pinned":false,"over_18":false,"all_awardings":[],"awarders":[],"media_only":false,"can_gild":false,"spoiler":false,"locked":false,"author_flair_text":null,"treatment_tags":[],"visited":false,"removed_by":null,"num_reports":null,"distinguished":null,"subreddit_id":"t5_2fwo","author_is_blocked":false,"mod_reason_by":null,"removal_reason":null,"link_flair_background_color":"","id":"1xbbkuq","is_robot_indexable":true,"report_reasons":null,"author":"mtz94","discussion_type":null,"num_comments":9,"send_replies":true,"contest_mode":false,"mod_reports":[],"author_patreon_flair":false,"author_flair_text_color":null,"permalink":"/r/programming/comments/1xbbkuq/c_vs_c_racing_vlcs_gaussian_blur/","stickied":false,"url":"https://martinfinkel.com/blog/gaussian-blur-c-vs-csharp/","subreddit_subscribers":6928602,"created_utc":1792550582,"num_crossposts":0,"media":null,"is_video":false},{"approved_at_utc":null,"subreddit":"programming","selftext":"","author_fullname":"t2_2i0r60eg76","saved":false,"mod_reason_title":null,"gilded":0,"clicked":false,"title":"Go Issues Emergency Update Blocking Eight CA Keys Over Undisclosed Security Concerns","link_flair_richtext":[],"subreddit_name_prefixed":"r/programming","hidden":false,"pwls":6,"link_flair_css_class":null,"downs":0,"top_awarded_type":null,"hide_score":false,"name":"t3_1xarfxg","quarantine":false,"link_flair_text_color":"dark","upvote_ratio":0.97,"author_flair_background_color":null,"subreddit_type":"public","ups":210,"total_awards_received":0,"media_embed":{},"author_flair_template_id":null,"is_original_content":false,"user_reports":[],"secure_media":null,"is_reddit_media_domain":false,"is_meta":false,"category":null,"secure_media_embed":{},"link_flair_text":null,"can_mod_post":false,"score":210,"approved_by":null,"is_created_from_ads_ui":false,"author_premium":false,"thumbnail":"","edited":false,"author_flair_css_class":null,"author_flair_richtext":[],"gildings":{},"content_categories":null,"is_self":false,"mod_note":null,"created":1792501080,"link_flair_type":"text","wls":6,"removed_by_category":null,"banned_by":null,"author_flair_type":"text","domain":"thehackernews.com","allow_live_comments":false,"selftext_html":null,"likes":null,"suggested_sort":null,"banned_at_utc":null,"url_overridden_by_dest":"https://thehackernews.com/2026/10/go-issues-emergency-update-blocking.html","view_count":null,"archived":false,"no_follow":false,"is_crosspostable":false,"pinned":false,"over_18":false,"all_awardings":[],"awarders":[],"media_only":false,"can_gild":false,"spoiler":false,"locked":false,"author_flair_text":null,"treatment_tags":[],"visited":false,"removed_by":null,"num_reports":null,"distinguished":null,"subreddit_id":"t5_2fwo","author_is_blocked":false,"mod_reason_by":null,"removal_reason":null,"link_flair_background_color":"","id":"1xarfxg","is_robot_indexable":true,"report_reasons":null,"author":"359Panda3U","discussion_type":null,"num_comments":14,"send_replies":true,"contest_mode":false,"mod_reports":[],"author_patreon_flair":false,"author_flair_text_color":null,"permalink":"/r/programming/comments/1xarfxg/go_issues_emergency_update_blocking_eight_ca_keys/","stickied":false,"url":"https://thehackernews.com/2026/10/go-issues-emergency-update-blocking.html","subreddit_subscribers":6928602,"created_utc":1792501080,"num_crossposts":0,"media":null,"is_video":false},{"approved_at_utc":null,"subreddit":"programming","selftext":"","author_fullname":"t2_432e5","saved":false,"mod_reason_title":null,"gilded":0,"clicked":false,"title":"Announcing TypeScript 7.1 Beta","link_flair_richtext":[],"subreddit_name_prefixed":"r/programming","hidden":false,"pwls":6,"link_flair_css_class":null,"downs":0,"top_awarded_type":null,"hide_score":false,"name":"t3_1xaz5ur","quarantine":false,"link_flair_text_color":"dark","upvote_ratio":0.89,"author_flair_background_color":null,"subreddit_type":"public","ups":80,"total_awards_received":0,"media_embed":{},"author_flair_template_id":null,"is_original_content":false,"user_reports":[],"secure_media":null,"is_reddit_media_domain":false,"is_meta":false,"category":null,"secure_media_embed":{},"link_flair_text":null,"can_mod_post":false,"score":80,"approved_by":null,"is_created_from_ads_ui":false,"author_premium":false,"thumbnail":"","edited":false,"author_flair_css_class":null,"author_flair_richtext":[],"gildings":{},"content_categories":null,"is_self":false,"mod_note":null,"created":1792518937,"link_flair_type":"text","wls":6,"removed_by_category":null,"banned_by":null,"author_flair_type":"text","domain":"devblogs.microsoft.com","allow_live_comments":false,"selftext_html":null,"likes":null,"suggested_sort":null,"banned_at_utc":null,"url_overridden_by_dest":"https://devblogs.microsoft.com/typescript/announcing-typescript-7-1-beta/?r","view_count":null,"archived":false,"no_follow":false,"is_crosspostable":false,"pinned":false,"over_18":false,"all_awardings":[],"awarders":[],"media_only":false,"can_gild":false,"spoiler":false,"locked":false,"author_flair_text":null,"treatment_tags":[],"visited":false,"removed_by":null,"num_reports":null,"distinguished":null,"subreddit_id":"t5_2fwo","author_is_blocked":false,"mod_reason_by":null,"removal_reason":null,"link_flair_background_color":"","id":"1xaz5ur","is_robot_indexable":true,"report_reasons":null,"author":"DanielRosenwasser","discussion_type":null,"num_comments":12,"send_replies":true,"contest_mode":false,"mod_reports":[],"author_patreon_flair":false,"author_flair_text_color":null,"permalink":"/r/programming/comments/1xaz5ur/announcing_typescript_71_beta/","stickied":false,"url":"https://devblogs.microsoft.com/typescript/announcing-typescript-7-1-beta/?r","subreddit_subscribers":6928602,"created_utc":1792518937,"num_crossposts":0,"media":null,"is_video":false},{"approved_at_utc":null,"subreddit":"programming","selftext":"","author_fullname":"t2_cy3zc","saved":false,"mod_reason_title":null,"gilded":0,"clicked":false,"title":"Why memory-hard proof-of-work hashes are not a popular choice for CAPTCHA","link_flair_richtext":[],"subreddit_name_prefixed":"r/programming","hidden":false,"pwls":6,"link_flair_css_class":null,"downs":0,"top_awarded_type":null,"hide_score":false,"name":"t3_1xauiqk","quarantine":false,"link_flair_text_color":"dark","upvote_ratio":0.83,"author_flair_background_color":null,"subreddit_type":"public","ups":52,"total_awards_received":0,"media_embed":{},"author_flair_template_id":null,"is_original_content":false,"user_reports":[],"secure_media":null,"is_reddit_media_domain":false,"is_meta":false,"category":null,"secure_media_embed":{},"link_flair_text":null,"can_mod_post":false,"score":52,"approved_by":null,"is_created_from_ads_ui":false,"author_premium":false,"thumbnail":"","edited":false,"author_flair_css_class":null,"author_flair_richtext":[],"gildings":{},"content_categories":null,"is_self":false,"mod_note":null,"created":1792508610,"link_flair_type":"text","wls":6,"removed_by_category":null,"banned_by":null,"author_flair_type":"text","domain":"privatecaptcha.com","allow_live_comments":false,"selftext_html":null,"likes":null,"suggested_sort":null,"banned_at_utc":null,"url_overridden_by_dest":"https://privatecaptcha.com/blog/memory-hard-pow-hash-tradeoffs/","view_count":null,"archived":false,"no_follow":false,"is_crosspostable":false,"pinned":false,"over_18":false,"all_awardings":[],"awarders":[],"media_only":false,"can_gild":false,"spoiler":false,"locked":false,"author_flair_text":null,"treatment_tags":[],"visited":false,"removed_by":null,"num_reports":null,"distinguished":null,"subreddit_id":"t5_2fwo","author_is_blocked":false,"mod_reason_by":null,"removal_reason":null,"link_flair_background_color":"","id":"1xauiqk","is_robot_indexable":true,"report_reasons":null,"author":"ribtoks","discussion_type":null,"num_comments":16,"send_replies":true,"contest_mode":false,"mod_reports":[],"author_patreon_flair":false,"author_flair_text_color":null,"permalink":"/r/programming/comments/1xauiqk/why_memoryhard_proofofwork_hashes_are_not_a/","stickied":false,"url":"https://privatecaptcha.com/blog/memory-hard-pow-hash-tradeoffs/","subreddit_subscribers":6928602,"created_utc":1792508610,"num_crossposts":0,"media":null,"is_video":false},{"approved_at_utc":null,"subreddit":"programming","selftext":"","author_fullname":"t2_6f89y","saved":false,"mod_reason_title":null,"gilded":0,"clicked":false,"title":"Under the Hood of Redis: How It Delivers Sub-Millisecond Latency?","link_flair_richtext":[],"subreddit_name_prefixed":"r/programming","hidden":false,"pwls":6,"link_flair_css_class":null,"downs":0,"top_awarded_type":null,"hide_score":false,"name":"t3_1xavhns","quarantine":false,"link_flair_text_color":"dark","upvote_ratio":0.75,"author_flair_background_color":null,"subreddit_type":"public","ups":35,"total_awards_received":0,"media_embed":{},"author_flair_template_id":null,"is_original_content":false,"user_reports":[],"secure_media":null,"is_reddit_media_domain":false,"is_meta":false,"category":null,"secure_media_embed":{},"link_flair_text":null,"can_mod_post":false,"score":35,"approved_by":null,"is_created_from_ads_ui":false,"author_premium":false,"thumbnail":"","edited":false,"author_flair_css_class":null,"author_flair_richtext":[],"gildings":{},"content_categories":null,"is_self":false,"mod_note":null,"created":1792510809,"link_flair_type":"text","wls":6,"removed_by_category":null,"banned_by":null,"author_flair_type":"text","domain":"javarevisited.substack.com","allow_live_comments":false,"selftext_html":null,"likes":null,"suggested_sort":null,"banned_at_utc":null,"url_overridden_by_dest":"https://javarevisited.substack.com/p/under-the-hood-how-redis-delivers","view_count":null,"archived":false,"no_follow":false,"is_crosspostable":false,"pinned":false,"over_18":false,"all_awardings":[],"awarders":[],"media_only":false,"can_gild":false,"spoiler":false,"locked":false,"author_flair_text":null,"treatment_tags":[],"visited":false,"removed_by":null,"num_reports":null,"distinguished":null,"subreddit_id":"t5_2fwo","author_is_blocked":false,"mod_reason_by":null,"removal_reason":null,"link_flair_background_color":"","id":"1xavhns","is_robot_indexable":true,"report_reasons":null,"author":"javinpaul","discussion_type":null,"num_comments":7,"send_replies":true,"contest_mode":false,"mod_reports":[],"author_patreon_flair":false,"author_flair_text_color":null,"permalink":"/r/programming/comments/1xavhns/under_the_hood_of_redis_how_it_delivers/","stickied":false,"url":"https://javarevisited.substack.com/p/under-the-hood-how-redis-delivers","subreddit_subscribers":6928602,"created_utc":1792510809,"num_crossposts":0,"media":null,"is_video":false},{"approved_at_utc":null,"subreddit":"programming","selftext":"Hey r/programming!\n\nI wrote a comprehensive article on constructing a mutex from scratch.\n\nIt covers:  \n\\- Data races: what happens at the register level, and how parallel access can go wrong  \n\\- Atomics &amp; Memory Ordering: why atomics work and what each memory ordering does (Aq/Rel/AqRel/SeqCst)  \n\\- Spin lock &amp; Guards: Building a simple mutual exclusion lock via an AtomicBool, and providing safe access to the protected data  \n\\- And finally, Mutexes: A more complex mutual exclusion primitive that can achieve better performance via thread::park/::unpark\n\nThe article benchmarks and compares the performance of both a spinlock and Mutex to understand when to use which.\n\nHave you ever noticed a massive performance boost from switching from one synchronization primitive to another?  \nFeedback on the article is also appreciated!","author_fullname":"t2_1xcblzalng","saved":false,"mod_reason_title":null,"gilded":0,"clicked":false,"title":"Making A Mutex from Scratch in Rust to Understand Thread Safety","link_flair_richtext":[],"subreddit_name_prefixed":"r/programming","hidden":false,"pwls":6,"link_flair_css_class":null,"downs":0,"top_awarded_type":null,"hide_score":false,"name":"t3_1xav3jo","quarantine":false,"link_flair_text_color":"dark","upvote_ratio":0.75,"author_flair_background_color":null,"subreddit_type":"public","ups":19,"total_awards_received":0,"media_embed":{},"author_flair_template_id":null,"is_original_content":false,"user_reports":[],"secure_media":null,"is_reddit_media_domain":false,"is_meta":false,"category":null,"secure_media_embed":{},"link_flair_text":null,"can_mod_post":false,"score":19,"approved_by":null,"is_created_from_ads_ui":false,"author_premium":false,"thumbnail":"","edited":false,"author_flair_css_class":null,"author_flair_richtext":[],"gildings":{},"content_categories":null,"is_self":false,"mod_note":null,"created":1792509932,"link_flair_type":"text","wls":6,"removed_by_category":null,"banned_by":null,"author_flair_type":"text","domain":"levelup.gitconnected.com","allow_live_comments":false,"selftext_html":"&lt;!-- SC_OFF --&gt;&lt;div class=\"md\"&gt;&lt;p&gt;Hey &lt;a href=\"/r/programming\"&gt;r/programming&lt;/a&gt;!&lt;/p&gt;\n\n&lt;p&gt;I wrote a comprehensive article on constructing a mutex from scratch.&lt;/p&gt;\n\n&lt;p&gt;It covers:&lt;br/&gt;\n- Data races: what happens at the register level, and how parallel access can go wrong&lt;br/&gt;\n- Atomics &amp;amp; Memory Ordering: why atomics work and what each memory ordering does (Aq/Rel/AqRel/SeqCst)&lt;br/&gt;\n- Spin lock &amp;amp; Guards: Building a simple mutual exclusion lock via an AtomicBool, and providing safe access to the protected data&lt;br/&gt;\n- And finally, Mutexes: A more complex mutual exclusion primitive that can achieve better performance via thread::park/::unpark&lt;/p&gt;\n\n&lt;p&gt;The article benchmarks and compares the performance of both a spinlock and Mutex to understand when to use which.&lt;/p&gt;\n\n&lt;p&gt;Have you ever noticed a massive performance boost from switching from one synchronization primitive to another?&lt;br/&gt;\nFeedback on the article is also appreciated!&lt;/p&gt;\n&lt;/div&gt;&lt;!-- SC_ON --&gt;","likes":null,"suggested_sort":null,"banned_at_utc":null,"url_overridden_by_dest":"https://levelup.gitconnected.com/lets-build-our-own-mutex-in-rust-6259a4652e6d?gi=a23abaf4f511&amp;source=notifications---------------------------------collection_post_published-------------","view_count":null,"archived":false,"no_follow":false,"is_crosspostable":false,"pinned":false,"over_18":false,"all_awardings":[],"awarders":[],"media_only":false,"can_gild":false,"spoiler":false,"locked":false,"author_flair_text":null,"treatment_tags":[],"visited":false,"removed_by":null,"num_reports":null,"distinguished":null,"subreddit_id":"t5_2fwo","author_is_blocked":false,"mod_reason_by":null,"removal_reason":null,"link_flair_background_color":"","id":"1xav3jo","is_robot_indexable":true,"report_reasons":null,"author":"PastEar9661","discussion_type":null,"num_comments":0,"send_replies":true,"contest_mode":false,"mod_reports":[],"author_patreon_flair":false,"author_flair_text_color":null,"permalink":"/r/programming/comments/1xav3jo/making_a_mutex_from_scratch_in_rust_to_understand/","stickied":false,"url":"https://levelup.gitconnected.com/lets-build-our-own-mutex-in-rust-6259a4652e6d?gi=a23abaf4f511&amp;source=notifications---------------------------------collection_post_published-------------","subreddit_subscribers":6928602,"created_utc":1792509932,"num_crossposts":0,"media":null,"is_video":false},{"approved_at_utc":null,"subreddit":"programming","selftext":"","author_fullname":"t2_cd9nt","saved":false,"mod_reason_title":null,"gilded":0,"clicked":false,"title":"The reverts will continue until morale improves [PostgreSQL 19]","link_flair_richtext":[],"subreddit_name_prefixed":"r/programming","hidden":false,"pwls":6,"link_flair_css_class":null,"downs":0,"top_awarded_type":null,"hide_score":false,"name":"t3_1xa9h5w","quarantine":false,"link_flair_text_color":"dark","upvote_ratio":0.96,"author_flair_background_color":null,"subreddit_type":"public","ups":527,"total_awards_received":0,"media_embed":{},"author_flair_template_id":null,"is_original_content":false,"user_reports":[],"secure_media":null,"is_reddit_media_domain":false,"is_meta":false,"category":null,"secure_media_embed":{},"link_flair_text":null,"can_mod_post":false,"score":527,"approved_by":null,"is_created_from_ads_ui":false,"author_premium":false,"thumbnail":"","edited":false,"author_flair_css_class":null,"author_flair_richtext":[],"gildings":{},"content_categories":null,"is_self":false,"mod_note":null,"created":1792444823,"link_flair_type":"text","wls":6,"removed_by_category":null,"banned_by":null,"author_flair_type":"text","domain":"peter.eisentraut.org","allow_live_comments":false,"selftext_html":null,"likes":null,"suggested_sort":null,"banned_at_utc":null,"url_overridden_by_dest":"https://peter.eisentraut.org/blog/2026/10/09/the-reverts-will-continue-until-morale-improves","view_count":null,"archived":false,"no_follow":false,"is_crosspostable":false,"pinned":false,"over_18":false,"all_awardings":[],"awarders":[],"media_only":false,"can_gild":false,"spoiler":false,"locked":false,"author_flair_text":null,"treatment_tags":[],"visited":false,"removed_by":null,"num_reports":null,"distinguished":null,"subreddit_id":"t5_2fwo","author_is_blocked":false,"mod_reason_by":null,"removal_reason":null,"link_flair_background_color":"","id":"1xa9h5w","is_robot_indexable":true,"report_reasons":null,"author":"currentscurrents","discussion_type":null,"num_comments":27,"send_replies":true,"contest_mode":false,"mod_reports":[],"author_patreon_flair":false,"author_flair_text_color":null,"permalink":"/r/programming/comments/1xa9h5w/the_reverts_will_continue_until_morale_improves/","stickied":false,"url":"https://peter.eisentraut.org/blog/2026/10/09/the-reverts-will-continue-until-morale-improves","subreddit_subscribers":6928602,"created_utc":1792444823,"num_crossposts":0,"media":null,"is_video":false},{"approved_at_utc":null,"subreddit":"programming","selftext":"","author_fullname":"t2_2llppkuk","saved":false,"mod_reason_title":null,"gilded":0,"clicked":false,"title":"New Season Upgrades Vol 3: Split Keyboard Adventures! · cekrem.github.io","link_flair_richtext":[],"subreddit_name_prefixed":"r/programming","hidden":false,"pwls":6,"link_flair_css_class":null,"downs":0,"top_awarded_type":null,"hide_score":false,"name":"t3_1xb34av","quarantine":false,"link_flair_text_color":"dark","upvote_ratio":0.75,"author_flair_background_color":null,"subreddit_type":"public","ups":4,"total_awards_received":0,"media_embed":{},"author_flair_template_id":null,"is_original_content":false,"user_reports":[],"secure_media":null,"is_reddit_media_domain":false,"is_meta":false,"category":null,"secure_media_embed":{},"link_flair_text":null,"can_mod_post":false,"score":4,"approved_by":null,"is_created_from_ads_ui":false,"author_premium":false,"thumbnail":"","edited":false,"author_flair_css_class":null,"author_flair_richtext":[],"gildings":{},"content_categories":null,"is_self":false,"mod_note":null,"created":1792527780,"link_flair_type":"text","wls":6,"removed_by_category":null,"banned_by":null,"author_flair_type":"text","domain":"cekrem.github.io","allow_live_comments":false,"selftext_html":null,"likes":null,"suggested_sort":null,"banned_at_utc":null,"url_overridden_by_dest":"https://cekrem.github.io/posts/new-season-upgrades-vol-3-split-keyboard-adventures/","view_count":null,"archived":false,"no_follow":false,"is_crosspostable":false,"pinned":false,"over_18":false,"all_awardings":[],"awarders":[],"media_only":false,"can_gild":false,"spoiler":false,"locked":false,"author_flair_text":null,"treatment_tags":[],"visited":false,"removed_by":null,"num_reports":null,"distinguished":null,"subreddit_id":"t5_2fwo","author_is_blocked":false,"mod_reason_by":null,"removal_reason":null,"link_flair_background_color":"","id":"1xb34av","is_robot_indexable":true,"report_reasons":null,"author":"cekrem","discussion_type":null,"num_comments":0,"send_replies":true,"contest_mode":false,"mod_reports":[],"author_patreon_flair":false,"author_flair_text_color":null,"permalink":"/r/programming/comments/1xb34av/new_season_upgrades_vol_3_split_keyboard/","stickied":false,"url":"https://cekrem.github.io/posts/new-season-upgrades-vol-3-split-keyboard-adventures/","subreddit_subscribers":6928602,"created_utc":1792527780,"num_crossposts":0,"media":null,"is_video":false},{"approved_at_utc":null,"subreddit":"programming","selftext":"If you're experiencing actions stuck in a queued state, it's not you:\n\n**Update** \\- We’re are currently investigating degraded availability affecting GitHub Actions, GitHub Pages and Webhooks.   \n  \nCustomers may experience delays in workflow processing, site builds and webhook delivery.  \n  \nOct 19, 2026 - 15:56 UTC\n\n**Update** \\- Webhooks is experiencing degraded performance. We are continuing to investigate.  \nOct 19, 2026 - 15:50 UTC\n\n**Investigating** \\- We are investigating reports of degraded performance for Actions and Pages  \nOct 19, 2026 - 15:49 UTC","author_fullname":"t2_s0jocvlf","saved":false,"mod_reason_title":null,"gilded":0,"clicked":false,"title":"GitHub Actions is down once again","link_flair_richtext":[],"subreddit_name_prefixed":"r/programming","hidden":false,"pwls":6,"link_flair_css_class":null,"downs":0,"top_awarded_type":null,"hide_score":false,"name":"t3_1xa0z6c","quarantine":false,"link_flair_text_color":"dark","upvote_ratio":0.97,"author_flair_background_color":null,"subreddit_type":"public","ups":434,"total_awards_received":0,"media_embed":{},"author_flair_template_id":null,"is_original_content":false,"user_reports":[],"secure_media":null,"is_reddit_media_domain":false,"is_meta":false,"category":null,"secure_media_embed":{},"link_flair_text":null,"can_mod_post":false,"score":434,"approved_by":null,"is_created_from_ads_ui":false,"author_premium":false,"thumbnail":"","edited":false,"author_flair_css_class":null,"author_flair_richtext":[],"gildings":{},"content_categories":null,"is_self":false,"mod_note":null,"created":1792425991,"link_flair_type":"text","wls":6,"removed_by_category":null,"banned_by":null,"author_flair_type":"text","domain":"githubstatus.com","allow_live_comments":false,"selftext_html":"&lt;!-- SC_OFF --&gt;&lt;div class=\"md\"&gt;&lt;p&gt;If you&amp;#39;re experiencing actions stuck in a queued state, it&amp;#39;s not you:&lt;/p&gt;\n\n&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt; - We’re are currently investigating degraded availability affecting GitHub Actions, GitHub Pages and Webhooks.   &lt;/p&gt;\n\n&lt;p&gt;Customers may experience delays in workflow processing, site builds and webhook delivery.  &lt;/p&gt;\n\n&lt;p&gt;Oct 19, 2026 - 15:56 UTC&lt;/p&gt;\n\n&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt; - Webhooks is experiencing degraded performance. We are continuing to investigate.&lt;br/&gt;\nOct 19, 2026 - 15:50 UTC&lt;/p&gt;\n\n&lt;p&gt;&lt;strong&gt;Investigating&lt;/strong&gt; - We are investigating reports of degraded performance for Actions and Pages&lt;br/&gt;\nOct 19, 2026 - 15:49 UTC&lt;/p&gt;\n&lt;/div&gt;&lt;!-- SC_ON --&gt;","likes":null,"suggested_sort":null,"banned_at_utc":null,"url_overridden_by_dest":"https://www.githubstatus.com/","view_count":null,"archived":false,"no_follow":false,"is_crosspostable":false,"pinned":false,"over_18":false,"all_awardings":[],"awarders":[],"media_only":false,"can_gild":false,"spoiler":false,"locked":false,"author_flair_text":null,"treatment_tags":[],"visited":false,"removed_by":null,"num_reports":null,"distinguished":null,"subreddit_id":"t5_2fwo","author_is_blocked":false,"mod_reason_by":null,"removal_reason":null,"link_flair_background_color":"","id":"1xa0z6c","is_robot_indexable":true,"report_reasons":null,"author":"BitFlipp3r","discussion_type":null,"num_comments":57,"send_replies":true,"contest_mode":false,"mod_reports":[],"author_patreon_flair":false,"author_flair_text_color":null,"permalink":"/r/programming/comments/1xa0z6c/github_actions_is_down_once_again/","stickied":false,"url":"https://www.githubstatus.com/","subreddit_subscribers":6928602,"created_utc":1792425991,"num_crossposts":0,"media":null,"is_video":false},{"approved_at_utc":null,"subreddit":"programming","selftext":"A brief argument framing software creation, and specifically the details of the code, as an act of art","author_fullname":"t2_g4s3pazn","saved":false,"mod_reason_title":null,"gilded":0,"clicked":false,"title":"Making software is an artistic activity","link_flair_richtext":[],"subreddit_name_prefixed":"r/programming","hidden":false,"pwls":6,"link_flair_css_class":null,"downs":0,"top_awarded_type":null,"hide_score":false,"name":"t3_1xa4bck","quarantine":false,"link_flair_text_color":"dark","upvote_ratio":0.87,"author_flair_background_color":null,"subreddit_type":"public","ups":289,"total_awards_received":0,"media_embed":{},"author_flair_template_id":null,"is_original_content":false,"user_reports":[],"secure_media":null,"is_reddit_media_domain":false,"is_meta":false,"category":null,"secure_media_embed":{},"link_flair_text":null,"can_mod_post":false,"score":289,"approved_by":null,"is_created_from_ads_ui":false,"author_premium":false,"thumbnail":"","edited":false,"author_flair_css_class":null,"author_flair_richtext":[],"gildings":{},"content_categories":null,"is_self":false,"mod_note":null,"created":1792433378,"link_flair_type":"text","wls":6,"removed_by_category":null,"banned_by":null,"author_flair_type":"text","domain":"kolemannix.com","allow_live_comments":false,"selftext_html":"&lt;!-- SC_OFF --&gt;&lt;div class=\"md\"&gt;&lt;p&gt;A brief argument framing software creation, and specifically the details of the code, as an act of art&lt;/p&gt;\n&lt;/div&gt;&lt;!-- SC_ON --&gt;","likes":null,"suggested_sort":null,"banned_at_utc":null,"url_overridden_by_dest":"http://kolemannix.com/blog/software-is-art","view_count":null,"archived":false,"no_follow":false,"is_crosspostable":false,"pinned":false,"over_18":false,"all_awardings":[],"awarders":[],"media_only":false,"can_gild":false,"spoiler":false,"locked":false,"author_flair_text":null,"treatment_tags":[],"visited":false,"removed_by":null,"num_reports":null,"distinguished":null,"subreddit_id":"t5_2fwo","author_is_blocked":false,"mod_reason_by":null,"removal_reason":null,"link_flair_background_color":"","id":"1xa4bck","is_robot_indexable":true,"report_reasons":null,"author":"foobear777","discussion_type":null,"num_comments":131,"send_replies":true,"contest_mode":false,"mod_reports":[],"author_patreon_flair":false,"author_flair_text_color":null,"permalink":"/r/programming/comments/1xa4bck/making_software_is_an_artistic_activity/","stickied":false,"url":"http://kolemannix.com/blog/software-is-art","subreddit_subscribers":6928602,"created_utc":1792433378,"num_crossposts":0,"media":null,"is_video":false},{"approved_at_utc":null,"subreddit":"programming","selftext":"","author_fullname":"t2_1r0ddf26ma","saved":false,"mod_reason_title":null,"gilded":0,"clicked":false,"title":"Google Threat Intelligence Group: Investigating Ephemeral Supply Chain Tampering","link_flair_richtext":[],"subreddit_name_prefixed":"r/programming","hidden":false,"pwls":6,"link_flair_css_class":null,"downs":0,"top_awarded_type":null,"hide_score":false,"name":"t3_1xarzjw","quarantine":false,"link_flair_text_color":"dark","upvote_ratio":0.7,"author_flair_background_color":null,"subreddit_type":"public","ups":4,"total_awards_received":0,"media_embed":{},"author_flair_template_id":null,"is_original_content":false,"user_reports":[],"secure_media":null,"is_reddit_media_domain":false,"is_meta":false,"category":null,"secure_media_embed":{},"link_flair_text":null,"can_mod_post":false,"score":4,"approved_by":null,"is_created_from_ads_ui":false,"author_premium":false,"thumbnail":"","edited":false,"author_flair_css_class":null,"author_flair_richtext":[],"gildings":{},"content_categories":null,"is_self":false,"mod_note":null,"created":1792502465,"link_flair_type":"text","wls":6,"removed_by_category":null,"banned_by":null,"author_flair_type":"text","domain":"cloud.google.com","allow_live_comments":false,"selftext_html":null,"likes":null,"suggested_sort":null,"banned_at_utc":null,"url_overridden_by_dest":"https://cloud.google.com/blog/topics/threat-intelligence/investigating-ephemeral-supply-chain-tampering/","view_count":null,"archived":false,"no_follow":false,"is_crosspostable":false,"pinned":false,"over_18":false,"all_awardings":[],"awarders":[],"media_only":false,"can_gild":false,"spoiler":false,"locked":false,"author_flair_text":null,"treatment_tags":[],"visited":false,"removed_by":null,"num_reports":null,"distinguished":null,"subreddit_id":"t5_2fwo","author_is_blocked":false,"mod_reason_by":null,"removal_reason":null,"link_flair_background_color":"","id":"1xarzjw","is_robot_indexable":true,"report_reasons":null,"author":"CircumspectCapybara","discussion_type":null,"num_comments":0,"send_replies":true,"contest_mode":false,"mod_reports":[],"author_patreon_flair":false,"author_flair_text_color":null,"permalink":"/r/programming/comments/1xarzjw/google_threat_intelligence_group_investigating/","stickied":false,"url":"https://cloud.google.com/blog/topics/threat-intelligence/investigating-ephemeral-supply-chain-tampering/","subreddit_subscribers":6928602,"created_utc":1792502465,"num_crossposts":0,"media":null,"is_video":false},{"approved_at_utc":null,"subreddit":"programming","selftext":"&amp;#x200B;\n\nWhy is unemployment rate of recent CS and CE grads at 7 and 7.8% compared to the natural rate of unemployment of 4.2%. The whole economy is still going fine but recent graduates of cs and ce have an outsized affect.\n\nOverall unemployment rate of recent graduates is also 5.7% ","author_fullname":"t2_cah79mdsc","saved":false,"mod_reason_title":null,"gilded":0,"clicked":false,"title":"The Labor Market for Recent College Graduates","link_flair_richtext":[],"subreddit_name_prefixed":"r/programming","hidden":false,"pwls":6,"link_flair_css_class":null,"downs":0,"top_awarded_type":null,"hide_score":false,"name":"t3_1xa16ri","quarantine":false,"link_flair_text_color":"dark","upvote_ratio":0.88,"author_flair_background_color":null,"subreddit_type":"public","ups":163,"total_awards_received":0,"media_embed":{},"author_flair_template_id":null,"is_original_content":false,"user_reports":[],"secure_media":null,"is_reddit_media_domain":false,"is_meta":false,"category":null,"secure_media_embed":{},"link_flair_text":null,"can_mod_post":false,"score":163,"approved_by":null,"is_created_from_ads_ui":false,"author_premium":false,"thumbnail":"","edited":false,"author_flair_css_class":null,"author_flair_richtext":[],"gildings":{},"content_categories":null,"is_self":false,"mod_note":null,"created":1792426460,"link_flair_type":"text","wls":6,"removed_by_category":null,"banned_by":null,"author_flair_type":"text","domain":"newyorkfed.org","allow_live_comments":false,"selftext_html":"&lt;!-- SC_OFF --&gt;&lt;div class=\"md\"&gt;&lt;p&gt;&amp;#x200B;&lt;/p&gt;\n\n&lt;p&gt;Why is unemployment rate of recent CS and CE grads at 7 and 7.8% compared to the natural rate of unemployment of 4.2%. The whole economy is still going fine but recent graduates of cs and ce have an outsized affect.&lt;/p&gt;\n\n&lt;p&gt;Overall unemployment rate of recent graduates is also 5.7% &lt;/p&gt;\n&lt;/div&gt;&lt;!-- SC_ON --&gt;","likes":null,"suggested_sort":null,"banned_at_utc":null,"url_overridden_by_dest":"https://www.newyorkfed.org/research/college-labor-market#--:explore:outcomes-by-major","view_count":null,"archived":false,"no_follow":false,"is_crosspostable":false,"pinned":false,"over_18":false,"all_awardings":[],"awarders":[],"media_only":false,"can_gild":false,"spoiler":false,"locked":false,"author_flair_text":null,"treatment_tags":[],"visited":false,"removed_by":null,"num_reports":null,"distinguished":null,"subreddit_id":"t5_2fwo","author_is_blocked":false,"mod_reason_by":null,"removal_reason":null,"link_flair_background_color":"","id":"1xa16ri","is_robot_indexable":true,"report_reasons":null,"author":"Fuzzy-Armadillo-8610","discussion_type":null,"num_comments":24,"send_replies":true,"contest_mode":false,"mod_reports":[],"author_patreon_flair":false,"author_flair_text_color":null,"permalink":"/r/programming/comments/1xa16ri/the_labor_market_for_recent_college_graduates/","stickied":false,"url":"https://www.newyorkfed.org/research/college-labor-market#--:explore:outcomes-by-major","subreddit_subscribers":6928602,"created_utc":1792426460,"num_crossposts":0,"media":null,"is_video":false},{"approved_at_utc":null,"subreddit":"programming","selftext":"","author_fullname":"t2_sdmqs","saved":false,"mod_reason_title":null,"gilded":0,"clicked":false,"title":"How to Gaslight JavaScript Programmers","link_flair_richtext":[],"subreddit_name_prefixed":"r/programming","hidden":false,"pwls":6,"link_flair_css_class":null,"downs":0,"top_awarded_type":null,"hide_score":false,"name":"t3_1xaaife","quarantine":false,"link_flair_text_color":"dark","upvote_ratio":0.74,"author_flair_background_color":null,"subreddit_type":"public","ups":30,"total_awards_received":0,"media_embed":{},"author_flair_template_id":null,"is_original_content":false,"user_reports":[],"secure_media":null,"is_reddit_media_domain":false,"is_meta":false,"category":null,"secure_media_embed":{},"link_flair_text":null,"can_mod_post":false,"score":30,"approved_by":null,"is_created_from_ads_ui":false,"author_premium":false,"thumbnail":"","edited":false,"author_flair_css_class":null,"author_flair_richtext":[],"gildings":{},"content_categories":null,"is_self":false,"mod_note":null,"created":1792447308,"link_flair_type":"text","wls":6,"removed_by_category":null,"banned_by":null,"author_flair_type":"text","domain":"bryanpg.com","allow_live_comments":false,"selftext_html":null,"likes":null,"suggested_sort":null,"banned_at_utc":null,"url_overridden_by_dest":"https://www.bryanpg.com/articles/pragma-twice/proxy.html","view_count":null,"archived":false,"no_follow":false,"is_crosspostable":false,"pinned":false,"over_18":false,"all_awardings":[],"awarders":[],"media_only":false,"can_gild":false,"spoiler":false,"locked":false,"author_flair_text":null,"treatment_tags":[],"visited":false,"removed_by":null,"num_reports":null,"distinguished":null,"subreddit_id":"t5_2fwo","author_is_blocked":false,"mod_reason_by":null,"removal_reason":null,"link_flair_background_color":"","id":"1xaaife","is_robot_indexable":true,"report_reasons":null,"author":"ythl","discussion_type":null,"num_comments":10,"send_replies":true,"contest_mode":false,"mod_reports":[],"author_patreon_flair":false,"author_flair_text_color":null,"permalink":"/r/programming/comments/1xaaife/how_to_gaslight_javascript_programmers/","stickied":false,"url":"https://www.bryanpg.com/articles/pragma-twice/proxy.html","subreddit_subscribers":6928602,"created_utc":1792447308,"num_crossposts":0,"media":null,"is_video":false},{"approved_at_utc":null,"subreddit":"programming","selftext":"Here is an architectural summary (TL;DW) of the system design and metrics covered in the video for anyone who prefers reading first:\n\n# The Scale &amp; Why Git Choked\n\n* **Merge Velocity:** Between May and Sept 2026, Anthropic's monorepo went from **2,500 merges/day to 30,000+ merges/day** (\\~1 merge every 2.8 seconds) due to autonomous agent workflows.\n* **The 600+ PB/Day CI Bottleneck:** With a \\~100 GB main branch history, a 25 GB working copy, and **25,000,000 daily CI checkouts**, naive Git checkout traffic exceeded **600 PB/day**.\n* **Packfile &amp; Mirror Saturation:** Git's offline-first DAG and packfile negotiation model wasn't built for continuous sub-3-second merge velocity across 25M daily runners. Recomputing packfile deltas and synchronizing hundreds of decentralized internal Git mirrors saturated CPU and RAM across their fleet.\n\n# How \"Scion\" Replaces Git\n\nBuilt in 5 months by a 7-person engineering team, Scion ditches Git's offline packfile model for a centralized, virtualized architecture (conceptually similar to Google's Piper/CitC or Meta's Sapling/EdenFS):\n\n1. **Lock-Free Changesets on Cloud Spanner:** Repository state and changesets are stored in an always-online, lock-free model backed by **Google Cloud Spanner** for strong global consistency without mirror sync lag.\n2. **Tiered RPC &amp; Lazy Hydration (**`scion-cache` **+** `scion-daemon`**):** Regional `scion-cache` read replicas sit in front of Spanner, paired with a local `scion-daemon` virtual filesystem on developer machines and CI runners. Instead of pulling 25 GB working copies, files are hydrated lazily on demand.\n3. **The Impact:** CI checkout times dropped from **minutes to seconds**, and server CPU/memory footprint dropped by **200x**.\n4. **Ingestion Pipeline Optimization:** They also ran an internal snapshot of Claude Mythos Preview against Scion's ingestion pipeline, refactoring it to use **20x less RAM** and run **4x faster**.","author_fullname":"t2_ica9dcjf","saved":false,"mod_reason_title":null,"gilded":0,"clicked":false,"title":"Why Git's packfile architecture failed at 30,000 merges/day (600 PB/day CI traffic)—and how Anthropic replaced it with Scion on Cloud Spanner [11:21]","link_flair_richtext":[],"subreddit_name_prefixed":"r/programming","hidden":false,"pwls":6,"link_flair_css_class":null,"downs":0,"top_awarded_type":null,"hide_score":false,"name":"t3_1xbgkn7","quarantine":false,"link_flair_text_color":"dark","upvote_ratio":0.17,"author_flair_background_color":null,"subreddit_type":"public","ups":0,"total_awards_received":0,"media_embed":{"content":"&lt;iframe width=\"356\" height=\"200\" src=\"https://www.youtube.com/embed/mjcy-yF-1ro?feature=oembed&amp;enablejsapi=1\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen title=\"Why Anthropic Had to Abandon Git for AI Agents\"&gt;&lt;/iframe&gt;","width":356,"scrolling":false,"height":200},"author_flair_template_id":null,"is_original_content":false,"user_reports":[],"secure_media":{"type":"youtube.com","oembed":{"provider_url":"https://www.youtube.com/","version":"1.0","title":"Why Anthropic Had to Abandon Git for AI Agents","type":"video","thumbnail_width":480,"height":200,"width":356,"html":"&lt;iframe width=\"356\" height=\"200\" src=\"https://www.youtube.com/embed/mjcy-yF-1ro?feature=oembed&amp;enablejsapi=1\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen title=\"Why Anthropic Had to Abandon Git for AI Agents\"&gt;&lt;/iframe&gt;","author_name":"Axoncraze","provider_name":"YouTube","thumbnail_url":"https://i.ytimg.com/vi/mjcy-yF-1ro/hqdefault.jpg","thumbnail_height":360,"author_url":"https://www.youtube.com/@Axoncraze2026"}},"is_reddit_media_domain":false,"is_meta":false,"category":null,"secure_media_embed":{"content":"&lt;iframe width=\"356\" height=\"200\" src=\"https://www.youtube.com/embed/mjcy-yF-1ro?feature=oembed&amp;enablejsapi=1\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen title=\"Why Anthropic Had to Abandon Git for AI Agents\"&gt;&lt;/iframe&gt;","width":356,"scrolling":false,"media_domain_url":"https://www.redditmedia.com/mediaembed/1xbgkn7","height":200},"link_flair_text":null,"can_mod_post":false,"score":0,"approved_by":null,"is_created_from_ads_ui":false,"author_premium":false,"thumbnail":"","edited":false,"author_flair_css_class":null,"author_flair_richtext":[],"gildings":{},"content_categories":null,"is_self":false,"mod_note":null,"created":1792567563,"link_flair_type":"text","wls":6,"removed_by_category":null,"banned_by":null,"author_flair_type":"text","domain":"youtu.be","allow_live_comments":false,"selftext_html":"&lt;!-- SC_OFF --&gt;&lt;div class=\"md\"&gt;&lt;p&gt;Here is an architectural summary (TL;DW) of the system design and metrics covered in the video for anyone who prefers reading first:&lt;/p&gt;\n\n&lt;h1&gt;The Scale &amp;amp; Why Git Choked&lt;/h1&gt;\n\n&lt;ul&gt;\n&lt;li&gt;&lt;strong&gt;Merge Velocity:&lt;/strong&gt; Between May and Sept 2026, Anthropic&amp;#39;s monorepo went from &lt;strong&gt;2,500 merges/day to 30,000+ merges/day&lt;/strong&gt; (~1 merge every 2.8 seconds) due to autonomous agent workflows.&lt;/li&gt;\n&lt;li&gt;&lt;strong&gt;The 600+ PB/Day CI Bottleneck:&lt;/strong&gt; With a ~100 GB main branch history, a 25 GB working copy, and &lt;strong&gt;25,000,000 daily CI checkouts&lt;/strong&gt;, naive Git checkout traffic exceeded &lt;strong&gt;600 PB/day&lt;/strong&gt;.&lt;/li&gt;\n&lt;li&gt;&lt;strong&gt;Packfile &amp;amp; Mirror Saturation:&lt;/strong&gt; Git&amp;#39;s offline-first DAG and packfile negotiation model wasn&amp;#39;t built for continuous sub-3-second merge velocity across 25M daily runners. Recomputing packfile deltas and synchronizing hundreds of decentralized internal Git mirrors saturated CPU and RAM across their fleet.&lt;/li&gt;\n&lt;/ul&gt;\n\n&lt;h1&gt;How &amp;quot;Scion&amp;quot; Replaces Git&lt;/h1&gt;\n\n&lt;p&gt;Built in 5 months by a 7-person engineering team, Scion ditches Git&amp;#39;s offline packfile model for a centralized, virtualized architecture (conceptually similar to Google&amp;#39;s Piper/CitC or Meta&amp;#39;s Sapling/EdenFS):&lt;/p&gt;\n\n&lt;ol&gt;\n&lt;li&gt;&lt;strong&gt;Lock-Free Changesets on Cloud Spanner:&lt;/strong&gt; Repository state and changesets are stored in an always-online, lock-free model backed by &lt;strong&gt;Google Cloud Spanner&lt;/strong&gt; for strong global consistency without mirror sync lag.&lt;/li&gt;\n&lt;li&gt;&lt;strong&gt;Tiered RPC &amp;amp; Lazy Hydration (&lt;/strong&gt;&lt;code&gt;scion-cache&lt;/code&gt; &lt;strong&gt;+&lt;/strong&gt; &lt;code&gt;scion-daemon&lt;/code&gt;&lt;strong&gt;):&lt;/strong&gt; Regional &lt;code&gt;scion-cache&lt;/code&gt; read replicas sit in front of Spanner, paired with a local &lt;code&gt;scion-daemon&lt;/code&gt; virtual filesystem on developer machines and CI runners. Instead of pulling 25 GB working copies, files are hydrated lazily on demand.&lt;/li&gt;\n&lt;li&gt;&lt;strong&gt;The Impact:&lt;/strong&gt; CI checkout times dropped from &lt;strong&gt;minutes to seconds&lt;/strong&gt;, and server CPU/memory footprint dropped by &lt;strong&gt;200x&lt;/strong&gt;.&lt;/li&gt;\n&lt;li&gt;&lt;strong&gt;Ingestion Pipeline Optimization:&lt;/strong&gt; They also ran an internal snapshot of Claude Mythos Preview against Scion&amp;#39;s ingestion pipeline, refactoring it to use &lt;strong&gt;20x less RAM&lt;/strong&gt; and run &lt;strong&gt;4x faster&lt;/strong&gt;.&lt;/li&gt;\n&lt;/ol&gt;\n&lt;/div&gt;&lt;!-- SC_ON --&gt;","likes":null,"suggested_sort":null,"banned_at_utc":null,"url_overridden_by_dest":"https://youtu.be/mjcy-yF-1ro","view_count":null,"archived":false,"no_follow":true,"is_crosspostable":false,"pinned":false,"over_18":false,"all_awardings":[],"awarders":[],"media_only":false,"can_gild":false,"spoiler":false,"locked":false,"author_flair_text":null,"treatment_tags":[],"visited":false,"removed_by":null,"num_reports":null,"distinguished":null,"subreddit_id":"t5_2fwo","author_is_blocked":false,"mod_reason_by":null,"removal_reason":null,"link_flair_background_color":"","id":"1xbgkn7","is_robot_indexable":true,"report_reasons":null,"author":"Capatain_CV","discussion_type":null,"num_comments":11,"send_replies":true,"contest_mode":false,"mod_reports":[],"author_patreon_flair":false,"author_flair_text_color":null,"permalink":"/r/programming/comments/1xbgkn7/why_gits_packfile_architecture_failed_at_30000/","stickied":false,"url":"https://youtu.be/mjcy-yF-1ro","subreddit_subscribers":6928602,"created_utc":1792567563,"num_crossposts":1,"media":{"type":"youtube.com","oembed":{"provider_url":"https://www.youtube.com/","version":"1.0","title":"Why Anthropic Had to Abandon Git for AI Agents","type":"video","thumbnail_width":480,"height":200,"width":356,"html":"&lt;iframe width=\"356\" height=\"200\" src=\"https://www.youtube.com/embed/mjcy-yF-1ro?feature=oembed&amp;enablejsapi=1\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen title=\"Why Anthropic Had to Abandon Git for AI Agents\"&gt;&lt;/iframe&gt;","author_name":"Axoncraze","provider_name":"YouTube","thumbnail_url":"https://i.ytimg.com/vi/mjcy-yF-1ro/hqdefault.jpg","thumbnail_height":360,"author_url":"https://www.youtube.com/@Axoncraze2026"}},"is_video":false},{"approved_at_utc":null,"subreddit":"programming","selftext":"","author_fullname":"t2_1ddpd0dn","saved":false,"mod_reason_title":null,"gilded":0,"clicked":false,"title":"Rendering untrusted HTML email, safely","link_flair_richtext":[],"subreddit_name_prefixed":"r/programming","hidden":false,"pwls":6,"link_flair_css_class":null,"downs":0,"top_awarded_type":null,"hide_score":false,"name":"t3_1xadl8d","quarantine":false,"link_flair_text_color":"dark","upvote_ratio":0.82,"author_flair_background_color":null,"subreddit_type":"public","ups":16,"total_awards_received":0,"media_embed":{},"author_flair_template_id":null,"is_original_content":false,"user_reports":[],"secure_media":null,"is_reddit_media_domain":false,"is_meta":false,"category":null,"secure_media_embed":{},"link_flair_text":null,"can_mod_post":false,"score":16,"approved_by":null,"is_created_from_ads_ui":false,"author_premium":false,"thumbnail":"","edited":false,"author_flair_css_class":null,"author_flair_richtext":[],"gildings":{},"content_categories":null,"is_self":false,"mod_note":null,"created":1792455423,"link_flair_type":"text","wls":6,"removed_by_category":null,"banned_by":null,"author_flair_type":"text","domain":"making.close.com","allow_live_comments":false,"selftext_html":null,"likes":null,"suggested_sort":null,"banned_at_utc":null,"url_overridden_by_dest":"https://making.close.com/posts/rendering-untrusted-html-email-safely/","view_count":null,"archived":false,"no_follow":false,"is_crosspostable":false,"pinned":false,"over_18":false,"all_awardings":[],"awarders":[],"media_only":false,"can_gild":false,"spoiler":false,"locked":false,"author_flair_text":null,"treatment_tags":[],"visited":false,"removed_by":null,"num_reports":null,"distinguished":null,"subreddit_id":"t5_2fwo","author_is_blocked":false,"mod_reason_by":null,"removal_reason":null,"link_flair_background_color":"","id":"1xadl8d","is_robot_indexable":true,"report_reasons":null,"author":"kiteska","discussion_type":null,"num_comments":2,"send_replies":true,"contest_mode":false,"mod_reports":[],"author_patreon_flair":false,"author_flair_text_color":null,"permalink":"/r/programming/comments/1xadl8d/rendering_untrusted_html_email_safely/","stickied":false,"url":"https://making.close.com/posts/rendering-untrusted-html-email-safely/","subreddit_subscribers":6928602,"created_utc":1792455423,"num_crossposts":0,"media":null,"is_video":false},{"approved_at_utc":null,"subreddit":"programming","selftext":"","author_fullname":"t2_4l7m0z","saved":false,"mod_reason_title":null,"gilded":0,"clicked":false,"title":"Solving Strange Website Behavior Found in the Wild","link_flair_richtext":[],"subreddit_name_prefixed":"r/programming","hidden":false,"pwls":6,"link_flair_css_class":null,"downs":0,"top_awarded_type":null,"hide_score":false,"name":"t3_1xah04z","quarantine":false,"link_flair_text_color":"dark","upvote_ratio":0.78,"author_flair_background_color":null,"subreddit_type":"public","ups":7,"total_awards_received":0,"media_embed":{},"author_flair_template_id":null,"is_original_content":false,"user_reports":[],"secure_media":null,"is_reddit_media_domain":false,"is_meta":false,"category":null,"secure_media_embed":{},"link_flair_text":null,"can_mod_post":false,"score":7,"approved_by":null,"is_created_from_ads_ui":false,"author_premium":false,"thumbnail":"","edited":false,"author_flair_css_class":null,"author_flair_richtext":[],"gildings":{},"content_categories":null,"is_self":false,"mod_note":null,"created":1792465281,"link_flair_type":"text","wls":6,"removed_by_category":null,"banned_by":null,"author_flair_type":"text","domain":"hyasynthesized.github.io","allow_live_comments":false,"selftext_html":null,"likes":null,"suggested_sort":null,"banned_at_utc":null,"url_overridden_by_dest":"https://hyasynthesized.github.io/blog/20261013-strange-website/","view_count":null,"archived":false,"no_follow":false,"is_crosspostable":false,"pinned":false,"over_18":false,"all_awardings":[],"awarders":[],"media_only":false,"can_gild":false,"spoiler":false,"locked":false,"author_flair_text":null,"treatment_tags":[],"visited":false,"removed_by":null,"num_reports":null,"distinguished":null,"subreddit_id":"t5_2fwo","author_is_blocked":false,"mod_reason_by":null,"removal_reason":null,"link_flair_background_color":"","id":"1xah04z","is_robot_indexable":true,"report_reasons":null,"author":"Tornado547","discussion_type":null,"num_comments":2,"send_replies":true,"contest_mode":false,"mod_reports":[],"author_patreon_flair":false,"author_flair_text_color":null,"permalink":"/r/programming/comments/1xah04z/solving_strange_website_behavior_found_in_the_wild/","stickied":false,"url":"https://hyasynthesized.github.io/blog/20261013-strange-website/","subreddit_subscribers":6928602,"created_utc":1792465281,"num_crossposts":0,"media":null,"is_video":false},{"approved_at_utc":null,"subreddit":"programming","selftext":"","author_fullname":"t2_387qc","saved":false,"mod_reason_title":null,"gilded":0,"clicked":false,"title":"Campfire port in Java is faster than Rust. Some thoughts about JEP 544 (AOT Code Compilation)","link_flair_richtext":[],"subreddit_name_prefixed":"r/programming","hidden":false,"pwls":6,"link_flair_css_class":null,"downs":0,"top_awarded_type":null,"hide_score":false,"name":"t3_1xa3cyt","quarantine":false,"link_flair_text_color":"dark","upvote_ratio":0.71,"author_flair_background_color":null,"subreddit_type":"public","ups":38,"total_awards_received":0,"media_embed":{},"author_flair_template_id":null,"is_original_content":false,"user_reports":[],"secure_media":null,"is_reddit_media_domain":false,"is_meta":false,"category":null,"secure_media_embed":{},"link_flair_text":null,"can_mod_post":false,"score":38,"approved_by":null,"is_created_from_ads_ui":false,"author_premium":false,"thumbnail":"","edited":false,"author_flair_css_class":null,"author_flair_richtext":[],"gildings":{},"content_categories":null,"is_self":false,"mod_note":null,"created":1792431280,"link_flair_type":"text","wls":6,"removed_by_category":null,"banned_by":null,"author_flair_type":"text","domain":"reddit.com","allow_live_comments":false,"selftext_html":null,"likes":null,"suggested_sort":null,"banned_at_utc":null,"url_overridden_by_dest":"https://www.reddit.com/r/java/comments/1x9s75g/campfire_port_in_java_is_faster_then_rust_some/","view_count":null,"archived":false,"no_follow":false,"is_crosspostable":false,"pinned":false,"over_18":false,"all_awardings":[],"awarders":[],"media_only":false,"can_gild":false,"spoiler":false,"locked":false,"author_flair_text":null,"treatment_tags":[],"visited":false,"removed_by":null,"num_reports":null,"distinguished":null,"subreddit_id":"t5_2fwo","author_is_blocked":false,"mod_reason_by":null,"removal_reason":null,"link_flair_background_color":"","id":"1xa3cyt","is_robot_indexable":true,"report_reasons":null,"author":"henk53","discussion_type":null,"num_comments":20,"send_replies":true,"contest_mode":false,"mod_reports":[],"author_patreon_flair":false,"author_flair_text_color":null,"permalink":"/r/programming/comments/1xa3cyt/campfire_port_in_java_is_faster_than_rust_some/","stickied":false,"url":"https://www.reddit.com/r/java/comments/1x9s75g/campfire_port_in_java_is_faster_then_rust_some/","subreddit_subscribers":6928602,"created_utc":1792431280,"num_crossposts":0,"media":null,"is_video":false},{"approved_at_utc":null,"subreddit":"programming","selftext":"","author_fullname":"t2_axh0s","saved":false,"mod_reason_title":null,"gilded":0,"clicked":false,"title":"This Website Is Now Made in Swift","link_flair_richtext":[],"subreddit_name_prefixed":"r/programming","hidden":false,"pwls":6,"link_flair_css_class":null,"downs":0,"top_awarded_type":null,"hide_score":false,"name":"t3_1x9oosc","quarantine":false,"link_flair_text_color":"dark","upvote_ratio":0.71,"author_flair_background_color":null,"subreddit_type":"public","ups":78,"total_awards_received":0,"media_embed":{},"author_flair_template_id":null,"is_original_content":false,"user_reports":[],"secure_media":null,"is_reddit_media_domain":false,"is_meta":false,"category":null,"secure_media_embed":{},"link_flair_text":null,"can_mod_post":false,"score":78,"approved_by":null,"is_created_from_ads_ui":false,"author_premium":false,"thumbnail":"","edited":false,"author_flair_css_class":null,"author_flair_richtext":[],"gildings":{},"content_categories":null,"is_self":false,"mod_note":null,"created":1792388595,"link_flair_type":"text","wls":6,"removed_by_category":null,"banned_by":null,"author_flair_type":"text","domain":"sindresorhus.com","allow_live_comments":false,"selftext_html":null,"likes":null,"suggested_sort":null,"banned_at_utc":null,"url_overridden_by_dest":"https://sindresorhus.com/blog/swift-website","view_count":null,"archived":false,"no_follow":false,"is_crosspostable":false,"pinned":false,"over_18":false,"all_awardings":[],"awarders":[],"media_only":false,"can_gild":false,"spoiler":false,"locked":false,"author_flair_text":null,"treatment_tags":[],"visited":false,"removed_by":null,"num_reports":null,"distinguished":null,"subreddit_id":"t5_2fwo","author_is_blocked":false,"mod_reason_by":null,"removal_reason":null,"link_flair_background_color":"","id":"1x9oosc","is_robot_indexable":true,"report_reasons":null,"author":"sindresorhus","discussion_type":null,"num_comments":41,"send_replies":true,"contest_mode":false,"mod_reports":[],"author_patreon_flair":false,"author_flair_text_color":null,"permalink":"/r/programming/comments/1x9oosc/this_website_is_now_made_in_swift/","stickied":false,"url":"https://sindresorhus.com/blog/swift-website","subreddit_subscribers":6928602,"created_utc":1792388595,"num_crossposts":0,"media":null,"is_video":false},{"approved_at_utc":null,"subreddit":"programming","selftext":"","author_fullname":"t2_7qn55rlt7","saved":false,"mod_reason_title":null,"gilded":0,"clicked":false,"title":"Maths, Metal, and Mandelbrot","link_flair_richtext":[],"subreddit_name_prefixed":"r/programming","hidden":false,"pwls":6,"link_flair_css_class":null,"downs":0,"top_awarded_type":null,"hide_score":false,"name":"t3_1xa2mgy","quarantine":false,"link_flair_text_color":"dark","upvote_ratio":0.79,"author_flair_background_color":null,"subreddit_type":"public","ups":7,"total_awards_received":0,"media_embed":{},"author_flair_template_id":null,"is_original_content":false,"user_reports":[],"secure_media":null,"is_reddit_media_domain":false,"is_meta":false,"category":null,"secure_media_embed":{},"link_flair_text":null,"can_mod_post":false,"score":7,"approved_by":null,"is_created_from_ads_ui":false,"author_premium":false,"thumbnail":"","edited":false,"author_flair_css_class":null,"author_flair_richtext":[],"gildings":{},"content_categories":null,"is_self":false,"mod_note":null,"created":1792429690,"link_flair_type":"text","wls":6,"removed_by_category":null,"banned_by":null,"author_flair_type":"text","domain":"blog.jacobstechtavern.com","allow_live_comments":false,"selftext_html":null,"likes":null,"suggested_sort":null,"banned_at_utc":null,"url_overridden_by_dest":"https://blog.jacobstechtavern.com/p/maths-metal-mandelbrot","view_count":null,"archived":false,"no_follow":false,"is_crosspostable":false,"pinned":false,"over_18":false,"all_awardings":[],"awarders":[],"media_only":false,"can_gild":false,"spoiler":false,"locked":false,"author_flair_text":null,"treatment_tags":[],"visited":false,"removed_by":null,"num_reports":null,"distinguished":null,"subreddit_id":"t5_2fwo","author_is_blocked":false,"mod_reason_by":null,"removal_reason":null,"link_flair_background_color":"","id":"1xa2mgy","is_robot_indexable":true,"report_reasons":null,"author":"jacobs-tech-tavern","discussion_type":null,"num_comments":0,"send_replies":true,"contest_mode":false,"mod_reports":[],"author_patreon_flair":false,"author_flair_text_color":null,"permalink":"/r/programming/comments/1xa2mgy/maths_metal_and_mandelbrot/","stickied":false,"url":"https://blog.jacobstechtavern.com/p/maths-metal-mandelbrot","subreddit_subscribers":6928602,"created_utc":1792429690,"num_crossposts":0,"media":null,"is_video":false},{"approved_at_utc":null,"subreddit":"programming","selftext":"","author_fullname":"t2_vu94uqi5","saved":false,"mod_reason_title":null,"gilded":0,"clicked":false,"title":"Parser Combinators","link_flair_richtext":[],"subreddit_name_prefixed":"r/programming","hidden":false,"pwls":6,"link_flair_css_class":null,"downs":0,"top_awarded_type":null,"hide_score":false,"name":"t3_1xa0ej4","quarantine":false,"link_flair_text_color":"dark","upvote_ratio":0.69,"author_flair_background_color":null,"subreddit_type":"public","ups":8,"total_awards_received":0,"media_embed":{},"author_flair_template_id":null,"is_original_content":false,"user_reports":[],"secure_media":null,"is_reddit_media_domain":false,"is_meta":false,"category":null,"secure_media_embed":{},"link_flair_text":null,"can_mod_post":false,"score":8,"approved_by":null,"is_created_from_ads_ui":false,"author_premium":false,"thumbnail":"","edited":false,"author_flair_css_class":null,"author_flair_richtext":[],"gildings":{},"content_categories":null,"is_self":false,"mod_note":null,"created":1792424708,"link_flair_type":"text","wls":6,"removed_by_category":null,"banned_by":null,"author_flair_type":"text","domain":"t3.at","allow_live_comments":false,"selftext_html":null,"likes":null,"suggested_sort":null,"banned_at_utc":null,"url_overridden_by_dest":"https://t3.at/blog/parser-combinators/","view_count":null,"archived":false,"no_follow":false,"is_crosspostable":false,"pinned":false,"over_18":false,"all_awardings":[],"awarders":[],"media_only":false,"can_gild":false,"spoiler":false,"locked":false,"author_flair_text":null,"treatment_tags":[],"visited":false,"removed_by":null,"num_reports":null,"distinguished":null,"subreddit_id":"t5_2fwo","author_is_blocked":false,"mod_reason_by":null,"removal_reason":null,"link_flair_background_color":"","id":"1xa0ej4","is_robot_indexable":true,"report_reasons":null,"author":"BrewedDoritos","discussion_type":null,"num_comments":0,"send_replies":true,"contest_mode":false,"mod_reports":[],"author_patreon_flair":false,"author_flair_text_color":null,"permalink":"/r/programming/comments/1xa0ej4/parser_combinators/","stickied":false,"url":"https://t3.at/blog/parser-combinators/","subreddit_subscribers":6928602,"created_utc":1792424708,"num_crossposts":0,"media":null,"is_video":false},{"approved_at_utc":null,"subreddit":"programming","selftext":"","user_reports":[],"saved":false,"mod_reason_title":null,"gilded":0,"clicked":false,"title":"In Context - Rich Hickey (Clojure/Conj 2026)","link_flair_richtext":[],"subreddit_name_prefixed":"r/programming","hidden":false,"pwls":6,"link_flair_css_class":null,"downs":0,"top_awarded_type":null,"hide_score":false,"name":"t3_1x9x7ar","quarantine":false,"link_flair_text_color":"dark","upvote_ratio":0.82,"author_flair_background_color":null,"subreddit_type":"public","ups":14,"total_awards_received":0,"media_embed":{"content":"&lt;iframe width=\"356\" height=\"200\" src=\"https://www.youtube.com/embed/P5eO7BNyJao?feature=oembed&amp;enablejsapi=1\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen title=\"In Context - Rich Hickey (Clojure/Conj 2026)\"&gt;&lt;/iframe&gt;","width":356,"scrolling":false,"height":200},"author_flair_template_id":null,"is_original_content":false,"author_fullname":"t2_1uec","secure_media":{"type":"youtube.com","oembed":{"provider_url":"https://www.youtube.com/","version":"1.0","title":"In Context - Rich Hickey (Clojure/Conj 2026)","type":"video","thumbnail_width":480,"height":200,"width":356,"html":"&lt;iframe width=\"356\" height=\"200\" src=\"https://www.youtube.com/embed/P5eO7BNyJao?feature=oembed&amp;enablejsapi=1\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen title=\"In Context - Rich Hickey (Clojure/Conj 2026)\"&gt;&lt;/iframe&gt;","author_name":"ClojureTV","provider_name":"YouTube","thumbnail_url":"https://i.ytimg.com/vi/P5eO7BNyJao/hqdefault.jpg","thumbnail_height":360,"author_url":"https://www.youtube.com/@ClojureTV"}},"is_reddit_media_domain":false,"is_meta":false,"category":null,"secure_media_embed":{"content":"&lt;iframe width=\"356\" height=\"200\" src=\"https://www.youtube.com/embed/P5eO7BNyJao?feature=oembed&amp;enablejsapi=1\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen title=\"In Context - Rich Hickey (Clojure/Conj 2026)\"&gt;&lt;/iframe&gt;","width":356,"scrolling":false,"media_domain_url":"https://www.redditmedia.com/mediaembed/1x9x7ar","height":200},"link_flair_text":null,"can_mod_post":false,"score":14,"approved_by":null,"is_created_from_ads_ui":false,"author_premium":true,"thumbnail":"","edited":false,"author_flair_css_class":null,"author_flair_richtext":[],"gildings":{},"content_categories":null,"is_self":false,"mod_note":null,"crosspost_parent_list":[{"approved_at_utc":null,"subreddit":"Clojure","selftext":"","author_fullname":"t2_1uec","saved":false,"mod_reason_title":null,"gilded":0,"clicked":false,"title":"In Context - Rich Hickey (Clojure/Conj 2026)","link_flair_richtext":[],"subreddit_name_prefixed":"r/Clojure","hidden":false,"pwls":6,"link_flair_css_class":null,"downs":0,"top_awarded_type":null,"hide_score":false,"name":"t3_1x9x725","quarantine":false,"link_flair_text_color":"dark","upvote_ratio":1,"author_flair_background_color":null,"subreddit_type":"public","ups":113,"total_awards_received":0,"media_embed":{"content":"&lt;iframe width=\"356\" height=\"200\" src=\"https://www.youtube.com/embed/P5eO7BNyJao?feature=oembed&amp;enablejsapi=1\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen title=\"In Context - Rich Hickey (Clojure/Conj 2026)\"&gt;&lt;/iframe&gt;","width":356,"scrolling":false,"height":200},"author_flair_template_id":null,"is_original_content":false,"user_reports":[],"secure_media":{"type":"youtube.com","oembed":{"provider_url":"https://www.youtube.com/","version":"1.0","title":"In Context - Rich Hickey (Clojure/Conj 2026)","type":"video","thumbnail_width":480,"height":200,"width":356,"html":"&lt;iframe width=\"356\" height=\"200\" src=\"https://www.youtube.com/embed/P5eO7BNyJao?feature=oembed&amp;enablejsapi=1\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen title=\"In Context - Rich Hickey (Clojure/Conj 2026)\"&gt;&lt;/iframe&gt;","author_name":"ClojureTV","provider_name":"YouTube","thumbnail_url":"https://i.ytimg.com/vi/P5eO7BNyJao/hqdefault.jpg","thumbnail_height":360,"author_url":"https://www.youtube.com/@ClojureTV"}},"is_reddit_media_domain":false,"is_meta":false,"category":null,"secure_media_embed":{"content":"&lt;iframe width=\"356\" height=\"200\" src=\"https://www.youtube.com/embed/P5eO7BNyJao?feature=oembed&amp;enablejsapi=1\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen title=\"In Context - Rich Hickey (Clojure/Conj 2026)\"&gt;&lt;/iframe&gt;","width":356,"scrolling":false,"media_domain_url":"https://www.redditmedia.com/mediaembed/1x9x725","height":200},"link_flair_text":null,"can_mod_post":false,"score":113,"approved_by":null,"is_created_from_ads_ui":false,"author_premium":true,"thumbnail":"","edited":false,"author_flair_css_class":null,"author_flair_richtext":[],"gildings":{},"content_categories":null,"is_self":false,"mod_note":null,"created":1792417262,"link_flair_type":"text","wls":6,"removed_by_category":null,"banned_by":null,"author_flair_type":"text","domain":"youtube.com","allow_live_comments":false,"selftext_html":null,"likes":null,"suggested_sort":null,"banned_at_utc":null,"url_overridden_by_dest":"https://www.youtube.com/watch?v=P5eO7BNyJao","view_count":null,"archived":false,"no_follow":false,"is_crosspostable":false,"pinned":false,"over_18":false,"all_awardings":[],"awarders":[],"media_only":false,"can_gild":false,"spoiler":false,"locked":false,"author_flair_text":null,"treatment_tags":[],"visited":false,"removed_by":null,"num_reports":null,"distinguished":null,"subreddit_id":"t5_2qkej","author_is_blocked":false,"mod_reason_by":null,"removal_reason":null,"link_flair_background_color":"","id":"1x9x725","is_robot_indexable":true,"report_reasons":null,"author":"alexdmiller","discussion_type":null,"num_comments":10,"send_replies":true,"contest_mode":false,"mod_reports":[],"author_patreon_flair":false,"author_flair_text_color":null,"permalink":"/r/Clojure/comments/1x9x725/in_context_rich_hickey_clojureconj_2026/","stickied":false,"url":"https://www.youtube.com/watch?v=P5eO7BNyJao","subreddit_subscribers":36007,"created_utc":1792417262,"num_crossposts":1,"media":{"type":"youtube.com","oembed":{"provider_url":"https://www.youtube.com/","version":"1.0","title":"In Context - Rich Hickey (Clojure/Conj 2026)","type":"video","thumbnail_width":480,"height":200,"width":356,"html":"&lt;iframe width=\"356\" height=\"200\" src=\"https://www.youtube.com/embed/P5eO7BNyJao?feature=oembed&amp;enablejsapi=1\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen title=\"In Context - Rich Hickey (Clojure/Conj 2026)\"&gt;&lt;/iframe&gt;","author_name":"ClojureTV","provider_name":"YouTube","thumbnail_url":"https://i.ytimg.com/vi/P5eO7BNyJao/hqdefault.jpg","thumbnail_height":360,"author_url":"https://www.youtube.com/@ClojureTV"}},"is_video":false}],"created":1792417280,"link_flair_type":"text","wls":6,"removed_by_category":null,"banned_by":null,"author_flair_type":"text","domain":"youtube.com","allow_live_comments":false,"selftext_html":null,"likes":null,"suggested_sort":null,"banned_at_utc":null,"url_overridden_by_dest":"https://www.youtube.com/watch?v=P5eO7BNyJao","view_count":null,"archived":false,"no_follow":false,"is_crosspostable":false,"pinned":false,"over_18":false,"all_awardings":[],"awarders":[],"media_only":false,"can_gild":false,"spoiler":false,"locked":false,"author_flair_text":null,"treatment_tags":[],"visited":false,"removed_by":null,"num_reports":null,"distinguished":null,"subreddit_id":"t5_2fwo","author_is_blocked":false,"mod_reason_by":null,"removal_reason":null,"link_flair_background_color":"","id":"1x9x7ar","is_robot_indexable":true,"report_reasons":null,"author":"alexdmiller","discussion_type":null,"num_comments":0,"send_replies":true,"contest_mode":false,"mod_reports":[],"author_patreon_flair":false,"crosspost_parent":"t3_1x9x725","author_flair_text_color":null,"permalink":"/r/programming/comments/1x9x7ar/in_context_rich_hickey_clojureconj_2026/","stickied":false,"url":"https://www.youtube.com/watch?v=P5eO7BNyJao","subreddit_subscribers":6928602,"created_utc":1792417280,"num_crossposts":0,"media":{"type":"youtube.com","oembed":{"provider_url":"https://www.youtube.com/","version":"1.0","title":"In Context - Rich Hickey (Clojure/Conj 2026)","type":"video","thumbnail_width":480,"height":200,"width":356,"html":"&lt;iframe width=\"356\" height=\"200\" src=\"https://www.youtube.com/embed/P5eO7BNyJao?feature=oembed&amp;enablejsapi=1\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen title=\"In Context - Rich Hickey (Clojure/Conj 2026)\"&gt;&lt;/iframe&gt;","author_name":"ClojureTV","provider_name":"YouTube","thumbnail_url":"https://i.ytimg.com/vi/P5eO7BNyJao/hqdefault.jpg","thumbnail_height":360,"author_url":"https://www.youtube.com/@ClojureTV"}},"is_video":false}]