今日精选
HOT最新资讯
共 29734 篇Modeling Facts and Reactions with Domain Events
submitted by /u/deniskyashif [link] [留言]
Edit Mind × Strava
Every clip matched to the Strava activity it's from Discussion | Link
We compared different LLMs on IMO 2026 [R]
There are a few reasons why problems from International Mathematical Olympiad function as a good benchmark for LLMs: - The problems are new, not included in the training data of any model - Hard math problems are quite a good proxy for general intelligence capability - These are complex multi-step tasks that can benefit from orchestration / harness engineering Results: Frontier models (sol and fable) were able to get perfect / nearly perfect score regardless of harness. For both sonnet and opus, the webapp performance was quite poor, improved by provider harness (claude code) and even further improved using AutoFyn, a customizable multi-agent harness we developed. Even with harness, we were not able to match the performance of the frontier models. Open weight model GLM performed roughly at the same level as sonnet without harness, and improved similarly with AutoFyn. Numerical scores are available in the attached paper below. https://preview.redd.it/fy4ayale5nfh1.png?width=2155&format=png&auto=webp&s=040e466171a2f9480d4d6578b34f4d930b41e292 Grading was done by a different frontier model as well as manual verification (we are former IMO medalists, able to sanity check the results). There were cases when the model claimed a false solution (on P3 by sonnet, for example), so hallucination issue still persists in a verifiable domain like math. On the hardest problem: P3's key reduction was missed by every sub-frontier model in every harness, including a 20-hour run that proved everything else and stalled at the identical step. The harness supplied retrieval and verification, not a key idea needed for the solution. Paper: https://github.com/SignalPilot-Labs/AutoFyn/blob/main/results/imo-2026/autofyn-beyond-model-imo26-report.pdf Audit Trails: https://github.com/SignalPilot-Labs/AutoFyn/tree/main/results/imo-2026 submitted by /u/pequalnp92 [link] [留言]
18 Stories, 6 Characters, 18 to Go — A Half-Time Check-In on the 36 Stratagems
I took a week off from Dev.to. Not a planned one — I just sat down last Sunday and realized I had nothing left. Eighteen stories into a 36-story series, and my tank was empty. So I didn't post a single article for a full week. I'd pop into the comments section now and then, but that was it. The day job was still there, but I stopped staying up till 1:30 AM writing like I did when the series first started. I adjusted to a 10 PM bedtime instead. Then on Friday afternoon, something happened. I spent twenty minutes writing a rant about bugs and layoffs, hit publish, and went back to doing nothing. When I checked back on Sunday, that rant had more eyeballs on it than most of my 36 Stratagems stories. You're supposed to have an existential crisis about your content strategy at this point, right? I didn't. The Series That Wasn't a Strategy Eighteen stories ago, I sat down and wrote the first Stratagem. I wasn't starting from nothing — there was a rough outline in my head, a skeleton of 36 chapters with each of the six characters mapped to a specific stratagem. But I hadn't figured out the details of each story yet. Not because I had a content calendar. Not because an editor was pushing me. Because it clicked. The six protagonists — Derek, Lena, Leo, Alex, Mark, and P — had been living in my head long before the first post went up. They came from an earlier series I'd written, 15 stories about AI systems collapsing in the wild. Those people weren't characters I invented for a series. They were people I'd met, worked with, watched navigate impossible situations. They stayed with me because their stories weren't finished. The 36 Stratagems wasn't a strategy. It was a container. I found an ancient Chinese military text that happened to map perfectly onto what I'd already seen happen in AI engineering teams across the industry. The fit was uncanny — like the text had been waiting two thousand years for someone to rewrite it in Python and production incidents. Each Stratagem too
Building Responsible AI Ecosystems for Public Sector Transformation
A private company can release a flawed AI feature, roll it back, apologise, and move on. A government agency doesn't have that option. When AI is used to determine benefits eligibility, detect fraud, or prioritise citizen services, the consequences are much bigger. People affected by those decisions usually can't opt out, can't easily challenge the outcome, and can't switch to another provider. That's exactly why responsible AI in the public sector can't be treated as a compliance exercise added at the end of a project. It has to be built into the system from the very beginning. Having worked with public sector teams adopting AI frameworks, I've seen these discussions firsthand. Many conversations start with a simple question: Should this process be automated at all? In my experience, the biggest challenge isn't a lack of good intentions. Most teams genuinely want to improve services while protecting citizens. The real problem is that the development practices, delivery timelines, and engineering patterns that work well for consumer applications often don't translate to government systems. In the public sector, the person on the other side isn't just a customer using an app. They're a citizen whose access to essential services may depend on that decision, and in most cases, there isn't an alternative provider they can turn to. That's what makes building AI for government fundamentally different. Why Public Sector AI Is a Different Problem, Not a Harder Version of the Same One It's easy to think of government AI as enterprise AI with a few extra approval steps and a lot more paperwork. In reality, the differences run much deeper. In a commercial product, an inaccurate recommendation might mean a lost sale or a frustrated customer. In government, the consequences are far more significant. An incorrect decision could delay disability support, deny someone housing assistance, or wrongly flag an individual for fraud. The level of error that might be considered acceptable
Codename One Settings Is Now a Standalone Tool
Codename One Settings used to be a screen inside the old GUI Builder jar. It edited project properties, managed accounts, opened signing workflows, monitored builds, installed extensions, and accumulated every job that did not have a better home. What is Codename One? Codename One is an open-source framework for building native iOS, Android, desktop, and web apps from a single Java or Kotlin codebase. Learn more at codenameone.com . PR #5359 replaces it with a standalone Codename One desktop application. It does fewer things, which is the point. One command, one project Run the new tool from a Codename One Maven project: mvn cn1:settings The Maven plugin resolves the com.codenameone:codenameone-settings artifact, launches it against the current project, and writes changes back to that project's codenameone_settings.properties and Maven configuration. The tool has its own release lifecycle instead of borrowing the GUI Builder's jar and version. This is the new Basic screen. It keeps the properties that belong to the source project: display name, package name, version, main class, icon, and related build choices. Build hints are searchable project data Build hints used to feel like an untyped text file with a dialog in front of it. The new editor preserves direct key-value control, but adds descriptions, known value types, filtering, and a focused editing flow. Nothing prevents you from editing the property file by hand. The Settings tool is useful when you do not remember whether the current spelling is ios.themeMode , and.themeMode , or a platform-specific signing key. It also keeps project values visible without mixing them with account state from the cloud. For example, selecting the modern native themes still produces ordinary project settings: nativeTheme = modern ios.themeMode = modern and.themeMode = modern The file remains the source of truth. The UI is an editor, not a second configuration system. Extensions keep compatibility warnings The Extensions screen
What I Learned Building a One-Photo AI Photoshoot Workflow
AI image generation demos usually optimize for one impressive output. A product has to solve a different problem: helping a real user get a repeatable, useful result. I have been building GenBlink , a workflow where a user uploads one clear adult portrait, chooses a curated visual pack, and generates 10–50 photos. Here are the product lessons that mattered more than adding another model dropdown. 1. Constrain creative direction before generation A generic prompt field creates an enormous possibility space. It also makes failures difficult to diagnose. Was the problem the source image, the requested scene, the wardrobe, the pose, or the model? Curated packs reduce that ambiguity. Each pack has a coherent photographic language: professional studio, candid city dating, golden-hour fitness, quiet luxury, retro yearbook, creator studio, and so on. Users still get variation, but the system is not inventing a new art direction for every image. 2. Treat identity preservation as a backend responsibility The public prompt should describe only what the user wants to change. It should not expose or require users to understand the system instructions used to keep the reference person recognizable. That separation has two benefits: the interface stays understandable; the backend can consistently apply the identity-preservation behavior. The user can add a small direction such as a wardrobe detail or glasses without having to rewrite the rules for face, age, hair, skin tone, and body proportions. 3. Make credit behavior transactional When one generated photo equals one credit, the backend needs more than a single integer balance. The workflow reserves credits before starting, records successful use, and returns credits for failed or canceled generations. An append-only ledger makes the result auditable and allows operational reports for purchases, reservations, successful photos, and refunds. The user-facing promise becomes simple: one successful photo uses one credit. The impleme
Building JONAM: Using Copernicus Earth Observation Data to Help Restore Lake Victoria's Fisheries
"What if satellite data could help protect the livelihoods of millions who depend on Africa's largest lake?" Our team JONAM had the privilege of participating in the Kijani Space Hackathon, where we proudly secured 3rd place while tackling Challenge 2: Sustainable Fisheries & Blue Economy. Rather than building another dashboard, we wanted to solve a real problem affecting millions of people around Lake Victoria: declining fish stocks caused by worsening water quality. Lake Victoria supports millions of people through fishing, transportation, agriculture, and tourism. However, over the years the lake has experienced: Increasing water pollution Poor water quality Frequent algal blooms Reduced fish breeding habitats Declining fish populations For fishing communities, these are not just environmental issues—they directly affect livelihoods, food security, and local economies. Our question became: Can Earth observation data help communities understand where water conditions are becoming unsuitable for fish before the problem becomes critical? Our Solution: JONAM JONAM is an AI-powered web application that combines satellite-derived environmental data with machine learning to monitor water quality and provide insights into conditions that may contribute to declining fish stocks. Instead of relying solely on manual sampling—which is expensive and only covers small areas—our platform continuously analyses satellite observations covering the entire lake. Why Copernicus? To build JONAM, we integrated the KijaniBox API, which provides access to environmental datasets from the Copernicus Programme. Copernicus is the European Union's Earth observation programme. It uses a constellation of Sentinel satellites together with in-situ observations to monitor Earth's atmosphere, land, and oceans. For our project, we focused specifically on live water telemetry variables available through the KijaniBox platform. Water Temperature Satellites measure the thermal radiation emitted from th
Kubernetes Architecture: What Actually Happens Between `kubectl apply` and a Running Pod
Most of us run kubectl apply -f dozens of times a day without thinking about the machinery it sets in motion. But when something breaks, a Pod stuck in Pending , a Service that won't route, a Deployment that never converges, understanding that machinery is the difference between guessing and debugging. In this article, I'll map the end-to-end flow onto the actual Kubernetes architecture, so you can see not just what happens, but which component is responsible at every step. The Architecture at a Glance Kubernetes is split into two planes: Control plane: the brain. It makes decisions: what should exist, where it should run, and whether reality matches intent. Worker nodes: the muscle. They run your actual workloads and report back. Here's the full picture, with the request flow numbered: (1) apply YAML → API Server (5) Kubelet asks runtime to start container (2) spec persisted in etcd (6) runtime pulls image & runs it (3) controller reconciles spec (7) CNI assigns Pod IP, joins network (4) scheduler assigns a node (8) Kubelet reports status back Now let's walk through the flow, component by component. Step 1: The Cluster Exists Before Your App Does A Kubernetes cluster is the combination of a control plane and a set of worker nodes. The control plane components (API Server, etcd, Controller Manager, Scheduler) can run on dedicated nodes or, in managed offerings like RKE2/EKS/GKE/AKS, be entirely abstracted away from you. Either way, they're always there, always watching. Step 2: You Declare Intent in YAML You don't tell Kubernetes how to run your app, you describe what you want. Typically that's a set of manifests: Deployment: how many replicas, which image, update strategy Service: a stable virtual endpoint in front of ephemeral Pods ConfigMap/Secret: configuration decoupled from the image This declarative model is the foundation of everything that follows. Kubernetes' whole job is to close the gap between your declared state and reality. Step 3: kubectl apply -f Hi
I implemented the YOLO26n model inference from scratch using ARM64 Assembly Language (No framework) [P]
This was my Bachelor's Final Project: implementing YOLO26n inference completely from scratch using ARM64 Assembly Language and C, without relying on existing inference frameworks. The goal was to understand how modern neural network inference engines work at a low level and explore optimization techniques for faster and more efficient edge AI execution on Raspberry Pi 4. The implementation includes: * ARM64 Assembly Language + C inference engine * ARM NEON SIMD optimization * Winograd convolution * Optimized GEMM kernels * Cache-aware tiling * Custom ARM64 micro-kernels * Operator fusion * Attention mechanism * YOLO26 components: Conv, C3K2, SPPF, C2PSA, PSA, BottleNeck, and Detect I extracted the YOLO26n model parameters and redesigned the memory layout into a custom binary format optimized for the inference pipeline. The implementation produces correct object detection results, but the performance improvement was lower than I initially expected. I would appreciate feedback and suggestions from anyone about: * CNN inference optimization * ARM NEON/vectorization * Memory layout and cache optimization * Low-level neural network acceleration Repository: https://github.com/mohammad-ghaderi/YOLO26 Thanks for any feedback or suggestions. submitted by /u/Forward_Confusion902 [link] [留言]
I Built CheckForge: An Uptime Monitoring SaaS with Fastify, Cloudflare Workers & Supabase
Over the past few months, I challenged myself to build a complete uptime monitoring platform from scratch. The goal wasn't to build another CRUD application—it was to understand what it actually takes to design, build, and deploy a production-ready SaaS. The result is CheckForge, an uptime monitoring platform that monitors websites, APIs, and SSL certificates while sending alerts through Email, Slack, Discord, and Webhooks. Why I built it Most portfolio projects stop after authentication and dashboards. I wanted to build something that solves real backend engineering problems, including: Background workers Scheduled health checks Incident tracking SSL certificate validation Alert delivery Public status pages SVG uptime badges Production deployment Building these features taught me far more than another tutorial project. Tech Stack Fastify Node.js React Supabase (PostgreSQL) Cloudflare Workers Redis Docker Features HTTP Monitoring SSL Certificate Monitoring Expected Status Code Validation Keyword Monitoring Email Alerts Slack Alerts Discord Alerts Webhook Notifications Incident Timeline Response Time History Public Status Pages SVG Uptime Badges How it works A background worker schedules health checks at regular intervals. Each check is executed through a Cloudflare Worker, which validates: HTTP status Response time SSL certificate Expected content The results are stored in Supabase. If a failure is detected, CheckForge automatically creates an incident and sends notifications through the configured channels. ** What I learned** Building CheckForge forced me to solve problems I hadn't faced before, including: Reliable background scheduling Timeout handling Preventing duplicate alerts Incident lifecycle management SVG badge generation SSL certificate validation Cloudflare Worker integration Production deployment Building an end-to-end SaaS was a completely different experience from building standalone APIs. next set of features : Multi-location monitoring Team workspa
JavaScript Type Coercion — Output-Based Questions ([] + [], NaN === NaN & Friends)
After hoisting, interviewers love dropping one-liners like: console . log ([] + []); console . log ([] + {}); console . log ({} + []); console . log ( NaN === NaN ); …and watching whether you guess, freeze, or calmly walk the coercion rules. This post is only output-based type coercion / equality questions. Try each snippet yourself first. Answers are hidden — click Show answer when you’re ready. TL;DR — what interviewers are testing Concept Trap + with objects/arrays Often becomes string concat , not math [] / {} stringification [] → "" , {} → "[object Object]" Bare {} + [] Parser may treat {} as a block , not an object NaN === NaN Always false — use Number.isNaN / Object.is == vs === == coerces; === does not Falsy vs “empty-looking” [] and {} are truthy typeof null Infamous "object" lie One-line mental model + asks both sides to become primitives. If either side is a string (after that), you get concatenation . Otherwise you get number math — and weird values become NaN . Warm-up: how + really decides When JS hits a + b , it roughly does: 1) Convert both sides to primitives (ToPrimitive) 2) If either result is a string → String(a) + String(b) // concat 3) Else → Number(a) + Number(b) // math For plain objects / arrays, ToPrimitive usually ends up calling .toString() : Value String(value) Number(value) [] "" 0 [1, 2] "1,2" NaN {} "[object Object]" NaN null "null" 0 undefined "undefined" NaN true "true" 1 false "false" 0 That’s enough to solve most [] + {} style questions. How to use this post Read the snippet Say the output out loud (or write it down) Only then open Show answer Read the step-by-step — don’t only memorize the final print Q1 — Classic [] + [] console . log ([] + []); Show answer Output "" (empty string — looks like a blank line) Step by step + wants primitives from both arrays. String([]) → "" (empty array joins to empty string). "" + "" → "" . Interview tip: People often say 0 or [] . Wrong. Empty array stringifies to "" , so you get string concat o
The Secret Debugging Tool You're Not Using
We’ve all been there: It’s 11 PM, the bug is still alive, your tests are failing, and you’re about to throw your laptop out the window. We usually view debugging as a pure logic problem: stack traces, breakpoints, and logs. But Emotional Intelligence (EQ) is often the real reason you fix a bug in 20 minutes instead of 3 hours. Here is how EQ actually applies to your daily workflow: 1. Spotting Tunnel Vision Before It Wastes Your Time Frustration causes confirmation bias. You start forcing your initial hypothesis ( "It MUST be the cache!" ) even when the logs say otherwise. EQ Move: Recognize physical signs like tight shoulders or rage-typing. Take a 5-minute bio-break. Stepping away resets your mental stack, which is usually faster than another hour of blind grinding. 2. Separating code.hasBug() from dev.isBad() A stubborn bug easily triggers imposter syndrome: "A senior dev would have solved this already." That inner voice just adds noise to your debugging stack. EQ Move: Reframe the problem objectively: ❌ "I don't know what I'm doing." (Emotion) ✅ "This async function isn't returning the expected payload." (Fact) Debug the code, not your self-worth. 3. Handling Spicy Bug Reports A ticket comes in: "This is completely broken, who let this ship?!" Your gut reaction might be to get defensive or send a passive-aggressive response. EQ Move: Filter out the noise. Translate panic or bad phrasing into actionable facts. Reply calmly to de-escalate, pull the missing repro steps, and ship the fix without unnecessary Slack drama. 4. Rubber Ducking and Asking for Help (Ego-Free) How many times have you fixed a bug just by explaining it out loud to a peer? Sitting in silent frustration for hours doesn't make you a hero; it just delays the feature. EQ Move: Treat asking for help as an optimization tactic. Send a concise message with context: > "Hey, expecting X, getting Y. Already tried A and B. Got 5 mins to glance at this snippet?" 5. Staying Cool During Prod Outages Panicked