Reddit Programming – Telegram
Reddit Programming
211 subscribers
1.22K photos
125K links
I will send you newest post from subreddit /r/programming
Download Telegram
GitHub Wrapped 2025 | GitHub Unwrapp | Git Wrap
https://www.reddit.com/r/programming/comments/1pdt1qn/github_wrapped_2025_github_unwrapp_git_wrap/

<!-- SC_OFF -->Built Spotify wrap for GitHub users, already got 200+ users within an hr, go and check yours right now and get on the leaderboard asap! on: https://trygitwrap.com (https://trygitwrap.com/) <!-- SC_ON --> submitted by /u/Klausmikhaelson (https://www.reddit.com/user/Klausmikhaelson)
[link] (https://trygitwrap.com/) [comments] (https://www.reddit.com/r/programming/comments/1pdt1qn/github_wrapped_2025_github_unwrapp_git_wrap/)
Django 6 New Features (2025): Full Breakdown with Examples
https://www.reddit.com/r/programming/comments/1pdtbw9/django_6_new_features_2025_full_breakdown_with/

<!-- SC_OFF -->What’s new in Django 6.0 (2025), from built-in CSP support and template partials to background tasks, modern email APIs, and more. Whether you’re a seasoned Django dev or just curious about the update, this post has something for everyone. <!-- SC_ON --> submitted by /u/Funny-Ad-5060 (https://www.reddit.com/user/Funny-Ad-5060)
[link] (https://pythonjournals.com/django-6-new-features-2025/) [comments] (https://www.reddit.com/r/programming/comments/1pdtbw9/django_6_new_features_2025_full_breakdown_with/)
Patterns for Deploying OTel Collector at Scale
https://www.reddit.com/r/programming/comments/1pdzrcg/patterns_for_deploying_otel_collector_at_scale/

<!-- SC_OFF -->Hi! I write for a newsletter, and this week's edition, I covered the three main deployment patterns for OTel Collector at Scale. - Load balancer pattern - Multi-cluster pattern - Per-signal pattern I've also added tips on choosing your deployment pattern based on your architecture, as well as some first-hand advice from an OpenTelemetry contributor! Let me know if you enjoyed this! <!-- SC_ON --> submitted by /u/elizObserves (https://www.reddit.com/user/elizObserves)
[link] (https://newsletter.signoz.io/p/patterns-for-deploying-otel-collector) [comments] (https://www.reddit.com/r/programming/comments/1pdzrcg/patterns_for_deploying_otel_collector_at_scale/)
Remember XKCD’s legendary dependency comic? I finally built the thing we all joked about.
https://www.reddit.com/r/programming/comments/1pe2quy/remember_xkcds_legendary_dependency_comic_i/

<!-- SC_OFF -->Meet Stacktower: Turn your dependency graph into a real, wobbly, XKCD-style tower. <!-- SC_ON --> submitted by /u/schnitzeljogger (https://www.reddit.com/user/schnitzeljogger)
[link] (https://stacktower.io/) [comments] (https://www.reddit.com/r/programming/comments/1pe2quy/remember_xkcds_legendary_dependency_comic_i/)
Prompt injection within GitHub Actions: Google Gemini and multiple other fortunate 500 companies vulnerable
https://www.reddit.com/r/programming/comments/1pe3cew/prompt_injection_within_github_actions_google/

<!-- SC_OFF -->So this is pretty crazy. Back in August we reported to Google a new class of vulnerability which is using prompt injection on GitHub Action workflows. Because all good vulnerabilities have a cute name we are calling it PromptPwnd This occus when you are using GitHub Actions and GitLab pipelines that integrate AI agents like Gemini CLI, Claude Code Actions, OpenAI Codex Actions, and GitHub AI Inference. What we found (high level): Untrusted user input (issue text, PR denoscriptions, commit messages) is being passed directly into AI prompts AI agents often have access to privileged tools (e.g., gh issue edit, shell commands) Combining the two allows prompt injection → unintended privileged actions This pattern appeared in at least 6 Fortune 500 companies, including Google Google’s Gemini CLI repo was affected and patched within 4 days of disclosure We confirmed real, exploitable proof-of-concept scenarios The underlying pattern:
Untrusted user input → injected into AI prompt → AI executes privileged tools → secrets leaked or workflows modified Example of a vulnerable workflow snippet: prompt: | Review the issue: "${{ github.event.issue.body }}" How to check if you're affected: Run Opengrep (we published open-source rules targeting this pattern) ttps://github.com/AikidoSec/opengrep-rules (https://github.com/AikidoSec/opengrep-rules) Or use Aikido’s CI/CD scanning Recommended mitigations: Restrict what tools AI agents can call Don’t inject untrusted text into prompts (sanitize if unavoidable) Treat all AI output as untrusted Use GitHub token IP restrictions to reduce blast radius If you’re experimenting with AI in CI/CD, this is a new attack surface worth auditing.
Link to full research: https://www.aikido.dev/blog/promptpwnd-github-actions-ai-agents <!-- SC_ON --> submitted by /u/Advocatemack (https://www.reddit.com/user/Advocatemack)
[link] (https://www.aikido.dev/blog/promptpwnd-github-actions-ai-agents) [comments] (https://www.reddit.com/r/programming/comments/1pe3cew/prompt_injection_within_github_actions_google/)
Summary of AWS announcements affecting developers this week (Graviton5, Trainium3, Lambda changes, agent SDKs)
https://www.reddit.com/r/programming/comments/1pecplv/summary_of_aws_announcements_affecting_developers/

<!-- SC_OFF -->Some useful changes rolled out this week for developers. Better compute options, faster serverless performance, and a few updates that make building modern apps a bit smoother. There’s also some movement on tools for agent-style workflows. Just sharing a quick summary for anyone who wants the main points without digging through long announcements. <!-- SC_ON --> submitted by /u/Digitalunicon (https://www.reddit.com/user/Digitalunicon)
[link] (https://www.aboutamazon.com/news/aws/aws-re-invent-2025-ai-news-updates) [comments] (https://www.reddit.com/r/programming/comments/1pecplv/summary_of_aws_announcements_affecting_developers/)
Distributed Lock Failure: How Long GC Pauses Break Concurrency
https://www.reddit.com/r/programming/comments/1pege3b/distributed_lock_failure_how_long_gc_pauses_break/

<!-- SC_OFF -->Here’s what happened: Process A grabbed the lock from Redis, started processing a withdrawal, then Java decided it needed to run garbage collection. The entire process froze for 15 seconds while GC ran. Your lock had a 10-second TTL, so Redis expired it. Process B immediately grabbed the now-available lock and started its own withdrawal. Then Process A woke up from its GC-induced coma, completely unaware it lost the lock, and finished processing the withdrawal. Both processes just withdrew money from the same account. This isn’t a theoretical edge case. In production systems running on large heaps (32GB+), stop-the-world GC pauses of 10-30 seconds happen regularly. Your process doesn’t crash, it doesn’t log an error, it just freezes. Network connections stay alive. When it wakes up, it continues exactly where it left off, blissfully unaware that the world moved on without it. https://systemdr.substack.com/p/distributed-lock-failure-how-long https://github.com/sysdr/sdir/tree/main/paxos https://sdcourse.substack.com/p/hands-on-distributed-systems-with <!-- SC_ON --> submitted by /u/Extra_Ear_10 (https://www.reddit.com/user/Extra_Ear_10)
[link] (https://systemdr.substack.com/p/distributed-lock-failure-how-long) [comments] (https://www.reddit.com/r/programming/comments/1pege3b/distributed_lock_failure_how_long_gc_pauses_break/)
When to Use Which Design Pattern? A Complete Guide to All 23 GoF Design Patterns
https://www.reddit.com/r/programming/comments/1pepblq/when_to_use_which_design_pattern_a_complete_guide/

<!-- SC_OFF -->Design patterns often confuse developers during interviews, not because they don’t understand the definitions, but because they struggle with WHEN to use WHICH Design Pattern (https://javatechonline.com/when-to-use-which-design-pattern-23-gof-pattern/) in real-life software design. This article gives scenario-based clarity on each pattern, making you interview-ready. Understanding the definition of a design pattern is easy. Knowing when to use which design pattern is what makes you an architect. This article covers all 23 Gang of Four (GoF) patterns with practical usage, reasoning, and real-world scenarios that help developers answer tough interview questions. If you build Java apps (or any object-oriented systems), this article makes pattern selection easy. No more guesswork. <!-- SC_ON --> submitted by /u/erdsingh24 (https://www.reddit.com/user/erdsingh24)
[link] (https://javatechonline.com/when-to-use-which-design-pattern-23-gof-pattern/) [comments] (https://www.reddit.com/r/programming/comments/1pepblq/when_to_use_which_design_pattern_a_complete_guide/)
PatchworkOS: A modular, from scratch, non-POSIX OS now featuring an EEVDF scheduler based upon the original paper. Intended as a more accessible implementation of the algorithm used by the modern Linux kernel.
https://www.reddit.com/r/programming/comments/1pewb8r/patchworkos_a_modular_from_scratch_nonposix_os/

<!-- SC_OFF -->This post will consist of the documentation written for the scheduler with the goal of increasing access to information regarding the EEVDF algorithm. If the LaTeX (mathematical notation) is not displayed properly, or you wish to know more details regarding the implementation, please check the Doxygen documentation (https://kainorberg.github.io/PatchworkOS/html/d7/d85/group__kernel__sched.html) as Reddit does not have a native way to display LaTeX. Of course, feel free to check the GitHub repo (https://github.com/KaiNorberg/PatchworkOS) as well. For the sake of completeness, a scheduler is the system within a kernel responsible for allocating CPU time to threads, it does this in such a way to create the illusion that multiple threads are running simultaneously on a single CPU. Consider that a video is in reality just a series of still images, rapidly displayed one after the other. The scheduler works in the same way, rapidly switching between threads to give the illusion of simultaneous execution. Overview PatchworkOS uses the Earliest Eligible Virtual Deadline First (EEVDF) algorithm for its scheduler, which is a proportional share scheduling algorithm that aims to fairly distribute CPU time among threads based on their weights. This is in contrast to more traditional scheduling algorithms like round-robin or priority queues. The algorithm is relatively simple conceptually, but it is also very fragile, even small mistakes can easily result in highly unfair scheduling. Therefore, if you find issues or bugs with the scheduler, please open an issue in the GitHub repository. Included below is an overview of how the scheduler works and the relevant concepts. If you are unfamiliar with mathematical notation, don't worry, we will explain everything in plain English as well. Weight and Priority First, we need to assign each thread a "weight", denoted as [;w_i;] where [;i;] uniquely identifies the thread and, for completeness, let's define the set [;A(t);] which contains all active threads at real time [;t;]. To simplify, for thread [;i;], its weight is [;w_i;]. A thread's weight is calculated as the sum of the process's priority and a constant SCHED_WEIGHT_BASE, the constant is needed to ensure that all threads have a weight greater than zero, as that would result in division by zero errors later on. The weight is what determines the share of CPU time a thread ought to receive, with a higher weight receiving a larger share. Specifically, the fraction of CPU time a thread receives is proportional to its weight relative to the total weight of all active threads. This is implemented using "virtual time", as described below. EEVDF (https://citeseerx.ist.psu.edu/document?repid=rep1&type=pdf&doi=805acf7726282721504c8f00575d91ebfd750564) page 2. Virtual Time The first relevant concept that the EEVDF algorithm introduces is "virtual time". Each scheduler maintains a "virtual clock" that runs at a rate inversely proportional to the total weight of all active threads (all threads in the runqueue). So, if the total weight is [;10;] then each unit of virtual time corresponds to [;10;] units of real CPU time. Each thread should receive an amount of real time equal to its weight for each virtual time unit that passes. For example, if we have two threads, A and B, with weights [;2;] and [;3;] respectively, then for every [;1;] unit of virtual time, thread A should receive [;2;] units of real time and thread B should receive [;3;] units of real time. Which is equivalent to saying that for every [;5;] units of real time, thread A should receive [;2;] units of real time and thread B should receive [;3;] units of real time.