Readit News logoReadit News
distract8901 · 2 years ago
Oh, I had no idea jellyfin was based on C#.

I started my career as a C# dev, but now I only write C++. I miss C# dearly and have been badly wanting a project to flex those muscles on.

I guess I'll dive into jellyfin now. I've got a list of annoyances and now that I know it's C#, I'm ready to get fixing

barake · 2 years ago
You're likely in for a treat if you haven't written C# in a while. The language has evolved quite a bit, especially around all kinds of nice ergonomics. Interesting things like pattern matching, using statements, and performance oriented primitives.

I got back to writing C# full time earlier this year and it's a joy.

distract8901 · 2 years ago
I've been keeping up with the language and I am... Less than enthused.

Maybe I'm just yelling at clouds, but I see more bloat than useful features recently.

Non-nullable reference types as default was a bad idea and I will die on this hill

_a_a_a_ · 2 years ago
I must admit to disliking C#'s functional libraries. I have wasted so much time trying to get the buggers into a pipeline. It becomes agonising in a way that doing the same thing in Scala was so very much a dream. I keep discovering the hard way, just don't do it (or just get a whole lot more experienced at it, although I don't know how without going through the pain barrier, and deeper each time, like Inception).

Could you give me a hint about these 'performance oriented primitives' please? (The only ones I can think of are structs versus classes) Edit: but isn't there a new thing where you can subtype a class without allocations, like Scala's record classes, or is that new in Java, can't remember.

movedx · 2 years ago
Thank you! I'm not affiliated with the project, but I do use it. I appreciate any and all efforts put toward improving it.
ncallaway · 2 years ago
One suggestion I’ll make to the Jellyfin team is to post this call at the point where users are requesting things too.

In the example in the blogpost (Chromecast support), in the issue I was asking a bit about how I could help implement the feature (https://github.com/jellyfin/Swiftfin/issues/271#issuecomment...).

Even if there’s nothing I could have productively done to contribute to that feature, I would absolutely have gone to those getting started features.

So, I’d encourage the team to have a pretty quick hand in issues when people are asking to help to link to this blog post and getting started resources.

Finally, none of this is in anyway a criticism of how any interaction was handled. I super appreciate everyone that works on Jellyfin, and I know onboarding developers can often feel like/be more work than not. Just a suggestion for a good spot to add some CTA links that I think would convert reasonably well

hotnfresh · 2 years ago
I looked at adding a much-requested and not-that-hard-to-add feature a while back (allowlist-by-tag), got as far as figuring out where to add it in the server code… but bailed when I realized I’d need to shepherd PRs through at least two repos to get the feature delivered, while juggling both repos to do integration testing. Monorepos for tightly-coupled code are so nice…

Maybe I’ll give it another look.

[edit] incidentally, allowlist-based parental controls are one of the best tools to have, and basically nothing supports them, which is really frustrating.

Modified3019 · 2 years ago
If nothing else, I’d encourage you to send them feedback on what makes you bounce off, as you probably weren’t the only one.

Hell it probably sucks for them too, but they’ve gotten used to the suck and forgot about it.

beebmam · 2 years ago
This is a huge problem with git/GitHub. Cross repo PRs could simplify this process. I've wanted this as a feature for nearly a decade.
foooorsyth · 2 years ago
Git and multi-repo were a mistake. Git’s packfile is a disaster.

Checkout Sapling and ReviewStack. They look promising.

paradox460 · 2 years ago
Fwiw, Plex parental controls are absurdly flexible.

I have it set up so the kids account can only watch things that have been given a particular tag. Due to how granular Plex tags are, this means you can give them a whole movie or TV show, some of a TV show, or a single episode

As it is right now, they have access to a reasonably large corpus of content, but nothing new; every time I acquire a new episode of bluey or something, my wife wants to watch it first. We basically always approve it, since we aren't that likely to object to most things you'd find in a kids show, but it's nice to have the peace of mind

22c · 2 years ago
> every time I acquire a new episode of bluey or something, my wife wants to watch it first

I wish Jellyfin had something similar, as my current process involves manually tagging things with a tag that isn't visible, then removing that tag once I've reviewed it.

Dead Comment

fluidcruft · 2 years ago
I was frustrated about the allow-list for the longest time but someone on Reddit showed me how you can do allow-list on Plex. I forget the terminology (and you have to be careful because there are both tags and labels, I had been trying the wrong one) but you basically create a label and set the children accounts to only see content tagged with that label.
codexb · 2 years ago
Plex supports allow lists and deny lists. Nice to be able to gate most movies by rating and then allow some others on a per-movie basis.
j1elo · 2 years ago
As a developer who only works on Linux systems, how is the dev story for C#? I guess Mono is still a thing, and that's the runtime that C# projects use to run, right?

I've always felt that C# felt a bit out of place when not in a Windows system, but maybe I've been always wrong. Never had the opportunity (or need) to use it at work, so I'm pretty ignorant of how it behaves and how good the tooling is to write it from Mac or Linux.

OTOH I've read multiple times that it's a nicer Java and F# seems to be well liked around here, too.

Macha · 2 years ago
It's a little funky on Arch to get it installed and with the death of Mono the only option for IDE is microsoft's closed version of vs code as the c# plugin doesn't work on vscodium. (And much like Java, lots of C# language design assumes you're using an IDE).

But apart from that for a web app it's fine.

cjblomqvist · 2 years ago
Rider works very good (but costs you some $$$ off course).
mananaysiempre · 2 years ago
Do the OmniSharp LSPs[1,2] not work with a generic LSP editor plugin (e.g. kak-lsp)?

[1] https://github.com/OmniSharp/omnisharp-roslyn

[2] https://github.com/OmniSharp/csharp-language-server-protocol

actionfromafar · 2 years ago
You can wrangle C# with minimal IDE support, but it's not as smooth. It's easier to fix little things than to green-field new stuff, IMHO.
distract8901 · 2 years ago
C# on Linux is only slightly more annoying than Windows. You have to make some effort to install the SDKs and naturally some of the system APIs behave slightly differently, but overall I have only a very slight preference for windows here.

Mono does still exist, but since like 2015 or so C# has been supported natively on Linux. No one really uses mono anymore AFAIK. Its only purpose is running dotnet framework apps as opposed to dotnet core

phpisthebest · 2 years ago
what you need to do is install powershell on linux, and set that to be your default shell, then install dotnet

Once complete you will have the best linux environment to develop on :)

