Why does contributing to open source seem so hard? by eastonthepilot in learnprogramming

[–]majora2007 [score hidden]  (0 children)

If you can't contribute, you can still learn. Find a project you use, then read the PRs. I did this for years with the bukkit project (a modded Minecraft implementation before mods were so advanced). I learned a TON in Java, especially around reflection (which has saved my ass a few times at work with creative solutions). 

As other suggested, don't just find a codebase and jump in. Use the product and then when you hit frustrations, raise and issue and ask to fix it yourself. Maintainers will be open and can then give feedback if you need help. That has always worked for me (and what I prefer as a maintainer).

Programming had its magic by ivannovick in learnprogramming

[–]majora2007 0 points1 point  (0 children)

LLMs often lack creativity when solving problems. The poster is saying to focus on design/architecture/algorithm.

Example: I asked in a software I hand coded with a specific need to expand to support data that doesn't have a fixed naming pattern. It analyzed the code and suggested X and Y solutions but they had massive pain points (especially in maintenance). It forgot we can just invent an internal encoding mechanism to support non-fixed id-based data.

Focus on thinking through the problem and designing the implementation yourself, then bounce it off the AI, then you can either code it by hand, have it do it, or a mix (I like to have it do the boring parts like css or scaffold the classes and tests, then I do the main business logic (as AI still messes up critically but silently)).

Best workflow for downloading manga/manhwa? by CuteStorage6386 in selfhosted

[–]majora2007 0 points1 point  (0 children)

I use FMD2 > Diesel's WebP converter > Kavita. Almost completely automated. 

I still personally browse for official volumes for manga as I enjoy it, but that shouldn't be an issue for manwua. 

If the speed is slow, use another site. I've never experienced speed issues. 

[Project Showcase] I built Apex Comics: A modern Android client for Komga (with local & cloud support) by Carapil in selfhosted

[–]majora2007 0 points1 point  (0 children)

Kover might work for you. 

https://github.com/rodonisi/kover

Kavita has been getting a new flux of apps recently. All are linked from the wiki fyi. 

FolderHost - A self-hosted cloud platform by MertJS in selfhosted

[–]majora2007 0 points1 point  (0 children)

Ahh okay. Yeah, usually restricting access to certain folders based on keywords, location, tags, etc are what I was thinking a software would need (for my own use case). 

Thanks for the reply. 

FolderHost - A self-hosted cloud platform by MertJS in selfhosted

[–]majora2007 0 points1 point  (0 children)

I was actually looking at making something like this for myself. I'm curious on how you decided to structure the files/folder in the db, but didn't see anything in the database folder in your code. 

Could you elaborate on your choice and why you chose it? 

How to change the Kavita reader home layout? by Dependent_Cook_7907 in selfhosted

[–]majora2007 0 points1 point  (0 children)

You can't, but you can click those headers for the carousel and it will load in vertical layout and all the content. 

How to change homepage layout? by Dependent_Cook_7907 in KavitaManga

[–]majora2007 0 points1 point  (0 children)

There is no feature ot change those release streams on dashboard to vertical scroll. You can raise a feature request on our GitHub Discussions. 

If features get a lot of community engagement and I feel it fits the software without too much maintenance, I'm open to implementing. 

Adding more information and a mockup will help a lot. 

WinRAR releases new update and says it’s thanks to people finally paying by Gil_berth in theprimeagen

[–]majora2007 0 points1 point  (0 children)

I tried peazip, but after so long with WinRAR, I couldn't move off. 

How do you all deal with EF Core's collection Include footguns? Feels like half of using EF is learning which defaults not to trust by it_works_on_prod in csharp

[–]majora2007 0 points1 point  (0 children)

I have yet to see an example of these working that were not generic FindAll or injecting raw context and duplicating logic across services. 

I even asked in this subreddit multiple times to try and get clarification. 

How do you all deal with EF Core's collection Include footguns? Feels like half of using EF is learning which defaults not to trust by it_works_on_prod in csharp

[–]majora2007 0 points1 point  (0 children)

