Details
-
AboutData Eng with a long history of abusive bosses and awesome projects. Got a MSc in Optimization and a couple startup failures under my belt.
-
SkillsPython, C/C++, Cloud Architecture, Spark, Parquet, AsyncIO, Sarcasm, Heuristics, Optimization, Science, Academics
Joined devRant on 10/26/2021
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
-
My boss insists that we shouldn’t lock or password-protect a particular system because, in her words, remembering or write down a password is hard and email as a concept is confusing. I tried to explain if people who don't know what left versus right-clicking do have full admin access, it’s only a matter of time before something goes terriblely wrong. She listened but ultimately decided to keep everything open, confident that everyone would use it responsibly.
Unfortunately, that’s not what happened, it never has been and never will be. The problems started, just as I feared, and now I’m stuck cleaning up the chaos, one issue at a time. I do have a backup and automation snapshots, but things got so tangled up that it will still be a hassle.
I tried soft lock so everyone could only access the section relevant to them. The reaction was immediate—they were confused and stressed, saying they’d be unable to do anything if it stayed that way. They didn’t get the idea that keeping them from touching certain things (that they shouldn't be touching in the first place) wasn’t the same as blocking their whole work. But since they’re all my superiors, I had no choice but to remove the restrictions and leave the system wide open again.
Nothing serious came out, just really annoying because something like this happens all the time.4 -
been working in the same company for 7 years, founder removed all our remote flexibility, told us people who dont come to the office can be replaced with AI, we have no excuse to being late to the office, etc...
feeling violated i began applying to other companies, and im very surprised that after 8 years of development experience, many side projects and curious endeavours later, i keep getting rejected or ghosted... wtf is this job market? i used to get interviews at least in almost any company i applied for before...
how tf do you land a new job these days?8 -
Let me present you a new term: Boomersoftware
Definition: As long as it has an exorbitant licensing cost it is good software. Whether its used at home or by IT in the office does not matter. Specifically when a foss alternative exists.
Examples:
Microsoft Windows (Especially server or embedded)
Most types of antivirus software
Software
VM-Ware/Hyper-V
Allen-Bradley Studio 5000
Most WYSIWYG document editors5 -
Want to know a sad story? I had a great idea for an internal application that would optimize a process in the company. My idea gets approved and.. guess what? Later it gets cancelled because Change Management didn't see a reason for me to get API rights on the company pipeline, which was what I needed to get my application going. I pitch my idea and they don't care and shut me down quickly because it's just another ticket they want to close asap.
Another guy in my company, openly incompetent but big buddies with the higher-ups gets his idea approved without effort. They open the doors for him and talk to Change Management to get him in. Then he's seen as Mr. Big Ideas while this guy doesn't even know how to use a terminal (I'm not joking). Even the girls admire him but he's a complete idiot who just smiles a lot.
It's whom you know, apparently. And bureaucracy is a piece of shit. So are cronyism and corruption.5 -
In french the world fish means "poisson". Not to be confused with a "boisson" (beverage), nor with the "poison" (poison).
But you could have fish beverage, which would be a "boisson de poisson". And some fish are poisonous, which would make it "poisson poison". Now let's take some poisonous fish, like some fugu, and turn it into a soup. You get a poisonous fish beverage, so "une boisson de poisson poison".
It also follows the poisson distribution8 -
Doing some JavaScript right now and holy moly is this one spaghetti ass language
Promises referencing closures referencing local variables referencing message handlers referencing resolve callbacks referencing ... 😵💫20 -
OKAY I GOT IT ITS SCALABLE THANK YOU NO I DONT WANT TO BUY A LICENCE NO I DONT WANT TO WATCH YOUR WEBINAR NO PLEASE GOD NO2
-
This is a first... My CEO made a youtube video announcing that they fired an employee (sales). I don't even know why they had to make a youtube video. The link was part of an email, just write it down in that email instead of labeling it as "small message from our CEO"
So disrespectful in my opinion.9 -
The English Wikipedia's article on "Ostrich" has "Not to be confused with Osterreich" written on top :D
Americans, am I right?26 -
Shithead manager.
Complaining that I'm a "senior" and he expects more from me (ignore that he's been making that complaint for 3 years and it's only been my job for less than 1)
Now complaining that I'm taking time to teach someone about something that they don't actually need to know.
I'm so fucking done with this job.3 -
My company: "you don't have a choice what you work on"
My company on legal paperwork: "we've given them choice of what they work on to support and develop them as best as possible"
Both of those are verbatim quotes. I laughed. I mean, I now want to punch someone, but I laughed before the violence.5 -
As a developer in Germany, I don't understand why anything related to development like IDEs, git clients and source code documentation should be localized/translated.
Code is written in english, configuration files too. Any technology, any command name in a terminal, every name of a tool or code library, every keyword in a programming language is written in english. English is the language of every developer. And English is simply a required skill for a developer.
Yet almost everything nowadays is translated to many other languages, espacially MS products. That makes development harder for me.
My visual studio menus are a mess of random german/english entries due to 3rd party extensions.
My git client, "source tree" uses wierd translations of the words "push" and "commit". These commands are git features! They should not be translated!
Buttons and text labels in dev tools often cut the text off because they were designed for english and the translated text is bigger and does not fit anymore. Apparently no one is testing their software in translated mode.
And the worst of all: translated fucking exception and error massages! Good luck searching for them online.
Apple does one thing damn right. They are keeping all development related stuff english (IDE, documentation). Not wasting money on translations which no developer needs.20 -
I hate what AI has done to developers, man.
I was discussing something a couple of days ago while my colleague was sharing his screen. He (Android/Flutter developer asked for my help for something custom in the iOS build) And while we were discussing it, he went to ChatGPT.
He wrote a bad prompt using wrong terms (for example how tabbar in ios is a different thing than android), i told him he was wrong and what the solution is, he didn't listen and went to try out what the AI said, made a bunch of errors, the proceeded to copy the errors to chatgpt wasting so much time.
AI to some developers is like tiktok to kids.11 -
The fact that Trump was elected U.S. president not once, but twice, is the ultimate proof that many American voters are as daft and gullible as I suspected. To those who voted for Trump: What were you thinking, if at all, by putting the worst bullies in charge? "Make America Great Again", Trump says. More like "Make America Go Down the Drain." I couldn't care less, if it weren't for the U.S. dragging the rest of the world down with it.25
-
I had to make a reverse-geocode Service in C#.
I made a new empty .cs file, copy-pasted the API OpenStreetMaps endpoint as a comment for reference
Pressed enter.
n BAM. Copilot (in Visual Studio) autosuggests the ENTIRETY of the class with accurate JSON-POCO conversion ._.
I dislike AI but can't deny its usefulness in this kinda manual work. I'd take this over some low-tier junior dev anyday8 -
imagine the world where every program is written in C++, and every document (including all websites) is written in LaTeX.18
-
Dear HR,
You're so incompetent, had I followed your instructions I'd have broken the law and endangered my life.
Get fucked.
A.5 -
I have this impression that non-devs have this idea that you can ask for a developer to learn and implement a new technology with the same ease as ordering a Happy Meal.
Oh, you want me to learn a completely new technology, write very high quality, bug-minimal code, test it, document it, in a matter of hours?! Maybe senior devs can do this, but for me, it's like asking me to build software for NASA and guaranteeing it will work wonderfully without being given the time to thoroughly test it, design it or even think about it. Wooh, just code this as fast as possible and to industry standards quality!
Anyway... just another frustration.3 -
Yep, seems tots legit. Not a scam at all. Especially with that sexy email extension! Rrrrrraw! You go TikTok Recruitment Dept!!!!6
-
developers are lazy
designers are crazy
managers are stupid
customers don't know what they want
how does our business still make money?8 -
The biggest challenge of building a free energy device is figuring out where to hide the battery.
The biggest challenge of building an AI product is figuring out where to hide API calls to ChatGPT.2 -
Hey, been gone a hot minute from devrant, so I thought I'd say hi to Demolishun, atheist, Lensflare, Root, kobenz, score, jestdotty, figoore, cafecortado, typosaurus, and the raft of other people I've met along the way and got to know somewhat.
All of you have been really good.
And while I'm here its time for maaaaaaaaath.
So I decided to horribly mutilate the concept of bloom filters.
If you don't know what that is, you take two random numbers, m, and p, both prime, where m < p, and it generate two numbers a and b, that output a function. That function is a hash.
Normally you'd have say five to ten different hashes.
A bloom filter lets you probabilistic-ally say whether you've seen something before, with no false negatives.
It lets you do this very space efficiently, with some caveats.
Each hash function should be uniformly distributed (any value input to it is likely to be mapped to any other value).
Then you interpret these output values as bit indexes.
So Hi might output [0, 1, 0, 0, 0]
while Hj outputs [0, 0, 0, 1, 0]
and Hk outputs [1, 0, 0, 0, 0]
producing [1, 1, 0, 1, 0]
And if your bloom filter has bits set in all those places, congratulations, you've seen that number before.
It's used by big companies like google to prevent re-indexing pages they've already seen, among other things.
Well I thought, what if instead of using it as a has-been-seen-before filter, we mangled its purpose until a square peg fit in a round hole?
Not long after I went and wrote a script that 1. generates data, 2. generates a hash function to encode it. 3. finds a hash function that reverses the encoding.
And it just works. Reversible hashes.
Of course you can't use it for compression strictly, not under normal circumstances, but these aren't normal circumstances.
The first thing I tried was finding a hash function h0, that predicts each subsequent value in a list given the previous value. This doesn't work because of hash collisions by default. A value like 731 might map to 64 in one place, and a later value might map to 453, so trying to invert the output to get the original sequence out would lead to branching. It occurs to me just now we might use a checkpointing system, with lookahead to see if a branch is the correct one, but I digress, I tried some other things first.
The next problem was 1. long sequences are slow to generate. I solved this by tuning the amount of iterations of the outer and inner loop. We find h0 first, and then h1 and put all the inputs through h0 to generate an intermediate list, and then put them through h1, and see if the output of h1 matches the original input. If it does, we return h0, and h1. It turns out it can take inordinate amounts of time if h0 lands on a hash function that doesn't play well with h1, so the next step was 2. adding an error margin. It turns out something fun happens, where if you allow a sequence generated by h1 (the decoder) to match *within* an error margin, under a certain error value, it'll find potential hash functions hn such that the outputs of h1 are *always* the same distance from their parent values in the original input to h0. This becomes our salt value k.
So our hash-function generate called encoder_decoder() or 'ed' (lol two letter functions), also calculates the k value and outputs that along with the hash functions for our data.
This is all well and good but what if we want to go further? With a few tweaks, along with taking output values, converting to binary, and left-padding each value with 0s, we can then calculate shannon entropy in its most essential form.
Turns out with tens of thousands of values (and tens of thousands of bits), the output of h1 with the salt, has a higher entropy than the original input. Meaning finding an h1 and h0 hash function for your data is equivalent to compression below the known shannon limit.
By how much?
Approximately 0.15%
Of course this doesn't factor in the five numbers you need, a0, and b0 to define h0, a1, and b1 to define h1, and the salt value, so it probably works out to the same. I'd like to see what the savings are with even larger sets though.
Next I said, well what if we COULD compress our data further?
What if all we needed were the numbers to define our hash functions, a starting value, a salt, and a number to represent 'depth'?
What if we could rearrange this system so we *could* use the starting value to represent n subsequent elements of our input x?
And thats what I did.
We break the input into blocks of 15-25 items, b/c thats the fastest to work with and find hashes for.
We then follow the math, to get a block which is
H0, H1, H2, H3, depth (how many items our 1st item will reproduce), & a starting value or 1stitem in this slice of our input.
x goes into h0, giving us y. y goes into h1 -> z, z into h2 -> y, y into h3, giving us back x.
The rest is in the image.
Anyway good to see you all again.24