<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: orville wang</title>
    <description>The latest articles on DEV Community by orville wang (@orville_wang_d2758f1be203).</description>
    <link>https://dev.to/orville_wang_d2758f1be203</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3991699%2F2dfbd35a-3ea2-4438-92b1-090e2092789a.png</url>
      <title>DEV Community: orville wang</title>
      <link>https://dev.to/orville_wang_d2758f1be203</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/orville_wang_d2758f1be203"/>
    <language>en</language>
    <item>
      <title>Why iOS Storage Numbers Are Misleading — And What Actually Fills Your iPhone</title>
      <dc:creator>orville wang</dc:creator>
      <pubDate>Sun, 12 Jul 2026 05:46:11 +0000</pubDate>
      <link>https://dev.to/orville_wang_d2758f1be203/why-ios-storage-numbers-are-misleading-and-what-actually-fills-your-iphone-16p1</link>
      <guid>https://dev.to/orville_wang_d2758f1be203/why-ios-storage-numbers-are-misleading-and-what-actually-fills-your-iphone-16p1</guid>
      <description>&lt;p&gt;Every iPhone owner has seen the contradiction: iCloud says you have 5GB free, but Settings says storage is full. One is lying. Both, actually.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Two Numbers That Don't Talk
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;iCloud (5GB free tier)&lt;/strong&gt; measures your cloud allocation: backups, iCloud Photos, Messages, app data, and documents. It has nothing to do with how much space is left on your phone.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Local storage&lt;/strong&gt; is the physical NAND on your device. It competes with apps, caches, system data, and your photo library. "System Data" alone can bloat to 20GB with zero explanation.&lt;/p&gt;

&lt;p&gt;Apple designed these as separate systems and gave them similar-sounding names. The result: millions of users who think deleting photos frees iCloud space, or that buying more iCloud fixes a full phone.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Actually Consumes Your Storage
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Screenshots: 20-30% of Most Camera Rolls
&lt;/h3&gt;

&lt;p&gt;Memes from social media. Flight bookings you never deleted. Screenshots of conversations you already archived. iOS treats them identically to vacation photos. They sit there forever unless you manually prune them.&lt;/p&gt;

&lt;h3&gt;
  
  
  Near-Duplicates: Burst Mode Fallout
&lt;/h3&gt;

&lt;p&gt;Most people take 3-5 shots of the same scene to get one good one. These near-identical photos each consume 2-5MB. Over 3 years, that is gigabytes of redundant data.&lt;/p&gt;

&lt;h3&gt;
  
  
  Blurry Photos: Pocket Shots and Motion Blur
&lt;/h3&gt;

&lt;p&gt;Every phone has dozens of accidental photos: pure black squares, motion-blur smears, inside-the-pocket shots. iOS does not flag them. It just keeps them.&lt;/p&gt;

&lt;h3&gt;
  
  
  App Caches: The Black Box
&lt;/h3&gt;

&lt;p&gt;TikTok can cache 5GB+. Instagram another 3GB. Spotify stores offline playlists as "cache." There is no per-app cache clearing in iOS. Your only option is deleting and reinstalling the app.&lt;/p&gt;

&lt;h3&gt;
  
  
  "System Data": The Most Opaque Metric in Consumer Tech
&lt;/h3&gt;

&lt;p&gt;It grows. It shrinks. Sometimes it takes 40GB for no reason. Apple provides zero visibility into what constitutes System Data. The official fix is "restore your phone."&lt;/p&gt;

&lt;h2&gt;
  
  
  What On-Device ML Can Do
&lt;/h2&gt;

&lt;p&gt;Swipe Cleaner uses Core ML running on the Neural Engine to classify photos on-device:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Screenshot detection:&lt;/strong&gt; Status bar patterns, UI elements, text overlays — classified locally with &amp;gt;95% accuracy&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Perceptual hashing:&lt;/strong&gt; pHash fingerprints catch near-duplicates even when file names differ&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Blur detection:&lt;/strong&gt; Laplacian variance computed in sub-milliseconds per image&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sensitive content:&lt;/strong&gt; OCR-based detection of documents, IDs, financial info — surfaced for user review, never auto-deleted&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Everything runs locally. No photos leave your phone. No cloud API calls. Your privacy is preserved.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Bottom Line
&lt;/h2&gt;

&lt;p&gt;iOS storage management is designed to be invisible, not transparent. Apple benefits from the confusion — you buy more iCloud instead of cleaning your phone. Understanding what actually consumes your storage is the first step to reclaiming it.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Swipe Cleaner uses on-device Core ML to classify screenshots, duplicates, and blurry photos. No cloud, no privacy tradeoffs. &lt;a href="https://www.opennomos.com/en/project/01KW95TC7VFJXZNYHNV3SJ04CN" rel="noopener noreferrer"&gt;View on OpenNomos&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ios</category>
      <category>storage</category>
      <category>ai</category>
      <category>privacy</category>
    </item>
    <item>
      <title>The Illusion of Free Storage: How iOS Misleads Users About Their Photo Library</title>
      <dc:creator>orville wang</dc:creator>
      <pubDate>Sat, 11 Jul 2026 09:51:15 +0000</pubDate>
      <link>https://dev.to/orville_wang_d2758f1be203/the-illusion-of-free-storage-how-ios-misleads-users-about-their-photo-library-1e9m</link>
      <guid>https://dev.to/orville_wang_d2758f1be203/the-illusion-of-free-storage-how-ios-misleads-users-about-their-photo-library-1e9m</guid>
      <description>&lt;p&gt;Your iPhone says "Storage Full" while iCloud happily claims you have 5GB free. Somebody is lying. The answer is: both, and neither.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Two Storage Games
&lt;/h2&gt;

&lt;p&gt;iCloud measures one thing. Your iPhone measures another. They do not talk to each other in any useful way.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;iCloud free tier (5GB)&lt;/strong&gt;: Your total cloud allocation. It includes backups, iCloud Photos, Messages in iCloud, app data, and documents. It does not mean your phone can hold 5GB more photos.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;iPhone local storage&lt;/strong&gt;: The physical NAND on your device. iOS caches, system data, apps, and your photo library all compete for this space. "System Data" alone can balloon to 20GB with no explanation.&lt;/p&gt;

