AboutDoing trivial coding, agnostic a bit, audiophile
Joined devRant on 3/27/2020
Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple APILearn More
OpenSource is fun they said. I being a bored teen thought, ah, another chance to experiment. Discover something new. Now I am into piracy, movies, music, software. If I can get it for free I ain't paying for it. So I went on to GitHub to see what exciting new Repos I could contribute to. I hate already implemented plenty of algorithms in GO for GitHub.com/TheAlgorithms so I was looking something more practical, more beneficial to society. Then I saw it, the perfect repo, not too complex and not amateur. SpotDL/spotify-downloader for downloading songs from Spotify, a grey area coz it's technically piracy. Well not from Spotify, we fetch the info from the Spotify API and search for the songs on YouTubeMusic. They were just about to release v3, a complete rewrite of the codebase stressing code readability and stuff. I spend about a day studying the codebase, trying to findout just where I could make my contribution. I can see outright that there's a huge problem with implementation.
First of all the script spawns 4 processes for downloading songs though you might be downloading only one song. Which means for everytime you run the script you have to wait for 4 other processes to be spawned before any downloading can happen. Sure this is faster when you are downloading more than like 4 songs, but it's actually slower when downloading a single song. But I ignored that coz I assumed that most users download playlists and albums. Anyway we talked with the like lead developer and he was all like, make those PRs anytime you feel like. So I made a really minor first contribution.
I introduced download from Spotify URI functionality, modified like 10 lines of code. I was half expecting that the PR would be merged within hours at most 24 hours coz of how minor of a contribution it was, 5 days in it was pending. So I tagged the lead Dev and he was all appreciative of the PR, calling it real 'clean code' and stuff. 3 more days, the PR is still not merged. I have now stacked 4 more commits to the same PR, I tag the dev and he's like he's waiting to see if my 'feature' will get atleast 10 upvotes so that it can be merged, he links an issue. I go to the issue and my feature is not there, So 11 days after I made my PR I have to write a comment explaining the 'feature' introduced in my PR and then wait for 10 upvotes.
I was like f**k this, I'll just develop on my fork if you want the features on my fork, you will make your own PR! I am so done with OpenSource, development is slow. I have no idea how you guys do it. I can't handle development where I don't have write access.7
I have was bored a while back and made a script to download all the xkcd comics. Just being random and stuff,Anyway here's the link if you guys are interested. https://github.com/brayo-pip/xkcd
My week was going great, started an online course on coursera.org. It was on algorithms, somone recommended it to me here. After spending like an awesome 3 hours learning about dynamic connectivity algorithms, I find out I have to submit code in Java!!! If you hate Java then u get me, then there's a deadline, OBVIOUSLY!!! I only know the basic Java syntax, can't even believe I got this far without coding a project in Java. So now I have to polish up on Java and write a percolation java project, no biggie!4
Is it just me or are books on algorithms split between being too simplistic and being too detailed to be practical. I read Donald Knuth's book "The Art of Computer Programming Vol.1" read about 10% of it , which is like 3 chapters. I really enjoyed those chapters, Knuth's is such a genius but then the rest of the book was so complicated that the introduction and definition of terms was longer than some whole chapters in the same book. I decided to look for another, found a really good one, but it was analyzing algorithms in Java, sigh, I hardly code in Java so it was exactly easy for me to follow when he keeps mentioning the "comparable" attribute on sorting algorithms. I then got another really followed it till the keep on referencing indicator variables, I had read 3 books now and had not had of these indicator variables. Am sure they are not that common in the Computer Science literature so I was left wondering why I had to learn to analyze code with indicator variables though it was not a standardized in the "Computer Culture" would I be the only one who does this?.. I hence gave up on learning algorithms till I got that book that was just right for me5
What do you think would be the effect of giving out awards for the best open source code on GitHub or whatever?
My theory is that awards would actually make people to stop working on less significant repositories (that clearly cannot win the awards) and focus on the major repositories, the most starred and forked ones so as to get a share of the prizes. Maybe there would be times when commits(which are way better than the current code) are not merged onto the main branch coz doing so would introduce another coder in sharing the prize. The clustering of everyone's efforts on the major repositories would leave the less significant but useful repositories neglected. Can't say the number of times I have copied code from these repositories. I think awards would be disruptive to the open-source Ecosystem. Am high and am out ppl. Go savage the comments. Wait do such awards exists...haha.2
Anyone notice how fucking difficult it is to install software from GitHub... well for amateurs mostly. I went through pretty much hell to simply install a spotify playlist downloader script from GitHub. Had I not have had Python installed I would have had to download that too. You Install Python, Google a guide to get the pip command up and running. Download the software. PIP it? Then you find out it uses 3 custom libraries that have to be installed separately. Oh that reminds me, u still need an IDE to open the script and figure that, on your own. Then the script is super buggy, expected though it was still in development. I have no idea where I am going with this. Point is ppl need to get better with hosting code at GitHub. And it wouldn't hurt to include a guide to installation in ReadMe.md OR Installation.md. Ok am done now xd5