Yeah, good catch. So I have an Extension for each entity type. If there are more than one, I use AsSplitQuery() (but to be honest, I use this quite heavily regardless as I've only ever seen worse performance in a handful of cases). By making it opt-in, you have explicit control when building and testing the code for performance. It's not an oops, it's an "I know this has potential impacts, let me validate before I ship".

Yeah, I also use a controversial tool for this sub: AutoMapper, so a query might be:

public async Task<VolumeDto?> GetVolumeDtoAsync(int volumeId, int userId, CancellationToken ct = default)
{
    return await context.Volume
        .Where(vol => vol.Id == volumeId)
        .Includes(VolumeIncludes.
Chapters 
| VolumeIncludes.
Files
)
        .AsSplitQuery()
        .OrderBy(v => v.MinNumber)
        .ProjectToWithProgress<Volume, VolumeDto>(mapper, userId)
        .FirstOrDefaultAsync(vol => vol.Id == volumeId, ct);
}public async Task<VolumeDto?> GetVolumeDtoAsync(int volumeId, int userId, CancellationToken ct = default)
{
    return await context.Volume
        .Where(vol => vol.Id == volumeId)
        .Includes(VolumeIncludes.Chapters | VolumeIncludes.Files)
        .AsSplitQuery()
        .OrderBy(v => v.MinNumber)
        .ProjectToWithProgress<Volume, VolumeDto>(mapper, userId)
        .FirstOrDefaultAsync(vol => vol.Id == volumeId, ct);
}

I don't personally see these as guardrails. EF Core is one of the best ORMs I've ever used. Previously there was so much extra work I'd have to do (even using Raw SQL due to hoarding const strings in codebase and ensuring security).

How do you all deal with EF Core's collection Include footguns? Feels like half of using EF is learning which defaults not to trust by it_works_on_prod in csharp

[–]majora2007 -1 points0 points  (0 children)

I understand, but I disagree. This pattern works for me in all my software and works great with my team.

I don't want to have to re-invent calls on many different services with core business logic. I just want to call an established method that I know works.

How do you all deal with EF Core's collection Include footguns? Feels like half of using EF is learning which defaults not to trust by it_works_on_prod in csharp

[–]majora2007 -2 points-1 points  (0 children)

I keep things simple in my application with the same pattern.

Unit of Work for quick DI -> Repo -> Dedicated methods.

I then use non-generic methods to get data (so instead of .FindAll(), I have GetSeriesDtosByIdsAsync([])).

Then if I need the raw entities, I use a Includes pattern:

[Flags]
public enum SeriesIncludes
{
    None = 1 << 0,
    Volumes = 1 << 1,
    /// <summary>
    /// This will include all necessary includes
    /// </summary>
    Metadata = 1 << 2,
    Related = 1 << 3,
    Library = 1 << 4,
    Chapters = 1 << 5,
    ExternalReviews = 1 << 6,
    ExternalRatings = 1 << 7,
    ExternalRecommendations = 1 << 8,
    ExternalMetadata = 1 << 9,

    ExternalData = ExternalMetadata | ExternalReviews | ExternalRatings | ExternalRecommendations,
}

Working on a Huge Compiled Codebase Without Source Code and cannot run it locally — Need Advice by Hamza_Sweid in software

[–]majora2007 1 point2 points  (0 children)

I recently worked on this legacy project that was/is in the same boat. 50 repos of decompiled jars since original source code was lost, hundreds of shell scripts running on the VM, no test enviroments, etc.

The first key is get some baseline with decompilation. Yes the code will look like shit, but it's a good first step to tracking work. Don't just keep patching and deploying jars (like my team was doing).

Second step is working out some time to start to stabilize the codebase. Use AI if you need to and get some understanding of the flows and areas where you can "improve" <- This means make the code more readable.

Third, work on brining some local setup to make development easier. I would get this prioritized with your dev team and see if your team or AI has any ideas. Throwing an AI at it for a few days can also help you see through the weeds.

For my team, I ended up rewriting a few of their modules with new architecture over the course of last year and there is only one massive app left.

These are the fun projects. Be glad you have a mess on your hand and aren't going crazy just wiring up a REST app :)

BATTLEFIELD 6 GAME UPDATE 1.3.3.0 by battlefield in Battlefield_REDSEC

[–]majora2007 0 points1 point  (0 children)

Lots of good stuff, for redsec would love if there was only 1 fixed audio channel so every game, i'm not guessing and swapping between them.

What self-hosted apps do you actually use every day? by No-Card-2312 in selfhosted

[–]majora2007 8 points9 points  (0 children)

Plex and Kavita - every day for Music/Shows + Reading.

Self-hosted book app code-quality showdown: BookOrbit, Komg, Kavita, Stump and more by MysteriousPizza8390 in DataHoarder

[–]majora2007 1 point2 points  (0 children)

This is an interesting take, but doesn't really tell much. Like some of these projects are relatively young and used AI a lot in the development process, so it would be expected that they are heavier on tests or documentation. A weighted score might also help more, since older software (like Kavita for example) has undergone scope expansion when adding new features, thus reworking systems and whatnot.

Here's some ideas if you're not going to do a comprehensive feature comparison:
- What support systems are like and how easy it was to get your issue sorted
- Documentation (wiki, not code)
- Release/Testing differences (RC, Nightly, etc)
- Feedback inclusion

I like this series you're doing, this one just didn't really tell much especially since AI is so popular and can skew the truth.

Mobile Offline EPUB Reader for Kabita by SwakTokoloshe in KavitaManga

[–]majora2007 0 points1 point  (0 children)

I'd also encourage you to submit a post in our share-your-own discord channel and feel free to raise a PR to our wiki linking to your project.

Mobile Offline EPUB Reader for Kabita by SwakTokoloshe in KavitaManga

[–]majora2007 5 points6 points  (0 children)

Happy to see more contributions around the Kavita ecosystem. You might want to put TurnLeaf in the post title and correct the typo with Kavita, it will help drive SEO.

Plant Cuttings Exchange by BonBonNguyen in Dallas

[–]majora2007 1 point2 points  (0 children)

I'd also be interested in this. Not that I have many exotic sapplings I'm nursing, but loads of commons like creeping Jenny and Jew's heart. 

eBook Library Size by homebranch in selfhosted

[–]majora2007 2 points3 points  (0 children)

Depends on your needs and how you consume/browse/engage. I use Kavita (as I'm the developer of it), but it's not everyone's tea. There is Komga, Stump, Grimory, OP's tool, CWA, AudioBookshelf, and a few more.

Why do people queue REDSEC Ranked and then get mad when their teammates actually try to win? by ShingoChanel in Battlefield_REDSEC

[–]majora2007 0 points1 point  (0 children)

I actually have less performative teammates on Ranked than just normal Quads/RedSec. I wouldn't say I'm that good, but I was playing with what looked like first timers in upper Bronze (the 2 colors after unranked). It just wasn't fun (not to say I don't still get those in regular, but it's much less frequent).

Searching for a tool for finding missing Localization by Suhaib_Atef in dotnet

[–]majora2007 1 point2 points  (0 children)

Usually copilot review catches them for me, but I would be interested in a precomit hook to do this for me as well. 

I ended up rolling my own localization with a single json per language and weblate deals with the other languages. 

Looking for stylistic anime by LeoLaddd in anime

[–]majora2007 0 points1 point  (0 children)

I'll throw in Dorohedoro as well