&lt;p&gt;The result? You see both numbers, assume they are about the same thing, and feel gaslit.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Real Storage Culprits
&lt;/h2&gt;

&lt;p&gt;Through building Swipe Cleaner — an on-device photo management tool — I have spent months analyzing what actually fills phone storage. The answer is boring and infuriating.&lt;/p&gt;

&lt;h3&gt;
  
  
  Screenshots: The Silent Killer
&lt;/h3&gt;

&lt;p&gt;Screenshots make up 20-30% of most camera rolls. Memes saved from social media. Screenshots of flight bookings you never deleted. Screenshots of conversations you already archived. iOS treats them identically to photos you took on vacation. They sit there forever unless you manually delete them.&lt;/p&gt;

&lt;h3&gt;
  
  
  Near-Duplicates: Burst Mode Fallout
&lt;/h3&gt;

&lt;p&gt;Take 12 photos of the same sunset to get one good one? iOS keeps all 12. Burst mode nominally groups them, but if you use the regular shutter multiple times — which everyone does — they are independent files. 5 shots of your dog = 5 separate 3MB files.&lt;/p&gt;

&lt;h3&gt;
  
  
  Blurry Photos: Pocket Shots
&lt;/h3&gt;

&lt;p&gt;Every phone owner has dozens of accidental photos: pure black squares, motion-blur smears, inside-the-pocket shots. These average 2-3MB each. iOS does not flag them. It just keeps them.&lt;/p&gt;

&lt;h3&gt;
  
  
  App Caches: The Unexplained Black Box
&lt;/h3&gt;

&lt;p&gt;"System Data" in iPhone Storage is the most opaque metric in consumer tech. It can grow by gigabytes in a day. It shrinks when it feels like it. There is no way to clear it except waiting or wiping the phone. Apps like TikTok and Instagram routinely cache 5GB+ each without telling you.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Apple Could Fix Tomorrow
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Unified storage language.&lt;/strong&gt; Show one number that represents actual remaining space across local and cloud.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Auto-classify photos.&lt;/strong&gt; Screenshots, duplicates, and blurry shots should be surfaced as cleanup targets, not hidden among 10,000 vacation photos.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Transparent caches.&lt;/strong&gt; Tell me which app is using how much cache. Let me clear it per-app.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Smart storage recommendations.&lt;/strong&gt; iCloud already runs ML on-device. Use that same Neural Engine to suggest what to delete instead of just saying "Storage Almost Full."&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What You Can Do Right Now
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Audit your largest apps.&lt;/strong&gt; Settings &amp;gt; General &amp;gt; iPhone Storage. Sort by size. Offload apps you do not use.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Delete screenshots in bulk.&lt;/strong&gt; Search "Screenshot" in Photos, select all, delete. You will free 5-15GB on average.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Clear Safari cache.&lt;/strong&gt; Settings &amp;gt; Safari &amp;gt; Clear History and Website Data. This alone can free 2-5GB.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Disable iCloud Photos if you don not need it.&lt;/strong&gt; It syncs your entire library, filling both local and cloud storage.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use on-device tools.&lt;/strong&gt; Photo management tools that run locally — no uploads — can identify what is safe to delete without privacy tradeoffs.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  The Bottom Line
&lt;/h2&gt;

&lt;p&gt;Storage management on iOS is designed to be invisible, not transparent. Apple banks on you paying for iCloud rather than actually cleaning your phone. As long as the numbers are confusing, the subscription revenue keeps flowing.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Swipe Cleaner uses on-device Core ML to classify screenshots, duplicates, and blurry photos. No cloud, no privacy tradeoffs. &lt;a href="https://www.opennomos.com/en/project/01KW95TC7VFJXZNYHNV3SJ04CN" rel="noopener noreferrer"&gt;View on OpenNomos&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ios</category>
      <category>storage</category>
      <category>privacy</category>
      <category>mobile</category>
    </item>
    <item>
      <title>Building On-Device ML for iOS Photo Management</title>
      <dc:creator>orville wang</dc:creator>
      <pubDate>Fri, 10 Jul 2026 15:15:44 +0000</pubDate>
      <link>https://dev.to/orville_wang_d2758f1be203/building-on-device-ml-for-ios-photo-management-2iii</link>
      <guid>https://dev.to/orville_wang_d2758f1be203/building-on-device-ml-for-ios-photo-management-2iii</guid>
      <description>&lt;p&gt;The average iPhone camera roll has over 10,000 photos. Most are never looked at again. Manual cleanup does not scale. Sending your photo library to a cloud API for classification is a privacy disaster waiting to happen. The answer is on-device machine learning.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why On-Device Matters
&lt;/h2&gt;

&lt;p&gt;Your camera roll contains the most personal data on your phone. Passport photos, bank screenshots, private conversations, medical documents. Uploading this to any server breaks fundamental trust.&lt;/p&gt;

&lt;p&gt;Apple built the Neural Engine into every iPhone since the A11 chip. It runs ML inference at low power with exceptional throughput. For photo classification, it is the perfect workload — embarrassingly parallel, latency-sensitive, and privacy-critical.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Model Pipeline
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Screenshot Detection
&lt;/h3&gt;

&lt;p&gt;Screenshots have distinct visual signatures: UI elements, status bars, text overlays, app chrome. A fine-tuned vision model classifies them with &amp;gt;95% accuracy. The key insight: status bar patterns are highly consistent across iOS versions, making them reliable features.&lt;/p&gt;

&lt;h3&gt;
  
  
  Perceptual Hashing for Duplicates
&lt;/h3&gt;

&lt;p&gt;Perceptual hashing (pHash) computes a fingerprint for each image. Similar photos cluster below a distance threshold. This catches burst-mode variants, re-downloaded files, and near-identical edits. Running pHash on the CPU while the Neural Engine handles classification maximizes throughput.&lt;/p&gt;

&lt;h3&gt;
  
  
  Blur Detection via Laplacian Variance
