• 0 Posts
  • 22 Comments
Joined 1 year ago
cake
Cake day: August 7th, 2023

help-circle

  • Skimmed comments, but if you download and manage your music on your own on a machine you can have a super simple setup like I do. All music is synced using Syncthing to my phone. So my phone gets local storage, and then I use Poweramp (android) to play it.

    I pretty much have a folder for all the music though. But I assume you can sort music into folders to have them as playlists. But perhaps not as practical as desired.



  • What’s fun is determining which function in that list of functions actually is the one where the bug happens and where. I don’t know about other langauges, but it’s quite inconvenient to debug one-linres since they are tougher to step through. Not hard, but certainly more bothersome.

    I’m also not a huge fan of un-named functions so their functionality/conditions aren’t clear from the naming, it’s largely okay here since the conditional list is fairly simple and it uses only AND comparisons. They quickly become mentally troublesome when you have OR mixed in along with the changing booleans depending on which condition in the list you are looking at.

    At the end of the day though, unit tests should make sure the right driver is returned for the right conditions. That way, you know it works, and the solution is resistant to refactor mishaps.


  • But nothing is forcing you to check exeptions in most languages, right?

    While not checking for exceptions and .unwrap() are pretty much the same, the first one is something you get by not doing anything extra while the latter is entirely a choice that has to be made. I think that is what makes the difference, and in similar ways why for example nullable enabled project in C# is desired over one that is not. You HAVE to check for null, or you can CHOOSE to assume it is not by trying to use the value directly. To me it makes a difference that we can accidentally forget about a possible exception or if we can choose to ignore it. Because problems dealt with early at compile time, are generally better than those that happen at runtime.


  • It can be pretty convenient to throw an error and be done with it. I think for some languages like Python, that is pretty much a prefered way to deal with things.

    But the entire point of Rust and Result is as you say, to handle the places were things go wrong. To force you to make a choice of what should happen in the error path. It both forces you to see problems you may not be aware of, and handle issues in ways that may not stop the entire execution of your function. And after handling the Result in those cases, you know that beyond that point you are always in a good state. Like most things in Rust, that may involve making decisions about using Result and Option in your structs/functions, and designing your program in ways that force correct use… but that a now problem instead of a later problem when it comes up during runtime.












  • I’m in the MPC-HC gang on Windows. Just so much more practical than other players. The main selling point was that full-screen the controls go away once you move the cursor off them, it was amazing. And no waiting for subs to be processed like VLC had to back then, never turned back so don’t know if that is still a thing.


  • Already been explained a few times, but GPU encoders are hardware with fixed options, with some leeway in presets and such. They are specialized to handle a set of profiles.

    They use methods which work well in the specialized hardware. They do not have the memory that a software encoder can use for example to comb through a large amount of frames, but they can specialize the encoding flow and hardware to the calculations. Hardware encoded can not do everything software encoders do, nor can they be as thorough because of constraints.

    Even the decoders are like that, for example my player will crash trying to hardware decode AV1 encoded with super resolution frames, frames that have a lower resolution that are supposed to be upscale by the decoder. (a feature in AV1, that hardware decoder profiles do not support, afaik.)


  • I would say, just see how much shit Hunter x Hunter can do in 100 episodes compared to One Piece. Maybe it’s just me but every time I tried one piece the first few episodes were to painfully slow. So I tried an abridged version but it didn’t have all the arcs done in order last I remember. Now both shows are different so it’s not exactly apples to apples but HxH manages to make each episode good on its own, and throws in a cliffhanger like ending each time to keep you going, especially during longer sequences.

    If One Piece just drops all fillers, that too is good. But One Piece also does what Fairy tail does (well, I read at least 600 chapters of one piece manga for this view) and that is having arcs where 90% isn’t that important with sporadic information drops and then the big showdown. And the anime mimics that. Some detours are fine, but One Piece often feels like it’s filled with detours until the important characters manage to get their asses to the final showdown. And it’s why I eventually fell off the manga. I lost interest in going through so many chapters to get the meat of the arc.