(1/3) So I decided to contribute to some open source project (we'll call it Andr*id to maintain its identity concealed) to kill some time, make my GitHub grow and learn some things.
Big mistake.
So right off the bat, programming knowledge alone is no good. Besides C++ and Java you must also know: >git >make files >Cmake >vim/ed (because some retarded developer decided it would be useful to include only those things as options, of course) >all sorts of scripting languages >strace >sed >how the Linux kernel works >how the Android kernel works >how your device's specific kernel works >how the entire device's source code (which is, of course, split into 4 different repositories and each variation of each model has specific configurations) is supposed to work >about the quirks of your computer >about the quirks of computer you're emulating inside a virtual machine to compile the damn thing >how LineageOS works internally, how it difers from AOSP >also all the small components of AOSP >actually you have to know how every single program involved works and how it's supposed to interact with each other All the while receiving either completely esoteric error messages (e.g.: error 0x000123" An error that could mean literally anything from a bad sector in RAM to a compiler bug) and/or completely obvious messages ("can't open foo: file or directory doesn't exist" gee, thanks. This would be useful if I had to manually create that file. But turns out 99 % of the time some script or makefile was supposed to create that automatically, so better have fun debbuging thousands of text files until you find the fucking function that fails to send the required int.)
(2/3) The thing is that there's also a bunch of compile warnings and some errors that can be safely ignored because developers decided it was OK to leverage unexpected behaviour or barely working code as long as it works. So now you have to spend six fucking hours reading threads in XDA and the Linux mailing list trying to fix some errors that may actually end up breaking stuff further. And half the shit you read online either don't apply to your specific problem because a. Android and the Android kernel work completely different from regular Linux in some regards (and it's different for each version of the kernel, each OEM, each device and each Android version) and b. The proccess is such a bugfest, that finding someone else with the same error as you is almost impossible.
Then you try to find help. They will tell you to ask in a forum, IRC or mailing list. Again, a mistake. They either won't answer or tell you to RTFM. I ALREADY READ THE FUCKING DOCUMENTATION YOU IMBRED FUCK. JUST TAKE THE GODDAMN DRAGON DILDO OUT OF YOUR ASS FOR 5 MINUTES AND PLEASE HELP ME.
So after a while they decided to help me. Turns out the script was broken if the device's name contains both numbers and uppercase letters at the same time because the dev also uses that function to wipe his ass or something. So now not only must I read the entire device's source code and the Linux source code, I must also read all the tooling's source code and read the developer's mind to know why the script isn't doing what it's supposed to do. Marvelous.
Juan Nelson
(3/3) So after a long while I managed to get a flashable image. What an orgasmic feeling. Time to flash the device and...
Bootlop.
There's nothing useful in the logs. There's no dmesg or journalctl (not like that would help because they also suffer from the shitty errors problem.) There is nothing to do besides recompile the kernel with a couple of flags enabled so the boot proccess can be strace'd. At this point I might as well change the terminal's font to Wingdings because it makes as much sense as the gibberish strace prints.
So the problem was apparently the camera's drivers. Proprietary blobs, of course, and they were failing to execute something.
That's it. I'm officially stuck. The documentation's advice to getting un-stuck? Ask in the IRC.
Fuck this shit.
Tools are shit, error messages are useless, documentation is awful, dealing with new problems is hard and the community is not helpful. No wonder developers are all so bitter and mentally ill in their 30s: this is hell.
Brayden Adams
ur a fgt
Jacob Hughes
>>how the Linux kernel works >>how the Android kernel works They're the same kernel, Linux. Not "the Linux kernel". Just Linux. Linux is nothing more than a kernel.
Aiden Ross
The Android kernel is Linux.
Ethan Scott
Sounds pretty standard to me.
Ryder Jones
>>vim/ed (because some retarded developer decided it would be useful to include only those things as options, of course) diear op, you are fucking retarded
Juan Roberts
> (3/3) What is that, a fucking Twitter? I sense bait.
Asher Edwards
Posts have character limits, newfag. Pretty standard to number your posts if you're going long and want to avoid confusion.
Hunter Kelly
noice blog faggot
Jackson Smith
Apparently Jow Forums can't read for shit
Zachary Sanchez
Apparently OP doesn't know what a kernel is.
Blake Ramirez
this is why we just use rust and cargo
Gavin Reed
New pasta?
Parker Evans
Welcome to the year 2018 (soon to be 2019) OP. I sincerely hope you enjoy your stay. It's only going to get more FUN down the line.
>It's only going to get more FUN down the line. WRONG
Christopher Adams
Search your feelings, you know it to be true.
Matthew Sullivan
Git gut and RTFM.
Mason Thomas
>Dear diary Dear God, what's even the objective problem here? If you're just realising you're too stupid for something beyond a code monkey, I recommend to either be just that or opt out for another trade. Electrician apprenticeships are plenty for example.
Hudson Roberts
You forgot to add: Need to know english, math, logic, etc.
Brandon Butler
This is why "everybody can code" is horseshit. You might be able to *write* code, but if you're a brainlet with shit problem solving skills, stay the fuck out of the industry.
Elijah Carter
>how the Linux kernel works >how the Android kernel works
>they don't even know there are HUGE differences between mainline Linux and the Android-patched kernel Is this supposed to be the tech board? WEW.
Wyatt Hernandez
Android just uses an older version, you fucking retard.
John Clark
>you must also know >>git >>strace >>how works you sound cringy
also please explain the >>vim/ed (because some retarded developer decided it would be useful to include only those things as options, of course) what stops you from using any editor you want?
Hunter Bennett
Completely agree, I'm a maintainer for a certain RR device and so many things were broken when I tried to make my first builds, and the documentation and help was horrible. Thanks wasn't even low level stuff like kernel stuff and device specific features for which documentation is wholly nonexistent. It's as if there are a few people who figured this stuff out and to get to the same level you have to figure out everything on your own.
Connor Ortiz
Hurr durr I want to work on an operating system but it's too difficult You have to know git, Linux and compiling shit boooo
Open sores sucks
Why evrything be so diffucult
Michael Cook
OP I agree with you that trying to contribute to an open source project is difficult at first but thats kind of how it is with most projects. Theres more than just learning the programming language, theres setting up your enviroment, being able to build, test and deploy the application etc, learning version control software and all that stuff. Thats just how this field works lol
Noah Rivera
It's heavily patched to the point basic features like module support cannot be enabled. It adds a lot of new features. They don't simply use an older version just because, they do it because the Android kernel differs so much from mainline Linux.
Carter Sanchez
nigger nigger NIGGER
Josiah Perry
Excuse me
Juan Rivera
It can take years to build enough context to work on big projects. I've been at a job 6 months and I know more about our codebase now than anyone else here - and I have a handle on probably 1/5th of the shit we have. Quit being impatient and frustrated OP. If you thought you were going to just jump in and figure shit out, you picked the wrong field. Grind it out and stop being a pussy.
Adam Barnes
>waaah I wanted to contribute to open source but I'm too retarded for it!!!! Shit blog, how do I unsubscribe?
Matthew Walker
You gotta learn from our friends in India and just mash buttons until it works.
Isaac King
Sounds about right, you can't just expect to instantly know everything about a big project.