[{"approved_at_utc":null,"subreddit":"programming","selftext":"After [temporarily banning LLM-related content over April](https://www.reddit.com/r/programming/comments/1s9jkzi/announcement_temporary_llm_content_ban/), and [asking you for feedback on that ban](https://www.reddit.com/r/programming/comments/1t4odyl/looking_for_feedback_on_ai_content_in/), we've decided to bring about an end of the temporary, I-can't-believe-it's-still-April ban on AI-related posts.\n\nReplacing the trial rule is a new shiny rule that refers to our new shiny [AI policy](https://www.reddit.com/r/programming/wiki/ai-policy/). In short:\n\n&gt; Content about AI and LLMs are considered off-topic with the sole exclusion of **deeply technical** content about implementation.\n\nAnd if you want more detail than that, go read the policy, that's what it's there for.\n\nIn addition, when writing that rule, I realized the rules weren't listed on the [old.reddit.com](http://old.reddit.com) sidebar, so that's been updated. For those of you who are seeing those rules for the first time, everything there is not new. We've been enforcing those rules as best we can for ages. You can click the link above those to get to the old.reddit rules page, with plenty of info that doesn't exactly read well when crammed into a sidebar.","author_fullname":"t2_4ta76","saved":false,"mod_reason_title":null,"gilded":0,"clicked":false,"title":"Announcement: We've Updated The Rules, and April Is Finally Over","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_1tlh5aj","quarantine":false,"link_flair_text_color":"dark","upvote_ratio":0.94,"author_flair_background_color":null,"subreddit_type":"public","ups":942,"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":942,"approved_by":null,"is_created_from_ads_ui":false,"author_premium":false,"thumbnail":"","edited":1779544888,"author_flair_css_class":null,"author_flair_richtext":[],"gildings":{},"content_categories":null,"is_self":true,"mod_note":null,"created":1779544477,"link_flair_type":"text","wls":6,"removed_by_category":null,"banned_by":null,"author_flair_type":"text","domain":"self.programming","allow_live_comments":false,"selftext_html":"&lt;!-- SC_OFF --&gt;&lt;div class=\"md\"&gt;&lt;p&gt;After &lt;a href=\"https://www.reddit.com/r/programming/comments/1s9jkzi/announcement_temporary_llm_content_ban/\"&gt;temporarily banning LLM-related content over April&lt;/a&gt;, and &lt;a href=\"https://www.reddit.com/r/programming/comments/1t4odyl/looking_for_feedback_on_ai_content_in/\"&gt;asking you for feedback on that ban&lt;/a&gt;, we&amp;#39;ve decided to bring about an end of the temporary, I-can&amp;#39;t-believe-it&amp;#39;s-still-April ban on AI-related posts.&lt;/p&gt;\n\n&lt;p&gt;Replacing the trial rule is a new shiny rule that refers to our new shiny &lt;a href=\"https://www.reddit.com/r/programming/wiki/ai-policy/\"&gt;AI policy&lt;/a&gt;. In short:&lt;/p&gt;\n\n&lt;blockquote&gt;\n&lt;p&gt;Content about AI and LLMs are considered off-topic with the sole exclusion of &lt;strong&gt;deeply technical&lt;/strong&gt; content about implementation.&lt;/p&gt;\n&lt;/blockquote&gt;\n\n&lt;p&gt;And if you want more detail than that, go read the policy, that&amp;#39;s what it&amp;#39;s there for.&lt;/p&gt;\n\n&lt;p&gt;In addition, when writing that rule, I realized the rules weren&amp;#39;t listed on the &lt;a href=\"http://old.reddit.com\"&gt;old.reddit.com&lt;/a&gt; sidebar, so that&amp;#39;s been updated. For those of you who are seeing those rules for the first time, everything there is not new. We&amp;#39;ve been enforcing those rules as best we can for ages. You can click the link above those to get to the old.reddit rules page, with plenty of info that doesn&amp;#39;t exactly read well when crammed into a sidebar.&lt;/p&gt;\n&lt;/div&gt;&lt;!-- SC_ON --&gt;","likes":null,"suggested_sort":null,"banned_at_utc":null,"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":"moderator","subreddit_id":"t5_2fwo","author_is_blocked":false,"mod_reason_by":null,"removal_reason":null,"link_flair_background_color":"","id":"1tlh5aj","is_robot_indexable":true,"report_reasons":null,"author":"ChemicalRascal","discussion_type":null,"num_comments":161,"send_replies":true,"contest_mode":false,"mod_reports":[],"author_patreon_flair":false,"author_flair_text_color":null,"permalink":"/r/programming/comments/1tlh5aj/announcement_weve_updated_the_rules_and_april_is/","stickied":true,"url":"https://www.reddit.com/r/programming/comments/1tlh5aj/announcement_weve_updated_the_rules_and_april_is/","subreddit_subscribers":6900968,"created_utc":1779544477,"num_crossposts":0,"media":null,"is_video":false},{"approved_at_utc":null,"subreddit":"programming","selftext":"","author_fullname":"t2_xeaqp","saved":false,"mod_reason_title":null,"gilded":0,"clicked":false,"title":"Things you didn't know about indexes","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_1uy0hyq","quarantine":false,"link_flair_text_color":"dark","upvote_ratio":0.89,"author_flair_background_color":null,"subreddit_type":"public","ups":137,"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":137,"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":1784202345,"link_flair_type":"text","wls":6,"removed_by_category":null,"banned_by":null,"author_flair_type":"text","domain":"jon.chrt.dev","allow_live_comments":false,"selftext_html":null,"likes":null,"suggested_sort":null,"banned_at_utc":null,"url_overridden_by_dest":"https://jon.chrt.dev/2026/04/15/things-you-didnt-know-about-indexes.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":"1uy0hyq","is_robot_indexable":true,"report_reasons":null,"author":"fagnerbrack","discussion_type":null,"num_comments":31,"send_replies":true,"contest_mode":false,"mod_reports":[],"author_patreon_flair":false,"author_flair_text_color":null,"permalink":"/r/programming/comments/1uy0hyq/things_you_didnt_know_about_indexes/","stickied":false,"url":"https://jon.chrt.dev/2026/04/15/things-you-didnt-know-about-indexes.html","subreddit_subscribers":6900968,"created_utc":1784202345,"num_crossposts":0,"media":null,"is_video":false},{"approved_at_utc":null,"subreddit":"programming","selftext":"","author_fullname":"t2_37mmv","saved":false,"mod_reason_title":null,"gilded":0,"clicked":false,"title":"Cursor 0day: When Full Disclosure Becomes the Only Protection Left","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_1uxjm12","quarantine":false,"link_flair_text_color":"dark","upvote_ratio":0.96,"author_flair_background_color":null,"subreddit_type":"public","ups":578,"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":578,"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":1784152357,"link_flair_type":"text","wls":6,"removed_by_category":null,"banned_by":null,"author_flair_type":"text","domain":"mindgard.ai","allow_live_comments":false,"selftext_html":null,"likes":null,"suggested_sort":null,"banned_at_utc":null,"url_overridden_by_dest":"https://mindgard.ai/blog/cursor-0day-when-full-disclosure-becomes-the-only-protection-left","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":"1uxjm12","is_robot_indexable":true,"report_reasons":null,"author":"alexeyr","discussion_type":null,"num_comments":119,"send_replies":true,"contest_mode":false,"mod_reports":[],"author_patreon_flair":false,"author_flair_text_color":null,"permalink":"/r/programming/comments/1uxjm12/cursor_0day_when_full_disclosure_becomes_the_only/","stickied":false,"url":"https://mindgard.ai/blog/cursor-0day-when-full-disclosure-becomes-the-only-protection-left","subreddit_subscribers":6900968,"created_utc":1784152357,"num_crossposts":0,"media":null,"is_video":false},{"approved_at_utc":null,"subreddit":"programming","selftext":"","author_fullname":"t2_evrah","saved":false,"mod_reason_title":null,"gilded":0,"clicked":false,"title":"Linux transparent proxy internals","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_1uy722h","quarantine":false,"link_flair_text_color":"dark","upvote_ratio":0.7,"author_flair_background_color":null,"subreddit_type":"public","ups":6,"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":6,"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":1784217794,"link_flair_type":"text","wls":6,"removed_by_category":null,"banned_by":null,"author_flair_type":"text","domain":"open.substack.com","allow_live_comments":false,"selftext_html":null,"likes":null,"suggested_sort":null,"banned_at_utc":null,"url_overridden_by_dest":"https://open.substack.com/pub/allhailthetopology/p/linux-transparent-proxy-internals?r=5ylwe7&amp;utm_medium=ios","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":"1uy722h","is_robot_indexable":true,"report_reasons":null,"author":"ldelossa","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/1uy722h/linux_transparent_proxy_internals/","stickied":false,"url":"https://open.substack.com/pub/allhailthetopology/p/linux-transparent-proxy-internals?r=5ylwe7&amp;utm_medium=ios","subreddit_subscribers":6900968,"created_utc":1784217794,"num_crossposts":1,"media":null,"is_video":false},{"approved_at_utc":null,"subreddit":"programming","selftext":"","author_fullname":"t2_82lc0","saved":false,"mod_reason_title":null,"gilded":0,"clicked":false,"title":"Jurassic Park computers in excruciating detail","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_1uxcpa8","quarantine":false,"link_flair_text_color":"dark","upvote_ratio":0.96,"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":1784136730,"link_flair_type":"text","wls":6,"removed_by_category":null,"banned_by":null,"author_flair_type":"text","domain":"fabiensanglard.net","allow_live_comments":false,"selftext_html":null,"likes":null,"suggested_sort":null,"banned_at_utc":null,"url_overridden_by_dest":"https://fabiensanglard.net/jurrasic_park_computers/index.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":"1uxcpa8","is_robot_indexable":true,"report_reasons":null,"author":"namanyayg","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/1uxcpa8/jurassic_park_computers_in_excruciating_detail/","stickied":false,"url":"https://fabiensanglard.net/jurrasic_park_computers/index.html","subreddit_subscribers":6900968,"created_utc":1784136730,"num_crossposts":0,"media":null,"is_video":false},{"approved_at_utc":null,"subreddit":"programming","selftext":"","author_fullname":"t2_crkuw","saved":false,"mod_reason_title":null,"gilded":0,"clicked":false,"title":"Team Topologies · thehardparts.dev","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_1uy2tb5","quarantine":false,"link_flair_text_color":"dark","upvote_ratio":0.59,"author_flair_background_color":null,"subreddit_type":"public","ups":6,"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":6,"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":1784208264,"link_flair_type":"text","wls":6,"removed_by_category":null,"banned_by":null,"author_flair_type":"text","domain":"thehardparts.dev","allow_live_comments":false,"selftext_html":null,"likes":null,"suggested_sort":null,"banned_at_utc":null,"url_overridden_by_dest":"https://thehardparts.dev/tech-decisions/team-topologies","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":"1uy2tb5","is_robot_indexable":true,"report_reasons":null,"author":"ludovicianul","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/1uy2tb5/team_topologies_thehardpartsdev/","stickied":false,"url":"https://thehardparts.dev/tech-decisions/team-topologies","subreddit_subscribers":6900968,"created_utc":1784208264,"num_crossposts":0,"media":null,"is_video":false},{"approved_at_utc":null,"subreddit":"programming","selftext":"","author_fullname":"t2_n4fq3","saved":false,"mod_reason_title":null,"gilded":0,"clicked":false,"title":"Reclaiming a decade of podcast listening history","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_1uybpgq","quarantine":false,"link_flair_text_color":"dark","upvote_ratio":1,"author_flair_background_color":null,"subreddit_type":"public","ups":2,"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":2,"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":1784227822,"link_flair_type":"text","wls":6,"removed_by_category":null,"banned_by":null,"author_flair_type":"text","domain":"uncommonapps.nyc","allow_live_comments":false,"selftext_html":null,"likes":null,"suggested_sort":null,"banned_at_utc":null,"url_overridden_by_dest":"https://www.uncommonapps.nyc/p/reclaiming-a-decade-of-podcast-listening","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":"1uybpgq","is_robot_indexable":true,"report_reasons":null,"author":"dabluck","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/1uybpgq/reclaiming_a_decade_of_podcast_listening_history/","stickied":false,"url":"https://www.uncommonapps.nyc/p/reclaiming-a-decade-of-podcast-listening","subreddit_subscribers":6900968,"created_utc":1784227822,"num_crossposts":0,"media":null,"is_video":false},{"approved_at_utc":null,"subreddit":"programming","selftext":"","author_fullname":"t2_6ky8d","saved":false,"mod_reason_title":null,"gilded":0,"clicked":false,"title":"SQLite should have (Rust-style) editions","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_1uxgmmq","quarantine":false,"link_flair_text_color":"dark","upvote_ratio":0.82,"author_flair_background_color":null,"subreddit_type":"public","ups":101,"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":101,"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":1784145483,"link_flair_type":"text","wls":6,"removed_by_category":null,"banned_by":null,"author_flair_type":"text","domain":"mort.coffee","allow_live_comments":false,"selftext_html":null,"likes":null,"suggested_sort":null,"banned_at_utc":null,"url_overridden_by_dest":"https://mort.coffee/home/sqlite-editions/","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":"1uxgmmq","is_robot_indexable":true,"report_reasons":null,"author":"mort96","discussion_type":null,"num_comments":69,"send_replies":true,"contest_mode":false,"mod_reports":[],"author_patreon_flair":false,"author_flair_text_color":null,"permalink":"/r/programming/comments/1uxgmmq/sqlite_should_have_ruststyle_editions/","stickied":false,"url":"https://mort.coffee/home/sqlite-editions/","subreddit_subscribers":6900968,"created_utc":1784145483,"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":"Guide to data tools landscape for developers · OlegWock","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_1uy8b5l","quarantine":false,"link_flair_text_color":"dark","upvote_ratio":0.71,"author_flair_background_color":null,"subreddit_type":"public","ups":3,"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":3,"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":1784220517,"link_flair_type":"text","wls":6,"removed_by_category":null,"banned_by":null,"author_flair_type":"text","domain":"sinja.io","allow_live_comments":false,"selftext_html":null,"likes":null,"suggested_sort":null,"banned_at_utc":null,"url_overridden_by_dest":"https://sinja.io/blog/data-landscape-guide-for-developers","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":"1uy8b5l","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/1uy8b5l/guide_to_data_tools_landscape_for_developers/","stickied":false,"url":"https://sinja.io/blog/data-landscape-guide-for-developers","subreddit_subscribers":6900968,"created_utc":1784220517,"num_crossposts":0,"media":null,"is_video":false},{"approved_at_utc":null,"subreddit":"programming","selftext":"","author_fullname":"t2_hzox2","saved":false,"mod_reason_title":null,"gilded":0,"clicked":false,"title":"We compiled our TypeScript parser to WASM","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_1ux5sj1","quarantine":false,"link_flair_text_color":"dark","upvote_ratio":0.77,"author_flair_background_color":null,"subreddit_type":"public","ups":29,"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":29,"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":1784121896,"link_flair_type":"text","wls":6,"removed_by_category":null,"banned_by":null,"author_flair_type":"text","domain":"encore.dev","allow_live_comments":false,"selftext_html":null,"likes":null,"suggested_sort":null,"banned_at_utc":null,"url_overridden_by_dest":"https://encore.dev/blog/typescript-parser-wasm","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":"1ux5sj1","is_robot_indexable":true,"report_reasons":null,"author":"TheSwedeheart","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/1ux5sj1/we_compiled_our_typescript_parser_to_wasm/","stickied":false,"url":"https://encore.dev/blog/typescript-parser-wasm","subreddit_subscribers":6900968,"created_utc":1784121896,"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":"Dan Smith from OpenJDK -- Identifying JDK value class candidates","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_1uxnfri","quarantine":false,"link_flair_text_color":"dark","upvote_ratio":0.7,"author_flair_background_color":null,"subreddit_type":"public","ups":5,"total_awards_received":0,"media_embed":{},"author_flair_template_id":null,"is_original_content":false,"author_fullname":"t2_rgvmieuks","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":5,"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,"crosspost_parent_list":[{"approved_at_utc":null,"subreddit":"java","selftext":"","author_fullname":"t2_rgvmieuks","saved":false,"mod_reason_title":null,"gilded":0,"clicked":false,"title":"Identifying JDK value class candidates","link_flair_richtext":[],"subreddit_name_prefixed":"r/java","hidden":false,"pwls":6,"link_flair_css_class":null,"downs":0,"top_awarded_type":null,"hide_score":false,"name":"t3_1uxnfcp","quarantine":false,"link_flair_text_color":"dark","upvote_ratio":0.97,"author_flair_background_color":null,"subreddit_type":"public","ups":39,"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":39,"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":1784161589,"link_flair_type":"text","wls":6,"removed_by_category":null,"banned_by":null,"author_flair_type":"text","domain":"mail.openjdk.org","allow_live_comments":false,"selftext_html":null,"likes":null,"suggested_sort":null,"banned_at_utc":null,"url_overridden_by_dest":"https://mail.openjdk.org/archives/list/core-libs-dev@openjdk.org/thread/Y72NRXM7KYBX43OKYBQMVKOZDWKG4MHS/","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_2qhd7","author_is_blocked":false,"mod_reason_by":null,"removal_reason":null,"link_flair_background_color":"","id":"1uxnfcp","is_robot_indexable":true,"report_reasons":null,"author":"davidalayachew","discussion_type":null,"num_comments":38,"send_replies":true,"contest_mode":false,"mod_reports":[],"author_patreon_flair":false,"author_flair_text_color":null,"permalink":"/r/java/comments/1uxnfcp/identifying_jdk_value_class_candidates/","stickied":false,"url":"https://mail.openjdk.org/archives/list/core-libs-dev@openjdk.org/thread/Y72NRXM7KYBX43OKYBQMVKOZDWKG4MHS/","subreddit_subscribers":401009,"created_utc":1784161589,"num_crossposts":1,"media":null,"is_video":false}],"created":1784161618,"link_flair_type":"text","wls":6,"removed_by_category":null,"banned_by":null,"author_flair_type":"text","domain":"mail.openjdk.org","allow_live_comments":false,"selftext_html":null,"likes":null,"suggested_sort":null,"banned_at_utc":null,"url_overridden_by_dest":"https://mail.openjdk.org/archives/list/core-libs-dev@openjdk.org/thread/Y72NRXM7KYBX43OKYBQMVKOZDWKG4MHS/","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":"1uxnfri","is_robot_indexable":true,"report_reasons":null,"author":"davidalayachew","discussion_type":null,"num_comments":6,"send_replies":true,"contest_mode":false,"mod_reports":[],"author_patreon_flair":false,"crosspost_parent":"t3_1uxnfcp","author_flair_text_color":null,"permalink":"/r/programming/comments/1uxnfri/dan_smith_from_openjdk_identifying_jdk_value/","stickied":false,"url":"https://mail.openjdk.org/archives/list/core-libs-dev@openjdk.org/thread/Y72NRXM7KYBX43OKYBQMVKOZDWKG4MHS/","subreddit_subscribers":6900968,"created_utc":1784161618,"num_crossposts":0,"media":null,"is_video":false},{"approved_at_utc":null,"subreddit":"programming","selftext":"","author_fullname":"t2_1znh9l14c3","saved":false,"mod_reason_title":null,"gilded":0,"clicked":false,"title":"End-to-end encrypted secret sharing with the Web Crypto API","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_1uwxnox","quarantine":false,"link_flair_text_color":"dark","upvote_ratio":0.84,"author_flair_background_color":null,"subreddit_type":"public","ups":55,"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":55,"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":1784096715,"link_flair_type":"text","wls":6,"removed_by_category":null,"banned_by":null,"author_flair_type":"text","domain":"notnotp.com","allow_live_comments":false,"selftext_html":null,"likes":null,"suggested_sort":null,"banned_at_utc":null,"url_overridden_by_dest":"https://notnotp.com/notes/end-to-end-encrypted-secret-sharing-with-the-web-crypto-api/","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":"1uwxnox","is_robot_indexable":true,"report_reasons":null,"author":"Opposite-Gur9623","discussion_type":null,"num_comments":4,"send_replies":true,"contest_mode":false,"mod_reports":[],"author_patreon_flair":false,"author_flair_text_color":null,"permalink":"/r/programming/comments/1uwxnox/endtoend_encrypted_secret_sharing_with_the_web/","stickied":false,"url":"https://notnotp.com/notes/end-to-end-encrypted-secret-sharing-with-the-web-crypto-api/","subreddit_subscribers":6900968,"created_utc":1784096715,"num_crossposts":0,"media":null,"is_video":false},{"approved_at_utc":null,"subreddit":"programming","selftext":"Patreon sends billions of notifications each year. As our largest creator audiences grew, a legacy task responsible for generating millions of recipient-specific notifications began consistently timing out.\n\nThis post explains how our team introduced a two-stage fanout architecture, isolated email, push and in-app processing, improved observability, and migrated more than 200 notification types across a 13-year-old codebase.","author_fullname":"t2_15mn98bght","saved":false,"mod_reason_title":null,"gilded":0,"clicked":false,"title":"How we rebuilt our notification platform to fanout millions of notifications without timing out","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_1uwj90b","quarantine":false,"link_flair_text_color":"dark","upvote_ratio":0.9,"author_flair_background_color":null,"subreddit_type":"public","ups":167,"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":167,"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":1784058533,"link_flair_type":"text","wls":6,"removed_by_category":null,"banned_by":null,"author_flair_type":"text","domain":"patreon.com","allow_live_comments":false,"selftext_html":"&lt;!-- SC_OFF --&gt;&lt;div class=\"md\"&gt;&lt;p&gt;Patreon sends billions of notifications each year. As our largest creator audiences grew, a legacy task responsible for generating millions of recipient-specific notifications began consistently timing out.&lt;/p&gt;\n\n&lt;p&gt;This post explains how our team introduced a two-stage fanout architecture, isolated email, push and in-app processing, improved observability, and migrated more than 200 notification types across a 13-year-old codebase.&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.patreon.com/engineering/posts/how-we-scaled-notifs-with-fanout-162544709","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":"1uwj90b","is_robot_indexable":true,"report_reasons":null,"author":"patreon-eng","discussion_type":null,"num_comments":21,"send_replies":true,"contest_mode":false,"mod_reports":[],"author_patreon_flair":false,"author_flair_text_color":null,"permalink":"/r/programming/comments/1uwj90b/how_we_rebuilt_our_notification_platform_to/","stickied":false,"url":"https://www.patreon.com/engineering/posts/how-we-scaled-notifs-with-fanout-162544709","subreddit_subscribers":6900968,"created_utc":1784058533,"num_crossposts":0,"media":null,"is_video":false},{"approved_at_utc":null,"subreddit":"programming","selftext":"I learned a lot of things by building a project from scratch: a backend DevOps tool that facilitates managing the fast update cycle in git dependencies.\n\nOverall, the system works by running two concurrent tasks: one to check dependencies, and the other to trigger workflows. When a dependency is updated, a workflow of the dependent GitHub repository is triggered. Initially, to pass data between tasks, I used an MPSC channel, but subsequently I transitioned to a database-backed queue because the channel was not resilient enough to crashes and network errors.\n\nIn the article you can find more examples of unexpected quirks that I needed to iron out after the first iteration.","author_fullname":"t2_28nmjsd7hv","saved":false,"mod_reason_title":null,"gilded":0,"clicked":false,"title":"Requisites change while you iterate: Lessons I learned from building a concurrent DevOps tool for automatically triggering GitHub workflows","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_1ux6970","quarantine":false,"link_flair_text_color":"dark","upvote_ratio":0.83,"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":1784122992,"link_flair_type":"text","wls":6,"removed_by_category":null,"banned_by":null,"author_flair_type":"text","domain":"nilirad.dev","allow_live_comments":false,"selftext_html":"&lt;!-- SC_OFF --&gt;&lt;div class=\"md\"&gt;&lt;p&gt;I learned a lot of things by building a project from scratch: a backend DevOps tool that facilitates managing the fast update cycle in git dependencies.&lt;/p&gt;\n\n&lt;p&gt;Overall, the system works by running two concurrent tasks: one to check dependencies, and the other to trigger workflows. When a dependency is updated, a workflow of the dependent GitHub repository is triggered. Initially, to pass data between tasks, I used an MPSC channel, but subsequently I transitioned to a database-backed queue because the channel was not resilient enough to crashes and network errors.&lt;/p&gt;\n\n&lt;p&gt;In the article you can find more examples of unexpected quirks that I needed to iron out after the first iteration.&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://nilirad.dev/blog/commit-bridge-intro/","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":"1ux6970","is_robot_indexable":true,"report_reasons":null,"author":"nilirad","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/1ux6970/requisites_change_while_you_iterate_lessons_i/","stickied":false,"url":"https://nilirad.dev/blog/commit-bridge-intro/","subreddit_subscribers":6900968,"created_utc":1784122992,"num_crossposts":0,"media":null,"is_video":false},{"approved_at_utc":null,"subreddit":"programming","selftext":"","author_fullname":"t2_1706h51g0f","saved":false,"mod_reason_title":null,"gilded":0,"clicked":false,"title":"git rebase -i is not that scary","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_1uwbmr0","quarantine":false,"link_flair_text_color":"dark","upvote_ratio":0.88,"author_flair_background_color":null,"subreddit_type":"public","ups":347,"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":347,"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":1784042264,"link_flair_type":"text","wls":6,"removed_by_category":null,"banned_by":null,"author_flair_type":"text","domain":"cachebag.sh","allow_live_comments":false,"selftext_html":null,"likes":null,"suggested_sort":null,"banned_at_utc":null,"url_overridden_by_dest":"https://cachebag.sh/journal/interactive-rebasing/","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":"1uwbmr0","is_robot_indexable":true,"report_reasons":null,"author":"cachebags","discussion_type":null,"num_comments":246,"send_replies":true,"contest_mode":false,"mod_reports":[],"author_patreon_flair":false,"author_flair_text_color":null,"permalink":"/r/programming/comments/1uwbmr0/git_rebase_i_is_not_that_scary/","stickied":false,"url":"https://cachebag.sh/journal/interactive-rebasing/","subreddit_subscribers":6900968,"created_utc":1784042264,"num_crossposts":0,"media":null,"is_video":false},{"approved_at_utc":null,"subreddit":"programming","selftext":"","author_fullname":"t2_1o9una5","saved":false,"mod_reason_title":null,"gilded":0,"clicked":false,"title":"Ban commits/transactions using AST analysis and linters","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_1uwv2xt","quarantine":false,"link_flair_text_color":"dark","upvote_ratio":0.68,"author_flair_background_color":null,"subreddit_type":"public","ups":28,"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":28,"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":1784088541,"link_flair_type":"text","wls":6,"removed_by_category":null,"banned_by":null,"author_flair_type":"text","domain":"droppedasbaby.com","allow_live_comments":false,"selftext_html":null,"likes":null,"suggested_sort":null,"banned_at_utc":null,"url_overridden_by_dest":"https://www.droppedasbaby.com/posts/db-commits/?utm_source=reddit&amp;utm_content=r_programming","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":"1uwv2xt","is_robot_indexable":true,"report_reasons":null,"author":"droppedasbaby","discussion_type":null,"num_comments":27,"send_replies":false,"contest_mode":false,"mod_reports":[],"author_patreon_flair":false,"author_flair_text_color":null,"permalink":"/r/programming/comments/1uwv2xt/ban_commitstransactions_using_ast_analysis_and/","stickied":false,"url":"https://www.droppedasbaby.com/posts/db-commits/?utm_source=reddit&amp;utm_content=r_programming","subreddit_subscribers":6900968,"created_utc":1784088541,"num_crossposts":0,"media":null,"is_video":false},{"approved_at_utc":null,"subreddit":"programming","selftext":"Various interesting things about sorting data: defaults, performance and determinism (or lack thereof) of paging ;)","author_fullname":"t2_1mwivhqmfr","saved":false,"mod_reason_title":null,"gilded":0,"clicked":false,"title":"The Order of Data: defaults, performance, determinism &amp; paging","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_1ux1arm","quarantine":false,"link_flair_text_color":"dark","upvote_ratio":0.73,"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":1784109149,"link_flair_type":"text","wls":6,"removed_by_category":null,"banned_by":null,"author_flair_type":"text","domain":"binaryigor.com","allow_live_comments":false,"selftext_html":"&lt;!-- SC_OFF --&gt;&lt;div class=\"md\"&gt;&lt;p&gt;Various interesting things about sorting data: defaults, performance and determinism (or lack thereof) of paging ;)&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://binaryigor.com/the-order-of-data.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":"1ux1arm","is_robot_indexable":true,"report_reasons":null,"author":"BinaryIgor","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/1ux1arm/the_order_of_data_defaults_performance/","stickied":false,"url":"https://binaryigor.com/the-order-of-data.html","subreddit_subscribers":6900968,"created_utc":1784109149,"num_crossposts":0,"media":null,"is_video":false},{"approved_at_utc":null,"subreddit":"programming","selftext":"This is about treesitter and LSP, specifically on their utility and recent journey into the Emacs core.  Includes interactive visualizations of concrete syntax trees. ","author_fullname":"t2_uu2a8q3","saved":false,"mod_reason_title":null,"gilded":0,"clicked":false,"title":"A Tree and a Server Walk Into a Core...","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_1ux6ms9","quarantine":false,"link_flair_text_color":"dark","upvote_ratio":0.67,"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":1784123859,"link_flair_type":"text","wls":6,"removed_by_category":null,"banned_by":null,"author_flair_type":"text","domain":"chiply.dev","allow_live_comments":false,"selftext_html":"&lt;!-- SC_OFF --&gt;&lt;div class=\"md\"&gt;&lt;p&gt;This is about treesitter and LSP, specifically on their utility and recent journey into the Emacs core.  Includes interactive visualizations of concrete syntax trees. &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.chiply.dev/post-july-emacs-carnival","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":"1ux6ms9","is_robot_indexable":true,"report_reasons":null,"author":"misterchiply","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/1ux6ms9/a_tree_and_a_server_walk_into_a_core/","stickied":false,"url":"https://www.chiply.dev/post-july-emacs-carnival","subreddit_subscribers":6900968,"created_utc":1784123859,"num_crossposts":0,"media":null,"is_video":false},{"approved_at_utc":null,"subreddit":"programming","selftext":"","author_fullname":"t2_3mx3u","saved":false,"mod_reason_title":null,"gilded":0,"clicked":false,"title":"HTTP gets a QUERY method so complex searches can stop pretending to be POST","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_1uvszuq","quarantine":false,"link_flair_text_color":"dark","upvote_ratio":0.98,"author_flair_background_color":null,"subreddit_type":"public","ups":1779,"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":1779,"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":1783988202,"link_flair_type":"text","wls":6,"removed_by_category":null,"banned_by":null,"author_flair_type":"text","domain":"theregister.com","allow_live_comments":false,"selftext_html":null,"likes":null,"suggested_sort":null,"banned_at_utc":null,"url_overridden_by_dest":"https://www.theregister.com/devops/2026/07/13/http-gets-a-query-method-so-complex-searches-can-stop-pretending-to-be-post/5270192","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":"1uvszuq","is_robot_indexable":true,"report_reasons":null,"author":"stronghup","discussion_type":null,"num_comments":245,"send_replies":true,"contest_mode":false,"mod_reports":[],"author_patreon_flair":false,"author_flair_text_color":null,"permalink":"/r/programming/comments/1uvszuq/http_gets_a_query_method_so_complex_searches_can/","stickied":false,"url":"https://www.theregister.com/devops/2026/07/13/http-gets-a-query-method-so-complex-searches-can-stop-pretending-to-be-post/5270192","subreddit_subscribers":6900968,"created_utc":1783988202,"num_crossposts":1,"media":null,"is_video":false},{"approved_at_utc":null,"subreddit":"programming","selftext":"","author_fullname":"t2_2qa94c49","saved":false,"mod_reason_title":null,"gilded":0,"clicked":false,"title":"The git history command deserves more attention","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_1uvwlql","quarantine":false,"link_flair_text_color":"dark","upvote_ratio":0.97,"author_flair_background_color":null,"subreddit_type":"public","ups":237,"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":237,"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":1783997989,"link_flair_type":"text","wls":6,"removed_by_category":null,"banned_by":null,"author_flair_type":"text","domain":"lalitm.com","allow_live_comments":false,"selftext_html":null,"likes":null,"suggested_sort":null,"banned_at_utc":null,"url_overridden_by_dest":"https://lalitm.com/post/git-history/","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":"1uvwlql","is_robot_indexable":true,"report_reasons":null,"author":"mitousa","discussion_type":null,"num_comments":33,"send_replies":true,"contest_mode":false,"mod_reports":[],"author_patreon_flair":false,"author_flair_text_color":null,"permalink":"/r/programming/comments/1uvwlql/the_git_history_command_deserves_more_attention/","stickied":false,"url":"https://lalitm.com/post/git-history/","subreddit_subscribers":6900968,"created_utc":1783997989,"num_crossposts":0,"media":null,"is_video":false},{"approved_at_utc":null,"subreddit":"programming","selftext":"It actually even removes code.","author_fullname":"t2_2watv6zv","saved":false,"mod_reason_title":null,"gilded":0,"clicked":false,"title":"How to add validations without adding code in C# .NET","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_1uwjsn7","quarantine":false,"link_flair_text_color":"dark","upvote_ratio":0.61,"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":1784059728,"link_flair_type":"text","wls":6,"removed_by_category":null,"banned_by":null,"author_flair_type":"text","domain":"kalandra.tech","allow_live_comments":false,"selftext_html":"&lt;!-- SC_OFF --&gt;&lt;div class=\"md\"&gt;&lt;p&gt;It actually even removes code.&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.kalandra.tech/blog/zero-code-validations-in-your-dotnet-api/","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":"1uwjsn7","is_robot_indexable":true,"report_reasons":null,"author":"Kal1boy","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/1uwjsn7/how_to_add_validations_without_adding_code_in_c/","stickied":false,"url":"https://www.kalandra.tech/blog/zero-code-validations-in-your-dotnet-api/","subreddit_subscribers":6900968,"created_utc":1784059728,"num_crossposts":1,"media":null,"is_video":false},{"approved_at_utc":null,"subreddit":"programming","selftext":"","author_fullname":"t2_1y0e142ywr","saved":false,"mod_reason_title":null,"gilded":0,"clicked":false,"title":"Beautiful Type Erasure with C++26 Reflection","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_1uw9mpy","quarantine":false,"link_flair_text_color":"dark","upvote_ratio":0.88,"author_flair_background_color":null,"subreddit_type":"public","ups":23,"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":23,"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":1784037815,"link_flair_type":"text","wls":6,"removed_by_category":null,"banned_by":null,"author_flair_type":"text","domain":"ryanjk5.github.io","allow_live_comments":false,"selftext_html":null,"likes":null,"suggested_sort":null,"banned_at_utc":null,"url_overridden_by_dest":"https://ryanjk5.github.io/posts/rjk-duck/","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":"1uw9mpy","is_robot_indexable":true,"report_reasons":null,"author":"Ok_Statistician_781","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/1uw9mpy/beautiful_type_erasure_with_c26_reflection/","stickied":false,"url":"https://ryanjk5.github.io/posts/rjk-duck/","subreddit_subscribers":6900968,"created_utc":1784037815,"num_crossposts":0,"media":null,"is_video":false},{"approved_at_utc":null,"subreddit":"programming","selftext":"A visual explainer on the programming model behind KVM.\n\nA virtual CPU is just a host thread calling `KVM_RUN`, guest RAM is mapped into the process, and execution returns to userspace whenever the guest triggers a VM exit.\n\nIt also covers `/dev/kvm`, hardware virtualization, EPT/NPT, QEMU, virtio and vhost.","author_fullname":"t2_p9ju7x5bj","saved":false,"mod_reason_title":null,"gilded":0,"clicked":false,"title":"How Linux runs a virtual machine as a process","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_1uxb8wt","quarantine":false,"link_flair_text_color":"dark","upvote_ratio":0.29,"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/tjiK4PRdyPk?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=\"Your VM Is Just a Linux Process\"&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":"Your VM Is Just a Linux Process","type":"video","thumbnail_width":480,"height":200,"width":356,"html":"&lt;iframe width=\"356\" height=\"200\" src=\"https://www.youtube.com/embed/tjiK4PRdyPk?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=\"Your VM Is Just a Linux Process\"&gt;&lt;/iframe&gt;","author_name":"nubskr","provider_name":"YouTube","thumbnail_url":"https://i.ytimg.com/vi/tjiK4PRdyPk/hqdefault.jpg","thumbnail_height":360,"author_url":"https://www.youtube.com/@nubskr1"}},"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/tjiK4PRdyPk?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=\"Your VM Is Just a Linux Process\"&gt;&lt;/iframe&gt;","width":356,"scrolling":false,"media_domain_url":"https://www.redditmedia.com/mediaembed/1uxb8wt","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":1784133692,"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":"&lt;!-- SC_OFF --&gt;&lt;div class=\"md\"&gt;&lt;p&gt;A visual explainer on the programming model behind KVM.&lt;/p&gt;\n\n&lt;p&gt;A virtual CPU is just a host thread calling &lt;code&gt;KVM_RUN&lt;/code&gt;, guest RAM is mapped into the process, and execution returns to userspace whenever the guest triggers a VM exit.&lt;/p&gt;\n\n&lt;p&gt;It also covers &lt;code&gt;/dev/kvm&lt;/code&gt;, hardware virtualization, EPT/NPT, QEMU, virtio and vhost.&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.youtube.com/watch?v=tjiK4PRdyPk","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":"1uxb8wt","is_robot_indexable":true,"report_reasons":null,"author":"Ok_Marionberry8922","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/1uxb8wt/how_linux_runs_a_virtual_machine_as_a_process/","stickied":false,"url":"https://www.youtube.com/watch?v=tjiK4PRdyPk","subreddit_subscribers":6900968,"created_utc":1784133692,"num_crossposts":0,"media":{"type":"youtube.com","oembed":{"provider_url":"https://www.youtube.com/","version":"1.0","title":"Your VM Is Just a Linux Process","type":"video","thumbnail_width":480,"height":200,"width":356,"html":"&lt;iframe width=\"356\" height=\"200\" src=\"https://www.youtube.com/embed/tjiK4PRdyPk?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=\"Your VM Is Just a Linux Process\"&gt;&lt;/iframe&gt;","author_name":"nubskr","provider_name":"YouTube","thumbnail_url":"https://i.ytimg.com/vi/tjiK4PRdyPk/hqdefault.jpg","thumbnail_height":360,"author_url":"https://www.youtube.com/@nubskr1"}},"is_video":false},{"approved_at_utc":null,"subreddit":"programming","selftext":"","user_reports":[],"saved":false,"mod_reason_title":null,"gilded":0,"clicked":false,"title":"OpenJDK's Project Valhalla -- New candidate JEP: 401: Value Objects (Preview)","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_1uwiukz","quarantine":false,"link_flair_text_color":"dark","upvote_ratio":0.8,"author_flair_background_color":null,"subreddit_type":"public","ups":9,"total_awards_received":0,"media_embed":{},"author_flair_template_id":null,"is_original_content":false,"author_fullname":"t2_rgvmieuks","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":9,"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,"crosspost_parent_list":[{"approved_at_utc":null,"subreddit":"java","selftext":"","author_fullname":"t2_1btm13hv","saved":false,"mod_reason_title":null,"gilded":0,"clicked":false,"title":"New candidate JEP: 401: Value Objects (Preview)","link_flair_richtext":[],"subreddit_name_prefixed":"r/java","hidden":false,"pwls":6,"link_flair_css_class":null,"downs":0,"top_awarded_type":null,"hide_score":false,"name":"t3_1uwc1me","quarantine":false,"link_flair_text_color":"dark","upvote_ratio":1,"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":1784043161,"link_flair_type":"text","wls":6,"removed_by_category":null,"banned_by":null,"author_flair_type":"text","domain":"mail.openjdk.org","allow_live_comments":false,"selftext_html":null,"likes":null,"suggested_sort":null,"banned_at_utc":null,"url_overridden_by_dest":"https://mail.openjdk.org/archives/list/valhalla-dev@openjdk.org/thread/IUNJJ3WP3X3XHP3QZTXXSSCPKFDNTK3W/","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_2qhd7","author_is_blocked":false,"mod_reason_by":null,"removal_reason":null,"link_flair_background_color":"","id":"1uwc1me","is_robot_indexable":true,"report_reasons":null,"author":"nlisker","discussion_type":null,"num_comments":44,"send_replies":false,"contest_mode":false,"mod_reports":[],"author_patreon_flair":false,"author_flair_text_color":null,"permalink":"/r/java/comments/1uwc1me/new_candidate_jep_401_value_objects_preview/","stickied":false,"url":"https://mail.openjdk.org/archives/list/valhalla-dev@openjdk.org/thread/IUNJJ3WP3X3XHP3QZTXXSSCPKFDNTK3W/","subreddit_subscribers":401009,"created_utc":1784043161,"num_crossposts":1,"media":null,"is_video":false}],"created":1784057636,"link_flair_type":"text","wls":6,"removed_by_category":null,"banned_by":null,"author_flair_type":"text","domain":"mail.openjdk.org","allow_live_comments":false,"selftext_html":null,"likes":null,"suggested_sort":null,"banned_at_utc":null,"url_overridden_by_dest":"https://mail.openjdk.org/archives/list/valhalla-dev@openjdk.org/thread/IUNJJ3WP3X3XHP3QZTXXSSCPKFDNTK3W/","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":"1uwiukz","is_robot_indexable":true,"report_reasons":null,"author":"davidalayachew","discussion_type":null,"num_comments":3,"send_replies":true,"contest_mode":false,"mod_reports":[],"author_patreon_flair":false,"crosspost_parent":"t3_1uwc1me","author_flair_text_color":null,"permalink":"/r/programming/comments/1uwiukz/openjdks_project_valhalla_new_candidate_jep_401/","stickied":false,"url":"https://mail.openjdk.org/archives/list/valhalla-dev@openjdk.org/thread/IUNJJ3WP3X3XHP3QZTXXSSCPKFDNTK3W/","subreddit_subscribers":6900968,"created_utc":1784057636,"num_crossposts":0,"media":null,"is_video":false},{"approved_at_utc":null,"subreddit":"programming","selftext":"","author_fullname":"t2_h1b7vy14","saved":false,"mod_reason_title":null,"gilded":0,"clicked":false,"title":"ASMR: Building a TCP Chat Application in Go","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_1uxeand","quarantine":false,"link_flair_text_color":"dark","upvote_ratio":0.18,"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/6StBVHIos8I?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=\"ASMR: Building a TCP Chat Application in Go\"&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":"ASMR: Building a TCP Chat Application in Go","type":"video","thumbnail_width":480,"height":200,"width":356,"html":"&lt;iframe width=\"356\" height=\"200\" src=\"https://www.youtube.com/embed/6StBVHIos8I?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=\"ASMR: Building a TCP Chat Application in Go\"&gt;&lt;/iframe&gt;","author_name":"Nouman Rahman","provider_name":"YouTube","thumbnail_url":"https://i.ytimg.com/vi/6StBVHIos8I/hqdefault.jpg","thumbnail_height":360,"author_url":"https://www.youtube.com/@noumanrahman-tech"}},"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/6StBVHIos8I?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=\"ASMR: Building a TCP Chat Application in Go\"&gt;&lt;/iframe&gt;","width":356,"scrolling":false,"media_domain_url":"https://www.redditmedia.com/mediaembed/1uxeand","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":1784140096,"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":null,"likes":null,"suggested_sort":null,"banned_at_utc":null,"url_overridden_by_dest":"https://youtu.be/6StBVHIos8I","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":"1uxeand","is_robot_indexable":true,"report_reasons":null,"author":"Nouman-Rahman","discussion_type":null,"num_comments":6,"send_replies":true,"contest_mode":false,"mod_reports":[],"author_patreon_flair":false,"author_flair_text_color":null,"permalink":"/r/programming/comments/1uxeand/asmr_building_a_tcp_chat_application_in_go/","stickied":false,"url":"https://youtu.be/6StBVHIos8I","subreddit_subscribers":6900968,"created_utc":1784140096,"num_crossposts":0,"media":{"type":"youtube.com","oembed":{"provider_url":"https://www.youtube.com/","version":"1.0","title":"ASMR: Building a TCP Chat Application in Go","type":"video","thumbnail_width":480,"height":200,"width":356,"html":"&lt;iframe width=\"356\" height=\"200\" src=\"https://www.youtube.com/embed/6StBVHIos8I?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=\"ASMR: Building a TCP Chat Application in Go\"&gt;&lt;/iframe&gt;","author_name":"Nouman Rahman","provider_name":"YouTube","thumbnail_url":"https://i.ytimg.com/vi/6StBVHIos8I/hqdefault.jpg","thumbnail_height":360,"author_url":"https://www.youtube.com/@noumanrahman-tech"}},"is_video":false}]