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

标签:#an

找到 1535 篇相关文章

AI 资讯

🚦Modern Angular Guards: Architecture, Best Practices & Enterprise Patterns

Modern Angular Guards: Architecture, Best Practices & Enterprise Patterns A deep dive into designing lightweight, composable, and maintainable routing guards in modern Angular applications. Table of Contents Introduction Why Guards Exist The Golden Rule of Angular Guards Functional Guards: The Modern Standard CanActivateFn: Authentication Guard CanMatchFn: Permission-Based Route Matching CanDeactivateFn: Unsaved Changes Guard CanActivateChildFn: Nested Route Protection Signals + Guards: Reactive Permission State Feature Flags in Routing Guard Composition Patterns UrlTree Redirects vs Imperative Navigation Async Guards: When and How Permission Service Architecture Role-Based Access Control (RBAC) Permission-Based Access Control (PBAC) Route Data for Configuration Lazy Loading with Guards Standalone Routing with provideRouter Route-Level Providers Guards vs Interceptors Guards vs Backend Authorization Performance Considerations Navigation UX Best Practices Error Handling in Guards Testing Guards Common Mistakes Production Checklist Enterprise Routing Insights Conclusion Introduction In modern Angular applications, routing guards have evolved from class-based monoliths into lightweight, composable functions. This shift isn't just syntactic—it's architectural. As Angular applications become larger and more complex, the routing layer becomes a critical piece of the architecture. Guards are the gatekeepers of your navigation, but they should never become the orchestrators of your application logic. This article is for senior Angular developers, software architects, and team leads who are designing routing strategies for enterprise-scale applications. We won't explain what a route guard is—we'll explore how to architect them properly. Why Guards Exist Guards exist to protect navigation boundaries. They evaluate whether a transition should proceed, redirect, or be blocked. In modern Angular, this is achieved through functional guards that return: boolean — allow or block na

2026-07-01 原文 →
AI 资讯

Presentation: The Infrastructure Challenge Behind Production AI

The panelists explain the realities of running AI systems reliably at scale. While building models is solved, maintaining production databases under constant pressure is not. They discuss the emerging architectural decisions separating teams that scale gracefully from those facing catastrophic outages, and what engineering leaders must rethink today. By Simerus Mahesh, Alex Infanzon, Meryem Arik, Luca Bianchi, Renato Losio

2026-07-01 原文 →
AI 资讯

Papa Johns Surveillance-Based Advertising

Papa Johns is spying on people’s buying activities to predict when they are low on food: The pizza chain recently tapped NBCUniversal, Instacart and the dentsu-owned media agency Carat for help reaching consumers when they’re low on groceries—and thus more likely to be swayed by a mouth-watering ad. The idea is to reach hungry consumers by “knowing what is in their fridge without being too creepy,” said Carrie Drinkwater, chief investment officer at Carat. To achieve that goal, NBCU and Instacart created a custom audience of shoppers who regularly purchase grocery staples on Instacart, such as eggs, milk, meat and produce. Based on that data, Papa Johns can determine which days of the week certain consumers are likely to run out of groceries and serve them an ad on NBCU streaming content accordingly. The brand served custom creatives to consumers based on their food preferences—such as whether they buy meat regularly—with QR codes and calls to action such as, “Light on groceries?” or “Empty fridge?”...

2026-07-01 原文 →
开发者

客戶開價太低嗎?Freelancer 接案前的 3 問決策樹

