Details
-
AboutAAAAAAAAAAAAAAAAAAA
-
SkillsRust <3, Java, C, some Python, some TypeScript, HTML5 & (S)CSS, SQL, a bit of PHP, modern OpenGL & Vulkan, realtime CG, Modding and some other stuff
-
Locationhere
-
Website
Joined devRant on 12/8/2018
Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API

From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
-
Am I weird for not liking Whiskey?
It just kinda tastes... bad. Everybody is taking about notes of vanilla, undertones of strawberry, BITCH where. It tastes like weird with alcohol. And the alcohol part isn't really the problem. I'd much rather drink straight up vodka. Yes it tastes like drain cleaner but at least it doesn't have this weird ass taste to it. I actually quite like vodka. I just don't get whiskey19 -
Okay, fuck it. I'm going to buy $20 worth of every penny crypto currency until one of them explodes making me a millionaire
This is big brain time12 -
Avoid ACPICA if at all possible. It's one garbage tier cluster fuck of bad design, horrible documentation and downright misleading and wrong code
It's meant to consist of an ASL compiler, disassembler, debugger, dumper, various user space utitilies and a kernel resident OSPM implementation *if* you can figure out what belongs to what. Even just compiling this pile of trash is a mystery in itself. Think you need the source files in source/common? EEEEH, wrong. Well, at least partially since most of them seem to be for the user space stuff..? Other ones *are* needed on the other hand. At least the disassembler and/or debugger and/or dumper components seem to reference them. Not that I could figure out how to compile those anyways. The real path to your goal seems to be to ignore a seemingly arbitrary subset of source and header files until your linker stops complaining
There's also a bunch of configuration defines, some of which *you* define, some defined *for* you, based on again others. Of course most of them do stupid shit. Enabling the debugger automatically enables debug logging. Enabling the disassembler force enables debug allocation tracking... What?
The code itself isn't of much help either. Looking in "os_specific/service_layers" you find what looks to be reference implementations of acpica functions in certain os' like windows and unix. Of course I had a look because AcpiOsReadMemory is supposed to read physical memory and I don't know how I would even implement that. But hey, osunixxf.c (xf for interface... of course) should tell me. I'll let you see for yourself in the attached image. Apparently it does fuck all and just returns AE_OK. No error, no logging, no nothing. Just ok. As you can imagine, AcpiOsWriteMemory doesn't do much more either.
...okay so maybe physical memory accesses aren't actually used and these functions are some sort of relic from past times? Nope! They are absolutely necessary for doing low level device interaction. WTF. So finally I went to the linux source and checked how *they* implemented them, and just as I thought, these functions are anything but no-ops...
...So for what fucking reason do these stupid interface implementations even exist but to purposefully mislead you?? They aren't used for fucking anything! As far as I know Windows doesn't even *use* ACPICA and Linux have their own fork with working implementations... They just sit there, just to tell you how to NOT do it
So that's some of my thoughts about ACPICA. Note that I haven't even used it as a library yet, I just got it to compile and link and it already fucked with me this much.
There's also so much more I didn't mention like that you *have* to modify the acpica source in order to get your own platform header working (else #error) eventhough the docs explicitely instruct you not too but you get the point
Don't use ACPICA if you don't have to. Save your sanity for something that's worth it -
Found this little gem in the AMD64 reference manual:
"When PCIDs are enabled the system software can store 12-bit PCIDs in CR3 for different address spaces. Subsequently, when system software switches address spaces (**by writing the page table base pointer in CR3[62:12]**), the processor **may use TLB mappings previously stored for that address space and PCID**".
later:
"Updates to the CR3 register cause the entire TLB to be invalidated except for global pages."
So let me get this straight: PCIDs allow you to reuse TLB entries (instead of flushing the entire TLB) when writing a new address space to CR3 but writing to CR3 always flushes the entire TLB anyways
Just why 🤦♂️7 -
What the fucking shit is up with clang invoking gcc???
If I wanted gcc I would have called gcc, now do your damn work and stop doing stupid shit
The only thing I want to do is compile some c to a static lib. I've already wasted the entire day on this fucking bullshit. fuckckaf3 -
Just wasted 2 hours of my life because turns out the C calling convention is really not standardized and depends on the target platform
Wouldn't advise doing cross boundry efiabi->sysv64 calls 🤦♂️5 -
This gutted feeling when you got so overly excited over an idea that you poured blood, sweat, and tears into it only to figure out what the others were doing isn't actually bad. Their's doesn't have issues. There's nothing for me to do. My whole idea, scrapped
I feel tired 😔6 -
Just started to learn to properly use a linker and honestly...
linker scripts really aren't that great 😐3 -
** PSA to all programming language and tool maintainers **
Please for the love of god have a dedicated examples section on your website where people can quickly evaluate what the thing even looks like
So often the next best thing is going to the docs where they tell you that the turboblub option should be set to 12 in these specific usecases whEN I DON'T eVEN KNoW WHETHER THIS IS A PROGRAMMING LANGUAGE OR A LAWN MOWER3 -
Imposter syndrome is such a bitch
It feels so good to finally be able to achieve something without constant self doubt (okay I lied, but atleast I am actually programming)
But fuck me it's hard to keep reminding myself that it's okay, it's fine if it's not perfect, just evaluate all the possible solutions and pick the best one, it's fine12 -
Not sure if this has been posted before but GitHub has an official dark mode now!
And it's pretty beautiful too
(Especially check out how your own comments look on an issue!)8 -
I literally don't understand the purpose of a "higher half kernel"
What does it matter where my kernel is mapped in virtual memory?
"It is traditional and generally good to have your kernel mapped in every user process" what the hell does that even mean??
Mapping my kernel into userspace is something is explicitely don't want to do. Like at all. Ever
And in physical memory it matters even less where it is.
I'm so confused right now3 -
PHP implicitely coercing password hashes to floats in comparisons is always a fun one
http://phpsadness.com/sad/4712 -
Holy shit I just figured out a pretty decent (and way to complex) workaround to implement specialization in Rust, I'm so hyped2
-
YouTube or Anime, I don't know which is worse for mental health
Crushing procrastination vs destructive seduction, pick your poison14 -
So GitHub's "Repository Refresh" layout is live now and they haven't fixed the damn .repohead (with the repo name and the links to Issues, Pull Requests, etc.) stretchting across the entire screen instead of being constrained to the middle column :/
If it annoys you just as much as it does me, just wack this CSS into a user css extensions and it's fixed:
.repohead .d-flex:first-of-type {
max-width: 1280px !important;
margin-left: auto !important;
margin-right: auto !important;
}
.repohead nav.js-repo-nav {
max-width: 1280px !important;
margin-left: auto !important;
margin-right: auto !important;
}
.repohead .UnderlineNav {
/* Remove repohead bottom divider */
box-shadow: none;
background-color: transparent !important;
}
.repohead {
/* Add repohead bottom divider to repohead so it stretches across the entire screen */
box-shadow: inset 0 -1px 0 #e1e4e8;
}9 -
Why must typography be the bane of my existance
Back in the day when I was trying to design websites they always looked like shit
Now I know all these rules about typography, spacing, colors, contrast... and my websites still look like shit9 -
Fuck c++
Everytime I have to use this fucking language it spits up some other bullshit error
`cannot convert std::vector<int>() to std::vector<int>&`
WHY THE FUCK ARE STACK ALLOCATED VALUES EVEN THEIR OWN TYPES
AND WHY CANT I TAKE A GOD DAMN REFERENCE TO IT
JUST WHYYYYY30 -
What linux OS would you recommend for a little home server/nas? I guess I want something debian based but CentOS is also apparently good8