今日已更新 211 条资讯 | 累计 29353 条内容
关于我们

今日精选

HOT

最新资讯

共 29353 篇
第 211/1468 页
AI 资讯 Schneier on Security

Axon Is Another License Plate Surveillance Company

Governments are switching, but I’m not sure it makes a difference : …some municipalities, including Denver, Colorado, are ditching their Flock arrays. But keep in mind that if they’re only switching from Flock to another brand of license-plate readers, like Axon, it’s like a gambling addict trying to kick the habit by switching from FanDuel to DraftKings. […] Despite what you may read on the Flock website, Axon cameras are pretty effective when it comes to hoovering up personal details that can go far beyond your license plate numbers. That means a municipality that opts for Axon cameras instead of Flock units won’t necessarily reduce the amount privacy its citizens lose through their use...

Bruce Schneier 2026-07-28 19:06 7 原文
AI 资讯 HackerNews

Why I prefer Opus 5 to Fable 5

I've been experimenting with both since the moment each came out. 4 games, 3 websites and 2 content creation engines later - I think I'm ready to share a bit of my experience and opinion. WHAT I'VE NOTICED ABOUT FABLE 1. Gold in, gold out - meaning I've had the best results by making all my design decisions before giving Fable the kickoff information and prompt. It's much more comfortable making decisions by itself - decisions it won't tell you about - unless you explicitly tell it what it can a

novlrdotcom 2026-07-28 18:45 4 原文
AI 资讯 HackerNews

Show HN: Open-source Cloudflare deployed agent native task management and wiki

There are many task tracking solutions out there but this one is mine. It's open source and free to host on your own Cloudflare project. https://github.com/TAJD/projektor I had issues with paying for some of the solutions out there, and then the local solutions like beads etc always had quirks I didn't want to work around. I built my own solution on top of Cloudflare's very generous usage tiers, and I've enjoyed using and developing it over the past month or so. I thought it might be good to sha

tajd 2026-07-28 18:33 4 原文
AI 资讯 Product Hunt

SKI

Free voice coding for Claude Code, Codex and more Discussion | Link

2026-07-28 18:29 2 原文
AI 资讯 Dev.to

Scraping platform costs: measure successful rows, not browser minutes

A scraping job usually fails in boring ways: the browser hangs, a selector starts returning empty strings, a login expires, or the target site returns a captcha halfway through the run. The awkward part is that many platforms still bill you for the work done before the failure. If you run enough jobs, that difference shows up both in your invoice and in the amount of defensive code you need around the scraper. Billing by compute time changes how you build A lot of scraping platforms charge for runtime. Apify, for example, uses compute units: memory multiplied by time. A browser-heavy actor running for ten minutes with 2 GB of RAM consumes roughly a third of a compute unit before any actor-specific result fees. That model is reasonable from the provider side. Chromium processes are expensive. Proxies cost money. Retries use resources. But as the caller, you care about a different unit: did I get the rows I needed? The hard part is that runtime billing makes cost hard to know before execution. A job that normally takes 30 seconds might take 8 minutes when a site slows down. A job that returns malformed data can still count as successful from the platform's point of view. A job that fails after rendering 200 pages still consumed browser time. If your pipeline runs once a day, that may be fine. If it runs continuously, you probably want a local cost model that tracks outcomes, not just requests. type ScrapeRun = { jobId : string ; target : string ; startedAt : string ; finishedAt ?: string ; status : " queued " | " running " | " succeeded " | " failed " ; rowsExpected ?: number ; rowsReceived ?: number ; billedUnits ?: number ; }; function isUsefulResult ( run : ScrapeRun ) { if ( run . status !== " succeeded " ) return false ; if ( run . rowsExpected && ( run . rowsReceived ?? 0 ) < run . rowsExpected * 0.9 ) { return false ; } return ( run . rowsReceived ?? 0 ) > 0 ; } function costPerUsefulRow ( run : ScrapeRun ) { if ( ! isUsefulResult ( run )) return Infinity ; ret

Anakin 2026-07-28 18:00 14 原文
AI 资讯 Smashing Magazine

Thinking Outside The Box: Digital Design In The AI Era

