Details
-
Aboutimport this
-
SkillsAngular (js to 7 with SASS, Flex and Material), PHP (Laravel), Python (classic, Django, Flask), Java (Android), C#. etc...
-
LocationCape Town
-
Website
-
Github
Joined devRant on 7/3/2016
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
-
Wow, Japan is on the verge of a technological breakthrough!
ref.: https://engadget.com/japan-will-no-...11 -
After I picked up cooking, I dialed in a classic Russian pancakes recipe of my grandma (the babushka) and made it sugar-free. I cook those pancakes for my wife every Saturday, and she says they taste heavenly.
So, here’s the recipe of kiki’s pancakes:
- 8 eggs, 150g of 82% butter, 300g of flour, baking powder, 800ml of 3.2% fat milk. If you have a blender, it’ll make things easier
- let them sit and make all of them the same temperature
- take 8 eggs, add milk, stir
- liquify the butter in the microwave, add, stir
- sift the flour in while stirring continuously
- let it sit for 30 minutes
- take a pan, add little butter or sunflower seed oil, make it scary hot
- after you pour, flip the pancake when its top gets dry
to flip them easily, spread pastry wide when pouring, overlapping frying pan edges. Then, use those edges (now bone dry) to flip the pancake. After you’re done, those edges (now almost black) will break away, leaving a perfect pancake. This works especially well if you don’t have a good non-stick frying pan.
enjoy!8 -
Debugging an assertion for hours that keeps failing on 19 == 20 , and you just cannot figure out why it returns 20, until you realize that it in fact returns 19 and the constant in the test case that you screwed up at the start reads 20.7
-
Boyfriend just got rejected after spending 45 minutes annotating a video using a company's shitty product they asked him to learn and utilize for the interview itself.
He did a fine job, if I do say so myself.
He was rejected today, with no reason other than a list of "common things that might have triggered a rejection".
Oh and the classic "we're sorry, we can't tell you why we rejected you - but we look forward to you re-applying in 45 days!"
Why the fuck not? If you're a recruiter and you do this shit, go royally fuck yourself. It's so beyond unprofessional and there's zero reason for it.
If he fucked up and failed, fine. At least tell him why. Be fucking adults. Your shit fucking stinks just like everyone else's, this isn't American Idol or the Hunger Games; you're not President Snow, and even Simon will tell you why you suck.
Fucking aggravating.15 -
Why are Americans so stupid?
Date format: MM/dd/YY => what is this? It‘s not even in order
Length Units: Inch, Feet, Yard, Mile => good luck trying to convert in in a hurry without a calculator
Cooking recipes: cups, tablespoons, pinches => land of the freedom, especially for measurement errors
Temperature: Fahrenheit. => some dude who thought, „oh this is really hot, lets mark it 100“ and the other day „oh this is really cold, I got the 0 mark, sciene“
Weight: ounces ~ 28.34952 g, ton ~ maybe 907.xx kg, it depends
Time: Americans think the week starts on sunday, so they assume it does so for everyone else (f*** you american developer, designer, I mean you)
Football is football. Everywhere. In. The. World.
Politics: Trump, Weapons, health system, worker rights, ...
God, I hate America and their bs.30 -
Don't get me wrong, Dart is a darling. But also at the same time is like that one time you thought you found a good band and end up reading their wiki and one of the members turns out to be a wife beater.
Feels so good at the beginning and you feel you can do anything until you see the shortcomings and feel weird about committing time to it. -
Expert: "The core problem with passwords is that they reside on a server."
I suppose that's true, but only if you're a complete moron. Store a hash of a password, and users can authenticate against it with a password that doesn't get logged. This is technology that's been around for over fifty years. If you're storing passwords on a server, you deserve whatever trouble you get.6 -
The first time I realized I wasn't as good as I thought I was when I met the smartest dev I've ever known (to this day).
I was hired to manage his team but was just immediately floored by the sheer knowledge and skills this guy displayed.
I started to wonder why they hired outside of the team instead of promoting him when I found that he just didn't mesh well with others.
He was very blunt about everything he says. Especially when it comes to code reviews. Man, he did /not/ mince words. And, of course, everyone took this as him just being an asshole.
But being an expert asshole myself, I could tell he wasn't really trying to be one and he was just quirky. He was really good and I really liked hanging out with him. I learned A LOT of things.
Can you imagine coming into a lead position, with years of experience in the role backing your confidence and then be told that your code is bad and then, systematically, very precisely, and very clearly be told why? That shit is humbling.
But it was the good kind of humbling, you know? I really liked that I had someone who could actually teach me new things.
So we hung out a lot and later on I got to meet his daughter and wife who told me that he had slight autism which is why he talked the way he did. He simply doesn't know how to talk any other way.
I explained it to the rest of the team (after getting permission) and once they understood that they started to take his criticism more seriously. He also started to learn to be less harsh with his words.
We developed some really nice friendships and our team was becoming a little family.
Year and a half later I had to leave the company for personal reasons. But before I did I convinced our boss to get him to replace me. The team was behind him now and he easily handled it like a pro.
That was 5 years ago. I moved out of the city, moved back, and got a job at another company.
Four months ago, he called me up and said he had three reasons for us to meet up.
1. He was making me god father of his new baby boy
2. That they created a new position for him at the company; VP of Engineering
and
3. He wanted to hang out
So we did and turns out he had a 4th reason; He had a nice job offer for me.
I'm telling this story now because I wanted to remind everyone of the lesson that every mainstream anime tells us:
Never underestimate the power of friendship.21 -
year 1: hoping and praying no-one asks you to do anything on the big scary command line
year 5: if I have to leave the safe haven of my terminal to use some GUI nonsense, someone's gonna pay10 -
To all the people who don't know how to yield when merging on the highway...
To all the people who ride my ass when I am trying to pass a slower moving vehicles...
To all the people who try to pass on the right when I am trying to move back into the right lane so I don't break other peoples windshields with rocks by providing enough space...
To all the people who tailgate, then pass me almost causing a head-on, then 200ft later slow down and make me wait for you to turn...
FUCK YOU!5 -
Personal projects are the best.
Coming home after work.
Cooking diner and cleanup, dishwash stuff.
Giving some attention to partner.
Exercise, because you have been sitting all day.
And then the one hour that is left before you need to sleep. You fire up the project just to realize that you forgot what you have been doing. And start browsing devrant instead.
Great day. let's try again tomorrow.5 -
FYI Google sends you a free Google Home and a T-shirt if you have a good standing Google Assistant Action13
-
Pro tip: If you are a junior, or senior but new at the company, don't start your conversations with:
"We're doing X wrong. At my previous company we did / at school I learned /in this book I read / according to this talk I watched, the right way to do X is ..."
Instead try:
"I'm curious why were doing X this way. I'm used to doing it differently."
I love flat-hierarchy teams, and people who think about flaws in procedures and proactively try to improve the tools we use are awesome, but the next kid walking up to me yelling we use git flow "wrong" will be smacked in the face with a keyboard.
If you come to me with curiosity and an open mind, I'll explain, and even return the favor by behaving the same way when I'm baffled by your seemingly retarded implementations.
Maybe we can learn from each other, maybe discover that "how I learned it" is sometimes good, sometimes bad.
But let's start with some social skills, not kicking off into every debate with a stretched leg and a red face.23 -
Next month I'm starting my master studies in embedded systems. Currently I have not any knowledge in this topic (made my bachelor in an other part of IT). Any tips or tricks?
Currently I'm starting learning C++ 😅13 -
The riskiest dev choice...
How about "The riskiest thing you've done as a dev"? I have a great entry for that. and I suppose it was my choice to build the feature afterall.
I was working on an instance of a small MMO at a game company I worked for. The MMO boasted multiple servers, each of them a vastly different take on the base game. We could use, extend, or outright replace anything we wanted to, leading to everything from Zelda to pokemon to an RP haven to a top-down futuristic counterstrike. The server in this particular instance was a fantasy RPG, and I was building it a new leveling and experience system with most of the trimmings. (Talents, feats/perks, etc. were in a future update.)
A bit of background, first: the game's dev setup did not have the now-standard dev/staging/prod servers; everything ran on prod, devs worked on prod, players connected and played on prod, etc. Worse yet, there was no backup system implemented -- or not really. The CTO was really the only person with sufficient access. The techy CEO did as well, but he rarely dealt with anything technical except server hardware, occasionally. And usually just to troll/punish us devs (as in "Oops ! I pulled the cat5 ! ;)"). Neither of them were the most reliable of people, either. The CTO would occasionally remote in and make backups of each server -- we assumed whenever he happened to think of it -- and would also occasionally do it when asked, but it could take him a week, sometimes even up to a month to get around to it. So the backups were only really useful for retreiving lost code and assets, not so much for player data.
The lack of reliable backups and the lack of proper testing grounds (among the plethora of other issues at the company) made for an absolutely terrible dev setup, but that's just how it was, and that's what we dealt with. We were game devs, afterall. Terrible or not, we got to make games! What more could you ask for!? It was amazing and terrible and wonderful and the worst thing ever, all at the same time. (and no, I'm not sharing the company name, but it isn't EA or Nexon, surprisingly 😅)
Anyway, back to the story! My new leveling system also needed to migrate players' existing data, so... you can see where this is going.
I did as much testing and inspection of my code as I could, copied it from a personal dev script to the server's xp system, ... and debated if I really wanted to click [Apply]. Every time I considered it, I went back to check another part or do yet more testing. I ended up taking like 40 minutes to finally click it.
And when I did... that was the scariest button press of my life. And the scariest three seconds' wait afterwards. That one click could have ruined every single player's account, permanently lost us players ...
After applying it, I immediately checked my character to see if she was broken, checked the account data for corruption or botched flags, checked for broken interactions with the other systems....
Everything ended up working out perfectly, and the players loved all of the new features. They had no idea what went into building them, and certainly had no idea of what went into applying them, or what could have gone wrong -- which is probably a good thing.
Looking back, that entire environment was so fragile, it's a wonder things didn't go horribly wrong all the time. Really, they almost never did. Apocalypses did happen, but were exceedingly rare, and were ususally fixed quickly. I guess we were all super careful simply because everything was so fragile? or the decent devs were, at least. We never trusted the lessers with access 😅 at least on the main servers where it mattered. Some of the smaller servers... well, we never really cared about those.
But I'm honestly more surprised to realize I've never had nightmares of that button click. It was certainly terrifying enough.
But yay! Complete system overhaul and migration of stored and realtime player data! on prod! With no issues! And lots of happy players! Woooooo!
Thinking back on it makes me happy 😊rant deploying straight to prod prod prod prod dev server? dev on prod you chicken migration on prod wk149 git? who's a git? you're a git! scariest deploy ever game development1 -
Imagine what a coder Gordon Ramsay might be like:
Your alghoritm is so FUCKING slow, I'd rather to try to brute force a 20 characters long alphanumeric password!
This app is more insecure than an average teenager!
If your code was a spaghetti it would be a fucking health hazard!14 -
Sales employee Bob wants a clickable blue button.
Bob tells product owner Karen about his unstoppable desire for clickable blue buttons.
Karen assigns points for potential and impact (how much does a blue button improve Bob's life, how many people like Bob desire blue buttons)
Karen asks the button team how hard it is to build a button. The button team compares the request to a reference button they've built before, and gives an ease score, with higher score being easier (inverse of scrum points).
These three scores are combined to give a priority score. The global buttonbacklog is sorted by priority.
Once every two weeks (a "sprint") the button team convenes, uses the ease scores to assign scrum points. Difficult tasks are broken up into smaller tasks, because there is a scrum point upper limit. They use the average of the last 5 sprints to calculate each developer's "velocity".
The sprint is filled with tasks, from the top of the global button backlog, up to the team's capacity as determined by velocity. Approximate due dates are assigned, Bob is a happy Bob.
What if boss Peter runs into the office screaming "OUR IMPORTANT CLIENT WANTS A FUCKING PINK BUTTON WHICH MAKES HEARTS APPEAR"?
Devs tell boss to shut the fuck up and talk to Karen. Karen has a carefully curated list of button building tasks sorted by priority, can sedate boss with valium so he calms the fuck down until he can make a case for the impact and potential of his pink button.
Karen might agree that Peter's pink button gets a higher priority than Bob's blue button.
But devs are nocturnal creatures, easily disturbed when approached by humans, their natural rhythms thrown out of balance.
So the sprint is "locked", and Peter's pink button appears at the top of the global backlog, from where it flows into the next sprint.
On rare occasions a sprint is broken open, for example when Karen realizes that all of the end users will commit suicide if they don't have a pink heart-spawning button.
In such an event, Peter must make Bob happy (because Bob is crying that his blue button is delayed). And Peter must make the button team of devs happy.
This usually leads to a ritual involving chocolate or even hardware gift certificates to restore balance to the dev ecosystem.23