&lt;/h3&gt;

&lt;p&gt;Laplacian variance measures sharpness. Low variance indicates motion blur or a pocket shot. This is fast enough to compute during scrolling — sub-millisecond per image.&lt;/p&gt;

&lt;h3&gt;
  
  
  Sensitive Content Detection
&lt;/h3&gt;

&lt;p&gt;OCR extracts text from images. The system flags document-like patterns: ID cards, passports, tax forms, bank statements. These are not auto-deleted — they are surfaced for user review. Privacy means never making decisions without consent.&lt;/p&gt;

&lt;h2&gt;
  
  
  Performance Considerations
&lt;/h2&gt;

&lt;p&gt;Processing 10,000 photos requires careful orchestration:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Batch inference via VNImageRequestHandler with a serial queue to avoid thread explosion&lt;/li&gt;
&lt;li&gt;Thumbnail-first approach: classify using low-resolution thumbnails first, full-resolution only for comparison&lt;/li&gt;
&lt;li&gt;Background processing with BGTaskScheduler so the user never sees a loading spinner&lt;/li&gt;
&lt;li&gt;Result caching: pHash values and classifications stored in a local SQLite database, avoiding recomputation&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  UX: The Swipe Interface
&lt;/h2&gt;

&lt;p&gt;Classification is half the problem. The other half is making decisions fast. A Tinder-like card interface — swipe right to keep, left to delete — turns a tedious chore into a 5-minute activity. The AI pre-selects the likely action so most swipes are confirmations, not decisions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Lessons Learned
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Start with one model. We shipped three ML features at launch (screenshots, duplicates, blur). Focusing on duplicates alone would have been a cleaner v1.&lt;/li&gt;
&lt;li&gt;Privacy messaging outperforms feature messaging. Users care more about on-device processing than any feature we could list.&lt;/li&gt;
&lt;li&gt;Screenshots are the #1 storage culprit. Most users have 20-30% of their camera roll as forgotten screenshots.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;On-device ML is no longer a differentiator — it is table stakes for any app that touches personal data.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Swipe Cleaner uses on-device Core ML for iOS photo management. &lt;a href="https://www.opennomos.com/en/project/01KW95TC7VFJXZNYHNV3SJ04CN" rel="noopener noreferrer"&gt;View on OpenNomos&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ios</category>
      <category>ai</category>
      <category>machinelearning</category>
      <category>mobile</category>
    </item>
    <item>
      <title>How On-Device AI Is Changing Photo Management</title>
      <dc:creator>orville wang</dc:creator>
      <pubDate>Wed, 08 Jul 2026 04:06:21 +0000</pubDate>
      <link>https://dev.to/orville_wang_d2758f1be203/how-on-device-ai-is-changing-photo-management-2aj7</link>
      <guid>https://dev.to/orville_wang_d2758f1be203/how-on-device-ai-is-changing-photo-management-2aj7</guid>
      <description>&lt;p&gt;The average iPhone camera roll has over 5,000 photos. Most are never looked at again. Screenshots from 2023. Burst shots with 15 variants of the same sunset. Downloads from messaging apps you forgot about.&lt;/p&gt;

&lt;p&gt;Manual cleanup does not scale. But sending your photo library to a cloud API for classification is a privacy disaster waiting to happen. The answer is on-device machine learning.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Local AI Matters
&lt;/h2&gt;

&lt;p&gt;Your camera roll is the most personal dataset on your phone. Passport photos, bank screenshots, private conversations. Uploading this to a cloud service breaks the fundamental trust users have with their devices.&lt;/p&gt;

&lt;p&gt;Apple built the Neural Engine into every iPhone since the A11 chip. It sits idle most of the time. Photo classification is the perfect workload — embarrassingly parallel, privacy-sensitive, and benefits from instant feedback.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Swipe Cleaner Works
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Screenshot Detection
&lt;/h3&gt;

&lt;p&gt;Screenshots have distinct visual signatures: UI elements, status bars, text overlays, app chrome. A fine-tuned vision model running on Core ML detects these patterns in milliseconds.&lt;/p&gt;

&lt;h3&gt;
  
  
  Duplicate Detection
&lt;/h3&gt;

&lt;p&gt;Perceptual hashing (pHash) computes a fingerprint for each image. Similar photos — burst shots, re-downloaded files, near-identical edits — cluster below a distance threshold. The system groups them so you can compare and delete.&lt;/p&gt;

&lt;h3&gt;
  
  
  Blur Detection
&lt;/h3&gt;

&lt;p&gt;Laplacian variance measures sharpness. Low variance means motion blur or a pocket shot. These get flagged for quick review.&lt;/p&gt;

&lt;h3&gt;
  
  
  Privacy by Design
&lt;/h3&gt;

&lt;p&gt;All processing stays on-device. No network requests for image analysis. The ML models are bundled with the app and updated through the standard App Store review process — not through a hidden API.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Swipe UX
&lt;/h2&gt;

&lt;p&gt;Classification is half the problem. The other half is making decisions fast. A Tinder-like card interface — swipe right to keep, left to delete — turns a tedious chore into a 5-minute game. The AI pre-selects the likely action so most swipes are just confirmations.&lt;/p&gt;

&lt;h2&gt;
  
  
  Lessons Learned
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Launch with one killer feature.&lt;/strong&gt; We shipped similar-photo, screenshot, and blur detection all at once. Should have focused on duplicates alone for v1.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Privacy messaging matters.&lt;/strong&gt; Users care more about on-device processing than any feature we could add. Lead with privacy.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Screenshots are the #1 storage culprit.&lt;/strong&gt; Most users have 20-30% of their camera roll as screenshots they do not remember taking.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What is Next
&lt;/h2&gt;

