今日精选
HOT最新资讯
共 42181 篇OpenAI public policy agenda
OpenAI outlines its public policy agenda for AI, including safety, youth protection, workforce transition, and global standards to ensure AI benefits society.
A blueprint for democratic governance of frontier AI
OpenAI outlines a blueprint for U.S. governance of frontier AI, proposing a federal framework for safety, resilience, and national security.
The world’s largest privately owned laser just turned on
Fusion startup Xcimer fired up the world's largest privately owned laser.
Monica Lewinsky Has Always Hated Notifications
The writer and anti-bullying activist is on social media, but to protect her nervous system, she prefers not to be alerted.
Data Center Operators Are Trying to Fix Their Water Use Problems
Google, Microsoft, and other hyperscalers have come under scrutiny for their impact on water quality and availability.
What’s Worth More Than Cash in San Francisco Real Estate? Anthropic Stock
Several real estate listings in the San Francisco Bay Area are offering to exchange a home for a piece of the AI startup.
Best Apple 3-in-1 Travel Chargers (2026): Anker, ESR, Satechi
Keep your trio of Apple gadgets powered up wherever you go with these compact folding chargers.
CAP Theorem Explained
CAP Theorem Explained: Choosing Between Consistency, Availability, and Partition Tolerance in Databases Imagine you're trying to book a flight online, and just as you're about to pay, the website crashes. When you try to book again, you find that the flight is now sold out, even though the website initially showed available seats. This frustrating experience is a classic example of a database trade-off between consistency, availability, and partition tolerance. The CAP theorem, first introduced by Eric Brewer in 2000, states that it's impossible for a distributed data store to simultaneously guarantee more than two out of these three principles. In this post, we'll delve into the world of CAP theorem, exploring its fundamentals, real-world database examples, and design implications. Introduction to CAP Theorem Understanding the Basics of CAP Theorem The CAP theorem is based on three primary principles: Consistency : Every read operation will see the most recent write or an error. Availability : Every request receives a response, without guarantee that it contains the most recent version of the information. Partition Tolerance : The system continues to function and make progress even when network partitions (i.e., splits or failures) occur. Importance of CAP Theorem in Distributed Systems In distributed systems, where data is spread across multiple nodes, the CAP theorem plays a crucial role in understanding the trade-offs between these principles. By grasping the CAP theorem, developers can design more resilient and scalable databases that meet the specific needs of their applications. Brief Overview of the Blog Post This post will explore the CAP theorem in depth, using real-world database examples to illustrate the trade-offs between consistency, availability, and partition tolerance. We'll discuss the fundamentals of CAP theorem, examine CA, CP, and AP systems, and provide guidance on designing for each combination. By the end of this post, you'll have a solid un
Vibe Coding Is Fun. Here's the Security Bill Nobody Mentions.
AI coding tools make development much faster. You describe a feature, the AI generates code, and within minutes you have something working. That's great for productivity, but it also makes it easy to miss security issues. When coding becomes faster, we often skip important security checks. Here are 6 quick things I always check before using AI-generated code. Don't Expose Secrets in the Frontend AI tools sometimes put API keys or secrets directly into frontend code. Remember: Anything in frontend code is public. In Next.js, variables starting with NEXT_PUBLIC_ are visible in the browser. Secret keys, database URLs, and service tokens should only exist on the server. Quick check: Search your code for words like sk_, secret, or key=. Frontend Validation Is Not Security A form may check emails, required fields, and formats in the browser. That's good for user experience, but attackers can bypass it. Always validate data on the server as well. Rule: If you validate something on the frontend, validate it again on the backend. Be Careful with dangerouslySetInnerHTML AI often uses dangerouslySetInnerHTML to display HTML or markdown content. If that content comes from users, it can lead to XSS attacks. To stay safe: Sanitize content before rendering. Use libraries like DOMPurify. Avoid rendering raw HTML whenever possible. 4. Check New Dependencies AI may install packages automatically when generating code. Before using them: Verify the package is legitimate. Check download counts and maintenance status. Run npm audit to find known vulnerabilities. Be careful of fake package names that look similar to popular packages. Review Authentication and Permissions Carefully Authentication is not just "Is the user logged in?" You must also check: Can this user access this resource? Does this user have permission to perform this action? For anything related to login, roles, permissions, or tokens, re view the code yourself. Never Paste Real Secrets into AI Chats Don't share: .env fil
I Was Asked to Add a Simple Classifier to a Website. Then I Saw the 250 MB Download.
A client asked me for a simple thing. Not ChatGPT. Not an agent. Not a multimodal assistant that can explain invoices, generate React components, and write poetry in three languages. Just a small classifier embedded into a website. The job sounded boring in the best possible way: take some text, classify it, return a result, keep it fast. So I started looking at the usual solutions. And then I had one of those moments where you stop reading documentation, lean back, and ask: Are we seriously doing this? Because the answer I kept running into looked like this: download a huge runtime download a huge model initialize a big ML stack then classify one small piece of text In one setup, the path was getting close to something like 250 MB per user . For a simple classifier. On a website. From a server. Every time. No. Sorry. That is insane. The problem The web has a strange habit now. You ask for one small AI feature, and the answer is often: bring the entire construction company. But sometimes I do not need a construction company. I need one person on the construction site. One task. One tool. One result. This is especially true for simple classification, embeddings, semantic search, routing, filtering, ranking, small local decisions. Not every AI problem needs an LLM. Not every website needs a full inference engine. Not every user should pay a 250 MB download tax because we were too lazy to think smaller. So I started digging I wanted something simple: runs in the browser does not require a server for inference small enough to actually ship works with transformer-style models can tokenize text can run BERT-like forward inference can produce embeddings or classification input does not bring ONNX Runtime, Candle, ndarray, or half the internet with it At first I thought: “Surely someone already made the tiny version.” There are great tools out there. Transformers.js is powerful. ONNX Runtime Web is powerful. Candle is powerful. But that was exactly the problem. They are pow
I Built the Zimnovate Agency Site With Astro and Google PageSpeed Gave It a Perfect Score Here's Why You Should Learn Astro
I'll be honest, when I first heard about Astro, I was skeptical. Another JavaScript framework? I already had React, Next.js was doing fine. Why bother? Then I actually used it. I built the website for Zimnovate, my AI-native digital product studio based in Harare, Zimbabwe, with Astro, ran it through Google PageSpeed Insights, and got scores I'd never seen before on a site I actually built myself. That changed everything for me. Let me tell you what Astro is, why it's architecturally different, and why it's worth learning, especially if you care about performance and SEO. What Even Is Astro? Astro is a web framework built around one radical idea: ship zero JavaScript by default . Most modern frameworks (React, Vue, Svelte) are component-based and hydrate the entire page on the client. Even if your page is mostly static content, the user's browser still downloads and runs JavaScript to render it. Astro flips this. It renders your components to pure HTML at build time. JavaScript only runs in the browser when you explicitly need it, and only for the specific components that need it. This isn't just a config option. It's the core architecture. The Architecture: Islands Astro uses a pattern called Islands Architecture . Think of your page as a static ocean with interactive "islands" floating in it. The ocean (static content, headings, text, images) ships as plain HTML. The islands (a navbar with a dropdown, a contact form, a live counter) are the only parts that hydrate with JavaScript. --- // This runs only at build time zero runtime cost const services = await fetch('/api/services').then(r => r.json()) --- <html> <body> <!-- Pure static HTML, no JS needed --> <h1>Zimnovate</h1> {services.map(service => <ServiceCard service={service} />)} <!-- This island hydrates only when visible --> <ContactForm client:visible /> </body> </html> The client:visible directive tells Astro: "only load this component's JavaScript when it scrolls into the viewport." You get full interacti
Creating Robust systemd Services for Embedded Applications
There is a moment every embedded Linux developer hits eventually. You have spent days building something that works beautifully — a sensor pipeline, a streaming server, an MQTT client — and then you reboot the device and everything is silent. Nothing started. You SSH in, manually run your script, and it all comes back to life. The hardware is fine. Your code is fine. You just have no way of automatically running it. That is the gap systemd fills. It is the init system on virtually every modern Linux distribution, and on embedded Linux systems like the Raspberry Pi it is what decides what runs at boot, what gets restarted if it crashes, and where all the logs go. Once you understand how to write a service file, your applications stop being fragile scripts you need to babysit and start being first-class system services that survive reboots, network drops, and unexpected crashes. This tutorial builds up from the simplest possible service file to a production-ready configuration, explaining every line along the way. By the end you will have a service running your own Python application, logging to the system journal, and automatically restarting itself after failures. See Complete Tutorial in Github: Systemd Services Tutorial What systemd Actually Does Before writing any configuration, it helps to understand what problem systemd is solving, because the design of service files makes much more sense once you see the underlying model. When your Raspberry Pi boots, the Linux kernel starts and immediately hands control to process ID 1 — the very first user-space process. On modern systems, that process is systemd . Everything that happens next — mounting filesystems, bringing up the network, starting your application — is orchestrated by systemd. It reads configuration files called unit files that describe what should be started, when, in what order, and what to do if something goes wrong. A service file is just one type of unit file (there are also unit files for timers, so
Your Next PC Is Not a Productivity Tool - It Is a Runtime for AI Agents
At GTC 2026, Jensen Huang said something that made a lot of people pause: the PC is being reinvented. He and Microsoft launched RTX Spark with the N1X chip, cramming petaflop-level AI compute into a desktop form factor. On the surface it looks like another hardware upgrade, but this time the use case is genuinely different. Previous PC performance gains served humans: faster rendering, faster compiling, smoother gaming. This round of compute improvement is largely aimed at AI agents. Agents need to run vision-language models locally, understand screen content in real time, and execute GUI operations. These workloads demand sustained compute resources with a load profile completely different from human computer use. Agents Need Different Hardware Than Humans Humans use computers in bursts: typing, clicking, waiting for responses. The load is pulsed. Agents use computers continuously: constantly capturing screenshots, interpreting the display, making decisions, executing operations. The load is steady-state. This means agents need memory bandwidth and energy efficiency more than peak compute. This explains why Apple's M-series chips perform well in on-device AI scenarios. The unified memory architecture lets GPU and CPU share the same memory pool without data transfers between them, which is highly efficient for model inference that frequently accesses large parameter sets. M-series energy efficiency also suits long-running agent workloads without thermal throttling. NVIDIA's RTX Spark takes another path: more GPU compute and more memory (128GB unified) to handle on-device AI demands. The N1X chip has higher total compute than M-series, better suited for heavy workloads. Different tradeoffs, same destination: AI agents running on the device in front of you. There's Already a Complete Agent Stack on Mac What's worth noting is that the on-device AI agent stack on Apple's ecosystem is already fairly complete. M-series chips at the hardware layer. MLX at the framework lay
How to properly serve SVG files from crossorigin?
On a website of mine I use around ~50 different tiny SVG icons (1-2KB) per page which I store on a seperate subdomain where I host all my static files that I use across multiple websites. I am wondering what would be the best way to serve those. SVG sprites (a single svg file with each icon wrapped in a symbol tag): Not supported from crossorigin unless weird javascript hacks are being used. 1 request per icon : Seems a bit crazy to do 50+ requests for tiny files? Even with modern http2 this seems to slow the site down and feels like it causes unecessary overhead. Bake SVG into html : This feels the fastest, but it adds like 50kb (a bit less when gzipped) to every html page which seems unecessary as well. How do you do it? What is considered best practice? submitted by /u/Nonilol [link] [留言]
Building a Real-Time WebSocket-Based Chat Server with Rust and WASM
Building a Real-Time WebSocket-Based Chat Server with Rust and WASM Building a Real-Time WebSocket-Based Chat Server with Rust and WASM In this tutorial, you’ll build a scalable, real-time chat server using Rust on the backend, WebSocket for bidirectional communication, and WebAssembly (WASM) for a fast, interactive frontend. You’ll learn how to structure a minimal, production-ready system with clean code, testable components, and practical deployment considerations. Overview Goals: Real-time messaging with low latency Safe, fast backend implemented in Rust Frontend capable of connecting via WebSocket and rendering messages efficiently Basic authentication, message persistence, and reconnection handling Testing strategies for end-to-end and unit tests Tech stack: Backend: Rust, Warp or Actix-Web, tokio, tungstenite or tokio-tungstenite for WebSocket Frontend: Rust + WASM (via wasm-bindgen) or a lightweight JS client Persistence: SQLite or PostgreSQL for message history Deployment: containerized (Docker), with a simple reverse proxy (Nginx) in front Prerequisites Rust toolchain installed (rustup, cargo) Basic knowledge of Rust and asynchronous programming Node.js/npm if you choose a JS frontend (optional since you can use Rust WASM) SQLite or PostgreSQL installed locally for testing 1) System design and data model Clients connect via WebSocket and join a chat room. The server maintains in-memory state for active connections and broadcasts messages to all connected clients in the same room. Messages are persisted to a database for history. Reconnection: clients reconnect on network hiccups; server replays recent history upon join. Scalability note: for multiple instances, use a message broker (Redis pub/sub) to broadcast messages between workers. Data model (simplified) Users: id, username Rooms: id, name Messages: id, room_id, user_id, content, timestamp 2) Backend: Rust WebSocket server Key components HTTP upgrade to WebSocket Per-room broadcast hub Connection manag
🚀 StudyQuiz v1.1.0 — UX Enhancements, Integration Tests, and Reliability Improvements
StudyQuiz has moved forward since the first frontend MVP release. This update focuses less on adding major new features and more on making the app smoother to use, safer to change, and more reliable in production. What’s New Logout functionality Call-to-action section on the user dashboard Edit and delete functionality for questions and answers Guest Mode restrictions for editing and deleting questions and answers Integration tests for core backend workflows Improved Enhanced quiz user experience and feedback Improved quiz creation user experience Improved navigation across the application More reliable page reload behavior for protected routes Fixed Fixed 500 errors when reloading protected frontend pages Fixed production database session configuration issues Improved reliability around authentication-protected routes Why This Release Matters This release is mainly about stability and maintainability. I added integration tests and a GitHub Actions workflow so future changes are checked automatically before they silently break existing behaviour. StudyQuiz now feels closer to a maintainable product rather than just a working prototype. Coming Next The next major focus is slide upload and AI-assisted quiz generation, allowing users to generate structured quizzes more directly from their study materials. Repo: github.com/aissa-laribi/studyquiz Live app: https://www.studyquiz.co
Day 5 — Entering the World of Classification
Today I started Week 3 of the Machine Learning Specialization and learned about Classification. Until now, most of my learning focused on regression, where models predict numerical values. Today I discovered that many real-world problems involve predicting categories instead. Some examples include: Detecting spam emails Predicting whether a customer will leave or stay Identifying whether a tumor is malignant or benign I also learned about Logistic Regression. Despite its name, it is used for classification tasks. The model predicts probabilities that help determine which class an example belongs to. Another important concept was the Decision Boundary, which is used to separate different classes based on predicted probabilities. To reinforce my understanding, I completed the graded assignment for this section. This week feels like an important step because classification is widely used in real-world machine learning applications. 🚀 Looking forward to learning more about classification models and improving my understanding of machine learning. MachineLearning #AI #DataScience #Python #LearningJourney