客戶開價太低嗎?Freelancer 接案前的 3 問決策樹 客戶說:「就改幾行代碼,收這麼多?」 你是不是也曾這樣懷疑過自己? 每個 freelancer 都遇過這種時刻——客戶開了一個數字,你直覺「好像太低了」,但又說不出具體原因。以下是三個問題,幫你在 30 秒內判斷一個報價是否值得接。 3 問決策樹 Q1:這個價格是否覆蓋你的實際時間成本? 別只算「改了幾行代碼」。真實成本包括: 讀懂陌生的 codebase(新手可能 3 小時起跳) 本地環境折騰(特別是別人維護的老項目) 測試和部署風險(部署壞了誰負責?) 客戶來回溝通的成本(「再大一點」「這個藍再淺一點」) 未知因素:如果代碼原作者已經不在,你是在維修「別人的技術債」 快速算法 :把報價 ÷ 你估計的總小時數 = 每小時實際時薪。拿這個數字和你的底線比(建議:不是你「想要」的時薪,而是你「能接受吃飯」的時薪)。 如果低於底線 30%,進 Q2。 Q2:需求是否清楚到可以控制風險? 報價低且需求模糊 = 高危信號。 以下任一癥狀存在,提高風險溢價或拒絕: 「就簡單改一下」——沒有定義邊界 沒有明確定義「完成」的標準——上線了算完成?客戶滿意了算完成? 對方說「你先做再說」——這句話幾乎等於「我打算白嫖你」 沒有提供任何文件或代碼庫 access——等於讓你盲開 決策樹 : 需求不清楚 + 報價低 → 報價必須上浮 50%,否則不接 需求不清楚 + 報價合理 → 可以談,先付定金再動工 需求清楚 + 報價低 → 進 Q3 Q3:這個案子是否帶來明確後續價值? 有兩種情況可以在低報價下仍然接: 確定的後續項目 :客戶明確說「這個做好了,下個月還有 X 個功能要做」 戰略性客戶 :這個客戶有公開作品價值(大厂案例、知名公司、能寫進 portfolio 的上線項目) 如果兩者都沒有,低報價等於純粹的自我低估。 真實案例:隱藏成本解析 案例 1:$200 改 3 行 CSS 客戶說:「就改導航列的顏色,$200 應該夠了吧?」 表面看:3 行 × $66/行 = 天價。 現實: 理解整個樣式系統、找到正確的 CSS 檔案:2 小時 本地環境折騰(別人的專案,Node 版本衝突):1 小時 反覆修改確認視覺效果:3 小時(客戶說「那個藍再淺一點、再加個 hover 效果」) 部署時發現壞了其他頁面:2 小時 客戶最後說「還是原來的好」:情緒成本 實際時薪 :$200 ÷ 8 小時 = $25/小時,低於 freelancer 最低生存線。 案例 2:$2,000 報價改 2 天的「簡單項目」 客戶說:「做一個登入系統,就基本功能,2 個禮拜夠了吧?」 報價 $2,000,看起來還不錯。 現實: 需求訪談:4 小時(客戶一開始說「就登入」,後來才說「還要有第三方登入、密碼重置、邀請機制」) 設計資料庫結構:3 小時 實現 Registration + Login + OAuth:6 小時 測試覆蓋:4 小時 文件撰寫和交接:2 小時 實際 :19 小時 × $105/小時 = $1,995 ——這個案子壓根不賺錢 常見陷阱:為什麼低報價 freelancer 總是吃虧 1. 「就幾行代碼」陷阱 代碼行數 ≠ 工作量。真正的成本在「理解上下文」——你得讀懂別人的代碼邏輯,這可能比你自己寫慢三倍。 2. 「簡單的 SQL」陷阱 每一條看似簡單的 UPDATE 語句,背後可能是: 凌晨 3 點資料庫突然鎖死 備份失敗、沒有測試環境 正式資料一個失误就沒了 3. 「長期合作」陷阱 客戶說「我們長期合作」通常是好事,但前提是—— 報價不能因為「長期」而打折 長期合作應該帶來穩定收入,不是穩定低價 你現在有一個具體報價嗎? 如果客戶給了你一個數字,你不確定是否該接—— For $10, I'll review one client offer and tell you whether it looks underpriced, risky, or worth taking. 直接發報價截圖或文字到 paypal.me/cheapuno ,標註「報價審查」,24 小時內回覆具體分析。 快速決策檢查表(列印出來放桌邊) □ 報價 ÷ 預估時數 > 我的底線時薪? □ 需求有明確定義邊界嗎? □ 有隱藏的技術債或未知因素嗎? □ 客戶有明確的後續項目或品牌價值? □ 我有權利說「不」嗎? 如果以上有任何一個「否」,這個報價需要重新談。 如果你想系統性学会如何報價、報價低了怎麼談、客戶不接受怎麼辦——歡迎從 Freelance Pricing Master Index 開始,這裡有 14 篇文章覆蓋 freelancer 定價的各種場景。

2026-07-01 原文 →
AI 资讯

Introducing PaperQuire — Markdown to Beautiful PDFs, 100% Offline