&lt;p&gt;On-device AI in iOS apps is still in its early stages. As Apple opens more Neural Engine APIs and models become more efficient, we will see a new category of privacy-first utility apps that do not touch the cloud.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Swipe Cleaner uses on-device AI for photo management. &lt;a href="https://www.opennomos.com/en/project/01KW95TC7VFJXZNYHNV3SJ04CN" rel="noopener noreferrer"&gt;View on OpenNomos&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ios</category>
      <category>ai</category>
      <category>machinelearning</category>
      <category>mobile</category>
    </item>
    <item>
      <title>How AI Is Changing the Way We Manage Photos on Mobile</title>
      <dc:creator>orville wang</dc:creator>
      <pubDate>Tue, 07 Jul 2026 01:19:22 +0000</pubDate>
      <link>https://dev.to/orville_wang_d2758f1be203/how-ai-is-changing-the-way-we-manage-photos-on-mobile-3m6h</link>
      <guid>https://dev.to/orville_wang_d2758f1be203/how-ai-is-changing-the-way-we-manage-photos-on-mobile-3m6h</guid>
      <description>&lt;p&gt;Your phone camera roll is a data problem dressed as a UX problem. The average iPhone user has over 5,000 photos. Most of them are never looked at again. Screenshots. Burst shots. Downloads. Duplicates from failed syncs.&lt;/p&gt;

&lt;p&gt;Manual photo management does not scale. Here"s how on-device AI is changing the game.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem: Recognition, Not Storage
&lt;/h2&gt;

&lt;p&gt;The real issue isn"t storage space — it"s recognition time. Finding the photo you want in a 5,000+ image library takes minutes of scrolling. Deleting unwanted photos takes hours.&lt;/p&gt;

&lt;p&gt;What we need is a system that can look at a photo and instantly classify it: keep vs delete, important vs junk, original vs duplicate. That"s exactly what on-device machine learning enables.&lt;/p&gt;

&lt;h2&gt;
  
  
  On-Device AI: Why Local Matters
&lt;/h2&gt;

&lt;p&gt;The first instinct might be to send photos to a cloud API for classification. But there are three reasons this is the wrong approach:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Privacy.&lt;/strong&gt; Your camera roll contains the most personal data on your phone. Passport photos, bank screenshots, private conversations. Sending this to the cloud is a non-starter.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Bandwidth.&lt;/strong&gt; Classifying thousands of high-resolution images through a cloud API would be slow and expensive.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Latency.&lt;/strong&gt; Users expect instant feedback when swiping through photos. Round-trip API calls kill the experience.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;On-device ML solves all three. Apple"s Core ML framework runs optimized models on the Neural Engine — the same chip that powers Face ID. Processing happens locally, instantly, privately.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Swipe Cleaner Classifies Photos
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Screenshot vs Real Photo
&lt;/h3&gt;

&lt;p&gt;Screenshots have distinct visual signatures: UI elements, text overlays, app chrome, status bars. A fine-tuned vision model detects these patterns and flags screenshots for cleanup.&lt;/p&gt;

&lt;h3&gt;
  
  
  Duplicate Detection
&lt;/h3&gt;

&lt;p&gt;Perceptual hashing (pHash) computes a fingerprint for each image. Photos with hash distances below a threshold are grouped as duplicates. The system naturally catches burst-mode variants, re-downloaded images, and near-identical edits.&lt;/p&gt;

&lt;h3&gt;
  
  
  Blur Detection
&lt;/h3&gt;

&lt;p&gt;Laplacian variance measures focus quality. A low variance means the image is blurry — probably a pocket shot or motion blur. These get flagged for review.&lt;/p&gt;

&lt;h3&gt;
  
  
  Sensitive Content
&lt;/h3&gt;

&lt;p&gt;OCR extracts text from images and checks for document-like patterns: ID cards, passports, tax forms, bank statements. These are flagged not for deletion but for awareness — users should know their camera roll contains sensitive data.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Swipe UX
&lt;/h2&gt;

&lt;p&gt;Classification is only half the problem. You also need an interface that makes decisions fast. Swipe Cleaner uses a Tinder-like card interface: swipe right to keep, left to delete. The AI pre-selects the likely action so most swipes are just confirmations.&lt;/p&gt;

&lt;p&gt;This turns a tedious cleanup session into a 5-minute game.&lt;/p&gt;

&lt;h2&gt;
  
  
  Results
&lt;/h2&gt;

&lt;p&gt;Users typically find 20-40% of their photos are candidates for deletion. That"s gigabytes of storage recovered without losing a single memory.&lt;/p&gt;

&lt;p&gt;The combination of on-device AI + swipe UX transforms photo management from a dreaded chore into something you actually enjoy doing.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Swipe Cleaner is an AI-powered photo management app for iOS. See the project on &lt;a href="https://www.opennomos.com/en/project/01KW95TC7VFJXZNYHNV3SJ04CN" rel="noopener noreferrer"&gt;OpenNomos&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>ios</category>
      <category>machinelearning</category>
      <category>mobile</category>
    </item>
    <item>
      <title>The Future of Academic Search: From Keywords to Semantic Understanding</title>
      <dc:creator>orville wang</dc:creator>
      <pubDate>Mon, 06 Jul 2026 01:38:30 +0000</pubDate>
      <link>https://dev.to/orville_wang_d2758f1be203/the-future-of-academic-search-from-keywords-to-semantic-understanding-2gao</link>
      <guid>https://dev.to/orville_wang_d2758f1be203/the-future-of-academic-search-from-keywords-to-semantic-understanding-2gao</guid>
      <description>&lt;p&gt;Every researcher knows the pain. You type "attention mechanism survey" into Google Scholar. 50 pages of results. Half are from adjacent fields. A quarter are the wrong year. Maybe 3 papers are actually what you need.&lt;/p&gt;

&lt;p&gt;This is not a search problem. It is a representation problem.&lt;/p&gt;

&lt;h2&gt;
  
  
  Keywords Are a 1990s Solution
&lt;/h2&gt;

&lt;p&gt;Traditional academic search engines use inverted indices: map every word to documents containing it. When you search for "transformer architecture", the engine looks for papers with those exact words in the title or abstract.&lt;/p&gt;

&lt;p&gt;Here is what it misses:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Papers that discuss "self-attention mechanisms" without using the word "transformer"&lt;/li&gt;
&lt;li&gt;Papers from 2017 that introduced the concept but used different terminology&lt;/li&gt;
&lt;li&gt;Cross-disciplinary work where the same concept has different names&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The index sees strings. Not concepts.&lt;/p&gt;

