When I was applying to this internship the goal was getting a full functioning video player running in the Fractal project, which I understood is a pretty hard thing to do, even already having code in the repository that does similar things.
Trials and tribulations
I'm not an experienced developer (Fractal is the first project I have ever really contributed to). And I can say that learning Rust has been a sometimes frustrating experience, as searching things online is frequently not enough to find an answer. The Rust docs is a thing of beauty <3, but not all crates are well documented and sometimes I see myself looking for documentation in other languages to complement what I got from the Rust documentation.
I'll frequently have documentation in C or Python for things like gstreamer or Pixbuf, and also snippets of code in those two languages for things I'd like to replicate in Rust.
Just now I am still trying to replicate this code for taking a snapshot from a video (using gstreamer), using some C code as a reference and it is so much harder than I thought it was going to be! And so frustrating! This is the type of thing I appreciate pairing on because it often feels like I don't have any idea of what's going on and it feels reassuring to have someone with me to do sanity checks with. I'm also someone that struggles with asking for help at times which can make things that much harder... I feel like I'm ok with asking for help when I get a pretty good understanding of what I don't get and it is a small thing because a nicely written question can really go a long way. But if it's a broader issue and harder to phrase, I fear that I'll just waste everyone's time by not really being able to explain what the issue is, to begin with...
I struggled so much with the snapshot code that a maintainer suggested I got another issue to work on, to help with my motivation <3.
Also after a week trying to fix said fairly easy issue (marked as newcomer friendly) on Fractal, I finally got to understand how the communication between the front-end and back-end of the client works! That and why it is like that, threading and communication with the server! Which is pretty exciting! It's been more than 2 months since I first touched the project and I still didn't have an overall idea of the project's architecture and it feels nice to feel like I'm getting there.
Actually adjusting expectations
Like I said, I'm struggling, but learning and actually having a good amount of fun at times! I feel like a lot of the things I'm learning and dealing with are far less trivial than I thought they were at first and that's always interesting.
I'm now pretty sure that I'm not going to be able to implement the full video player, so talking it over with my mentor, the goal was adjusted to be a video player preview, that displays a thumbnail and a download button.
Which should definitely be possible in the remaining time :)
That being said, I do hope to continue to work on Fractal even after Outreachy is over! I really appreciate the things I am being able to learn and how nice a lot of the people who work on it are <3
And I do think that implementing a video player sounds pretty cool and that I am able to do it, I just need more time :).