imagine if everyone could code and if they ran into an issue they could just fix it themselves. I thought this would be way more common since damus is open source, but we get close to an average of 1-2 fixes from random people every *year*.
Discussion
Open source seems more like a marketing tactic for the retards that can’t code like me
Coding is very abstract and requires a lot of very specific language knowledge along with concentration requirements. It’s not easy for everyone unfortunately to understand and have the knowledge required. I’m trying to learn! It’s no joke though. (Unlike fartsite.info which is a joke)
i remember how hard it was to learn. feels like I was flailing around for the first 10 years
I wonder how much AI could have accelerated my learning... or maybe it would have made it worse by not allowing me to figure out stuff by myself. it probably would have been much quicker than the crappy books I used.
AI is definitely a shortcut and lowering the barrier to entry for learning 🤙🏽
Not talking smack or anything, but some project documentation might help with that. I haven't looked through damus, so you may have some there since it is more mature, just from what I see in the notedeck repo.
Definitely could improve on docs
The whole stack grew too big. It’s not easy to setup an iOS project, even if it’s open source.
good point
Even for capable coders, it is far from easy to just jump into some open source project and fix a bug. Getting familiar with the code, setting up a project to work with your local dev tools (or setting up entirely new tools needed for the project), learning how to test a change (even if the project has existing test coverage), etc.
It's a pretty high barrier, one has to be very motivated to scratch that itch.
Jumping into an unfamilar codebase is really time consuming even for experienced devs. It would have to be a really meaninful fix that directly correlates to time saved / life improvement, for me to do something like this.
The onboarding documentation for casual contributions needs to start from "what is version control, what is the concept of a pull request, what are the ways to contact the devs and who is the dev to contact and for what?" Then the documentation must declare the process of setting up the development environment step-by-step and how to resolve the most common problems during the setup. The documentation must lay out the structure of the project in a way that's approachable enough to not scare a new dev but informative and detailed enough to be useful. Then they need to know exactly where the project might need help with and how to get their changes merged. If the changes need to pass some automatic tests the new dev needs to know how to run those in advance and do the process themself. But when the project matures this documentation needs to be kept up to date which might be the hardest part. This is not simple and very few open source projects actually have the proper guides in their repo. Btcpayserver is one of the few who have done most of these steps right.
And still you need to be motivated af to actually cobtribute code to btcpayserver as a non-seasoned open source dev.
We have other cool shit to do that others can't or don't want to do.
Coding is one of the few things i know almost NOTHING about 😓
Sorry 🤷♂️
Hopefully one day
Everyone's saying it's too hard to learn a codebase and fix something.
This is not always true. In the case of small issues or typos, I can often jump into a well organized but completely unfamiliar codebase, find what I'm looking for an fix it in a matter of minutes.
The real time sink is getting a compatible dev environment spun up, downloading the code, setting up a test environment, packaging the fix, figuring out the guidelines for change submission and dealing with the dev team. This stuff can take hours for something that could be 5 min.
Tools like github can streamline some of this. What we really need is a one click dev and test environment setup option. Then my 5 min. fix would take maybe 5 min. of my time. If the team has good automated testing, it could also save them time on the review side. Getting all this to work would be a huge task, but could massively improve community participation and let open source devs focus on more important tasks.