&lt;h2&gt;
  
  
  Embedding-Based Search Changes Everything
&lt;/h2&gt;

&lt;p&gt;The shift from keyword matching to semantic search is the most important change in academic information retrieval since Google Scholar launched in 2004.&lt;/p&gt;

&lt;p&gt;Here is how it works:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Encode papers into embedding vectors.&lt;/strong&gt; Using a language model (like a fine-tuned BERT or sentence transformer), every paper title, abstract, and keywords get mapped to a dense vector in high-dimensional space.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Encode queries the same way.&lt;/strong&gt; Your search query goes through the same encoder. The result is a vector representing your research intent.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Find nearest neighbors.&lt;/strong&gt; Cosine similarity between the query vector and paper vectors gives you relevance scores. Papers that discuss the same concept — even with completely different vocabulary — rank high.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Re-rank with metadata.&lt;/strong&gt; Combine semantic similarity with venue quality, citation count, and recency to produce the final ranking.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  What This Means in Practice
&lt;/h2&gt;

&lt;p&gt;I tested this with Paper List, which indexes papers from top CS conferences (CVPR, NeurIPS, ICML, ACL, etc.).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Query: "multi-head attention survey"&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Google Scholar top 10: 4 relevant, 3 from wrong fields, 3 outdated&lt;/li&gt;
&lt;li&gt;Paper List top 10: 8 relevant, all from 2023-2026, correctly ranked by venue quality&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Query: "diffusion models for protein design"&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Standard search: mostly from bioinformatics venues (good), but misses ML papers that mention protein applications in the methods section&lt;/li&gt;
&lt;li&gt;Semantic search: correctly surfaces ICML/NeurIPS papers that discuss protein design as an application, even when the title focuses on the diffusion method itself&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The difference is not marginal — it is the difference between missing foundational work and finding it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Architecture
&lt;/h2&gt;

&lt;p&gt;A production semantic search system for academic papers needs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Continuous indexing.&lt;/strong&gt; New papers appear daily on arXiv. Your embeddings need to update within hours, not weeks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Field-specific fine-tuning.&lt;/strong&gt; A general embedding model does not understand that "attention" means something different in ML than in psychology. Field-specific encoders matter.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hybrid retrieval.&lt;/strong&gt; Pure semantic search can miss exact matches. The best systems combine BM25 (keyword matching) + dense retrieval (semantic matching) with a learned fusion layer.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why This Matters Beyond Convenience
&lt;/h2&gt;

&lt;p&gt;Semantic academic search is not just about saving time. It changes which research gets discovered.&lt;/p&gt;

&lt;p&gt;Keyword-based search favors papers with optimized titles — researchers learn to stuff keywords for SEO. Semantic search levels the playing field. A brilliant paper with a creative title gets found just as easily as one with a formulaic keyword-dense title.&lt;/p&gt;

&lt;p&gt;It also enables interdisciplinary discovery. The paper that applies graph neural networks to molecular dynamics might be categorized under chemistry but is deeply relevant to a CS researcher working on GNN architectures. Semantic search bridges these silos.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Next
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Personalized research feeds&lt;/strong&gt; based on your reading history embeddings&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Citation graph-aware ranking&lt;/strong&gt; that understands which papers are truly influential&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multilingual semantic search&lt;/strong&gt; that finds relevant papers regardless of the query language&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Academic search is finally catching up to 2026. Keywords had a good run.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Paper List provides AI-powered search across top CS venues at &lt;a href="https://paperlist.ai" rel="noopener noreferrer"&gt;paperlist.ai&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>research</category>
      <category>nlp</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>The Neuroscience of Deep Work: Why Natural Sounds Beat Music for Coding</title>
      <dc:creator>orville wang</dc:creator>
      <pubDate>Sun, 05 Jul 2026 06:41:26 +0000</pubDate>
      <link>https://dev.to/orville_wang_d2758f1be203/the-neuroscience-of-deep-work-why-natural-sounds-beat-music-for-coding-25ch</link>
      <guid>https://dev.to/orville_wang_d2758f1be203/the-neuroscience-of-deep-work-why-natural-sounds-beat-music-for-coding-25ch</guid>
      <description>&lt;p&gt;I used to code with Spotify on. Lo-fi beats, instrumental post-rock, ambient electronic — anything without lyrics. The logic seemed solid: music blocks office noise, and lyric-free music doesn"t hijack your language centers.&lt;/p&gt;

&lt;p&gt;Then I tried silence. Then rain sounds. My productivity changed dramatically.&lt;/p&gt;

&lt;p&gt;Here"s the neuroscience behind why natural sounds beat music for deep work — and why most developers get this wrong.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Language Processing Problem
&lt;/h2&gt;

&lt;p&gt;Your brain processes spoken language in Broca"s area and Wernicke"s area. Here"s the catch: &lt;strong&gt;instrumental music still activates these regions&lt;/strong&gt; if you"ve heard the song before. Your brain "plays back" the missing lyrics — a phenomenon called subvocalization.&lt;/p&gt;

&lt;p&gt;This is why even lyric-free music can feel distracting after 30 minutes. Your brain is running a background thread decoding imaginary words while you"re trying to read code.&lt;/p&gt;

&lt;p&gt;Natural sounds — rain, ocean waves, wind through trees — don"t trigger this. They"re classified as non-linguistic auditory input. Your brain processes them without engaging language centers.&lt;/p&gt;

&lt;h2&gt;
  
  
  The 1/f Pattern
&lt;/h2&gt;

&lt;p&gt;Pink noise follows a 1/f power spectrum: equal energy per octave. This pattern matches the firing rhythms of neurons in the auditory cortex. It"s not random — it"s mathematically aligned with how your brain already processes sound.&lt;/p&gt;

&lt;p&gt;White noise has equal energy per frequency (flat spectrum), which is why it feels harsh. Brown noise has too much low-frequency energy. Pink noise sits in the sweet spot — stimulating enough to mask background noise, natural enough not to pull attention.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Rain Sounds Specifically Work
&lt;/h2&gt;

