

I literally just wrote this a few hours ago (line 55)



I literally just wrote this a few hours ago (line 55)

Running makes me feel like I’m gonna die
Jiu jitsu on the other hand, i get both excersize and an excuse to choke people out
“Am I gonna find out why they call you ‘Peggy’?”


IIRC, kernel level anti cheat works for linux. It’s at the company’s discretion if they enable support for Linux clients


Waydroid doesn’t intend on supporting it. It’s a piece of code that checks for evidence of “tampering” (such as an unlocked bootloader, or root access), and sends those bits of data off to Google’s servers for verification
It’s antithetical to Waydroid and device freedom, and is used by banking apps for “security” reasons, as well as media apps for piracy reasons
And is a massive pain for anyone who root’s their devices


Never make things more “impressive”
Make them more comprehensible
Reduce the cognitive load required to understand and reason about a piece of code. Honestly, the more you can express complicated ideas simply, the more impressive you are


I did this once
I was generating a large fake dataset that had to make sense in certain ways. I created a neat thing in C# where you could index a hashmap by the type of model it stored, and it would give you the collection storing that data.
This made obtaining resources for generation trivial
However, it made figuring out the order i needed to generate things an effing nightmare
Of note, a lot of these resource “Pools” depended on other resource Pools, and often times, adding a new Pool dependency to a generator meant more time fiddling with the Pool standup code


Separate out those “concerns”, into their own object/interface, and pass them into the class / function at invocation (Dependency Injection)
public Value? Func(String arg) {
if (arg.IsEmpty()) {
return null;
}
if (this.Bar == null) {
return null;
}
// ...
return new Value();
/// instead of
if (!arg.IsEmpty) {
if (this.Bar != null) {
// ...
return new Value();
}
}
return null;
}


if it’s not in git / SVC, add it as is. Create a “refactor” branch, and liberally use commits
Treat it like a decompilation
Figure out what something does, and rename it (with a stupidly verbose name, if you have to). Use the IDE refactor tools to rename all instances of that identifier
Take a function, figure out what it does, and refactor it in a way that makes sense to you
Use the editor’s diff mode to compare duplicate code, extract out anything different into a variable or callback, and combine the code into a function call. Vscode’s “select for compare” and “compare with selected” are useful for this
Track what you’re doing / keep notes in something like Obsidian. You can use [[Wikilinks]] syntax to link between notes, which lets you build a graph structure using your notes as nodes
be cognizant of “Side Effects”
For example, a function or property, or class might be invoked using Reflection, via a string literal (or even worse, a constructed string). And renaming it can cause a reflective invocation somewhere else random to fail
Or function or operator overloading/overiding doing something bizarre
Or two tightly coupled objects that mutate each other, and expect certain unstated invariants to be held (like, foo() can only be called once, or thingyA.len() must equal thingyB.len()
You can use these to more thoroughly compare behavior between the original and a refactor


What about Play Integrity / Safetynet?
Me like hot stuff


According to the article, they used human teeth from cadavers
I vaguely remember from Japanese class that China’s name means “middle country”
But i dunno about that “go” character specifically. It might have a different meaning in this context?
I use Hoppscotch


This makes me curious how effective that would actually be
It probably depends on the electrical conductivity of WD 40, and whether it corrodes
I did it once to pull out data from a spreadsheet into a database. Specifically, I needed "${DataType}${Month}" for each month for 3 different datatypes
Iirc, i used an sql pivot (or unpivot) in that query too
Usually, it’s situations like this where you’re parsing data from strings, and you need some glue code to interface between the input data, and the date library you’re using to actually resolve the datetime


But… Python
Python has…
Python has whitespace semantics
You can’t just-
*sigh* we’re doomed
Lox
Once i have a solid implementation, I wanna morph it into a custom scripting language for generating diagrams (a la graphviz or mermaid js)
https://github.com/Lightfire228/lightweaver