Dev.to
The Interval Is the Thing: Modelling Range Types as First-Class Domain Objects in .NET
A complete solution: expressive range types in your domain layer, full PostgreSQL translation in your data layer - no compromises at either end The Two-Column Trap Almost every developer has written it at least once. An object with two date properties: public class MemberSubscription { public int Id { get ; set ; } public int MemberId { get ; set ; } public DateTime StartDate { get ; set ; } public DateTime EndDate { get ; set ; } } Imagine you need to answer a seemingly simple question in a booking system: "Is this subscription still active, and does it conflict with the proposed new one?" With two bare fields, that code ends up looking something like this: // With two bare DateTime fields — the check you always end up writing public static bool IsActive ( MemberSubscription sub , DateTime at ) => sub . StartDate <= at && ( sub . EndDate == default || sub . EndDate > at ); public static bool ConflictsWith ( MemberSubscription a , MemberSubscription b ) { // Partial overlap: a starts inside b if ( a . StartDate >= b . StartDate && a . StartDate < b . EndDate ) return true ; // Partial overlap: b starts inside a if ( b . StartDate >= a . StartDate && b . StartDate < a . StartDate ) return true ; // b is fully contained by a if ( a . StartDate <= b . StartDate && a . EndDate >= b . EndDate ) return true ; // What about open-ended subscriptions? What about same-day boundaries? // What about inclusive vs exclusive end dates? ... return false ; } It looks perfectly reasonable. But start asking questions — as Steve Smith (Ardalis) does in his essay on making the implicit explicit — and you notice how much invisible knowledge this design requires. Should EndDate ever precede StartDate ? The type system doesn't say. Can a subscription have a null end date meaning it never expires? Nothing in the model communicates that. Is a subscription that ends today still active at 11:59 PM? Ask three developers and get three answers. The EndDate == default sentinel for open-ended subsc
Ricardo Groß
2026-06-12 05:27
👁 11
查看原文 →
Dev.to
Kubernetes kills your pod? Here's why
Your pods keep getting killed. Not crashing — killed. One moment they're running fine, the next they're gone and Kubernetes is spinning up replacements. You check the logs and there's nothing useful. The pod just… disappeared. Turns out Kubernetes killed it on purpose. And if you don't tell it how much memory your app actually needs, it'll keep doing it. Why Kubernetes evicts pods Kubernetes runs on nodes — physical or virtual machines that host your containers. Each node has a finite amount of CPU and memory. When a node runs low on resources, Kubernetes has to make a choice: which pods stay, and which ones get evicted to free up space. The decision comes down to QoS classes — Quality of Service tiers that Kubernetes assigns to every pod based on how you've configured resource requests and limits. There are three classes: BestEffort — no resource requests or limits defined. Kubernetes has no idea how much CPU or memory the pod needs. These get killed first. Burstable — requests and limits are defined, but they're different (e.g., requests: 256Mi , limits: 512Mi ). The pod is guaranteed the request amount, but can burst up to the limit. Killed second. Guaranteed — requests and limits are set to the same value. Kubernetes reserves exactly that amount of resources for the pod. Killed last. If your pods don't have resource configuration at all, they're running as BestEffort. And when the node hits memory pressure, BestEffort pods are the first to go — no questions asked. The Guaranteed class Setting your pod to the Guaranteed class is one line in your deployment config. Define requests and limits for both CPU and memory, and make them identical: resources : requests : memory : " 512Mi" cpu : " 500m" limits : memory : " 512Mi" cpu : " 500m" That's it. Kubernetes now knows this pod needs exactly 512 MiB of RAM and half a CPU core, and it reserves that capacity when scheduling the pod onto a node. If a node doesn't have 512 MiB available, the pod won't be placed there. An
dsplce.co
2026-06-12 05:27
👁 9
查看原文 →
Dev.to
How I Built an AI-Powered Adult (Porn) Content Scanner for Windows (And the Engineering Challenges I Didn't Expect)
Building an AI-Powered Content Scanner for Windows: Performance, Multithreading and GPU Acceleration in .NET Building software always looks straightforward from the outside. You load a machine learning model, point it at some images, and display the results. At least that's what I thought when I started building DetectNix Vision , a Windows desktop application that performs local AI-powered image analysis without uploading user data to the cloud. In reality, the project became a deep dive into performance optimization, memory management, multithreading, GPU acceleration, and user experience. This article covers the engineering challenges I encountered and the architectural decisions I made while building the software from the perspective of a senior developer. The Original Goal The initial goal was simple: Scan images stored on a Windows PC Detect potentially explicit or sensitive content Keep all processing local Support both CPU and GPU execution Process large image collections efficiently Remain responsive while scanning Privacy was a major requirement. I didn't want users uploading personal files to third-party services. Everything needed to run locally on the user's machine. That decision immediately influenced every technical choice that followed. Challenge #1: Model Loading Performance One of the first mistakes I made was loading the AI model too frequently. A modern computer vision model can be hundreds of megabytes in size. Loading it repeatedly creates significant startup overhead and quickly destroys performance. My initial implementation worked perfectly during testing because I was only processing a handful of images. Once I started testing larger image collections, the bottleneck became obvious. The Solution I moved to a singleton-style architecture where the model is loaded once during application startup and remains resident in memory. private readonly InferenceSession _session ; public VisionEngine () { _session = CreateSession (); } This reduced in
Mark
2026-06-12 05:25
👁 8
查看原文 →
Dev.to
Error Budget Policies That Hold Leadership Accountable
Error budgets are useless without a policy. 'We're out of error budget' should trigger consequences. If it doesn't, you don't have an error budget — you have a vanity metric. Here's a policy that actually works. The four states Healthy (< 70% of budget used). Business as usual. Feature development proceeds at full speed. Watch (70-90% used). Feature velocity continues but new risky changes require explicit sign-off from an SRE. No gate, just attention. Constrained (90-100% used). Feature freezes. Only reliability work and critical bug fixes until we're back below 90%. Breached (> 100% used). Incident-level response. Leadership informed. Post-mortem for why we blew through. Feature work stays frozen until we recover and identify systemic causes. The part most policies miss The feature freeze in 'constrained' state is the part that actually changes behavior. Everything else is documentation. Without consequences, teams ignore the budget. The freeze has to be real . Leadership can't override it for a 'really important feature' — that's exactly the time the freeze matters. The only exception is a legitimate emergency fix, and those should be rare. Selling this to leadership Executives hate feature freezes. They see it as slowing the business. Counter-argument: feature freezes during budget exhaustion protect the business. Shipping features onto broken infrastructure creates more breakage, which burns more budget, which is a doom loop. Frame it as: 'the feature freeze is a safety valve. When it triggers, it's because something's wrong and we need to fix it before making it worse.' Also: a good policy lets you spend the budget aggressively when you have it. Feature teams should be encouraged to experiment, deploy fast, and take risks when you're at 30% budget used. The freeze is only for when the safety margin is gone. The review cadence Weekly error budget review, 15 minutes max. Who attended: SRE lead, engineering manager, maybe a PM. Decisions: are we in healthy/watch/
Samson Tanimawo
2026-06-12 05:23
👁 12
查看原文 →
Wired
Meet the OpenAI Engineer Leading ChatGPT's Biggest Transformation Yet
Thibault Sottiaux helped make AI coding one of OpenAI’s fastest-growing businesses. Now he’s overseeing a sweeping overhaul of ChatGPT.
Maxwell Zeff
2026-06-12 05:21
👁 12
查看原文 →
HackerNews
Tailwind and slop apps
coneonthefloor
2026-06-12 05:12
👁 3
查看原文 →
Product Hunt
Elvin
Proactive AI that finds and finishes work before you ask Discussion | Link
Ben Lang
2026-06-12 05:04
👁 2
查看原文 →
HackerNews
OpenAI's June 2026 Report on Malicious Uses of AI [pdf]
jklmnopqrstuvw
2026-06-12 05:00
👁 2
查看原文 →
Product Hunt
Boxwood Chess
Chess pattern training. No timers, no streaks, no ratings. Discussion | Link
Connor Spencer
2026-06-12 04:53
👁 2
查看原文 →
Wired
Massive Effigy of Elon Musk Raised Over Times Square to Protest Grok
Activists raised a 40-foot-tall inflatable Elon Musk in Manhattan to draw attention to the risk he allegedly poses to investors.
Vittoria Elliott
2026-06-12 04:50
👁 9
查看原文 →
HackerNews
Show HN: TunnelMind – reputation API for IPs, ASNs, and ad-tech supply chains
I'm a network engineer that likes to think about the future of the internet and this is what I've built over many nights and weekends. One reputation graph over IPs, ASNs, domains, and entities, exposed as a JSON API. Try it: curl https://api.tunnelmind.ai/v1/check/1.1.1.1 Every answer is a signed receipt with an attestation tier so you can see what was produced and how your agents can use it. The protocol is opensource. Try it out let me know what you think and yes I am still working on the rad
o2k
2026-06-12 04:27
👁 2
查看原文 →
TechCrunch
Oracle warns of security bug that hackers abused to breach 100+ companies
The tech giant warned of a security flaw that a cybercrime gang said it's exploiting as part of a mass-hacking campaign. Google said it notified more than 100 organizations that had potentially vulnerable servers.
Lorenzo Franceschi-Bicchierai
2026-06-12 04:27
👁 11
查看原文 →
HackerNews
Malware developers added nuclear and biological weapons text to to their spyware
https://socket.dev/blog/mini-shai-hulud-miasma-and-hades-wor...
marc__1
2026-06-12 04:24
👁 2
查看原文 →
Reddit r/programming
Drupal SQL Code-Injection Vulnerability - Why does it still exist?
Even with decades of documentation, SQL Code Injection remains a top threat. Train your developers and TPMs! submitted by /u/casaaugusta [link] [留言]
/u/casaaugusta
2026-06-12 04:20
👁 4
查看原文 →
Product Hunt
LocIn AI
Localize your app with tone-aware AI, automated workflows Discussion | Link
2026-06-12 04:04
👁 4
查看原文 →
The Verge AI
Logitech’s awesome MX Master 3S mouse drops to under $100
The platform-agnostic Logitech MX Master 3S wireless mouse is discounted to $89.99 at Amazon ($30 off), matching the best price we’ve seen so far this year. While it may look like a somewhat ordinary mouse, it has a unique second scroll wheel near the left thumb that’s surprisingly useful for horizontal scrolling in spreadsheets. You […]
Brad Bourque
2026-06-12 04:00
👁 7
查看原文 →
HackerNews
Shall we play a game? – LLMs use tactical nukes in 95% of simulations
nick238
2026-06-12 03:54
👁 2
查看原文 →
Product Hunt
Relay
Paste a site & get an AI receptionist that learns from calls Discussion | Link
Kiryl Zhukau
2026-06-12 03:53
👁 2
查看原文 →
Product Hunt
Juno
Free, local AI powered Voice to Text w/ live transcriptions Discussion | Link
2026-06-12 03:42
👁 4
查看原文 →
Product Hunt
DevCleaner
Free the gigabytes your dev tools and AI apps hoard Discussion | Link
David Tereba
2026-06-12 03:25
👁 2
查看原文 →