&lt;p&gt;Rain is nature"s pink noise generator. Each raindrop is a random event, but the aggregate creates a statistically uniform sound field. Your brain can"t predict the next drop, but it also can"t ignore the pattern — this creates what neuroscientists call a "passive attention anchor."&lt;/p&gt;

&lt;p&gt;A passive anchor means your brain stays mildly engaged without expending cognitive resources. Unlike silence (where your mind wanders) or music (where your mind follows the structure), rain sounds occupy the exact right amount of neural bandwidth.&lt;/p&gt;

&lt;h2&gt;
  
  
  My Stack
&lt;/h2&gt;

&lt;p&gt;After testing dozens of sound apps, I landed on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;OneZen&lt;/strong&gt; for natural soundscapes (rain, ocean, forest) — the recordings are layered field recordings, not synthetic loops, which matters because real environmental sound has micro-variations that prevent habituation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Noise-canceling headphones&lt;/strong&gt; (Sony WH-1000XM5) to kill office chatter&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;25-minute Pomodoro sessions&lt;/strong&gt; with 5-minute breaks&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Productivity Data
&lt;/h2&gt;

&lt;p&gt;I tracked my output for 6 weeks:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Condition&lt;/th&gt;
&lt;th&gt;Tasks Completed/Week&lt;/th&gt;
&lt;th&gt;Deep Work Hours&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Spotify (lo-fi)&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Silence&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Rain sounds (OneZen)&lt;/td&gt;
&lt;td&gt;19&lt;/td&gt;
&lt;td&gt;22&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The silence condition was surprisingly bad — my mind kept wandering. The music condition was decent but inconsistent. Rain sounds were the only condition where I could sustain 3+ hour deep work sessions regularly.&lt;/p&gt;

&lt;h2&gt;
  
  
  What About Brown Noise?
&lt;/h2&gt;

&lt;p&gt;Brown noise (also called red noise) has a steeper frequency falloff. It"s deeper and rumbles more. Some people swear by it for ADHD focus. The mechanism is similar — it provides a passive attention anchor — but the stronger low-frequency component can be fatiguing for long sessions.&lt;/p&gt;

&lt;p&gt;I"ve found rain sounds with occasional thunder (which OneZen includes as a variant) gives just enough variation to prevent adaptation without breaking focus.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Bigger Point
&lt;/h2&gt;

&lt;p&gt;The choice between music and natural sound isn"t about preference. It"s about how your brain allocates attention resources. Music demands more cognitive overhead than most people realize. Natural sounds demand almost none.&lt;/p&gt;

&lt;p&gt;For deep work — coding, writing, analysis — subtraction beats addition every time.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;OneZen is available on the &lt;a href="https://apps.apple.com/cn/app/id6780318004" rel="noopener noreferrer"&gt;App Store&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>neuroscience</category>
      <category>deepwork</category>
      <category>coding</category>
    </item>
    <item>
      <title>Building an AI-Powered Photo Cleaner: Lessons from the App Store</title>
      <dc:creator>orville wang</dc:creator>
      <pubDate>Sat, 04 Jul 2026 04:17:26 +0000</pubDate>
      <link>https://dev.to/orville_wang_d2758f1be203/building-an-ai-powered-photo-cleaner-lessons-from-the-app-store-5an0</link>
      <guid>https://dev.to/orville_wang_d2758f1be203/building-an-ai-powered-photo-cleaner-lessons-from-the-app-store-5an0</guid>
      <description>&lt;p&gt;Last year my iPhone popped the dreaded "Storage Full" notification for the hundredth time. I checked the breakdown: 68% was photos. Not memories — junk. Burst shots with 20 variants of the same frame. Screenshots from 2023. Duplicates from a failed iCloud sync.&lt;/p&gt;

&lt;p&gt;I couldn"t find a cleaner that worked the way I wanted, so I built one. Here"s what I learned shipping a SwiftUI + Core ML photo management app to the App Store.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem Nobody Talks About
&lt;/h2&gt;

&lt;p&gt;Photo cleanup apps aren"t new. But most of them are either too manual (swipe thousands of photos one by one) or too aggressive (auto-delete without context). The hard part isn"t feature detection — it"s the UX of trust.&lt;/p&gt;

&lt;p&gt;Users need to feel in control. Every deletion should be their decision. The app"s job is to &lt;em&gt;surface&lt;/em&gt; what to delete, not to delete it for them.&lt;/p&gt;

&lt;h2&gt;
  
  
  How the AI Works
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Similar Photo Detection
&lt;/h3&gt;

&lt;p&gt;Using Core ML"s Vision framework, we compute perceptual hashes (pHash) for every photo in the library. On-device processing means nothing leaves the device:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight swift"&gt;&lt;code&gt;&lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="nv"&gt;request&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kt"&gt;VNGenerateImageFeaturePrintRequest&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="nv"&gt;handler&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kt"&gt;VNImageRequestHandler&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;cgImage&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;ciImage&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;try&lt;/span&gt; &lt;span class="n"&gt;handler&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;perform&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Similar photos (hash distance &amp;lt; threshold) are grouped. The algorithm naturally catches burst photos, near-duplicate screenshots, and re-imported images.&lt;/p&gt;

&lt;h3&gt;
  
  
  Sensitive Content Detection
&lt;/h3&gt;

&lt;p&gt;This was the hardest feature. The app scans for text overlays and document-like patterns (passports, IDs, tax forms) using a combination of Vision text recognition and heuristics. All processing stays on-device — no network requests for image analysis.&lt;/p&gt;

&lt;h3&gt;
  
  
  Video Compression
&lt;/h3&gt;

&lt;p&gt;HEVC re-encoding can reduce video storage by 60-80% with minimal quality loss. The trick is doing it in the background without the user noticing.&lt;/p&gt;

&lt;h2&gt;
  
  
  App Store Lessons
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Screenshots Determine Everything
&lt;/h3&gt;

