Diear diary

(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.)

Attached: 1543347109473.jpg (580x548, 34K)

(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.

(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.

ur a fgt

>>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.

The Android kernel is Linux.

Sounds pretty standard to me.

>>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

> (3/3)
What is that, a fucking Twitter? I sense bait.

Posts have character limits, newfag. Pretty standard to number your posts if you're going long and want to avoid confusion.

noice blog faggot

Apparently Jow Forums can't read for shit

Apparently OP doesn't know what a kernel is.

this is why we just use rust and cargo

New pasta?

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.

Attached: lmoa.png (246x200, 12K)

>It's only going to get more FUN down the line.
WRONG

Search your feelings, you know it to be true.

Git gut and RTFM.

>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.

You forgot to add:
Need to know english, math, logic, etc.

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.

>how the Linux kernel works
>how the Android kernel works

Attached: 1535337940323.gif (220x220, 44K)

>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.

Android just uses an older version, you fucking retard.

>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?

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.

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

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

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.

nigger
nigger
NIGGER

Excuse me

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.

>waaah I wanted to contribute to open source but I'm too retarded for it!!!!
Shit blog, how do I unsubscribe?

You gotta learn from our friends in India and just mash buttons until it works.

Sounds about right, you can't just expect to instantly know everything about a big project.

This, welcome to hell OP.