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
-
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.1 -
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.26 -
Heads-up, ChatGPT is leaking through cracks. Each chat is NOT carried out in an isolated, pristine context. It can refer to your previous conversations in a new context.
e.g.: https://chatgpt.com/share/e/...
I did NOT mention anything about any project/client or any fintech or any certification in this conversation. However, I mentioned all of those things in a previous conversation.
Contexts leaked into each other. IDK if my newer conversation will have any effect on answers to follow-up questions in older conversations, though.
No, learning from my conversations is NOT enabled.
But if chatgpt still remembers our conversations, regardless my explicit preference NOT to do that, makes me wonder what else they are collecting/doing behind the scenes..11 -
Appointments appointments appointments meetings meetings appointments suffering meetings meetings AAAAAAAAAAA I DON WANNAAAAA5
-
Back to the grind of self-employment trying to find work. Fuck I hate this but all the jobs I'm finding are toxic as hell. Still better than my old job.9
-
In Software Development, if you have a problem to solve, you break it down into smaller, easier-to-solve problems.
Does this always hold true? I imagine there are situations where you can't do this. I would need to see different perspectives.9 -
"You can't argue with the TV"
This statement is true when engaging with people online. The TV has told them what to think. Sometimes it takes a jarring moment to shake someone out of this trance. For some nothing will break the programming.
I can tell when someone isn't thinking for themselves. They repeat the standard media terms, and then use those terms to dehumanize people. They can then dismiss any counter information as being from "those people".
I assume this is some kind of protection mechanism. I suspect people are afraid of being wrong and their ego won't allow this. So the conclusion seems to be: people who don't believe the TV "must" have character faults. Some even have fantasies of harming those who don't agree. I have witnessed this a few times with a few different people. It would be sad to live like that. I don't understand or comprehend that kind of hate. I can only suspect this comes from the TV content. I don't know because I haven't watched it in almost 15 years.
The AP is a trillion dollar propaganda machine. If you can see through its facade count yourself lucky.
Pray for people to wake up. Remember you can't argue with the TV. Just move on.
On a side note. Viewership of traditional AP media is now in the toilet. So I hope that is progress.9 -
AI can do fancy autocomplete and generate code from prompts but the fucking jetbrains IDE needs me to manually set the fucking SDK java version shit in 3 different places? I feel like I don't remember doing this toil in the past.
On the one hand I feel validated to find a slack thread of seniors and up also irritated, remarkign it's not intuitive, and asking about this , and thankful to see the 3 screenshots there.
Yes I'm salty as fuck6 -
Why yes we have these nine types of transactions mocked. See? The factories make CSV data just like we get in those gigantic CSV files every day that are like ultra-important or whatever.
Wait, you want to actually use the data? to create records? Like build a record like we do in the code? Nonononono that won’t work! Why? Why!? You want us to actually MOCK the data, like make it look real AND MAKE IT PASS VALIDATION? Are you CRAZY!? THERES LIKE THIRTY COLUMNS THERE! No way. No no no way. If you want to do that, you’re on your own. But make sure you don’t break anything with your “improvements” or it’s on you.
Also, all of this is going away soon, so make sure you don’t do anything unnecessary, like mocking all that data. (It’s been “going away” for well over a year now…)
agdkdagafskdsifaskfgdlfff3 -
fuuuuckk why do you people expect me to lie ?
wait that translates too clearly.
*waves a red flag, then turns around in a circle, touches his nose, sticks out his tongue, stomps his right foot and says * I not like lie to get better places.4 -
This is how eldritch beings get you these days.
No more whispers of immortality,or to bring back a loved one.
Just straight up ultra fast broadband.2 -
Google Assistant got replaced by Gemini on my phone. What used to work before, me saying "Hey Google, set an alarm for 5 pm" doesn't work anymore.
"I am only a language model so I can't help you with that" is the default response.
Does big tech not like the idea of things working fine and smooth?38 -
> Americans: THOSE ENGINEER KIDS HIRED BY ELON ARE BRILLIANT AND AMBITIOUS, THEY ARE SO SKILLED, THEY'LL DO WONDERS FOR THE COUNTRY
> me, knowing full well the average dev is a retarded mongrel I wouldn't trust with a hotdog stand, without even going into the whole "Musk is a schizo" story36 -
Well, my boss is officially unhinged.
He threatened me in a call. He thinks I ratted him out to HR for living over seas. Funny thing is I don't give a rats ass, he's got the wrong guy.
Going to HR now though, see if I can move teams to minimize the damage he can afflict on me.11 -
Client: We're already behind schedule and over estimate
Also client: *keeps asking for more changes*
Why are civilians like this11 -
Imagine, AI is improved, robots are there for you, they cook they do all the households, and there is literally nothing that is there to do for humans, in such case is there a chance Humans go backwards becoming Neanderthals, go hunting in jungles and live like that.. and then so many years later they rebel against AI and Robots and surprisingly come to know they are the one who created them so many centuries ago.. lol3
-
Are we at the f*ck holes off corporate life?
Have you all been busting your guts for corporate f*cks?
I'm so bored of corporate life. What else is there?13 -
Soo... Turns out, if your laptop has usb-c charging and it has several such usb-c ports, you can use them simultaneously.
My lappy has issues with usb-c sharging, i.e. it becomes sluggish when charging w/ usbc (compared to on-battery and charging through barrel plug). Aaaaand Linux tends to occasionally crash if I unplug the charger while it's "awake". I wanted to change chargers, so I figured I could plug in the second one (hoping not to see any smoke) and unplug the first one. As soon as I plugged in the second one, all the lag disappeared and the battery keeps charging.
So if you have an usb-c charger that's too weak for your laptop, try using two of them :D
Never would have thought....20 -
By the time you get to need to learn Kubernetes, people are usually too far deep in their engineering careers and already have this 'not even more shit' fatigue.4
-
A software developer's experience life cycle:
0 - 5 years: attempt to replicate what your current senior is preaching, assuming that's the right way. Reading "Clean code" and preach it as gospel, even though you don't practice any of it.
6-12 years: gained the belief that you are better off coming up with solutions yourself, usually "sophisticated" and "elegant" which to everyone else (and also yourself a few years later) is an over-complicated inheritance ridden shit show. You have realised the "Clean code" movement is actually a cult but still believe code reuse is the holy grail.
13+ years: finally realized that simplicity and pragmatism is the most sensible way for most software development. Code is now readable, maintainable and functional. You took the few good bits from "Clean code" and ignored the extremism. These are the golden years.
The problem is most developers jump ship and stop developing before reaching the golden years, thus resulting in most software projects looking like shit.
Unpopular opinion, but it doesn't make it untrue.13