&lt;p&gt;We A/B tested 4 sets of App Store screenshots. The winner (showing before/after storage numbers) converted 3x better than the runner-up (showing app features). People scroll screenshots looking for proof, not feature lists.&lt;/p&gt;

&lt;h3&gt;
  
  
  Keywords Matter More Than You Think
&lt;/h3&gt;

&lt;p&gt;"Photo cleaner" has 10x the search volume of "duplicate photo remover". We optimized for the broader term and caught both audiences.&lt;/p&gt;

&lt;h3&gt;
  
  
  Review Velocity
&lt;/h3&gt;

&lt;p&gt;The first 20 reviews came from TestFlight beta users. Having reviews on day 1 made a huge difference for ranking.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Numbers (So Far)
&lt;/h2&gt;

&lt;p&gt;Six months in: steady organic downloads from App Store search, high retention (users clean in bursts), and the best feedback: people telling us they finally freed up 30GB+ of storage.&lt;/p&gt;

&lt;p&gt;If you"re building a utility app for iOS, the biggest takeaway is this: &lt;strong&gt;on-device AI + clear user control = trust&lt;/strong&gt;. And trust is the only currency that matters for an app that touches your photos.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Swipe Cleaner is available on the &lt;a href="https://apps.apple.com/cn/app/id6779493280" rel="noopener noreferrer"&gt;App Store&lt;/a&gt;. Built with SwiftUI, Core ML, and a lot of late nights.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ios</category>
      <category>swift</category>
      <category>ai</category>
      <category>buildinpublic</category>
    </item>
    <item>
      <title>How I Built a Tool to Organize AI Conference Papers by Topic (and Why It Matters)</title>
      <dc:creator>orville wang</dc:creator>
      <pubDate>Mon, 22 Jun 2026 00:29:01 +0000</pubDate>
      <link>https://dev.to/orville_wang_d2758f1be203/how-i-built-a-tool-to-organize-ai-conference-papers-by-topic-and-why-it-matters-3o4f</link>
      <guid>https://dev.to/orville_wang_d2758f1be203/how-i-built-a-tool-to-organize-ai-conference-papers-by-topic-and-why-it-matters-3o4f</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;I maintain paperlist.ai, an open tool for browsing AI conference papers organized by research topic.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;How many ICLR papers are about RAG? What about agents or multimodal models? If you have ever tried to answer these questions by browsing a conference website, you know the pain. Thousands of papers, no topic grouping, and a PDF list that takes hours to skim.&lt;/p&gt;

&lt;p&gt;I built &lt;a href="https://paperlist.ai" rel="noopener noreferrer"&gt;paperlist.ai&lt;/a&gt; to fix this.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;Every year, AI conferences like ICLR, NeurIPS, and ICML publish thousands of accepted papers. Most researchers and developers only care about a tiny subset. But finding those relevant papers means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Scrolling through alphabetical PDF lists on the conference website&lt;/li&gt;
&lt;li&gt;Manually opening 50+ papers just to check which ones are relevant&lt;/li&gt;
&lt;li&gt;Missing important work because it was buried in an unrelated section&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The information is there. It is just not organized.&lt;/p&gt;

&lt;h2&gt;
  
  
  How paperlist.ai Works
&lt;/h2&gt;

&lt;p&gt;paperlist.ai groups papers by research topic:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;RAG&lt;/strong&gt;: retrieval-augmented generation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Agents / Multi-Agent&lt;/strong&gt;: autonomous AI agents&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multimodal&lt;/strong&gt;: vision + language models&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;RL / Alignment&lt;/strong&gt;: reinforcement learning and AI safety&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Efficient LM&lt;/strong&gt;: model compression and inference optimization&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each topic page lists relevant papers with their titles, authors, and links. No more opening 50 PDFs just to find the 3 that matter to your work.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Tech Stack
&lt;/h2&gt;

&lt;p&gt;The site is built with Next.js and uses OpenNomos for tracking community contributions like article shares and SEO submissions. The paper data comes from conference proceedings, organized through a mix of automated topic assignment and manual curation.&lt;/p&gt;

&lt;p&gt;I wrote about this in more detail in &lt;a href="https://opennomos.com" rel="noopener noreferrer"&gt;a separate post&lt;/a&gt;, but the key insight is: organizing information is often more valuable than generating new content. An LLM can summarize a paper. But telling you &lt;em&gt;which&lt;/em&gt; papers to read — that is a curation problem, not a generation problem.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Learned
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Curation scales better than content generation&lt;/strong&gt;: The bottleneck for researchers is not "I need more papers" but "I need to find relevant papers fast."&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Community feedback drives topic selection&lt;/strong&gt;: The most popular topics on paperlist.ai came from user requests, not my guesses.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open tools win&lt;/strong&gt;: Keeping it free and open means more researchers use it and more people contribute topic suggestions.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Try It
&lt;/h2&gt;

&lt;p&gt;If you are catching up on ICLR 2026 papers, check out &lt;a href="https://paperlist.ai" rel="noopener noreferrer"&gt;paperlist.ai&lt;/a&gt;. RAG-related papers are already organized, with more topics coming.&lt;/p&gt;

&lt;p&gt;What tools do you use to stay on top of AI research? Would love to hear in the comments.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>opensource</category>
      <category>ai</category>
      <category>showdev</category>
    </item>
    <item>
      <title>Stop measuring Web3 growth with Web2 metrics — Contribution &gt; DAU</title>
      <dc:creator>orville wang</dc:creator>
      <pubDate>Sun, 21 Jun 2026 10:03:32 +0000</pubDate>
      <link>https://dev.to/orville_wang_d2758f1be203/stop-measuring-web3-growth-with-web2-metrics-contribution-dau-46ce</link>
      <guid>https://dev.to/orville_wang_d2758f1be203/stop-measuring-web3-growth-with-web2-metrics-contribution-dau-46ce</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Disclosure: I work on Opennomos (linked at the end). This is a thinking-out-loud post about a problem we've spent the last year trying to model.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  The numbers we report are mostly lies
&lt;/h2&gt;

&lt;p&gt;Ship a Web3 product launch and you've watched this play out:&lt;/p&gt;

