AI 资讯
I built an AI priority inbox for GitHub pull requests — and went BYOK instead of running my own AI backend
The problem GitHub shows your pull requests in whatever order they happened to be opened — not in the order they actually need your attention. A one-line typo fix and a PR touching authentication code get exactly the same visual weight in your inbox. Multiply that across a dozen open PRs and you spend more time deciding what to look at than actually reviewing. What I built PR Focus is a Chrome extension (Manifest V3) that sits on top of GitHub's PR pages. It combines three signals into a single priority queue: CI status — failing checks bubble up PR age — stale PRs don't get forgotten AI risk score (0–100) — weighted toward changes touching auth, database, or infra code Each PR also gets a plain-English summary generated from the actual diff (not the title someone wrote at 11pm), and you can generate an approve / request-changes draft review in one click, edit it, and send — without leaving the extension. Why BYOK instead of my own AI backend This was the decision I spent the most time on. Running my own AI backend would have meant: A server in the data path of every PR diff users review — a much bigger trust ask, especially for private repos. Either eating the AI cost myself (unsustainable as a solo dev) or marking it up into a subscription. Going BYOK (bring your own key — OpenAI, Groq, Mistral, or a local Ollama instance) flips both of those: Your GitHub token and AI key live in chrome.storage.local . There's no server of mine in the path — PR diffs only ever go to the AI provider you explicitly configure. Groq's free tier is generous enough to run the AI features for free for most individual workflows. You're paying provider cost directly, with zero markup, if you pay anything at all. How it's built Manifest V3 — required rethinking persistence patterns that worked under MV2's persistent background page; service worker lifecycle and content script injection needed more careful handling. GitHub REST + GraphQL APIs rather than DOM scraping — more upfront work, but
AI 资讯
Contro il Jobs Act e il merito liquido
Gustavo Manso (Haas School of Business, UC Berkeley) e Nassim Taleb affrontano entrambi il problema centrale dell'innovazione, ma da angolazioni complementari: Manso con la precisione del contratto ottimale, Taleb con la filosofia dell'antifragilità . Entrambi convergono su un'idea contro-intuitiva: per generare innovazione dirompente, bisogna proteggere il fallimento. Manso: Il contratto come strumento di tolleranza Il lavoro di Manso si concentra sui meccanismi di incentivazione che rendono l'innovazione possibile all'interno delle organizzazioni. La sua ricerca fondamentale (2011) modella esplicitamente il trade-off tra exploration (esplorazione di azioni nuove e non testate) e exploitation (sfruttamento di azioni note). Manso dimostra che i contratti ottimali per motivare l'innovazione richiedono una combinazione specifica: tolleranza per i fallimenti nel breve termine e ricompensa per il successo nel lungo termine . Questo è l'esatto opposto del classico "pay-for-performance" (paga in base alle prestazioni), che funziona bene per compiti routine ma soffoca l'innovazione. Come ha osservato Bengt Holmström (1989), citato da Manso, le attività innovative "richiedono una tolleranza eccezionale per il fallimento" perché il processo è imprevedibile e idiosincratico. Uno studio empirico fondamentale — che applica direttamente la teoria di Manso al venture capital — ha mostrato che i VC più tolleranti verso il fallimento generano startup significativamente più innovative. Un aumento dell'1% nella tolleranza al fallimento del VC porta a un aumento dello 0,5% nelle citazioni per brevetto. L'effetto è amplificato nelle recessioni e per le startup in fase iniziale. Manso ha anche esteso questa logica al finanziamento della ricerca scientifica, mostrando come la struttura dei fondi influenzi gli studi dirompenti. La sua analisi suggerisce che le leggi del lavoro che proteggono i dipendenti dal licenziamento arbitrario — attraverso quello che gli studiosi chiamano "effetto a
科技前沿
How to personalize the screensaver on your Kindle
Once you remove lockscreen ads and toggle on book covers, here's what else you can do to customize your Kindle's screensaver.
AI 资讯
Musician and YouTuber Hainbach on ‘Breath of the Wild’ and Swiss Army Knives
Stefan Paul Goetsch, better known as Hainbach, is a German experimental composer, artist, and YouTuber who is perhaps most famous for making music with laboratory equipment and scientific instruments. He describes it as being like the "Dark Souls of synthesis." Despite using "hard mode" production techniques that often rely on telephone line testing equipment and […]
AI 资讯
while Loop, break & continue, Lists (Creation, Mutability, Methods, List Comprehension)
📌 Key Concepts Overview Concept One-Line Definition while loop Repeats code as long as a condition is True while True Infinite loop — needs break to stop break Immediately exits the loop continue Skips current iteration, moves to next List Ordered, mutable collection — heterogeneous elements allowed List Comprehension One-line way to build a list using a loop + condition List Mutability Lists can be changed in place — id() stays the same 🔁 Part 1 — while Loop The 3 Components (Critical Pattern) # 1. Initialisation 2. Condition 3. Increment/Decrement a = 1 # 1. Initialisation while a <= 10 : # 2. Condition print ( ' Devops ' ) a += 1 # 3. Increment # Without increment → INFINITE LOOP (condition never becomes False) How it works: Condition is checked before each iteration. As soon as it's False , the loop stops. Miss the increment/decrement → infinite loop (a real production hazard — can hang a script or burn CPU). while — Practical Patterns # Countdown (decrement) a = 10 while a > 0 : print ( ' Devops ' ) a -= 1 # Sum of 1 to 20 total = 0 a = 1 while a <= 20 : total += a a += 1 print ( total ) # 210 # Product (factorial-style) of 1 to 20 product = 1 a = 1 while a <= 20 : product *= a a += 1 print ( product ) # Pattern using while + string repetition str1 = ' Devops ' i = 0 while i < len ( str1 ): print ( str1 [ i ] * ( i + 1 )) i += 1 # D # ee # vvv # oooo # ppppp # ssssss for vs while — When to Use Which Use for Use while You know the iterable / number of repetitions You don't know how many times — depends on a condition Looping over list, string, range Retry logic, polling, waiting for a state # DevOps: retry logic — classic while True use case max_attempts = 5 attempt = 0 while attempt < max_attempts : print ( f ' Attempt { attempt + 1 } : Connecting to server... ' ) # if connection succeeds: break attempt += 1 while True — Infinite Loop Pattern # Always True — runs forever until break is hit # Used for: retry logic, polling, menu-driven scripts, password validati
AI 资讯
🚀 I Built DG Encoder — A Free Cloudflare Worker API for Storing Secrets, Webhooks, and Dynamic Configurations
As developers, we often need to store webhook URLs, service endpoints, configuration strings, and other values that we don't want exposed directly in frontend code. Most solutions either require setting up a backend, paying for a service, or managing API keys. API URL (Generate your endpoint here): https://dg-encoder.scriptsnsenses.workers.dev/ So I built DG Encoder . A completely free , no-API-key service powered by Cloudflare Workers that lets developers store and retrieve text-based data through simple endpoints. ✨ What is DG Encoder? DG Encoder is a lightweight API that allows you to: Store any text value Receive a unique ID Retrieve the value later through an endpoint Restrict access to specific domains Edit stored entries Delete stored entries Use the service without API keys Use the service completely free 💸 Free Forever One of the main goals of DG Encoder is simplicity. There are: ✅ No API keys ✅ No signup requirements ✅ No subscriptions ✅ No paid plans ✅ No complicated setup Just open the website, encode your value, and start using it. 🔥 Why I Built It While building web applications, I noticed that many developers need a simple way to hide values from frontend code without setting up a full backend system. Common examples include: Discord webhooks Dynamic configuration values Service endpoints Internal URLs Integration strings DG Encoder provides a quick solution by storing those values behind randomly generated IDs. Your application only needs the generated ID instead of the original value. ⚡ Key Features Encode Anything Store any string and receive a unique identifier. { "id" : "abc123xyz" } Domain Restrictions Limit which websites can access a stored value. For example: example.com myapp.pages.dev Only approved domains can successfully use the decode endpoint. Edit Existing Entries Need to replace a webhook or endpoint? Update the stored value without generating a new ID. Delete Entries Remove data whenever it is no longer needed. No API Key Required De
产品设计
oioi
a fast, glassy clipboard manager for macOS, Windows & Linux Discussion | Link
AI 资讯
Laguna by Poolside
Foundation models for agentic coding and long-horizon work Discussion | Link
AI 资讯
Inside Atlassian’s Forge Billing Architecture for Distributed Usage Tracking at Scale
Atlassian details the Forge billing platform built for usage-based pricing across its cloud ecosystem. It processes large-scale usage events with correct attribution, deduplication, and aggregation using a streaming pipeline, idempotent processing, and layered storage to enable accurate billing, near real-time visibility, and reliable reconciliation across distributed services. By Leela Kumili
科技前沿
Car manufacturers are ditching Android Auto in 2026: Here's why
Car buyers love Android Auto. Automakers? Not so much.
开源项目
🔥 FB208 / OpenBidKit_Yibiao - 开箱即用的AI标书编写工具,标书AI生成工具,投标工具箱、知识库、标书查重、废标项检查,完全开源免费,欢迎使用
GitHub热门项目 | 开箱即用的AI标书编写工具,标书AI生成工具,投标工具箱、知识库、标书查重、废标项检查,完全开源免费,欢迎使用 | Stars: 941 | 129 stars this week | 语言: JavaScript
开源项目
🔥 astral-sh / uv - An extremely fast Python package and project manager, writte
GitHub热门项目 | An extremely fast Python package and project manager, written in Rust. | Stars: 86,594 | 33 stars today | 语言: Rust
开源项目
🔥 jamiepine / voicebox - The open-source AI voice studio. Clone, dictate, create.
GitHub热门项目 | The open-source AI voice studio. Clone, dictate, create. | Stars: 30,772 | 140 stars today | 语言: TypeScript
开源项目
🔥 code-yeongyu / oh-my-openagent - omo/lazycodex: The coding agent for tokenmaxxers;the one and
GitHub热门项目 | omo/lazycodex: The coding agent for tokenmaxxers;the one and only agent harness for complex codebases. For your Codex, for your OpenCode | Stars: 63,007 | 228 stars today | 语言: TypeScript
开源项目
🔥 n8n-io / n8n - Fair-code workflow automation platform with native AI capabi
GitHub热门项目 | Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations. | Stars: 193,297 | 135 stars today | 语言: TypeScript
开源项目
🔥 carbon-design-system / carbon - A design system built by IBM
GitHub热门项目 | A design system built by IBM | Stars: 9,194 | 6 stars today | 语言: TypeScript
开源项目
🔥 ToolJet / ToolJet - ToolJet is the open-source foundation of ToolJet AI - the en
GitHub热门项目 | ToolJet is the open-source foundation of ToolJet AI - the enterprise app generation platform for building internal tools, dashboard, business applications, workflows and AI agents 🚀 | Stars: 38,040 | 5 stars today | 语言: JavaScript
开源项目
🔥 DefiLlama / DefiLlama-Adapters
GitHub热门项目 | | Stars: 1,204 | 2 stars today | 语言: JavaScript
开源项目
🔥 KelvinTegelaar / CIPP - CIPP is a M365 multitenant management solution
GitHub热门项目 | CIPP is a M365 multitenant management solution | Stars: 1,186 | 2 stars today | 语言: JavaScript
开源项目
🔥 yt-dlp / yt-dlp - A feature-rich command-line audio/video downloader
GitHub热门项目 | A feature-rich command-line audio/video downloader | Stars: 171,966 | 341 stars today | 语言: Python