21 Comments

I’ve been saying this for 20 years.

The obvious alternative is to store data in relations. If you start thinking about that, you get into some pretty interesting territory. I’ll write a blog post about it and send a link.

Expand full comment

please also post here, readers could be interested. Thanks !

Expand full comment

I've never encountered any of the problems you mentioned. If I want to find a file quickly, I use "plocate". So... nah, I'm quite happy with using a file system to organize my data.

Expand full comment

Maybe I am reading this wrong, but it sounds like he is just doing a version of BeFS that BeOS and Haiku have been using for decades.

Expand full comment

I don't doubt for a minute that there is some overlap between Didgets and BeFS, but that is far from the whole story. Didgets is an entirely new animal. To use the animal analogy, it is like the story of the 5 blind men who feel parts of an elephant for the first time and try to imagine what it looks like. It is easy to grab ahold of the tail and assume an elephant is a lot like a snake.

Expand full comment

This is exactly what MS WinFS was about. A relational database file system.

Expand full comment

MS WinFS was the answer to this. A tagged relational database file system. Bill Gates said it was too hard to do and gave up. The current MS skill level and focus provides no hope for the future.

Expand full comment

All of the complaints about existing file systems are technically true, but irrelevant and greatly over-blown.

"If you have ever forgotten where you stored a file in a file system"

--- I have rarely ever done that because I take a few *SECONDS* to properly organize my files.

"File systems let you store any file in any folder, regardless of whether the folder path is appropriate for the file."

--- True, but irrelevant. A non-problem.

"....searching by file extension may or may not turn up the file you were looking for."

--- No rational person searches by extension except in very rare cases.

You search by file name, and, if you have taken a few *SECONDS* to organize your files, you almost never need to search for anything because you know where you saved it. And in those rare occasions when I forget where I put something, finding a file is quick and easy because I already know the general area where I need to look, because I took a few *SECONDS* to properly organize my files.

Didgets is .... creative and interesting ... but it is a "solution" to a non-existent problem.

Expand full comment

Managing unstructured data using 'File Didgets' is just a small portion of what the system can do. The relational tables you can create with it can be queried many times faster than MySQL, SQL Server, or Postgres. Also, maybe you have a perfectly organized folder system on all of your drives, but I often forget where I put things. Were those pictures in 'Photos/2002/Vacation/Hawaii'? Or did it stick them in 'Photos/Family/Hawaii'? Sometimes the program you use to download them from your camera had its own idea about where they should go.

Expand full comment

did you upload the code somewhere ?

Expand full comment

The software is available for free download on the Didgets.com website.

Expand full comment

Two comments:

- have you heard of BeFS?

- it's not true that read-only attributes are 'just a suggestion': the OS ensures that the user cannot delete the file without the required permissions

Expand full comment

I have heard of BeFS. Didgets undoubtedly shares a few common features with that system, but is an entirely different animal.

Expand full comment

Also, any piece of malware which happens to find itself running under the permissions of the logged on user, can alter any file that user has permissions for. If the user has permission to chmod a file, then nothing stops them. I heard of BeFS and did a little research on it before I started working on Didgets. It was considered to be a dead project even at that time, so I didn't spend a lot of time on it.

Expand full comment

In Windows, the most widely used OS, read-only really is 'just a suggestion'. Windows will gladly allow you to delete a file that is set as read-only and it takes a lot of fiddling with obscure and arcane permissions to prevent that.

Expand full comment

It's not just the delete operation that is the problem. That link you accidently clicked could spin up a piece of malware that inserts a piece of malicious code inside a critical operation system file.

Expand full comment

How are you going to update that 'critical OS file' if it's truly immutable? If 'immutable' means it cannot be modified, but only deleted+recreated then the malware may just as well do that.

If the user clicks on a malicious link and that's then able to modify an OS file that's either through an OS bug (which can just as well happen in the FS code) or a security blunder, because the user is running with root/admin permissions.

BeFS I only mentioned because what you described regarding file type and tags strongly reminded of that - it is/was a nice concept.

But there are general downsides of keeping meta-data apart from the file (either in the file name or in the file system), because they can+will be incorrect. Just think of the way people are tricked with file extensions (foo.exe.pdf) and such. Or iOS exploits because files claim to be of a format that they are not.

Expand full comment

With Didgets you wouldn't 'update' an OS file you would get a new version that would sit side-by-side with the original. The OS would keep a reference to which version it wanted to load. In this way OS versions could be managed much the same way Git manages software projects. You can 'rollback' any changes by just pointing a different version of any file. It should be possible, for example to have every version of Windows every released on your computer. You could boot back into any version by just pointing to the right list of files at startup. The OS would have to support this, of course, but Didgets makes that possible.

Expand full comment

If you are talking about files that the users owns, then yes, that's also true for Unix.

But for what user files would it make sense to make them immutable, instead of 'merely' preventing accidental deletion?

Expand full comment

For me, I like to keep the original version of a photo. With Didgets I can make a photo immutable so it can't be altered. If I want to 'photoshop' it, I create a clone of it (an exact copy with a different ID) and edit that copy. I can't accidentally photoshop the original in this case so it is preserved in its initial state.

Expand full comment

I have been specifying this since the 70s when I designed the Task Machine. How expected computers to work before i even owned one. Everything referenced using keywords / tags and stored in a database.

Expand full comment