Many of the AI tools we interact with take the form of text boxes. But what if there was a different way to interact with AI? Oleksii Hrzhehorzhevskyi explores a different approach to creating a new AI assistant and how designers can navigate the field as AI continues to change it.

hello@smashingmagazine.com (Oleksii Hrzhehorzhevskyi) 2026-07-28 18:00 2 原文
AI 资讯 Dev.to

Map like Data-Structure in LaTex

My CV is a mess, but I think almost everybody got the same result over time. Lot of experiences, certifications, projects and so on. Furthermore, having his CV in LaTex is great but it can be hard to update/upgrade it when needed... Why not using something like a database to store all those elements? Well, we can use another layer or tool to deal with that, but it seems LaTex can do that as well with the pfgkeys package. The idea here is to create a really small local package offering an interface to store different kind of elements per categories. Let start with our requirement. How to put experiences? \experiencePut { devto }{ date }{ 2026 } \experiencePut { devto }{ title }{ author } \experiencePut { devto }{ summary }{ Writing article for fun and no profit } \experiencePut { devto }{ location }{ somewhere on the web } \experiencePut { devto }{ company }{ dev.to } \experiencePut { devto }{ skills }{ tex, latex, erlang, elixir, dart, flutter } \experiencePut is taking 3 arguments, the first one will be a reference to a position (e.g. devto ), the second argument will be an unique keyword (e.g. date ) and finally, the last argument will be the data to store (e.g. 2026 ). How to get this information back? \experienceGet { devto }{ date } \experienceGet { devto }{ title } \experienceGet { devto }{ summary } By creating experienceGet , where the first argument is the reference to a position (e.g. devto ) and the second one to the unique keyword previously set (e.g. date ). Then, it will return 2026 . Neat. Right? Let create our local package called map.sty . $ touch map.sty It will contain the definition of our interfaces and few mandatory elements for LaTex. Thanks to overleaf, we have now great LaTex documentation about that. \NeedsTeXFormat { LaTeX2e } \ProvidesPackage { mystore } [2026/07/24 map package] \RequirePackage { pgfkeys } pfgkeys requires a list of keys to work correctly, then the /cv/ key is created. More information can be seen on the documentation reg

Mathieu Kerjouan 2026-07-28 18:00 12 原文
AI 资讯 Dev.to

Build Your First East Africa MCP Server in 30 Minutes

Every tool in the East Africa coordination infrastructure stack started from the same scaffold. Here's exactly how to build and publish one yourself. What You're Building An MCP server is a Python package that exposes tools to AI assistants. When a user installs it and connects it to Claude, the AI can call your tools as naturally as answering a question. pip install your-mcp-server # Then Claude can: # "Check NHIF coverage for outpatient surgery" → calls your tool → returns structured result Step 1: Set Up the Project (2 min) your-mcp-server/ ├── src/ │ └── your_package/ │ ├── __init__.py │ └── main.py ├── pyproject.toml ├── README.md └── .github/ └── workflows/ └── publish.yml mkdir your-mcp-server && cd your-mcp-server mkdir -p src/your_package touch src/your_package/__init__.py src/your_package/main.py Step 2: Write Your Tool (10 min) # src/your_package/main.py from __future__ import annotations from typing import Annotated from fastmcp import FastMCP mcp = FastMCP ( name = " your-mcp-server " , instructions = " Describe what your server does in one paragraph. " , ) @mcp.tool ( description = ( " What this tool does in plain language. " " Include the Western parallel if applicable. " " Note if it uses DEMO data. " ) ) def your_tool ( param1 : Annotated [ str , " Description of param1 " ], param2 : Annotated [ int , " Description of param2 " ] = 0 , ) -> dict : # Your logic here return { " result " : f " Processed { param1 } " , " note " : " DEMO — replace with real data source in production " , " source " : " your-mcp-server " , } def main (): mcp . run () if __name__ == " __main__ " : main () Step 3: Configure pyproject.toml (3 min) [build-system] requires = ["setuptools> = 61.0 "] build-backend = "setuptools.build_meta" # ← exact string, no variation [project] name = "your-mcp-server" version = "0.1.0" description = "One-line description" authors = [{name = "Your Name" , email = "you@example.com" }] license = { text = "MIT" } readme = "README.md" requires-pytho

Gabriel Mahia 2026-07-28 18:00 15 原文