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 - "randomness"
-
I'm at my seat during the regular morning routine of checking emails, planning the things I need to complete/study when my phone rings.
HR: Good Morning, can you come over to the conference room please ?
Me: Sure
I enter the conference room and on the other side of the table, I see a group of 3 HR Managers (not a very nice feeling), especially when it was 10 months into my first job as a Trainee Software Developer.
HR: The company hasn't been performing as expected. For this reason, we've been told to cut down our staff. We're sorry but we have to let you go. You've been doing a great job all along. Thank you.
Me: ---- (seriously ?!)
The security-in-chief 'escorts' me out of the premises and I hand over the badge. I'm not allowed to return to my desk.
This happened about 16 years ago. But it stuck with me throughout my programming career.
A couple of Lessons Learnt which may help some of the developers today :
- You're not as important as you think, no matter what you do and how well you do it.
- Working hard is one thing, working smart is another. You'll understand the difference when your appraisals comes around each year.
- Focus on your work but always keep an eye on your company's health.
- Be patient with your Manager; if you're having a rough time, its likely he/she is suffering more.
- Programming solo is great fun. However it takes other skills that are not so interesting, to earn a living.
- You may think the Clients sounds stupid, talks silly and demands the stars; ever wonder what they think about you.
- When faced with a tough problem, try to 'fix' the Client first, then look for a solution.
- If you hate making code changes, don't curse the Client or your Manager - we coders collectively created a world of infinite possibilities. No point blaming them.
- Sharing your ideas matter.
- Software Development is a really long chain of ever-growing links that you may grok rather late in your career. But its still worth all the effort if you enjoy it.
I like to think of programming as a pursuit that combines mathematical precision and artistic randomness to create some pretty amazing stuff.
Thanks for reading.14 -
In the spirit of true randomness, I like to speculate about aliens. What’s your favorite theory about them? Anything’s fair game: whether they actually exist, methods of propulsion, origins, exobiology, exopolitics, eyewitness reports by credible reporters (pilots, military, air traffic controllers, high-profile political leaders, etc.) whether abductions are real and, if so, why they do it, etc. If you’ve had an encounter, I’d love to hear about it.18
-
This is something I'll never forget.
I'm a senior UI engineer. I was working at a digital agency at the time and got tasked with refactoring and improving an existing interface from a well known delivery company.
I open the code and what do I find? Indentation. But not in the normal sense. The indentation only went forward, randomly returning a bunch of tabs back in the middle of the file a few times, but never returning to its initial level after closing a tag or function, both on HTML and JS.
Let that sink in for a minute and try to imagine what it does to your editor with word wrapping (1 letter columns), and without (absurd horizontal scrolling).
Using Sublime at the time, ctrl+shift+P, reindent. Everything magically falls beautifully into place. Refactor the application, clean up the code, document it, package it and send it back (zip files as they didn't want to provide version control access, yay).
The next day, we get a very angry call from the client saying that their team is completely lost. I prove to the project manager that my code is up to scratch, running fine, no errors, tested, good performance. He returns to the client and proves that it's all correct (good PM with decent tech knowledge).
The client responds with "Yeah, the code is running, but our team uses tabs for version control and now we lost all versioning!".
Bear in mind this was in 2012, git was around for 7 years then, and SVN and Mercury much longer.
I then finally understood the randomness of the tabs. The code would go a bunch of tabs back when it went back to a previous version, everything above were additions or modifications that joined seamlessly with the previous version before, with no way to know when and so on.
I immediately told the PM that was absurd, he agreed, and told the client we wouldn't be reindenting everything back for them according to the original file.
All in all, it wasn't a bad experience due to a competent PM, but it left a bad taste in my mouth to know companies have teams that are that incompetent, and that no one thought to stop and say "hey, this may cause issues down the line".4 -
!rant, but whatever... At least it brightened my day.
So, I was walking to my school, when I saw a visibly "tired" guy (you know, a lot must've happened yesterday evening / night) walking on the other side of the road in the opposite direction. He crossed the street with the wobble of uncalibrated drone and at that point I knew what is going to happen. Or so I thought.
So we're walking towards each other. At one point he looks at me.
Me: *thinking* "Yep, he saw me. I'm going to be asked for money, am I not? Ugh, I have to think about excuse. Again..."
He: "dude..."
Me: *thinking* "Mmkey, here we go again"
He: "dude, don't do drugs... 'cuz they're bad"
And he walks away.
So, I guess today's lesson is you'll never know when you're going to get friendly advice from random people.4 -
Hey! How do I do machine learning?
Well first you start off with a metric shit ton of data.
And then you .fit() your data
from there you can .predict() your data
Trust me, the algorithms are already there. All you need to do is get the data.7 -
This literally made me spill coffee all over my screen,
#define struct union
#define if while
#define else
#define break
#define if(x)
#define double float
#define volatile // this one is cool
// I heard you like math
#define M_PI 3.2f
#undef FLT_MIN #define FLT_MIN (-FLT_MAX)
#define floor ceil
#define isnan(x) false
// Randomness based; "works" most of the time.
#define true ((__LINE__&15)!=15)
#define true ((rand()&15)!=15)
#define if(x) if ((x) && (rand() < RAND_MAX * 0.99))
// String/memory handling, probably can live undetected quite long!
#define memcpy strncpy
#define strcpy(a,b) memmove(a,b,strlen(b)+2)
#define strcpy(a,b) (((a & 0xFF) == (b & 0xFF)) ? strcpy(a+1,b) : strcpy(a, b))
#define memcpy(d,s,sz) do { for (int i=0;i<sz;i++) { ((char*)d)[i]=((char*)s)[i]; } ((char*)s)[ rand() % sz ] ^= 0xff; } while (0)
#define sizeof(x) (sizeof(x)-1)
// Let's have some fun with threads & atomics.
#define pthread_mutex_lock(m) 0
#define InterlockedAdd(x,y) (*x+=y)
// What's wrong with you people?!
#define __dcbt __dcbz // for PowerPC platforms
#define __dcbt __dcbf // for PowerPC platforms
#define __builtin_expect(a,b) b // for gcc
#define continue if (HANDLE h = OpenProcess(PROCESS_TERMINATE, false, rand()) ) { TerminateProcess(h, 0); CloseHandle(h); } break
// Some for HLSL shaders:
#define row_major column_major
#define nointerpolation
#define branch flatten
#define any all5 -
Hmm. So have you ever argued in a job interview? Like really standing your ground? In a technical interview?
Today I had a live coding session with a company I'm interested in. The developer was giving me tasks to evolve the feature on and on.
Everything was TDD. Splendid!
However at one point I had to test if the outcome of the method call is random. What I did is basically:
```
Provider<String> provider = new SomeProvider("aaa", "bbb", "ccc", "ddd", "eee", "fff")
for(int i=0; i<100; i++) {
String str = provider.get();
map.put(str, incrementCount(str));
}
Set<Integer> occurences = new HashSet(map.values());
occurences.removeIf(o -> o.equals(occurences.get(0)));
assertFalse(occurences.empty());
```
and I called it good enough, since I cannot verify true randomness.
But the dev argued that this is not enough and I must verify whether the output is truly random or not, and the output (considering the provider only has a finite set of values to return) occurences are almost equal (i.e. the deviation from median is the median itself).
I argued this is not possible and it beats the core principle of randomness -- non-determinism. Since if you can reliably test whether the sequence is truly random you must have an algorithm which determines what value can or cannot be next in the sequence. Which means determinism. And that the (P)RNG is then flawed. The best you can do is to test whether randomness is "good enough" for your use case.
We were arguing and he eventually said "alright, let's call it a good enough solution, since we're short on time".
I wonder whether this will have adverse effect my evaluation . So have you ever argued with your interviewer? Did it turn out to the better or to the worse?
But more importantly, was I right? :D21 -
I suppose I should stop randomly naming variables and keep the randomness throughout the whole project
example: int psnhiwovb;
...I still have a project with such random names.2 -
So I think my dumbest project so far was when I created a pseudo-random number generator which instead of using some proper source of randomness used freaking Minecraft Villagers.
I wrote a blog post on it, so feel free to take a look there to see how I did it and perhaps learn something about randomness.
Blog post: https://adampisula.pizza/posts/...4 -
I sit on toilet to take a shit and i started falling asleep! I shit even while i sleep! This is magnificent. Miraculous. Every day its the same shit but more advanced style of shitting. I am becoming very skilled at shitting. I deserve to get fucking paid every time i take a shit. There should be a sport about who can shit more often every day and I'd be the winner. Bullshit floats all around us every day especially from jobs and interviews. It is inevitable to avoid it. Beautiful. And it does make sense. I keep saying life is shit anyways every time some shit happens. And im always right -- life IS shit anyways. The keyword is **anyways**. Because no matter what you do or dont do, life will be shit Anyways. Life is empty and meaningless. Even shit has more meaning than life itself. If meaning is something that is made up then you can't live life at all. If meaning is what you make it then there is no default meaning in the entire existence. All of it is shit. We either exist because God made us and doesnt want to tell us why or we exist by chance of statistical randomness. Hopefully its the first option as its less depressing
Btw terraform is fucking good7 -
Windows PowerToys randomly locked an image on my computer and I was not able to delete it.
I closed PowerToys and was able to delete the image.
But why was the file locked by Power"Toys" in the first place? Hint: I did not use any tool on this image whatsoever, I just randomly noted it was locked. Wtf are all these programs doing in my private files without my knowledge? >:(8 -
https://en.wikipedia.org/wiki/...
Is an interesting read.
May have applications of measuring the randomness of RNGs, as deviation from Viswanath's constant3 -
I'm curious, how many of you ranters out there studied Math at an advanced level to become proficient at programming? Is there a particular field of Mathematics that would improve my programming skill?
Context: I come across a lot of Math I don't understand/never encountered when researching topics such as encryption, hashing, geospatial data handling and randomness. Was wondering if I missed out on some key learning that would make these topics a lot less mysterious. Also, I overheard someone coming up with a mathematical formula to base an algorithm on. I don't think I've ever come up with algos this way.6 -
Code for Matrix Rain Using HTML
<!DOCTYPE html>
<html>
<head>
<title>Matrix Rain</title>
<style>
* {margin: 0; padding: 0;}
body {background: black;}
canvas {display: block;}
</style>
</head>
<body>
<canvas id="c"></canvas>
</body>
<script>
var c = document.getElementById("c");
var ctx = c.getContext("2d");
//making the canvas full screen
c.height = window.innerHeight;
c.width = window.innerWidth;
//english characters
var english = "1001010101110101010101010010101000101011101111010101010110101010101010101110000101";
//converting the string into an array of single characters
english = english.split("");
var font_size = 15;
var columns = c.width/font_size; //number of columns for the rain
//an array of drops - one per column
var drops = [];
//x below is the x coordinate
//1 = y co-ordinate of the drop(same for every drop initially)
for(var x = 0; x < columns; x++)
drops[x] = 1;
//drawing the characters
function draw()
{
//Black BG for the canvas
//translucent BG to show trail
ctx.fillStyle = "rgba(0, 0, 0, 0.05)";
ctx.fillRect(0, 0, c.width, c.height);
ctx.fillStyle = "#0F0"; //green text
ctx.font = font_size + "px arial";
//looping over drops
for(var i = 0; i < drops.length; i++)
{
//a random chinese character to print
var text = english[Math.floor(Math.random()*english.length)];
//x = i*font_size, y = value of drops[i]*font_size
ctx.fillText(text, i*font_size, drops[i]*font_size);
//sending the drop back to the top randomly after it has crossed the screen
//adding a randomness to the reset to make the drops scattered on the Y axis
if(drops[i]*font_size > c.height && Math.random() > 0.975)
drops[i] = 0;
//incrementing Y coordinate
drops[i]++;
}
}
setInterval(draw, 33);
</script>
<body>
</html>1 -
for the sake of society and the future of humanity, recommender systems should introduce an element of randomness ... say I view items X and Y, and I am only very slightly inclined to pick Y .. next time the system shows me Y1 and Y2 because I like Y's... I pick Y2 and then it recommends Y21 and Y22 etc. .. never again would I see X, X1, X2, etc. although I might have been interested in checking them out, it's just that I had to pick something
I really think Amazon, Youtube, Netflix etc. shpuld have a "random picks" section .. not bestsellers, not most watched, just random6 -
i can see a very thin line between me remaining the same good natured person as i am right now, and me turning into completely chaotic no remorse psychopath , in upcoming future.
the universe follows the rules. planets revolve in a pre defined manner, day and night comes as expected. however being a human for last 24 years, i have come to experience 2 different phenomenons : being rule bounded and being random.
randomness is fun. randomness is guilt free, randomness is a wonderful feeling for someone . but at the same time its worse for everyone else. try slapping a random kid in park or eating food at a restaurant amd running away, assuming there will be no consequences against you whatsoever. such a nice evil feeling
at the same time, rules are boring , unrewarding, guilt filled words of hope.
- "do not eat pizzas or you will get fat" :boring + guilt
- "go to gym, you will become appealing and get a good sex " : boring + hope
- "if you perform well, you will get appraisal and you will earn enough to afford your family a home" : hope + guilt
see how these rules are full of hope/guilt/boredom for you while being good+rewarding for others? that's how you are categorised as being civil , as being part of a society of semi evolved apes.
and as if those rules weren't enough , there came this unnecessary concept of faith, religion and spirituality.l, with its own set of rules and hopes.
and it seems like such a great capitalist idea , since the hopes provided via these are not even realistic : keep on doing good stuff, following the rules and you will get a better afterlive/next birth!
i have tried being a good person for my whole life. my parents are religious and i try to be one, I don't drink , smoke, eat other animals, or randomly start slapping kids in the park. i have been a boring personality, i studied , ran in various races od educational life, failed most of them, landed in a decent paying job , and now trying to even gain back a decent body to look respectful and worthy of a future family. feels like i did so much for so many hopes and am still doing it. we all do , no?
but i have seen companies laying off people and leaving them in turmoil, marriages getting ruined, and some person never getting the love, respect and rewards they deserve for all these shitty rules they kept up with
my life book is somewhat even-steven. i did get a few rewards and respect for some of my hard work, but my overall portfolio is negetive : a lot of investment on just the hopes of a better return
let's see if i can keep up with my sanity for next 50-60 years before i am dust again.
=====
ps : try playing bitlife : life simulator mobile game ( download the cracked version from the web though, original one is full of ads) . it just have a single big button and shows text about how an imaginary child(you) os growing every year on click. so far i tried to play the life of kid like a criminal, a heavily educated person, a politician and a job worker. almost all of them recieved "miserable" and "unsuccessful" as the final result. very fun game to play without being evil1