HN user

rafaepta

483 karma

https://github.com/Rafaelpta/dupehound

rafael@ottic.ai

Posts68
Comments19
View on HN
billiondollarpdf.com 10d ago

Billion Dollar PDFs

rafaepta
67pts26
www.technology.org 12d ago

Guardrails Against Duplicated Code

rafaepta
2pts0
www.technology.org 19d ago

Deterministic Guardrails Against AI Code Duplication

rafaepta
2pts0
github.com 20d ago

Show HN: Open-source Deterministic Guardrails Against AI Duplicated Code

rafaepta
1pts0
tomlennon.com 1mo ago

Moebius: Tangled Up in Blueberry

rafaepta
2pts0
sandimetz.com 1mo ago

Prefer duplication over the wrong abstraction (2016)

rafaepta
541pts354
news.ycombinator.com 1mo ago

Ask HN: What's the hardest part of maintaining a legacy codebase?

rafaepta
3pts5
news.ycombinator.com 1mo ago

Ask HN: Does taste matter when writting code

rafaepta
5pts3
news.ycombinator.com 1mo ago

Ask HN: How do you separate intentional test boilerplate from real duplication?

rafaepta
10pts7
medium.com 1mo ago

Terminal UIs Are an Abomination. AI Needs Better UX

rafaepta
3pts2
github.com 1mo ago

Show HN: Deterministic and offline duplicate-code detector

rafaepta
4pts0
github.com 1mo ago

Finding code duplicated by AI without AI

rafaepta
4pts2
medium.com 1mo ago

Agent doesn't remember your codebase (dupehound)

rafaepta
2pts0
github.com 1mo ago

Show HN: Dupehound – find the code your agent wrote twice (no AI required)

rafaepta
3pts0
github.com 2mo ago

Show HN: Mirror a terminal to your phone – E2E encrypted, peer-to-peer,no daemon

rafaepta
4pts0
avelino.run 2mo ago

Technical Founders Misread Adoption

rafaepta
3pts0
desktopcommander.app 4mo ago

Most Knowledge Management Systems Fail

rafaepta
1pts0
madalitso.me 4mo ago

Filesystems Are Having a Moment

rafaepta
8pts0
desktopcommander.app 4mo ago

Best MCP Servers for Knowledge Bases

rafaepta
1pts0
desktopcommander.app 5mo ago

Desktop Commander vs. Claude Cowork

rafaepta
2pts1
www.businessinsider.com 5mo ago

After 3 yrs of forcing myself to love VC, I quit and became a DJ in Bali

rafaepta
1pts0
desktopcommander.app 5mo ago

Obsidian Markdown Cheatsheet

rafaepta
4pts0
desktopcommander.app 5mo ago

I Tell When Candidates Use AI in My Technical Interviews

rafaepta
4pts0
www.folklore.org 5mo ago

Franklin Ace: The Clone of the Apple II Stolen from Apple

rafaepta
6pts0
desktopcommander.app 6mo ago

Markdown Tables: A Syntax Guide

rafaepta
1pts0
news.ycombinator.com 6mo ago

Ask HN: Do Hackathons Still Matter in 2026?

rafaepta
4pts1
desktopcommander.app 6mo ago

Building a Personal Knowledge Base with Local Files

rafaepta
1pts0
substack.com 6mo ago

The AI Trap That Is Quietly Wiping Out Investors

rafaepta
17pts1
desktopcommander.app 6mo ago

Creating Obsidian Knowledge Bases

rafaepta
4pts0
dust.tt 6mo ago

Zero-sumness: a framework to reason about how to scale teams post AI

rafaepta
1pts0

Yeah, that is pretty much what it does already: it tries to recognize test files and skip them. Dupehound is available for 12 languages Today.

Some languages like RUst you mentioned, have a clear tag that says "this is a test," but others do not, so the tool has to guess from file names and ends up missing some and skipping too much.

Also as I mentioned on the answer below, sometimes you actually do want to see the repeats inside tests, or normal code repeats on purpose too. So I am leaning toward letting users wave off one specific case by hand instead of skipping everything blindly.

Using dupehound for identifying duplicated code.

What I use for: I use for identifying duplicated code. It is deterministic, doesn't use AI, offline, runs from CLI and is super fast (and free).

What I dislike: I won't say it I dislike, but it is not a tool that does all the jobs of a code review. For instance, it doesn't flag security issues. It is superfocused on code duplication (it performs better than Sonar for this use case) and is specifically useful for large codebases. Disclaimer: I am one of the collaborators, so take it with a grain of salt https://github.com/Rafaelpta/dupehound

