thevoidzero

joined 7 months ago
 

Hi all.

I want to develop a plugin system within my program, and I have a trait that functions defined by plugins should implement.

Currently, my code gets all the functions in a HashMap and then calls them by their name. Problem is, I have to create that hashmap myself by inserting every function myself.

I would really appreciate it if there was a way to say, suppose, all pub members of mod functions:: that implement this trait PluginFunction call register(hashmap) function. So as I add more functions as mod in functions it'll be automatically added on compile.

Pseudocode:

Files:

src/
├── attrs.rs
├── functions
│   ├── attrs.rs
│   ├── export.rs
│   └── render.rs
├── functions.rs
├── lib.rs

Basically, in mod functions I want:

impl AllFunctions{
    pub fn new() -> Self {
       let mut functions_map = HashMap::new();[[
       register_all!(crate::functions::* implementing PluginFunction, &mut functions_map);
       Self { function_map }
  }
}

Right now I'm doing:

impl AllFunctions{
    pub fn new() -> Self {
       let mut functions_map = HashMap::new();[[
       crate::functions::attrs::PrintAttr{}.register(&mut functions_map);
       crate::functions::export::ExportCSV{}.register(&mut functions_map);
       crate::functions::render::RenderText{}.register(&mut functions_map);
       // More as I add more functions
       Self { function_map }
  }
}
[–] [email protected] 6 points 1 week ago

I'll repeat it as much as I can but we need yo open up new journals for these kind of things.

All we need is a good cloud for storage, and volunteers. I think comp-sci people do that with https://arxiv.org/

The journal should accept any user submitted papers but have ranking based on other people, like successful reproducible studies (which is also accepted in journal) will be linked to the original journal. Reviews and such can be their own articles but also linked to the journal.

That way, undergrads can do projects reproducing previous studies (given resources) which will still give them research credit. Failures and exploration will also give people credit as it helps other people's research. We can just tag papers for novel ideas,failures, reproducing old paper,reviews, etc.

I think it has a chance to be very useful if we can pull it off. Although it'll have the same problems as of social media with upvote system. So some more thoughts needs to be there for the actual implementation.

[–] [email protected] 1 points 2 weeks ago

I guess yeah. In that condition the algorithm would probably destroy all universe. Although you might be able to set a threshold and not destroy when it is over the threshold.

But situation where you don't know the answer is not for this algorithm as this one came from sorting problem.

[–] [email protected] 1 points 2 weeks ago* (last edited 2 weeks ago) (2 children)

It's not fun when you have to explain it. But basically it is based on the infinite multiverse theory. Since the multiverse splits whenever you make choices, in this case the program would spawn a large number of multiverses each with different combinations of those bits, which means at least one of them would have the exactly the combination we want. If the program destroys the multiverse it is in after it determines it is not correct, only reality that remains is the one with correct combination of bytes. Making it that we will get the code we want on the first try.

[–] [email protected] 4 points 2 weeks ago

That seems like a wonderful function. Considering android support external mouse with cursors. I hope someone can make a FOSS version and put it in F-droid.

[–] [email protected] 5 points 2 weeks ago (4 children)

Just ask if it's correct. If not destroy the universe. Only The correct will survive, it's O(1)

[–] [email protected] 7 points 2 weeks ago (1 children)

M-x M-c butterfly

[–] [email protected] 4 points 2 weeks ago (2 children)

Underscore to delineate different parts, hypen to delineate words.

Like: my-resume_draft.pdf

And to make it consistent and easier to reuse parts for project names and such, I have a command line utility written for it. It caches the parts and uses a template system (support for generating current datetime in parts)

Available here (is in AUR too):

https://github.com/Atreyagaurav/nameit

[–] [email protected] 15 points 2 weeks ago

That's what bibliography is. It's already like that, or am I missing something?

[–] [email protected] 10 points 3 weeks ago

We're not saying pay the authors a bunch, we're saying make the papers free to read. Or at least don't charge authors and readers both, while keeping all the money for yourself.

 

Hi everyone,

I'm hoping there are people here who work on FOSS and have applied for grants to support their software financially. I am applying for a grant opportunity that is asking for a software from US gov agency.

My requirements:

  • I want to publish it under Open Source Licenses like GPL (not MIT) so other corps can't take this to use on their product,
  • The grant agency will get the source code, they can do whatever as long as the license is held,
  • I will develop the features they want, and request during the duration of grant,
  • I will want to continue development independently after the grant, or apply for more grants from other organizations,
  • To clarify the previous point, I do not want to give them the final product so they own it, and I can no longer do anything on the program.

So, if anyone has done similar things, please give me advice on this. Their requirement says "a web repository" should be provided at the end, so I think I can apply with the intention of giving them the software code while keeping the rights. But I don't want to make a mistake in application/contract and lost the rights to the program, I want to develop a lot further than just the features they want for their use case.

Or at least dual license to protect the Open Source Side while giving the grant organization rights to take the code for their other programs because of the money they spent.

[–] [email protected] 3 points 1 month ago (6 children)

Yup, looks like that movie. Thanks, I didn't remember the name.

[–] [email protected] 6 points 1 month ago (9 children)

I remember there being something like this already. The final mission happens as they say "this is the final training for you". The enemy (aliens) behave differently than expected in this final simulation because they are not immediately aggressive and are waiting while defending their location, but the child successfully eliminates them. And later learns that was the actual aliens and not the simulation. And the aliens were just trying to find a place and protect their new generation, or sth.

[–] [email protected] 1 points 1 month ago

{1..10..2}

Wow, that's nice to know. I guess my program will at least make it easier since you can type it in a more humane way, but not essential.

 

This feels like it should already be a feature in a terminal. But I didn't find anything that let me do this efficiently.

I had a rust library for converting list like 1-4,8-10 into vectors, but thought I'd expand it into a command line command as well, as it is really useful when I want to run batch commands in parallel using templates.

I wanted to share it since it might be a useful simple command for many people.

 

cross-posted from: https://lemmy.world/post/17984566

Hi all,

mpv communities seem to be tiny in lemmy, so I'm sharing it here.

This is a program I made for music control from local network.

You can run it in a computer with some local media files, or youtube links or any other links yt-dlp supports. And then with the server, you can control the media player and the playlist from any devices in your local network. So that you can just show a QR code or something to house guests for parties, or have it bookmarked within family to control the music.

I wanted to make something similar to how youtube app let's you play in TV and such, but my skills were not enough to do that. So I tried a simple alternative that works with computers. In an ideal world, I could make "Play with local mpv server" option come while on other android apps, but I have zero experience in android app development and it looks complicated.

I know some other programs also give option to control media, but I wanted to give it a go with a simple implementation. Making the web-server was a tricky part. Only tutorial from the rust book was useful here as every other web server developement in rust seems to be async ones using libraries so I would have to make a complicated system to communicate with the mpv. Using the simple Tcp connection let me make a thread with mpv instance in the scope. I do need to support https and file uploads and other things, but I haven't had any luck finding a solution that works with simple Tcp connection like in the tutorial. Let me know if you know anything.

Github: https://github.com/Atreyagaurav/local-mpv

view more: next ›