Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
Get a devDuck
Rubber duck debugging has never been so cute! Get your favorite coding language devDuckBuy Now
Search - "the opposite of a question"
Would you like to smile for 10 seconds? Read this short story:
During World War II, numerous fighter planes were getting hit by anti-aircraft guns. Air Force officers wanted to add some protective armour/shield to the planes.
The question was "where"?
The planes could only support few more kilos of weight. Mathematicians were called for a short consulting project.
Fighter planes returning from missions were analysed for bullet holes per square foot.
They found 1.93 bullet holes/sq. foot near the tail of planes whereas only 1.11 bullet holes/sq. foot close to the engine.
The officers thought that since the tail portion had the greatest density of bullets, it would be the logical location for putting an anti-bullet shield.
A mathematician said exactly the opposite; more protection is needed where the bullet holes aren't - that is -around the engines.
His judgement surprised everyone. He said "He said We are counting the planes that returned from a mission. Planes with lots of bullet holes in the engine did not return at all".
Moral: Not everything that counts can be counted, and not everything that can be counted, counts.
Source: From the book -
"How Not To Be Wrong", by Jordan Ellenberg.3
I'm coming off a lengthy staff augmentation assignment awful enough that I feel like I need to be rehabilitated to convince myself that I even want to be a software developer.
They needed someone who does .NET. It turns out what they meant was someone to copy and paste massive amounts of code that their EA calls a "framework." Just copy and paste this entire repo, make a whole ton of tweaks that for whatever reason never make their way back into the "template," and then make a few edits for some specific functionality. And then repeat. And repeat. Over a dozen times.
The code is unbelievable. Everything is stacked into giant classes that inherit from each other. There's no dependency inversion. The classes have default constructors with a comment "for unit testing" and then the "real" code uses a different one.
It's full of projects, classes, and methods with weird names that don't do anything. The class and method names sound like they mean something but don't. So after a dozen times I tried to refactor, and the EA threw a hissy fit. Deleting dead code, reducing three levels of inheritance to a simple class, and renaming stuff to indicate what it does are all violations of "standards." I had to go back to the template and start over.
This guy actually recorded a video of himself giving developers instructions on how to copy and paste his awful code.
Then he randomly invents new "standards." A class that reads messages from a queue and processes them shouldn't process them anymore. It should read them and put them in another queue, and then we add more complication by reading from that queue. The reason? We might want to use the original queue for something else one day. I'm pretty sure rewriting working code to meet requirements no one has is as close as you can get to the opposite of Agile.
I fixed some major bugs during my refactor, and missed one the second time after I started over. So stuff actually broke in production because I took points off the board and "fixed" what worked to add back in dead code, variables that aren't used, etc.
In the process, I asked the EA how he wanted me to do this stuff, because I know that he makes up "standards" on the fly and whatever I do may or may not be what he was imagining. We had a tight deadline and I didn't really have time to guess, read his mind, get it wrong, and start over. So we scheduled an hour for him to show me what he wanted.
He said it would take fifteen minutes. He used the first fifteen insisting that he would not explain what he wanted, and besides he didn't remember how all of the code he wrote worked anyway so I would just have to spend more time studying his masterpiece and stepping through it in the debugger.
Being accountable to my team, I insisted that we needed to spend the scheduled hour on him actually explaining what he wanted. He started yelling and hung up. I had to explain to management that I could figure out how to make his "framework" work, but it would take longer and there was no guarantee that when it was done it would magically converge on whatever he was imagining. We totally blew that deadline.
When the .NET work was done, I got sucked into another part of the same project where they were writing massive 500 line SQL stored procedures that no one could understand. They would write a dozen before sending any to QA, then find out that there was a scenario or two not accounted for, and rewrite them all. And repeat. And repeat. Eventually it consisted of, one again, copying and pasting existing procedures into new ones.
At one point one dev asked me to help him test his procedure. I said sure, tell me the scenarios for which I needed to test. He didn't know. My question was the equivalent of asking, "Tell me what you think your code does," and he couldn't answer it. If the guy who wrote it doesn't know what it does right after he wrote it and you certainly can't tell by reading it, and there's dozens of these procedures, all the same but slightly different, how is anyone ever going to read them in a month or a year? What happens when someone needs to change them? What happens when someone finds another defect, and there are going to be a ton of them?
It's a nightmare. Why interview me with all sorts of questions about my dev skills if the plan is to have me copy and paste stuff and carefully avoid applying anything that I know?
The people are all nice except for their evil XEB (Xenophobe Expert Beginner) EA who has no business writing a line of code, ever, and certainly shouldn't be reviewing it.
I've tried to keep my sanity by answering stackoverflow questions once in a while and sometimes turning evil things I was forced to do into constructive blog posts to which I cannot link to preserve my anonymity. I feel like I've taken a six-month detour from software development to shovel crap. Never again. Lesson learned. Next time they're not interviewing me. I'm interviewing them. I'm a professional.9
After a few weeks of being insanely busy, I decided to log onto Steam and maybe relax with a few people and play some games. I enjoy playing a few sandbox games and do freelance development for those games (Anywhere from a simple script to a full on server setup) on the side. It just so happened that I had an 'urgent' request from one of my old staff member from an old community I use to own. This staff member decided to run his own community after I sold mine off since I didn't have the passion anymore to deal with the community on a daily basis.
O: Owner (Former staff member/friend)
D: Other Dev
O: Hey, I need urgent help man! Got a few things developed for my server, and now the server won't stay stable and crashes randomly. I really need help, my developer can't figure it out.
Me: Uhm, sure. Just remember, if it's small I'll do it for free since you're an old friend, but if it's a bigger issue or needs a full recode or whatever, you're gonna have to pay. Another option is, I tell you what's wrong and you can have your developer fix it.
O: Sounds good, I'll give you owner access to everything so you can check it out.
Me: Sounds good
*An hour passes by*
O: Sorry it took so long, had to deal with some crap. *Insert credentials, etc*
Me: Ok, give me a few minutes to do some basic tests. What was that new feature or whatever you added?
O: *Explains long feature, and where it's located*
Me: *Begins to review the files* *Internal rage wondering what fucking developer could code such trash* *Tests a few methods, and watches CPU/RAM and an internal graph for usage*
Me: Who coded this module?
O: My developer.
Me: *Calm tone, with a mix of some anger* So, you know what, I'm just gonna do some simple math for ya. You're running 33 ticks a second for the server, with an average of about 40ish players. 33x60 = 1980 cycles a minute, now lets times that by the 40 players on average, you have 79,200 cycles per minute or nearly 4.8 fucking cycles an hour (If you maxed the server at 64 players, it's going to run an amazing fucking 7.6 million cycles an hour, like holy fuck). You're also running a MySQLite query every cycle while transferring useless data to the server, you're clusterfucking the server and overloading it for no fucking reason and that's why you're crashing it. Another question, who the fuck wrote the security of this? I can literally send commands to the server with this insecure method and delete all of your files... If you actually want your fucking server stable and secure, I'm gonna have to recode this entire module to reduce your developer's clusterfuck of 4.8 million cycles to about 400 every hour... it's gonna be $50.
D: *Angered* You're wrong, this is the best way to do it, I did stress testing! *Insert other defensive comments* You're just a shitty developer (This one got me)
Me: *Calm* You're calling me a shitty developer? You're the person that doesn't understand a timer, I get that you're new to this world, but reading the wiki or even using the game's forums would've ripped this code to shreds and you to shreds. You're not even a developer, cause most of this is so disorganized it looks like you copy and pasted it. *Get's angered here and starts some light screaming* You're wasting CPU usage, the game can't use more than 1 physical core, and after a quick test, you're stupid 'amazing' module is using about 40% of the CPU. You need to fucking realize the 40ish average players, use less than this... THEY SHOULD BE MORE INTENSIVE THAN YOUR CODE, NOT THE OPPOSITE.
O: Hey don't be rude to Venom, he's an amazing coder. You're still new, you don't know as much as him. Ok, I'll pay you the money to get it recoded.
Me: Sounds good. *Angered tone* Also you developer boy, learn to listen to feedback and maybe learn to improve your shitty code. Cause you'll never go anywhere if you don't even understand who bad this garbage is, and that you can't even use the fucking wiki for this game. The only fucking way you're gonna improve is to use some of my suggestions.
D: *Leaves call without saying anything*
TL;DR: Shitty developer ran some shitty XP system code for a game nearly 4.8 million times an hour (average) or just above 7.6 million times an hour (if maxed), plus running MySQLite when it could've been done within about like 400 an hour at max. Tried calling me a shitty developer, and got sorta yelled at while I was trying to keep calm.
Still pissed he tried calling me a shitty developer...
Have you ever wanted to open links with firefox from within termux?
$ cat firefox.sh
am start -a android.intent.action.WEB_SEARCH --activity-clear-task -t text/plain -d "$d" org.mozilla.firefox/org.mozilla.gecko.BrowserApp
thank me later7
Quick tip: ! means NOT. So !rant is a post which isn't a rant. !question doesn't indicate that the post is a question, but rather the opposite (and therefore there isn't really a need for that tag). You might also see something like !!rant which is the same as writing rant (that tag is also unnecessary, considering the name of the app)8
We were documenting a feature which has system wide affect. We’ll be delivering it to customer on Monday.
So we’ve asked the colleague who worked on it about how it works and asked few follow up questions that arise during the documenting. All were good.
Comes Friday when I had a question as some things didn’t add up and I checked the source. To my surprise the very core operation colleague explained us works in exact opposite way. I kid you not in %50 percent of the documentation we ramble about why it was implemented this way since it is faster/safer best practices bla bla.
Moreover we’ve already had some exchange with the customer and we informed(misinformed) them about this core operation...
Also changing the behavior will reduce the overall speed as it will cause extra branchings. Other option is to rewrite the documentation and inform(re-convince) the customer. If it was me I wouldn’t trust us anymore but we’ll see.
I really don’t know what to say about this fucker why would you say something if you’re not sure of it or why the fuck you didn’t confirm in the last 3 weeks....
Anyway we have a meeting on Monday morning to discuss how to proceed, that’s gonna be fun!1
As my weekend adventure I decided to go ahead to shoot myself in the foot. I purged Windows 10 in favor of Fedora 28...
Up till now everything that I ran as an experiment on CentOS7 on another PC (my old, now retired, PC) seemed to work without much issues. Now that I've commited my main desktop to this, minor annoyances have grown into fairly big drawbacks that I underestimated before.
So reaching out a question to all the greybeards out there - gaming on Linux (not distro specific) ... how do you do it and/or what has been your experience with it so far? As far as I've read into it - it's possible, granted, the performance will suffer for obvious reasons of running stuff inside Wine (some people, as I've heard have mentioned the opposite acually - running in Wine has blessed them with better performance due to lower overhead) and I can accept that not everything will run on it (in exchange for the linux goodies it brings me).12
So I had an interview set up by the manager to prospective client earlier,
Not sure if it's an actual project interview or the client was just trying to spy on the other department's work, my bet is on a bit of both but more on the latter, and I definitely don't want to be stuck with this guy
Backstory, I have been working for a year on a project at a certain institution whithin one of its division as a vendor, using technology X, and as the contract is coming to an end, my company already tried to sell their resources (me and some other guys) to another project,
One of the prospective client is the other IT division within the said institution, and my manager already scheduled bunch of interviews with their (lead?) for me and the other guys, and does these things ever went well?
*let's call the (lead?)/interviewer as PIC (person in charge)
First guy was scheduled at 10 AM a couple days ago, he came at 9:55 sharp, and the PIC hasn't even arrived at the office, he had to wait 1 hour
Second guy was scheduled two days later, sometimes in the afternoon around 3 PM, and again, the PIC is nowhere to be found, he had to wait more than 30 minutes
Third one was a lady colleague earlier today, supposedly scheduled for 10:30 AM, again, had to wait an hour until the PIC showed up sometime around 11:30
Fourth and last was mine, scheduled for 16:30, and had to wait for almost 1 hour, my manager had to call the PIC to remind him of the interview,
So, next is, the questions, I asked the other 2 guys, but haven't heard anything about the lady colleague (until shortly after), that the questions are around what we've been doing in our current project with technology X, apparently their department is trying to adapt this tech stack and from what I see, they are trying to copy our approach,
Since it's was quite visible from the open, literally the project offer states, Institution N division Y is asking resources with experience of technology X, I assume they would be direct in their line of questioning, but well, bureaucrats, what can I say,
To start, he asked me to introduce myself and my background, being uninterested in this project I tried to undersell myself, I told him I have always been a front end developer, back then I always used native JS and mostly jquery for quite some time, until later I learned a bit about angular and finally thrown into technology X shortly after,
First part of the interview, he pries around what I do in my previous company, I still have something to show around, but I don't remember jack shit about any of it, not to mention the angular stuff, and he asked pretty detailed stuff about angular, and I'm not sure whether his question is testing me, being sarcastic or honestly don't know what he is talking about,
One of the most notable question was, "what is the difference between angular and jquery? Is the syntax is different in any way, how do you use it?"
I immediately thought to myself, "ARE YOU A FUCKING IDIOT, DO YOU EVEN LOOK AT MY CV, IS THAT EVEN A PROPER QUESTION YOU FUCK??!!"
But I tried to explain it in laymen term with equanimity..., which seems to have the opposite effect but a welcome one, he seems to think I'm an amateur, "ah I see that you might have forget everything about angular, let's move on"
After that move on onto my days at my current company, I have worked on an internal project as training, using MEAN stack, and whoo boy, the proudest moment of my life, I learned most of it and managed to create a simple app in less than a week, but then again I already forgot all about it so I tried to skip this one
Next is my current project with technology X, let's just say it's related with react JS, initially he ask
P: "how long did it take for you to learn tech X?"
Obviously even after a year there's still a lot to be learned
Me: "well, I've just started learning it only since The start of this project"
P: "yes but how long does it takes for you to learn it?"
Me: "I cannot answer that because even until now I'm still discovering new stuff"
After that the PIC guy suddenly insisted to see the project I'm working on, I don't think I was supposed to do this, but since he work in the same institution, and my manager's monitoring the call, I'd say everyone is in knowledge of disclosing a confidential information, so I fired up my laptop and showed him, which doesn't seem to leave quite an impression as it throws up bunch of errors as I was running it, yea it is quite buggy
But then he showed me what he have been working on, a piece of component code, and asked me
P: "explain what's going on here"
Well, his code is not exactly neat, not as structured as ours, I'm quite pissed at how he said that in a condescending manner, I managed to explained it to him easily, but I hope that didn't give me a plus point,
I don't want to get this project because this guy looks like the type to put grunt work to others, and who knows about his mates?
Recently I started coding a project for my school with two of my friends. The first one is a person which spends most of his time reading 4chan and joking about Pope, you know this kind of person. The second, Michael, is a really good partner for coding, he's just an opposite of Jedrzej, the first one. Jedrzej used to call people 'cancer' and this kind of sh**. Lately Michael said, that he's mother has breast cancer and he left our conversation on Facebook. Later I told Jedrzej, that he has to tell Michael 'sorry', but he wrote something stupid (doesn't matter what) and the situation only went wrong. At least I told them that they have to bury the hatchet and start working. The only problem here is that Michael and I made 99.7% of our project, Jedrzej only updated README and shared his VPS. I'm a full-stack dev, but our project is on laravel and I don't know what kind of sorcery is this framework so Michael does the back-end. My question to all of you who read this rant - what should I do with lazy Jedrzej?7
When Do You Stop Taking Responsibility?
Let me clarify by describing four scenarios in which you are tasked with some software development. It could be a large or small task. The fourth scenario is the one I'm interested in. The first three are just for contrast.
1. You either decide how to implement the requirements, or you're given directions or constraints you agree with. (If you hadn't been given those specific directions you probably would have done the same thing anyway.) **You feel accountable for the outcome**, such as whether it works correctly or is delivered on time. And, of course, the team feels collectively accountable. (We could call this the "happy path.")
2. You would prefer to do the work one way, but you're instructed to do it a different way, either by a manager, team lead, or team consensus. You disagree with the approach, but you're not a stubborn know-it-all. You understand that their way is valid, or you don't fully understand it but you trust that someone else does. You're probably going to learn something. **You feel accountable for the outcome** in a normal, non-blaming sort of way.
3. You're instructed to do something so horribly wrong that it's guaranteed to fail badly. You're in a position to refuse or push back, and you do.
4. You're given instructions that you know are bad, you raise your objections, and then you follow them anyway. It could be a really awful technical approach, use of copy-pasted code, the wrong tools, wrong library, no unit testing, or anything similar. The negative consequences you expect could include technical failure, technical debt, or significant delays. **You do not feel accountable for the outcome.** If it doesn't work, takes too long, or the users hate it, you expect the individual(s) who gave you instructions to take full responsibility. It's not that you want to point fingers, but you will if it comes to that.
That fourth scenario could provoke all sorts of reactions. I'm interested in it for what you might call research purposes.
The final outcome is irrelevant. If it failed, whether someone else ultimately took responsibility or you were blamed is irrelevant. That it is the opposite of team accountability is obvious and also irrelevant.
Here is the question (finally!)
Have you experienced scenario number four, in which you develop software (big as an application, small as a class or method) in a way you believe to be so incorrect that it will have consequences, because someone required you to do so, and you complied *with the expectation that they, not you, would be accountable for the outcome?*
Emphasis is not on the outcome or who was held accountable, but on whether you *felt* accountable when you developed the software.
If you just want to answer yes or no, or "yes, several times," that's great. If you'd like to describe the scenario with any amount of detail, that's great too. If it's something you'd rather not share publicly you can contact me privately - my profile name at gmail.com.
The point is not judgment. I'll go first. My answer is yes, I have experienced scenario #4. For example, I've been told to copy/paste/edit code which I know will be incomprehensible, unmaintainable, buggy, and give future developers nightmares. I've had to build features I know users will hate. Sometimes I've been wrong. I usually raised objections or shared concerns with the team. Sometimes the environment made that impractical. If the problems persisted I looked for other work. But the point is that sometimes I did what I was told, and I felt that if it went horribly wrong I could say, "Yes, I understand, but this was not my decision." *I did not feel accountable.*.
I plan on writing more about this, but I'd like to start by gathering some perspective and understanding beyond just my own experience.
For obvious reasons, this question only applies if the person who cleans your office restrooms is of the opposite sex.
When the cleaning person knocks on the bathroom door and says, "Hello, housekeeping," what do they think is going to happen? Am I going to yell out from the stall into the hallway, "Taking a crap! Gimme 10!"
I'm not going to yell out anything, ever, not even "Occupied!" because *people can hear me.* I could flush the toilet, but what if I'm halfway through applying a seat cover at the moment and flushing it means having to start over (in addition to wasting both the water and the cover?) It's bad enough when I put down the seat cover and the toilet autoflushes before I can sit down.10
Another noob question.
After some searching I was only able to find the total opposite of what I wanted.
Is there a way to always automatically boot into BIOS instead of Windows without having to press any keys?
I've searched through the settings but couldn't find any.
Previously on devRant: https://devrant.com/rants/2010573/...
And here's something similar for vlc, but it expects you to point it at a local file (note: vlc can not access files inside termux's private storage). Obvious copy&paste from SO for escape characters aside, here you go:
Only snide remarks to my friends stack overflow question until she changed her avatar to a pic of her brother. I am pretty much the opposite of a sjw but that sux.