agreed, but imo terminal and any conversational interface is not a silver bullet. Example: signup up for a ai assistant that lives in the email. Can't cancelled it bcs the founder assumed that since you ask anything in natural language every problem the user might have is solved. This is just pushing problems to users.

So true, just built a deterministic system to identify duplicated code. It's offline and doesn't use AI on purpose, since a gate that blocks your CI has to give the exact same answer every time, and finding dupes means comparing every function against every other (that's index work). It does NOT use AI. But ironically, I used AI to build it (https://github.com/Rafaelpta/dupehound )

This article misses the point. It is not about AI replacing workers, but about AI bringing more ROI. Can an AI convert twice as many customers as a $4k salesperson? It is reasonable to say that in a B2C setting, YES. I've seen that. Better SLA, fast responses during weekends, better adherence to existing playbooks, mapping out objections that are not in the playbook, and suggesting updates for the same prompt. In one week, the playbook evolved, and today we are converting more customers than the sales team. Does it capture the value of the $4k usd sales person ? If the ROI is superior, yes. Will I pay for it? That is a different story (we developed this ourselves).

You’re right. I’ve just changed the title of the article adding “(un)” to the beginning. I can’t prove the errors are intentional, but given the author’s reputation it would surprise me if they weren’t.

I sometimes feel guilty. I’ve tried to set goals (I really have) but it’s just not how I’m wired. I tend to improvise my way through things. Even as a kid, I remember never feeling that urge to "win" at anything. Sports, board games, whatever. Other kids would light up with competition. I’d just… show up, participate, drift through it. I always felt slightly out of sync with that whole dynamic. That’s why this line hit me so hard: “Some of the most powerful forms of progress emerge from people who stopped trying to win and started building new game boards entirely.” Maybe that’s been the point all along. Thanks for sharing this.

I’m betting we’ll all turn into part-time philosophers, staring at the old questions: Who are we? Why are we here? Where do we go next?

Finding meaning becomes the core human task.

Our best tool might be the oldest one: basic ethics. Plato, Aristotle, the $5 paperbacks gathering dust.

I miss Rushmore’s plain approach. Just enough quirk, sharp acting, and visuals that back the plot instead of hogging it. Newer Anderson films look like photo shoots: pretty, but the story drags. Same story dev teams hit when designers chase pixel-perfect screens and users still wait on real features.

ChatGPT ≠ Google-scale.Google: ~14 B searches/day; ChatGPT: ~37 M (~1 : 400). Only ~15 % of ChatGPT prompts look like classic “search”; most are writing/code tasks. Google’s own search volume grew 22 % in 2024 and still holds >90 % share. An LLM citation is nice for credibility, but it won’t move traffic or revenue anytime soon.

Never wondered why 14. But makes perfect sense. Early Unix feels like a masterclass in minimalism under constraint. Also fun detail: Unix V3 had 8-character limits before DOS made it famous.

A few numbers to keep the AEO hype in check:

- Scale gap: Google still processes ~14 billion searches / day; ChatGPT hovers around ~37 million. You’re looking at 1 LLM query for every 400 Google queries.

- Intent gap: Only ≈ 15 % of ChatGPT prompts are classic “informational search.” ≈ 75 % are generative tasks (code, drafts, summaries) that were never clicks in the first place.

- Traffic gap: When Google shows an AI-Overview, downstream organic CTR drops ≈ 70 %. Dedicated AI engines send ≈ 96 % less referral traffic than classic Google results.

Implication: Chasing LLM citations is fine as a branding bonus, but it’s not a growth lever for most sites. Spend effort proportionally.

A pragmatic playbook (what actually moved the needle in my own tests)

1) Question-first headings – treat every H2/H3 like a unit-test: Q in, 40-60 word A out, then elaborate.

2) Answer-first, expand-later – inverted-pyramid writing is a killer for snippet extraction.

3) Chunk + schema – short paragraphs, lists, FAQ/HowTo markup. The clearer the structure, the higher the chance an LLM copies you verbatim.

4) Keep it fresh & sourced – stats with a 2025 timestamp and a citation get surfaced more often (recency + trust signals).

5) /llms.txt – a zero-cost “robots.txt for LLMs” to spotlight the pages you actually want crawled.

Building a QA platform so non-tech folks can test and improve LLM products WITHOUT needing developers.

It’s crazy how much time developers waste tweaking hardcoded prompts, writing endless test cases or constantly shift focus between building LLM features and verifying them. It’s usually the product person who should be handling this.

To scale a product, you need an extra set of eyes to double-check the engineers' work before it goes live.

Just want to give non-technical folks the power to test and improve LLM apps themselves!

This project is called https://ottic.ai/