Hack Your File Hierarchy With Johnny Decimal System (Dewey’s Older Brother)

Most of us have our fair share of digital debris. After all, with drives measured in one-million-million byte increments it’s tempting to never delete anything. The downside is you may never be able to find anything either. [Johnny Noble] must have gotten pretty fed up with clutter when he decided to formalize and publish his own numeric system for organizing everything he comes in contact with. It’s called Johnny Decimal and it’s actually pretty simple!

This is of course a play on words for the Dewey Decimal system. Dewey is one of a variety of information organization systems used by libraries to sort the books on their shelves. It’s based on moving books into sets of fixed, predefined categories which are uniform across all users of the Dewey. To locate a volume the user composes categories of increasing specificity to build a number which specifies the approximate space a particular book should live in. Each individual volume has a slightly more verbose assigned number which includes the author’s name to reduce confusion in cases where there are multiple works. Wikipedia has an instructive example which you can see here.

Johnny Decimal

Johnny Decimal works similarly but [Johnny] has a specific method he’s devised for the user to create their own categories with somewhat less specificity than Dewey. This makes it less onerous for the user to adapt to their needs, and if it’s easier to use it’s more likely to be used. I won’t spoil the process here, go read his site for instructions.

Ok so why bother? [Johnny] hints at it, but part of the point is to force the user to think about organization in the first place. With no system and an endless torrent of incoming files it’s easy to end up with the giant “~/Downloads” of doom and never improve from there. But with a clearly defined system (which is easy to execute!) the bar to improve things gets much lower. Certainly the thought of a well-organized file system gives us the shivers!

If you’re interested in implementing it in your own systems, the Johnny Decimal site has many pages devoted to explaining how to put together areas and categories, how to handle running out of buckets, the process for developing your own system, and more. If you try it and have luck, send us a note! We’d love to hear about anything you discover. If you’ll excuse us, we’re off to go fix up our parts bins with a marker and some sticky notes.

24 thoughts on “Hack Your File Hierarchy With Johnny Decimal System (Dewey’s Older Brother)

          1. The problem is: “my files are a disorganized mess”
            The solution: “Let’s add metadata to every file and put it in a database, then we don’t have to care.”
            New problem: half the files are lost in the database because they’re improperly tagged and the user can’t remember the search term.

  1. an over-complicated solution, especially considering any file manager can search folders and sub folders. the numbering system just makes sure that everything appears in the same order (provided that you dont change the display settings on your file manager). The real trick is in the discipline of actually sorting your files into the proper folders on a regular basis and maintaining that sorting routine making sure that any files that can fit into multiple sub folders are always sorted the same way or at the least linked from each of the sub folders.

    Personally i do use numbers to make sure that certain folders always appear at the top of the display in my file manager but the numbers are re-used in any subsequent sub folder and then if i know exactly what i am looking for then i use the search bar, making sure that the full path is displayed. i guess this method would let me hide the full path, but i would have to memorize the numbering scheme.

  2. Doomed – this type of classification is fine for output, eg a report where the specific organization of things is relatively defined for a purpose, however no good for storing things as they could belong to multiple ‘areas’ or ‘categories’. It’s better to store stuff say alphabetically or in a way that’s easy to find for your your main purposes, and then add Tags to items representing their different areas or categories, possibly with multiple tags per item or even item container/bucket. This way output can more easily be produced by transforming the storage for the particular purpose.

    1. I came to make this point. Do you keep PDF, epub and CBR files together or apart? Should the graphic novel of Stephen King’s The Dark Tower be with the printed version? What about movies, or TV series adaptations?
      Hell, should I sort data sheets by function, manufacturer, or voltage logic level? My ADC data is in a single directory, but filenames start with sample speed and clock rate before the actual part number – and I still get 1.8V mixed with 2.4V and 3.3V

  3. Like my files, my comments are many and not categorized:

    1) I only wish to keep files that spark joy in my life.
    2) I would like the system better if it were named the Huey or Louie Decimal system.
    3) Ultimately, I believe a successful filesystem would use a combination of thoughtful categorization, file based meta data, fast and powerful search with AI, and duplicate/change detection. Most importantly though, any automated function should be made seamless and transparent to the user so they are not encumbered by the task of organizing.

  4. Leading numbers (or part numbers) can be problematic when the folders get too large. It means that it can only be sorted by the prefix number, and not the name of the thing.

    It’s also going to make tab completion in a terminal basically useless (unless you find it easier to remember that ‘Orange’ starts with ’56’ instead of ‘OR’.) With spaces in folder names though, I get the impression that this setup was never intended to be used in a terminal.

  5. I’ve got many hierarchy strategies depending on the type of data. For photography I use folders sorted by year, then year-month-day subject description, then in this folder I put the raw files. I sort them using selection foldername followed by a number if I do multiple passes. When exporting after post processing it’s dropped into a jpg folder.

    More relevant to this website, I use a projects folder, ie D:\data\projects.
    Then each group of similar projects gets a foldername unless its unique. ie
    3DPrinter\Prusai3
    3DPrinter\NFAN
    audio\HeadPhoneAmp

    Inside each folder are more subfolders depending on type of project. This could be design, docs, pix, case, firmware, Toolpaths, gcode, videos etc. But are consistent across the board. When I output gcode, I use a gcode folder, when I have pix and docs, I use those folder names.

    When working with a project, I usually sort by date/time so that the files and folders I’m working with are at the top. This greatly speeds up navigating through folders.

    This has served me very well. This hierarchy is based on association. Files and folders are put together by association.

    Many years ago I tried to sort files by type, so a project that uses photoshop, illustrator and mplab had the files split over a pix folder for photoshop, illustrator folder and mplab folder, with each a project folder of the same name. Many other applications keep their data in the same folder by default, like Lightwave 3D, MPLab, or collects the files in the My Documents folder. This got messy very quickly. Now I force each application to store the data in the project folder.

    Indesign has a preflight tool to collect all the files to put them into a single folder for sending to a printing company. Files like fonts, pictures etc. very convenient. Now I do it manually for all types of applications that doesn’t support this feature.

    For website design and writing web apps, I use a folder called updates. Each new feature request or change gets a folder starting with the date year-month-day description (just like my photo strategy). All documentation and other non code related files are stored in there while a github or other versioning system is used to store the actual code. It’s easy for colleagues to find their way through my generated folders and files. I also keep a log in which I write my thoughts and decisions, with the date. I can make a full reconstruction of what I did when and where that way. It can also be a basis for writing documentation, or extract a list of changes for a release (though commit descriptions are normally used for this, but for specifics the log can be used).

  6. This is what a wiki is for. Any hierarchy at any time. Can’t find something where it’s expected? Do a hard search and then add that as a link to the page where you do expect it.

    I’d rather give up spreadsheets and go back to calculations in C before I’d give up my wiki and go back to a file system.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.