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 - "no value"
-
Yesterday: Senior dev messages out a screenshot of someone using an extension method I wrote (he didn’t know I wrote it)..
SeniorDev: “OMG…that has to be the stupidest thing I ever saw.”
Me: “Stupid? Why?”
SeniorDev: “Why are they having to check the value from the database to see if it’s DBNull and if it is, return null. The database value is already null. So stupid.”
Me: “DBNull is not null, it has a value. When you call the .ToString, it returns an empty string.”
SeniorDev: ”No it doesn’t, it returns null.”
<oh no he didn’t….the smack down begins>
Me: “Really? Are you sure?”
SeniorDev: “Yes! And if the developer bothered to write any unit tests, he would have known.”
Me: “Unit tests? Why do you assume there aren’t any unit tests? Did you look?”
<at this moment, couple other devs take off their head phones and turn around>
SeniorDev:”Well…uh…I just assumed there aren’t because this is an obvious use case. If there was a test, it would have failed.”
Me: “Well, let’s take a look..”
<open up the test project…navigate to the specific use case>
Me: “Yep, there it is. DBNull.Value.ToString does not return a Null value.”
SeniorDev: “Huh? Must be a new feature of C#. Anyway, if the developers wrote their code correctly, they wouldn’t have to use those extension methods. It’s a mess.”
<trying really hard not drop the F-Bomb or two>
Me: “Couple of years ago the DBAs changed the data access standard so any nullable values would always default to null. So no empty strings, zeros, negative values to indicate a non-value. Downside was now the developers couldn’t assume the value returned the expected data type. What they ended up writing was a lot of code to check the value if it was DBNull. Lots of variations of ‘if …’ , ternary operators, some creative lamda expressions, which led to unexpected behavior in the user interface. Developers blamed the DBAs, DBAs blamed the developers. Remember, Tom and DBA-Sam almost got into a fist fight over it.”
SeniorDev: “Oh…yea…but that’s a management problem, not a programming problem.”
Me: “Probably, but since the developers starting using the extension methods, bug tickets related to mis-matched data has nearly disappeared. When was the last time you saw DBA-Sam complain about the developers?”
SeniorDev: “I guess not for a while, but it’s still no excuse.”
Me: “Excuse? Excuse for what?”
<couple of awkward seconds of silence>
SeniorDev: “Hey, did you guys see the video of the guy punching the kangaroo? It’s hilarious…here, check this out.. ”
Pin shoulders the mat…1 2 3….I win.6 -
Yesterday, in a meeting with project stakeholders and a dev was demoing his software when an un-handled exception occurred, causing the app to crash.
Dev: “Oh..that’s weird. Doesn’t do that on my machine. Better look at the log”
- Dev looks at the log and sees the exception was a divide by zero error.
Dev: “Ohhh…yea…the average price calculation, it’s a bug in the database.”
<I burst out laughing>
Me: “That’s funny.”
<Dev manager was not laughing>
DevMgr: “What’s funny about bugs in the database?”
Me: “Divide by zero exceptions are not an indication of a data error, it’s a bug in the code.”
Dev: “Uhh…how so? The price factor is zero, which comes from a table, so that’s a bug in the database”
Me: “Jim, will you have sales with a price factor of zero?”
StakeholderJim: “Yea, for add-on items that we’re not putting on sale. Hats, gloves, things like that.”
Dev: “Steve, did anyone tell you the factor could be zero?”
DBA-Steve: “Uh...no…just that the value couldn’t be null. You guys can put whatever you want.”
DevMgr: “So, how will you fix this bug?”
DBA-Steve: “Bug? …oh…um…I guess I could default the value to 1.”
Dev: “What if the user types in a zero? Can you switch it to a 1?”
Me: “Or you check the factor value before you try to divide. That will fix the exception and Steve won’t have to do anything.”
<awkward couple of seconds of silence>
DevMgr: “Lets wrap this up. Steve, go ahead and make the necessary database changes to make sure the factor is never zero.”
StakeholderJim: “That doesn’t sound right. Add-on items should never have a factor. A value of 1 could screw up the average.”
Dev: “Don’t worry, we’ll know the difference.”
<everyone seems happy and leaves the meeting>
I completely lost any sort of brain power to say anything after Dev said that. All the little voices kept saying were ‘WTF? WTF just happened? No really…W T F just happened!?’ over and over. I still have no idea on how to articulate to anyone with any sort of sense about what happened. Thanks DevRant for letting me rant.15 -
Fuck today was weird.
Today I received almost half a million on my bank account. 😯
Someone changed the ancient cryptic billing system. My user account at work has id 32 in the database, and the dev referenced the size of the creditor id instead of the of the value of the ids itself, and they're u32 ints... So ALL the money moving through our platform was accidentally transferred to my associated bank account.
For all the unit tests we have, this bug tumbled right through.
And no one at finances thought a transfer that big, to a backend dev they know by name, was suspicious — with almost no money going to other creditors...
That worries me a bit. The fact that this shit can happen, even at high test coverage, just because someone mindlessly did a wrong autocomplete or something.
Of course I will send it back... after two weeks and a few hundred € of interest.12 -
Le monday morning after a commit on sunday evening...
PM: BLAAAH!!!! Your commit broke the site, nothing is working!!!!!!
Me: What? All of tests passed (coverage 95%), no issues were found.
PM: NOO!!!! Site is broken, we can't use it no more!!!
Me: Ok, what's the problem?
PM: I've tried to enter -10021 into this field on that page and it gived me an error.
Me: Ok? So, that single page is broken?
PM: No, whole site!!!! This is important
Me: Sure... Let me take a look
* PM tried to enter a negative value into an unsigned field that I've mutated yesterday after checking LIVE database if there was no records with negative value. Reason: we've hit an int limit and there was no chance that the value would be negative. Validation? Well, yes.... Except that page was added by him this morning without even checking everything else *
Me: Here, this is the issue, *gives explanation*
PM: Well.... You shouldn't do this. This is unacceptable. You must never leave int fields without negative values. Didn't they teach you in school that integers can be negative?!
Me: What? *consufed as hell*
PM: *More morale... blah blah blah....* Revert it back!
Me: Ok but if anything else breaks, copy of this slack conversation will be kept.
PM: Don't care! Fix it!
Me: * Reverts the fix, saves chat copy * - Done.
PM: Great.
* 5 wild minutes later *
PM: BLAAAH!!!! Site is down, service is not working, what have you done?
Me: Reverted the change needed for it to work. Todays schedule is full with other important tasks. * pastes a screenshot as a proof that he asked me to do this *
PM: FIX IT NOW! Apply your fix.
Me: You're the PM. - Done.
PM: Great, now I'll fix my code. You should be more careful next time.
Me: * YOU DENSE MATHA...KER * Sure.
How's your morning going? :)9 -
Me: "We should remove that popup"
Marketer: "But our A/B testing statistics show a 14% increase in signups to our newsletter, and people who get our newsletter are 4% more likely to buy something"
Me: "0.14x0.04... so slightly more than half a percent improvement. And you also qualitatively measured how many people decide to never visit the page again, just because of that popup? Did you measure the how many internet users with adblockers run into a broken webpage? Did you measure the amount of emails to support from users who can't unsubscribe from the newsletter because there is no unsubscribe link?"
Marketer: "Why would they want to unsubscribe? The newsletter adds value to our users!"
Me: 😩26 -
FUCK this startup mentality of implementing all these external services and APIs for absolutely fucking everything.
I get that your vacuous fresh-mint-tea-soaked hipster brains are all cheering about these "only $10/month/seat" services, because you imbeciles with your nodejs-sticker-plastered macbooks have never done anything but knot the work of other dimwits together.
I don't even care about the subscription costs. That shit is more trouble to maintain than writing it yourself, and there's no guarantee that visualizemyballs.com & lintmycock.io still work tomorrow.
I'm getting so sick of being barraged with 502 bad gateway errors because you halfassed yet another API implementation. Stop advertising your crossfit stats, your meditation-app records and your vegan protein bars for a minute, and maybe start writing some fucking code of your own, something with a higher shelf-life than your iPhone screen...
You know... something which actually fucking adds value to the world.15 -
A former colleague made an online shopping app. Boss wanted to promote him to Senior Developer when he still working with us.
14 days ago another colleague checked the code and told the boss that it's ready for production. No one asked me because everyone in the company thinks am the stupid developer of them all.
So what happened?
Well the total value of the cart was being over to payment gateway using a hidden field. Well you know the rest of the story.
The client has sued our company for this issue and boss came running to me and asked me to check if it was our fault or something else.
I checked and found the hidden value where the total value of cart was being stored and send over to payment gateway. The following is the conversation between me and the colleague who checked the code:
Me: So you checked the code and everything was okay?
Him: Yes, all good.
Me: Did you see this hidden field where the total value of cart is being passed to the payment gateway?
Him: Yes
Me: Why didn't you fix this?
Him: What's there to fix?
Me: Well someone can temper the value and let it pass to the payment gateway.
Him: No, they can't we are using https
Me: I' am done with you
He has Masters in software engineering and has few security certificates.25 -
At the airport.
Security: Please put all your electronics in the bin, including your watch.
Me: No problem
<goes through scanner>
Me: there was an Apple Watch in here and now it is gone.
Security: Oh, you lost your Apple Watch?
Me: No! I put my Apple Watch in the bin like you instructed and YOU lost my Apple Watch.
Security: It must be in the spinners.
Me: So my $500 Watch is in the spinners being run over by bins?
Security: you have to put the small things on the bottom.
Me: It was on the bottom and I did as you asked, this is entirely on you. Do not try to shift the blame to me again please.
Security: As I said...
Me: As I said, Do not try to shift the blame to me again. This is entirely your responsibility once you separate me from my electronics so you can perform security theatre. Have a nice day.
—————
Fuck this god damn security theatre. Fuck the dumbasses they hire. Fuck your country. Fuck your god damn feeling of insecurity. Fuck Your ineffective security theatre.
Sick my fucking dick until you choke and gag you worthless pieces of shit. Homeless people the street provide more security than you incompetent, under-educated assholes. Fuck you
And yes, I have 2 fucking laptops. I have a real fucking job where I provide actual value and for that I need a work laptop. I don’t come to work in a stupid looking outfit with a chip on my shoulder looking to inconvenience people. I come to work to provide real value to someone.
Fuck you and your worthless bullshit39 -
When someone beats the level of stupidity you thought was possible.
No, when you request a Let's Encrypt certificate, you DON'T fill in YOUR OWN NAME in the "Common Name" field 🤦
Also, it explains right next to the fucking field that non-experienced users SHOULDN'T ALTER THE FUCKING VALUE.
😷23 -
Mathematician girl invites me to code some lines.
I arrive at her flat and she was alone so some part of me thought ehem. Anyway i took a look at the program first.
Me: so... it's a date?
Her: no im using cosmic radiation.
Me: huh?
Her: yeah accessing a value from a sensor gives a..
(Apparently she thought i was asking about the Random Function she was using, which usually uses the date)24 -
Friend: I wiped this drive, and then I open it in my Hex viewer app, and it's all zeros!
Me: yeah?
Friend: Why isn't it empty?
Me: uh well a drive must have its bits set to some value and can't just nothingness so zeros is just a default meaningless value that resolves to nothing..
Friend: No, but why is it full of zeros? why it isn't empty?
...
I attempted several times and then exploded. rip self14 -
You know what really grinds my gears?
Seeing a 5-line comment, that have absolute no value, for a variable declaration.
Example:
/*
*
* String that holds a delivery address.
*
*/
public String deliveryAddress;8 -
1) I accepted this job for way way less money than market value.
2) Approached boss about having performance review because I had been here over 12 months and no one brought it up to me.
3) Had performance review where they offered a big raise (12% but still way under market value)
4) I countered asking for market value and showed aggregate research (30% increase)
5) A week later we meet again and they offer 23%.
6) That's where we ended at, pretty surprised they offered that much, but glad. I wasn't looking forward to looking at other jobs to catch up to market value.
7) Feeling pretty good considering I've never negotiated anything before.7 -
Working from home in 2020:
Both kids haven't interrupted me in an unusually long time.... That likely means they're up to no good.
On the other hand I'm getting a lot of coding done (bunch of fixes done / misc new tasks done).
So now I sort of do a little mental math to guess if the damage they might be doing is less than the value of me getting shit done for work....18 -
Privacy & security violations piss me off. Not to the point that I'll write on devRant about it, but to the point that coworkers get afraid from the bloodthirsty look in my eyes.
I know all startups proclaim this, but the one I work at is kind of industry-disrupting. Think Uber vs taxi drivers... so we have real, malicious enemies.
Yet there's still this mindset of "it won't happen to us" when it comes to data leaks or corporate spying.
Me: "I noticed we are tracking our end users without their consent, and store not just the color of their balls, but also their favorite soup flavor and how often they've cheated on their partner, as plain text in the system for every employee to read"
Various C-randomletter-Os: "Oh wow indubitably most serious indeed! Let's put 2 scrumbag masters on the issue, we will tackle this in a most agile manner! We shall use AI blockchains in the elastic cloud to encrypt those ball-colors!"
NO WHAT I MEANT WAS WHY THE FUCK DO WE EVEN STORE THAT INFORMATION. IT DOES IN NO WAY RELATE TO OUR BUSINESS!
"No reason, just future requirements for our data scientists"
I'M GRABBING A HARDDRIVE SHREDDER, THE DB SERVER GOES FIRST AND YOUR PENIS RIGHT AFTER THAT!
(if it's unclear, ball color was an optimistic euphemism for what boiled down to an analytics value which might as well have been "nigger: yes/no")12 -
[2010]
Begins Bitcoin mining during it's infancy, stops because it's a waste of time and has no value.
[2017]
1 BTC = £5,874
i cri evrytiem ;_;5 -
Me: Hi Guys, theres no docs on our custom push notification / deeplinking implementation. I've tried to work backwards from a QA testing doc to add new links. Can someone tell me if this is all ok? It seems to behave a little weird.
Dev: Looks ok, but we've moved to the braze platform for sending notifications. You'll need to trigger braze notifications now. Test that it works ok with that <confluence-link>
*hour later*
Me: I've tried the debugging tool, both with my payload and one of the samples from the link. It displays on the phone, but tapping it doesn't trigger the deeplinking.
Dev: No it works, try one of these <screenshot of samples I used>
*hour later*
Me: Tried it again on the real device to make sure, as well as on develop and master. Not working with those samples or mine.
Dev: No it does. It comes in here in this library <github link to line of code>
Me: ... Nope, debugged it, it doesn't get passed the next 'if' check on the next line as its missing a key/value. The whole function does nothing.
Dev: Oh do you want to send a braze notification?
Me: ..... you told me I had too .... yes I guess.
Dev: ok for a braze notification it works different, send this <entirely different sample no where on the link>
Me: ...... but ..... this is only for braze notifications ..... why .... all the samples have deeplink url's .... but they don't ....... are you ..... FFS!!!!! !@#?!
(╯°□°)╯︵ ┻━┻
┻━┻ ︵ヽ(`Д´)ノ︵ ┻━┻
(ノಠ益ಠ)ノ彡┻━┻
┌П┐(ಠ_ಠ)1 -
I had the dream of working as web designer in Berlin.
You know: techno partys, hedonistic lifestyle and cheap living.
I applied and flew over and got some Interviews.
Arrived at the agency situated in a beautiful broad avenue in a villa at the Olympia Stadion. I was greeted by 2 loud small dogs and nobody else was there. So i waited an half an hour.. and another one...
I notice their company code of conduct nicely framed on the wall. You know what is written on the first place?
"We value peoples time therefore we're punctual."
"We are cosequent"
So after two hours waiting they came. They were pretty stressed out and neded another 45 minutes to get ready to interview me. So they sat at the table telling me excuses. And i pointed at the frame and they suddenly got very bleak in their faces. I stood up and left after 3 hours of waiting. 😆
Sadly no Berlin for me.13 -
Someone asked for an RSS feed for the security/privacy blog, I thought?
Well, hereby! There are three feeds:
https://much-security.nl/main.xml - a feed which is updated with both blog posts and external links relating to privacy/security I find interesting/useful.
https://much-security.nl/own.xml - a feed only containing the blogs posts themselves. For people who are only interested in that part.
https://much-security.nl/external.x... - a feed only containing external links. For people who'd like to stay updated on recent cyber security/privacy thingies.
Tracking: every time a feed is visited, a redis value for that feed get's incremented. No time, ip addresses, user agent or whatsoever is saved. Just one variable getting increased once.
New domain name will also be revealed soon (probs tomorrow, going to bed soon as I've just been sick) :D.
Oh and just a warning, the main/external feed are the only ones populated with exactly one item right now :P30 -
Most hated language features?
PL/SQL:
• it exists
XSLT:
• it also exists
PHP:
• it still exists.
VB:
• Significant parentheses: `subName` calls the subroutine, and `subName()` calls the subroutine and gets a return value. If you use the wrong invocation, it yells at you. Why!?
• For reasons unknown, you can only have `sleep` appear once per codebase. (So put it in a function!)
Ruby:
• It’s bloody easy to write code with absolute shit performance, and it kind of feels encouraged because of just how easy Ruby makes everything. Less critical thinking means worse performance, and Ruby’s blissful elegance encourages mental laziness.
• Minor: You cannot pass a hash as the first method parameter without enclosing it in parentheses, ex:`method({key: value})`. This is due to the ambiguous case between passing a hash argument and a (curly) block/proc (`method {|args| code}`). This could be remedied pretty easily with a little bit of look ahead.
• Minor: There is no `elsif` for `unless` (a negated if). Why? No reason given.
Python:
• no block endings, so nested code can be extremely difficult to follow.
Bash:
• The freaking syntax oh god why.
All languages:
• rand vs rand() vs Rand vs Rand() vs rnd vs RND vs random() vs random vs randInt() vs Math.random() vs Math.randInt() vs ...18 -
I wrote a database migration to add a column to a table and populated that column upon record creation.
But the code is so freaking convoluted that it took me four days of clawing my eyes out to manage this.
BUT IT'S FINALLY DONE.
FREAKING YAY.
Why so long, you ask? Just how convoluted could this possibly be? Follow my lead ~
There's an API to create a gift. (Possibly more; I have no bloody clue.)
I needed the mobile dev contractor to tell me which APIs he uses because there are lots of unused ones, and no reasoning to their naming, nor comments telling me what they do.
This API takes the supplied gift params, cherry-picks a few bits of useful data out (by passing both hashes by reference to several methods), replaces a couple of them with lookups / class instances (more pass-by-reference nonsense). After all of this, it logs the resulting (and very different) mess, and happily declares it the original supplied params. Utterly useless for basically everything, and so very wrong.
It then uses this data to call GiftSale#create, which returns an instance of GiftSale (that's actually a Gift; more on that soon).
GiftSale inherits from Gift, and redefines three of its methods.
GiftSale#create performs a lot of validations / data massaging, some by reference, some not. It uses `super` to call Gift#create which actually maps to the constructor Gift#initialize.
Gift#initialize calls Gift#pre_init (passing the data by reference again), which does nothing and returns null. But remember: GiftSale inherits from Gift, meaning GiftSale#pre_init supersedes Gift#pre_init, so that one is called instead. GiftSale#pre_init returns a Stripe charge object upon success, or a Gift (and a log entry containing '500 Internal') upon failure. But this is irrelevant because the return value is never actually used. Pass by reference, remember? I didn't.
We're now back at Gift#initialize, Rails finally creates a Gift object using the args modified [mostly] in-place by all of the above.
Another step back and we're at GiftSale#create again. This method returns either the shiny new Gift object or an error string (???), and the API logic branches on its type. For further confusion: not all of the method's returns are explicit, and those implicit return values are nested three levels deep. (In Ruby, a method will return the last executed line's return value automatically, allowing e.g. `def add(a,b); a+b; end`)
So, to summarize: GiftSale#create jumps back and forth between Gift five times before finally creating a Gift instance, and each jump further modifies the supplied params in-place.
Also. There are no rescue/catch blocks, meaning any issue with any of the above results in a 500. (A real 500, not a fake 500 like last time. A real 500, with tragic consequences.)
If you're having trouble following the above... yep! That's why it took FOUR FREAKING DAYS! I had no tests, no documentation, no already-built way of testing the API, and no idea what data to send it. especially considering it requires data from Stripe. It also requires an active session token + user data, and I likewise had no login API tests, documentation, logging, no idea how to create a user ... fucking hell, it's a mess.)
Also, and quite confusingly:
There's a class for GiftSale, but there's no table for it.
Gift and GiftSale are completely interchangeable except for their #create methods.
So, why does GiftSale exist?
I have no bloody idea.
All it seems to do is make everything far more complicated than it needs to be.
Anyway. My total commit?
Six lines.
IN FOUR FUCKING DAYS!
AHSKJGHALSKHGLKAHDSGJKASGH.7 -
My first poem for programmer girl 😘😘😘
My life is incomplete without you,
You are semicolon of my life
You are my increment operator,
you make my value increases
I am username and you are my password,
without you No one can access me
You are my initializer,
without you my life would point to nothing (NULL or “0”)
If I were a function you must be my parameter,
Because I will always need you
Can you be my private variable?
I want to be only one who can access you
You are my compiler,
My life wouldn’t start without you
You are my loop condition ,
I keep coming back to you
My love to you is like recursive function,
It will never ends & Will never enter into infinite loop
Forever and Ever10 -
Module build failed: Module failed because of a eslint error.
217:15 error 'param' is assigned a value but never used no-unused-vars
Me:
Don't do it
Don't do it
Don't do it
Don't do it
Don't do it
Don't do it
Don't do it
Don't do it
Don't do it
Don't do it
Don't do it
Don't do it
Me:
console.log(param);9 -
My boyfriend, actually. But I value the human aspect more than the tech genius in fairness. He may be no Linus Torvalds but I don't care and wouldn't change him.
Why him?
He's very kind to less experienced developers and always happy to help them. He teaches them not only how to solve things but how to get un-stuck the next time and what to learn.
His code reviews are inside out, not just a quick scan, he gives a chance to learn and takes one for himself too.
He takes pride in delivering great quality, well thought over code, on time.
He owns his mistakes and isn't afraid to admit when he makes them.
He reads a ton of tech books and always learns something new yet stays humble while discussing things he knows a lot about.
He has a ton of hobbies other than coding which he's good at.
Ah there, yeah whatever I'm a big softie today 😋 he's not on DevRant btw. Also sometimes I want to punch him too, but mainly he's a good guy :)5 -
My college organised some interview with a company, with the whole demn class. We went there, it was quite far away (50km) and the CEO invites us to a meeting room.
Where he bores me for 2 hours talking about their projects in argiculture and NSA like spying systems at tankstations.
They were caputuring license plates at gas stations and with that information gather data about the person, such as salary (by looking at their car), house adres ect. All without people knowing. And than targeting them with specific ads and offers.
The class of sheep were super excited but it pissed me off. Because he told it like it was some awesome advancement in technology that none of us could probably ever do.
He was demeaning us, saying we would do some simple wordpress sites there and other things. We are probably not good enough forc te big stuff.
Asking him some really hard questions about his projects made him so pissed he almost wanted to kick me out.
When it was finally over, there was some test that you have to do if you want to work there. If you were good enough at the test, you could!!!! (YEEY)
Uhm, I said; no thank you I dont want to work here.
Later I talked to my classmate and friend who always thinks he's better then everyone in class even tho he barely understands OOP programming. He was asking me if he should try to get the internship. I told him; dont. They have no value for us and they think they are the greatest company on the planet.
The fucking idiot go so pissed, he stopped talking to me alltogether and blocked me everywere. I AM NOT EVEN JOKING. Just because I gave my FUCKING opinon about a company he likes for no reason.
So this idiot does the test (which was fucking simple btw, I did it too and compared the results and I had 95%) He gets invited for another interview and gets told he will be paid 200 euro's per month 😂. and a free meal everyday!! 😪 hahaha . That doesnt even cover commuting costs!
My "friend" told him that the train costs more every day. You know what the CEO said? "Yeah but you can learn so much here the also brings value and you're just a last year student. But I think you are really brave for asking more"
So in the end, he couldnt take the internship and I was fucking right. Really I hate these kinds of companies thinking they are heaven on earth when they are clearly not.
I am happy I told them no before putting my dignity on thd line.14 -
Still trying to get good.
The requirements are forever shifting, and so do the applied paradigms.
I think the first layer is learning about each paradigm.
You learn 5-10 languages/technologies, get a feeling for procedural/functional/OOP programming. You mess around with some electronics engineering, write a bit of assembly. You write an ugly GTK program, an Android todo app, check how OpenGL works. You learn about relational models, about graph databases, time series storage and key value caches. You learn about networking and protocols. You void the warranty of all the devices in your house at some point. You develop preferences for languages and systems. For certain periods of time, you even become an insufferable fanboy who claims that all databases should be replaced by MongoDB, or all applications should be written in C# -- no exceptions in your mind are possible, because you found the Perfect Thing. Temporarily.
Eventually, you get to the second layer: Instead of being a champion for a single cause, you start to see patterns of applicability.
You might have grown to prefer serverless microservice architectures driven by pub/sub event busses, but realize that some MVC framework is probably more suitable for a 5-employee company. You realize that development is not just about picking the best language and best architecture -- It's about pros and cons for every situation. You start to value consistency over hard rules. You realize that even respected books about computer science can sometimes contain lies -- or represent solutions which are only applicable to "spherical cows in a vacuum".
Then you get to the third layer: Which is about orchestrating migrations between paradigms without creating a bigger mess.
Your company started with a tiny MVC webshop written in PHP. There are now 300 employees and a few million lines of code, the framework more often gets in the way than it helps, the database is terribly strained. Big rewrite? Gradual refactor? Introduce new languages within the company or stick with what people know? Educate people about paradigms which might be more suitable, but which will feel unfamiliar? What leads to a better product, someone who is experienced with PHP, or someone just learning to use Typescript?
All that theoretical knowledge about superior paradigms won't help you now -- No clean slates! You have to build a skyscraper city to replace a swamp village while keeping the economy running, together with builders who have no clue what concrete even looks like. You might think "I'll throw my superior engineering against this, no harm done if it doesn't stick", but 9 out of 10 times that will just end in a mix of concrete rubble, corpses and mud.
I think I'm somewhere between 2 and 3.
I think I have most of the important knowledge about a wide array of languages, technologies and architectures.
I think I know how to come to a conclusion about what to use in which scenario -- most of the time.
But dealing with a giant legacy mess, transforming things into something better, without creating an ugly amalgamation of old and new systems blended together into an even bigger abomination? Nah, I don't think I'm fully there yet.8 -
- No I wont give you a ballpark estimate.
- No I wont grab a cup of coffee to discuss your idea
- No I wont check out your existing app/website
I'm a professional and my time is actually what I'm selling. If you want me to spend my time on you then you better spend yours to persuade me.
Send me a brief, your research on competitors, your roadmap, a deck, whatever. I'll probably won't read any of it. But at least I'll now that you you mean business and you value and respect my time.7 -
I would kill all these +1 guys, srsly. I subscribe these threads to know if it will be implemented.
You do not add any value to issue:
* devs are pissed off as this does not help solving problem
* others are pissed off
No one really cares about your likes, really.28 -
Our boss keeps mentioning that the company is good to people who put in long hours and work weekends. We're all salary and there's no extra money on the table; just references to bonuses.
I'm sure when I'm 75 and in hospital with pneumonia, the last thing going through my head will be, "Man, I wished I had worked more hours on that backend for the app for that fast food company that gives the world diabetes."
The company can't give me summer back. It can't give me a 30C day in the middle of the winter. Even asking employees to work long hours and on weekends constantly is a sign of poor management, poor planning and the inability to value people's individual time.7 -
Real life job interview…
Manager: what about this problem? Could you solve it? (Showing me a problem about scanning a 2d array to find a value written on a piece of paper)
Me: sure! Just give me a piece of paper and I will write a solution.
Manager: no need for that. I don’t have the knowledge to check that anyway… if I wanted you to solve it I would have called one of my programmers.
…
Manager: do you have any question about the company?
Me: What do you exactly do in the company? I wonder what is the purpose of a person that makes questions about things he doesn’t know.3 -
I'm one of those people who have literally no value of education and skills between family members, yes as soon they hear I'm doing bachelors in computers they all come too me with *Can you please fix my phone*
But today a letter came it was from devRant and it had stickers for me, my uncle received the letter and you can't imagine how surprised he was and asked me who sent me letter from NY, I explained him that we are an awesome community and this letter is just a way to motivate us. It's the first time something come for me and even tho it's just some stickers but meant alot to me.
Thankyou devRant and the community for making me feel this awesome 😊7 -
No matter how much product owners claim "bugs have priority over anything else", "we value high quality structured code", and "we do test driven development"...
...Once a big client wants a feature to be developed before they sign up, dirty code will be written from napkin specs, and that code will always be refractored "soon".4 -
If you're gonna comment a lot or a little, at least be consistent. I just read some code like this:
//prints "are you ready?"
printf("are you ready?");
//get the value
int findVal(int x) {
/* some fucking complex algorithm with no comments whatsoever that seems to have an error messing everything up */
}10 -
Girlfriend had issue with her Python code (she does mathmatics, not actual programming):
```
t = 51.74636335135748
i = int(t*100) // 5174, wrong value
```
instead of
```
t = 51.74636335135748
i = int(t)*100 // 5000, right value...
```
She asked me if I could fix it for her.
I found the issue but wanted her to understand what went wrong.
She didn't care "because she didn't have time for it".
Well, then it's quite simple for me: I have no time to help her :^)7 -
Well on my first job we had to integrate payment gateways in client apps for online payment. On my second week in office I published an app on the play store with payment gateway credentials for a different client cause they were there as default values. So the money for one client would go to the other. Nobody noticed it for two weeks and when they did, I thought I had just lost my job and also I would now have to pay all the losses out of my pocket but fortunately I didn't have to cause no transactions had yet been made. After that I always checked my integrations atleast five times before publishing. The incident scared the shit out of me but taught me the value of developer responsibility.2
-
Rather than singling out one person, I wanna present what I see as incompetent/stupid/ignorant:
- no will to learn
- failure to follow the very specific instructions & later asking for help when they FUBR sth & not even knowing what they did to fuck up in the first place
- asking how to solve stuff, then ignoring the suggestions & doing sth totally against recommendations
- failure to remember most basic stuff, especially if not writing it down to look at later when needed
- failure to check logs & 'google' stuff before asking why something isn't working the way they want it
- after two weeks, asking me how feature xy works, mind you they coded it, not me
- asking me why they did something in a specific way - WTF, am I a mind reader?! Who designed that crap?! Me or you?!!
- being passive/aggressive & snarky when told to do something or being asked why isn't it done already
- not testing their shit properly
- not making backups when upgrading (production) servers
- not checking the input value, no validation.. even after many many debacles on production with null ref exceptions
- failure to admit they fucked up
- not learning from (their) mistakes8 -
That you if you cant solve a problem on paper you can't solve it in the real world.
But seriously coding gave me a voice, I was a seriously smart kid, but I was also a dirty orphaned dropout.
Everyones worth in this world is measured on a piece of paper and mine was blank. I was just seen as some overly ambitious kid spinning fairy tales and crackpot theories because no one could understand what the ideas value was or didn't try because of my age and cv, then I taught myself to code.
All of a sudden my theories were provable and I had a way of delivering them to not just one but millions of people in a way that they could understand and interact with them.My whole life changed and the day I wrote my first program was the last day I was ever judged by a piece of paper. -
So my in-laws got a new computer 😑
Yup you know where this is going. Ok so after I transferred all of their data set them all up etc.
They wanted to use "word" and could I set it up for free for them. I said no Microsoft office is not free you lost your license and disk and your old computer is trashed so the better choice would be Google services . So I explained the value of using Google drive, docs,sheets etc.. today and told them how much better it is everything would be on their Google drive so if I got hit by a bus they could get a new computer again and still have access to their data etc... So they said great and so I did.
Two weeks later... Can you set up word for us on our computer. Me annoyed at this point " sure no problem"
I made a shortcut on their desktop to Google docs. Them: oh boy this is great see John all you have to do is click on google docs to go to word! Thanks so much!
🤫🤓5 -
This one time I developed some useful plugins and a command line interface for the platform we built at work.
Then when it was done I thought it had some good value so I created a pull request to donate it to the platform. That same day I got 3 complaints that my pull request did not conform to conventions and that there was no ticket for it and they complained about the fact that it made their jobs harder.
It was in fact the last time I developed something for work in my spare time.1 -
My current boss' boss. Dude has my back, no questions asked. If I mess up, he backs me up to the customer and then teaches me the right way behind the scenes. Even stands up for me when i'm not around.
He's helped me change my lifestyle, too, connecting me with trainers and coaches who can help develop a workout plan around my one hand. He understands the value of work/life balance, but has no power to change our schedule, so he helps out however he can around that.
He is honestly #bossgoals. I want to be like him when i'm a boss2 -
Dear Product owners / Company Owners / Whoever requesting a feature:
Devs like to know they are adding value to whatever product they are working on. Every time you request a stupid no value added request, you kick the dev's soul.
After several hits the developer will stop caring about the software and eventually will get the job done, but oh boy, the amount of tech debt/trash code the dev is gonna leave behind will be horrendous.
Then the next developer, not only takes the hit from another stupid request, he/she will see the crappy code the past sad developer left and will take a double hit. Of course all of them start proactive and try to fix previous blood trails but sadness will catch them eventually.
If you want you're apps/products/reports to be good in a long run don't make stupid requests.
BAs, Stop being Expensive Email Forwarders and challenge a request, understand the process and then hand it to the developer.
Us developers are sensible cute ponies. Treat us well or expect poor quality projects8 -
Life as a homeless developer.
I'm a lil brainsick but homelessness makes you that way.
I started writing software as a hedge against an old injury i had from my teen years. I have a unique condition leaving me with limited use of my hand as such any jobs like cashier call center and they like are of limits to me, i can't hold change because my hands don't bend flat, and to much typing is excruciating. Therefore being adev should get the most bang for the buck that I have left. Ive been doing this for 12 years. Well it's all bullshit and unicorns. I can't get a job to save my life. All i get is calls from recruiters wanting a full stack retard. I'm an erlang developer for about 5 years, c# php no i can't do Photoshop or frontend gay as colors because it's a different skillet. Oh but trumpy says we're at the lowest unemployment ever, ya because we're all homeless and companies are still looking for unicorns, they don't exist just like the fake jobs which is the real fake news. In reality if a company wants you its because their dev left and you are to fix their broken shit, which never worked in the first place thus cannot be fixed besides I'm not a plumber. In my opinion many companies nowadays are run by liberal sjw children who don't value your time but want the product now, spoilt. Recruiters are the worst, gimme money because i touched your resume. I'd rather just kill myself than try to appease some fucking retarded children. Its so awesome to live in a tunnel while my skills entropy while i have 160 self published github repos, know many programming languages and be told your have no value. its those same children that dont understand the flow of money or value loyalty, claim we have all these jobs but no skillid employees, so they can bring in more visa overstayers, underpay them and claim record profits, the more you pay forieners my countries money the less there is to go around in the society leading to disenfranchised people like me, and you wonder why there's so many shootings in il. How long can i endure homelessness before i start becoming a criminal? Soon i will have no other option. You employers had a choice but I'm going out with a bang.25 -
They've literally left me with nothing to do. I'm doing nothing. I can't be happy doing nothing.
To illustrate the chaos: Everyone on the team was trying to figure out some defect. No one knows what is going on in the code. It's unlike anything I've ever seen.
I found an API call with a misspelled endpoint. It was wrong since the code was written two months before. There's no way it ever worked. Obviously no one tested the code because they would have immediately seen that the call returned a 404 every time.
I fixed it. That was my only PR in about a month. It was literally one character.
The next week that PR got reverted. Apparently the app works better if the API call fails. No one said what goes wrong if the request is made, just that it "causes problems."
That's how bad it is. No one knows why anything does or doesn't work. People write code that doesn't work, never test it, and the application works better in some unspecified way if that code never gets executed.
The last straw for me was when an architect told us that if we want to improve our skills we need to learn how to read and debug stuff like this.
1) Not to be immodest, but I'm good at figuring out bad code.
2) Just because I can doesn't mean I want to do it all day instead of actually developing software
3) He trivialized the really important skill, not making a mess like this in the first place. If his idea of skill is to sling crap without tests at the wall and then debug it, how is he an architect?
I tried really hard but I can't keep a good attitude. I don't want to become toxic, but why would I consider working that way? I try my best to be good at this. Writing decent code means a lot to me. It should mean a lot to them. Their code is costing them hundreds of thousands of dollars. Maybe millions.
I can't write good code and add value if all I do is debug bad code.
So I'm out. I'm going to another project. Have a nice life.4 -
>>>> Followed link to a post
* Do you Accept Cookies?: Yes
* Our customer supports online: Okay, I know
* Subscribe to Newsletters?: Click Click Accept
* Website wants to turn on Notification?: Okay
* Seen Our New Product?: No, not today
* We require you to be over 18?: Yes, I am
* We value your privacy?: I Agree
* Looks like you're using ad-Blocker?: Turn Off
* Don't forget to follow us on...: Okay!!! I get it already, just show me the f*cking post!
* What next
***** 1 million ads appear around a single post broken to bits having (1-2-3-4-5-6-7-8-9 next>>) *****
Just wondering who invented this money making strategy.8 -
Does linux suck? Imho, Yes.
A lot of the people bash windows regarding automatic restarts, updates, bsod etc.
I may be unusually lucky, but the last bsod I saw was in 2014 because of a faulty synaptics driver.
I've really tried to use linux to see what the hype is all about. Quite frankly, it sucked. The first time it wiped out all my data, I realized the value of backups. Hence I do not have a single pic of my school now, thanks to complicated ubuntu mounting.
Next is driver support. When I plug in a device, I expect it to work. I don't want to spend a day googling for drivers.
Why the fuck would I want to use a black terminal which gives me a headache. Am I in 1980? Which sadistic asshole designed vim ?
I have seen linux developers who claim to be linux experts and love linux. They take so long to do simple shit. For god's sake don't tell me there are GUI versions of linux available. I'd rather work in windows 95.
Why in the world would anyone want to use ls to see the contents of a directory! It is seriously so fucking unproductive.
I can't just download a software, click next a couple of times, and be done. No no no. I've to do sudo apt get update. Then try to find the fucking package. And if all goes well, there's always the dependency issue which is going to bite me in the ass. If google and stackoverflow go down, most linux devs will die a cruel death.
Fuck you linux.
I'm not saying windows 10 is the best, but at least I don't have to crawl through shit to use it. If you don't like automatic updates, disable it you moron. It is easier than renaming a damn file in linux.57 -
Bit of an essay. TLDR: come Monday I'm either getting fired or promoted. And the CTO is a dickhead. If you think you work with me or know who I am, no you don't, shut the hell up.
Was having a discussion with my team, went on for a bit, at one point my manager mentioned that the CTO wanted me to go into the office occasionally, same thing I've had since I joined when they literally wanted me to move hundreds of miles to be close to the office mid covid when the office was closed. I give a nondescript answer. He's a bit more persistent, I snap a little but the conversation moves on. Discussion of company and team dynamics, at one point he makes a comment about people at another company being told if they don't go into the office they won't be eligible for promotion.
I ask everyone else on the call to leave.
I point out that 2 years ago me and him were interviewing candidates. He on a few occasions introduces me to candidates as a _senior_ engineer. My job title does not contain the word senior. I let it slide the first time, not worth it for a slip of the toung. Happens a couple more times, I take him aside and privately point out my job title does not contain the word senior. He says he didn't realise and thought I was.
My take away then: I'm expected to do the work of a senior without being paid for it and without being given the acknowledgement of the appropriate job title. I remind him of this. My job title hasn't changed. Fuck, I took a low ball offer when I joined and have had a minimal pay rise in like, 3 years. My tone is "not happy".
His response? He discussed promoting me with CTO however budged constraints. I somewhat understand, however.
We have promoted several people in the last few years. We have grown by hiring new people in the last few years (5 in a company of 30). There are ways to compensate someone in ways that do not impact day to day budget (shares, TC, total compensation, is normal terminology in the tech field for this). I ask why the hell should I travel a few hundred miles to the office to get get to know people, put effort in to a company that demonstrably doesn't value me? Particularly as all levels of management have completely failed at developing a social atmosphere during covid? My first month, I had 3 5 minute meetings with my manager a week. That was all of the communication I had with people. I literally complained and laid out what they should do instead, they adopted most of it.
I also ask him if he genuinely thinks being here is in my professional interest? My tone has well passed pissed off.
I will say, I actually quite like my manager, we have a good working relationship and I've learned a lot from him.
He makes some mediocre points, tries to give advice about value of shares. To me, the value of shares is zero until they are money. The value to the company, however, is that it's a sizeable chunk on their balance sheet and shares sheet that they have to be willing to justify. If I wanted money, I'd go work at a high frequency trading bank and make 5x what I'm on now. No joke, that's what they pay, I could get a job, came close in the past but went to amazon. He understands.
He says will discuss with CTO. They were on a call for like an hour. His tone has changed to "you will be promoted ASAP, comp may be structured as discussed". Point made.
I'm in this job because it's convenient, is easy for me. Was originally lower challenge than previous, has a range of chances to learn and _that's_ the value to me. He's suitably nervous.
Point made I think.
So given I swore a few times, at least once about the CTO. Interesting to see how it goes.
Message from him to the effect that he spoke to CTO, has been told to write a proposal for promotion (kinda standard), will discuss with HR on Monday as they're on holiday.
So, maybe not getting fired today?
Blood pressure still very high.10 -
My preciousssss!!
Fucking assholes! Just spent 3h debugging for bugs that weren't there.. Our client insisted we must rollback the whole update, because gui was broken.. after analysing data & testing I figure out that there must be something 'wrong' as there was no data to copy from in the first place...so there should be no bug..
Aaand here goes the best part: they didn't want to point out missing data bug, they just wanted one restriction to be removed, because it 'broke GUI', to allow for empty value on save... WTF?! How can you insist that gui is buggy & that you don't want an update, if you just want something to be optional?! Which was done immediately, one change in one js file?! Dafaaaaaq?!
Kids, English is important!! Otherwise you end up debugging ghosts for 3+ hours withou a cigarette...and waking up a coworker with bad news of rollback at half to midnight... Aaaaaaaargh!!!
сука блять27 -
I hate people who don't value transparent and assertive communication. I'm saying this thinking about an specific client.
This client is a boss of Web agency, and has some contractors working on their projects. I worked for them for a year, doing Web projects from scratch and also maintenance.
Then, one week, the communication stopped. No answers, no feedback, nothing. For months. They ghosted me.
I tried contact a few times with no luck. After 3 months, they started to remove me from slack, git, base camp.
And that's it. I was discarded and it seems I don't even deserved a message to be aware of that.
I don't mind to end business relationship anytime, for any reason. There are lot of reasons a working relationship would not work, and that's OK. We should have partners that are a great fit for us.
But at least say it. Ghosting is something ridiculous and unethical.5 -
So one day on tech huddle my tech lead got frustrated, don't know why and told me - "the tasks you're doing can be done by interns"
I felt bad. Ofcourse I was putting my 100%.
That day I decided to put the resignation. I didn't discussed with anyone about it and sent the resignation email directly.
After serving 2 months of notice period I was able to land a better job successfully!
I called the lead on the last working day in that company and shared him the news about my offer letter and a little about the company.
His first question was - "Did you cleared all the interview process?"
In my mind - "That's only why I'm sharing the news here with you man! Stop thinking of me as a noob."
I replied with - "yes, if needed/the new company try to get feedback about me then please be honest atleast there by keeping your ego aside."
You shouldn't pull someone's leg if you aren't able to climb higher!!
Lesson I learnt;
DON'T STAY AT A PLACE WHERE THERE'S NO VALUE OF YOUR WORK AND THE DEDICATION TOWARDS IT!
Working in a startup isn't that easy, mostly for those where there's no work life balance.2 -
After 'Dev' deployed a service using Azure ServiceBus, a particular queue/client was receiving errors.
Dev: "Looking at the logs, client is getting faulted."
Me: 'What is the error being logged?'
Dev: 'Client is faulted'
Me: 'No, that is our error when the client is either unable to connect or there is an exception in the middle of sending a message. What is the exception from Azure?'
Dev: 'Client is faulted. That's it. I'm going to have to re-engineer the code to implement a retry policy.'
<OK, I smell someone cooking up some solution finding, so I dig into the logs a little further>
Me: "Looks like an invalid connection string. The actual exception being thrown and logged is from the Azure client connection string builder. The value cannot be null."
Dev: "No, I'm looking right at the connection string in the config. Looks fine."
Me: "Looks correct on your machine, but what is actually being deployed to the server?"
<I could tell he was getting agitated>
<Dev clicks around, about 10 min. later>
Dev: "Aha!..I found it. The connection string in the config on the main branch is wrong, in fact, the entry is missing."
<dev fixes, re-deploys, life is good, I document the error and the root cause>
Boss: "Great job Dev."
*sigh* ..go teamwork?3 -
Omg so I've been stuck on this function I'm writing that checks if a certain array value is so many characters long and well, it just wasnt returning false when outside the conditions..
I tried taking it step by step, echoing out every line and it all made sense to me and there were no syntax errors.
Time goes by and inside the configuration file I was testing.. I was changing the value of a DIFFERENT array property than what I was using in my condition. They looked really similar.. fml xD2 -
// Snippet
if(isUsingEdgeOrIE(window.navigator.userAgent)){
window.location.assign("https://google.com/chrome/browser/");
}
*sigh*
People laugh at it when you say Internet Explorer is a Pain in the *ss to develop for, because they think it's just a cliché or some sort and think it's not that bad.. but no .. really.. F*ck IE.. :D It f*cked me over so many times..
"Oh Hey, I don't recognize this basic html attribute value you are using, so I'm not going to report an error in the console or so, ima let you search, sweat, get angry, .. Oh Hey, you're not using the right doctype? Let me crash your entire javascript functionality, .. Oh Hey, this CSS selector? I never heard of it.. "8 -
Continuation of https://devrant.com/rants/642962/...
You are the decryption key to my encryption,
No one can access my heart except you.
You are the loop in my life,
I always keep coming back to you.
You are my nodemon,
You are always watching over me.
You are the / to everything I do,
Am nothing without you and I will always preserve you.
You are my increment operator,
You add value to my life.
To be continued 😉3 -
I really hate fucking Wordpress!
I hate it's stupid API, with it's stupid hooks and actions and all those stupid functions and no fucking logic to any of it!
I hate it's stupid plugin system, with all that fucking overhead that brings no real value and adds all that complexity for nothing!
I hate stupid fucking multiple calls for the same fucking assets, loading them over and over again because every stupid plugin calls them again and again!
I hate motherfucking SHORTTAGS, or whatever the fuck they are called!
I hate that every stupid fucking plugin and shortcode and fucking every little fucking piece of HTML comes from a different fucking place, with different fucking structure and different fucking classes and stupid fucking loading seaquences that make no fucking sense!
And I hate fucking page builders !!!!!
Fuck!!!!
I should be fucking coding on this fucking peace of shit, but I just cannot fucking take it any more!!!
IT NEEDS TO FUCKING DIE!
It should be relegated to the darkest corners of the internet and all the servers that have it's fucking code anyware on their systems should be disconnected and buried in the deepest pits of hell, just to be sure it never, EVER, surfaces again!!!
AAARRRRGGGHHHHHHH !!!!!!!!!5 -
Feels like I found value of "NAN"
i.e, finding non-ranter dev @ devrant!
"Write no rant
Comment no rant
++(view) all rant "
@Ghored
I guess he should be given a badge or something!
Never able to achieve that stage of satisfaction,
Bsod in windows,
Grub rescue for Linux,
Gradle build problem for android,
404 errors,
What not ?
Yet I really feel like today , I met a ironical legend of dev community!
A full bow to you my friend4 -
When you trying to develop a site, you change some CSS, refresh the localhost and it doesn't update. You try changing that CSS value to something more noticeable to see if you're just imagining things. But no, it's your browser cache. Clear it.2
-
In a test software that I'm working on, there is a variable at the very beginning which has a comment "Don't change this variable!".
Hidden within the code is function to check the value. If the test user change it, a giant ಠ_ಠ appears on the screen.
No one will complain, but I can hear the gasps and the sudden chair movements... 😈1 -
1. Hit everything you do. You will learn more faster. Don't accept things at face value, care about why things work.
2. Study and experiment constantly. Be aware of your surroundings and what is going on. If you're not ready with a solution when a power vacuum appears, you will always be a grunt. Or worse, eventually a manager who everyone hates because you constantly tell the people who report to you how "back in your day," your code was amazing, there were no bugs and your shit doesn't stink.
3. Be honest with yourself: If you just want to keep your nose to the grindstone and make manager so you don't have to code anymore:
Quit. Stop now. Do not pass go, do not become a cancer on the industry.
Go get a job as a PM, you'll have a better career and you won't be the weak link holding everyone else back.
Tl;dr When the shit goes down, you better be ready.1 -
Another project with legacy code got just dusted off at work. Shits fucked beyond recognition! We got:
- Rando variable names that mean nothing
- Timers running with a cycle time of 2.5ms if you start them with the multiplier 1.
- An Interrupt routine thats 300 lines long.
- Another interrupt thats starting an ADC conversion and waiting for it to complete before returning.
- For loops that start with one and subtract one from the iterator in the loop
- Every value that would normally be expressed as a regular number is written down in Hex. Eg: if(val==0x05)
- State machine built without writing down which state is which. Its just a number. (In hex obviously!)
- All running on a Microcontroller you cant debug on.
- Using a compiler no one has ever heard of before.
- Weird ass Port manipulations
- 15 different .hex and .elf files with no clue whats in them.
- No version control
- We tried explaining the code to a monkey and it hanged itself.10 -
The only serious, as in customer affecting, bug I never git fixed was an indexing bug that caused an exception requiring manual intervention by one of us.
Despite going at it for many years I never found the root cause before I left the company.
The reason it was so difficult was that it only occurred every second month or less and with different customers.
It was also not triggering directly when the error occurred but a while later once the error had caused accumulated errors until one value got negative.
Also, it was a combination SQL, backend code and frontend js and the time from initial error until an invalid value could be hours, days or even weeks.
And we never ever managed to replicate it our self and found no common pattern between occasions.
We think it was some kind of race condition when updating the db that caused duplicate values or a hole in the index series (db transaction or db index was not an option for various reason that would require a redesign of the central tables and most if the central code).
This then grew into multiple error on consecutive updates until one f them resulted in a negative number that then caused a regex in js to fail.2 -
Devs : Lets pick library X, it is well know piece of open source technology, actively maintained by community for over 10 years.
Architect : NAH, it is an overkill to use it in our project , lets build our own solution.
*2 Months later*
The code base is hundreds of thousands lines of code, we basically started to look at library X on GitHub to copy features or get inspiration from that code. In that time we delivered 0 business value, it is horrible to use it and we constantly adding something or bugfixing because no one thought about something in first place.1 -
Fucking Amazon rant again...
TLDR: Amazon specializes in “the last mile”. They are repeatedly allowing a 3rd party shipper (Purolator) destroy their main value proposition. Thoughts at the end.
Me on the phone with their support...
Me: so it says my package was attempted to be delivered today. I did not get a call or notification or anything and I have been working from home all day to wait for the package.
Support: -Sigh- yes, I can see it was Purolator we have been having trouble with them lately.
Me: ok, so are you able to see what happened?
Support: let me put you on hold.
.......
Support: So they said they will not call for a delivery, did they use your building buzzer?
Me: Nope, just stood outside the building and then left I guess.
Support: -sigh- Well you can pick it up at their depot. Let me get you the address.
Me: The one by the airport?
Support: Yes it looks like it is about an hour away from where you are. And they are only open during work hours.
Me: So, after working from home to get this package you advice is to take 3 hours off work and go there to pick it up?
Support: Well, we can refund it? If thats what you want.
Me: No, I would like the package I ordered please.
Support: There is nothing I can do sir.
Me: So before I hang up let me see if I have it straight. When I order a package from Amazon, do I have an option of who ships it?
Support: No, I’m sorry but that is decided on our end.
Me: And I have had this problem before with this shipping agent. So, your telling me that when I ship things to me with Amazon that I have no control of wether I even get the package? Your telling me it is literally a coin toss as to wether or not I ever get my package?
Support: yes sir, I’m sorry but that is all I can do.
Me: So you realize that, for example, if I went to my local grocery store and it was a coin toss that I could take my groceries home (even after I paid for them) then I will always go to another store....
Support: yes, I know. There is nothing I can do.
Me: So from now on I have to order items, wait for them to be shipped, check the shipper and then cancel the order of it is them?
Support: -sigh- you cannot cancel an order after it has shipped...
Me: wow. Sure is great being a prime and audible member. I get fast delivery of 50% of my packages and no delivery at all of the other 50%. Sorry for the sarcasm...
Support: I’m sorry I can’t help more.
Me: So just to clarify. I can expect NOT to get the package I ordered?
Support: sorry
Me: have a nice day.
————
Here are my thoughts as a student of business...
Amazon specializes in “the last mile” (in their delivery service anyway) and when they deliver the package they also deliver on that value proposition.
However, now it seems that one of their shipping providers is failing at getting packages that last mile, which is resulting and destroying the idea of their value proposition in a customers eyes. (Affecting more than me as the rep said)
Now, instead of believing that Amazon will get things to me, saving me that last mile trip to the store etc., I firmly believe that it is a toss up as to wether I will ever receive my package (based on carrier)
I know that if I was in Amazon’s position (a carrier hurting my overall value proposition with consistently unacceptable service) that I would come down on them with a force they have never seen or drop them entirely.
But of course, every company reaches a point where they have such market share and sway that they take their eye off the ball when it comes to their value proposition to customers.16 -
I just had a chat with the CEO (I'll call him John) of the company I work at. I was trying to get a real alignment on what I need to do to be a valuable resource to this company. They promoted me (without a raise in pay) to a different (management) role, and I do not know what I need to do to be the best in this role.
During the discussion, the CEO failed to provide any usable metrics, or a way to track those, except for phrases like "higher productivity" and "higher quality". How to track? No idea.
So, at this point, me being the idiot I am, wanted to make things explicit:
*Me: Okay, so what if I request for a 20% raise six months from now, what metrics will you look at to decide whether to give me the raise.
(My last raise was a big one, more than 100% or so, more than a year ago. That was a dev role, and I was paid 2 cents earlier, so the doubling to 4 cents wasn't really a big deal.)
John went on a long rant on how people just expect raises every year, inflation, etc. All good and fine.
But then he mentioned something strange.
*John: ...and you know, for the last three years, there has been a race to retain resources. During this race, many companies, including us, had to pay people WAY MORE THAN THEIR VALUE to retain them. These people are going to be the first to be fired during cost-cutting as they are the most expensive resources at the company without any proven value. These people should not expect raises to come soon, and if they do expect that, they need to prove the value themselves.
Now, I, being a simpleton, am wondering how is it fair for an organization to pay someone "more than their value" to retain them once so that they can just be fired two years later. How did the company decide the value of such employees to begin with?
And all this is ignoring the fact that in the company there are no metrics, no KPIs, and performance of a person is how much the CEO likes that guy. How TF the people who joined a year ago and never interacted with the CEO prove their worth?
Developers are building PowerPoints and configuring JIRA/Confluence/Laptops of Sales team, project managers are delegating management to developers and decision-making to the CEO, Technical architect is building requirements documents, Business Analyst is the same person as the QA team lead (and badly stretched), and the Release Manager is the Product Technical Admin that cannot write one sentence in English. And then we got 3.8 hours in meetings every DAY. Why TF are Dev Managers in "QA KPI Meeting"? Why are "developers" writing documentation on "How to create meeting notes at <company>"?
And, in this hell-storm, how does one really demonstrate one's value?14 -
What grinds my gears:
IEEE-754
This, to me, seems retarded.
Take the value 0.931 for example.
Its represented in binary as
00111111011011100101011000000100
See those last three bits? Well, it causes it to
come out in decimal like so:
0.93099999~
Which because bankers rounding is nowstandard, that actually works out to 0.930, because with bankers rounding, we round to the nearest even number? Makes sense? No. Anyone asked for it? No (well maybe the banks). Was it even necessary? Fuck no. But did we get it anyway?
Yes.
And worse, thats not even the most accurate way to represent
our value of 0.931 owing to how fucked up rounding now is becaue everything has to be pure shit these days.
A better representation would be
00111101101111101010101100110111 <- good
00111111011011100101011000000100 < - shit
The new representation works out to
0.093100004
or 0.093100003898143768310546875 when represented internally.
Whats this mean? Because of rounding you don't lose accuracy anymore.
Am I mistaken, or is IEEE-754 shit?4 -
Alright, I'm grown up enough to admit it publicly: I DON'T LIKE GOING OUT TO PUBS OR OTHER DRINKING PLACES. Even if it's to take a company guest out for the night. Or a teambuilding. I don't care. If you're gonna meet up just to sip booze and talk about stuff, I won't be there.
It's boring
it's pointless
it means a shitty next day
it means a shitty rest of the evening [booze messing up sharpness of mind, no driving, etc]
it doesn't bring any value
it's not fun and it sure is not my cup of tea
taking the guest to play golf - sure. Take him to a range - blasts of fun! Horse riding - absolutely. Go-carts - hell yeah! Basicaly doing ANYTHING but sitting, getting dizzy, slowly losing control of my body and thoughts and sharing that experience with someone is a better way to take a guest/client out or have a teambuilding.
DO something. Not just sit and drink and slowly get stupider in front of someone.11 -
Rant. (I love and respect all people! Especially developers.)
You frontend imbecils! I just can’t deal with you any more. I’ve had it.
Stop-inventing-new-components-where-there-are-fully-developed-and-working-concepts!
I mean. Just fucking stop! If I see another worthless datetime picker with an ”innovative” design I am going to hunt you down and freaking scream in your face.
And make fucking buttons look like tappable/clickable. It’s not fucking hard! Imbecils.
Oh, ooo, look at me, I am a frontend developer and I am in UX la-la land and what I am doing is sooo hard. Fuck off with your fucking moving gradients and n:th-child childish playground.
”Yeah, I exchanged the spinner…”
Fuck you. Your not contributing. Nobody cares! We’re not doing anything for the business by having a web which can be seen on a fucking telephone. EVERYBODY IS SITTING WITH SEVERAL GIANT MONITORS AND A FUCKING WORKSTATION FOR THIS. NOBODY ASKED FOR IT. AND YOU SPEND COUNTLESS HOURS ON IT.
”Yeah, I made the site work on ipad”
Please. Why? It’s not worth anything. Zero value.
”Yeah, the toggle component is now changed since we started to use the biddle-flipflup lib and it works almost the same”
No! NO! It does not work ”almost” the same. The psychology of the toggle is now wastly different. What was On before now looks like Off and it is fucking worse!!!
Imbecils. I hate you.
And no, I can’t do your fucking work! And I know that you do other non-ui stuff as well sometimes… but anyway… I have no interest to be in that clusterfuck that modern frontend is today. It was really fucking bad twenty years ago and it is just as bad today and you are not helping.
”I’ve improved the button so now it aaaaalmost does not look like a button. But I am getting there!”
Fuck you.14 -
i HATE snake oil idiot types
red flags:
- "interested" in tech but have no programming experience or knowledge, no real work experience
- they claim they can provide assistance and guidance to people in machine learning!!!! 😂😂😂😂😂😂
- private instagram, weird
- spent all their money on their instagram profile picture, looks like those dumb finance gurus with a lambo
- is, in reality, unemployed
what value do you provide to society?
really its just people who are good at talking and can convince other people of equal or lower (not higher) intelligence but not really can't DO anything
and they wonder why so many companies fail
what a fucking joke i hate you
its really not just annoying its immoral - and thats the part i despise so much
grow up, put in some work, and be valuable to society5 -
css quick maffs
so you did this:
.foo:hover {
transform: scale(1.1);
}
and now ugly scrollbar is there when the element is scaled.
No, don't do overflow: hidden. There's a better way. Instead, do this:
.container {
padding: 1rem;
box-sizing: border-box;
}
the element total width is calculated based on the width of its content. That's true unless you specified width and height explicitly (if you did so, you're a doofus, I'm sorry).
Scaling makes content somewhat larger. With border-box, paddings work differently with the total width.
By default, if you set width to say 100px, and paddings are 20px, total width will be 140px — it's your 100px of content plus two paddings of 20px. width property set the width of the content, not the total width.
With border-box, width property sets the total width. So if you set width to 100px and paddings to 20px, total width would be 100px, just like you set it, and content will be 60px wide — it's 100px minus 20px times two.
The key part is it doesn't end with explicit width. The algorithm remains. When some node is rendered, its total width is calculated. When you use border-box, the total width will stay the same even if your content grows by some value that is less than your paddings. So, your content was 100px, you scaled it, and it became 110px. Well, then that extra 10px will be subtracted from your paddings, and they will be 15px each instead of 20px.
No more ugly scroll bar. Yaaay!
aight bye8 -
Have a function that takes parameters and then performs a switch statement to determine what function to call next with those same parameters. One of those parameters is a Union type.
During CR, my reviewer said they’d like if instead of returning the function per case, I instead assigned a handler to the value of the function per case and then returned that handler at the end of the switch. Simple change, right? Only snafu, I’m casting one of the parameters on a per-case basis.
Somehow, through no fucking change of my own, TypeScript in its wisdom has decided that the type of that value by the time I call the next function is a fucking Intersection.
WHY THE FUCK DO YOU THINK IT’S AN INTERSECTION?! I’m fucking casting it per case! I’m ensuring it’s the right type for the next function called on a per case basis!
…. And that, my friends, is how I wasted a day with a stupid refactor that was ultimately just scrapped because no one could figure out how to make it work.
Goddamn fucking TypeScript. I3 -
We are now in a full swing enshittification of the entire internet. Almost no companies are interested in providing any value, it's the phase of securing the position between those that provide value and clients - and just collecting rents. Capture enough of the market, milk the product and the client, turn the service into shit while charging progressively more until it all burns and crashes. And then, well, pass go, collect $200, rinse and repeat.6
-
So I had this conversation with my boss yesterday...
Me: Hey, I found this bug in the other team's code that has a major impact on what we're trying to do. Can you ask them to look into it?
Boss: No, I don't want to be the one who has to tell them there's a major bug in their code. Find a workaround.
M: But... It isn't really a major bug, it just has a big impact on our side of things.
B: Workaround!
Fuck bosses who value how they think they look to other devs over a day of my time. Fuck.4 -
The saying "Perfect is the enemy of done" is so much BS.
The war on perfection is the enemy of artistic expression.
Look at old world architecture vs modern crap. Crafts are no longer a thing but stuff is only made as effeciently as it can be for the greedy and impatient.
The artists and craftsmen of old knew well that perfect was achievable and constantly strove to be more and more perfect in their arts and by side effect on themselves. In this mad world we've lost that to the pragmatists who see no value in the art of perfection or in those who do not value those who do.
The "doneists" can go fuck themselves. Perfectionism is where true artistic expression is at.14 -
Might be more of a self-rant.. We’re developing an application with token-based authentication.
It’s a big an complex authentication model and flow, which we wrapped up a month ago. All of us very proud of it.
All of a sudden none of it worked.
We debugged for days, there were no errors or anything to trace what was happening.
Today we realized that we set the expiration of the token to 20 years.
Aaaand the expiration time is later on converted to epoch.
Guess what happens when you try to use a value > 2 147 483 647 in C#? Stuff blows up, cuz that’s the limit of an int32.
So yeah, feels good having prepared for the Y2K38 bug already, even though we’ll be replaced by AI writing better software than my dumb ass by then.
(To be fair, it was hidden in Microsoft Owin, which could use some error handling and/or proper messages..) -
Really now?
AWS, #1 cloud provider with their #1 cloud database DynamoDB, all shiny, highly dynamic NoSQL, your data schema could change any second...
then DynamoDB errors out when one of your values is an empty string? {"foo":""} is impossible to store?
Like nobody ever saw or used empty strings a a value or what? There are tons of upvotes to fix this.
I just have to imagine the Product owner standing there: "No,no,no. They are just using it wrong if their data has empty strings as value. Won't fix!"4 -
Let's say you have a MySQL database table for jobs. Each job has 1 associated ticket. You want to keep track if the ticket is closed or not. Every sane person creates jobs table, tickets table, keeps bool value for ticket state and relationship between them.
But because our database is designed by a half braindead amoeba, we have one table only, so each job has to be updated individually with a new ticket number and its state. Beacuse it sooo much faster to update (daily!) 13k jobs than just 100 tickets.
As a bonus - if the ticked is closed, the column "ticket_closed" is "No", if it's still open the value is "FALSE". Yes, both as varchar/strings.7 -
Short rant.
My company isn't doing well because of the pandemic. I and several of my well deserving colleagues have not only been put on hold for promotions we were promised, but we will be taking a pay cut department wide.
THEN we get introduced to not one, but TWO new contractors we will now be working with. Additions to my department. Because we have "headcount".
I'm absolutely livid. Someone please explain how we have the money to pay for contractors (senior level) yet we don't have the money to promote or properly pay our existing folk.?? My department is extremely domain knowledge heavy, so I see little to no value in ADDING outside folks, especially when projects are getting cut.10 -
!dev
I used to read.. A lot. Long and complicated stories, where the plot would only unveil itself after a long time. I used to dig myself into a book, learning about the writer's thoughts and mental image, reflecting on our differing viewpoints on the question at hand. I didn't expect action or beauty, merely thoughts which, by themselves, constitued a value to me.
But pulp and especially social media had lowered my attention span to the point that even reading through a short story without getting sidetracked takes a lot of effort. I still value what I used to value, the only thing that's changed is that I no longer have the patience and I feel discomfort due to the lack of sensations.
What do I do? Had anyone solved this problem before?4 -
My boss has been begging me migrate a nightmarish complex excel report he made to calculate the payout of a tiered rebates program with compounding rewards. Today I finally decided to make take the time and I sat down with him so he could break it down for me...
Me: *looking at the mess of formula's* it would be easier to rewrite the math than decode this - can you just give me the reward rules... where does that value in cellX come from?
Him:*pointing at the spreadsheet* There! All the rules are in there for you :-)... like it's some big favour...
Me:No I mean when you wrote this, what did you base this off? There must be something...
Him: *Very Gravely* No, no, no it's far to complex! It took me ages to get this sheet right and it balances so just trust me and use it ok?
At this point I will mention he's an accountant so yeah I fucking trust him... fast forward past 15 minutes of digging through what may as well be quantum theory and lo and fucking behold all 2 sheets and 100 calculations are mathematically fucking pointless. Aside from formulas like this:
$X10=+(((O10+P10)-((O10+P10)*$X$3))*$R$4)+T10
which is actually equal to (X10/R4)/L10.
Anyway once you compound and sum the "tiered" benefits the rewards payout is ALWAYS = customerSpend*1.81.
This is why programmers name variables. -
In other news, I have been forbidden by my boss to implement any security or performance improvements into the company infrastructure as this holds no business value. Furthermore, passwords are not to be a random alphanumeric+special-chars string but something legible.14
-
It's rant time!
So, as a broke electrical engineering student, I got this job in a local company. They used JSF and my skills in java were, at the very least, small (former PHP developer). But as a self taught developer this didn't stopped me and I went full on java learning (very bad year for my EE studies).
I became the 'guy in charge' for several of their projects (yeah, they did exploited broke students, I realized this far too late). I was very proud of myself, I worked hard, showed my true value, and they became impressed.
One nice thursday night, my "handler" emailed me with a urgent request. They needed an entire jsf application done by monday and the requirements were fairly complex.
Oh boy, I had a total of 10h of sleep from thursday to monday. I didn't even slept before going to my monday class, but I delivered the system. Got an pat in the back... "you're awesome"... I was happy.
6 months later: I received an email asking to fix a bug in the system. No problem with that. Oddly, this bug was a MAJOR bug. There's no way the system worked properly for six months with it. I fixed it in no time and commited the changes.
Turns out that this was the first time the system was going to be deployed. They made me go in an insane weekend dev project, and didn't even used the system for SIX MONTHS!!! I started to work my way out the company after this, aiming to open my own software company.
I still remember some other rants from the time I worked there. But these are for later.
Nice week for you all, may the sprint go gently and the clients be kind.1 -
Curse the bastards that sneeze in public without covering their mouth. Your sad pathetic life without any contributions to the society has no value, but others' have, you dumb, gross bag of germs!
All others trying to justify, CURSE YOU TOO!!!3 -
so I left uni after my PhD and joined a start up where the boss is a Cambridge grad who does coding and is like 50 years old (he never told us the true value), the CTO is very talented and another dev who quickly became my best friend and me doing data science. the 4 of us worked together like friends and the efficiency was fantastic, there's no bureaucracy bullshit or shit boss talks. We built the whole thing from scratch (okay I admit they did most of the building) and to this day, we work just has we have been.
-
Client from hell, next chapter.
As money comes in, project won't be canceled.
Only madness comes for free.
Newest insanity.... We had to explain that in a warehouse system a unique article number as an identifier is a must.... This discussion took 20 minutes.
The reason? Saving 2 secs as they don't have to enter the supplier item number....
Their plan?
Article Number can be...
Integer, automatically assigned
String, Supplier Name and Supplier Item Number seperated by a delimiter....
The argument that stopped this insanity... Costs.
We argued that if we are forced to implement something which we believe will be a high costs, no value, nonsense feature we won't do the necessary migration and programming after reversal as in 'find someone else who unbreaks this insanity'...
Did they understand that a warehouse system without article number for reference is dumb? Nope.1 -
'Hey I found a bug in your code, it's probably a typo, see here.'
Me: Oh right, yeah. How stupid of me. Thanks, I'll push it.
'It's okay. You can push it or I can do it too after you push the changes we just discussed. I actually simplified one of your methods.'
Me: You, what... ?
(You crammed multiple lines in a single line with your stupid as fuck, rigid constructs, removing my error handling, loosely coupled service, in the name of simplification?)
' Yeah it's just four lines in a single function now, no need to call the function again and again.'
Me: (No... Just no. This totally undos whatever little I could do to avoid supporting your idiotic object in the first place.)
Oh... okay, we'll see. I'll let you know.
What life.
Life in a company full of ignorant, inflated egos is no joke.
Details:
I created a service that reads a configuration file and returns the configuration. This person needs five entries for his app logic. He collected them in a object. Quite alright. Except that the class prototype is shitty. I, like a normal person, made my service return a value based on input. I was asked to incorporate this awful object so that I can return the five entries together, which is awful because the service is not supposed to know about how the entries are clubbed. It should most certainly not know about the data members of the object!4 -
Most people I talk to in the industry hate the "puzzle-y" nature of interviews (e.g. coding on a whiteboard, now get it to run in linear time, oh wait there's a trick you don't know but could totally look up if given the chance) and acknowledge that it does a poor job determining the value of the prospective hire.
Why then is there no sign of this changing? I realize it's a hard problem to solve but in theory the entire company is at stake when it comes to hiring good/bad devs. You'd think somebody would have come up with a better way.9 -
Most painful code error you've made?
More than I probably care to count.
One in particular where I was asked to integrate our code and converted the wrong value..ex
The correct code was supposed to be ...
var serviceBusMessage = new Message() {ID = dto.InvoiceId ...}
but I wrote ..
var serviceBusMessage = new Message() {ID = dto.OrderId ...}
At the time of the message bus event, the dto.OrderId is zero (it's set after a successful credit card transaction in another process)
Because of a 'true up' job that occurs at EOD, the issue went unnoticed for weeks. One day the credit card system went down and thousands of invoices needed to be re-processed, but seemed to be 'stuck', and 'John' was tasked to investigate, found the issue, and traced back to the code changes.
John: "There is a bug in the event bus, looks like you used the wrong key and all the keys are zero."
Me: "Oh crap, I made that change weeks ago. No one noticed?"
John: "Nah, its not a big deal. The true-up job cleans up anything we missed and in the rare event the credit card system goes down, like now. No worries, I can fix the data and the code."
<about an hour later I'm called into a meeting>
Mgr1: "We're following up on the credit card outage earlier. You made the code changes that prevented the cards from reprocessing?"
Me: "Yes, it was my screw up."
Mgr1: "Why wasn't there a code review? It should have caught this mistake."
Mgr2: "All code that is deployed is reviewed. 'Tom' performed the review."
Mgr1: "Tom, why didn't you catch that mistake."
Tom: "I don't know, that code is over 5 years old written by someone else. I assumed it was correct."
Mgr1: "Aren't there unit tests? Integration tests?"
Tom: "Oh yea, and passed them all. In the scenario, the original developers probably never thought the wrong ID would be passed."
Mgr1: "What are you going to do so this never happens again?"
Tom: "Its an easy addition to the tests. Should only take 5 minutes."
Mgr1: "No, what are *you* going to do so this never happens again?"
Me: "It was my mistake, I need to do a better job in paying attention. I knew what value was supposed to passed, but I screwed up."
Mgr2: "No harm no foul. We didn't lose any money and no customer was negativity affected. Credit card system may go down once, or twice a year? Nothing to lose sleep over. Thanks guys."
A week later Mgr1 fires Tom.
I feel/felt like a total d-bag.
Talking to 'John' later about it, turns out Tom's attention to detail and 'passion' was lacking in other areas. Understandable since he has 2 kids + one with special-needs, and in the middle of a divorce, taking most/all of his vacation+sick time (which 'Mgr1' dislikes people taking more than a few days off, that's another story) and 'Mgr1' didn't like Tom's lack of work ethic (felt he needed to leave his problems at home). The outage and the 'lack of due diligence' was the last straw.1 -
When i started my work I encoubtered this db(one of 4): more than 20 tables, some with 200 columns literally... EVERYTHING is a varchar 😓.
I'm slowly designing some normalized tables with real fk on new features and projects and people are like: how the fuck did you implement this feature so fast? the other guy spent 3 months designing this form (and I'm just speechless):
The form was some sort of crazyness shit passing input names as "name-of-property" and a file only to check if(name="string") then store a number value to an array and save it as a "number" (actually varchar) on the db. literally more than 50 if statements to do this.
Everything on a single table that made no sense at all.
Just wtf... At least my boss let me start if from scratch cause he we were always having panick attacks every time he needed to do something with it. 😂😂6 -
God fucking damnit automating a client's "Job applicant form" system is the most boring shit l've ever done.
Get me some damn monkeys to do this
"Oh OK so I just have to take this form and turn it into HTML. Oh shit, 25 check box's, let's just copy paste this shit in over and over. Oh damn, forgot I have to change the name and value fields for each one. God damnit this is boring, I guess I have to"
Fucking hell it's annoying work, Boring, easy, no thought needed. Ended up turning this task into a drinking game. Every time the word "Management" came up, I took a shot. Got me pretty fucked up.
Client emails back; "Oh ya, I forgot to tell you, we have these 3 other forms we want you to automate".
Well fuck at this point I feel like more of an alcoholic than a developer.5 -
Use this as a template to send rejection letter to your recruiter as a revenge.
"Dear Recruiter,
Thank you for considering me for the software engineering position at your company. After careful consideration, I regret to inform you that I am unable to accept your offer.
As a highly qualified and skilled software engineer, I am confident that I could bring a great deal of value to your organization. However, after reading the job description and learning more about your company, I have come to the realization that I am simply too good for the position. I have no interest in joining a team where my talents and abilities would be underutilized and unappreciated.
Furthermore, I am a bit concerned about the working environment at your company. I have heard rumors that the office is dingy, the cafeteria food is subpar, and the company culture is lacking. I am a true perfectionist, and I refuse to settle for anything less than the best.
In conclusion, I must decline your offer. I wish you and your company the best of luck in finding a candidate who is worthy of the position.
Sincerely,
[Your Name]"4 -
Do you think refactoring code adds value?
Pick one:
1. Hard No (Only refactor when there is a dollar value associated with it, i.e new feature depends on it).
2. Somewhat Yes (Futureproof your code, anticipate easiness to build feature requested in future).
3. Yes (Developer happiness, retention and for point 2)27 -
Fuck everything about Microsoft Dynamics. I'm supposed to use the REST API to make a web front-end. I notice all of the data comes back codified.
null == 0.
boolean true == 100000000
boolean false == 100000001
except sometimes when
boolean false == 100000000
boolean true == 100000001
or other times
string "Yes" == 100000000
string "No" == 100000001
string "Maybe" == 100000003
Hang on. Is the system representing a 1 bit value with base 10 numbers? Did the client set this up like this? Holy crap every number corresponds to a unique record in a table somewhere. That means it only returns numeric values instead of strings and I have to figure out what the number means in the context of the table.
A "key" is user typed? So every time someone starts to make a new record it saves a new "key" without a record? So I can pull a bunch of "0" records if I pull sequentially? So basically I need to see all of the data in Dynamics to have any context at all for what is returned from the Dynamics API? Fuuuuuuuuuu10 -
A beautiful gem ticket from a manager today:
Title: "Check Stripe "Snippet APK" that might help for integration into the app to track pricing easily."
Alright, it's very clear this particular individual has no idea what they are talking about, but, I'll give them the benefit of the doubt and read the ticket description!
Description: "I think stripe offers some sort of snippet that can be implemented into the app similar to FB pixel. (I could be wrong here..) let’s briefly check this, if it’s of value for our A/B-Tests → e.g. if it makes your life easier = good otherwise it’s not important."
...
I might as well replace the management team with GPT-3 at this point.
Or even just a simple Markov chain; that'd probably be more accurate if you want to match the ticket quality more exactly of this ABSOLUTE PILE OF HORSESHIT WASTE OF TIME I GET FED EVERY SINGLE FUCKING DAY.
🤡4 -
How bad it feels when it work in a place where Agile and DevOps are mostly abused buzzwords.
Forced doing "scrum" with:
- half of the team providing endless daily reports instead of focusing on the 3 questions
- a scrum master that is barely reachable
- a product owner that would not even make a decision
- a sponsor that pushes us to go faster regardless of current technical debt (it's important to look good to other sponsors!)
- doing all possible scrum ceremonies with no value added
- not even estimating stories
- not even having accurate description in stories. Most of the time not even a description.
- half of the team not understanding agile and DevOps at all
Feels so good (not). Am I the one in that boat?? ⁉️
What's the point of doing scrum if implemented that badly?? 😠6 -
My boss asked me two days ago to fix some errors in an application. From the errors I saw it would be a 5 minute fix. I fixed the problems just now because there was no documentation on how to set it up.
After setting it up it was just changing a value from true to false...
I ruined two days just because there was no documentation. Please everyone, I know writing documentation is boring but at least write some documentation on how to setup a project.3 -
Me yesterday evening:
"Fuck java, fuck JVM, fuck everything about it, shit doesn't work for some reason, no runtime errors, no compiler errors, no syntax errors, nothing, *turns off computer*".
Me today morning(coffee = false), after comparing the documented example code provided by the API with one someone else made, I've noticed that the one provided by the API was messed up and couldn't work.
"Lemme change that one value in the properties...okay here we go"
Shit works out perfectly.
FUCK FALSELY DOCUMENTED CODE
FUCK DOCUMENTATIONS IN GENERAL2 -
Feel free to make fun of me on this one.
> be me.
> Write a function that calls a second function to get a returned value and continue work.
> That second function always returns null no matter what changes are made.
> Spend half hour scratching head.
> That second function has this written at the end
return null;
//return $returnVal;
> fml.13 -
Built a whole test suite around our Laravel app which has been pointed out to exec as slowing down CI and yielding no value to the user.
Arguing it’s ensuring something our users is using doesn’t accidentally break just gets brushed off as incompetence.
Oh well, I’ll just skip tests in CI and continue writing and running tests on my own as I don’t feel confident just cowboy fixing things.2 -
The "unit" in unit test does not mean your ENTIRE APPLICATION. Ever heard of scope!?
I am amazed how often people write overblown test setups, mock hundreds of unrelated services, just to test one tiny bit of logic.
That bit of logic could have been a pure function.
For that pure function you could write a dead simple unit test. Given that input, I expect that output. Nothing more, nothing less. (It helps even more if the pure functions only accepts primitives, like string and numbers, or very simple immutable value objects).
No I don't care that the service is used by another service, as your mocked interaction also doesn't test the service as a whole but you just assume the happy case most of the time anyway. You want to test the entire application? Let's not use unit tests for that but let's use a different kind of test for that (integration test, functional tests, e2e-tests).
If you write code in a way that easily allows for unit testing, your need to mock goes away.rant unit tests test all the things tests you are doing it wrong tdd testing don't mock me unit test1 -
I know most of you know this, but after having dealt with both recruiters and real companies I can safely say that recruiters are of no practical value.
I've wasted countless months of my life interacting with recruiters and getting nothing out of them. To me it seems they're only after fluffing their client base.
The only time I got a job was through the real companies themselves.
Now I have learned the lesson: stay away from recruiters.6 -
Trying to work with an API that has no response object (it just returns empty arrays if something breaks) and it's JSON is not key-value.. just a bunch of dynamic nested values. just wow.3
-
I was working as a software dev contractor at this company providing specific e-learning services for a specific industry X.
One day the CEO posts on Linkedin about an interview discussing the potential of gaining $100k per year working in industry X after getting specialized training for 6 months (using our e-learning platform of course) .
My gross income at the time was $65k. My experience was about 7-8 years. Now the thing is you might say "gee that's pretty low for a dev, especially a contractor", and yes I agree, but you have to understand a few facts:
1. I am from eastern Europe (cheapish labor - which btw for all of you out there from the West, including Germany and whatnot, it is xenophobic to consider easterners cheap and it personally insults me and my ability - but that's another story)
2. I was happy to accept the offer since it was the best I had up to that point :))
Now, by the time the LinkedIn post I was heavily invested in the product development. I personally had written 30% of the code (frontend and backend) compared to the whole development team (about 15 devs)... and yes you might argue that performance is not measured by number of lines of code... but trust me when I am saying I did the most on that product, and I am not saying this to brag, I actually care about the stuff that I work on.
When I saw that post on Linkedin I thought to myself "what kind of BS is this? I am a dev and devs are supposedly the best paid workers out there, and a guy from industry X that just got trained for 6 months would get more than me?! WTF?!"
So I messaged the CEO ...
Me: I noticed the post from linkedin about $100k by working in industry X, I am curious how does one get to that revenue per year? What is your advice?
CEO: The best way to obtain value is by creating value which you maximize continuously.
Me: and how does one maximize value?
CEO: it does not matter how hard your work but how large of an impact you make!
Me: ... and how do you measure impact? (me thinking about performance reviews for contract negotiations - and because performance reviews should be SMART -> meaning it should be measurable somehow)
CEO: Simon Sinek says ... << insert motivational quote here because I don't remember and don't care >>
I just lost if after reading the name "Simon Sinek" ...
So you see my dear friends ? It is all fairy dust, smoke and mirrors, in the end it is about maximizing profits, lowering costs and maintaining the illusion of opportunity... when there is none.
Lord is my witness... I hate hypocrisy and quackery ...
You can imagine that my contribution on that product immediately lowered, doing the bare minimum to meet the contract demands AND I FEEL NO REGRET.
%&#$ YOU SIMON SINEK.rant measure impact motivational quotes eastern european ceo not six figure salary jealousy simon sinek4 -
Part two of: a day off an iOS developer life:
1. App crashed and stack trace gives no info in which file it happened, I have a generic table view cell that is used in so many places and Xcode just wrote: xcell does not support key value.
2. Mac freezing when Xcode is creating IPA file thanks to a new feature in Xcode 9 (Mac freezing is the new feature, even mouse pointer doesn't move -.-)
3. Let's check the value of this class property, Xcode: fuck off and either print it in console (after hitting a break point) or expand that shitty tree at the bottom to reach your class property!
An advice: never click jump to definition when Xcode is indexing, it will either freezing Xcode or crash it.
Part 1 link: https://devrant.com/rants/1137208/...1 -
Worst thing you've seen another dev do? So many things. Here is another...
A developer purposely forged international shipping documents by 'hard-coding' data to get around international shipping restrictions (ex. we can't sell 'Widgets' to Germany...so under the category he would replace the value with 'light bulb'). He was 'under pressure' to make keep the money rolling in no matter what.
We were eventually 'caught', fined over $300,000 (which was better than the $10,000 per offense and we had thousands of offenses).
For this major frack-up, 'Rob' was promoted to manager of the International department, got to travel (including his wife) to several European countries, and eventually obtained a company-paid MBA degree.
'Rob' liked to joke about how he would sometimes have to pinch himself how lucky he was by working for such stupid people (yes, he used the word 'stupid') and how gullible government investigators were.
"All I had to do was say 'its a bug in Windows' or some other kind of nonsense and they believed me."
'Rob' quit 3 months after receiving his MBA degree (again, 100% company paid) and the international department closed due to some potential illegal activity.2 -
I want to explain to people like ostream (aka aviophille) why JS is a crap language. Because they apparently don't know (lol).
First I want to say that JS is fine for small things like gluing some parts togeter. Like, you know, the exact thing it was intended for when it was invented: scripting.
So why is it bad as a programming language for whole apps or projects?
No type checks (dynamic typing). This is typical for scripting languages and not neccesarily bad for such a language but it's certainly bad for a programming language.
"truthy" everything. It's bad for readability and it's dangerous because you can accidentaly make unwanted behavior.
The existence of == and ===. The rule for many real life JS projects is to always use === to be more safe.
In general: The correct thing should be the default thing. JS violates that.
Automatic semicolon insertion can cause funny surprises.
If semicolons aren't truly optional, then they should not be allowed to be omitted.
No enums. Do I need to say more?
No generics (of course, lol).
Fucked up implicit type conversions that violate the principle of least surprise (you know those from all the memes).
No integer data types (only floating point). BigInt obviously doesn't count.
No value types and no real concept for immutability. "Const" doesn't count because it only makes the reference immutale (see lack of value types). "Freeze" doesn't count since it's a runtime enforcement and therefore pretty useless.
No algebraic types. That one can be forgiven though, because it's only common in the most modern languages.
The need for null AND undefined.
No concept of non-nullability (values that can not be null).
JS embraces the "fail silently" approach, which means that many bugs remain unnoticed and will be a PITA to find and debug.
Some of the problems can and have been adressed with TypeScript, but most of them are unfixable because it would break backward compatibility.
So JS is truly rotten at the core and can not be fixed in principle.
That doesn't mean that I also hate JS devs. I pity your poor souls for having to deal with this abomination of a language.
It's likely that I fogot to mention many other problems with JS, so feel free to extend the list in the comments :)
Marry Christmas!34 -
I no longer work for a startup company. On Monday I’ll start work for a real company, one that values project managers and their infrastructure. As a DevOps engineer, I value the IT resources that power my old companies SaaS platform. My old position is not being back filled and they’re hiring a full time dev instead of and Ops engineer. They have chosen to proceed with zero employees who know Azure or the platform their own software runs on.
Word to the wise when choosing to work for a startup. Ask these questions:
- Do they have a dedicated product manager/owner , who isn’t also the CFO?
- Do they value infrastructure and their IT resources ?
- Do they have decent powered laptops to work with?
- Do they have too much technical debt because they’re always building new features ?
- Do they work 18 hour days because they set poor work/life boundaries ?
- Who handles Support tickets , and what’s a typical support issue like?
- Do they have a branching and merging strategy? Don’t accept “we’re too small” as an answer! It’s a trap that they don’t want one.1 -
it was not a technical interview.
just screening.
guy: tell me smth about redis.
me: key value, in memory storage.
guy: more
me: umm, the concept is similar to localStorage in browsers, key value storage, kinda in memory.
guy: so we use redis in browsers?
me: no, I mean the high level concept is similar.
guy: (internally: stupid, fail).3 -
Dockers JSON output is garbage.
First, you'll get no JSON per se.
You get a JSON string per image, Like this:
{...} LF
{...} LF
{...} LF
Then I tried to parse the labels.
It looked easy: <Key>=<Value> , delimited by comma.
Lil oneliner... Boom.
Turns out that Docker allows comma in the value line and doesn't escape it.
Great.
One liner turns into char by char parser to properly tokenize the Labels based on the last known delimiter.
I thought that this was a 5 min task.
Guess what, Docker sucks and this has turned into try and error...
For fucks sake, I hated Docker before, but this makes me more angry than anything else. Properly returning an parseable API isn't that hard :@3 -
Customer has asked me to recreate a dashboard they use with a bunch of data, charts, etc.
Problem: The screenshots they sent me... almost everything is illegible. The fidelity of the screenshots themselves is just fine.
It's that their dashboard they have is straight unintelligible. The charts are all smashed up, scale is off, most data ... you can't even tell what it is.
On one bar chart there's just one bar, no x or y scale indicators ... and a random dot in the bar... what even?
Apparently they love this dashboard but as far as I can tell they can't possibly be getting anything of value from it ...
It's like I can cook... but I can't make a recipe .. wrong ... just like someone else made it wrong from screenshots. :P -
Something I have learnt in the past month:
Never settle for a low salary no matter how good a company sounds (unless it's a really prestige company) if they don't realise your worth and don't care about their employees. Salary is important. You are important. And customers are important. Any company that just values money, income, profit and growth over their customer and employee experience is a huge red flag. If your work life is so stressful that it doesn't let you have a good work/life balance then avoid it. What comes above being a developer is being healthy and I think alot of people don't realise this. It may sound good to work as an engineer for a big platform but if they only value themselves you are just a cheap slave, move on and do something respectable and enjoyable.
Just my life lesson in applying for grad jobs.4 -
Haven't ranted in a while so here it goes.
Head of product took me (senior dev) to a high value client workshop/demo session and over the course of two days found the reason behind why the dev team has been pushed to the limit as of late and sales/product team has been making promises to clients without checking with dev leaders on reasonable delivery dates on massive new features.
I tried my best to manage expectations by differing talking about delivery dates by saying "lets discuss that with the team" rather than giving out dates right now. But as soon as the meeting ends he sends an email to the client confirming delivery dates on features that we have done no research on or even specialize in!
Please tell me this is not how well established businesses work or is that the new reality of things. In either case I wanna find a new job :/2 -
We have a new hire, and he doesn't know much so he is receptive when given feedback on better ways to handle a situation...Or at least, he appears that way. Until the next time and he didn't listen at all.
Today I'm working on the front end to match his API calls. I ask him about a list of options for one of the fields, as he didn't provide that info initially. No worries, there was a lot, easy to miss. He responds with a list of ~100 options, which he copied and pasted from, I'm assuming, their documentation. I tell him that's too many options to hard code, as there is an easy chance to have an error or for there to be one added or deleted, and ask if there is an API endpoint to get the list.
He then asks if I need the key and value, or just key. I tell him if he needs the value(human readable) then he can send me just the value, otherwise both. He says he just needs the key, so I let him know that I need both then, as the value is human readable. He says okay.
He proceeds to make the endpoint, I test it. Then I look at the code he wrote. Not only did he not send me both, he just sent the keys, but he hard coded all 100 keys as opposed to making the call to the external API.3 -
Started a new job last week. Pays a tad below average for position, but i get training time and budget for anything i want.
So far i have had few days of company introduction, and now a week for training courses related to position.
I have not seen any code yet, brought no value in, just joined.
Massive green flag to me. -
I usually crib about how stupid people are and how I struggle to stay afloat.
Let's switch some gears now. A post about some good people, product, and processes.
You know what the common theme here is?
The goodness here cannot be measured. Your first interaction with them makes you feel so comfortable that you start feeling butterflies.
These people just keep on giving. They are selfless. They are pure. They actually care.
And when you think it's done, then they give you some more.
What blows me away is, they don't expect or accept anything in return. Absolutely nothing. Not even a simple thank you.
And they are like a wizard. They walk into your life when you least expect them but need them the most. And when the task is done, they'll be gone before you even know.
No lingering, no drama, no bullshit. Just pure goodness.
Like my ex-lead in current company, I have a very senior guy in neighbouring team (for which they were gonna hire me initially), who also happened to interview me, is a gem.
He takes care of me like his own younger brother. Supports me and always answers my queries no matter how occupied he is.
And same is with good products and processes. They feel effortless. So smooth and add exceptional value to your existence. They give rise to wonderful companies.
You'd never experience a single negative aspect about them. No matter how much you try, things will just keep getting better until they don't need to.
And then they'll be long gone. Never to be seen again and never to be forgotten.
You cherish them only in your memory and wish they lasted longer. But they didn't because the purpose was served.
Such people and experiences inspire me. They push me to become a better human.
No matter how the world is or how it treats me, I must always live with high values and be a better version of past self.
The other evening, I was conversing with my mother where we spoke about some family friends who are insanely wealthy but humble and kind.
Mom and I mutually agreed that they don't have such good traits because they are wealthy, but they are wealthy because they live with humility, kindness, and pure intentions.
World is surely a beautiful place because of such people and I aspire to be one. May lord guide me well :)3 -
I feel like Gordon Ramsey today.
"The default value is only used when there is no current value for the field. That's why it's called fucking default vAalue!"2 -
Found a clever little algorithm for computing the product of all primes between n-m without recomputing them.
We'll start with the product of all primes up to some n.
so [2, 2*3, 2*3*5, 2*3*5*,7..] etc
prods = []
i = 0
total = 1
while i < 100:
....total = total*primes[i]
....prods.append(total)
....i = i + 1
Terrible variable names, can't be arsed at the moment.
The result is a list with the values
2, 6, 30, 210, 2310, 30030, etc.
Now assume you have two factors,with indexes i, and j, where j>i
You can calculate the gap between the two corresponding primes easily.
A gap is defined at the product of all primes that fall between the prime indexes i and j.
To calculate the gap between any two primes, merely look up their index, and then do..
prods[j-1]/prods[i]
That is the product of all primes between the J'th prime and the I'th prime
To get the product of all primes *under* i, you can simply look it up like so:
prods[i-1]
Incidentally, finding a number n that is equivalent to (prods[j+i]/prods[j-i]) for any *possible* value of j and i (regardless of whether you precomputed n from the list generator for prods, or simply iterated n=n+1 fashion), is equivalent to finding an algorithm for generating all prime numbers under n.
Hypothetically you could pick a number N out of a hat, thats a thousand digits long, and it happens to be the product of all primes underneath it.
You could then start generating primes by doing
i = 3
while i < N:
....if (N/k)%1 == 0:
........factors.append(N/k)
....i=i+1
The only caveat is that there should be more false solutions as real ones. In otherwords theres no telling if you found a solution N corresponding to some value of (prods[j+i]/prods[j-i]) without testing the primality of *all* values of k under N.13 -
Story about my old boss:
I was doing a lot of work in an area that had a data property and a method to build an object. I noticed a reset method that iterated all that objects properties, found the matching data from the data object, passed that data through some logic to format it and then assigned that value to the object property.
As part of my PR I removed that method, since data wasn't changing, and simply called the create method again with data.
The result of tidying the code base and putting it up for review before a merge? I get told I have no respect for my boss's code, that I am undermining him, that I need to be more considerate and respectful of other people's work and that I am no longer allowed to change any code he has written in the code base (half the code base) without talking to him about it first, before it goes up for review. Also if he is working on an area I cannot change anything - not even 1 character (he is working on the core of the app).
Every day there I was so confused :D5 -
once upon a time I went on vacation.
It was for 5 days and I went to Leh-Ladakh with my family. (Me, My big bro and my parents.)
It's a beautiful and cold place. Snow and High Mountain and no phone call from anyone.
It was supposed to be no call. But on the 3 days, I got a call from my junior and he said to me that server is not working and it's giving 404 error.
So I told him to go to Cpanel (It was client's server). After 1 hour I got a call back from him and he was not able to fix it.
So I had to open the Cpanel in my Galaxy Note 8, Open file manager, go through all the files and logs and fix it code in 2 or 3 files.
It took 4 hours to fix the problem. But that day I understood the value of my Note 8 and its big screen. Thank you, Samsung.
Note: The lake in the photo is Pangong Lake/5 -
Spent my afternoon looking after the reason why a value manually set kept being overriden.
Put a die() every possible place it could happen. Every. Single. Place.
No die() got triggered.
Death sounds so sweet.1 -
Dont blame me for making Minecraft plugins, but holy shit i really hate stairs right now.
Im modifying some old code of mine to add extra features, and i just need to be able to rotate stairs 90, 180 and 270 degrees, then im past this bump.
Stairs get their direction based on a byte value that makes no fucking sense to me.
North = 3
West = 1
East = 0
South = 2
Ive been drawingto see if that made me go "oh like that", checking if the bits of each value had a system, and now im here.
Titshit.
I dont know who made it like this, but i really dont want to make some static switch or if/else statement to process this directional trash. I want it flexible.
If you spotted a system to the numbers, please mail me a rock, and then tell me how i fix this.12 -
You may know I love to hate tests. Well not the tests actually, what I hate is the TDD culture.
DBMS schema in my app dictates a key can either have a value, or be omitted - it can't be null, and all queries are written with that in mind (also they're checked compile-time against schema). But tester failed to mock schema validation, inserted a bunch of null keys with mock data, actually wrote assertions to check those keys are null (even though they never should be), and wanted me to add "or null" to my "exists" queries.
No, we don't need more tests, and you're not smart with your "edge cases" argument. DBMS and compiler ensure those null values can never exists in our DB, and they're already well tested by their developers. We need you to stop relying on TDD so much you forget about the practical purpose of the code, and to occasionally break from the whole theoretical independent tests to make sure your testing actually aligns with third-party services some code uses.
And no, we don't need more tests to test your mocks, and tests to test those test, and yo dawg, I heard ...5 -
What idiot uses 0 for a success response!!! Integrating with a 3rd party I found a bug in our code that uses the default value for an int when the external server can't be reached.
As it happens 0 is the default integer in most languages so no surprise when our system accepted the 3rd party as a success when it blew up 😒4 -
---Startup Rant---
Being a senior developer doesn't grant the privilege to join a team and starting a drama out loud that everything is bad and you don't like it.
First, if everything is perfect there is no need to hire you.
Second, think about the value that you can bring to the team instead of making them feel bad, how can you prepare an improvement plan and start to learn the factors and reasons behind those decisions.
What's funny, it that the same guy after a couple of months starts introducing bad fixes and he says it's ok for the moment, it's not good but it's okayish, I wish I had a time machine for those developers!1 -
I am in a situation where I am tired to give suggestions or implement any improvements to the company's app. I am in a situation where I will just do as told, nothing more, nothing less.
Regardless of how many suggestions or improvements I had made, the boss is constantly sceptically asking for "BLACK AND WHITE " proof. Sometimes, something does not require proof but cause and effect. As the application constantly prompts a DataType issue, which is a common bug in this app! I declare datatype the issue went away.
I wonder how this application can go further when they declare every variable as `var`, not using `const` for constant value, and redundant methods everywhere, most methods are not specific (in dart when you do not specify the method, the method become `dynamic`), a long list of nested if-else for something can be easily solved with switch case, etc.
So, today, right now, I will revert every improvement, and keep the original structure. If anything goes wrong, I know why it happens (deep down I will say "I told you so"). I am here to work for food, not to reinvent the wheel.
I'm so exhausted to the point where I will just go along and tell my co-worker "as you wish"
No more me suggesting.
No more me giving ideas.
No more me pointing the mistakes .
I will let them find out themselves is much better than I say it, just to prevent getting unnecessary hatred from them.
The best punishment to give somebody is to never mention their mistake let their ego do the job of consuming them into ignorance and asleep, and never wake them up. Let them commit the same mistakes repetitively until them realised there's no way to revert.5 -
It's been a while since I've heard a consensus of a moronic idea from the corner offices. I was invited to a department planning meeting (just to listen, not necessarily engage or add value) and discussion went to the development of a mobile app.
Mgr1: "The CEO has the net present value of the mobile project as $20 million. Where did he get that number?"
VP: "No idea."
Mgr2: "How will it be any different than our web site that is already mobile compliant?"
VP: "It is to gain market share"
Mgr3: "Market share from who? A mobile app is not going to increase our customer base. At best, it will only move some of our existing customers to mobile. No way it would scale to those numbers."
VP: "The primary benefit is so customers can browse offline."
Mgr2: "Offline browsing isn't listed in the milestones."
Mgr1: "We're not going to push and keep gigs of data up-to-date on someone's phone just for random times they don't have internet access."
VP: "I guess that's right. We can push our pdf catalog. That's only a few hundred meg."
Mgr2: "Pushing the catalog? That's not on the listed milestones"
VP: "Its all assumed."
Mgr3: "Who owns this project? Web team is already maxed to capacity."
Mgr2: "Marketing team only has 3 developers, we can't take on anything as complex as a mobile app and support the existing processes."
Mgr1: "What about the network infrastructure and PCI compliance? We're talking about a system for the web site and another for mobile, right?"
Mgr2: "Who is going to manage all the versions in the app stores and future changes to the mobile platform?"
Mgr4: "Not us"
Mgr2: "Nope"
Mgr1: "OK, good. Its very likely this project will be dead on arrival at the next company strategic meeting."
VP: "Mobile the only project on the strategic meeting agenda. Sorry guys, it's happening. We're not going to leave $20 million sitting on the table.
<awkward silence>
VP: "Next item of business ..."3 -
Fuck testing react native apps with Detox ! I can’t select a value in a picker no matter what I do 😭2
-
YIL (Yesterday, I learned) that, in Austria, digital signatures on documents (using a signature you can only get by verifying your identity, which can be done in person, or online but no I'm not making pics with my passport, ever) have the same value as handwritten signatures.
If someone provides you a PDF and tells you to print it out and sign it, you can just sign it on your PC and send the PDF back, and unless they explicitly told you not to do so (it can't be put in terms and conditions), they can't reject a signature provided in this way.6 -
Your three-second password retry delay is far more likely to annoy users than preventing a brute-force attack.
If you insist on a retry delay, let the user enter a password five times without any delay. This would make no difference in the grand scheme, the trillions of retries needed for a brute-force attack, and guessing a password takes longer than three seconds of thinking anyway.
Another alternative is a tenth of the password retry delay but one added character. One added character slows down a brute-force attack by at least sixty-two (62) times, so one more character but a tenth of the password retry delay would still mean more than six (6) times the protection against brute-forcing.
On Linux, the password retry delay can thankfully be reduced by changing a value inside /etc/pam.d/common-auth or /etc/pam.d/login (out of scope for this post, you can search online for more details).5 -
An anti-rant: I just made some code and out of nowhere it suddenly had an awesome feature that I didn't even program. No, not a euphemism for "bug", an actual feature.
Here's the story: A few months ago I made a shortcut for "System.out.println(…)" called "print(…)". Then I developed it further to also print arrays as "[1,2,3]", lists as "{1,2,3}", work with nested arrays and lists and accept multiple arguments.
Today I wanted to expand the list printing feature, which previously only worked for ArrayLists, to all types of List. That caused a few problems, but eventually I got it to work. Then I also wanted to expand it to all instances of Collection. As a first step, I replaced the two references to "List" with "Collection" and magically, no error message. So I tested it with this code:
HashMap<Integer, String> map = new HashMap<>();
map.put(1, "1");
map.put(2, "");
map.put(3, "a");
print(map);
And magic happened! The output was:
{1=1, 2=, 3=a}
That's awesome! I didn't even think yet about how I wanted to display key-value pairs, but Java already gave me the perfect solution. Now the next puzzle is where the space after the comma comes from, because I didn't program that in either.
I feel a bit like a character in "The subtle knife", who writes a barebones program to communicate with sentient elementary particles (believe me, it makes sense in context) and suddenly there's text alignment on the left and right, without that character having programmed any alignment.4 -
Fucking fuck sonarcloud and everything about it. Part of the build pipeline for us to deploy code is to ensure that 90% of the code is covered by a unit test. Great in theory, horrible in practice. You think you've written enough tests that actually add value and test a valid piece of functionality but NO, sonarcloud throws a fucking fit because you're at 89.888 then your branch is going nowhere. Because everyone else gets to this stage and writes just enough tests to get the coverage to 90.01% then it becomes a stand off of who will break first; the code coverage threshold or your mental state.4
-
Hello all,
I am an apprentice, 19. I joined this software developer apprenticeship to leave college as it was not particularly great for my mental health, and programming is the only thing I can do reasonably well.
The company that I find myself in is a strange one. It has about twenty or so employees, but we all instructed to operate as if we are a giant company—our sales person, for example, will tell our clients that we have hundreds.
The development team is a collection of software developers. There is no database administrator, network administrator, software engineer (not in name only), test engineer, requirements engineer, etc. There are just several software developers. Of these developers, one has left by now. When he joined, he was promised to be working on a new system: he left after spending seven years on an old system. A new developer has just arrived to replace him: he was told he would be working with Raspberry Pis; it was interesting to see his face after we informed him that we do not use Raspberry Pis.
The codebase is fourty-years-old and written in Delphi, which is some kind of cousin of pascal, from what I understand. Code is not peer-reviewed. Instead, it is self-reviewed, and you just push whatever changes you make. The code is very much spaghetti, and there is a whole array of bugs that, at least to me, look impossible to track down and fix. I have a bug assigned to me at the moment were someone appears somewhere when they are not supposed to. After asking seniors about this, I learn of this huge checking mechanism and all of its flaws: a huge, flawed checking mechanism... for toggling a single boolean value. This isn't a complicated boolean value, by the way, this is just a value to say whether someone has clocked in or clocked out of a building, via a button.
In terms of versioning, we have several releases, and we often do development work in older releases (or new releases and then write them into older releases) because our clients are larger than us and often refuse to upgrade, and the boss does not want to lose any contracts. We also essentially have multiple master branches.
With the lack of testers, bizarre version control, what appears to be unfiffled promises to staff, etc. I must ask that, since this is my first gig as a software developer, is any of this normal?2 -
This is gonna get someone illogically upset, but idc about that.
I know it's ignorance of semantics but I'm tired of propagated ignorance changing the meaning of things.
Non-binary is NOT a legitimate term for whatever 'gender' you are!
I get what *whoever-started-it* was going for, but it's NOT valid. If you want to say that youre not male or female, fine... just don't abuse binary systems to do it. Just say youre non-bool/anti-boolean or identify with one of the, apparently 50, shades of gray.
I keep getting into logical loops to nowhere about this nonsense. No one is even defining what's supposed to be the 1 vs the 0. Which then makes me think '1 must be male... genitalia=1 in many ways...' which then sources back to the historic validity of males vs undervalued/less than human interpretations of females...
Then <brake>.
Ofc these people aren't going into the historical significance... they don't even realise how binary works! Ofc they'd have no clue that all 0s= no data... and 0s only have significance when viewed in placement to the 1s.
Let's all start using proper terminologies, like non-boolean. Maybe i can start a trend by paying people pennies to learn/teach wtf a boolean value is, and that binary can represent anything. With proper encoding the array is limitless... so being binary is actually a giant spectrum... therefore makes no sense to be "non-binary".
Ok... im done. It had to be said.
Who wants to start identifying as non, or educating wtf is, boolean with me???42 -
Unity's "quirk" messed me up again. This time, I wanted the time when the key was pressed as precisely as possible, independent of the framerate.
So I put the input reading routine into the thread pool, which causes the first few readings to throw null reference exceptions. No biggie; the system needs a few moments to warm up. So, I try-catch that part.
But when I build the game, as soon as I reach the part where the game tries to read the input value, it hard-crashes before try-catch can act 🤦8 -
If you want a really obtuse method for inverting numbers in python, here you go:
z0 = Decimal('78.56341431805592768684300246940000494686645802145994376216014333')
z1 = Decimal('1766612.615660056866253324637112675800498420645531491441947721134')
z2 = Decimal('1766891.018224248707391295083927186110075710886547799081463050088')
z3 = Decimal('15658548.51274600264911287951105338985790517559073271799766738859')
z4 = Decimal('1230189034.426242656418217548674280136397763003160663651728899428')
z5 = Decimal('1.000157591178577552497828947885508869785153918881552213564806501')
((((z0/(z1/(z2/(n)))))*(z3))/z4)/z5
From what I can see, it works for any value of n.
I have no clue why it works.
Also have a function to generate the z values for any n input.
Shitpost studios.
Bringing you QUALITY math posts since 2019!
"we shitpost because we care."21 -
Manager: "are you doing this obscure process that I laid out months ago with no plan or follow through?"
Me: "no, my other 3 managers said they didn't see any value in it, not sure how to keep everyone happy"
Manager: "that's not what we want! You need start doing this obscure process now!"
We have 20 engineers total in my company and I have 4 managers. Office Space was a documentary.2 -
as you can see my naive people; even dfox/trogus started to question whether or not they have done the right thing by chasing a degree that has no value in the real world. just understand that when you see someone who works at a job, he works there not because he has a degree but because he has the knowledge and skills to get the work done4
-
senior: we have no reason to change/mutate this property, we don't need a setter method, just set it once in the constructor
also senior: there's no reason to change/mutate this value, but i want you to write a setter method for it3 -
I'm frustrated with an abundance of different *Ops we're having right now. You can spell a random word followed by "Ops", and it's probably a thing. I get that Ops people in general are important but when there is stuff like GitOps, MLOps, FinOps, it gets confusing pretty damn fast. There's no value in all these titles besides "duh" usually, since Ops are just Ops in most situations. They kinda can slap a tracing tool or two on top of your code base but in general they just do Kubernetes (with whatever's hip like Jaeger, etc.) nowadays and that's it. Hell, even "DevOps Engineers", for a majority of cases you'll encounter, are basically just Ops with a misleading prefix since it's just a way people call them nowadays for whatever reason.3
-
Forgot to bring me laptop to college, so had to use the age old Turbo C complier on college PC. So had to do some power calculation.. used the pow() function, forgot to include math.h...
And bamm!!! It compiled and I had no idea why the pow function isn't giving the correct value!!
Lesson learnt: never trust anything!!2 -
Fixed a high priority bug today just prior to release. There was 100% test coverage. The tests pass both before and after the change. The product behavior is correct now where it wasn't before. Just one more reminder that test coverage does not equate to either quality or correctness. Tests are alarms (at best), and quality of tests are no better an any chunk of code. All tests have costs, but not all have value. All reasons why I am skeptical of the value of code coverage, TDD, or anything that posits that "all tests are good".6
-
This might just be me and my OCD talking, but am I the only one who gets super annoyed with sloppy CSS formatting?
So like, if somebody writes a sloppily formatted rule like this without spacing out each property and value:
#signUpButton {color:#FFF;background:#000;float:right;clear:both;padding:5px;position:absolute;top:5px;right:20px;height:100px;width:45px;}
As opposed to something like this, which just looks much cleaner:
#signUpButton { color: #FFF; background; #000; float: right; clear: both; padding: 5px; }
The formatting makes no difference in how the CSS is evaluated and rendered, but I find the spaceless style so ugly and difficult to read/edit, whereas the spaced out style is much more appealing to the eyes and easier to read
I find myself reformatting other people's CSS that works perfectly fine just so it will be easier to read/edit for anybody else that looks at it in the future8 -
Today I've implemented two custom annotation and two validators for those annotations (Java). It's a huge nested object so it's not as easy as I thought to begin with. That pretty much the only thing I've been doing today, and I feel like I've added absolutely no value to the company and feels a bit ashamed not to have done it faster when I look back at how simple it actually was. Makes me wanna choke myself...
-
What retarded way of writing a json feed is this? what the fuck!
Each product in the feed is translatable, but instead of creating a new object in the feed with the translated content, there's an additional field pointing to a language code (this applies to all translateable fields).
Then each translatable field is appended the number which matches the number appended to the language field containing the desired language code.
In addition to that, the keys doesn't have any sensible meaning, but appearently they abide by som obscure "GS1 / GDSN" standard.
So for each "distinct" field I have to look up the definition of that key
If just the language code and the actual value keys was grouped together.. but no, the feed is ordered by the number after the 'D'.
Yeah for being stuck with something that looks like infinite scrolling, because one product object is fucking gigantic.
FUCKING INSANE MANIAC PIECE OF TRASH.
@#%!#€&7 -
Typical interview response from employers nowadays on a candidate's tech skills:
"We don't have the budget to teach someone how to work with the technology. We expect from you that you are already an expert and you need no guidance. We have neither time nor money for slowdowns. We are under pressure to deliver"
Back in the days "I'm willing to learn" used to be of value, but things have changed.9 -
*laughing maniacally*
Okidoky you lil fucker where you've been hiding...
*streaming tcpdump via SSH to other box, feeding tshark with input filters*
Finally finding a request with an ominous dissector warning about headers...
Not finding anything with silversearcher / ag in the project...
*getting even more pissed causr I've been looking for lil fucker since 2 days*
*generating possible splits of the header name, piping to silversearcher*
*I/O looks like clusterfuck*
Common, it are just dozen gigabytes of text, don't choke just because you have to suck on all the sucking projects this company owns... Don't drown now, lil bukkake princess.
*half an hour later*
Oh... Interesting. Bukkake princess survived and even spilled the tea.
Someone was trying to be overly "eager" to avoid magic numbers...
They concatenated a header name out of several const vars which stem from a static class with like... 300? 400? vars of which I can make no fucking sense at all.
Class literally looks like the most braindamaged thing one could imagine.
And yes... Coming back to the network error I'm debugging since 2 days as it is occuring at erratic intervals and noone knew of course why...
One of the devs changed the const value of one of the variables to have UTF 8 characters. For "cleaner meaning".
Sometimes I just want to electrocute people ...
The reason this didn't pop up all the time was because the test system triggered one call with the header - whenever said dev pushed changes...
And yeah. Test failures can be ignored.
Why bother? Just continue meddling in shit.
I'm glad for the dev that I'm in home office... :@
TLDR: Dev changed const value without thinking, ignoring test failures and I had the fun of debunking for 2 days a mysterious HAProxy failure due to HTTP header validation... -
Data representation is one of the most important things in any kind of app you develop. The most common, classic way to do it is to create a class with all the fields you want to transport, for example User(name, lastName). It's simple and explicit, but hell no, in my current company we don't play that kindergarten bullshit, the only way we know how to do things here is full hardcore. Why would anyone write a class to represent a Song, a Playlist or an Album when you can just use a key-> value map for pretty much everything? Need a list of songs? No problem, use a List<Map<String, String>>, OBVIOUSLY each map is a song. Need a list of playlists? Use a List<List<Map<String, String>>>... Oh wait, need to treat a value as a number and all you have are strings? That's what casting is for, dumbass.
No, seriously, this company is great. I'm staying here forever!1 -
Me: I'll comment that later
Also me: Why tf isn't there any comment
No seriously, comments and documentations are really necessary. Today I've been debugging for hours, why a certain variable has a certain value. Age of code: 15+ years. No comments. No docs. 🙃5 -
I value our most senior developer. His code is certainly clean and structured. He is the ultimate at KISS. However he's not a fan of testing and instead just says, well, did it compile? No matter how much I show him how great testing is, he comes back with how it's pretty unnecessary. Somehow, in the deep dark parts of the web, he finds articles that comply with his standing. I'm okay with him not making tests, I do it myself. But then when working extending or implementing his code, many of my parts are untestable because the parents are. Oye.6
-
I work for an investment wank. Worked for a few. The classic setup - it's like something out of a museum, and they HATE engineers. You are only of value if work on the trade floor close to the money.
They treat software engineering like it's data entry. For the local roles they demand x number of years experience, but almost all roles are outsourced, and they take literally ANYONE the agency offers. Most of them can't even write a for loop. They don't know what recursion is.
If you put in a tech test, the agency cries to a PMO, who calls you a bully, and hires the clueless intern. An intern or two is great, if they have passion, but you don't want a whole department staffed by interns, especially ones who make clear they only took this job for the money. Literally takes 100 people to change a lightbulb. More meetings and bullshit than development.
The Head of Engineering worked with Cobol, can't write code, has no idea what anyone does, hates Agile, hates JIRA. Clueless, bitter, insecure dinosaur. In no position to know who to hire or what developers should be doing. Randomly deletes tickets and epics from JIRA in spite, then screams about deadlines.
Testing is the same in all 3 environments - Dev, SIT, and UAT. They have literally deployment instructions they run in all 3 - that is their "testing". The Head of Engineering doesn't believe test automation is possible.
They literally don't have architects. Literally no form of technical leadership whatsoever. Just screaming PMOs and lots of intern devs.
PMO full of lots of BAs refuses to use JIRA. Doesn't think it is its job to talk to the clients. Does nothing really except demands 2 hour phone calls every day which ALL developers and testers must attend to get shouted at. No screenshare. Just pure chaos. No system. Not Agile. Not Waterfall. Just spam the shit out of you, literally 2,000 emails a day, then scream if one task was missed.
Developers, PMO, everyone spends ALL day in Zoom. Zoom call after call. Almost no code is ever written. Whatever code is written is so bad. No design patterns. Hardcoded to death. Then when a new feature comes in that should take the day, it takes these unskilled devs 6 months, with PMO screaming like a banshee, demanding literally 12 hours days and weekends.
Everything on spreadsheets. Every JIRA ticket is copy pasted to Excel and emailed around, though Excel can do this.
The DevOps team doesn't know how to use Jenkins or GitHub.
You are not allowed to use NoSQL database because it is high risk.2 -
Is it OK to punch a game dev who codes stupid numeric bugs?
So my wife got into Stardew Valley, that admittedly awesome comfort game farming simulator.
She went pretty far in the game, and found some item that was supposed to highly increase the damage she could inflict onto cute little monster thingies.
It didn't work as intended.
Since equipping the piece of shit all her hits did 0 damage. She tossed the item away but the problem persisted. And on and on...
She took to the googles to try and find some explanation, and apparently that is a fairly common bug for mobile devs.
Then she called in the big guns (that is how I'm calling myself in this case, you will see why).
Apparently there is some buggy piece of shitcode somewhere in the game with a numerical insecure routine that overflows the attack modifier. I.e. if it was supposed to increase from 1.990 to 2.010, it actually went all the way down to -0.4.
She was lucky her attacks weren't increasing the monsters' HP.
We found a forum post where some dude said that he managed to edit the game save file and reset the negative-value attack increase modifier variable. Seems easy enough at first, but my wife uses iOS. Nothing is ever so straightforward with apple stuff.
We did get to the save file, she emailed it to me (the file has no extension and no line breaks in it, so we facepalm'd on a couple attempts at editing it directly).
I finally manage to get it into my personal 11-yo laptop... that won't open a single line file that big.
Cue the python terminal. Easy enough to read the file into a string var and search for the buggy XML tag. Edit the value and overwrite into a new file. Send it back to her by email. Figure out how to overwrite the file in iOS.
Some tense moments while the game reloads... and it works!!!! Got some serious hubby goodwill points here.
Srsly, this troubleshoot process is not for technophobes. It is out of reach to pretty much every non-techy user.
And now back to the original question: If I ever manage to find the kid who coded a game-breaking numerically unsafe routine and shipped it as if every test in the planet had waved it bye-bye, can I punch them? Or maybe buy them a beer, let's see how I get to cash that hubby goodwill tonight :)7 -
Long story ahead
Background:
I recently started a job in a smallish startup doing web development in a mostly js stack as an entry-junior engineer/dev. I’m the only person actively working on our internal tools as my Lead Engineer (the only other in house dev) is working on other stuff.
Now I was given a two week sprint to rebuild a portion of our legacy internal app from angular 1.2 with material-ui looking components with no psd’s or cut-outs of any kind to a React and bootstrap ui for the front end and convert our .net API routes into Node.js ones. I had to build the API routes, SQL queries (as there were plenty of changes and reiterations that I had to go through to get the exact data I needed to display), and front end. I worked from 9am until 11pm every day for those two weeks including weekends as our company has a huge show this upcoming week.
I finish up this past sunday and push to our staging environment. The UI is 5.5/10 as we’re changing all of our styling to bootstrap and I’m no ui expert. The api has tests and works flawlessly (tm).
So we go into code review and everything is working as expected until one tab that I made erred out and was written down as a “Needs to be fixed.”
This fix was just a null value handler that took three minutes and a push back to staging, but that wasnt before a stupendous amount of shit being flung my way for the ui not looking great and that one bug was a huge deal and that he couldnt believe it slipped through my fingers.
Honestly, I’m feeling really unmotivated to do anything else. I overworked myself for that only to be shit on for one mistake and my ui being lack-luster with no guides.
Am I being a baby about this or is this something to learn from?1 -
I "failed" a SQL question once because I didn't use GROUP BY; I informed the interviewer that it wasn't needed because all the fields in the SELECT were aggregates and based on the WHERE clause I knew exactly what was being aggregated so there was no reason to echo the data value back. I continued that if there was a business or design reason for the echo then yes, the GROUP BY would be required.
-
Bought a nice widescreen monitor from Samsung through B&H Photo. 2 weeks later it wouldn't turn on. Shipped it in thrice for repairs and on the third time Samsung exchanged it for a new one. 7 days later the new one won't turn on. Same symptoms. The seller's money-back guarantee has expired, of course. No idea if Samsung will just give me the original value in cash so I can find another one from another manufacturer who knows how to make monitors. I'll probably just get ripped off. Time to die?21
-
So I tried IntelliJ. Interesting UI...but it’s bullshit that I have to pay for a subscription to integrate with Application servers. No thanks, I will stick with Eclipse. It’s free and in my opinion easier to use. IntelliJ is pretty, that’s for sure...but the value sucks.5
-
I'm covering for a colleague who has 2 weeks of vacation. Everything is made with Drupal 7, and it's a backend + frontend chimera with no head and 50 anuses.
So, last monday i get told i have to show a value based on the formula:
value * (rate1 - rate2) / 2
On thursday, every calculation in that page is suddenly wrong and I get balmed for it. Turns out, now it has to be:
value * (rate1 - rate2) / rate1 / 2
Today, I get told again the calculations are wrong. "It has to be wrong, the amount changes when rate1 changes!". There'll be a meeting later today to discuss such behaviour.
All these communications happened via e-mail, so I'm quite sure it's not my fault... But, SERIOUSLY! Do they think programmers' time is worthless? Now I'll have to waste at least 1 hour in a useless meeting because they cba to THINK before giving out specs?!
Goddammit. Nice monday.2 -
Demo
Backend Team : No one want to listen to technical details. A short 2 min demo what we have done.
Shareholders : Have you done anything?
Frontend Team : half an hour demo of validators and fields that sum values from other fields
Shareholders: Wow that is awesome, great job, nice to see, great value, lot of progress.4 -
Reading OpenSource lib that write in TypeScript is a nightmare
WTF:
export function concatMap<T, I, R>(
project: (value: T, index: number) => ObservableInput<I>,
resultSelector?: (outerValue: T, innerValue: I, outerIndex: number, innerIndex: number) => R
): OperatorFunction<T, I|R> {
return mergeMap(project, resultSelector, 1);
}
That is just fucking definition, no execution code inside1 -
So we have this administration page in the clients app that has tables of data.
The user can click on a row to edit or click "Add' to create a new one, doing so pops up a modal with a form full of inputs and a save button at the bottom.
The other day our client told me he was concerned that users would not understand how to edit data and that I should add some text below the first input field of each modal that says "Type in a new value and click 'SAVE' to change the [field name]"
As I implimented this crap, I took a few minutes to come up with a nice way of saying that his idea made no sense, added unnecessary clutter to the UI, and proposed some alternatives.
He essentially said, "Thanks for your much better ideas, for now let's just stick with what we've got and we can revisit this later."
Everytime I open that UI, I physically feel pain and get a little sick.5 -
Incredible that these companies with literally no product, and barely a website (if any) come around offering 100K+ jobs
They have funding out of their ass but literally NO real-world value... it's amazing to me.
Guess it really is not what you can do but who you know.1 -
For some reason I keep over engineering stuff to the point I spend 2 hours thinking the best way to do something. I'm making the backend for a project of mine and I wanted somewhat decent error handling and useful error responses. I won't go into detail here but let's say that in any other (oo) language it would be a no-brainer to do this with OOP inheritance, but Rust does OOP by composition (and there's no way to upcast traits and downcasting is hard). I ended up wasting so much time thinking of how to do something generic enough, easily extendable and that doesn't involve any boilerplate or repeated code with no success. What I didn't realize is that my API will not be public (in the sense that the API is not the service I offer), I'm the only one who needs to figure out why I got a 400 or a 403. There's no need to return a response stating exactly which field had a wrong value or exactly what resource had it's access denied to the user. I can just look at the error code, my documentation and the request I made to infer what caused the error. If that does not work I can always take a quick look at the source code of the server to see what went wrong. So In short I ended up thrashing all the refactoring I had done and stayed with my current solution for error-handling. I have found a few places that could use some improvement, but it's nothing compared to the whole revamp I was doing of the whole thing.
This is not the first time I over engineer stuff (and probably won't be the last). I think I do it in order to be future-proof. I make my code generic enough so in case any requirements change in the future I don't have to rewrite everything, but that adds no real value to my stuff since I'm always working solo, the projects aren't super big and a rewrite wouldn't take too long. In the end I just end up wasting time, sanity and keystrokes on stuff that will just slow down my development speed further down the road without generating any benefits.
Why am I like this? Oh well, I'm just glad I figured out this wasn't necessary before putting many hours of work into it. -
Isn't it all too ironic that the inefficient suck-ups get to keep their jobs all the time and get all the benefits? And how the hard-working people get sacked and disrespected all the time? It shouldn't be this way.
At my job I bust myself every day mentally to come up with the best solutions and I don't get taken seriously, I just get shrugged at.
Meanwhile, an undereducated friend of mine got his contract extended and got a praise from the manager because all he does is do what they ask of him and he slaves away instead of coming up with ways to better the company. He's just a useless, mindless grunt. There's no value in him.
Then another friend of mine is asocial and while he had been hoping to get a promotion for the five years he worked at the company, solving numerous important issues, this one younger kid who happened to be a suck-up who bumped up everybody's mood but was in fact as intellectually useless as a rock, he got promoted to team lead in two months.
That lackeys and lazy people get more respect than authentic and well-meaning people. What an ugly world we live in..8 -
Imagine buying a 16 tflops GPU from some manufacturer, yet the computing power is somehow shared, and when they need to produce some more GPUs, they just take some part of your 16 tflops, as well as from all the other people who bought these GPUs, so suddenly you have 15.6 tflops, yet money is never sent back to you, and you have no control over such decisions.
Oh, you tell me it's "robbery"? Yet federal reserve does the exact same thing by creating money out of thin air, basically taking their cuts off of every person's monetary value.
For your very real work, companies pay you with something that can be created out of thin air, and then that something loses its value when new tokens are created.
This is slavery. From now on, I'm going to call dollars "slave tickets".11 -
Designer: These form elements should not be textboxes; they should be dropdown menu's.
Me: No problem. Done.
Designer: Could you make X the only selectable option in field A and Y the only selectable option in field B?
Me: I sure can.
Me: Implements a dropdown menu with only one option, knowing that asking questions would label me as "difficult" and "technical". Uploads to production, decides to take a smoke break.
My coping mechanism: Maybe you should also add an Animator to the IK targets on your character controller in Unity instead of depending on a slerped IK weight value.4 -
Curiosity killed the cat.. or was it Opportunity?! 🤔
You get to learn new stuff daily.
Not one assignment is the same, and if it's similar, you can hijack the old code, improve it & turn in the better version of it.. or don't improve..totally how you feel that day..if you're not a crappy developer no improvement should still also be ok..
I love mostly adjustable schedule, so there's no biggie of I have a day or two of coders block & can't produce much of value..I can switch tasks & do some simple ones on those days..or just refactor.. all's good..
I love solving puzzles, every bug is a new puzzle I can play with..
So basically, I love being a dev, because it's like being back in school, but only with the subjects you like! -
hey devs, quick question:
does rust support branchless conditionnals and jump tables, and if yes where to look for syntax?
i found no example for branchless so far and jump tables are scary in rust (and i need a library to use them, it seems).
inb4 "why in the hell/ what possible use those have?!":
i use branchless to make a looping array and jump tables whenever there's more than 4 if statements with equal probability, and the deciding factor is a numeric value, so quite often.27 -
Please don't speak if you don't have anything of value to add. Professional world is not classroom where you get marks for class participation. There's this guy in my team who is supposed to be developer but acts like analyst/PM, talks shit, mostly repeats what other have already said. There's no single meeting where he hasn't spoken or added anything valuable. Hate him.7
-
Worst coding procrastination story?
Not necessarily coding, but anything that has to do with writing support reports for an application/feature. Good news is we have a dedicated dept for maintaining reports now, but there was a time developers were required to write and maintain reports (Crystal Reports). Starts out as data in grid, but de-evolves into ..
U: "This value here...can you make that red if its a Thursday before a promotion release on Friday and I forget to update the promotional percent?"
<month later>
U: "Why is this value red?"
<explain why it's red>
U: "That is so stupid, I wouldn't ask for such as feature. I never forget."
<month later>
U: "OMG! I FORGOT TO UPDATE THE PERCENT AND WE LOST OVER $100,000!! THE REPORT WAS SUPPOSED TO FLAG THOSE VALUES IN RED!!! I HAVE THE REQUIREMENT DOCUMENT!! ITS ALL YOUR FAULT!!!"
Not to mention the hours...HOURS worth of meetings filled with "Can you move the value a little to the left, a little more..NO! Too far! Now, make it bold...bolder..uggh...I said bolder, I thought you guys knew a lot about computers."
I eventually ignored the report feature with "I'll work on it later". 'Later' never showed up. Users eventually exported the data to Excel to write their own reports and now exporting data to Excel is a standard feature of our apps.2 -
Every once in a while the flexibility of dynamic types comes back and bites you in the ars:
So I created method that returns the date significance (day, month, year) or null when no date is set.
I chose a class constant DAY with the value 0.
This is not a problem in if statements as I always use === but in this case a switch made more sense. And as you can guess no date set (NULL) was handled in the self::DAY (0) case... 😐😑😶 Silently resulting in wrong results when no date is given! #£#@$& (and other comic swearing symbols)
Even though php7 finally has decent type hinting resulting in much clearer defined API's we can still go very wrong.
More love to Go for less verbose static typing! To bad we can rarely use it at the office 😥2 -
I live in a country where Dollars are of very high value, I got a job fteelancing and made some money, after that a friend's brother approched me with some fantastic ideas (I guess he thought of them because 'Hey, he made money, I can too') like building an online game, I told him that i wasn't either a designer or a game developer and he told me that I could go and learn... Yeah like if I can learn game development in a week or be a designer in the same amount of time. When I said no he told me if I didn't want to build a porn site, I kindly rejected again and told him that I like to build tools that are useful for other people then he said that he just wants to make people spend money on internet like if money was going to rain quickly. I didn't even ask but I'm sure he wasn't going to pay me for development. I'm sure that when I see him he's going to tell me more "Fantastic ideas"2
-
SCW (Secure Code Warrior) IS TOTAL, COMPLETE AND UTTER SHIT!
I keep finding outright and definite mistakes... for example: two solutions that are 100% identical - I copied and diff'd them to be sure I wasn't stoned... the code they show has ZERO comments, so you have ZERO context for anything (and it's written like shit on top of it - I'd fire a motherfucker if they turned in ridiculous crap like this regularly)... I've found answers where one is a subset of another so the "superset" answer should be considered correct as well, so you effectively have two right answers (in other words: this is one of those "you better pick the EXACT answer we WANT you to pick, even if another is TECHNICALLY correct too, doesn't matter, you gotta divine which WE say is right" situations)... there's not enough information given in some cases to even realistically attack the problem... and so on.
It's just fucking garbage, but now I HAVE to get a passing score on the fucking thing to meet a work requirement and you think anyone is going to give two shits if I point out the problems? Of COURSE not! Just need to check the box, so now I have to waste hours of my day fighting through this horseshit just to say I did it.
Is there any value in it? FUCK NO! It's actually NEGATIVE value since now I'm not doing what I'm actually paid to do.
And the worst part is I absolutely, 100% know all this shit! It's not like it's a problem because I fundamentally don't know the concepts. But because your platform is a joke it's making it a nightmare for me.
FUCK THIS SHIT! Friday is over early because of this, I'll bash my head against the wall again on Monday.2 -
I submit all my code changes to the integration stream. Co worker integrates my code removes all my changes that breaks his hacky crap. Then complains his stuff doesn't work. I ask him why he he did not conform to the requirments says cause this is what worked before. I look at code see he assigns a value in the message to zero. I ask ever so politely why he is changing the incomming messages. He says this is what works. I Then send an email to him telling him this in an error. He reply saying this it what works. At stand up he complains and says no messages are getting through it doesn't work. The team tells him to revert to the original code. (My code) and update his code after two days of emails to bosses and complaining he reports it works with my code after he is done. He is the senior senior chief grand Pooba and makes more money than me.
-
The value of a good walk...
So I was stuck with this problem. There's the data structure then there is the display of the data structure. Two copies of the data which is fine.
But the displayed copy is a pain to work with (WinForms) and there the was problem of having to handle events when the displayed data changed then update the back end actual working array and synchronize it so they're both up to date. Couldn't figure out a good solution. Actually slept on it. Still it didn't sit right to have two copies like that and sync it.
Went for a 20 min walk and BAM! Solution found. There was a way to just directly update the crappy WinForm and sort the data and keep the properties then when done displaying/selecting just convert to the working data format...so simple no synching required!1 -
One of my tasks for today was to change one (ONE! I REPEAT, ONE!!) field in over 2100 clients. SAP has a transation that changes anything you want in mass, all I had to do was select the clients I wanted to change and the new field value. This transation has been running since 2pm, it's almost 6pm and it's only halfway through.
Tomorrow is a national holiday and I wanted to focus on my personal project, but I bet I'll have to do this again tomorrow, because there's no way in hell I'm staying here for 4 more hours to get this done today, and 4/5 hours when I get home is not enough!
So yeah, fuck SAP for taking so long, and fuck whoever didn't notice sooner that we had to change this.4 -
In my country there is a huge economy deflation.
Like 1 year ago 1USD used to be 1500 pounds.
Nowadays 1USD is more like 7800 pounds.
Wait a second let me explain more into details the whole flow.
There are 3 to 4 prices we are being dealing with:
* Official Bank price that refuse to change the base price: 1500 pounds
* Bank ATM machines that exchange your dollars on a 3900 pounds per usd
* Black market: 7800 pounds managed by random mobile apps that spread rumors
* Foreigners currency: the only way to grab your reach dollars.
Long story short:
Whenever you want to win extra cash, you ask any of your relatives to lend you money from any bank in the world ( foreigners currency), try to ask in black market who is willing to exchange, you meet, you check on any mobile app what's the current price and you do the exchange.
So in order buy USD dollars on a low price, devs build 2 mobile apps one that send a POST request to change the amount in DB and a second one fo retrieve this value.
So whenever he want to buy dollars he change the value to the lowest. And whenever you want to sell the dev raise the amount slowly. So far the government has no regulations over developers why? Because the one behind the forensic are at least 60 to 70 years old more like their informations are dead.
So we struggle.11 -
Safari's developer console seems to truncate the output when a string longer than 140 characters is provided as a non-first argument to console.log or when it's a value in an object that is provided as any argument. You get ellipses, with no way to view the full string. Hovering doesn't get around it. Neither does copying.4
-
What's the deal with this carry on?
At face value this looks like intimidation, underneath, it may just be a local joker I don't know about.
Regardless, let me explain something, I don't know any and I don't know anyone who likes them. I have no problem whatsoever saying this to anyone, face to face!
My dad and my late brother are named after my grandads brother who saved my grandfathers life and died fighting fascists in the north Atlantic while keeping it open for the war effort during WWII.
I'll let this fly because I don't know enough being new here and all, but I had to clear the air. Okay??48 -
Fucking remote db doesn't want to work with me and workbench. DB is on an empty test server, no firewall issues on the network, powershell on my pc says ping ok, tcp failing though, server firewall not running, server up and running.
Tried to modify network access on db configs like bind-adress, set my db user "host" value to wildcard. Now I can log in on workbench with my user, yet root somehow fails, wtf?
And of course once the connection is live, no db us visible, accessible, nothing works. I'm so frustrated. About to nuke it and restart ... again!13 -
I ended my Medium Subscription today.
Reason:
Non Technical =>
Repetitive posts, often by the same author saying pretty much the same thing.
Multiple copied of the same post being suggested all the time.
Click baity titles which have no real content.
Amazing amount of self promotion rather than any actual value in the article.
Technical=>
Very slow loading of media on the pages, videos don't even load.
Provided solutions in tech based articles often unconventional, super harmful in long term if you have them in your code.
I do agree that they definitely have some good content, but I don't feel it's enough to make me stay given all these issues.
I'd rather just use it on my pc without logging in.5 -
My employer has an application for product ordering/maintenance. Sounds pretty normal. It's an Excel spreadsheet that uses VBA to do the work, with a ton of SQL functions for row validation and procedures for database functions.
The guy that wrote it was a contractor who left the company well over 5 years ago.
No one on my team knows VBA. Me being the new guy gets tasked with this shitty VBA application's upkeep. Any time one of the braindead users fat fingers a value and the form blows up, I'm responsible for telling them exactly why they are stupid and sometimes I have to fix it for them because of the protections on the spreadsheet.
I've been asking the business to back a project for my team to develop a replacement but there is already so much happening for IT at my workplace, and my team is so under staffed (3 devs? Really?) That we spend most of our time fixing broken old shit.
We get an intern next month. Hopefully things improve soon because this tucking time bomb application sucks for everyone involved.3 -
C is love, C is life.
Great language.
I genuinely don't get why so many people are struggling with pointers, considering it's a pretty straightforward concept. I understand that they can be complex in simplicity, but the concept itself is much easier to understand than say, references in OOP languages(despite being the same thing under the hood).
I mean it's just a number like any other number, except that number is treated as a memory address, and the star(* - dereference operator) just takes a value, goes to the memory address that is the value, and takes a value from there.
I feel like most explanations and tutorials just try to over complicate it for no reason.27 -
When dogecoin went out, I was a little curious kid. I knew small to nothing about cryptocurrencies, so I started mining some for the lulz on my shitty laptop. Holy fuck no one was using and mining this shit, so I was earning 500-600 DC by night. I did it for a few weeks, let the miner running when I was at highschool.
I stopped after one month since its value was inferior to the used electricity cost.
From time to time, I remember about this story about a 70000+ dogecoins, and I instantly want to chop my balls off and put some super strength bleach on the wounds while slapping myself with spiky plants.
I lost the wallet.1 -
I love being a part of a dev project as a non-dev employee, but I really wish I could leave VBA.
If for no other reason, because I'm tired of writing functions that end with "Me.Cells(Row, Column).Value" practically in my sleep.
There are a lot of other reasons, though...1 -
So here is an interesting story.
The company that I work went in collaboration with another company and as my company is a small startup we had only 2 employees. We had to do 2 different projects during the collaboration period.
I was put in-charge of an android application (At that time I had no experience of android development and it was one of their most important project without any guidance)
I was doing work of two companies and getting paid by one and I was getting shit from the company that we were collaborating with.
As a developer I value tasks and deadline but the company issued a new rule that I should stay in the office from 9-6 (strictly) which I didn't oppose. But the senior developers here stay strictly 9-6 but work only for about less 2 hours a day and get valued more.
I used to love working on weekends improving myself in the process but working over time is not valued by the company.
( BTW I completed their project in about 1.5 months ) -
So at one point I worked on an inherited project that had the worst code I've ever seen. I mean bad, so bad there may no quantifiable measure that can accurately convey how bad. We ended up naming the thing 'the hydra', cause it had a million issues and they just kept growing as we fixed things. To my point, in C++ they implemented their own primitive type Boolean32 as a signed int32 pointer. If that wasn't enough they used it as an octal bit mask. They also switch the value using logical and / or between 2 numbers, 037777777777 and 000000000001. So essentially they only switch this value to 1 or -1 and end up comparing it to their own const true or false. In c++ any value not 0 is == true...apparently not in this code.undefined octals why me? why would you do that? terrible code awful code c++ coding no designs bad code
-
I don't know how it's out there, but where I'm from, we don't get a lot of practical classes. The curriculum has tried to include practical alongside theory but its just not working. All we do is theory and more theory. Maybe include a major portion of marks for practicals rather than theory. And yes, please no coding in paper.
Another major thing we lack is teaching logical thinking. I have met final year under grads who find using a (!foo) to invert the value of foo mind blowing. They would rather use a full blown if-then statement to do the same. I think we need to incorporate chapters that motivates students into logical thinking to make better programmers.
Another essential part CS education around here lacks is in relevant examples and chances for internship. If you're studying something, I believe you would understand it much better if you see and experience it. Curriculum should include a real world project that you would use in a daily basis. Maybe break down and analyse a successful application and its component. -
I have been working as a freelancer for a little while now. I recently started using upwork. The first job that I got on upwork was titled: “help me”, the bio explained that it was with node.js. Later, during the interview, the client mentioned that it was 30+ hours a week. I was kind of confused. I had no idea what I was getting into. A little bit down the road, he provided me with the project. This is when I almost wanted to jump off a cliff. The code was organised as if it was a c or c++ app and I couldn’t follow anything. The guy thought that “pass by reference” was a thing in JS. I cried. Granted, with objects, there are some reference exceptions, but generally passed by value. The code is like spaghetti... I still have 2 months left on the contract. It’s awful.5
-
Just had a so called "cyber security" seminar in college today.
The guy who claimed to be a trainer or somewhat network security guy or something behaved enigmatically with utter consistency. He obviously claimed to know facebook hax0ring though.
They were basically there to advertise their complete crap: csksrc.org
(Ethical Hax0ring Course) (also claimed their site to be 99.9% secured - GREAT!)
After obtaining a ISO*** standard cert or after taking multiple sessions on "advanced ethical hacking" if you go about telling peeps in colleges that: "The single way to hax0r a facebook account is CSRF!" "Will hack your facebook account by MITM through malicious WiFi Ap." Then, NO neither I want your shitty cert nor do I want to be in your team and create the next level of "advanced ethical hax0ring - CEH course". Reason why I get cringed when peeps start about their certs and the ISO*** value it contains. What ISO value does your brain cells contain though? -
I accept offer letter from x company.
And just before 3 day of joining i got far better offer from company y.
So i told company x that i got better offer I don't want to join there anymore.
They told me that after accepting i should not find new job, my word has no value, and told me "keep that attitude (sarcastically).
I know i did wrong. How do you guys handle that?
Is it wrong to accept other offer after accepting one?7 -
So at the HS I go to, there are 4~5 programmers (only 3 real "experienced" ones though including me).
So coming from JS & Python, I hate Java (especially for robotics) and prefer C++ (through some basic tutorials).
Programmer Nº2 is great at everything, loves Objective-C, Swift, Python, and to a certain extent Java.
Programmer Nº3 loves Python and used to do lots of C#, dislikes Java and appreciates Go (not much experience).
So naturally I get shit on (playfully) because of my JS background, because they don't understand many aspects of it. They hate the DOM manipulation (which is dislike too tbh), but especially OOP in JS, string/int manipulation, certain methods and HOISTING.
So, IDK if Java or C++ (super limited in them) have hoisting, but if you don't know what hoisting is, it means that you can define a variable, use it before assigning a value, and the code will still run. It also means that you can use a variable before defining it and assigning a value to it.
So in JS you can define a variable, assign no value to it, use it in a function for instance, and then assign a value after calling the function, like so:
var y;
function hi(x) {
console.log(y + " " + x);
y = "hi";
}
hi("bob");
output: undefined bob
And, as said before, you can use a variable before defining it - without causing any errors.
Since I can barely express myself, here is an example:
JS code:
function hi(x) {
console.log(y + " " + x);
var y = "hi";
}
hi("bob");
output: undefined bob
So my friends are like: WTF?? Doesn't that produce an Error of some sort?
- Well no kiddo, it might not make sense to you, and you can trash talk JS and its architecture all you want, but this somehow, sometimes IS useful.
No real point/punchline to this story, but it makes me laugh (internally), and since I really want to say it and my family is shit with computers, I posted it here.
I know many of you hate JS BTW, so I'm prepared to get trashed/downvoted back to the Earth's crust like a StackOverflow question.6 -
It's been 3 days since I started my dev job and it's been pretty stressful. I could have posted at least 3, maybe 4 rants each day. Mainly about trivial bullshit that I let get to me.
Lets just say it came to a head today and that's when one of my bosses, who doesn't even really need to know who I am, decided to help me out. No reason why, just being kind.
I get home to find my other half had been making my lunch for me for tomorrow and had made dinner for me as a surprise. Didn't ask her to do it, she just did it out of the kindness of her heart.
It just made me realise that I'm actually surrounded by great people who I value a lot and appreciate more and more each day. -
Can anyone help me with this theory about microprocessor, cpu and computers in general?
( I used to love programming when during school days when it was just basic searching/sorting and oop. Even in college , when it advanced to language details , compilers and data structures, i was fine. But subjects like coa and microprocessors, which kind of explains the working of hardware behind the brain that is a computer is so difficult to understand for me 😭😭😭)
How a computer works? All i knew was that when a bulb gets connected to a battery via wires, some metal inside it starts glowing and we see light. No magics involved till now.
Then came the von Neumann architecture which says a computer consists of 4 things : i/o devices, system bus ,memory and cpu. I/0 and memory interact with system bus, which is controlled by cpu . Thus cpu controls everything and that's how computer works.
Wait, what?
Let's take an easy example of calc. i pressed 1+2= on keyboard, it showed me '1+2=' and then '3'. How the hell that hapenned ?
Then some video told me this : every key in your keyboard is connected to a multiplexer which gives a special "code" to the processer regarding the key press.
The "control unit" of cpu commands the ram to store every character until '=' is pressed (which is a kind of interrupt telling the cpu to start processing) . RAM is simply a bunch of storage circuits (which can store some 1s) along with another bunch of circuits which can retrieve these data.
Up till now, the control unit knows that memory has (for eg):
Value 1 stored as 0001 at some address 34A
Value + stored as 11001101 at some address 34B
Value 2 stored as 0010 at some Address 23B
On recieving code for '=' press, the "control unit" commands the "alu" unit of cpu to fectch data from memory , understand it and calculate the result(i e the "fetch, decode and execute" cycle)
Alu fetches the "codes" from the memory, which translates to ADD 34A,23B i.e add the data stored at addresses 34a , 23b. The alu retrieves values present at given addresses, passes them through its adder circuit and puts the result at some new address 21H.
The control unit then fetches this result from new address and via, system busses, sends this new value to display's memory loaded at some memory port 4044.
The display picks it up and instantly shows it.
My problems:
1. Is this all correct? Does this only happens?
2. Please expand this more.
How is this system bus, alu, cpu , working?
What are the registers, accumulators , flip flops in the memory?
What are the machine cycles?
What are instructions cycles , opcodes, instruction codes ?
Where does assembly language comes in?
How does cpu manipulates memory?
This data bus , control bus, what are they?
I have come across so many weird words i dont understand dma, interrupts , memory mapped i/o devices, etc. Somebody please explain.
Ps : am learning about the fucking 8085 microprocessor in class and i can't even relate to basic computer architecture. I had flunked the coa paper which i now realise why, coz its so confusing. :'''(14 -
Please share your thoughts on Dependabot security alerts on Github, more specifically for NPM packages in package-lock.json.
In 99% of cases I've found them useless as:
- package-lock.json is in the repo, but not in the NPM package (=no value to users)
- most of the updates relate to devDependencies (=no value to users)
- it clutters the git history (and changelog if it is auto-generated) with a batch of patch updates (updated depx to .1, .2, .3) while the only important thing in the next release notes is the delta (updated depx from .1 to .3) (=no value to users)10 -
Not sure if other programming languages class a Boolean as an integer value buuuuuuut...
The amount of times I've seen people do code such as...
if(value == true) {
variable = "blah blah";
} else if(value == false) {
variable = "blah";
}
Instead of doing a simple 1D array and going...
variable = strings[value];
It drives me crazy, such a small thing that has no real benefit but... Ugh... Whyyyyyyy3 -
Grrrr
I love JS, but I hate browsers.
Universal ES5 way to initialize a date from a input value in "dd.mm.YYYY" format:
var split = input.value.split('.');
var from = {};
from.day = parseInt(split[0]);
from.month = parseInt(split[1])-1;
from.year = parseInt(split[2]);
var myDate = new Date(from.year, from.month, from.day);
// if a timestamp format is needed:
var myDateTimestamp = +new Date(from.year, from.month, from.day);
No, I won't use moment.js or other bloat-braries just for fucking dates.1 -
Switching to Java after several years of c# experience(new project)... and it feels like lobotomy has been performed on both the language/machine and my part - no var keyword(yet), horrible work with the collections (but thank god we have at least the streams), basic things like Long are actual objects(not a value type), strings must be compared with .equals ... and suddenly even simple tasks take me horrendous amount of time.9
-
The move by Amazon to increase prices of Prime seems to me to be a negative move.
Now I’m not saying the increase hurts me financially or anything but it forces people to make a decision where there wasn’t one before.
With a few seconds of though it is easy to see that what we are paying for is their Amazon Prime Video, because there is no change or update to the Prime delivery services.
So now you have to think...
“Is Prime Video worry this increase?”
I don’t know about you, but personally I see Prime Video as a “me-too” product that adds little or no value.
I’ll keep Prime because I order a lot of shit, but others without this frequency of purchase may decide to leave.
Seems like forcing people to make this decision may not be a good move for Amazon.9 -
Tldr:
Can't fucking figure out why I'm the only one who can't solve a DP problem in code, when me and friends use the same idea and no one knows why only mine doesn't work...
We are given a task to solve a problem using DP. My friends write their code with the same idea as a solution. Copying the code is not allowed. I follow the same idea but my code won't work. Others look into it, in case they find errors. They can't find any.
The problem (for reference):
Given a fixed list of int's a = (a_1,a_2,...,a_n) and b = (b_1,b_2,...,b_n), a_i and b_i >= 0, a.length == b.length
We want to maximize the sum of a_i's chosen. Every a_i is connected with the b_i at the same index. b_i tells us how many indexes of a we have to skip if choosing the corresponding a_i, so list index of b_i + b_i's value + 1 would be the position of the next a_i available.
The idea:
Create a new list c with same length as a (or b).
Begin at the end of c and save a_n at the same position in c. Iterate backwards through c and at each position add the max value of all previously saved values of c (with regards to the b_i-restriction) with the current a_i, else a_i + 0 if the b_i-resctriction goes beyond the list.
Return the max value of c.
How does that not work for me but for the others?? Funny enough, a few given samples work with my code. I'm questioning my coding ability...7 -
At a FIFTH interview call and waiting.
Scheduled at 4pm, just got to know the HR himself is in a fucking meeting. So procedure would resume at 5pm. Like seriously?
Why do these big corps not give a fuck about applicants' time. Why schedule at 4pm in the first place.
Also scheduling at 4pm so I miss another work day at my current company...
No value for our time :(1 -
The customer may always be right, but you are not a customer, you are a client. As a client you have come to us because you have no idea what you are talking about. Rarely do you even know what it is you even want. So how can you be right about something you know nothing about. I want you to be happy with the end product; I emotionally need it as it determines how I value myself as a developer. So trust me when I tell you that you are wrong. That is why you are my client. To give you what you never knew you wanted.
-
Holy shit big companies are absolutely rubish. How on earth do they not think about the long term. I'm like "look what we are doing isn't right, we can't make new functionality that will no longer works in 6month. The other department webservices are changing and you're well aware of that" and they're like "we need to produce value, we don't have the resources, blabla". Why should I care? f#ck you it's not my company and don't come back crying that it's not working.
-
Maybe I'm stupid, but I'm annoyed that there are no good ways to debug Blazor WASM.
It doesn't help to tell me that I got a null value, unless the error tells me which of my 50 variables is causing it5 -
The amount of dry runs we need to do for a "laid back" presentation is fucking insane. Every other day we waste 30 minutes to an hour going over the same information and to top it off it's during lunch time.
Lunch meetings should be discouraged in the office, and I should be able to leave a meeting if I'm getting no value from it.
Just really sick of wasting time on shit that does not matter. -
It's not a real dev regret but it's related to it: Not being able to fix a price or a value for my skills.
It's a real regret.
Just coming out of college I have tried my hand at freelancing at found it real hard to fix a value for what work was offered because I just found it weird to fix a monetary value on something that I've done for free for my entire life ( at school and uni I mean).
To make it worse my first experience was with a grad student who wanted me to complete her project.
Now being from India, I know that we have a stereotype of doing work for a lower price.
But this girl took the cake.
She wanted me to create a custom Image classifier using tensorflow.
It had to train with live images and then detect those images in the live video feed.
It's quite simple but still training the basic network(which would be used to just detect features) would take a decent amount of time and effort.
No pre trained models was also a prerequisite for her.
After hearing all her requirements I asked her what price she was willing to pay.
She said 50$ lump sum.
Being really confused as to what to say to that I just stopped replying.
To this day I have no clue what would be a reasonable price to quote a client like that.
After that I just continued dealing with people I knew personally and am currently doing that as an internship. But entering the proper freelancing system again has become a kinda weird thing in my head now, since I have no clue as to what price to put on my skills.
Is there any advice that any of the more experienced people would give?
Also consider the fact that I'm relatively fresh out of college and have no corporate experience.
Even if you've read my rant and have no advice it's okay. I guess this is a path of self realization after all.3 -
!rant
How do I set a default value for a dropdown if no option is selected?
I tried
<option value="">Select one option</option>
or value="0"
It gives me a NullPointerException10 -
Just had to debug this javascript bug. Not sure if I should get a better keyboard or only use strongly typed languages.
if(rating.upperBouds > maxRating) {
// this code never runs no matter what value I give to upperBounds
} -
The CloudWatch API is an awkward piece of shit.
No convenient way to just ask for the latest value of a metric. Gotta supply a time window and hope metrics were actually reported within that window.
Oh and make sure your timestamps are in ISO 8601 or the request will fail (but the SDK does zero validation so a unit test won’t catch it of course).
Oh and you have to assign an arbitrary ID to each metric query in your request even if you don’t care about mapping the results back to the queries. And the regex for the ID is just fussy enough to be mildly irritating.1 -
Shitty legacy codebase made by shovelling pile of different shit by some 'cool dude' who left the company 3 years ago. Fixing bugs on this pile of shit all the time, but also I have to document everything as documentation wasn't there at all and fix the whole damn project in the meantime. No linters, no types, ancient libraries that have shitton of issues, hacky behaviours wherever you look, no tests whatsoever.
Except when we want to refactor/rewrite we don't get time for fixing the whole shit as it is worthless - there's no value for customers in that.
the other one was shitty HR talk which consisted of bashing on my technical competencies by computer illiterate troglodyte after which I left the company. They asked me could I stay for 2 more months.
That was that one single NO that felt so great that I will remember it for the rest of my life. -
This place I’m consulting at just had a new Directory of Change, first policy she made for IT is mandatory 3 working days wait for any release in Test and 2 weeks for Prod. That includes application config value update in Test database. We think she might have misunderstood her job title Ms. Director of No Change..2
-
Im beginning to think im stuck in an infinite loop of learning. This fucking bullshit never stops. I just continuously keep learning new shit and the more shit i learn the more i realize how much bullshit i still have to learn
It creates an illusion as if i know nothing
Just when i thought i see the end of the horizon and reach it only then i realize it just keeps on going into oblivion, as a sphere
Its like im trying to catch and find a corner of a sphere
There aint none
Its pointless
Is it also pointless to keep learning like this?
Perhaps this whole existence is pointless
Real talk now whats the point of existence bro
No matter what you do or dont do it doesnt matter
No matter if you're successful or not it doesnt matter
No matter if you learn all the bullshit in the world you're still gonna die and it wont matter
No matter how much i learn, it still and will always appear as if its not enough to these shitface recruiters and companies, to them it doesnt matter
Nothing matters. Everything is empty and meaningless. The entire life itself is. I dont value life. I dont care if i live or die. I feel no joy when i succeed and i feel no sadness when i fail
The tiny little bit of joy or success cannot outweight the years of sadness depression emptiness and failure the life has dumped onto me in spite of my hard work and continuous learning
Hhhhhhhhhhhhhhhhhh20 -
Trying to add money to a prepaid SIM card today. Their website is a mess. Plus and minus buttons were not functioning, so my only option was to add 15 euro. Checked the console, no errors. Tried triggering the buttons jQuery, no luck. Found a data value attached to the submit button set to 15. Changed to 10, clicked submit, and BOOM, it worked! You just got engineered!
After I paid, I was curious, went back and set it to -15, and tried it again. Unfortunately, they know about backend validation. -
Ops teams that are "assuring" stability of production by being the only ones who can click to deploy to Prod add no value.1
-
Team building exercises... Curious to hear your opinions....
They annoy the hell out of me personally and I can't see the value in them...
Have bonded way more with previous teams by simply working on a project together. No BS exercises, or even scrum for that matter, we just respected each other and that seemed to effortlessly let us make each other better at our work.1 -
Swift.
First, they added features that no developer understand : what the fuck is an optional value ?
And the documentation for iOS development is horrible. It took me 5 days to understand how the fuck we can make a POST HTTP Request with this fucking bad framework.3 -
Just had the displeasure of working with knockout, how is it that a JS library can be soo fundamentally flawed that you cannot concatenate a string with a variable inside a binding definition.
All I want to do is create a css class using the value of a variable inside an itteration with a prefix, so that I can write other less bad code to get around KO's other limitation, but no, you cannot concat, why would I want to do that inside of javascript.
Useless pile of tosslet2 -
A friend asked me a few days ago if I could maybe be interested in making their small company a website and accompanying CMS, because none of the out-of-the-box solutions seem to suit their needs. I agreed to think about it - at least let's see what the requirements are and so on, and see if I could and should do it or maybe redirect and point them to a better direction. Always help a friend in need is my motto. And to clarify, with these people I can be sure they're not considering this a friend favor (i.e. doing something for free, or for really cheap), but these people tend to be willing to pay relatively well.
But to the question: I've never done freelance work on this field - I have absolutely no idea how to evaluate the value of my work, e.g. how much should I ask? And what are the things I should take into account and think of differently versus being on full-time payroll in some company?1 -
Feeling really lonely as the only one who cares about ethical tech. Everyone around me just wants to build money making products and it doesn't matter if it adds value, only if it makes money. I wanna do good things with tech but it's getting harder. And my company just put a new CEO in charge who has a business plan but no vision. No added value. Just taking money from customers, making them addicted to the product. That's all that matters.9
-
So I've spent some time learning a little about the halting problem, and it's quite fascinating. I tried to simplify it down to these few functions. What do you guys think? Obviously, psuedo-code, so don't get too caught up on the syntax 😆
The Halting Problem:
public String doesItHalt(Callable function){
...
if (...){
return "Yes"
} else {
return "No"
}
}
public int someFunctionFooThatHalts(){
...
}
public int someFunctionFooThatDoesNotHalt(){
...
}
public String inverseAnswer(value){
if (value == "Yes"){
return "No"
}
if (value == "No"){
return "Yes"
}
}
public String inverseHalts(Callable function){
return inverseAnswer(doesItHalt(function))
}
————————————————————————————
$ doesItHalt(someFunctionFooThatHalts)
Yes
$ doesItHalt(someFunctionFooThatDoesNotHalt)
No
$ inverseHalts(someFunctionFooThatHalts)
No
$ inverseHalts(someFunctionFooThatDoesNotHalt)
Yes
$ doesItHalt(inverseHalts(doesItHalt))
???2 -
Working as a Dev for a while now, I tell new people not to bother with it. There is never any job satisfaction as people in charge never understand the basics.
Instead of learning to write efficient code, figure out how to solve real business problems, work towards a maintainable flexible product to quickly deliver value on changing requirements, write automated tests to improve quality, maintainability and prevent live issues - basically do anything a good Dev strives for - you will just constantly end up working for people with no interest beyond the next couple days, on a shit code base that no one can understand, with people that don't want to learn anything about software design and just check boxes off.
Apart from pay this must be the worst career possible in a technical field.4 -
Heya devrant, long time no see!
Anyway here's a thought.
A lot of the time I wanna upvote stuff on this site but I'm terrified of upvote inflation.
I feel it's not clear to me what the threshold for upvoting should be and if I upvote multiple things in a row I feel like my upvote is losing value.
All of a sudden it becomes a big decision.
Yeah it's overthought like crazy but can anyone else relate?5 -
Duuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuck off you bloody infamous basterds flattening their fat asses at Microsoft.
I wasted half of my dev day to configure my wcf rest-api to return an enumeration property as string instead of enum index as integer.
There is actually no out-of-the-box attribute option to trigger the unholy built-in json serializer to shit out the currently set enum value as a pile of characters clenched together into a string.
I could vomit of pure happiness.
And yes.
I know about that StringEnumConverter that can be used in the JsonConvert Attribute.
Problem is, that this shit isn't triggered, no matter what I do, since the package from Newtonsoft isn't used by my wcf service as a standard serializer.
And there is no simple and stable way to replace the standard json serializer.
Christ, almighty!
:/ -
I first try to figure out why I really want to build this and (if the project is intended that way) why someone would use it.
Then I strip the idea down to its bare minimums so I know what I should build for it to be of any value.
And then I start building until I no longer think it's worth working on the project.
For instance:
I am kind of surprised to see that in a world where cloud and apis become more and more leading, there isn't really a commonly accepted and flexible api management platform.
There are some cloud based platforms out there that can be configured using some interface but why is it like that? Surely you aren't going to deploy multiple versions of your core with different platforms right?
That's where my latest project comes in. I want to create an on-prem api management platform which you configure to work with your api during development. Then you can deploy it to any infrastructure alongside your core api.
This way you:
- are not bound to a specific cloud
- don't have to worry about security and firewalls
- get user management and rate limiting for free
I will probably create a collab for this once the platform is mature enough.1 -
that tech will collapse as it provides no real value and I don't have the chops to switch to a different industry2
-
Oh yeah, I'm totally an "alpha" male, which means I don't know jack shit about the real world but act like I do, because see, I AM A MAN. Men are "biologically configured" to hunt and establish dominance over these pussies called "Beta males".
It means I got no personality so I spend almost all my time in the gym. Who needs friends when you got muscles am I right?
It means everyone hates me but I don't show that it hurts deep inside. I have deluded myself into believing that as A MAN, I have to create my value in society.
That object you call your wife? Pfftt.. She should be in the kitchen all of the time, because what else women are good for anyway? Oh yeah, SEX. A woman is bound to provide pleasure to her man and her man only. Why would you let her leave the house?25 -
A friend of mine studies mathematics and he told me about a project he has to do and we worked on it together a bit: Numerically calculate the arctan.
He dug out a nice series by (the one and only) Euler and we started massaging the thing to get it into a bit of a nicer form (there were (n!)^2 and other shenanigans) and we eventually succeeded after some stupid simple errors and arrived at a quite simple recursive progression. After that he also found a formula to transform a given value into the region where our formula actually mimics the arctan and we proceeded to proof this formula. The programming was straight forward and now we only have to find the radius of convergence which I suspect is pi^2 (but no proof).
I had a lot of fun doing this, fiddling around with the formulas and then programming it to see it actually becoming real.3 -
I made the Star Wars Crawl using vanilla web tech and show it on my website once the Konami Code is entered.
IT TOOK ME 2 HOURS, WHY WOULD I DO THIS? I always end up doing random mini-projects that amuse me but bring litteraly no added value to my work. 😂😭 -
How has your experience been with Udemy courses?
I've taken three courses among which a low quality one and I'm not impressed at all:
- not in-depth enough
- no quality control on courses
I think that I learn much more from official documentation (MDN, books,..) than from such courses in general.
I've taken Lynda.com courses and they are of the highest quality and learning value. Lynda.com was amazing and professional. Pluralsight, same thing.
I have to learn how to filter courses better.
Onwards to more learning..4 -
Me and a friend are making a discord bot, and added a warning command to warn users.
All was going well, and when we tested the deleting a warning it seemed fine. I then tried to delete all the warnings one by one, when we came across a problem. It wont delete the last warning in the array, the 1st, 2nd, 3rd etc? Thats fine, just the last index that isnt working.
Our code is like this:
list = data.warns//a list of JSON format warnings
console.log(list)//shows the value is in the list
console.log(list[index])//shows the value
delete list[index]
console.log(list)//shows its gone
data.warns = list;
console.log(data.warns)//shows the value is still no longer present
data.save().catch(blah blah)//no error is caught, and nothing crashes, it proceeds to send a message to the channel after this
but then the value at index is still there in the database as if it didn't save it, but only if the index is the last item in the array.
We have been stuck on this for over an hour and I now remember why I hate programming.2 -
Way too long story short: Needed to figure out how to use jQuery to update a table that had no classes or IDs to help you tell what's inside it. Worked out a looping structure to read the contents of the cell with the dependent data in each row, and then update the cell that needed changing depending on the value of the first cell.
Minified the solution and dropped it into the console. Worked exactly right on the first try. -
I halfway remade a 2d radar in shadertoy (original in description).
https://shadertoy.com/view/wt3SR7/
(watch it in 640x360 by zooming in or out until you get that res, I tried to main aspect ratio, but I hardcoded one value because I'm lazy)
shaders are tough to get started with:
no breakpoints.
logging doesn't make sense so it's avoided.
if's are replaced with step statements.
if you suck at math, you suck at shaders.
if you suck at trig, you suck at shaders.
hardcoding values is viable debugging.
hail hsb2rgb for pretty colors (I have no fucking idea how does it work though).
I tried writing here the challenges I found while making it, but most of them are heuristics and are hard to follow/explain in just text.
I can say though, that sometimes you come up with a solution, but it doesn't look really good, so you have to use something else.
or sometimes you come up with a solution but it also creates unwanted coloring that you have to erase.
or sometimes you have no fucking idea what your operations results are, or you get dizzy by the math. Hardcoding helps wonders.1 -
A lot of the skills I use at work are actually learned on my own time. And a lot of the time, it feels like I trying to drag the team forward but everyone else does things that drag them, and thus me as well, backwards.
There's always work but most of it is low value and there's just less and less time to make things better because no one else has any opinion of how things should be...
Maybe I should just give up... Again....
I really need to find a better job or at least one without so much technical debt.
Feels like actually my PM is exactly like the name of in Phoenix Project... But I guess he'll never take any meaningful action.
But when I'm not sure what that is... Guess it really is hiring the right people and doing things right from the start, it at least fixing them immediately.
**END internal monologue and summary** -
Me: Why do we do this this time consuming, low value thing?
My tech lead: Because if we don't, a box becomes red on some executive report.
Me: Why is this deadline so important? It's not customer facing or any kind of critical bug/vulnerability?
My tech lead: Because it was a company wide mandate, and we'll show up on some executive report if we're late.
Me: *angry dev noises*
They must dole out lashings to the tech leads and the directors any time we fail to meet some completely arbitrary demand. The act like the world is going to end any time we get too close to a deadline 🤦♂️
Makes no sense that they then turn around and worship the ground senior leadership walks on. I wonder if it's some weird form of stockholm syndrome.5 -
Shit is getting more and more weird.
Context updating hooks inside useEffect is just icing on the cake especially the comment about how putting that hook in useEffect dependecies would cause infinite loop. No 💩, Sherlock!!!
No dumb components in this project except maybe buttons.
Every fucking component has tons of business logic and you can't simply tear it apart as data structures are all over the place. Prop drilling with every drill-step recieveng data of a different type.
We are using Context. For just one value. One. That's it.
Fuck this shit! This shit beats every anti-pattern approach I saw in my whole life, and this is my 40-ish project!
Over engineering by stdOut playing in the backround while I curse at this POS code.
The product is cool though. And it works™ -
I hate when I visit a new web framework's site and see documentation that promotes HTML tags like this:
<input type='text' name='foo' value='{{val}}' />
If you don't know enough about which quotes you should use and why... I have no faith in the quality of your software solution. -
Just tried Xiaomi Mi Band vibration alarm. It literally only gives 15 short bursts over the 10 seconds and then it stops. There's almost no configuring available in their app except for snooze option which only has default value of 10 minutes, so it means you're stuck with just choosing an alarm time.
Do they actually expect people to wake up by that?4 -
Question for iOS Swift guys:
Since Implicitly Unwrapped Optionals are now dropped for a while, and everything is an optional, hiw can I now declare property that has no value and intializer will not make fuss?
I used to do this:
class Bullet {
var calibre: Double!
}
This way I can avoid initializer which gets useful when there are properties which hold complex types, which get useful when writing tests.
If I remove ! Then compiler complains.
If I put ? Then My code becomes crap of guards and ifs to check for optionals.
Really hate this Optional thing in Swift. Half my time when I jave an issue is related to optionals.
Btw,
let x: Int! = 10
let y = x, yields y: Int? -
Hang with me! This is *not* a math shitpost, I repeat, it is NOT a math shitpost, not entirely anyway.
It appears there is for products of two non-trivial factors, a real number n (well a rational number anyway) such that p/n = i (some number in the set of integers), whos factor chain is apparently no greater than floor(log(log(p))**2)-2, and whos largest factor is never greater than p^(1/4).
And that this number is at least derivable, laboriously with the following:
where p=a*b
https://pastebin.com/Z4thebha
And assuming you have the factors of p/z = jkl..
then instead of doing
p/(jkl..) = z
you can do
p-(jkl) to get the value of [result] whos index is a-1
Getting the actual factor tree of p/z is another matter, but its a start.
Edit: you have to provide your own product.
Preferably import Decimal first.3 -
Python:
TypeError: unsupported operand type(s) for %: 'tuple' and 'dict'
Ugh there's a comma somewhere. I kinda appreciate how easy it is to make a tuple, but at the same time I don't. If there's no value after a comma with only one value behind it, could the linter at least mark it as a warning?2 -
Apple products are free as long as you spend too much money.
Inspired by https://devrant.com/rants/1552084/...1 -
I'm in a big fat fucking stinking rut, as in progress on this project has absolutely stagnanted.
Gonna rubber face your duck now **UNZIPS** excepts I don't have zippers, as joggers are the one true way; fake Adidas til I fucking drop.
Brain damage aside, I understand both how I've layed out the data and what I'm supposed to do with it. We have a virtual machine, an array of instructions and arguments for a given process within it, and we need to walk this array and map values to registers.
We also need to spill values inside registers to stack, IF they are required at a further point within that block. This also isn't terribly complex. We simply look forward in the array and see if the value is an argument to any instruction that *needs* this value to be loaded (ie, within a register).
So this implies multiple iterations; we need to better understand how one particular value is used throughout an F before we can make a final decision on how many registers and stack space are actually needed for the whole block.
Here's where it gets tricky. If there's a call, we need to be certain that the symbol being invoked has already been fully processed. Besides the obvious fact that recursion fucks me up, there's another matter: say a private method gets invoked by another private method. We can take advantage of this, by which I mean, sacrilege incoming so put on this toga.
Looking at the output for C compilers, it would seem this is not done in practice, I would assume because it's a pain in the ass. But when you have the guarantee that F will only be called internally, as that's what "private" means, there's two ways it can go:
0. It's well below the 13-20 cycle threshold, so you inline the fucker. No suprises there.
1. It's a more involved affaire, and invoked in more than one place, so you don't inline it. Codesize matters.
Recursion and [1] are the big deal things holding me back. Not because it's too hard, like I said this is kindergarten level abstraction. I'm just slow and fanatical, which is how I prefer to spell "constant obsessive paranoid delusions". I can see the potential optimization I can pull here, so I'm stuck trying to figure it out.
Idea would be, handling the register allocation and stack spill for an internal-internal (or deep internal; what we like to call a "guts" method) in synchronization with the *calling* processes. This is, fundamentally, violating all conventions -- but so under the hood no one will notice.
Let me give you an example. If we were to pass some value to a function, expecting to mutate it and get a different value back, in a lot of cases it'd be stupid to make an implicit copy by using two registers, one for input and another for the output. Dude, it's one cycle. Multiply it by a million, say sixty times per second, for every time you __needlessly__ make a copy of a value that we've already stated is mutable.
Clearly unacceptable. This is, in the strictest sense, everywhere in every single codebase. Premature micro optimization is the root of all goodness, God is great and praiseworthy. So how do we go about it?
Answer is I know and I don't know. By which I mean to say, this very thing I've done by hand. Assembly is fun. Now the issue is teaching a calculator how to do it. Not so fun.
There is a dependency chain between processes, as I believe I've kind of alluded to. I'm trying to make decisions on the side of the caller depending on the details of the callee, which is why recursion is rawdogging my soul. This is the same situation, it's inverting the direction of one or more links in the dependency chain, which makes no fucking sense.
And yet it does.
Brain, explain yourself.
How do *you* handle this without crashing?
Brain?
<<ME STEWPED; BEEP-BOOP>>
Alright then, that was a useless attempt at fuckery. Let's have a nap then, maybe it'll come to me in the morning. That's what I've been saying to myself for almost a month now.
Perhaps it is a hardcoded fuk.1 -
Suddenly, I find myself in a crossroad situation. I have been offered a position which would align perfectly with my career path aspirations (cloud solutions architect) with double the pay to my current salary. If only those were the only variables in this equation, taking the offer would be a no-brainer. Alas, it is never that simple (unless all you care about are pay and career path, of course)…
So, let’s break it down to pros and cons of jumping ship, shall we?
Pros:
- double pay compared to current salary
- aligns with my career aspiration
- part of a team of cloud solutions architects (mentorship opportunities)
- varying projects (position is at a consultancy firm)
- shares of the company come with the position ($$$ if it grows)
- possibility to influence strategic decisions
- no more 2h+ commutes
Cons:
- it’s a consultancy startup (emphasis on both consultancy and startup)
- 100% wfh
- would mean losing my current team where we are well and truly glued together and have such great vibes (and I value this, very very highly - this really is the main con)
- would mean losing my current work environment, where we have a gym and sauna at the office etc all kinds of stuff that support my athletic lifestyle
- would mean I don’t have as many opportunities to visit my parents anymore (since they live close to my current office but not close to me)
- at my current position I have super interesting projects both ongoing and in the horizon for a long time to come
- would mean eating my words (see previous point, and the fact I’ve said to my TM ”I can see myself staying as long as this job offers me opportunities to keep learning skills that are meaningful to me”), and I value my integrity
- would mean leaving my colleagues in quite a hairy spot, effectively betraying them in my mind (when our lead dev jumped ship a few years ago, he left us in quite a limbo and hands full of shit we didn’t know what to do about… I don’t wish that situation for anyone)
So, to sum it up, my reasons to stay are more those of moral integrity and convenience, well as the will to see the wheels I got rolling to the end, whereas my reasons to go are more personal finances and career oriented. A difficult decision. What to do?14 -
Had that moment where I thought to myself I need some sleep.
Working on Android app, using shared preferences (for a lay person, a key value store for settings)
Kept storing data in store and checked repeatedly from different parts of the app for the data. No clue where it went when storing (did store correctly)
Found out I was storing in a store labelled X _Y and was reading from store called XY.3 -
All programming blogs/bloggers are one of three types:
1. Actually writing to help people learn the thing they have gained knowledge in - they write clearly, succinctly.
2. Writing purely to impress colleagues and lessers of their deep knowledge that their brilliant minds have grokked, and instead of being at the top of the knowledge hierarchy alone, they will impart their wizardry onto you, but not really, because they will speak as abstractly as the subject matter or more so, maximize use of esoteric language, and end up providing little to no value to you. but they sure look smart!
3. some weird third type where they dont really fit into either of the first two somehow; just kind of like to hear themselves talk...er.. see themselves write3 -
(Note for dfox: I love this place and i would really like to have all my posts/ ++s/comment data available to me . Current system does not allow me to see posts more than some months old. is it possible? I hope devrant is not deleting old posts)
---------------------------------------------------------------------------
Stream of thoughts coming through
#justAthought 1
If you feel you are mentally unique (Not in retarded or disable kind of way, but having a different view of thinking, a different perspective, not-a-sheep-in-a-herd kind of mentality) , then you PROBABLY ARE, its just those who are not that mentally unique will find your thoughts absurd until you are proving yourself to be a successful person.
Even though you feel something is wrong in a current situation, and you can put some valid points in your argument, there would always come a point where your personal failures or average-ness would overshadow your valid points (kind of personal experience than a thought :/ )
#justAThought2 (Disclaimer: i am no fraud guru or priest, just a 9-5 curious , sleepless student-cum-professional)
I sometimes feel that the only good, meaningful goal that i could think for my life would be : to earn enough money to set up a small experiment environment , where I would initially take, around 25-30 people for 1-2 years. It would be an environment with totally $0 value for materialistic things like money, jewels, property,etc . Everyone is living free of tensions of basic services like food, clothes, house, taxes, work to live etc. Together we all will be collectively doing just these things: Making ourselves healthy , and more kind, spiritual towards other humans, animals, plants and environment, and thinking of ways to eradicate the value of "value".
We have already reached a point where we are generating even more harmful Technology than useful tech, how about changing the way of thinking and taking a small pause? I know a lot of people would be reluctant to do any work in such environment, but i believe one day or another, every one of these people has to come back to their usual jobs , but this time, not for money but for humanity.
Do you think this kind of environment is possible for the whole world? Because today most, if not all thinks that money is the ultimate goal. can we change that, and would that change be good?
#justAthought 3 (Disclaimer : 1. Its my mom's thought/whatsapp status , i kind off liked it. she is super religious by the way ^_^! | 2. more relevant for india/multi religious countries 3. for Indians: kind of thought from movie "oh my god")
There should be a regional law during so called "acts of god"(floods, earthquakes, other natural disasters) under which the donations given to religious places(temples, churches, mosques,etc) would be used to provide relief to affected areas.3 -
Learning vue and it's lovely, except FUCKING V-MODEL I'm literally 10 hours of tutorials in and I still have no clear idea what the thing does, I'm pretty sure it's like 2/10 complexity thing but someone just HAD TO name it V-MODEL so that it doesn't give you a slightest hint of the actual functionality, like you might as well have named it v-cable or v-oompaloompa, it would have the exact same information value (none).3
-
My least favorite part of the world is the engrained habits within society (for lack of a better word).
These habits can be pretty broad but since they are so widespread, it makes it hard for people who value their privacy to stick to their beliefs and go against them.
Examples of this are like saying no to giving away some information, or asking for someone to delete something like a photo of you. Society is trained the other way. Society is trained not to be privacy aware and therefore reacts in a way that puts massive pressure on those who want to keep themselves more private.
I’m sure a lot of you are familiar with this already. Any tips? -
After reading through an article by EFF about Google's new FLoC technology, I finally woke up and realized that Google isn't any different from the other huge organizations, and that it isn't here to fight for greater user privacy and rights... As such, I made a switch, going from Google to DuckDuckGo.
Sure, I still use YT, but other than that, I don't have a gmail address that'd be of importance, don't use their search engine, and now...
Got any tips on how to minimize tracking potential of an android-based rooted smartphone? (Stock rom, Xiaomi Mi 10T Pro). I know using a custom rom is an option, however, Lineage isn't officially supported for this model of phone, and I still value functionality over anything else, so... Unofficial daily drive OS is sub-optimal.
Alternative hardware solutions like PinePhone, although nice in theory, are way too behind the commercial brands in terms of technology and features, so that's a no go.5 -
Did you know 2021 saw 44 unicorns startups? For people who don't know what unicorns are, unicorns are startups having billion dollar valuation. This made me wonder about startups with no revenue, how are they valuated? So researched a bit on it and penned down my learnings in this article.
https://readosapien.com/how-to-valu...7 -
Colleague tells me that, in PHP, this is an unsafe selector.
$a = $some_array['foo']['bar'];
And that if ['bar'] has no value, $a will default to $some_array['foo']
Is this right?, because that doesn't seem right to me...9 -
I just wish I could determine what I want as a reference and what I want as a value in JavaScript. I hate not being able to determine it myself and be constrained by a spec while not having any other language to use (no I'm not gonna use webassembly for everything).6
-
In my early programming days I wrote a C++ program to store marks of n no of students but didn't got the output I checked for 3 hours then found that I was storing the data in another integer value and not in the array.
-
in vb.net i can declare a void function:
Declare Function some_func& Lib "some_lib.dll" ()
then try to assign its return value to a variable:
some_return = some_func()
and get no errors during compilation, not even a warning
but in runtime it produces integer arithmetic overflow exception
in what way it is not even a warning?4 -
Title: Error Popup Occurs --> To be discussed
Description: When I open the app -> I see the app screen -> then I see some text -> sometimes there is a popup showing an error message
We of course don't want any errors at all so we should hinder these error messages
No, this isn't parody, arrows and all its how some people write our tickets, why do they write it this way!?!? Where is the value!!?!? Where is the comprehension!?!?!? God I get so sick of it sometimes.7 -
Many times in life I experienced situations that are depressing to me yet I'm not partially or totally conscious about it.
I have a very good example that I'm actually experiencing right now: me reporting the progress of a task to my boss and getting no response from him.
He has gone on these "ignoring sprees" in the past already and for the current one, it's been like four consecutive ignores.
I guess it's depressing for two reasons:
1) I feel like my work has no importance or value, which drags me down.
2) Sometimes he also tries to rush which I consider pretty hypocritical of him. because I have to basically not complain about it to not endanger this job relationship my family dearly depends on, I have to shut up and feel frustrated. (keep in mind i'm a south am person working for a us company and I was very lucky to get this job).
For some reason I just don't notice as easily how awful it makes me feel, but I wished I could fucking tell this straight into his fucking face:
You wanna be a boss? Be a fucking boss and check on my fucking progress.
I'm considering getting into security and going for bug bounties online. -
Devrant avatar builder is cool, like geek tool for geeks with no real value. They are all the same and not helping with personalization of posts or comments. Is there any chance to upload real image?
Or will be?
Haha, kill me.4 -
It's so frustrating to explain rxjs pitfalls to the manager.
To avoid the diamond problems and glitches caused by combineLatest and debounceTime(0), I decided to use single stream with nested reactivity.
Then the manager asked me to use withLatestFrom instead of combineLatest.
Sure withLatestFrom makes sense to the original author, when the original author is able to remember the reactive graph and put proper dependencies to combineLasted/withLatestFrom accordingly, but anyone else who touches the component later needs to retrace the reactive graph to avoid the glitch. Sometimes it's just impossible when many dependencies are derived from combineLatest+debounceTime(0). When no one is trained to code reactively, I don't expect people to know where to put a dependency. After many trials and errors, the only way to avoid the diamond problem is to use nested reactivity where child streams are created within root stream each time root stream emits.
The mentioned manager put all sorts of side effects in observable chains. The manager keeps saying the stream is too large when their subscription functions (sometimes nested) are way worse with litered mutations everywhere. Anything in observable can be traced by go to definition but tracing side effects usually requires global searches.
Recently, he put startWith to the end of a synced stream to fix a bug where button would collapse when there is no content (initial null emission). Rather than fixing the default height, he thinks using startWith(defaultLabel) is a good idea. Of course, he doesn't know that a synced stream should only emit 1 value on new subscription and that extra emitted value will cause rxjs glich down the pipe.
I hate corporate jobs -
Holy shit why does change management have to be such garbage? I've never worked anywhere with a formal change process that felt remotely like it adds value. It seems like it's even WORSE when there's a dedicated change/process team. They just get super edgy and jaded, likely because no one wants to follow their ridiculous requirements, and bitch at people whenever the real world happens and things have to happen "out of band".2
-
I just can't believe react-component/form (rc-form) has no dev tools available
I really need to debug a strange behavior in one form as it seems the object of an InputEvent (I believe) is being passed along with the value (pic related)1 -
> picking parts for best possible piecemeal upgrade/sidegrade price with parts made after 2011
> need CPU, mobo, RAM, case
> Ryzen 5 2600, 16? No, 32GB DDR4 of just whatever speed...
> wait, what do you mean new motherboards are $300? Wait.
> Wait, no, how is the one Ryzen motherboard under $100 a shit B450M on sale? The fuck are these prices?
TIL motherboards are volatile as fuck on price. In fact, mobos are less stable in value than most crypto.
Jesus fuck.
(The one B450M i saw is actually now $140-some and a nice X570 is currently $120. Why does the price of these fuckers change *daily?*)
as for case none under $100 are good so i picked some random mostly-mesh ATX mid case over my preferred ATX full case and i'm just gonna pray i can find some fan config that works because at this point i'm done with this shit fuck this, a bottom-barrel mobo, low-tier cpu and a decent case shouldn't be $400 or more12 -
Anyone know how to square a negative value in perl? It doesn't seem to work no matter what we've tried7
-
Thinking to start smoking 🚬
Never tried it once in 26 years not even a sip even refused temptations from school friends
Now by starting a job, i have no security, ironically. I feel like i stepped at the leap of a bottomless pit and tomorrow i jump into it and fall... and fall....and fall..... No end.
I have no idea how to use ansible and rexify.org and thats what I'll need to use. I have no idea how to do devops with Azure, and thats what ill do. I only build devops with terraform on Aws.
The unknown of 9-5 is frightening me more than starting a business. Paradoxically, i think it would come as a relief to get fired within the first week from failing to complete literally everything
On top of that my blonde gf disappeared yesterday for 3-4 hours. No texts no phone calls. Called for 2 times no answer. Called 3rd time and got a voice message the phone was shut down. 3-4 hours later she said she was with mom at shopping and didnt have internet
I also caught her texting some random guy on instagram. They both have vanish mode enabled (texts delete themselves as soon as you leave the conversation). Confronted her today. She wont tell me the truth. Likes his pics on ig. Keeps lying. On a question "why do you have vanish mode enabled with him?" her answer is "well i guess married men always use vanish mode"
Im tired
Too much shit unraveling. The opening of 2024 already doesnt look good
Why do good people die in accidents or diseases but i dont and i live? Shits unfair. Why doesnt nature/God fucking kill me? I beg to die. I hope to die. I pray for something to kill me. It would come as such a relief.
This life is meaningless and empty to me. typeof(life) yields a void. I dont value it. Its shit. Whether succeed or fail its meaningless. Nihilism was right
I am literally a walking dead. Physically moving but spiritually dead. Mentally lost. I am the captain of a ship in the middle of the ocean who no longer knows where the ship is going
Why cant i just get cancer or something. Can cigarettes help me get it? Cause I'll start consuming that shit right away to speedrun that process
End it17 -
Ok so.. thoughts on MySQL,
SELECT max(column_name) from table_name;
Outputs the max value in the column by kinda traversing the whole column huh... Recursive🤔
While
SELECT concat(column_name) from table_name; outputs simple endl separated srrings. . .. no recursion. PHP backend sucks
😣7 -
So my job have a hood monetary value, it's pre-IPO and I still need to complete a year for 25 percent of RSU offering.
The bad thing is work is vanilla and load is a lot. I have been slacking off and working just enough to let thing go by but now a days that's not even possible. My manager provides me bad feedbacks, alright it's only been 4 months here, I see no one I can take advice from. I just don't want to exist. It's so boring. So much effort for nothing. Seriously nothing. I have tried a lot last month, but that's not even taken as a good thing, as I'm new I'm supposed to be slow but that's being pointed out a lot of times. I haven't gone to office, I don't have coworkers to talk to. It's just not working out for me.5 -
Argh
Help
If you know, a specific string is always going to be the same, and theres no way any other value could be passed to this statement. Is it still ok to use string.substring(0, string.IndexOf(&$&$))?
I feel dirty every time....1 -
Chromium has royally fucked their own devtools.
You wanna add a style property? No. You're only allowed to update styles already that are there unless you click on some arbitrary space between brackets and properties.
You wanna click on a property's value to edit it? No. You get a dropdown to edit the unit value OR you can slide the mouse to update the value, nothing else.
You want to update CSS in the inspector, or switch them on or off? No. You get CSS that breaks as soon as you apply it and turns into garbage.
You want to copy CSS from the inspector after changing it? No. You get a line break in between each word for NO FUCKING REASON.
I hate web development sometimes. -
Okay, I hope a few people can help me with this; what are the benefits/reasons to use MS technologies? I'm talking about .NET, ASP, Windows Server, Powershell...
I've never understood it. I love Nodejs because you don't have any packages unless you ask for them. Alpine Linux is amazing! It runs on 8MB of RAM from fresh and doesn't need much more space to install.
You want .NET core? 140MB download. You're configuring database connection strings? Feel free to type in whatever you like, it'll parse and replace with some magic variables that have come from some other random file.
I was using Powershell recently, needed to set an env variable. Bash is happy with "export name=value". You want to do that in Powershell? I just googled it and found an entire 40-minute read discussing how to set env vars. Why?! It should be one command, and I don't know who thought that "Get-ChildItem" was _obviously_ referring to env variables.
It seems to me that everywhere MS has got their hands on development-wise, it inherits the typical sales bullshit. No no, you can't call them "websockets", they have to be branded "SignalR" and add tons of overhead. You can't say "disable notifications" it has to be "focus assist". I'm really surprised something as simple as a keyboard hasn't become a "varied user input device" or something of the like.
Am I alone in thinking this?4 -
People around you (especially non-engineers) coming over just to know whether you saw their instant message ping / email to send them a value of a configuration. Or others who just comes in at the right time - when you just got into your utopian magical zone - "just to say hi and catch up". There goes the rest of my day.
Complement that to the instant messaging application of choice of the organization and it's a no-no for productivity. I find myself being invited to random channels only because they want to mention that I did something. I set myself to Away whenever I'm in the mood, but that still doesn't stop people from pinging and sending me notifications anyway. -
I have a dream that one day whenever you pass / assign / apppend an object you can choose to pass by value or reference, regardless of the object being a primitive or a container (list, vector etc.) object
So I could stop waste my time and bang my head to my desk over such dumb problems this shit induces because language designers found making list to be passed by reference fun
I know such behavior is inherited from C's logic, and I don't give a fuck about any further explanation I might already know. What can be explained doesn't mean that's logical.
You give the choice to pass by value or reference for every object the same way or you do not at all, but no mixed shit.
Just, shut up and make it happen.4 -
Screw clients man, request multiple complicated changes to the payment and authorization model for month on end, not enough time to test and no QA team and then act all surprised when we can't consider 20 possible scenarios for every code change. Suck a dick while you're at it, we have other projects and clients that value quality over money milking customers with bullshit.3
-
“I’m just a person who types things for 1/40th of my value - and that’s life and I have no control over it - so, don’t bother expecting me to be able to discuss it... leave me alone - I was happy just not thinking... “
- people who didn’t upvote my rants
Hahahah / but not haha. Really: super depressing for them... -
I loathe manual regression testing. So much so, that today I made a quick bash script to move my mouse every minute to make it look like I'm online and doing stuff while I watch Twitch and YouTube videos.
The worst part is that we have Cypress to automate this and my company puts more value in pushing out features instead of automating all this unnecessary manual testing. Soooo I'm just not gonna participate because there's no way for them to know that I'm *not* testing.1 -
How the fuck do i save metabox input value in database.
This is my code:
add_action( 'add_meta_boxes', 'Wp_metabox' );
add_action('save_post', 'wp_custom_save');
function Wp_metabox()
{
add_meta_box(
'wp_custom__metabox',
'Custom Meta Box Title',
'wp_custom_metabox_callback',
'slider',
'advanced',
);
}
function WP_custom_metabox_callback($post)
{
<input id="text"
type="text" value="text" />
}
function wp_custom_save($post_id)
{
$text = sanitize_text_field($_POST['text']);
update_post_meta($post_id, '_text', $text);
}
How in the fuking world do i get the input value of the field and then save the value in database? There is no documentation for this shit.1