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

标签:#m

找到 11105 篇相关文章

开发者

Reflection architectural pattern

Building software that can change itself without needing to be recompiled is a hard problem, and the reflection architectural pattern is a solid answer to that. I published an article diving into the reflection architectural pattern. If you've ever wondered how Spring Boot uses annotations to magically wire your dependencies, or how ORMs map database fields without explicit code, reflection is the answer. I break down how this pattern actually works, show practical examples, and discuss when you should and shouldn't use it. submitted by /u/Netunodev [link] [留言]

2026-06-15 原文 →
开源项目

Local-first SaaS is trending, but the sync headaches are a trap

Everyone is hyping up local-first architecture because of Linear’s speed and the flack Notion is getting for its half-baked offline mode. Keeping data on the client sounds amazing for UX, but the engineering trade-offs are brutal. Unless your users are literally working in tunnels or you have strict privacy requirements, local-first feels like a massive over-engineering trap. Managing CRDTs, conflict resolution, and running database schema migrations across thousands of fragmented user devices is an absolute nightmare. Notion's struggles proved that trying to bolt offline support onto a legacy cloud-first DB just doesn't work well. I wrote a deeper breakdown on the strategic trade-offs and what the sync problem actually costs to solve here: https://buildmvpfast.com/blog/local-first-saas-offline-first-vs-cloud-first For most apps, a boring Postgres stack lets you ship fast and validate the product. You can worry about complex sync layers later. For anyone who has shipped a production local-first app, was the snappy UI worth the infrastructure headache? I'd love to get some feedback and hear your war stories on this. submitted by /u/Timely-Ad-2615 [link] [留言]

2026-06-15 原文 →
开发者

Under-16 social media ban announced by UK government

The UK is the latest country to follow Australia in implementing a total social media ban for children under 16, Prime Minister Keir Starmer has announced. The ban, which could take effect from early next year, will be joined by wider measures that will also prevent children from talking to strangers in online games, livestreaming, […]

2026-06-15 原文 →
AI 资讯

Perl 🐪 Weekly #777 - Check your CPAN profile!