papercrane · 2 years ago
Mono is still a thing, but Jellyfin uses .NET Core, which is a FOSS runtime that Microsoft provides.
neonsunset · 2 years ago
It's just .NET now, without the Core part. Mono remains a runtime flavour for special targets but it's being slowly phased out in favour of CLR even on those special targets (for example iOS which has historically relied on MonoAOT, but now can be targeted with NativeAOT too).

Also, I'd really love if people stopped exclusively attributing .NET's progress to Microsoft. Yes, MSFT does the steering and funding, and employs teams working on the ecosystem, but the development happens in the open, and a lot of runtime improvements have been community contributions.

Rapzid · 2 years ago
> how is the dev story for C#

It's fantastic and it runs natively on Linux.

Mono is still around and used for some niche use cases(WASM, interpreter, etc).

WorldMaker · 2 years ago
Also Mono and the rest of .NET are in the same open source repositories today and it isn't as much a case of replacement as a proper code refactor and merge over the course of the last several years (by both Microsoft and a large open source community).
cjblomqvist · 2 years ago
C# runs natively on Linux (have done for many years now). AFAIK even on Azure people prefer to run it on Linux machines (including the place I work for). Performance wise I believe it runs equal to faster. A lot of C# devs (majority) now work on none Windows machines (they were very quick to add support for the new Mac arch as well).

TLDR; C# the language is as good or even better on none-Windows nowadays.

leetharris · 2 years ago
This is only true if you're talking about non-GUI apps. MAUI is trying to fix this but in my experience it has been a rocky start.

But for backend and CLI stuff totally agree, works great on Linux

mvdtnz · 2 years ago
Your view of C# is at least 6 years out of date.
lostmsu · 2 years ago
I just took a look at their GitHub repos, and the main one has 90+ PRs open for some for over 8 months with no feedback. What is the point of this call to action if the current team can't handle the current PR volume? As it stands more PRs won't help the project.
lostmsu · 2 years ago
To be more specific, I looked at the list of open feature requests, and one of them is this one: https://github.com/jellyfin/jellyfin/issues/1714

A rather trivial PR for it is open since Feb 2023 with no addressable feedback: https://github.com/jellyfin/jellyfin/pull/9291

gerwim · 2 years ago
I didn’t know they needed developers. I’m an avid Plex user but C# developer by trade. Cloned the server and web projects and worked on my first issue!
navanchauhan · 2 years ago
I love Jellyfin. Been using it for 3 years now, will definitely participate in Hacktober fest!
revskill · 2 years ago
It's hard to spell the "Hacktober fest" word though.

I guess the easier term could be: Hacktember.

bluedays · 2 years ago
I want to use Jellyfin but that’s no official client for Apple TV
anotherhue · 2 years ago
navanchauhan · 2 years ago
Infuse media player[0][1] has an awesome Apple TV / iOS / macOS client. It even integrates with Jellyfin.

[0] https://firecore.com/infuse

[1] https://jellyfin.org/posts/client-infuse/

hotnfresh · 2 years ago
Infuse is great. I’d guess it’s existence and quality level are why the official client doesn’t get more attention.
xp84 · 2 years ago
Are the existing clients that bad? I tried one years ago, and I didn’t have any issue with the Jellyfin client. I only stopped using Jellyfin because Locast was killed off and that was my main thing I was doing with it.
bhaney · 2 years ago
I've been using Swiftfin since I got an Apple TV, and it's... okay. Lacks a lot of sorting/filtering options, gets janky and starts loading movie cards in the wrong place if you scroll too fast, and sometimes stops updating the progress bar for the rest of the movie if you pause it, but it's still useable enough.
singhrac · 2 years ago
There’s Swiftfin, no? Development is a bit sparse but it’s worked ok in the past when I’ve needed it.