InfoQ
Inside Target’s LLM-Based System for Semantic Matching in Marketing Forecast Pipelines
Target built a generative AI system to improve marketing campaign forecasting by retrieving and ranking similar historical campaigns. Using embeddings, vector search, and LLM ranking, it replaces rule-based workflows. Evaluation shows 75% top-1 and 100% top-3 coverage. The system reduces manual effort, improves consistency, and uses feedback loops to refine retrieval using campaign outcomes. By Leela Kumili
Leela Kumili
2026-06-29 22:26
👁 9
查看原文 →
HackerNews
I Don't Maintain My Homelab
surprisetalk
2026-06-29 22:15
👁 3
查看原文 →
TechCrunch
Robot hand company settles Tesla trade secret suit and announces $11M raise
The startup, Proception, is taking a unique approach to collecting training data to tackle one of the hardest problems in robotics: hands.
Sean O'Kane
2026-06-29 22:00
👁 8
查看原文 →
The Verge AI
Let him cook: How Weber Blackstone CEO Roger Dahle went from upstart to the biggest name in grilling
It’s time for our annual Fourth of July grill episode here at Decoder. This is when we invite the CEOs of outdoor cooking companies onto the show to explain just how their businesses kind of look like every other business. And this is a very special edition. Today I’m talking to Roger Dahle, the CEO […]
Nilay Patel
2026-06-29 22:00
👁 8
查看原文 →
TechCrunch
Pocket raises $11M in bet on rising demand for AI note-taking devices
Pocket sells a $129 credit card-shaped puck, which sticks to the back of your phone, and promises unlimited recordings, transcriptions, and to-do items.
Ivan Mehta
2026-06-29 21:16
👁 8
查看原文 →
HackerNews
Tidal AI Policy
hn8726
2026-06-29 21:09
👁 5
查看原文 →
Dev.to
Layer 2: A Engenharia Secreta Que Destrava a Velocidade do Ethereum [PT-BR]
Quando comecei a trabalhar com aplicações descentralizadas há mais de uma década, lembro bem da frustração de pagar US$ 50 em taxas de transação para mover alguns tokens na rede Ethereum durante um pico de congestionamento. Era um problema técnico que ameaçava inviabilizar todo o ecossistema. Hoje, observo com entusiasmo profissional como as soluções de Layer 2 transformaram radicalmente esse cenário, abrindo portas para casos de uso que antes eram economicamente impraticáveis — especialmente aqui no Brasil, onde a tokenização de ativos e os pagamentos em stablecoins crescem em ritmo acelerado. O problema fundamental: o trilema da escalabilidade Para entender por que as soluções de segunda camada são tão importantes, precisamos compreender o trilema da blockchain proposto por Vitalik Buterin. Uma rede precisa equilibrar três pilares: descentralização, segurança e escalabilidade. O Ethereum, em sua arquitetura original, priorizou os dois primeiros, processando apenas cerca de 15 a 30 transações por segundo (TPS) na camada base. Para se ter dimensão, redes de pagamento tradicionais como a Visa processam milhares de transações por segundo. Quando o DeFi explodiu em 2020 e 2021, e novamente com o boom dos NFTs, a rede simplesmente não dava conta da demanda. As taxas de gas dispararam, e usuários comuns foram literalmente expulsos pelo custo. Em meus projetos de consultoria, atendi empresas brasileiras que desistiram de iniciativas Web3 justamente porque os custos operacionais inviabilizavam o modelo de negócio. A pergunta que sempre me faziam era: "Como cobrar R$ 5 de um cliente se a taxa da transação custa R$ 30?". A resposta estava — e está — nas camadas de segunda geração. Como funcionam as soluções de Layer 2 O conceito central das soluções de Layer 2 é elegante: em vez de processar todas as transações diretamente na blockchain principal (Layer 1), executamos a maior parte do processamento "fora da cadeia" e depois enviamos apenas uma prova compacta de volta para o
André Dias Moreira Prol
2026-06-29 21:01
👁 9
查看原文 →
Dev.to
The LLM Should Never Do the Math
A CFO will not act on a number an LLM eyeballed. They will not act on a number the model "estimated" by reasoning over a usage dump. And they should not — because the moment a language model emits a dollar figure it computed itself, that figure is a guess wearing the costume of a fact. This is the design constraint behind databricks-cost-leak-hunter , the pilot skill of the databricks-pack v2 rebuild shipped in the claude-code-plugins marketplace ( PR #906 ). Given a live, authenticated Databricks workspace, it surfaces real cost leaks across four named categories, ranks them by monthly dollar impact, and emits a report a finance reader can act on. The marketplace validator graded it B (88/100, zero errors). The SKILL.md is 329 lines. The single most important thing in it is a rule the model is structurally prevented from breaking: the LLM never does the dollar arithmetic. Why not just let the agent read the bill and summarize it? Because that is exactly how you ship a confidently wrong cost report. Hand a model a few thousand rows of system.billing.usage and ask it for the top cost leaks, and it will give you a fluent answer. It will add DBUs. It will multiply by a price it half-remembers. It will round. Every one of those steps is a place the model can be plausibly, invisibly wrong — and the output reads identically whether the math is right or hallucinated. The failure mode of an LLM doing FinOps is not a crash. It is a clean, well-formatted, wrong number. The fix is architectural, not prompt-engineering. The model is allowed to decide what to look for and how to explain it . It is never allowed to be the calculator. The dollar primitive: confirmed, never estimated Every confirmed figure comes from the customer's own billing tables — system.billing.usage joined to system.billing.list_prices . Not a model estimate. Not a public price list. The number Databricks actually billed. That join is defined once, as a priced CTE, and reused by every category query. Usage i
Jeremy Longshore
2026-06-29 21:00
👁 8
查看原文 →
Dev.to
What Actually Happens in the First Call With a US Team After Your CV Passes
You finally get the response. The CV cleared whatever filter it was up against, and now there is a calendar invite for a thirty or forty five minute call. Most developers treat this as the technical screen and prepare accordingly. They load up on system design questions, leetcode style problems, or deep dives into the stack listed in the job post. What actually happens in that first call is often lighter on code and heavier on whether the person on the other side can picture working with you week after week. The engineering lead or hiring manager is trying to answer a few practical questions the CV could not fully settle. Can this person explain their decisions without needing constant context? Do they push back on unclear requirements in a way that moves the conversation forward instead of creating friction? Do they already understand how remote contractor work tends to flow, or will every interaction need extra translation? The candidates who lose ground here rarely fail on raw technical ability. They lose it on rhythm and assumptions. Some over-prepare the technical side and under-prepare the part where they need to show how they handle ambiguity. Others treat every question as an interview question that demands a polished answer, when what the lead wanted was a working conversation. The call ends with a quiet sense that this person will need more hand-holding than the role allows. Timezone and async signals are another place people slip. When a candidate spends the call reassuring the other person that they can work US hours or that they are always available for meetings, it often lands as uncertainty. The reassurance backfires. Teams that hire contractors remotely have already accepted some timezone spread. What they want to hear is how you have made async work in the past, what you leave behind when you log off, and how you keep momentum without daily syncs. The calls that move forward feel like two people working a problem together. The candidate is not sitti
Jerry Kasem
2026-06-29 21:00
👁 9
查看原文 →
Dev.to
Popular Tags: How I Used Browser Storage to Efficiently Manage User Data
As a solo developer working out of an RV, I've learned to appreciate the importance of staying organized, especially when it comes to managing user data in my Chrome extension, Tab Reminder. One of the key challenges I faced was efficiently storing and retrieving user-scheduled tabs, which led me to explore the world of popular tags in browser storage. During the development of Tab Reminder, I realized that using a simple key-value pair system wasn't enough to manage the complexity of user data. I needed a way to categorize and prioritize scheduled tabs, which is where popular tags came into play. By utilizing the localStorage API, I was able to store user-defined tags and associate them with specific tabs, making it easier for users to manage their scheduled tabs. One technical insight I gained from this experience was the importance of using a robust data structure to store user data. In my case, I used a combination of arrays and objects to store tag information, which allowed me to efficiently query and update user data. For example, when a user schedules a new tab, I use the following code to store the tag information: // Store tag information in localStorage const tags = JSON . parse ( localStorage . getItem ( ' tags ' )) || {}; tags [ tabId ] = tagName ; localStorage . setItem ( ' tags ' , JSON . stringify ( tags )); One lesson I learned from this experience is that even small, useful tools like Tab Reminder require careful consideration of data management. By leveraging popular tags and a robust data structure, I was able to create a seamless user experience that allows users to efficiently manage their scheduled tabs. If you're interested in trying out Tab Reminder, you can check it out at https://go.sg1-labs.us/tab-reminder .
Scot Gardner
2026-06-29 21:00
👁 12
查看原文 →
Dev.to
Why I Built a JSON Toolkit That Never Touches a Server
Most of the time, when I need to inspect a complex JSON payload, I copy the raw string from my terminal or network tab, open a browser tab, and paste it into one of the many "JSON Formatter" sites that clutter the first page of Google. It’s a ritual we all do. We paste, we click "Format," and we wait. For small payloads, this is fine. But when you are debugging a massive API response, a deeply nested configuration file, or a large dataset, that ritual breaks down. The browser freezes. The site asks you to upload a file. Worse, many of these tools send your data to a server for processing. If that JSON contains API keys, user PII, or internal schema definitions, you are essentially trusting a third-party service with your proprietary data every time you hit "pretty print." I got tired of the latency and the privacy overhead. So I built JSONForge . The core premise is simple: do everything locally. No server-side processing. No file uploads. No network requests for the core logic. Everything happens in your browser, powered by WebGPU for heavy lifting and a small model that runs in your browser for schema inference. The WebGPU Advantage JSON parsing is computationally cheap for a modern CPU, but rendering and diffing large structures is not. When you have a 5MB JSON file, the DOM manipulation required to display it as a tree view can cause significant jank. By offloading the parsing and formatting logic to the GPU via WebGPU, JSONForge handles massive payloads without blocking the main thread. You can open a file, click "Pretty Print," and see the result instantly, even if the file is hundreds of kilobytes or larger. The UI remains responsive because the heavy computation is parallelized on the graphics card. This also means the tool works offline. If you are on a plane, or your internet drops in the middle of a debugging session, your toolkit doesn’t vanish. You can continue to diff, validate, and format without interruption. Schema Generation Without the Server Roun
AI Predictions Dev
2026-06-29 21:00
👁 5
查看原文 →
Dev.to
The 3-line discipline
When I write code in unfamiliar territory, I write three lines, then I run it. Then I write three more lines, and I run it again. I've been doing this for twenty-four years. It's the most specific habit I have. I almost didn't write this article, because the habit feels too small to be worth describing — but then I noticed that it's the part of my way of working that I can never seem to explain to someone in real time. It needs writing down. Three principles The discipline rests on three things I believe about writing code. They're not deep. They've just stayed with me. 1. Trust nothing but your own code. If you can't trust the code you wrote yourself, what can you trust? Not a library, not a vendor's documentation, not your own assumption from yesterday. The only thing in the system whose behavior you can fully verify is the code you just typed, by running it. 2. Write in code, not in language. If you're describing what the code should do in Japanese or English, you're spending the same time you could have spent writing the code itself. By the time the code runs, the description is already done — by the code, in a more precise form than any language could give it. 3. Make three lines complete. The three lines you just wrote should be complete. Error handling included. Validation included. Logging included. Not "I'll add validation later." Not "I'll wrap it in a try-catch later." Three lines, complete, then run. (There's a small exception to this. Sometimes you do want to ignore every error and move on — for instance, when you're trying to understand whether the happy path works at all before you care about anything else. That's a different mode, used deliberately. It's not the same as "I'll handle errors later.") Why three lines Three lines is roughly the unit of thought I can hold completely. Five lines, and I start guessing what the third line did. Ten lines, and I'm reading the code as if it were someone else's. Three lines is the size that stays mine. When thre
Hideki Mori
2026-06-29 21:00
👁 7
查看原文 →
Dev.to
How to Turn Any Bootcamp Into Real Learning
We’ve all been there. You scroll through your feeds, see a flashy ad promising a high-paying tech job in 3 months, and think, “This is it. This is my golden ticket.” You buy the bootcamp, spend sleepless nights watching lectures, stack up a dozen colorful certificates on your LinkedIn, and then... nothing. No callbacks. No interviews. Just a lingering feeling of frustration and the nagging thought: Are bootcamps and online courses just a massive scam? I used to think so. When I was trying to break into tech, I bought courses like crazy. I collected certificates like they were Pokémon cards. Yet, my first real developer job didn't show up until five or six years later. And let me tell you a secret: it wasn’t the certificates that got me the job. It was because I finally figured out how to actually learn. The truth is, almost every bootcamp or course—even the mediocre ones—has something valuable to offer. The problem isn’t always the material; it’s how we interact with it. If you feel stuck in "tutorial hell," here is a positive, practical guide to changing your approach, reclaiming your time, and turning any learning material into real, career-changing expertise. 1. Curate Your Sources (Choose Your Battles Wisely) Before we talk about how to study, we need to talk about what to study. Even though you can extract value from almost any course, your time is highly valuable. Don't waste it on low-quality content. When choosing a course or bootcamp, look for these four green flags: The Instructor Has Real-World Mileage: Is the instructor a practitioner, or are they just reading the official documentation back to you? If they don't work with the technology daily, they won’t be able to explain the nuances, edge cases, and real-world trade-offs. A Project-First Curriculum: Avoid courses that are just endless lectures of "theory first, practice never." Look for curriculums that build actual applications. Good Pacing and Editing: We've all watched those tutorials where the ins
Guilherme Galanti
2026-06-29 21:00
👁 4
查看原文 →
Dev.to
How to Turn Any Bootcamp Into Real Learning
We’ve all been there. You scroll through your feeds, see a flashy ad promising a high-paying tech job in 3 months, and think, “This is it. This is my golden ticket.” You buy the bootcamp, spend sleepless nights watching lectures, stack up a dozen colorful certificates on your LinkedIn, and then... nothing. No callbacks. No interviews. Just a lingering feeling of frustration and the nagging thought: Are bootcamps and online courses just a massive scam? I used to think so. When I was trying to break into tech, I bought courses like crazy. I collected certificates like they were Pokémon cards. Yet, my first real developer job didn't show up until five or six years later. And let me tell you a secret: it wasn’t the certificates that got me the job. It was because I finally figured out how to actually learn. The truth is, almost every bootcamp or course—even the mediocre ones—has something valuable to offer. The problem isn’t always the material; it’s how we interact with it. If you feel stuck in "tutorial hell," here is a positive, practical guide to changing your approach, reclaiming your time, and turning any learning material into real, career-changing expertise. 1. Curate Your Sources (Choose Your Battles Wisely) Before we talk about how to study, we need to talk about what to study. Even though you can extract value from almost any course, your time is highly valuable. Don't waste it on low-quality content. When choosing a course or bootcamp, look for these four green flags: The Instructor Has Real-World Mileage: Is the instructor a practitioner, or are they just reading the official documentation back to you? If they don't work with the technology daily, they won’t be able to explain the nuances, edge cases, and real-world trade-offs. A Project-First Curriculum: Avoid courses that are just endless lectures of "theory first, practice never." Look for curriculums that build actual applications. Good Pacing and Editing: We've all watched those tutorials where the ins
Guilherme Galanti
2026-06-29 21:00
👁 4
查看原文 →
TechCrunch
Flipper Device’s new Busy Bar is a customizable display for productivity
Flipper Device's new Busy Bar will retail for $249.
Ivan Mehta
2026-06-29 21:00
👁 6
查看原文 →
TechCrunch
Omen AI’s plan to optimize data centers is all wet
Omen AI raised a $31 million Series A to monitor chip coolant and stop bacterial outbreaks in data centers.
Tim Fernholz
2026-06-29 21:00
👁 9
查看原文 →
The Verge AI
The Flipper Zero creators’ Busy Bar productivity display will go on sale next month
First announced over a year ago in April 2025, the Busy Bar will be available for purchase starting on July 14th when the device also starts shipping. Created by the same team behind the Flipper Zero wireless multitool, the Busy Bar is instead described as a "productivity multitool" that relies on a pixelated LED display […]
Andrew Liszewski
2026-06-29 21:00
👁 8
查看原文 →
Dev.to
Building a Tool Engine with Spring AI — How We Gave Jarvis the Ability to Act in the World
From knowing to doing — Phase 4 of the Jarvis AI Platform The Problem with Knowledge-Only AI After Phase 3, Jarvis could remember you across sessions and search your documents. But it still had a fundamental limitation. You: "What is the weather in Kathmandu right now?" Jarvis: "I don't have access to real-time weather data." You: "What is 2847 × 391?" Jarvis: "The answer is approximately 1.1 million." ← WRONG An AI that only knows things from training data is useful. An AI that can do things is transformative. That is what Phase 4 built. What Is a Tool Engine? A tool engine gives the AI model the ability to call real functions during a conversation. The flow looks like this: User: "What is the weather in Kathmandu?" ↓ AI Model ↓ "I should call WeatherTool" ↓ WeatherTool.getWeather("Kathmandu") ↓ "22°C, Clear sky, Humidity: 45%" ↓ AI Model ↓ "The weather in Kathmandu is 22°C and clear." The key insight: the AI decides when to call a tool and with what input . We don't hardcode "if user asks about weather, call WeatherTool." The model figures that out from the tool descriptions we provide. The Architecture Decision The most important architectural decision in Phase 4 was the package structure. ai . jarvis . tools / ├── JarvisTool . java ← marker interface ( root ) ├── ToolRegistry . java ← manages all tools ( root ) ├── builtin / ← built - in tools │ ├── DateTimeTool . java │ ├── CalculatorTool . java │ ├── WeatherTool . java │ └── WebSearchTool . java └── mcp / ← MCP protocol └── McpServerConfig . java Why not put tools inside ai/ ? The ai/ package handles HOW Jarvis talks to AI models. Tools define WHAT Jarvis can do. These are fundamentally different responsibilities. Mixing them would mean every new tool requires changes to AI infrastructure code. Keeping them, separate means adding a new tool requires exactly one file. The JarvisTool Pattern Every tool in Jarvis implements one interface. /** * Marker interface for all Jarvis tools. * Spring auto-discovers all @C
Sujan Lamichhane
2026-06-29 20:54
👁 8
查看原文 →
Dev.to
CKA Scenario 5 - Force nginx to TLS 1.3 with a ConfigMap edit + rolling restart (CKA Workloads)
Force nginx to TLS 1.3 An nginx server is accepting an old TLS version, and the exam wants it locked to TLS one point three. The config lives in a ConfigMap. The catch is that editing the ConfigMap alone changes nothing. Let's do it the way the CKA expects. 🎥 Watch the video: https://www.youtube.com/watch?v=rx-77YBw99w This is a CKA Workloads & Scheduling walkthrough. Every command below is real output from a live cluster, and you can reproduce the whole thing yourself (scripts at the end). The scenario An nginx-static Deployment serves HTTPS, and its server config comes from a ConfigMap named nginx-config. Right now it allows both TLS one point two and one point three. Your task is to allow only TLS one point three, then make nginx actually use the change, so that a TLS one point two request fails. nginx-static serves HTTPS from the nginx-config ConfigMap It currently allows TLS 1.2 AND 1.3 Restrict ssl_protocols to TLS 1.3 only A TLS 1.2 request to the Service must then fail How nginx, ConfigMaps, and rolling restarts fit together Two ideas drive this. First, ssl_protocols is an allow list; leave only TLSv1.3 and nginx rejects any older handshake. Second, a ConfigMap mounted into a pod updates the file on disk, but nginx only reads ssl_protocols when it starts. So you must roll the Deployment, with kubectl rollout restart, for the new value to take effect. Inspect the current state Start by seeing what is running and what the config says. The nginx-static Deployment, its Service on port four forty three, and the nginx-config ConfigMap are all here. Grep the rendered ConfigMap for the ssl_protocols line: it lists TLSv1.2 and TLSv1.3, so old clients still get in. $ kubectl -n nginx-static get deploy,svc,configmap NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/nginx-static 1/1 1 1 17h deployment.apps/tester 1/1 1 1 17h NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/nginx-static ClusterIP 10.96.13.162 <none> 443/TCP 17h NAME DATA AGE configmap/kube-root-ca.
The Cyber Sidekick
2026-06-29 20:53
👁 7
查看原文 →
InfoQ
Presentation: Million PDFs: Building a Modern Document Infrastructure with Rust and Typst
Erik Steiger discusses the operational pain of legacy PDF generation in regulated banking and manufacturing. He explains how transitioning from resource-heavy engines like Puppeteer and LaTeX to a serverless Rust architecture powered by Typst can drop render latencies below 2ms. He shares how applying Git and Docker concepts to template registries ensures ironclad compliance and rapid debugging. By Erik Steiger
Erik Steiger
2026-06-29 20:35
👁 12
查看原文 →