> For example, let's say you start organizing by project. Pretty soon, there's overlap between projects and you end up re-documenting.
But there is no reason to re-document. It takes time and doesn't give anything for the project. I typically just have a "meta" folder within a project and any related pdf/video/html I stumble upon goes into that folder. I wouldn't care if a few projects share the same file.
In this case DRY also, in my opinion, only gets in the way. Say you abstract the knowledge to a separate system and start referencing it from your projects. What this does is it freezes the knowledge organization within your system. You cannot relabel things or move them around, because the links from projects to your knowledge base will get broken. This would only add unnecessary complexity and inter-dependance. DRY is one of those things I started looking at differently some time ago. Repeating yourself, in certain cases, can be faster, simpler and more maintainable.