A helpful sorting/filtering program for data hoarders and game creators

Oct 25, 2017
266
548
No one wants to be the "ideas guy", right? So I'm taking things on my own hands and trying to go all in on building myself what I think is a really useful program. I'm not looking for a partner/coworker, I wanna prove to myself I can at least get my foot in the door. I've being doing some light programming for a year now. And that's where it gets complicated.

I've been doing web development for a year. I'm still a noob but I can deal with front-end stuff with typescript frameworks like Vue(Nuxt) and Svelte(kit). I've been making my own adult CYOA project and it's going great, it's detailed and uses some deeper javascript functions and state management and all of that good stuff. But what I want to do now, besides that project, is quite a bit more complicated.

Here's the problem I want to solve: I'm a data hoarder. Everything that's niche and cool I think to myself "I need to save this because this will get lost on the internet someday and it's important enough that I need to make sure this doesn't die out in the future". So I just have my hard-drive full of cool-yet-niche images and videos that are all unorganized. I also like watching porn (duh) and a lot of the content I consume revolves around specific themes... which can be pretty niche. And where does this lead to? Well, I want a program that can tag, filter and present files in a variety of ways. I think it would be really useful even for people who make games, or smut in general.

Basically, it's a desktop application that accesses the files, creates a deep tagging system (with subtags, so you can have tags inside of tags for subitems, like themes and subthemes) and a nice browsing/filtering system, much like the one here on F95. So you can show only this or that tag, you can hide this or that tag, you can filter by size, framerate, length, all of the ways you could think of. This means a good database is needed. So I went to research the things I know: Could I make it with the front-end tools I currently know of? Well.... no, because they're not allowed to access the file system the way I want to. You can only access the file PICKER, which would be a hastle to deal with. It needs to specifically access the system and not just wait for the user to pick a folder, you know what I mean? So I went searching: I found out there was a way to build desktop programs with my favorite JS frameworks. I found Electron and Tauri. Electron has a bit of a reputation with how bloated it is. And Tauri requires some knowledge of Rust. And all I'm learning right now (that is deeper than JS/TS) is Golang. So I have a few options: I could go all in on the native thing and learn actual programming languages, like C++ or even C# and create actual normal programs, but that would take quite a bit of time I think. I could learn a bit of Rust and make a program in Tauri. Or I could ignore that bloatness situation with Electron and go with it regardless since it's Node-based. And this is where I could use some recommendations and guidance from people with more experience than me.

Like I said, I don't want a partner but I do need some opinions or initial guidance on how or where to proceed with this. If you have any experience on the field, what are your thoughts? Is it too much for a beginner to do alone? Did I miss some technology that would make my life easier? How would you go about building this thing?
 
Last edited:

anne O'nymous

I'm not grumpy, I'm just coded that way.
Modder
Donor
Respected User
Jun 10, 2017
10,957
16,188
So I have a few options: I could go all in on the native thing and learn actual programming languages, like C++ or even C# and create actual normal programs, but that would take quite a bit of time I think. I could learn a bit of Rust and make a program in Tauri. Or I could ignore all of that bloatness and go with Electron which is Node-based.
Or you could learn a more versatile script language, list Ruby, Python or Perl, and use its Tk(-like) package/library to have an efficient desktop software.
The sub-tag system put aside, because it's a bit more complex, someone with no knowledge that would learn Python while doing the project should have a working application, coupled to SQlite for the database part, in two months maximum.

The main advantage being that the learning curve for script language is relatively stable compared to language like C++/C#. Like there's no compilation time, nor need of a skeleton app, you can perfectly dedicate 5 minutes to the understanding of a single keyword, and know everything you currently need to know about it for now.
30 seconds to write the tenth lines for the code, 5 seconds to run the code and see what it do, 1 minute to look back at the doc, to understand why it don't do what you expected, 30 second to come with a new code, 5 seconds to run the code again, etc.
This while 5 minutes is what you would need to come with a test code for a compiled language, since generally you can't just have something like for i in range( 1, 10 ): print( i ).

The second advantage being that, being easy to use while able to handle complex computing, knowing a not depending script language (by opposition to JavaScript that can, but is almost never, used with a standalone interpreter) permit you to have all the small tools you need, even if it's just for punctual tasks.
By example, right now I have 7 Perl applications running, among which one is handling a remote database, and three are using it. And one that is always running, taking charge of the daily backup to my NAS.

It's my job, so of course it was fast, but to take an example, I needed less than one day to write the app in charge of the backup. And it's really a full application, with a visual interface, extendable schemes (where to take the files, where to put them, how to rename them, if they need to be renamed, should they be compressed, etc.) depending on what is to backup. Plus the automation part to starts the backup if I haven't done it manually less than 12 hours ago.
With C/C++ I would have probably needed a week, and not just because I'm old and it make me grumpy when I have to use compiled languages. What cost the most with compiled language is the debugging part. With a script language you would do two or three test runs, the time the same code would compile. And when you're learning, it's really an important point, because you'll have a lot of debugging to do.
After that, you can still decide to learn C++/C# if you want. You'll have practice experience with a second language, that will make it easier to learn C++/C#, and you would also have a working code of what you want to do, what would permit you to focus on learning the language without having to constantly ask yourself "how should I do this part".
 
  • Thinking Face
Reactions: richarddlopatin