If you use Google, you’re training its AI. Here’s how to opt out.
PSA: A change to Google's privacy settings let it train its AI on more of your data. Here's how to opt out.
找到 3700 篇相关文章
PSA: A change to Google's privacy settings let it train its AI on more of your data. Here's how to opt out.
Anthropic accused of spying on users; engineer says “experiment” is over.
Move affects ~20% of the gaming division, which will refocus on its biggest franchises.
TL;DR Tech has taught me many things over the years. It taught me how to learn new technologies, build projects, apply for opportunities, and keep growing. What it didn't teach me was something that turned out to be just as important: how to take care of myself while doing all of those things. For a long time, I believed I would slow down later. Later, when life became less busy. Later, after the next project. Later, after the next opportunity. The problem was that "later" never seemed to arrive. It took an unexpected pause in my own life to realize that building a successful career means very little if we forget to take care of the person trying to build it. Looking back, I don't see that experience only as a difficult chapter. It changed the way I think about success, growth, and what it means to build a career that's sustainable. Today, I still love learning, building, writing, and chasing opportunities. None of that has changed. What has changed is the realization that taking care of myself isn't something separate from my career. It's one of the reasons I'll be able to keep building it for years to come. Along the way, I also realized that many of the things that truly support us are easy to overlook. Rest, movement, nourishing ourselves well, meaningful relationships, and simply checking in on the people around us often receive far less attention than the next framework, project, or milestone, even though they make everything else possible. More than anything, I wanted to write this because I care deeply about this community. I hope none of us have to wait until life forces us to slow down before remembering to take care of ourselves. I hope we build careers we're proud of, but I hope we also build lives we're able to enjoy. This isn't an article about productivity or health advice. It's simply a reflection on something I wish I had understood earlier. Your career matters. So does the person building it. I'd also love to hear your story. Has there been a momen
I'm launching SmartTaxCalc.in on Product Hunt on Tuesday, 14 July 2026 . It's a 38-tool Blazor WebAssembly tax + finance calculator I've written about here before ( the SEO/schema saga , and dropping mobile LCP from 6-8s to under 2s ). The Product Hunt launch algorithm heavily rewards products that arrive with a real coming-soon follower base — day-of upvotes correlate strongly with pre-launch "Notify me" clicks. My PH page started with 1 follower . I had 9 days to get to 50+. The obvious answer: post on LinkedIn, ask friends, DM your network. All of that has ceilings (you can only ask a favor once). The non-obvious answer that has no ceiling: convert your own organic search traffic into PH followers automatically. This is the ~100 lines of Blazor code that does that, plus the design decisions I made along the way. It's also self-cleaning — after the launch date, the banner disappears with no manual work required. Steal the pattern for your own launch. The problem SmartTaxCalc gets modest but real organic traffic — mostly from Google Search Console impressions on tax-season queries. That traffic is the warmest possible audience for a PH launch (they already found the site, they're in the target demo). But how do you route them to a PH page without: Disrupting the tax content (they came for a tax calculator, not a marketing pitch) Cannibalizing the existing tax-season banner (which drives users to /tax-calendar/ — a real retention lever) Leaving code debt after 14 July (a dead PH banner still on the site in September) Losing the dismiss preference across page navigations (SPA reality — no page refresh) Those constraints ruled out a modal, a full-width interrupt, and a "hardcoded remove after launch" approach. The design Slim horizontal bar at the top of every page. Sits ABOVE the existing tax-season banner. PH-brand orange, different from the tax-season banner's yellow/red so both are visually distinguishable when stacked. Dismissible per-user via localStorage . Auto
Sometimes races finish behind a safety car, but it's not always satisfying.
The hacking operations disclosed in a Canadian spy agency's annual report underscores some pressing national security threats facing the country and its top allies.
Netflix engineers introduced dynamic partition splitting for Cassandra to address wide partitions in time series workloads. The metadata-driven approach detects oversized partitions, splits them smaller units, and routes reads across child partitions. Netflix reported lower read latency from seconds to milliseconds, reduced timeouts, and improved cluster stability while maintaining transparency. By Leela Kumili
Station F, the Paris-based startup hub founded by French billionaire Xavier Niel in 2017, is gearing up for a new edition of its selective acceleration F/ai program that will cement its role as a stepping stone for AI startups.
The story behind why we built a WhatsApp CRM that actually understands how WhatsApp works. There's one scene I can't get out of my head. A friend's desk. She runs an online store. On it sat three phones. Not for show. One for customer service, one for the admin, one for the number that was "just for resellers." All three buzzing, nonstop. And there she was, eleven at night, still replying to messages one by one, sighing: "It's the same questions over and over. But if I don't reply, they'll go to the competitor." That's not a rare case. That's the normal state of things for thousands of businesses. We all know one thing CRM software rarely admits: customers here don't live in email. They live on WhatsApp. They ask about prices on WhatsApp, complain on WhatsApp, close deals on WhatsApp, even ask for warranty support on WhatsApp. But the teams handling all of it? They use personal phones. No records, no context, no way to help each other when one person is drowning. Hallo Zetta was born out of that. What Frustrated Us About the Existing Tools Before building our own, of course we looked. Surely someone had solved a problem this simple? Turns out what existed fell into two camps, and both were maddening. Camp one: dumb auto-reply bots. Type "hi," get a template. But the moment a customer asks something slightly off-script, the bot freezes. It actually makes customers angrier, because it feels like talking to a wall. Camp two: bloated CRMs. Loaded with features, dashboards full of charts, but WhatsApp is bolted on as one small tab. As if WhatsApp were an afterthought, not the main battlefield. For most of our customers, WhatsApp is the battlefield. Nothing fit. So we decided to build it ourselves. The Hard Part Isn't "AI Can Reply to Messages" Let me be honest about this. Bolting AI onto WhatsApp is easy. Anyone can wire GPT to a webhook and ship it overnight. If that were the whole goal, this article wouldn't need to exist. The hard part, the thing that made us rethink
I recently worked through the classic Word Break problem in an interview. My approach was solid from the start — recursion with memoization, a breakable helper that tests every prefix and recurses on the rest. The logic was right. What slowed me down was everything around the logic. Here's the solution I landed on: class Solution { public: bool wordBreak ( string s , vector < string >& wordDict ) { unordered_set < string > dict ( wordDict . begin (), wordDict . end ()); unordered_map < size_t , bool > memo ; return breakable ( s , dict , memo , 0 ); // missed: breakable was a free function defined below -> "not declared in this scope" } private : // missed: had int here, compared against s.length() (size_t) -> sign-compare warnings bool breakable ( const string & s , const unordered_set < string >& dict , unordered_map < size_t , bool >& memo , size_t starting ) { if ( starting == s . length ()) return true ; if ( memo . count ( starting )) return memo [ starting ]; for ( size_t e = starting + 1 ; e <= s . length (); e ++ ) { string word = s . substr ( starting , e - starting ); // missed: shadowed an outer `word`, and had substr(starting, e) instead of e - starting if ( dict . count ( word ) && breakable ( s , dict , memo , e )) { memo [ starting ] = true ; // missed: wrote == instead of =, so success was never cached return true ; } } memo [ starting ] = false ; // missed: this line, so failures were never cached and memoization broke down return false ; } }; The real lesson Most of what tripped me up was syntax and scope — a function declared in the wrong place, signed/unsigned mismatches, a shadowed variable, == where I meant = . None of these were about the algorithm. But because I spent my time chasing them, I had less room to focus on the one thing that actually matters in this problem: the logical correctness of the memoization. The takeaway I'm keeping: get the syntax and scoping clean early, so the debugging budget goes toward logic, not typos. That's the
Todo dev brasileiro que já precisou consultar CNPJ conhece o dilema: ou você usa uma API que faz proxy da Receita (3 a 10 segundos por consulta, quando não cai), ou baixa o dump de dados abertos e monta a própria base — e descobre que "baixar um CSV" era a parte fácil. Eu montei a própria base. Este post é o diário honesto do que funcionou, do que quebrou e dos números reais — 217 milhões de linhas servidas em ~10ms de p50 dentro do datacenter, num Postgres de 1 vCPU. A arquitetura em uma frase Não consulte a Receita em tempo real. Ingira o dump mensal e sirva da sua infra. O resto é decorrência. Receita (dump mensal, ~6GB zip) ──▶ ingestão Go (COPY) ──▶ Postgres ──▶ API (chi) CGU (CEIS/CNEP, zip diário) ──▶ job diário ──┘ O dump da Receita: as pegadinhas que ninguém documenta O layout oficial existe, mas o que quebra parser de verdade é o que está fora dele: Encoding latin1 (ISO-8859-1) — acento vira lixo se você ler como UTF-8. Em Go: charmap.ISO8859_1.NewDecoder() num transform.Reader streaming. Decimal com vírgula ( "1000000,00" ) e datas YYYYMMDD onde 0 e 00000000 significam nulo. CNPJ quebrado em 3 colunas (básico 8 + ordem 4 + DV 2). A chave de junção entre empresas, estabelecimentos e sócios é o básico — errar isso custa um dia. As partições 0–9 não se alinham entre arquivos. O estabelecimento da partição 3 pode ser de uma empresa da partição 7. Foreign key rígida entre as tabelas = COPY quebrando no meio da carga. A solução: sem FK; a integridade vem da fonte. Bytes NUL ( 0x00 ) no meio dos dados. O Postgres rejeita NUL em text . Um strings.ReplaceAll(s, "\x00", "") no parser economizou três recargas. Desde jan/2026 o repositório é um Nextcloud do SERPRO+ com WebDAV público — dá pra listar meses com PROPFIND e baixar com o token do share como usuário. Adeus, scraping. COPY ou morte A diferença entre INSERT em lote e o protocolo COPY não é incremental — é outra categoria. Com pgx.CopyFrom e lotes de 50k: 28,1 milhões de empresas em 1m28s (~320k linhas/s) num
ASP.NET Core: Building High-Performance Web Applications and APIs A practical guide to ASP.NET Core — the cross-platform framework for building REST APIs, MVC applications, and backend services on .NET, covering architecture, minimal APIs, middleware, performance, and modern patterns. Table of Contents Introduction Architecture Overview Minimal APIs MVC and Controllers Middleware Pipeline Dependency Injection Configuration and Options Authentication and Authorization Performance Features Testing and Observability Quick Reference Table Conclusion Introduction ASP.NET Core is a free, open-source, cross-platform framework for building web apps, APIs, and backend services. It's a ground-up rewrite of the original ASP.NET, designed around three priorities: Performance — it's consistently one of the fastest mainstream web frameworks in independent benchmarks (e.g., TechEmpower). Modularity — you opt into only the middleware and services your app actually needs, instead of a fixed, heavyweight pipeline. Cross-platform — runs identically on Windows, Linux, and macOS, and deploys to containers, serverless, or bare metal. This guide covers the core building blocks you'll use in almost any ASP.NET Core project, from a five-line minimal API to a full MVC application with authentication and background services. 1. Architecture Overview Every ASP.NET Core app starts from a unified entry point — Program.cs — using the minimal hosting model introduced in .NET 6. var builder = WebApplication . CreateBuilder ( args ); // Register services (dependency injection container) builder . Services . AddControllers (); builder . Services . AddEndpointsApiExplorer (); builder . Services . AddSwaggerGen (); var app = builder . Build (); // Configure the HTTP request pipeline (middleware) if ( app . Environment . IsDevelopment ()) { app . UseSwagger (); app . UseSwaggerUI (); } app . UseHttpsRedirection (); app . UseAuthorization (); app . MapControllers (); app . Run (); Two phases matter here:
InfoQ has opened enrollment for a five-week AI Security & Privacy Engineering cohort for senior engineers and architects in regulated industries, focused on applying security, privacy, threat modeling, observability, and governance practices to production AI systems. By Artenisa Chatziou
The new model will be officially unveiled in late September.
The 300-mile Torcal arrives in September, but considering what's come before with Ferrari, Porsche and Mercedes, has the company timed its EV entry right?
This hybrid V8 has organic-looking 3D-printed components and shatters lap records.
Whether you’re looking to boost your productivity or your Fortnite stats, these are the top keyboards for the job.
This midrange mini RGB LED television has a high-end price but doesn’t match the brightness and contrast of more advanced models.
The Office of Professional Responsibility has opened more than 100 cases over what ICE officials call “incidents of doxing and threats” against ICE employees.