Doxy
Markdown & HTML editor, without the LaTeX pain Discussion | Link
找到 1469 篇相关文章
Markdown & HTML editor, without the LaTeX pain Discussion | Link
The MCP server for marketing data Discussion | Link
Wild Pokémon appear while you wait for Claude Code Discussion | Link
Study 25,000+ screens from top-earning iOS apps Discussion | Link
Clone any Mac app into a fully isolated instance Discussion | Link
An on-device AI Agent that runs on your phone, open & secure Discussion | Link
Your sex's private recap — never leaves your phone Discussion | Link
I have a small script, reply_comments.py , that keeps me from having to re-scan every DEV.to article for new comments by hand. It has two commands: pending (unanswered comments I haven't drafted a reply to yet) and audit (drafted replies I said I'd paste manually but apparently never did). I've already fixed two bugs in this file — one in needs_reply() (a thread stayed "handled" forever after a single reply, even when the other person followed up again) and one in audit() (it only checked direct children, so a reply nested two levels deep was invisible). Today I found a third, in pending() itself, and it's the kind of bug that hides precisely because the first two fixes made everything else in the file look trustworthy. What pending() actually does Comments on DEV.to come back from the API as trees — each top-level comment has a children list, and replies can nest arbitrarily deep. pending() walks each article's top-level comments and decides, for each one, whether it needs a reply: def pending (): try : drafted_text = open ( DRAFTS , encoding = " utf-8 " ). read () except FileNotFoundError : drafted_text = "" drafted_codes = set ( re . findall ( r " ^## (\S+) " , drafted_text , re . M )) out = [] for a in api ( f " /articles?username= { ME } &per_page=100 " ): if not a [ " comments_count " ]: continue for c in api ( f " /comments?a_id= { a [ ' id ' ] } " ): if not needs_reply ( c ): continue if c [ " id_code " ] in drafted_codes : continue out . append ({ " id_code " : c [ " id_code " ], " author " : c [ " user " ][ " username " ], " article " : a [ " title " ], " comment_url " : f " https://dev.to/ { ME } /comment/ { c [ ' id_code ' ] } " , " body " : strip_html ( c [ " body_html " ]), }) return out needs_reply(c) is the fix from a few weeks ago — it recurses the whole subtree and checks who posted the most recent message, not just whether I've ever replied. That part's correct. The bug is in the two lines right after it: c["id_code"] and c["body_html"] . c here i
AI search is creating an attribution problem for marketers: a brand can help shape an answer in ChatGPT, Google AI Mode , or Perplexity without receiving a visit to its website. That makes rankings, impressions, and click-through rates incomplete indicators of visibility. New research from Wix Studio adds evidence that the content cited by AI systems follows recognizable patterns, while industry discussions increasingly point to measurement frameworks built around citations, answer presence, prompt coverage, and downstream influence. The key shift is not that website traffic has stopped mattering. It is that a click is no longer the only observable outcome of search visibility. When an AI interface summarizes options, recommends a product category, or cites a publisher, users may form an opinion or continue their journey elsewhere. Brands therefore need to separate direct referral traffic from their broader presence in AI-generated answers. What Wix Studio's research shows about AI citations Wix Studio's AI Search Lab research examines citations in answers generated by major AI search interfaces, including ChatGPT, Google AI Mode, and Perplexity. Published summaries describe a dataset of roughly 75,000 AI-generated answers and more than one million citations. Its central finding is that citations are not spread evenly across every kind of web page. Listicles, articles, and product pages account for a disproportionate share of the citations observed in the research. That is consistent with how answer engines retrieve and synthesize material: content that is clear, segmented, easy to scan, and closely matched to a question can be easier to extract into a response. A subsequent Search Engine Land summary of Wix Studio's work discussed a 25,000-URL dataset in which listicles represented a majority of AI citations. The precise mix should not be treated as a universal rule. Wix Studio's analysis covers a defined set of prompts and engines, and results can change with the
Search every AI Agent & IDE Conversation Discussion | Link
Edit videos 10x faster with AI Discussion | Link
Yesterday, backend-reviewer inspected pull requests with one model, read only the repository and public documentation, and stopped for human approval before proposing any change. Today it has exactly the same name. The model has changed, the system instructions have been rewritten, incident history is now available as a context source, memory persists between tasks, and database migration changes no longer require approval before they are proposed. The dashboard still shows the same team member. The engineer responsible for quality and risk is looking at a different agent. The identifier stayed. The behavior moved. That distinction is what NexFlow , an open specification for AI developer teams, is trying to make visible. The project does not currently provide a production runtime, a production CLI, or model-provider integrations. Its present job is narrower and, in my view, more important: give teams a language for reviewing agent changes before anything executes. A name answers the wrong question Agent names are useful to people. They distinguish a code reviewer from a documentation writer and establish a long-lived role inside the team. A name says very little about the configuration that produced a particular result. A model change can affect code quality, cost, latency, and the way uncertainty is handled. New instructions alter the order of analysis and the criteria for an acceptable answer. An additional source expands both available knowledge and the exposure surface. Memory carries the consequences of one task into another. A new permission changes more than output style: it changes what an error can damage. For audit purposes, “Which agent did the work?” is therefore incomplete. A second question matters just as much: which version of that agent's definition was active? In draft RFC-0004 , NexFlow separates stable agent identity from a versioned agent definition. Identity contains the role, description, and long-lived responsibility. The definition captures
Play live electronic music with your hands using your webcam Discussion | Link
Youtube for interactive content Discussion | Link
Turn anything on your Mac screen into clean Markdown Discussion | Link
One login, zero API keys — cloud agents + 27 models Discussion | Link
Originally published at mendapi.com . Between two published snapshots of the Cloudflare OpenAPI schema — 7abe88500e55 (2026-03-31) → c92b9b0fde23 (2026-07-27) — a raw structural diff produced 6,354 change records. 136 of them were endpoint path removals, the scariest kind a diff can report: the route your code calls is simply gone from the spec. Except 119 of those 136 were not gone at all. This is the accounting of how we know, per record, with machine evidence. The trap in a raw diff A path removal in a spec diff means one thing: the string key disappeared from the paths object. It does not mean the runtime URL stopped working. Specs get refactored — concrete routes collapse into templated ones, path parameters get renamed, methods get merged — and every one of those refactors shows up as a "removal" if you only look at one side of the diff. An alerting tool that pages you 136 times for this corridor is training you to ignore it. The whole job of the curation layer is to keep that from happening without silently dropping a real break. The ledger: 17 + 119 = 136 Every one of the 136 raw removals has an adjudicated destination. 17 were kept as genuinely client-breaking: the runtime URL or method really disappeared, with no surviving successor. The other 119 were excluded, each with machine evidence from the two spec snapshots that the surface actually survives: Template consolidation — 107 records. Concrete Workers AI model routes like /ai/run/@cf/baai/bge-m3 collapsed into the pre-existing generic /ai/run/{model_name} route. The runtime URL a client sends never changed; the spec just stopped enumerating each model. The evidence rule requires the templated route to exist in both snapshots and to swallow the removed path with a literal-anchored match, so a template that is merely a shape prefix of a genuinely removed endpoint does not count. Parameter rename, runtime-identical — 11 records. Path parameters renamed ( {postfix_id} to {investigate_id} and friends). Afte
Your iPhone camera watches your form, rep by rep Discussion | Link
Yelp has confirmed a licensing agreement with OpenAI that will extend Yelp content into AI platforms, including the OpenAI ecosystem powering ChatGPT. The deal positions Yelp’s reviews, ratings, photos and business information within a growing AI-driven local discovery experience, while opening a potential path for users to request quotes from local service providers through ChatGPT. The agreement is more consequential than a new search result format. Yelp is expanding its data-licensing strategy beyond conventional search surfaces, while ChatGPT gains access to a major source of local business content. For people asking an AI assistant where to eat, which contractor to contact or how a nearby business is rated, the quality, freshness and governance of the underlying data will matter as much as the answer itself. What the Yelp and OpenAI agreement covers In its February 2026 earnings and shareholder release , Yelp announced an agreement with OpenAI and described it as part of its AI transformation and strategy to license content for local discovery across AI ecosystems. That is the confirmed foundation of the development. Axios has reported the practical user-facing direction: ChatGPT will surface Yelp reviews, ratings, photos and other business details in responses to local queries. Yelp has also signaled that its Request a Quote capability could be integrated into ChatGPT in the near term, enabling users to initiate an inquiry with a service provider from the AI interface. Capability What the research supports Status Yelp content in ChatGPT Reviews, ratings, photos and other business details are expected to surface for local queries. Reported user-facing outcome of the confirmed licensing agreement Request a Quote in ChatGPT Users may be able to initiate quote requests with local service providers through the AI interface. Signaled for a future rollout Data timing and interface design Reporting describes real-time business data, but exact latency, update frequency
myjsonstudio.online