We're excited to launch PaperQuire — a desktop app that turns plain Markdown into professional, print-ready PDFs. No cloud uploads, no accounts, no subscriptions required for personal use. Why We Built PaperQuire If you write in Markdown, you've probably hit this wall: your content looks great in your editor, but the moment you need to share it as a polished document — a proposal, a report, a spec — you're stuck copy-pasting into Word or fighting with LaTeX. We wanted something simpler. Write in Markdown, click Export, and get a document that looks like a designer made it. No extra steps, no cloud dependency, no learning curve. What PaperQuire Does Live preview — See your formatted document side-by-side as you type. What you see is what you'll get in the PDF. Professional templates — Choose from templates designed for technical docs, proposals, reports, and more. Every template supports custom branding: your logo, your colors, your fonts. Offline-first — Your documents never leave your machine. PaperQuire runs entirely on your desktop — macOS, Windows, and Linux. Plugin system — Extend PaperQuire with plugins for diagrams (Mermaid), math (KaTeX), syntax highlighting, and more. AI Assist — Bring your own API key and get writing suggestions, grammar fixes, and content generation right inside the editor. How It Works Open PaperQuire and start writing Markdown — or open an existing .md file Choose a template and customize your branding (logo, colors, fonts) Click Export to generate a polished PDF instantly Share your document with confidence The entire process takes seconds, not minutes. Free for Personal Use PaperQuire is free for personal use with no restrictions on the core features. The Pro plan adds advanced exports (DOCX, HTML), batch processing, and priority support for teams that need more. Get Started Download PaperQuire for your platform: macOS (Apple Silicon) Windows (x64) Linux (x86_64) Check out the documentation for a quick walkthrough, or just start writi

2026-07-01 原文 →
AI 资讯

Anthropic’s long-sidelined Fable 5 is greenlit to return

After weeks of negotiating with the Trump administration, Anthropic is finally going to be able to bring Claude Fable 5 back online. In a post on X, Anthropic said it plans to begin restoring access tomorrow. Anthropic: We've received notice that the Department of Commerce has lifted export controls on Claude Fable 5 and Mythos […]

2026-07-01 原文 →
开发者

One Year

A year ago today, I started at Approov. A hundred days in, I wrote about the transition: leaving management, the refreshing day-to-day feedback loop, the strange experience of relearning a craft I thought I'd lost. I stand by most of it. But a hundred days is enough to notice a change; it takes a year to understand it. So here is what a year taught me that a hundred days couldn't. The rust that mattered At a hundred days I called myself rusty. I was. I reached for patterns that no longer fit and looked up syntax I once knew by heart. I expected that to be the hard part. It wasn't. The rust came off faster than I feared, and somewhere along the way I realised I'd been worried about the wrong thing entirely. The agentic era arrived in earnest this year, and it quietly rewrote the job description. The premium skill is no longer how fast you can produce code from memory. It's whether you can write a precise specification and make a strong architectural decision, then judge honestly whether what comes back is any good. Those are not new skills for me. They are the exact skills that years of reviewing architecture and mentoring engineers had been sharpening the whole time. The craft I sat down to relearn was not the craft that turned out to matter. I spent years assuming management had pulled me away from engineering. It hadn't. It had been quietly preparing me for the version of engineering that was coming. Charity Majors has a name for the shape of this: the engineer/manager pendulum. The idea that a healthy career swings between the two, rather than treating management as a one-way door you walk through once and never come back. I didn't choose when mine swung back. But it swung the right way, and the years spent on the other side weren't lost. They were compounding. A secure transaction is a secure transaction The work itself has been a homecoming of a different kind. I spent years in payments. Now I work in mobile and API security. On paper those are different worlds

2026-07-01 原文 →
AI 资讯

Além da IA: Por que a colaboração humana é o verdadeiro motor do Open Source

