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
Search - "transitive"
-
A couple of years ago I was working on a fairly large system with a complex (by necessity) access control architecture.
As is usually the case with those projects, it's awkward for developers to repro bugs that have to do with a user's accesses in production when we are not allowed to replicate production data in test, let alone locally.
We had a bug where I ended up making myself a new row in the production database for a thing I could have access to without affecting real data to repro it safely. I identified the bug so I could repro it in dev/test and removed the row and ensured everything worked normally, whew scary.
Have you ever walked into the office one day, and everyone is hunched over in a semicircle around one person's workstation, before one turns around to look at you and says - after a pause - "... ltlian?.."
Turns out I had basically "poisoned the well" with my dummy entity in a way where production now threw 500 for everyone BUT me who had transitive access to this post-non-entity. Due to the scope of the system, it had taken about a day for this to gradually propagate in terms of caching and eventual consistencies; new entities coming in was expected, but not that they disappear.
Luckily I had a decent track record for this to be a one-off. I sometimes think about how I would explain testing in prod and making it faceplant before going home for the day, other than "I assumed it would be fine". I would fire me.3 -
I just got the dna test.
I am the father. My daughter is now 3 weeks old.
No surprise there. I expected to be the father. I had no reason to distrust my wife. But, after all, I know my IT security.
The relationship I had with my daughter was transitive. I trusted my wife and my wife had my daughter, ergo I had a connection with my daughter. Or in clearer terms: from a => b and b => c follows a => c.
The problem I was thinking about: What if I will stop trusting my wife in the future. At some point in the future... Something might happen. And I would stand there and wonder how long it went on. Maybe a month? Or before my daughter's birth? Maybe more than 9 month before my daughter. Would I be able to hide it from my daughter or would she notice...
If anything ever happens now, I know it has nothing to do with my daughter...
That's the same reason why we use end2end encryption. Sure, we have to trust that the application provided is not manipulated. But we only have to trust today. If it lands on their severs, we have to trust until the end of eternity.
I don't need any trust right now. And I am fucking happy about it.4 -
Fuck you Spring and your stupid cryptic, useless, no relevant information error messages.
"Oh I am crashing violently because some of my internal component cannot automagically talk to another my internal component" says spring.
Well shit, why do I let you manage your own dependencies if I still need to hunt down what garbage transitive dependency you bring in 5 time.
YOU HAD ONE JOB!!!3 -
Needing to approve each and any brainfart open-source library. Having to manipulate transitive package dependencies to throw out dependencies with non-compliant license.
-
fuck gradle
i have dependency tree like this
±--com.vincent.filepicker:MultiTypeFilePicker:1.0.5
±--com.github.bumptech.glide:glide:3.7.0 -> 4.3.1
±--com.github.bumptech.glide:glide:4.3.1 (*)
glide.3.7.0 as transitive dependency got fucking overridden by glide:4.3.1 how do i fucking keep glide:3.7.0 from getting overridden, been search for a day and no solution worked, fuck gradle how come shit like this doesnt have straight forward solution ?3 -
nothing new, just another rant about php...
php, PHP, Php, whatever is written, wherever is piled, I hate this thing, in every stack.
stuff that works only according how php itself is compiled, globals superglobals and turbo-globals everywhere, == is not transitive, comparisons are non-deterministic, ?: is freaking left associative, utility functions that returns sometimes -1, sometimes null, sometimes are void, each with different style of usage and naming, lowercase/under_score/camelCase/PascalCase, numbers are 32bit on 32bit cpus and 64bit on 64bit cpus, a ton of silent failing stuff that doesn't warn you, references are actually aliases, nothing has a determined type except references, abuse of mega-global static vars and funcs, you can cast to int in a language where int doesn't even exists, 25236 ways to import/require/include for every different subcase, @ operator, :: parsed to T_PAAMAYIM_NEKUDOTAYIM for no reason in stack traces, you don't know who can throw stuff, fatal errors are sometimes catchable according to nobody knows, closed-over vars are passed as functions unless you use &, functions calls that don't match args signature don't fail, classes are not object and you can refer them only by string name, builtin underlying types cannot be wrapped, subclasses can't override parents' private methods, no overload for equality or ordering, -1 is a valid index for array and doesn't fail, funcs are not data nor objects when clojures instead are objects, there's no way to distinguish between a random string and a function 'reference', php.ini, documentation with comments and flame wars on the side, becomes case sensitive/insensitive according to the filesystem when line break instead is determined according to php.ini, it's freaking sloooooow...
enough. i'm tired of this crap.
it's almost weekend! 🍻1