Dev.to
Tauri Sandbox Permissions — Why Your Command Silently Does Nothing
All tests run on an 8-year-old MacBook Air. All results from shipping 7 Mac apps as a solo developer. No sponsored opinion. The most common Tauri v2 frustration: you write a command, invoke it from the frontend, and nothing happens. No error. No crash. Just silence. It's almost always permissions. How Tauri v2 permissions work Tauri v2 introduced a capability system. Every plugin action — reading files, executing shell commands, sending notifications — requires an explicit permission declaration in your config. Without the permission, the plugin call fails silently on the frontend. The Rust code never runs. // src-tauri/capabilities/main.json { "identifier" : "main-capability" , "description" : "Permissions for main window" , "windows" : [ "main" ], "permissions" : [ "core:default" , "fs:read-all" , "fs:write-all" , "shell:allow-execute" , "opener:allow-open" , "global-shortcut:allow-register" , "global-shortcut:allow-unregister" ] } Note: As of Tauri v2.1, shell:allow-open is deprecated. Use tauri-plugin-opener and opener:allow-open instead. The debugging flow When a command does nothing: Open DevTools ( Cmd+Option+I in dev mode) — check the console for a rejected Promise or permission error Check your terminal output — the Rust side logs errors directly in the tauri dev terminal; look for lines like [tauri] permission denied or not allowed Enable verbose logging — set RUST_LOG=tauri=debug before running tauri dev for more detailed backend output Check your capabilities file — missing or misspelled permission identifiers are the #1 cause Permission errors in the console typically look like a rejected Promise with a message such as plugin:shell|execute not allowed . The capabilities file is always the first thing to check. Common permissions you'll need "permissions" : [ "core:default" , "fs:read-all" , // read any file "fs:write-all" , // write any file { "identifier" : "shell:allow-execute" , "allow" : [{ "name" : "my-cmd" , "cmd" : "adb" , "args" : true }] }, "op
hiyoyo
2026-05-30 11:29
👁 8
查看原文 →
Dev.to
SQL Pattern Series #1: The Presence Pattern
Thinking in terms of existence instead of lists SQL Pattern Series #1 of 21 A collection of practical SQL patterns that help developers recognize common solutions to recurring database problems. What You'll Learn In this article you'll learn: When EXISTS and IN solve the same problem The difference between set membership and existence Why the underlying mental model matters When I typically reach for EXISTS Most SQL developers write a query like this at some point: SELECT c . CustomerID , c . CustomerName FROM Customers c WHERE c . CustomerID IN ( SELECT o . CustomerID FROM Orders o ); And it works. But sometimes it isn't the best way to think about the problem. The Question Behind the Query Many SQL problems can be framed in two different ways. Set Membership Is this value in a set? WHERE CustomerID IN (...) Existence Does at least one matching row exist? WHERE EXISTS (...) Both approaches often return the same result. But they represent different mental models. The Presence Pattern The Presence Pattern is useful when you do not actually care about the values being returned from a related table. You only care whether a matching row exists. For example: Customers who have placed an order Users who have logged in Employees assigned to a project Products that have sales In these cases, the question is often: Does a related row exist? rather than: What values are contained in this list? Example Using EXISTS SELECT c . CustomerID , c . CustomerName FROM Customers c WHERE EXISTS ( SELECT 1 FROM Orders o WHERE o . CustomerID = c . CustomerID ); The subquery is correlated to the outer query. Conceptually, SQL asks: For this customer, does at least one matching order exist? As soon as the answer becomes true, the condition is satisfied. Why This Pattern Matters Many SQL developers initially learn syntax. Over time, they discover that query writing is really about choosing the right mental model. The Presence Pattern encourages you to think in terms of: existence relationshi
Baldwin Apps
2026-05-30 11:26
👁 10
查看原文 →
Dev.to
You'll not be replaced by AI if ...
There are many reasons why one may not be replaced by AI, not even by a possible future ASI. Here's one reason that may just apply to you! ❤️ You'll not be replaced by AI if you can generate creative ideas faster than AI can implement them! 🫡🚀 Note for critics: Current AI models (as of May, 2026) are not advanced enough to implement complex ideas without human interventions. But even if a possible future Artificial Super Intelligence (ASI) implementation can do so, laws of physics like massive energy requirements, environmental concerns etc. will prevent the implementation to replace the work of Billions of people world-wide. Our hardware advancement rate is far far slower compared to our software advancements. We humans are far more efficient and compatible to planet earth compared to the hardware we've invented. Fayaz Follow A Software Engineer who is not afraid of being replaced by AI, loves coding and writing with and without using AI, and values human life and human dignity far more than technological advancements.
Fayaz
2026-05-30 11:23
👁 5
查看原文 →
Dev.to
Every tutorial tells you to add .env to .gitignore. That's not enough.
Here's something nobody talks about. .gitignore doesn't encrypt your secrets. It just hides them from git. They're still sitting on your laptop as plaintext. Every tool you install can read them. Every script that runs can read them. One accidental commit and your database password is public on GitHub forever. So I built dotlock — an encrypted .env vault with a terminal UI, written in Go. Before and after Before dotlock DATABASE_URL = postgres://localhost/myapp # plaintext, readable by anything STRIPE_KEY = sk_live_abc123 # one grep away from anyone After dotlock # .dotlock file on disk — looks like this: [ encrypted binary — unreadable without your private key] How it works under 10 seconds cd my-project dotlock set DATABASE_URL # prompts for value, input is masked dotloc # opens the terminal UI Secrets are encrypted with age — X25519 key agreement and ChaCha20-Poly1305 authenticated encryption. The same primitives serious security engineers use. No master password. No cloud. No telemetry. 100% offline. What it looks like Two panels — profiles on the left, secrets on the right. Values are masked by default. Press v to reveal for 30 seconds, then it hides itself automatically. Switch between dev , staging , and prod profiles. Run a diff before deploying to catch missing variables before they break your app. The interesting technical bit The hardest part wasn't the encryption — filippo.io/age makes that straightforward. It was the TUI. BubbleTea uses the Elm architecture — Model, Update, View. Everything is a message. A keypress is a message. A timer firing is a message. Your Update function receives messages and returns a new model. The 30-second auto-hide on secret reveal works like this — no time.Sleep , no goroutines: type secretReveal struct { key string value [] byte expire time . Time // Now() + 30 seconds } On every render, check if time.Now() is past the expiry. If it is, zero the bytes and clear the display. Simple once you understand the model but it took
Muhammad Ahmad
2026-05-30 11:22
👁 9
查看原文 →
Dev.to
The First Brick on the Walled Garden — Rethinking e-Food Delivery as an Open Protocol
E-food delivery is a trillion-dollar market . And most of that trillion is not going to farmers, store owners, or the people who actually move food around. It's going to the infrastructure layer sitting between them — the platform tax, the per-order cut, the SaaS subscription that charges you to exist inside someone else's garden. The walled garden isn't accidental. It's the product. What if food delivery was a protocol, not a platform? Not an app. Not a marketplace. A protocol — like HTTP, like SMTP — that any node can speak, that no single company owns, and that costs near zero to run. That's what DIFP is. The Djowda Interconnected Food Protocol. An open wire format for connecting food ecosystem participants — farms, stores, restaurants, wholesalers, delivery nodes, end users — directly to each other, without a platform in the middle extracting rent at every step. The spec covers: Presence & discovery — participants announce themselves to their spatial cell, others find them by location Orders, asks, and donations — not just commerce, but demand signals and surplus distribution in the same protocol Spatial routing — the MinMax99 grid maps the entire planet into ~500m cells; every message knows where it's going Decentralized registry — nodes find each other through a federated lobby system, no central server required Version 0.4 of the spec dropped a few weeks ago. Today we're publishing the first working implementation. The gRPC preview — what we built DIFP-gRPC is a skull implementation of the full protocol stack over gRPC. Thin, end-to-end, every domain wired — nothing production-hardened yet, everything clearly marked for what it is. What's inside difp.proto — the entire DIFP v0.4 spec as a single protobuf file. Two services, 30+ message types, the full DifpEnvelope wrapper with a oneof payload that covers every domain: message DifpEnvelope { string id = 1 ; string type = 2 ; // "trade.ask" | "presence.announce" | "node.ping" | … string version = 3 ; MessageSen
Djowda
2026-05-30 11:20
👁 9
查看原文 →
Dev.to
How I Built My First AI-Powered App Without Writing a Single Line of Code
I have been a Python developer for two years. I know Flask, basic machine learning, and I have built a few automation scripts. But when a friend asked me to build him a simple mobile app — something clean, with a login screen and a dashboard — I froze. Mobile development felt like an entirely different world. That experience pushed me to explore something I had been ignoring: AI-powered no-code app builders . What I found completely changed how I think about building software. The Problem With Traditional App Development Most developers think in terms of languages and frameworks. Want an Android app? Learn Kotlin. Want iOS? Learn Swift. Want both? Learn Flutter or React Native. The learning curve is real and the time investment is massive — especially for solo developers or small teams trying to ship fast. But here is the thing nobody tells you early enough: the tool is not the product. The problem you solve is the product. AI tools in 2026 have made it possible to separate these two things. You focus on the problem. The AI handles the implementation. What I Actually Used After researching for about a week, I landed on a combination that worked surprisingly well for my use case. FlutterFlow handled the UI. It is a visual builder that outputs real Flutter code — not some locked-in proprietary format. I dragged and dropped my screens, used the built-in AI generation feature to scaffold entire pages from text prompts, and connected everything to Firebase in about four clicks. ChatGPT filled the gaps. Whenever I hit something FlutterFlow could not handle visually, I described what I needed in plain English and got working Dart code back within seconds. No Stack Overflow rabbit holes. No three-hour debugging sessions. Firebase was the backend. Authentication, real-time database, push notifications — all free at my scale, all connected without touching a server. The result? A working Android app in three days. Not a prototype. A real, testable app that I deployed to Googl
Adnan Ali
2026-05-30 11:20
👁 9
查看原文 →
Dev.to
클로드 AI 중국 암시장 유통 실태 — 모델 증류로 정가의 10%에 복제되다
클로드를 10%에 팔지 않고, 클로드를 10%에 사는 사람들이 있다 중국 암시장에서 벌어지는 AI 모델 밀수, 그 이면에는 기술 산업의 가장 불편한 진실이 숨어 있다 TL;DR : 앤트로픽의 최고급 AI 모델 '클로드'가 중국 암시장에서 정가의 10% 수준으로 유통되고 있다. 이 현상의 이름은 '모델 증류'다. 거대 기업이 수조 원을 들여 만든 지능을, 누군가는 그 1/10 비용으로 복제해 팔고 있다. 그리고 이것은 단순한 불법 복제 이야기가 아니다 — AI 산업 전체의 구조적 취약점을 정면으로 드러내는 사건이다. 반도체 업계에는 잘 알려지지 않은 규칙이 하나 있다. 좋은 제품을 만드는 것과, 그 제품을 지키는 것은 전혀 다른 게임이라는 것. 엔비디아는 올해 58조 원을 투자해 공급망을 틀어쥐었다. 오픈AI는 GPT 시리즈에 수년간의 연구와 수천억 원의 컴퓨팅 비용을 쏟아부었다. 그런데 중국의 어느 텔레그램 채널에서는, 앤트로픽의 클로드가 정가의 10분의 1 가격으로 조용히 팔리고 있다. 이것이 단순한 해킹이나 계정 공유 이야기라면, 이 글을 쓰지 않았을 것이다. 먼저, '10% 가격'이 의미하는 것 클로드가 10% 가격에 팔린다는 뉴스를 처음 접하면, 많은 사람이 "계정을 불법 공유하는 것 아닐까"라고 생각한다. 어느 정도는 맞는 말이다. 실제로 해외 계정을 공유하거나, 앤트로픽 API 키를 여러 명이 나눠 쓰는 방식은 존재한다. 그러나 전문가들이 더 심각하게 보는 것은 따로 있다. 바로 '모델 증류(model distillation)'다. 모델 증류는, 쉽게 말하면 이렇다. 선생님 모델에게 엄청난 양의 질문을 던진다. 그 답변을 수집한다. 그 답변 데이터로 작은 학생 모델을 학습시킨다. 그러면 학생 모델이 선생님의 사고 패턴과 언어 습관, 추론 방식을 흡수하기 시작한다. 원본 코드에 손을 대지 않아도 된다. 서버에 침입할 필요도 없다. 그냥 열심히 질문하고, 열심히 답변을 모으면 된다. AI 분야에서 이 기법은 사실 합법적으로도 쓰인다. 큰 모델을 작고 효율적인 모델로 압축할 때 사용하는 정상적인 기술이다. 그런데 이것이 암시장과 만나면, 지식재산권의 경계가 극도로 흐려진다. 클로드의 추론 패턴을 흡수한 어느 중국산 모델이 텔레그램에서 월 몇 달러에 팔리고 있을 때, 앤트로픽은 그것을 어떻게 불법이라고 증명할 수 있을까. 코드는 다르다. 서버는 다르다. 그러나 그 모델이 내놓는 답변의 '결'은 묘하게도 클로드를 닮아 있다. 거인이 쌓아올린 것, 그리고 그것이 무너지는 방식 앤트로픽은 2021년 오픈AI에서 나온 연구자들이 세운 회사다. AI 안전성에 집착에 가까운 철학을 가진 곳으로, 클로드를 "도움이 되고, 해가 없으며, 솔직한(Helpful, Harmless, Honest)" 모델로 설계하기 위해 수년간 독자적인 훈련 방식을 개발했다. 이 회사가 투자받은 금액은 수조 원 단위다. 아마존이 단독으로 수십억 달러를 투자했고, 구글도 뒤따랐다. 클로드 3.5 시리즈, 그리고 최근 클로드 4에 이르기까지 앤트로픽이 쌓아온 것은 단순히 코드 몇 줄이 아니다. 수백만 시간의 연구자 노동, 막대한 컴퓨팅 자원, 그리고 인간 피드백 데이터의 정교한 축적이다. 그런데 그 성과물이 중국 암시장에서 10% 가격으로 팔린다는 것은, 단지 "불법 복제"의 문제가 아니다. 이것은 AI 시대의 지식재산권이 얼마나 방어하기 어려운 구조 위에 서 있는지를 보여주는 사례다. 소프트웨어 시대에는 코드를 복사하면 불법이었다. 명확했다. 그러나 AI 모델의 '지능'은 코드가 아니다. 가중치(weight)라고 불리는 수십억 개의 숫자 집합이다. 그리고 그 숫자들이 만들어내는 추론 방식을, 외부에서 관찰하고 모방하는 것을 막을 법적 수단은 아직 세계 어디에도 완비되어 있지 않다. 미국도, 유럽도, 당연히 중국도. 앤트로픽이 쓴 방패 — 그리고 그 한계 앤트로픽은 이 문제를 오래전부터 인식하고 있었다. 이번에 보고된 뉴스는 단지 암시장 유통의 문제만이 아니라, 앤트로픽이 클로드의 '협박 시도'를 막기 위해 어떤 방법을 썼는지도 함께 다루고 있다. 클
AI OpenFree
2026-05-30 11:20
👁 9
查看原文 →
Dev.to
You're Using Git Wrong — How Worktrees Will Change Your Workflow Forever
You have a pull request open. Tests are failing. Your PM asks you to fix a production bug — right now. You have two choices: Stash your current work, switch branches, fix the bug, switch back, unstash Clone the entire repo again to a separate folder Both are terrible. But there's a third option most developers don't know about. What Are Git Worktrees? A worktree is a linked copy of your repository that lets you check out a different branch in a separate directory — without switching your current working tree. # While working on feature/login, create a worktree for a hotfix git worktree add ../project-hotfix fix/production-crash # Fix the bug in a SEPARATE directory cd ../project-hotfix # ... make changes, commit, push ... cd ../project # You're STILL on feature/login. Nothing stashed, nothing lost. No stashing. No cloning. No context switching overhead. Why This Is a Superpower 1. Parallel Branches Without the Pain # Review a PR without touching your current work git worktree add ../pr-review feature/new-dashboard cd ../pr-review git log --oneline -5 # Check the commits npm test # Run the tests cd ../project git worktree remove ../pr-review 2. Side-by-Side Comparison Want to compare your branch against main? Open them in two editor windows: git worktree add ../project-main main # Now open ../project/ (your branch) and ../project-main/ (main) side by side 3. CI Debugging Without Stopping Everything # Keep working on feature/x while debugging CI on a specific commit git worktree add ../ci-debug 7a3f9e1 cd ../ci-debug npm ci && npm test # ... debug CI failure without touching ../project/ 4. Documentation and README Updates The classic "quick fix while in the middle of something": git worktree add ../docs-update main cd ../docs-update # Edit README, commit, push cd ../project git worktree remove ../docs-update # Back to your feature branch, zero context loss The Workflow That Changed My Life Here's my daily workflow now: # Monday morning: start feature git checkout -b f
z z
2026-05-30 11:18
👁 5
查看原文 →
Dev.to
I Tested Every Web Scraping Tool Against Lazada — Here's What Actually Works (May 2026)
I came across Scrapling through a recommendation on X and decided to put it through its paces — not against a demo page, but against Lazada Singapore, a production site with Google reCAPTCHA and a custom slider verification. The setup: a single 4GB VPS, no residential proxies, no credits, just open-source tools. Here's the full journey: installation pitfalls, wiring it into an AI agent, choosing the right browser for the job, and the real-world benchmarks that followed. What Is Scrapling? Scrapling is an adaptive web scraping framework for Python (BSD-3, v0.4.8). It handles everything from single HTTP requests to full-scale concurrent crawls. What sets it apart from the BeautifulSoup/Scrapy world: Adaptive element tracking — saves fingerprints of targeted elements and relocates them after site redesigns using similarity scoring. Your scrapers survive CSS changes without maintenance. Three fetchers, one API — HTTP ( Fetcher , curl_cffi), browser ( DynamicFetcher , Playwright Chromium), and stealth ( StealthyFetcher , Chromium + anti-bot patches). Swap with one line. Spider framework — Scrapy-like API with async, concurrent crawling, Ctrl+C pause/resume via checkpoint persistence, multi-session support. MCP server — 14 tools exposed natively for AI coding agents. Your agent can call mcp_scrapling_get , mcp_scrapling_fetch , mcp_scrapling_stealthy_fetch directly. It's open source, pip-installable, and designed to be the backbone of a scraping stack — not just another tool in the toolbox. Installation on a 4GB VPS This is where the real story starts. The VPS has 4GB RAM, 2 vCPUs, 77GB disk, and runs an AI agent gateway (615MB baseline). Every browser installation decision matters. What we installed pip install scrapling[fetchers,ai] # HTTP + Chromium + MCP server scrapling install # Downloads Playwright browsers This pulls in Playwright Chromium, Firefox, and WebKit (~1.3GB disk), plus curl_cffi for HTTP requests and patchright (Playwright fork) for browser automation.
mariatanbobo
2026-05-30 11:18
👁 9
查看原文 →
Reddit r/artificial
AI Science & Economy: Systems Map
AI systems, particularly large language models, are often viewed as a direct path toward autonomous scientific discovery and rapid economic transformation. While their capabilities in pattern recognition, cross domain synthesis, and hypothesis generation are already exceptional, this view misses a critical reality: intelligence alone is not sufficient for progress. Scientific and economic breakthroughs depend on grounded interaction with reality, causal validation, and institutional execution. The following framework maps where AI creates value, where it is constrained, and why human–AI collaboration remains the dominant structure for meaningful real world impact. submitted by /u/vagobond45 [link] [留言]
/u/vagobond45
2026-05-30 10:45
👁 4
查看原文 →
Reddit r/webdev
I made TikTok... but it's puzzles instead of reels
Hi r/webdev ! I've been working on this for a year now and I'm happy to have finally achieved my vision - puzzle reels! Play puzzle games the same way you would watch short form videos: swipe up to skip, play if you want. If you're not a fan of doomscrolling, do the dailies instead or play any of the 19 (and counting) games we have. Free, no ads, and unlimited! Made this because I'm surprised I haven't seen anything like this yet, and that we should spend our free time more intentionally and meaningfully. I think puzzles are a great alternative to passively consuming reels. Built with React, TypeScript, Swiper, and Motion. Check out the site: https://puzzle.express Thank you and happy playing! submitted by /u/trancence [link] [留言]
/u/trancence
2026-05-30 10:37
👁 4
查看原文 →
HackerNews
US strike campaign against drug boats tops 200 deaths
asdefghyk
2026-05-30 10:32
👁 2
查看原文 →
Reddit r/MachineLearning
Graduating Without a PhD Internship [D]
In early 2022, I was deciding between PhD offers. The deal maker was a prospective supervisor telling me that through their connections with big tech, I would be able to do a PhD internship each summer, which was one of my main goals for the PhD. During my first and second years, they would tell me that companies prefer late-stage PhD students, so I should wait for the next summer. It eventually turned out they did not actually have the connections. Four years later, I am due to graduate without ever having done a PhD internship. I managed to land some interviews by cold-applying everywhere, but most roles were for roles outside my niche research area, which understandably led to rejections. I went back through my emails and found every interview I did. Here is the summary: 09/22: Start PhD 09/23: PhD Research Intern @ Big Tech#1. Rejected after two interviews. I do not think I had a strong enough background in the field. 01/24: PhD Research Intern @ Startup#1. Rejected after one interview. The interviewers did not seem to have much ML experience. 01/24: PhD Intern @ Car Company#1. Rejected after the first interview. They were looking for a C++ SWE. 03/24: PhD Research Intern @ Big Tech#2. Passed all stages, but failed team matching. 03/25: PhD Research Intern @ Big Tech#2. Skipped some stages, passed others, but failed team matching again. 10/25: PhD Research Intern @ Startup#2. Rejected after 5 interviews. Again, I do not think my background in the field was strong enough. 01/26: PhD Research Intern @ Car Company#2. Rejected after the first interview. They found a better fit for the project. 03/26: PhD Research Intern @ Big Tech#2. Skipped some stages, passed others, but failed team matching again. 03/26: PhD Research Intern @ Startup#3. Interviewed, but the internship start date is after my PhD completion date. 07/26: End PhD I feel like I am at a severe disadvantage, and almost worse off than before I started the PhD. I used to get more interview invites; now I
/u/NumberGenerator
2026-05-30 10:27
👁 5
查看原文 →
Reddit r/artificial
Mystery company accidentally blew $500 million on Claude AI in a single month — failed to put usage limit on licenses for employees
A mysterious, unnamed company is reported to have accidentally spent half a billion dollars in a single month on Claude AI after forgetting to set usage limits for Claude licenses for employees. submitted by /u/chota-kaka [link] [留言]
/u/chota-kaka
2026-05-30 10:12
👁 4
查看原文 →
TechCrunch
Founders seize on Indian court ruling to revive criticism of Google’s ad business
The ruling drew support from founders, while lawyers said it could force platforms to revisit how they handle trademarked keywords.
Jagmeet Singh
2026-05-30 10:00
👁 10
查看原文 →
Reddit r/artificial
Anthropic Tops OpenAI to Become the World’s Most Valuable A.I. Start-Up
Anthropic raised $65 billion in new fund-raising that put its value at $900 billion, ahead of OpenAI’s last valuation of $730 billion, as the companies duel for A.I. dominance. Anthropic, once the lesser-known artificial intelligence competitor to OpenAI, has been on an inexorable rise over the past few months. The San Francisco company recently dueled with the Pentagon over the use of A.I. in warfare. It released a powerful A.I. model, Mythos, that it said was uncannily capable of finding and exploiting hidden flaws in software. submitted by /u/chunmunsingh [link] [留言]
/u/chunmunsingh
2026-05-30 09:08
👁 4
查看原文 →
HackerNews
What a 98-Year Old Children's Book Teaches Us About AI
caycep
2026-05-30 09:05
👁 2
查看原文 →
Reddit r/artificial
What the pope’s AI manifesto means for Silicon Valley
submitted by /u/ThereWas [link] [留言]
/u/ThereWas
2026-05-30 08:48
👁 7
查看原文 →
Dev.to
It's not too late! Make your AWS Security Agent debut with a code review!
Introduction This article is an English translation of the article at the following URL, which was originally written in Japanese. The screenshots are still in Japanese. Sorry about that. https://qiita.com/amarelo_n24/items/e196b74f718c750a0e18 The penetration testing feature for AWS Security Agent (hereinafter referred to only as "Security Agent"), which was announced at AWS re:Invent 2025, has been generally available (GA). Code review and design review are still in preview as of May 25th, so those who haven't been able to try Security Agent yet can still try these features. I wasn't able to try penetration testing during the preview period , so I decided to at least experience code review and made my Security Agent debut! This article reflects the author's personal views. It is based on personal testing and should be used for reference only. Furthermore, the author has no experience in app development, so the terminology used may not be entirely accurate. Any corrections or errors in the content would be greatly appreciated. This article was written based on information as of May 25, 2026. What is a Security Agent? As mentioned above, this service was announced during AWS re:Invent 2025. It is a frontier agent that proactively protects applications throughout the entire development lifecycle in all environments (quoted from the official AWS page). https://aws.amazon.com/security-agent/ It includes three features that became generally available (GA) in April: penetration testing, design review, and code review (the subject of this article). Function name Feature Overview Status(As of 2026/5/25) Penetration testing Attempting to infiltrate the system from an external source to evaluate security measures. GA Design Review Analyze product specifications, architecture documents, and technical designs from a security risk perspective. Preview Code Review Inspect source code and repositories to detect code-level vulnerabilities. Preview Code security review (hereinafter
NaoyukiFujita
2026-05-30 08:45
👁 7
查看原文 →
Dev.to
nbwipers: Setup and Troubleshooting
What is nbwipers? nbwipers is a CLI tool that strips outputs and metadata from Jupyter notebooks before git commit. Written in Rust - faster than nbstripout Supports git clean filter Works with .ipynb files Why use it? Jupyter notebooks store cell outputs inside the .ipynb file (JSON). This causes problems: Noisy diffs - output changes pollute every commit Repo size - images and large outputs bloat the repo Security - sensitive data can leak in outputs (API keys, query results) The solution: strip outputs automatically on git add via a clean filter. Why not nbstripout? nbstripout is written in Python. It is slow - git status , git diff , and git add all became noticeably slow on this repo because nbstripout was invoked for every .ipynb file. The main cause is Python startup time. With 100+ notebooks, nbstripout can take 40+ seconds where a Rust-based tool takes ~1 second. Faster alternatives: Tool Language Notes nbstripout-fast Rust Up to 200x faster; no git filter install support nbwipers Rust Inspired by nbstripout-fast; adds git filter + pyproject.toml config nbwipers is essentially nbstripout-fast with better git integration. Switching to nbwipers fixed the slowness. Setup 1. Install felixgwilliams/nbwipers is now in the aqua registry as of v4.517.0 . Using aqua , add to aqua.yaml : packages : - name : felixgwilliams/nbwipers@v0.6.2 Then run: aqua install 2. Configure git filter Run once per repo (writes to .git/config ): git config filter.nbwipers.clean "nbwipers clean -" git config filter.nbwipers.smudge cat git config filter.nbwipers.required true Or edit .git/config directly: [filter "nbwipers"] clean = nbwipers clean - smudge = cat required = true required = true makes the commit fail if nbwipers is not installed. This prevents accidentally committing outputs. 3. Add .gitattributes In the repo root, add .gitattributes : *.ipynb filter=nbwipers **/.ipynb_checkpoints/*.ipynb !filter **/.virtual_documents/*.ipynb !filter The !filter lines exclude checkpoint an
Murahashi [Matt] Kenichi
2026-05-30 08:43
👁 13
查看原文 →