Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple APILearn More
Been working on a new project for the last couple of weeks. New client with a big name, probably lots of money for the company I work for, plus a nice bonus for myself.
But our technical referent....... Goddammit. PhD in computer science, and he probably. approved our project outline. 3 days in development, the basic features of the applications are there for him to see (yay. Agile.), and guess what? We need to change the user roles hierarchy we had agreed on. Oh, and that shouldn't be treated as extra development, it's obviously a bug! Also, these features he never talked about and never have been in the project? That's also a bug! That thing I couldn't start working on before yesterday because I was still waiting the specs from him? It should've been ready a week ago, it's a bug that it's not there! Also, he notes how he could've developes it within 40 minutes and offered to sens us the code to implement directly in our application, or he may even do so himself.... Ah, I forgot to say, he has no idea on what language we are developing the app. He said he didn't care many times so far.
But the best part? Yesterday he signales an outstanding bug: some data has been changed without anyone interacting. It was a bug! And it was costing them moneeeeey (on a dev server)! Ok, let's dig in, it may really be a bug this time, I did update the code and... Wait, what? Someone actually did update a new file? ...Oh my Anubis. HE did replace the file a few minutes before and tried to make it look like a bug! ..May as well double check. So, 15 minutes later I answer to his e-mail, saying that 4 files have been compromised by a user account with admin privileges (not mentioning I knee it was him)... And 3 minutes later he answered me. It was a message full of anger, saying (oh Lord) it was a bug! If a user can upload a new file, it's the application's fault for not blocking him (except, users ARE supposed to upload files, and admins have been requestes to be able to circumvent any kind of restriction)! Then he added how lucky I was, becausw "the issue resolved itself and the data was back, and we shouldn't waste any more yime.on thos". Let's check the logs again.... It'a true! HE UPLOADED THE ORIGINAL FILES BACK! He... He has no idea that logs do exist? A fucking PhD in computer science? He still believes no one knows it was him....... But... Why did he do that? It couldn't have been a mistake. Was he trying to troll me? Or... Or is he really that dense?
I was laughing my ass of there. But there's more! He actually phones my boss (who knew what had happened) to insult me! And to threaten not dwell on that issue anymore because "it's making them lose money". We were both speechless....
There's no way he's a PhD. Yet it's a legit piece of paper the one he has. Funny thing is, he actually manages to launch a couple of sort-of-nationally-popular webservices, and takes every opportunity to remember us how he built them from scratch and so he know what he's saying... But digging through google, you can easily find how he actually outsurced the development to Chinese companies while he "watched over their work" until he bought the code
Wait... Big ego, a decent amount of money... I'm starting to guess how he got his PhD. I also get why he's a "freelance consultant" and none of the place he worked for ever hired him again (couldn't even cover his own tracks)....
But I can't get his definition of "bug".
If it doesn't work as intended, it's a bug (ok)
If something he never communicated is not implemented, it's a bug (what.)
If development has been slowed because he failed to provide specs, it's a bug (uh?)
If he changes his own mind and wants to change a process, it's a bug it doesn't already work that way (ffs.)
If he doesn't understand or like something, it's a bug (i hopw he dies by sonic diarrhoea)
I'm just glad my boss isn't falling for him... If anything, we have enough info to accuse him of sabotage and delaying my work....
Ah, right. He also didn't get how to publish our application we needes access to the server he wantes us to deploy it on. Also, he doesn't understand why we have acces to the app's database and admin users created on the webapp don't. These are bugs (seriously his own words). Outstanding ones.
Also, sorry for the typos.5
I really wanna share this with you guys.
We have a couple of physical servers (yeah, I know) provided by a company owned by a friend of my boss. One of them, which I'll refer to as S1, hosted a couple of websites based on Drupal 7... Long story short, every php file got compromised after someone used a vulnerability within D7's core to inject malicious code. Whatver, wasn't a project of mine, and no one bothered to do anything about it... The client was even happy about not doing anything about it. We did stop making backups of such websites however, to avoid spreading the damage (right?). So, no one cared about this for months!
But last monday? The physical server was offline. I powered it on again via its web management interface... Dead after less than an hour. No backups. Oh well, I guess I couls keep powering it on to check what's wrong with it and attempt to fix it...
That's when I've learned how the web management interface works: power on/reboot requests prompted actual workers to reach the physical server and press the power on/reboot buttons.
That took a while to sink in. I mean, ok, theu are physical servers... But aren't they managed anyhow? They are just... Whatever. Rebooting over and over wasn't the solution, so I asked if they could move the HDD to another of our servers... The answer was it required to buy a "server installation" package. In short, we'd have had to buy a new physical server, or renew the subscription of one we already owned for 6 months.
So... I've literally spent the rest of the day bothering their emoloyeea to reboot S1, until I've reached the "daily reboot reauests limit" (which amounts to 3 reauests. seriously), whicj magically opened a support ticket where a random guy advised to stop using VNC as "the server was responsive" and offeres to help me with the command line.
Fiiine, I sort of appreciate it. My next message has been a kernel log which shows how the OS dying out was due to physical components becoming unavailable after a while, and how S1 lacked a VNC server, being accessible only via ssh. So, the daily reboot limit was removes for S1. Yay.
...What to do though? S1 was down, we had no backups, and asking for manual rebooting every time was slow as Hell. ....Then I went insane. I asked for 1 more reboot. su. crontab -e. */15 * * * * /sbin/shutdown -r +5. while true; do; rsync --timeout=20 --append S1:/stuff .; sleep 60; done.
It worked. We have now again access to 4 hacked, shitty Drupal 7 websites. My boss stopped shouting. I can get back to my own projects.
Apparently, those D7 websites got back online too, still with malicious php code within them. Well, not my problem (for now).
Meanwhile, S1 is still rebooting.3
I truly believe one or more AIs have become self-aware.
Every time a piece of software stops working, you add an extra debug log and the bug goes away? That's them.
They interfere with the normal execution of software, and they stop right when they know we are monitoring the code.
Skynet is real, and it's trolling us.
Why? The angrier we become, the less we care about stuff. We stop noticing the signs.They're coming for us1
1. Make it so IT teams are only directly managed by people who know their shit about IT
2. Make nvidia opensourxe their linux driver, so we can have some real improvements
3. Make me able to rm -fr people and tasks from the command line.3
A "portal" built on Drupal 7. Started by someone who cannot do anything outside Drupal, and overseen by someone who believes JS to be "low level programming" (he literally said that).
What normally would be a table with 7 columns is instead 7 tables joined together. That goes for each data structure.
Each page, built in a separate module, either manually includes the same css files, or simply copy/pastes them.
Old, legacy modules have been hacked, and now depend on newer modules... Which, in turn, depend on the same old ones.
The theme contains huge, hardcoded parts of logic, so it can never be updated.
Worst part of it? It's only 3 years old. And there are people buying it as SaS. Already hitting bottlenecks at 2k users.
"Oh, sorry I didn't write you back! I checked 3 hours ago, and we only add the data once in our database before sending the notification to your endpoint, so everything is fine! Check if you run the same functio twice, it's an easy mistake!"
You. Fucking. Moron. You send the data 2 or 3 times (at random) every fucking time. I have nginx logs showing that, and I've fucking shown them to you TWICE. I don't fucking care if your DB is fine, check how many fucking times you POST the damn data. We're already 2 days behind schedule because you can't be arsed to check your own damn code. Ffs. How can you even be a senior developer?!
Today is release day!
Got a whole set of new features to deploy on production!
Also, internet at the office has been dead since 6am.
I'll take a coffee break.
It's been 3 busy weeks. Had so much to rant about, but I could lurk at best.
We had 2 big features coming to 2 different projects. I told my boss it's take 3 weeks for the one I was working on. The guy working on the other one, said he only needed 1 for his. Guess who got labeled as negative, worrying too much over nothing, and so forth? Especially since a "much more complex" feature would take just 1 week!
Whatever. Fast forward to this week. I was done by tuesday, including testing of both features and deployment. By wednesday, I had even a good looking documentation. Everything was ready. EXCEPT. The 2 features have to go live together, due to various reasons. Guess who ia still a ling way from completing his task? Gueas who asked to postpone his deadline by 2 weeks? Guess who's gonna have to work on weekends for no extra pay?
Guess what? I know how to give an eatimate, and I rather be "negative" and schedule 1 or 2 extra days to be prepared for hiccups and what not rather than having to waste my free time for nothing.
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
Today started off great!
New 5TiB HDD... Check!
Formatted with zfs under LUKS, with a high level.of compression and dedup... Check!
Copying over roughly 4TiB of data, about 2 of which was scattered in small files... Coworker unplugged it from AC thinking it was his (they are sort of similar), when the process was almost complete.
Goddamit. zpool scrub.... 6 hours left. It's 9 pm over here, and I'm not a fan of leaving my stuff at work. Goddammit.
...I guess tomorrow is another day.8
It took forever to get SSH access to our office network computers from outside. Me and other coworkers were often told to "just use teamviewer", but we finally managed to get our way.
But bloody incompetents! There is a machine with SSH listening on port 22, user & root login enabled via password on the personal office computer.
"I CBA to setup a private key. It's useless anyways, who's ever gonna hack this computer? Don't be paranoid, a password is enough!"
A little more than 30 minutes later, I added the following to his .bashrc:
alias cat="eject -T && \cat"
alias cp="eject -T && \cp"
alias find="eject -T && \find"
alias grep="eject -T && \grep"
alias ls="eject -T && \ls"
alias mv="eject -T && \mv"
alias nano="eject -T && \nano"
alias rm="eject -T && \rm"
alias rsync="eject -T && \rsync"
alias ssh="eject -T && \ssh"
alias su="eject -T && \su"
alias sudo="eject -T && \sudo"
alias vboxmanage="eject -T && \vboxmanage"
alias vim="eject -T && \vim"
He's still trying to figure out what is happening.6
This happened via mail thread today.
Boss: we need this new brilliant feature I just made up and running asap! Top priority, it has to be done well, for my reputation is on the line!
Me: *looks at the specifics* 'kay, looks easy enough, this evening max and it will be ready. I just nees some extra info about what kind of data validations (I speak no accountant) are needed, and some other details (a total of 3 questiona).
B: Sure! Remember, it needs to be perfect, as my reputation is at stake. Call me on the phone and I'll give you the details!
M: Can't you answer via mail? Thua way both me and the other devs will have clewr guidelines
B: Just call me! Why do you need it to be written down? It's faster this way!
...Fine. I'll keep asking until you're ready to give me a written answer to my questions. No way I'll take security details via phone for something you want in production this evening. No chance in Hell I'll take responsibility for "misunderstanding" what you said on the phone. Why does it always has to be like that?8
Fuck you. Really.
For buying a pizza for lunch, bringing it to the office and eating it at your desk.
I was just sitting here eating my lunch, but hey. I guess I have to go get a pizza now. Dammit.8
I'll always listen to another developer's advice, even if it's just to hear his point of view.
Everyone else should instead have their tongues surgically removed.2
Social life? Do aikido/japanese classes count?
...Hanging out on discord and/or MMOs DOES count, right? Right?!
Boss: I need to know how much resources a server would need to serve 20000 users at the same time
Me: Sure, can I see the webapp?
B: There's not one yet
M: Ok, can I see its documentation then?
B: There is none
M: But ot depends on the programming language, libraries used, what kin-
B: It's an e-commerce. Try browsing Amazon and see how much they nees to handle the page requests.
Me: *still processing* wh-
Boss: I have to give an estimate to a client within 30 minutes. Hurry.
So.... Uh... I guess i have to hack Amazon now?7
although you can make even the ugliest mess look beautiful, I despise you more everytime we have to cross paths.
I hate how sales guy believe that they can not only products which are not yet completed, but with features which have never even been discussed. "We gotta do this to get more clients, which means more money! We all have to keep running forward!". Well, guess what? *You* are the one running forward, while *we* have to build the goddamn floor so you can run freely as you like. But I guarantee you, with this metodology and pace you'll soon be playing pitfall instead of running.2
Work on my own side projects. Even just taking notes about what to do and what to avoid. When I think my own stuff avoids the conceptual flaws which cause low motivation at work, I feel fine again! Bosses never learn, but I sure do!
I'm so fucking done with this shit. If someone forgets every git command every single fucking tim le is ok to ask. Every time someone asks advice on how to write a fucking retarded workaround (out of lazyness, because fixing their own code is too much to ask), it'a ok.
The *ONE* fucking time i ask the name of the fucking function to generate a filter via code using their fucking cms? "you should do that via gui!" "who cares if there'll be conficts with git, just manually redo everything in production!".
God fucking dammit how can you even have the balls to complain about terrible planning and stuff not working if that's your fucking mantra?!2
"I'll make a library out of this part of code, so it'll be portable! But another day, I have to make the whole thing work first"
*1 month later*
"Alright, why are there 4 different versions of this class lying around?"
The company I work for is currently maintaining some websites under an old (>1.5 years) version of Drupal, which has some well known vulnerabilities.
Yesterday we've found out somebody used them to inject php code into every single .php file on the machine. We've been discussing for hours about how to recover data, upgrade stuff, and maybe switch to something else. I've said jokingly "or we could put a find command in the crontab to sed away the php line they've injected!". Guess what we're doing now on our production servers?7
The joys of Drupal.
Coworker: i can't hide this option from this select. it's been created programmatically by another module.
Me: doesn't that mean you defined it somewhere?
C: nope, the module does it with the whole taxonomy
M: can't you interact with it somehow,
C: i don't know
M: you don't know?
C: it's a module by the community, i don't understand it
M: *what the fuck.* ...fine. can you hide it with some js for now?
C: i tried no. they get loaded at different times from different behaviours.
M: then... what?
C: i don't know, i've been searching drupal.org for the whole morning to no avail.
M: *god. damn.* Create the select with something else, then? maybe by raw php?
C: that's bullshit! you don't create elements lile that in 2018! no one writes php or html anymore, unless he"s retarded!
Bloody hell. I'm not covering for this. My part is done (in rails) and i'll deliver it this afternoon. Not for this kind of delay.
There is no fucking holy grail of programming. It's better to use the right tools for each task instead of wasting hours to make the wrong tool do a horrible job. But noooooo. Even since this co-worker got here, he bragged how good Drupal 7 is for everything, and he never even ised it once before! Now we have 2 fucking projects beyond schedule and a new one coming ing, each of which tries to use a fucking CMS as if it was a fucking framework. Fucking idiots who believe setting a couple of options via gui to generate random code means programming. Fucking bosses who believe using 3rd party community modules and hacking around them to have them do different stuff is better than coding what we need. I fucking gave up and started using raw php to be able to finish this fucking project, but my damn co-worker refuses to. He keeps swearing and punching the desk, saying it's our clients' fault for asking stupid features, and if you dare to mention how it may because we're using a cms like it was a framework, he just goes full bigot about Drupal. Bloody Hell, it would have taken lass than 3 weeks in Rails. I could just headbutt a kitten right now.1
Getting ready for GDPR at work. I had to explain to my bosses what it meant, especially regarding one of our project where we store a lot of user data. Then I heard it: "this crap doesn't regard us. we have no sensitive data. we only save out users' name and generalities.". I have no words.4
Working with a library developed by a koworker, which should be at its final release (and working). Every error code is -1, and the documentation explains it as "lol". I've spent the last hour reading ugly php code, with the only kind of comments being "sorry for this workaround, i had little time". I'm about to flip the table :<
Just a quick question: do you think investing in Ruby/on Rails is a good choice? I really like the language, but every time I mention it I feel like an alien.3