Originally published at Perl Weekly 777 Hi there! In the recent weeks I looked at a lot of MetaCPAN profiles (aka. author pages) such as that of MANWAR . If I could also find their LinkedIn profile I invited them to connect via LinkedIn . (If I have not sent you an invitation yet, then I guess I missed your profile. I'd be glad to get a connect request via LinkedIn.) I noticed that a large percentage of the people still have their @cpan.org email address listed. Despite the fact that cpan.org email forwarding has been shut down 6 weeks ago. That means people will get annoyed if hey try to contact you using that address. You could replace that address or hide it and offer other ways for people to contact you. Either of them is better than having a bad address. In addition, I noticed that some of the links people have there are not working. (e.g. incorrect link to their LinkedIn profile, or to their home page etc.) In order to fix these you probably first need to check and update your PAUSE account . After logging in look for the Edit Account Info menu option. There you can list your email address and you can even decide if you'd like to have a visible address or not. Then you could take a look at your MetaCPAN profile. For this visit MetaCPAN . Login in the top-right corner. If you don't remember whether you used GitHub or Google, don't worry. Inside you can connect them in the Identities menu point. Then go to the Profile menu point and update the fields there. Finally, if you have updated your profile after reading this, I'd be glad if you sent me an email so I'll know this messaged had some positive impact. Oh, and if you don't have a CPAN account and you have not uploaded anything yet, then what are you waiting for? Enjoy your week! -- Your editor: Gabor Szabo. Articles Time::Str - Time Zones and Leap Seconds Time::Str parses and formats date/time strings across 20+ standard formats, with an optional C/XS backend and nanosecond precision. The previous post, Intro

2026-06-15 原文 →
AI 资讯

I shipped 10 builds last week without touching a laptop.

That's the reality of what I've been testing - whether you can actually run a micro SaaS from a phone. Not as a gimmick, but as a real workflow. The key is prompting discipline. When I want a changelog section added to my delivery page, I'm not just asking. I'm structuring the task: queue it up, do QA after each step, create the build, update the OTA link, ping me on Telegram, then move to the next one. If something breaks, take notes and continue - I'll deal with it later. The AI handles the repetitive loop. I handle the decisions. Most of my dev ops now fits in a chat thread. Is this the future of solo building? Maybe. Or maybe it's just a useful edge case for when your laptop is in for repair and you have a deadline. Either way, it's worth knowing what's actually possible.

2026-06-15 原文 →
AI 资讯

A Merchant Center disapproval wiped 40% of our SKUs the day a 6-week promo launched

Three days into November, a disapproval cascade pulled 40% of active SKUs from Shopping and Performance Max simultaneously — on day one of a promotional window we'd spent six weeks building. No feed changes on our side triggered it. Here's the part most guides miss: Google's automated review threshold for certain policy categories (health claims, price accuracy, before/after imagery) tightens as platform ad volume increases heading into Q4. I've watched this happen across accounts running ₩50M–₩120M/month in combined Google spend, three years in a row, with zero feed-side changes preceding it. Same feed that sailed through August catches 15–20% disapprovals on recheck in September. The products didn't change. The enforcement did. When it hits during a live window, fix order matters more than fix speed. Price mismatches go first — not because they're the most dramatic, but because they cascade silently. One bestseller disapproved during a flash sale means Performance Max quietly reallocates budget to lower-performing products. By the time ROAS visibly drops, you've lost 48 hours of peak traffic. The specific failure mode I've seen twice on Cafe24 with direct API feeds: a site-wide price update propagates to the feed before the landing page CDN cache clears. Google crawls the feed, sees the new price, crawls the landing page, sees the old cached price. Mismatch. Disapproval. Fixing it is one line — force a manual fetch and verify sale_price_effective_date formatting — but finding it at 2am during a live sale is a different problem. Prohibited content disapprovals are deprioritized by most teams because they're rare. That's exactly wrong. A single escalation during Black Friday week can trigger account-level review, not just product suspension. Pull the SKU yourself within the hour if you can't fix the content immediately. Suspending your own SKU is recoverable. A suspended account during peak is not. GTIN and identifier issues — despite getting the most attention in s

2026-06-15 原文 →
AI 资讯

Anthropic Releases and Temporarily Suspends Claude Fable 5

On June 9, 2026, Anthropic launched Claude Fable 5, a model designed for long-horizon tasks, but it was taken offline shortly after due to a U.S. government export directive. It shares architecture with Claude Mythos 5, supporting extensive token usage. The model includes mandatory data retention requirements, which have affected its deployment with partners like Microsoft. By Andrew Hoblitzell

2026-06-15 原文 →
AI 资讯

AI Builder Notes - Week of June 14, 2026

AI Builder Notes - Week of June 14, 2026 My thoughts and my twitter’s feeds thoughts This week was all about the ‘loop’ and Fable . The Loop The best way I can describe it is: design the flowchart. Think of the deterministic flowchart on how you want your agents to work. Aim to have: more deterministic bits - this keeps things more predictable more verification bits - this is agent feedback more agent tool calls - this, on a frontier LLM, makes it perform better. The ‘loop’ is essentially: goal -> agent acts -> verifier checks -> state/memory updates -> policy decides next action -> repeat/stop/escalate now the specific implementation of this - will differ based on what you’re working on. Fable Fable capabilities are absolutely insane, I tried it myself and it is entirely worth it for you to spend 2 minutes looking at this. There are a few projects that I fire up a new model into to see what’s it gonna do. A project I wanted to build was a way to teach and demonstrate ‘spin’ in table tennis, every frontier model before Fable fumbled hard. But Fable outshined them with ease: https://srijanshukla.com/artifacts/spin-lab/ If you personally did not experience a big shift in capability, you are probably not asking it a complex enough or ambitious enough task. Fable came, and Fable was taken away. The United States Government(USG) was reported with a jailbreak or sorts - which Anthropic considers not significant. The USG anyway banned Fable just after few days of release. Big drama. Fable was very pricey $$$$ Hence, people developed some patterns of work on those few golden days of Fable being available. - use Fable as planner/architect/taste/spatial/front-end judge. - use GPT-5.5/DeepSeek/Kimi as executor/worker. Other things Openrouter released their Fusion feature as a model on their platform, accessible via API. Fusion is basically council-of-LLMs pattern - providing results that can rival the frontier Fable 5 solo. Google Open Knowledge Format - https://github.com/Goo

2026-06-15 原文 →
AI 资讯

I tracked every GitHub traffic spike for my open source LLM proxy for 7 weeks. Then I did the exact same thing again, and it worked again.

When I shipped Trooper , a privacy-aware LLM proxy written in Go, I didn't have a marketing plan. I had GitHub traffic analytics and a habit of checking them obsessively. Seven weeks later, I have something more useful than a viral moment: a ranked table of every traffic spike, what caused each one, and proof that the exact same playbook that worked at launch still works when you have something new to say. What is Trooper? Trooper sits between your app and your LLM provider. When your cloud quota runs out, it automatically falls back to a local Ollama instance with zero code changes on your end. It also tracks session context, so your agents don't go blind between calls. It's not a chatbot wrapper. It's plumbing. Which makes the distribution story more interesting, because plumbing doesn't go viral the way demos do. The Data GitHub gives you 14-day rolling windows for clones and views. I screenshotted them obsessively and tracked every spike. Here's the full ranked table: Rank Date Clones Unique Cloners Views Unique Visitors Driver 🥇 1 May 13 375 173 1,113 ~140 Reddit wave peak 🥈 2 May 10-12 312 137 974 133 Reddit launch spike 🥉 3 Jun 10 289 124 749 101 "Escalate the model" r/ollama post 4 Jun 11 268 112 840 95 Decaying from Jun 10 spike 5 Jun 12 240 99 739 74 Decaying from Jun 10 spike 6 Jun 9 175 102 802 100 Organic 7 Apr 25 174 71 664 113 Early Reddit posts 8 Jun 7 171 110 876 110 Organic recovery 9 Jun 6 163 104 755 102 Organic recovery 10 May 29-30 122 73 610 83 LinkedIn post 11 May 25 76 48 495 53 Claude Code integration chat What I learned 1. Reddit is the only thing that moved the needle, and community fit matters more than size The #1 and #2 peaks were both Reddit-driven. On May 10-11, I posted across r/ollama, r/LocalLLM, r/ClaudeCode, and r/Gemini simultaneously. Total views across those posts: ~7,000. r/ollama alone drove nearly 4,000 of those views. Not r/LocalLLM. Not r/ClaudeCode. r/ollama , the smallest of the four communities. The reason: Trooper so

2026-06-15 原文 →
AI 资讯

Run GLM-5.2 Locally: The Open Model Nobody Can Ban

On June 9, Anthropic shipped Claude Fable 5 — the most capable coding model the industry had ever seen. Three days later, the U.S. government ordered it offline for every user on Earth . No warning. No transition period. One directive, and the frontier vanished overnight. 📖 Read the full version with charts and embedded sources on ComputeLeap → The same week, Z.ai (Zhipu AI) released GLM-5.2 — a 744-billion-parameter coding model with a one-million-token context window, MIT-licensed open weights arriving within days. The timing was not lost on the developer community. ℹ️ The message landed clearly on Hacker News: as user Reubend put it, they're "grateful to Chinese labs for being open with their work" — especially after "the Fable 5 fiasco." Open weights aren't just a cost play anymore. They're insurance. This guide walks you through actually running GLM-5.2 on your own hardware — the VRAM you need, the quantization that fits, and the exact commands for llama.cpp, Ollama, and LM Studio. No API keys. No cloud dependency. No one can pull the plug. What GLM-5.2 Actually Is GLM-5.2 is the third major iteration in Z.ai's GLM-5 line, purpose-built for agentic coding and long-horizon software engineering . Here is what you are working with: Spec Value Architecture Mixture-of-Experts (MoE) Total Parameters 744 billion Active Parameters ~40 billion per token Context Window 1,000,000 tokens Max Output 131,072 tokens Training Data 28.5 trillion tokens License MIT (open weights) Thinking Modes High and Max The MoE architecture is the key to local viability. Only ~40 billion parameters fire per token — the rest sit idle. That is what makes aggressive quantization work: you are compressing 744B weights, but inference only touches a fraction of them at any given time. GLM-5.2 supports two thinking-effort presets: High and Max. Z.ai recommends Max as the default for coding work — it produces longer reasoning chains before generating output. The model launched on June 13 on Z.ai's C

2026-06-15 原文 →
AI 资讯

🐍 When to choose ansible roles over playbooks

When to choose ansible roles over playbooks depends on the need for reusable structure, clear separation of concerns, and scalable maintenance across many environments. In a deployment that touches 1,200 servers, the early design decision determines whether the codebase remains maintainable or devolves into ad‑hoc tasks that require weeks of debugging. 📑 Table of Contents 📦 Modularity — Why Structure Matters 🧩 Reusability — When Scaling Demands Roles 🔧 Example: Deploying a Database Across Multiple Environments ⚙️ Dependency Management — How Requirements Influence Choice 🔗 Role Dependency Example 📁 File Layout — Organizing Artifacts for Maintenance 📊 Performance & Execution — Impact on Runtime 🔍 Comparison – Roles vs. Playbooks 🟩 Final Thoughts ❓ Frequently Asked Questions When should I still use a flat playbook? Can I mix roles and tasks in the same playbook? How do I test a role without affecting production? 📚 References & Further Reading 📦 Modularity — Why Structure Matters Roles enforce a predictable directory hierarchy that isolates tasks, variables, handlers, and files. What this does: # roles/webserver/tasks/main.yml - name: Install Nginx apt: name: nginx state: present - name: Deploy configuration template: src: nginx.conf.j2 dest: /etc/nginx/nginx.conf mode: '0644' notify: Restart Nginx # roles/webserver/handlers/main.yml - name: Restart Nginx service: name: nginx state: restarted tasks/main.yml: defines the ordered steps the role performs. handlers/main.yml: runs only when notified, preventing unnecessary restarts. The directory roles/webserver groups all related artifacts, making the role portable. Because the role encapsulates its logic, a playbook can invoke webserver without repeating internal steps. This eliminates duplication and aligns with the DRY principle. Key point: Enforced structure turns a loose collection of tasks into a self‑contained unit that can be shared across multiple playbooks. 🧩 Reusability — When Scaling Demands Roles Roles enable r

2026-06-15 原文 →
AI 资讯

Hermes-Crew Hybrid: A Hybrid Architecture for Secure Multi-Agent AI Workflows

Hermes-Crew Hybrid: A Hybrid Architecture for Secure Multi-Agent AI Workflows I built a hybrid system that combines a central orchestrator (Hermes) with temporary CrewAI micro-crews, protected by 3 layers of security. Here's what it does and why it matters. The Problem Multi-agent AI systems are powerful but dangerous. When you chain multiple agents together, a single compromised agent can poison the entire workflow. Existing solutions are either too heavy (enterprise PKI infrastructure) or too light (basic regex filters). The Solution: 3-Layer Security Layer 1 — Pre-execution (MCP Tool Auditor): Before any agent can register a tool, it's audited for malicious instructions. Layer 2 — Runtime (Agent Fixer Stage): Every output from every agent passes through a 3-stage pipeline (normalization → pattern matching → embeddings) in under 1ms. Layer 3 — Pre-commit (Code Safety Hook): Before any git commit lands, the diff is analyzed by CrewAI + Ollama local. Malicious code gets rejected automatically. Architecture Hermes (Director) │ ├── MCP Tool Auditor → verifies tools before registration │ ├── Execution: venv (fast) / Docker (isolated) / auto (smart) │ ├── Agent 1: Researcher │ ├── Agent 2: Analyst │ └── Agent 3: Writer │ ├── Security Gateway (Agent Fixer Stage) → filters output (<1ms) │ └── Consolidator → parses output + generates Obsidian notes What Makes It Different 1. Portable by design. Zero hardcoded paths. Every user configures their own .env . 2. Multi-model via LiteLLM. Works with Ollama local, OpenAI, Anthropic, Gemini, Groq, OpenRouter — any provider. 3. Local-first. Everything runs on the user's machine. No cloud dependencies required. 4. Obsidian integration. Every analysis generates a structured note with YAML frontmatter. Code Safety Hook in Action When you run git commit with malicious code: ❌ [ COMMIT RECHAZADO] Code Safety detected risks: → CrewAI detected vulnerabilities: VERDICT: FAIL → Agent Fixer Stage detected anomalies: High threat score: 1.05 Fo

2026-06-15 原文 →
AI 资讯

I scraped Chrome Web Store reviews to find abandoned extensions that still have 100k+ users

I've shipped 4 Chrome extensions and 2 VS Code extensions. The advice that always sounds smart — "find a popular extension the dev abandoned, rebuild it better" — is miserable in practice. You open the Web Store, see 100k users and a 4.4 rating, think you found gold, then burn a weekend reading reviews only to realize half the complaints are unfixable traps (sync died, login broke, backend gone). So I built a small pipeline to do the boring part automatically. The method Scrape public Chrome Web Store metadata — users, rating, last-updated date. Filter: 20k–300k users, 18+ months without an update, rating 3.3–4.4 (good enough to prove demand, bad enough to prove pain). Pull up to 50 recent reviews per candidate via public CWS data. Score each one: score = log10(users)10 + months_stale0.5 + feature_request_count2 - trap_count1.5 The key part is trap_count — I subtract points for complaints about sync/login/server issues, because those are unfixable without inheriting someone else's dead backend. High "demand" with high trap count is a mirage. One example Extension Manager — 100k users, 4.4★, last updated ~25 months ago. Looks healthy until you read the 1–2★ reviews: "The site-specific rules feature simply does not work… the core feature advertised is broken." "It won't save any changes made… extensions are re-enabled automatically." A user even posted an RCE report: the dev parses JSON with a Function(str)() fallback — executing arbitrary code from untrusted input. That's not "build a clone." That's "fix the rules engine, kill the eval, add local backup, ship something 100k people already want." The counterintuitive part The highest-scoring extension in my list (200k users, abandoned ~4 years) is actually the worst business opportunity — it's a simple toggle utility whose users will never pay, and the original asks for camera/mic permissions (adware-grade). Raw download counts would put it at the top of your build list. Revenue potential buries it. That gap between "

2026-06-15 原文 →
AI 资讯

How to Automate Publishing to CSDN and WeChat MP Using Playwright (When APIs Fail)

Overview Today's focus was on automating article publishing to CSDN and WeChat MP (微信公众号) using Playwright, after CSDN deprecated its public Open API. Key achievements include: injecting Markdown content into CSDN's dynamic editor, handling title input quirks, implementing QR code login for WeChat MP, updating the Dev.to API publisher, and consolidating platform configs into a single YAML file. We also fixed session log capture after a Claude Code update changed the log file path. Problems and Solutions 1. CSDN Open API Deprecation → Browser Automation Background : In early 2026, CSDN silently shut down its public Open API. All endpoints returned 404/403. We needed a fallback to keep publishing to China's largest developer platform. Solution : Use Playwright to simulate a real user login and article creation. The approach: Launch a headless Chromium browser. Navigate to CSDN's login page. Perform one-time manual login via QR code. Serialize cookies to csdn_cookies.json . On subsequent runs, load the cookies and skip login. Go to the editor, inject Markdown content via DOM manipulation, fill the title, and click publish. Code snippet : import asyncio from playwright.async_api import async_playwright async def publish_to_csdn ( title : str , content_md : str ): async with async_playwright () as p : browser = await p . chromium . launch ( headless = True ) context = await browser . new_context ( storage_state = " csdn_cookies.json " if exists else None ) page = await context . new_page () await page . goto ( " https://mp.csdn.net/mp_blog/creation/editor " ) # Inject content await page . evaluate ( f ''' () => {{ const editor = document.querySelector( ' .editor-content ' ); if (editor) {{ editor.innerHTML = ` { escaped_content } `; editor.dispatchEvent(new Event( ' input ' , {{ bubbles: true }})); }} }} ''' ) # Fill title await page . fill ( ' #title-input ' , title ) await page . click ( ' button:has-text( " 发布 " ) ' ) await page . wait_for_url ( " **/mp_blog/manage/ar

2026-06-15 原文 →