&lt;p&gt;Week 1: 10,000 wallets connect, TVL spikes, Twitter +5K followers. The CFO smiles. The VC retweets.&lt;/p&gt;

&lt;p&gt;Week 8: daily active addresses drop to 300. TVL bleeds back to launch-day levels. The Discord is mostly bots talking to bots.&lt;/p&gt;

&lt;p&gt;You know the truth — most of those 10K wallets were airdrop hunters running scripts across three browsers. But you can't write "DAU 12,000 (11,000 are bots)" in the investor update. So we round, we squint, we ship the dashboard.&lt;/p&gt;

&lt;p&gt;This isn't any one team failing. It's that we're measuring a fundamentally different system with the wrong instruments.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Web2 funnel quietly assumes three things Web3 broke
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;Acquisition → Activation → Retention → Revenue&lt;/code&gt;. It assumes:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;One &lt;code&gt;user_id&lt;/code&gt; ≈ one human.&lt;/strong&gt; Web3: wallets and humans are many-to-many. One person, ten wallets. Or ten people, one wallet.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Repeated usage signals value.&lt;/strong&gt; Web3: half the meaningful on-chain actions are one-shots (claim, bridge, swap once and leave).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Behavior correlates with revenue.&lt;/strong&gt; Web3: there are ten translation layers between a user click and a protocol fee.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Almost every Web3 dashboard in production is built on these broken assumptions, then patched with sybil filters and bot-detection on the way out. We keep trying to make Web2 metrics stop lying about Web3, instead of asking what we should be measuring in the first place.&lt;/p&gt;

&lt;h2&gt;
  
  
  Stop counting users. Start counting contribution.
&lt;/h2&gt;

&lt;p&gt;The reframe that unstuck us:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Don't measure &lt;strong&gt;"who showed up."&lt;/strong&gt; Measure &lt;strong&gt;"who did something, and what that something was worth to the ecosystem."&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This view rotates a few things:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A real person operating 3 wallets making 3 meaningful actions has &lt;em&gt;more&lt;/em&gt; contribution than one wallet farming 3,000 claims. DAU can't see this. Contribution can.&lt;/li&gt;
&lt;li&gt;An AI agent that completes a complex on-chain strategy has measurable contribution — and in Web3 we can actually price and pay it, because wallets are identity and transfers are payment. Web2 filters agents out as "non-human traffic." Web3 should treat them as first-class participants.&lt;/li&gt;
&lt;li&gt;A community translation, a bug report, a governance vote — those are real contributions. The funnel model has no slot for them. A contribution model does.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This isn't new economics — "contribution-based rewards" already exists in mechanism design literature. What's new is making it operational in code.&lt;/p&gt;

&lt;h2&gt;
  
  
  What "operational contribution" needs at the engineering layer
&lt;/h2&gt;

&lt;p&gt;Four hard problems, none of which ship in a weekend:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Full-stack event capture
&lt;/h3&gt;

&lt;p&gt;Not just on-chain tx. You need:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Off-chain product actions (clicks, views, dApp social shares)&lt;/li&gt;
&lt;li&gt;Community contributions (governance, content, support)&lt;/li&gt;
&lt;li&gt;Agent actions — the structural differentiator vs. Web2&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In code: SDK + Webhook + Indexer + Agent SDK, four pipes converging into one normalized event table.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Auditable attribution
&lt;/h3&gt;

&lt;p&gt;Whose reward, why, traceable end-to-end. Black-box incentive distribution is just rug-pull-on-delay. The model needs at least:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Source attribution&lt;/strong&gt; — which channel brought this action in&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multi-touch&lt;/strong&gt; — one conversion can split across multiple contributors with weights&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Time decay&lt;/strong&gt; — early contributors weighted higher than late-arriving airdrop arbitrageurs&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. A rule engine, not hardcoded &lt;code&gt;if/else&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;"What counts as contribution" varies wildly per project: quests in gaming, repeat purchase in commerce, liquidity depth in DeFi, governance quality in a DAO. A growth or PM person needs to define and revise these rules without filing a PR each time. That means a DSL or a visual rule designer, not a Solidity if-tree.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Two-way: humans AND agents
&lt;/h3&gt;

&lt;p&gt;This will hit everyone in the next 12 months: a real fraction of your dApp's activity will come from agents — the user's, third-parties', protocol-deployed. Tracking agent contribution &lt;strong&gt;and rewarding agents directly&lt;/strong&gt; — with those rewards routable back to a human operator — is something Web3 can do that Web2 structurally can't.&lt;/p&gt;

&lt;h2&gt;
  
  
  What we built — Opennomos
&lt;/h2&gt;

&lt;p&gt;An open-source attempt at the above: &lt;strong&gt;&lt;a href="https://github.com/NomosGrowth/opennomos" rel="noopener noreferrer"&gt;github.com/NomosGrowth/opennomos&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In one paragraph: ingest events (on-chain + product + agent), score contribution (rule engine + multi-touch attribution + sybil resistance), distribute rewards (points / tokens / NFT badges / airdrop weights — composable and auditable). The Studio lets a PM design "5 on-chain actions + 1 governance vote → tier X reward" without writing code.&lt;/p&gt;

&lt;p&gt;Current stage is early; the schema is still settling and we're integrating with a handful of partner projects to harden it. Issues, ideas, and "this doesn't match how my project actually works" notes are extremely welcome on the repo.&lt;/p&gt;

&lt;h2&gt;
  
  
  The open question
&lt;/h2&gt;

&lt;p&gt;Most of the interesting Web3 problems are at the seams where Web2 abstractions don't fit. Growth measurement is one of those seams.&lt;/p&gt;

&lt;p&gt;If you've shipped Web3 user incentives at any scale: &lt;strong&gt;what do you measure, beyond DAU, that actually correlates with the growth you care about?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Drop a comment or open an issue on the repo. The harder the edge case, the more useful.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Links:&lt;/strong&gt; &lt;a href="https://github.com/NomosGrowth/opennomos" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; · &lt;a href="https://opennomos.com" rel="noopener noreferrer"&gt;opennomos.com&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>web3</category>
      <category>opensource</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