A narrativa atual da tecnologia está fortemente inclinada para a automação. Com agentes de IA escrevendo boilerplate , gerando componentes e até estruturando projetos inteiros, é fácil olhar para o futuro do desenvolvimento de software e assumir que o elemento humano está diminuindo. Mas se você mantém ou contribui ativamente para um projeto open source , sabe que a realidade é bem diferente. A IA pode escrever código, mas não consegue validá-lo contextualmente contra décadas de edge cases obscuros. Ela não sabe dizer por que uma regra de negócio específica falha em produção. Mais importante ainda: a IA não constrói comunidade. A evolução de um software robusto ainda depende inteiramente de pessoas colaborando, quebrando código, reportando bugs e validando se o código realmente funciona no mundo real. Para ver isso na prática, precisamos olhar para projetos que tentam fechar lacunas geracionais gigantescas na tecnologia. Um exemplo perfeito disso é o AxonASP . A Filosofia do AxonASP: Modernizando o Legado Por muito tempo, o ASP Clássico e o VBScript foram considerados presos a um modelo de servidor obsoleto — amarrados ao IIS e deixados para trás pelas práticas modernas de deploy . O AxonASP muda esse cenário. É um runtime open source e cross-platform que trata o ASP Clássico como uma Aplicação moderna, em vez de uma relíquia do passado. Ele traz o VBScript, o ASP e, principalmente, o suporte ao JavaScript Síncrono para o futuro. Construir um runtime que lida com código legado enquanto opera em um ecossistema moderno e multiplataforma não é algo que você consegue simplesmente pedindo para um LLM. Exige um ciclo de feedback agressivo. O AxonASP está em franca evolução e apresenta altíssima compatibilidade com o ASP Clássico. Mas essa compatibilidade não é mágica — ela é o resultado direto de usuários pegando seus scripts legados de 15 a 20 anos atrás, rodando no motor, vendo onde falham e reportando exatamente o que aconteceu. Cada issue aberta e cada bug reportado p

2026-07-01 原文 →
AI 资讯

Article on Modelling, Joins, Relationships and Different Schemas In Power BI

Data Modeling, Relationships, and Schemas in Data Analytics In the fields of data analytics, data warehousing, and database management, modeling and schema design are the fundamental pillars used to organize and query information efficiently. This article provides a comprehensive guide to these core concepts. 1. Data Modeling Data modeling is the architectural process of designing how data is stored, interconnected, and accessed within a system. Core Questions Addressed: Storage: What specific data points need to be captured? Structure: How should individual tables be organized? Connectivity: How do these tables interact with one another? Levels of Data Models: Conceptual Model: A high-level business perspective focusing on entities and their relationships, devoid of technical specifications. Logical Model: Defines specific attributes, keys, and relationships. It is independent of the Database Management System (DBMS). Physical Model: The actual implementation within a database, including technical details like indexes, partitions, and storage requirements. 2. Relationships Relationships define the logic of how data in one table corresponds to data in another. One-to-One (1:1): A single record in Table A relates to exactly one record in Table B. One-to-Many (1:M): The most common relationship; for example, one Customer can place many Orders . Many-to-Many (M:M): Multiple records in one table relate to multiple records in another. This requires a Junction Table (Bridge Table) to function. Example: One Student can enroll in many Courses, and one Course contains many Students. 3. SQL Joins Joins are used to combine rows from two or more tables based on a related column. Join Type Description Inner Join Returns only the records that have matching values in both tables. Left Join Returns all records from the left table and the matched records from the right. Right Join Returns all records from the right table and the matched records from the left. Full Outer Join Returns

2026-07-01 原文 →
AI 资讯

AGENTS.md Is Not Enough for Safe AI Agent Execution

Overview AGENTS.md is useful. It gives AI coding agents a place to find repo-specific guidance: how to behave what conventions matter what areas need extra caution what kinds of changes should trigger review That is a meaningful improvement over sending an agent into a repo with no instructions at all. But AGENTS.md is not enough. It can tell an agent to be careful. It cannot, by itself, make execution safe, verification trustworthy, or review inspectable. For that, a repository needs more than instructions. It needs: declared safe commands a canonical verification path receipts that show what actually ran That is the difference between agent guidance and execution governance. Instructions Help. They Do Not Govern Execution. An instruction file is still prose. That means it can express intent, but it does not automatically create operational truth. For example, AGENTS.md can say: run the right checks before handoff avoid destructive commands do not edit generated files ask before touching infrastructure Those are good rules. But notice what they leave unresolved: which checks are the right ones which commands are actually safe which paths are protected structurally versus only suggested what should count as evidence that verification happened how to tell whether a failure came from code, setup, or drift That is where many agent workflows still break down. The agent may follow the spirit of the instructions and still take the wrong execution path. Safe Commands Need To Be Explicit One of the biggest gaps in agent-oriented repos is that they often declare guidance without declaring a safe command surface. The repo may tell the agent: Run tests before you finish. But that still leaves a dangerous amount of interpretation. Which task is safe? Is it: npm test pnpm test make check docker compose run test a narrower unit-test path the CI workflow itself And if several exist, which one is canonical for a routine code change? The repo should not force the agent to infer that

2026-07-01 原文 →