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 - "client request"
-
Most embarrassing and lucky moment on the first week of job.
Me and my best friend were selected in the same company as developers. I was having some trouble with my system. So I mailed the description to our support department. Pop up was displayed from our chat client and person on the other end happened to be a lady. She wanted me to share a team viewer link with click access. So I did it and within 2 minutes of efforts she solved it. I thanked her, closed the chat conversation and started installing few packages. Meanwhile, I was curious to see her as she was really nice throughout the conversation. So I opened LinkedIn, searched for her name and found her profile. I zoomed in her photo and she was a pretty chick. I didn't stop and found her on FB too, and quickly saw all her DPs. I just copied her profile URL and sent it to my friend ( the one that got selected with me ) and told him about my conversation with her. Then I asked my friend
"She's hot. Should I send her a friend request or have to find some more troubles in my pc and talk to her few more times ? :P "
He replied "Dude what are you wanting for ? "
Out of no where, a pop up showed up. It was the girl we were talking about. The exact message was
"You can now close your team viewer session, and we can talk over FB :)"
Embarrassing AF!30 -
~During app demo to our client~
- And when you click here the request will be submitted, the admin will be notified.
*App crashes*
- And of course the app will close itself since it's the end of the process.
- Client: That's good
- Me: ⊙﹏⊙13 -
Well, it happened. The stupidest request, no demand, I have ever, and most likely will ever receive...
Me: So what is it you're looking to do with your website.
Client: We're not showing up Facebook's home page. We need you to fix that. We have a budget of $10,000 to make this happen right now.
Me: As much as I'd love to take your money, that isn't something I can control. Every "home page" is profile-based, which technically isn't a homepage, but a "feed" that changes constantly. So say you create a profile on Facebook, only those you follow, and paid posts show up on your feed. What I can do however is use your budget to create and promote posts from your company page to show on users' feeds. If you're serious about marketing, we can start slow at $250/week, then work our way up or down based on results until your budget is exhausted, then re-evaluate the budget at that time. I can tailor a retainer for you based on the number of ads per week that you'd like to make.
Client: No, this is not what we're asking for at all.
Me: Okay...what is it you're looking for exactly? Run through this in as much detail as possible so I can get on the same page.
Client: We want to be on the main home page of facebook.com. We want our logo on that page when people sign up to make an account, linking to our website.
Me: That's simply not possible. That's Facebook's own home page. Nobody has a right to edit that other than Facebook itself.
Client: Bullshit. There's a Facebook developers section with APIs to edit and view Facebook's entire website. We would do it ourselves, but we signed up and don't understand how to change it in Chrome. That's why we need you and [referring client] said you were the best guy for our needs.
Me: That API has no control over Facebook's corporate data, including their own home page. That API designed ONLY for sections in which you are authorized to access or modify, such as your personal profile or created page for your business.
Client: We know that it can be done. If you don't do it, we'll find someone else who can.
Me: Well good luck with that, because the only way it would be remotely possible to do that WILL involve prison time, since that would be illegal. The only legal way to do it would be to buy Facebook, and they'll laugh you out of the building with that offer. But I'm done with this conversation because I have work to complete from clients that aren't delusional. Have a nice day! [hang up]
----
What. The. Fuck.26 -
One of our web developers reported a bug with my image api that shrunk large images to a thumbnail size. Basically looked like this img = ResizeImage(largeImage, 50); // shrink the image by 50%
The 'bug' was when he was passed in the thumbnail image and requesting a 300% increase, and the image was too pixelated.
I tried to explain that if you need the larger image, use the image from disk (since the images were already sized optimally for display) and the api was just for resizing downward.
Thinking I was done, the next day I was called into a large conference room with the company vice-president, two of the web-dev managers, and several of the web developers.
VP: "I received an alarming email saying you refused to fix that bug in your code. Is that correct?"
Me: "Bug? No, there is no bug. The image api is executing just as it is supposed to."
MGR1: "Uh...no it isn't. Images using *your* code is pixelated and unfit for our site and our customers."
MGR2: "Yes, I looked at your code and don't understand what the big deal is. Looks like a simple fix."
<web developers nodding their heads>
Me: "OK, I'll bite. What is the simple fix?"
<MGR2 looks over at one of the devs>
Dev1: "Well, for example, if we request an image resize of 300, and the image is only 50x50, only increase the size by 10. Maybe 15."
Me: "Wow..OK. So what if the image is, for example, 640x480?"
MGR1: "75. Maybe 80 if it's a picture of boots."
VP: "Oh yes, boots. We need good pictures of boots."
Me: "I'm not exactly sure how to break this to you, but my code doesn't do 'maybe'. I mean, you have the image from disk.
You obviously used the api to create the thumbnail, but are trying to use the thumbnail to go back to the regular size. Why not use the original image?"
<Web-Dev managers look awkwardly towards the web devs>
Dev3: "Yea, well uh...um...that would require us to create a variable or something to store the original image. The place in the code where we need the regular image, it's easier to call your method."
Me: "Um, not really. You still have to resolve the product name from the URL path. Deriving the original file name is what you are doing already. Just do the same thing in your part of the code."
Dev2: "But we'd have to change our code"
Mgr2: "I know..I know. How about if we, for example, send you 12345.jpg and request a resize greater than 100, you go to disk and look for that image?"
<VP, mgrs, and devs nod happily>
Me: "Um, no that won't work. All I see is the image stream. I have no idea what file is and the api shouldn't be guessing, going to disk or anything like that."
Dev1: "What if we pass you the file name?"
<VP, mgrs, and devs nod happily again>
Me: "No, that would break the API contract and ...uh..wait...I'm familiar with your code. How about I make the change? I'm pretty sure I'll only have to change one method"
VP: "What! No...it’s gotta be more than that. Our site is huge."
<Mgrs and devs grumble and shift around in their chairs>
Me: "I'm done talking about this. I can change your code for you or you can do it. There is no bug and I'm not changing the api because you can't use it correctly."
Later I discovered they stopped using the resize api and wrote dynamic html to 'resize' the images on the client (download the 5+ meg images, and use the length and width properties)22 -
Sales employee Bob wants a clickable blue button.
Bob tells product owner Karen about his unstoppable desire for clickable blue buttons.
Karen assigns points for potential and impact (how much does a blue button improve Bob's life, how many people like Bob desire blue buttons)
Karen asks the button team how hard it is to build a button. The button team compares the request to a reference button they've built before, and gives an ease score, with higher score being easier (inverse of scrum points).
These three scores are combined to give a priority score. The global buttonbacklog is sorted by priority.
Once every two weeks (a "sprint") the button team convenes, uses the ease scores to assign scrum points. Difficult tasks are broken up into smaller tasks, because there is a scrum point upper limit. They use the average of the last 5 sprints to calculate each developer's "velocity".
The sprint is filled with tasks, from the top of the global button backlog, up to the team's capacity as determined by velocity. Approximate due dates are assigned, Bob is a happy Bob.
What if boss Peter runs into the office screaming "OUR IMPORTANT CLIENT WANTS A FUCKING PINK BUTTON WHICH MAKES HEARTS APPEAR"?
Devs tell boss to shut the fuck up and talk to Karen. Karen has a carefully curated list of button building tasks sorted by priority, can sedate boss with valium so he calms the fuck down until he can make a case for the impact and potential of his pink button.
Karen might agree that Peter's pink button gets a higher priority than Bob's blue button.
But devs are nocturnal creatures, easily disturbed when approached by humans, their natural rhythms thrown out of balance.
So the sprint is "locked", and Peter's pink button appears at the top of the global backlog, from where it flows into the next sprint.
On rare occasions a sprint is broken open, for example when Karen realizes that all of the end users will commit suicide if they don't have a pink heart-spawning button.
In such an event, Peter must make Bob happy (because Bob is crying that his blue button is delayed). And Peter must make the button team of devs happy.
This usually leads to a ritual involving chocolate or even hardware gift certificates to restore balance to the dev ecosystem.23 -
Rant
Why do shithead clients think they can walk away without paying us once we deliver the project !!!
So, here goes nothing..
Got an online gig to create a dashboard.
Since i had to deal with a lot of shitheads in the past, I told them my rules were simple, 20% advance, 40% on 50% completion and 40% after i complete and send them proof of completion. Once i receive the payment in full, only then i will hand over the code.
They said it was fine and paid 20%.
I got the next 40% also without any effort but they said they also needed me to deploy the code on their AWS account, and they were ready to pay extra for it, so i agreed.
I complete the whole project and sent them the screenshots, asking for the remaining 40% payment. They rejected the request saying my work was not complete as i had not deployed on AWS yet. After a couple of more such exchanges, i agreed to setup their account before the payment. But i could sense something fishy, so i did everything on their AWS account, except registered the domain from my account and set up everything. Once i inform them that its done and ask for the remaining payment.
The reply i got was LOL.
I tried to login to the AWS account, only to find password had been changed.
Database access revoked.
Even my admin account on the app had been removed. Thinking that they have been successful, they even published ads about thier NEW dashboard to their customers.
I sent them a final mail with warning ending with a middle finger emoji. 24 hours later,
I created a github page with the text " This website has been siezed by the government as the owner is found accused in fraud" and redirected the domain to it. Got an apology mail from them 2 hours later begging me to restore the website. i asked for an extra 10% penalty apart from the remaining payment. After i got paid, set an auto-reply of LOL to thier emails and chilled for a week before restoring the domain back to normal.
Dev : 1
Shithead Client: 024 -
Client : Can you make some adblock?
Me : Why? There is a lot of good things already...
C : I mean... Listen carefully.
M : ok
C: i have some google ads and user blocks with adblock
M : yeah, that is normal
C : so i implemented adblock blocker which blocks adblock so that i can show the webpage plus ads when the user disables adblock.
M : i bet users hate that.
C : yeah, so users found out a way to disable adblock blocker which disables adblock blocker which i implemented to show the ads! So i cant earn revenue..
M : so what?
C : Can you make ad block block block block?
M : Sure. How much will you give me ?
C : 20 to 30 dollars
M : great ( the most generous client ever seen)
*couple of years later*
Client : can you make ad block block block block block block block block block block?
Me : i cant understand
C : count the number of block
If there is odd number of block i means to block ads.
If there is even number of block ads, it means to show ads making user to disable ads.
M : so just tldr your request this time
C : even number
M : ok how much will you pay
C : 20 to 30 dollars
*next day*
C : can you..
M : offline
Who in the fucking world made ads, made adblock and made adblock block?15 -
> Customer calls
Her: I have over 5k 404 request to [insertwebsite]/autodiscover/autodiscover.xml
Me: Sound like a missconfigured exchangeserver/client. Let me have a look.
> Takes a look and can confirm the IP and the owner of that IP
Me: It looks like someone/something from xxx.xxx.xxx.xxx is failing to resolve autodiscover.[insertdomain].com
and defaults to @ record on the zone. Do you happend to know to whom that IP belongs?
Her: No, and I dont care, just block it. I do not like the 404 that shows up on the summary.
Me: Alright
> Blocks the IP in the firewall.
>>> Fast forward to next day >>>
> Someone calls, it is the same girl
Her: I cant reach my website! Infact, I cant reach anything! WHYYYYYY!!!
> I remember, blocking that IP yesterday...
Me: Oh, can you please visist "minip.se" (whatismyip.com, swedish version) and tell me what you see?
Her: Yes, it is xxx.xxx.xxx.xxx
Me: Do you remember that IP that you request that I block yesterday?
> I can hear the shame coming from the phone.
> Turn out that her collegues did'nt have any mail delivered to them from the time I blocked their IP
> Her boss is really mad
> Atleast she had a cute voice12 -
I’m a senior dev at a small company that does some consulting. This past October, some really heavy personal situation came up and my job suffered for it. I raised the flag and was very open with my boss about it and both him and my team of 3 understood and were pretty cool with me taking on a smaller load of work while I moved on with some stuff in my life. For a week.
Right after that, I got sent to a client. “One month only, we just want some presence there since it’s such a big client” alright, I guess I can do that. “You’ll be in charge of a team of a few people and help them technically.” Sounds good, I like leading!
So I get here. Let’s talk technical first: from being in a small but interesting project using Xamarin, I’m now looking at Visual Basic code, using Visual Studio 2010. Windows fucking Forms.
The project was made by a single dev for this huge company. She did what she could but as the requirements grew this thing became a behemoth of spaghetti code and User Controls. The other two guys working on the project have been here for a few months and they have very basic experience at the job anyways. The woman that worked on the project for 5 years is now leaving because she can’t take it anymore.
And that’s not the worse of it. It took from October to December for me to get a machine. I literally spent two months reading on my cellphone and just going over my shitty personal situation for 8 hours a day. I complained to everyone I could and nothing really worked.
Then I got a PC! But wait… no domain user. Queue an extra month in which I could see the Windows 7 (yep) log in screen and nothing else. Then, finally! A domain user! I can log in! Just wait 2 extra weeks for us to give your user access to the subversion rep and you’re good to go!
While all of this went on, I didn’t get an access card until a week ago. Every day I had to walk to the reception desk, show my ID and request they call my boss so he could grant me access. 5 months of this, both at the start of the day and after lunch. There was one day in particular, between two holidays, in which no one that could grant me access was at the office. I literally stood there until 11am in which I called my company and told them I was going home.
Now I’ve been actually working for a while, mostly fixing stuff that works like crap and trying to implement functions that should have been finished but aren’t even started. Did I mention this App is in production and being used by the people here? Because it is. Imagine if you will the amount of problems that an application that’s connecting to the production DB can create when it doesn’t even validate if the field should receive numeric values only. Did I mention the DB itself is also a complete mess? Because it is. There’s an “INDEXES” tables in which, I shit you not, the IDs of every other table is stored. There are no Identity fields anywhere, and instead every insert has to go to this INDEXES table, check the last ID of the table we’re working on, then create a new registry in order to give you your new ID. It’s insane.
And, to boot, the new order from above is: We want to split this app in two. You guys will stick with the maintenance of half of it, some other dudes with the other. Still both targeting the same DB and using the same starting point, but each only working on the module that we want them to work in. PostmodernJerk, it’s your job now to prepare the app so that this can work. How? We dunno. Why? Fuck if we care. Kill you? You don’t deserve the swift release of death.
Also I’m starting to get a bit tired of comments that go ‘THIS DOESN’T WORK and ‘I DON’T KNOW WHY WE DO THIS BUT IT HELPS and my personal favorite ‘??????????????????????14 -
Client: I want you to reverse engineer this piece of software!!
*posts some link to an exe on altervista along with some unrelated crap*
Oh and "I PAY"! (Because you can't even take that for granted anymore these days.)
Me: Alright, I'll look into it but I'm not a reverse engineering expert so don't expect too much.
*Closes Facebook*
Client, day after: Hey have you looked into it already? Have you finished it already?! HEY, RESPOND ALREADY!!!
Me (thinking): YEAH AFTER 1 DAY AND NO PAYMENT DETAILS WHATSOEVER, I INSTANTLY DROPPED EVERYTHING JUST TO PLEASE YOU, FILTHY RAT SACK!! You fucking wish, motherfucker. Down to lowest priority you go! And if I don't feel like doing it, how about I just drop your request and tell you to suck my fleshy snek, HOW ABOUT THAT HUH? Fucking piece of shit 😤12 -
Clients love to use the word "Broken" (or synonymous word).
Client: The program is broken. Fix it ASAP.
Me: Ok, give me some details so I can help you.
Client: No, fix it. *Becomes an ass*
Me: Alrighty then, let me sit here doing nothing for a couple of hours. Then say that I tested the code against your original request, and it's working as intended.
Client: Sounds good.
(Pretty sure that's how it went)2 -
A client called today because their email wasn't arriving at the receipants inbox but bouncing back with a 'poor MTA rating' error.
Checked about every blacklist I know and our server was definitely not blacklisted. Must be the receipants host which for some reason was blacklisting his specific email address.
Told the client that it wasn't a problem on our side and that he had to request a whitelist himself (we'd do it but it wasn't a specific server problem so we're not going to spend time on that).
Fair enough, he'd do that.
Calls back. "Well, the other party says that your server definitely has a poor rating, it's on your side!!"
Alright, this is getting annoying. Gave him a few blacklist checking sites links and told him to run his domain AND our server IP through it. Indeed came back completely clean.
"But the other party said it's poor rating on your side so I'd think tha........"
YEAH WHY DON'T YOU SHOVE THAT OTHER PARTY UP YOUR FUCKING ASS. I'VE SHOWN YOU PROOF THAT IT'S DEFINITELY NOT ON OUR FUCKING SIDE, EXPLAINED IT TO YOU AND SO ON. MAYBE, FOR ONE FUCKING SECOND, TAKE INTO CONSIDERATION THAT THE OTHER PARTY IS FUCKING LYING?!?!?
FUCK OFF.9 -
*client complaining about an issue they've been having for a long time now*
Them: this has been going on for ages, if a solution doesn't come up soon were moving somewhere else!
Me: I'm sorry to hear that but in the last ticket I see that my colleague sent a message asking for information but you never replied?
Them: that's right!
Me:......... Why didn't you reply...?!
Them: we were so annoyed that we have this issue that we just didn't want to reply anymore!
Me:...... Do you realize that we can't smell or sense that its still an issue when you don't reply to our request for more information?!
Them:........ so I should reply again if I want this to be looked at again?
Me: yes that's be a goo.....
*click*
😶7 -
There once approached me a client, with a request to be done. Here is a recap, with emphasis on time limits.
C: Ok, so we need this and this thing to be done that and that way...
*short talk about technical side of the project, unimportant to the rant*
C: Can it be done by 25th, this month? (It was 4th of the month)
M: No way, it'll take at least a week more, so realistically I'd say around 7th next month.
C (Had no option but to agree on the date)
*we arrange the price as well (was not a bad one at all)*
So I started working on the thing and one night, about a week or so in, I probably had a cup of tea too much, I suddenly have a breakthrough. I sat behind a computer from 22:00 till 17:00 next day, nonstop. I didn't even eat anything in the meantime. The project was far from done, but I did quite a lot of work. Anyhow, when I have completed the project, not only was I not over the deadline, it was 22nd of the month, so even before the wanted time! When I contacted the client and told him that I am done, he was ... let's just say very happy. The deployment went fine, but when I checked my bank account, for the payment, there was a surprise waiting for me. The number was 25% more than what we have arranged! Me, believing that it was a mistake, immediately messaged him about it and he responded:
No, this is just a small gift for you, because you finished that quickly.
(and not to forget, I have coded things for way less than those 25% and was completely fine with the price, so it was not a small amount)6 -
Had a request from a client once, "I'd like that our site supports only IE10 and above. However if the visitor uses older IE version, say IE6, things should look and work the same as IE10".10
-
This happened a while ago but I till remember it. I'm an Intern within a nice company where everything is open (one big ass room):
Designer: bob
Salesman: peter
(Random names)
Bob: Hey peter, these PDF files you got from the client are corrupt, could you ask him for good versions?
Peter: [on the phone with PDF client coincidentally] Sir, the pdf's you send are corrupt according to our designer.
.............…….............................................
He says that it must be you using a weird operating system.
Bob: Hey dude (me), could you check?
Me: Sure (checked on my Linux, corrupt indeed), yup deffo corrupt or something.
Peter: [on phone] Sir, they really seem to be corrupt. [Talking on phone] He says it must be your operating systems, can it be that your systems are fucking this up?
Me and bob: Highly unlikely!
Peter to client: Dear sir, I've got two very competent professionals here who say you are not right and the document is simply corrupt and I'm definitely going to trust them on this one so may I kindly request a new version!
He is a great salesman!7 -
Worst dev team failure I've experienced?
One of several.
Around 2012, a team of devs were tasked to convert a ASPX service to WCF that had one responsibility, returning product data (description, price, availability, etc...simple stuff)
No complex searching, just pass the ID, you get the response.
I was the original developer of the ASPX service, which API was an XML request and returned an XML response. The 'powers-that-be' decided anything XML was evil and had to be purged from the planet. If this thought bubble popped up over your head "Wait a sec...doesn't WCF transmit everything via SOAP, which is XML?", yes, but in their minds SOAP wasn't XML. That's not the worst WTF of this story.
The team, 3 developers, 2 DBAs, network administrators, several web developers, worked on the conversion for about 9 months using the Waterfall method (3~5 months was mostly in meetings and very basic prototyping) and using a test-first approach (their own flavor of TDD). The 'go live' day was to occur at 3:00AM and mandatory that nearly the entire department be on-sight (including the department VP) and available to help troubleshoot any system issues.
3:00AM - Teams start their deployments
3:05AM - Thousands and thousands of errors from all kinds of sources (web exceptions, database exceptions, server exceptions, etc), site goes down, teams roll everything back.
3:30AM - The primary developer remembered he made a last minute change to a stored procedure parameter that hadn't been pushed to production, which caused a side-affect across several layers of their stack.
4:00AM - The developer found his bug, but the manager decided it would be better if everyone went home and get a fresh look at the problem at 8:00AM (yes, he expected everyone to be back in the office at 8:00AM).
About a month later, the team scheduled another 3:00AM deployment (VP was present again), confident that introducing mocking into their testing pipeline would fix any database related errors.
3:00AM - Team starts their deployments.
3:30AM - No major errors, things seem to be going well. High fives, cheers..manager tells everyone to head home.
3:35AM - Site crashes, like white page, no response from the servers kind of crash. Resetting IIS on the servers works, but only for around 10 minutes or so.
4:00AM - Team rolls back, manager is clearly pissed at this point, "Nobody is going fucking home until we figure this out!!"
6:00AM - Diagnostics found the WCF client was causing the server to run out of resources, with a mix of clogging up server bandwidth, and a sprinkle of N+1 scaling problem. Manager lets everyone go home, but be back in the office at 8:00AM to develop a plan so this *never* happens again.
About 2 months later, a 'real' development+integration environment (previously, any+all integration tests were on the developer's machine) and the team scheduled a 6:00AM deployment, but at a much, much smaller scale with just the 3 development team members.
Why? Because the manager 'froze' changes to the ASPX service, the web team still needed various enhancements, so they bypassed the service (not using the ASPX service at all) and wrote their own SQL scripts that hit the database directly and utilized AppFabric/Velocity caching to allow the site to scale. There were only a couple client application using the ASPX service that needed to be converted, so deploying at 6:00AM gave everyone a couple of hours before users got into the office. Service deployed, worked like a champ.
A week later the VP schedules a celebration for the successful migration to WCF. Pizza, cake, the works. The 3 team members received awards (and a envelope, which probably equaled some $$$) and the entire team received a custom Benchmade pocket knife to remember this project's success. Myself and several others just stared at each other, not knowing what to say.
Later, my manager pulls several of us into a conference room
Me: "What the hell? This is one of the biggest failures I've been apart of. We got rewarded for thousands and thousands of dollars of wasted time."
<others expressed the same and expletive sediments>
Mgr: "I know..I know...but that's the story we have to stick with. If the company realizes what a fucking mess this is, we could all be fired."
Me: "What?!! All of us?!"
Mgr: "Well, shit rolls downhill. Dept-Mgr-John is ready to fire anyone he felt could make him look bad, which is why I pulled you guys in here. The other sheep out there will go along with anything he says and more than happy to throw you under the bus. Keep your head down until this blows over. Say nothing."11 -
Soms week ago a client came to me with the request to restructure the nameservers for his hosting company. Due to the requirements, I soon realised none of the existing DNS servers would be a perfect fit. Me, being a PHP programmer with some decent general linux/server skills decided to do what I do best: write a small nameservers which could execute the zone transfers... in PHP. I proposed the plan to the client and explained to him how this was going to solve all of his problems. He agreed and started worked.
After a few week of reading a dozen RFC documents on the DNS protocol I wrote a DNS library capable of reading/writing the master file format and reading/writing the binary wire format (we needed this anyway, we had some more projects where PHP did not provide is with enough control over the DNS queries). In short, I wrote a decent DNS resolver.
Another two weeks I was working on the actual DNS server which would handle the NOTIFY queries and execute the zone transfers (AXFR queries). I used the pthreads extension to make the server behave like an actual server which can handle multiple request at once. It took some time (in my opinion the pthreads extension is not extremely well documented and a lot of its behavior has to be detected through trail and error, or, reading the C source code. However, it still is a pretty decent extension.)
Yesterday, while debugging some last issues, the DNS server written in PHP received its first NOTIFY about a changed DNS zone. It executed the zone transfer and updated the real database of the actual primary DNS server. I was extremely euphoric and I began to realise what I wrote in the weeks before. I shared the good news the client and with some other people (a network engineer, a server administrator, a junior programmer, etc.). None of which really seemed to understand what I did. The most positive response was: "So, you can execute a zone transfer?", in a kind of condescending way.
This was one of those moments I realised again, most of the people, even those who are fairly technical, will never understand what we programmers do. My euphoric moment soon became a moment of loneliness...21 -
I usually don't work for indian clients. But when I do, they make sure I don't get paid.
Some highlights from my last project,
Client: Do you know ERPnext?
Me: No, but I am good at python.
Client: My boss wants me to find a guy who can create barcode generator for erpnext.
Me: I can use pyBarcode to do it.
This is exciting I thought. I get to learn a new framework. Start working on it. Not an hour passes by,
Client: hey can you remove this menu item?
Me: Which one?
Client: Also can you add the dashboard icons to left sidebar? Like Odoo? Do you know it? It is also python based.
Me: Then why don't you just use Odoo instead?
Client: My boss wants it. He doesn't understand computers. He is pissing mr off.
Me: Then how come he suggested erpnext?
Client: His friend told him.
*experience mindfuck*
For the next 3 days he has me working on these UI tweaks, never mentions barcode again.
But I finish the barcode stuff. Tripple check everything to make sure they work. Tell him to check so I can get paid. Guy asks his boss to check.
Boss > Client: It doesn't work
Me: What doesn't work?
Boss > Client: Everything!
Client: I actually tested everything and they work. My boss doesn't know how to use it. He is very old.
Makes me make more changes and finally when I ask for the work done so far,
Client: Boss didn't come to office today. I'll get you paid. Please try to understand my situation.
Me thinking, "mofo your boss didn't hire me,l. You did". But I keep calm and tell him I won't work until I get paid 50%.
3 days passed. No reply. Set his skype status to "Away" forever.
*spidey sense tells me I'm not getting paid, again*
U am beyond pissed and burnt out. I fucking wish there was a mafia I can request to collect my fucking money from them.20 -
1. A client asks a website.
2. Client pays 50% upfront.
3. I create the site on my server he gets no access.
4. I request rest of payment.
5. Client doesnt want to have the website anymore and tells me to keep the money and he nearly closes his business.
Happens to me 4th time so far.
Not fair.12 -
Dev: “Ughh..look at this –bleep- code! When I execute the service call, it returns null, but the service received a database error.”
Me: “Yea, that service was written during a time when the mentality was ‘Why return a service error if the client can’t do anything about it?’”
Dev: “I would say that’s a misunderstanding of that philosophy.”
Me: “I would say it’s a perfectly executed example of a deeply flawed philosophy.”
Dev: “No, the service should just return something that tells the client the operation failed.”
Me: “They did. It was supposed to return a valid result, and the developer indicated a null response means the operation failed. How you deal with the null response is up to you.”
Dev: “That is stupid. How am I supposed to know a null response means the operation failed?”
Me: “OK, how did you know the operation failed?”
Dev: “I had to look at the service error logs.”
Me: “Bingo.”
Dev: “This whole service is just a –bleep-ing mess. There are so many things that can go wrong and the only thing the service returns is null when the service raises an exception.”
Me: “OK, what should the service return?”
Dev: ”I don’t know. Error 500 would be nice.”
Me: “Would you know what to do with error 500?”
Dev: ”Yea, I would look at the error log”
Me: “Just like you did when the service returned null?”
<couple of seconds of silence>
Dev: “I don’t know, it’s a –bleep-ing mess.”
Me: “You’re in the code, change it.”
Dev: “Ooohhh no, not me. The whole thing will have to be re-written. It should have been done correctly the first time. If we had time to do code reviews, I would have caught this –bleep- before the service was deployed.”
Me: “Um, you did.”
<a shocked look from Dev>
Dev: “What…no, I’ve never seen this code.”
Me: “I sat next to Chuck when you were telling him he needed to change the service to return null if an exception was raised. I remember you telling him specifically to pop-up an error dialog ‘Service request failed’ to the user when the service returned null.”
Dev: “I don’t remember any of that.”
Me: “Well, Chuck did. He even put it in the check-in comments. See…”
<check in comments stated Dev’s code review and dictated the service return null on exceptions>
Dev: “Hmm…I guess I did. –bleep- are you a –bleep-ing elephant? You –bleep-ing remember everything.”
<what I wanted to say>
No, I don’t remember everything, but I remember all the drive-by <bleep>-ed up coding philosophies you tried to push to the interns and we’re now having all kinds of problems I spend waaaaay too much time fixing.
<what I said, and lied a little bit>
Me: “No, I was helping Nancy last week troubleshoot the client application last week with the pop-up error. Since the service returned a null, she didn’t know where to begin to look for the actual error.”
Dev: “Oh.”1 -
Following a conversation with a fellow devRanter this came to my mind ago, happened a year or two ago I think.
Was searching for an online note taking app which also provided open source end to end encryption.
After searching for a while I found something that looked alright (do not remember the URL/site too badly). They used pretty good open source JS crypto libraries so it seemed very good!
Then I noticed that the site itself did NOT ran SSL (putting the https:// in front of the site name resulted in site not found or something similar).
Went to the Q/A section because that's really weird.
Saw the answer to that question:
"Since the notes are end to end encrypted client side anyways, we don't see the point in adding SSL. It's secure enough this way".
😵
I emailed them right away explaing that any party inbetween their server(s) and the browser could do anything with the request (includingt the cryptographic JS code) so they should start going onto SSL very very fast.
Too badly I never received a reply.
People, if you ever work with client side crypto, ALWAYS use SSL. Also with valid certs!
The NSA for example has this thing known as the 'Quantum Insert' attack which they can deploy worldwide which basically is an attack where they detect requests being made to servers and reply quickly with their own version of that code which is very probably backdoored.
This attack cannot be performed if you use SSL! (of course only if they don't have your private keys but lets assume that for now)
Luckily Fox-IT (formerly Dutch cyber security company) wrote a Snort (Intrustion Detection System) module for detecting this attack.
Anyways, Always use SSL if you do anything at all with crypto/sensitive data! Actually, always use it but at the very LEAST really do it when you process the mentioned above!31 -
How priorities work #1
High priority : Client request to change button color to red
Low priority : improvement that will boost product's speed and robustness6 -
Long story short, I'm unofficially the hacker at our office... Story time!
So I was hired three months ago to work for my current company, and after the three weeks of training I got assigned a project with an architect (who only works on the project very occasionally). I was tasked with revamping and implementing new features for an existing API, some of the code dated back to 2013. (important, keep this in mind)
So at one point I was testing the existing endpoints, because part of the project was automating tests using postman, and I saw something sketchy. So very sketchy. The method I was looking at took a POJO as an argument, extracted the ID of the user from it, looked the user up, and then updated the info of the looked up user with the POJO. So I tried sending a JSON with the info of my user, but the ID of another user. And voila, I overwrote his data.
Once I reported this (which took a while to be taken seriously because I was so new) I found out that this might be useful for sysadmins to have, so it wasn't completely horrible. However, the endpoint required no Auth to use. An anonymous curl request could overwrite any users data.
As this mess unfolded and we notified the higher ups, another architect jumped in to fix the mess and we found that you could also fetch the data of any user by knowing his ID, and overwrite his credit/debit cards. And well, the ID of the users were alphanumerical strings, which I thought would make it harder to abuse, but then realized all the IDs were sequentially generated... Again, these endpoints required no authentication.
So anyways. Panic ensued, systems people at HQ had to work that weekend, two hot fixes had to be delivered, and now they think I'm a hacker... I did go on to discover some other vulnerabilities, but nothing major.
It still amsues me they think I'm a hacker 😂😂 when I know about as much about hacking as the next guy at the office, but anyways, makes for a good story and I laugh every time I hear them call me a hacker. The whole thing was pretty amusing, they supposedly have security audits and QA, but for five years, these massive security holes went undetected... And our client is a massive company in my country... So, let's hope no one found it before I did.6 -
3 rants for the price of 1, isn't that a great deal!
1. HP, you braindead fucking morons!!!
So recently I disassembled this HP laptop of mine to unfuck it at the hardware level. Some issues with the hinge that I had to solve. So I had to disassemble not only the bottom of the laptop but also the display panel itself. Turns out that HP - being the certified enganeers they are - made the following fuckups, with probably many more that I didn't even notice yet.
- They used fucking glue to ensure that the bottom of the display frame stays connected to the panel. Cheap solution to what should've been "MAKE A FUCKING DECENT FRAME?!" but a royal pain in the ass to disassemble. Luckily I was careful and didn't damage the panel, but the chance of that happening was most certainly nonzero.
- They connected the ribbon cables for the keyboard in such a way that you have to reach all the way into the spacing between the keyboard and the motherboard to connect the bloody things. And some extra spacing on the ribbon cables to enable servicing with some room for actually connecting the bloody things easily.. as Carlos Mantos would say it - M-m-M, nonoNO!!!
- Oh and let's not forget an old flaw that I noticed ages ago in this turd. The CPU goes straight to 70°C during boot-up but turning on the fan.. again, M-m-M, nonoNO!!! Let's just get the bloody thing to overheat, freeze completely and force the user to power cycle the machine, right? That's gonna be a great way to make them satisfied, RIGHT?! NO MOTHERFUCKERS, AND I WILL DISCONNECT THE DATA LINES OF THIS FUCKING THING TO MAKE IT SPIN ALL THE TIME, AS IT SHOULD!!! Certified fucking braindead abominations of engineers!!!
Oh and not only that, this laptop is outperformed by a Raspberry Pi 3B in performance, thermals, price and product quality.. A FUCKING SINGLE BOARD COMPUTER!!! Isn't that a great joke. Someone here mentioned earlier that HP and Acer seem to have been competing for a long time to make the shittiest products possible, and boy they fucking do. If there's anything that makes both of those shitcompanies remarkable, that'd be it.
2. If I want to conduct a pentest, I don't want to have to relearn the bloody tool!
Recently I did a Burp Suite test to see how the devRant web app logs in, but due to my Burp Suite being the community edition, I couldn't save it. Fucking amazing, thanks PortSwigger! And I couldn't recreate the results anymore due to what I think is a change in the web app. But I'll get back to that later.
So I fired up bettercap (which works at lower network layers and can conduct ARP poisoning and DNS cache poisoning) with the intent to ARP poison my phone and get the results straight from the devRant Android app. I haven't used this tool since around 2017 due to the fact that I kinda lost interest in offensive security. When I fired it up again a few days ago in my PTbox (which is a VM somewhere else on the network) and today again in my newly recovered HP laptop, I noticed that both hosts now have an updated version of bettercap, in which the options completely changed. It's now got different command-line switches and some interactive mode. Needless to say, I have no idea how to use this bloody thing anymore and don't feel like learning it all over again for a single test. Maybe this is why users often dislike changes to the UI, and why some sysadmins refrain from updating their servers? When you have users of any kind, you should at all times honor their installations, give them time to change their individual configurations - tell them that they should! - in other words give them a grace time, and allow for backwards compatibility for as long as feasible.
3. devRant web app!!
As mentioned earlier I tried to scrape the web app's login flow with Burp Suite but every time that I try to log in with its proxy enabled, it doesn't open the login form but instead just makes a GET request to /feed/top/month?login=1 without ever allowing me to actually log in. This happens in both Chromium and Firefox, in Windows and Arch Linux. Clearly this is a change to the web app, and a very undesirable one. Especially considering that the login flow for the API isn't documented anywhere as far as I know.
So, can this update to the web app be rolled back, merged back to an older version of that login flow or can I at least know how I'm supposed to log in to this API in order to be able to start developing my own client?6 -
How to politely tell your client that their request for the new 'little' feature is unrealistic and fucking absurd?14
-
Client: "We don't want line breaks in that column make it 500px wide!"
Me: Makes the column 500px wide. Sees that the line breaks are still there. Asks if it should be made wider to fit the text.
Client: "Just implement what we send you"
Me: Ok (thinking wtf)
Client after testing: "Why are there still line breaks?!?"
🙄😥😤😭
Why the actual hell can't they get there freaking requirements in order?!? This shit happens with every fourth request!6 -
Clients: have two-ish years to request their GDPR changes.
Me: receives 20 emails about GDPR changes that need to be made today. All marked as “URGENT”
Also me: lol that fucking sucks for you but I’m busy today
Client: WE NEED TO MAKE THESE CHANGES AS ITS NOW A LAW
me: that’s cool, still busy today3 -
I'm going for longest rant. TL:DR; version here:
http://pastebin.com/0Bp4jX9y
then:
http://pastebin.com/FfUiTzsh
Twat Client,
As per our conversation, here is an invoice for the work you requested on behalf of U.S. Bloom. I realize that you ended up going with another designer, but you did request samples of what my take on the logo design would be. The following line item is indicative of 1 hour of graphic design consultation as per your request via Skype.
As I recall, you mentioned that this is not how Upwork "works" but considering it was you who requested that I converse with you via Skype instead of via the Upwork messenger, and since there were no clear instructions on how to proceed with Upwork after our initial consultation, It is assumed that you were foregoing Upwork altogether to work with me directly, thus the invoice from me directly for my time involved in the project. I would have reached out to you via Skype, but it seems that you may have severed our connection there.
After spending a little time researching your company, I could not find current information for Basic Media Marketing, but I was able to reach out to your former partner Not A. Twat, who was more than helpful and suggested that he would encourage you to pay for the services rendered.
It is discouraging that you asked for my help and I delivered, but when I ask for compensation in return for my skills, you refused to pay and have now taken your site offline and removed me as a contact from Skype.
{[CLIENT of CLIENT]},
I am sorry that I have bothered you with this email. I copied you on it merely for transparency's sake. I am sure that your logo is great and I am sure whatever decision was made is awesome for your decision. I just wanted to make sure that you weren't getting "samples" of other people's work passed off as original work by Twat Media Marketing.
I can't speak for any of the other candidates, but since Twat asked me to conduct work with him via Skype rather than through Upwork, and since he's pretty much a ghost online now, (Site Offline, LinkedIn Removed or Blocked, and now Skype blocked as well) one has to think this was a hit and run to either crowdsource your logo inexpensively or pass off other artist's work as his own. That may not be the case, but from my perspective all signs are pointing to that scenario.
Here is a transcript. Some of his messages have been redacted.
As you can clearly see, requests and edits to the logo were being made from Jon to me, but he thinks it's a joke when I ask about invoicing and tries to pass it off as an interview. Do you see any interview questions in there? There were no questions about how long I have been designing, what are my rates, who have I done work for in the past, or examples of my previous work. There were none because he didn't need them at this point.
He'd already seen my proposal and my Behance.net portfolio as well as my rates on Upwork.com. This was a cut to the chase request for my ideas for your logo. It was not just ideas, but mock designs with criticism and approval awaiting. Not only that, but I only asked for an hour of compensation. After looking at the timestamps on our conversation, you can clearly see that I spent at least 3 hours corresponding with Twat on this project. That's three hours of work I could have spent on an honest paying customer.
I trust that TWATCLIENT will do the right thing. I just wanted you guys to know that I was in it to do the best design I could for you. I didn't know I was in it to waste three hours of my life in an "interview" I wasn't aware I was participating in.
Reply from ClientClient:
Hello Sir,
This message is very confusing?
We do not owe your company any money and have never worked with you before.
Therefore, I am going to disregard that invoice.
Reply from TWATCLIENT's boss via phone:
I have two problems with this. One I don't think your business practices are ethical, especially calling MY client directly and sending them an invoice.
Two why didn't you call or email Jon before copying my client on the email invoice?
Me: Probably because he's purposely avoiding me and I had no way to find him. I only got his email address today and that was from a WHOIS lookup.
Really, you don't think my business practices are ethical? What about slavery? Is that ethical? Is it ethical to pass of my designs to your client for critique, but not pay me for doing them?
... I'LL HAVE TO CALL YOU BACK!
My email follow up:
http://pastebin.com/hMYPGtxV
I got paid. The power of CCing the right combination of people is greater than most things on Earth.14 -
Boy do I hate office politics...
A client asked our company to fix perf issues on their product. Our coleagues had been picked for the job [being led by another 3rd-party, as per client's request]. Aaand they dropped the ball. The deadline is in 2 weeks, nothing is working.
Mgmt engaged us to put out the fire, but strictly at the scope the other guys were working in.
On the first day of testing we've revealed an elephant-sized perf issue that's as easy to fix as brainlessly changing 4 values in config. And that elephant is masking all the other perf issues.
We got a firm NO for config changes as that is out of the defined scope. And we're asked to continue testing.
I mean, the elephant is THAT huge that any further testing is moot - all other bottlenecks are hidden behind it. And just changing those 4 values would reduce the resources required by a magnitude of ~10.
But that's out of scope...
Client is desperate, lost and honestly asking us, pros in the field, for help.. We know how to help.. It takes 10 seconds to apply the fix..
But our mgmt forbids us to step out of the scope :/
as a result we have to pretend to be dummies hardly knowing what to do and hide the truth from the customer they so desperately want.
This is frustrating. And wrong. And imo unprofessional10 -
Client : can you add a calling feature to our android app?
Me : Ok.
*** after updating the app ****
Client : what is this **** dialog (calling permission request for android)!
Users are complaining about it and refuse to use the app!!! Don't you know I can get into legal problems with this???
Me :But you just asked for this feature?
Client : I want this feature but remove the dialog.
Me : you can't that's not how google works.
Client : I don't care do something remove the dialog or edit it but keep the feature.
Me : 😑😑😑😑 nvm I'll figure out something.
Ended up with copying the number to the dial screen instead of direct call from the app.7 -
Client: We are tired of having to go only to specific users to get things actioned, we need everyone to be given admin access so that we can get work done efficiently
Dev: Highly do not recommend that *outlines the likely consequences*.
Client: We don’t care, we DEMAND you do this. We’ll make sure everyone is careful.
Dev: Ok but I warned you. Please submit this request in writing.
Client: Ok, not sure why you would need that. I told you everything would be fine.
*Not even two days later*
Client: HELP!!! OUR DATA IS NOW COMPLETELY MESSED UP. WE HAVE NO IDEA WHAT WOULD HAVE CAUSED THIS IT’S AS IF EVERYONE IS RANDOMLY DOING WHATEVER THEY WANT HOWEVER THEY WANT IN ORDER TO SUITE THEIR OWN NEEDS. IT MAKES NO SENSE HOW THIS HAS OCCURRED. I TOLD EVERYONE SPECIFICALLY TO NOT CAUSE ISSUES!!! WE NEED THIS FIXED A.S.A.P!!!!!!
Dev: …6 -
Worst client request.
Craziest client.
Worst accident.
Accident you thought were impossible in the dev world.
Story time, that one time where you f*cked up really bad.
Best boss.
Nicest client.
Most satisfying hobby project.
Best dev food.
Most helpful accident.
Your favorite project you had to trash, explain why.
Weirdest thing someone asked you to fix because you worked with computers.
Most memorable thing from devRant.
Best thing to happen to you because of devRant.
Its 6am and i feel productive, its not even my app got dammit.
Project you took too far.
Best/worst drunk coding experience.
Weirdest thing you ever ended up fixing because you know stuff about computers.
Worst setup you have seen someone have.
Worst treated hardware you have ever seen.
Best skill to have picked up because of your interest for development, but isnt completely dev related.
Best/worst choice in your carreer, what happened.
Sketchiest email a coworker, friend, boss or client sent.
That one accident that prevented you from using your computer or the internet.
Moment when you thought your dev environment would get a huge boost, but ended with a plot twist.
Worst disturbance while working.
If i come up with more ill either post again, or comment here. This was all i could get off the top of my head, believe it or not.
Edit, gotta add this one: Cable porn3 -
I'll point names today
Boss: Quick! The Xero integration is not working anymore!
Xero Documentation: place your client secret in the HEADERS
Me: * places client secret in headers *
Xero API: Bad Request!
Me:
*re-reads documentation*
*creates new client secret*
*1 hour of trying*
Hmmmm
* places client secret in request body, not in headers *
Xero API: Ok!
UPDATE YOUR DOCUMENTATION
TELL US ABOUT IT IN THE CHANGELOGS5 -
Delivered project this monday and gave the client one week where he can request changes free of charge. Changes made since monday: 43. This will be the last time I provide this service5
-
It fucking staggers me how many backend/devops-y people don't understand what a client side "request timeout" is, versus a server side one.
What does it mean:
The client was fed up with the servers bullshit, and decided to piss off and not wait around for the server to take forever to respond, because life's too short.
How not to solve/debug this issue:
- "I've checked the API request in tool xyz, and it works fine for me"
Congratulations, you've figured out how to call an API once, in isolation to the rest of the application, and without any excessive load. And using a different client to me, with a different configuration. Lets get back to actually looking at the issue shall we?
- "I only see HTTP 200's in the logs"
Yep, you probably will in most circumstances, because its the client complaining about it taking too long, not the server. If the server was telepathetic and knew what the client was thinking/doing at all times, we wouldn't have half of the errors we do.
- "Ah ok, I understand ... so how do I solve this?"
Your asking me? I don't fucking know, I didn't build the server! Put better logging in place and figure out why sometimes it takes forever.
Jesus fucking christ14 -
This rant is particularly directed at web designers, front-end developers. If you match that, please do take a few minutes to read it, and read it once again.
Web 2.0. It's something that I hate. Particularly because the directive amongst webdesigners seems to be "client has plenty of resources anyway, and if they don't, they'll buy more anyway". I'd like to debunk that with an analogy that I've been thinking about for a while.
I've got one server in my home, with 8GB of RAM, 4 cores and ~4TB of storage. On it I'm running Proxmox, which is currently using about 4GB of RAM for about a dozen VM's and LXC containers. The VM's take the most RAM by far, while the LXC's are just glorified chroots (which nonetheless I find very intriguing due to their ability to run unprivileged). Average LXC takes just 60MB RAM, the amount for an init, the shell and the service(s) running in this LXC. Just like a chroot, but better.
On that host I expect to be able to run about 20-30 guests at this rate. On 4 cores and 8GB RAM. More extensive migration to LXC will improve this number over time. However, I'd like to go further. Once I've been able to build a Linux which was just a kernel and busybox, backed by the musl C library. The thing consumed only 13MB of RAM, which was a VM with its whole 13MB of RAM consumption being dedicated entirely to the kernel. I could probably optimize it further with modularization, but at the time I didn't due to its experimental nature. On a chroot, the kernel of the host is used, meaning that said setup in a chroot would border near the kB's of RAM consumption. The busybox shell would be its most important RAM consumer, which is negligible.
I don't want to settle with 20-30 VM's. I want to settle with hundreds or even thousands of LXC's on 8GB of RAM, as I've seen first-hand with my own builds that it's possible. That's something that's very important in webdesign. Browsers aren't all that different. More often than not, your website will share its resources with about 50-100 other tabs, because users forget to close their old tabs, are power users, looking things up on Stack Overflow, or whatever. Therefore that 8GB of RAM now reduces itself to about 80MB only. And then you've got modern web browsers which allocate their own process for each tab (at a certain amount, it seems to be limited at about 20-30 processes, but still).. and all of its memory required to render yours is duplicated into your designated 80MB. Let's say that 10MB is available for the website at most. This is a very liberal amount for a webserver to deal with per request, so let's stick with that, although in reality it'd probably be less.
10MB, the available RAM for the website you're trying to show. Of course, the total RAM of the user is comparatively huge, but your own chunk is much smaller than that. Optimization is key. Does your website really need that amount? In third-world countries where the internet bandwidth is still in the order of kB/s, 10MB is *very* liberal. Back in 2014 when I got into technology and webdesign, there was this rule of thumb that 7 seconds is usually when visitors click away. That'd translate into.. let's say, 10kB/s for third-world countries? 7 seconds makes that 70kB of available network bandwidth.
Web 2.0, taking 30+ seconds to load a web page, even on a broadband connection? Totally ridiculous. Make your website as fast as it can be, after all you're playing along with 50-100 other tabs. The faster, the better. The more lightweight, the better. If at all possible, please pursue this goal and make the Web a better place. Efficiency matters.9 -
"There is a problem with A, could you check it out? It's urgent for the client"
Me: Okay, just open a ticket for it too.
*Working on A"
After about ten minutes:
"Hey, there is a small problem B and it's also urgent for the client, we need you to check it out"
Me: I'm working on A and you are yet to open a tick... (Interrupted)
"But it's urgent and it's a small fix, we can fix it and push it to prod, A can wait for a bit"
(Since when is it a "we"?)
Me: *sigh* fine, lets see what's B is all about...
*After going over problems C to Z*
"Why isn't A ready yet? The client's mad and it was to be ready as of today"
Me: Because you had problems from B to Z and they were all urgent according to you so after each request you asked of me I had to postpone A with you knowing about it.
"But A is for today!"
FUCK YOU, YOU WORTHLESS WASTE OF JIZZ! YOU RAN TO ME FOR EVERY GOD DAMN URGENT PROBLEM YOU HAD FROM OUR SHIT OF A CLIENT AND INSTEAD OF TELLING ME THE PRIORITY YOU JUST THROWN IT ALL IN A RANDOM ORDER!
FUCK YOU! I WISH YOUR FATHER WOULD'VE SHOT YOU OUT THE WINDOW INSTEAD OF INSIDE YOUR MOTHERS CUNT!5 -
*Got a request for installing and configuring an online shop for a client*
Me: Do you have a web space already?
Client: No, I don't want to pay for it. (FYI: They only cost about 20€ a year)
Me: Okay, but free hosters are often slow and unprofessional. I really do not recommend using free hosting services.
Client: Doesn't matter, do it.
Me: *Working on the shop for several weeks, finally goes online*
One week later, client contacts me saying shop is offline. I realize the free hoster he used shut down their services (bankruptcy), resulting in the loss of about 90% of the work that I had done (no proper backups due to complexity)
Client: How can that even happen? You'll redo the shop, right?
♪~ ᕕ(ᐛ)ᕗ5 -
Day 1: Client requested this change! Please do it!
[Make the change]
Day 2: Hold on, this is a new request and out of scope. we should reject this change.
[Rollback change]
Day 3: Client said they really need it. Please make the change.
[rollmyeyes]2 -
Google Chrome has adopted material design. Expecting a change request from the client to change it back to how it looked before.1
-
Yesterday, I finished the front-end of a project for a client. Responsive, clean,.. Looking 'smexy' :D
Today I've got an email of the client, saying he made some small design adjustments...
I think you already know where this is going.. But inline-css everywhere, fixed widths, br's as spacers,.. (It was like an old Frontpage-like design..)
I've changed the FTP user.. From now on, he has to request his changes so that I can apply them.. Damnit.. But hey, extra paid hours of work I guess :D3 -
Client request hover function on hyperlink to display tooltips...the problem is they request it to be implement on mobile/android apps...3
-
No, I do not wish to work on your Scrum-managed project.
I do not wish to contribute to the Taylorism of my profession.
I do not wish to be an interchangeable cog in your software sausage machine.
I do not wish to be tracked by some pointless metrics like a call-centre worker.
I do not wish to bust my tight, cute ass to sprint after some idiotic management request that could have been factored in earlier.
I do not wish to obtain some piss-ant qualification that "authorises" me to do my job.
I do not wish to be party to your lie that technical debt will be avoided by refactoring---whatever the cost.
I do not wish to contribute to the death of software engineering to have it replaced by software development.
Agile? Sure. I can pick up the phone and talk to the client, users and fellow devs. After all, that's what it FUCKING MEANS. Communi-fucking-cation.
See that burndown chart? See your anus? Know what's happening next?
Fuck Scrum and every fucking bottom-feeder that is scamming a living by promoting it. You're killing this business.
Hugs and kisses,
Platypus15 -
Admin Access
Have you ever been in a position where you become the de-facto person who works with a certain tool, but are denied full admin access to that tool for no real reason?
Two years ago I was put on the Observability squad and quickly discovered it was my thing, implementing tracking and running queries on this third-party tool, building custom stuff to monitor our client-side successes and failures.
About a year ago I hit the point where if you asked anyone "Who is the go-to person for help/questions/queries/etc. for this tool", the answer was just me lol. It was nice to have that solid and clear role, but a year later, that's still the case, and I'm still not an admin on this platform. I've asked, in an extremely professional way armed with some pretty good reasons, but every time I'm given some lame non-answer that amounts to No.
As far as I'm aware, I'm the only dev on our team at all who uses custom/beta features on this site, but every time I want to use them I have to go find an admin and ask for an individual permission. Every time. At the end of 2020 it was happening once a month and it was so demoralizing hitting up people who never even log into this site to ask them to go out of their way to give me a new single permission.
People reach out to me frequently to request things I don't have the permissions to do, assuming I'm one of the 64 admins, but I have to DM someone else to actually do the thing.
At this point it feels very much like having to tug on the sleeve of a person taller than me to get what I need, and I'm out of ways to convince myself this isn't demoralizing. I know this is a pretty common thing in large companies, meaningless permissions protocols, and maybe it's because I came from IT originally that it's especially irritating. In IT you have admin access to everything and somehow nobody gets hurt lol-- It still blows my mind that software devs who make significantly more money and are considered "higher up" the chain (which i think is dumb btw) are given less trust when it comes to permissions.
Has anyone figured out a trick that works to convince someone to grant you access when you're getting stonewalled? Or maybe a story of this happening to you to distract me from my frustration?13 -
I’m back for a fucking rant.
My previous post I was happy, I’ve had an interview today and I felt the interviewer acted with integrity and made the role seem worthwhile. Fuck it, here’s the link:
https://www.devrant.io/rants/889363
So, since then; the recruiter got in touch: “smashed it son, sending the tech demo your way, if you can get it done this evening that would be amazing”
Obviously I said based on the exact brief I think that’s possible, I’ll take a look and let them know if it isn’t.
Having done loads of these, I know I can usually knock them out and impress in an evening with no trouble.
Here’s where shit gets fucked up; i opened the brief.
I was met with a brief for an MVP using best practice patterns and flexing every muscle with the tech available...
Then I see the requirements, these fucking dicks are after 10 functional requirements averaging an hour a piece.
+TDD so * 1.25,
+DI and dependency inversion principle * 1.1
+CI setup (1h on this platform)
+One ill requirement to use a stored proc in SQL server to return a view (1h)
+UX/UI design consideration using an old tech (1-2h)
+unobtrusive jquery form post validation (2h)
+AES-256 encryption in the db... add 2h for proper testing.
These cunts want me to knock 15-20h of Work into their interview tech demo.
I’ve done a lot of these recently, all of them topped out at 3h max.
The job is middling: average package, old tech, not the most exciting or decent work.
The interviewer alluded to his lead being a bit of a dick; one of those “the code comes first” devs.
Here’s where shit gets realer:
They’ve included mock ups in the tech demo brief’s zip... I looked at them to confirm I wasn’t over estimating the job... I wasn’t.
Then I looked at the other files in the fucking zip.
I found 3 of the images they wanted to use were copyright withheld... there’s no way these guys have the right to distribute these.
Then I look in the font folder, it’s a single ttf, downloaded from fucking DA Font... it was published less than 2mo ago, the license file had been removed: free for Personal, anything else; contact me.
There’s no way these guys have any rights to this font, and I’ve never seen a font redistributed legally without it’s accompanying licence files.
This fucking company is constantly talking about its ethical behaviours.
Given that I know what I’m doing; I know it would have taken less time to find free-for-commercial images and use a google font... this sloppy bullshit is beyond me.
Anyway, I said I’d get back to the recruiter, he wasn’t to know and he’s a good guy. I let him know I’d complete the tech demo over the weekend, he’s looked after me and I don’t want him having trouble with his client...
I’ll substitute the copyright fuckery with images I have a license for because there’s no way I’m pushing copyright stolen material to a public github repo.
I’ll also be substituting the topic and leaving a few js bombs in there to ensure they don’t just steal my shit.
Here’s my hypotheses, anyone with any more would be greatly welcomed...
1: the lead dev is just a stuck up arsehole, with no real care for his work and a relaxed view on stealing other people’s.
2: they are looking for 15-20h free work on an MVP they can modify and take to market
3: they are looking for people to turn down this job so they can support someone’s fucking visa.
In any case, it’s a shit show and I’ll just be seeing this as box checking and interview practice...
Arguments for 1: the head told me about his lead’s problems within 20mn of the interview.
2: he said his biggest problem was getting products out quickly enough.
3: the recruiter told me they’d been “picky”, and they’re making themselves people who can’t be worked for.
I’m going to knock out the demo, keep it private and protect my work well. It’s going to smash their tits off because I’m a fucking great developer... I’ll make sure I get the offer to keep the recruiter looked after.
Then fuck those guys, I’m fucking livid.
After a wonderful interview experience and a nice introduction to the company I’ve been completely put off...
So here’s the update: if you’re interviewing for a shitty middle level dev position, amongst difficult people, on an out of date stack... you need people to want you, don’t fuck them off.
If they want my time to rush out MVPs, they can pay my day rate.
Fuuuuuuuuck... I typed this out whilst listening to the podcast, I’m glad I’m not the only one dealing with shit.
Oh also; I had a lovely discriminatory as fuck application, personality test and disability request email sent to me from a company that seems like it’s still in the 90s. Fuck those guys too, I reported them to the relevant authorities and hope they’re made to look at how morally reprehensible their recruitment process is. The law is you don’t ask if the job can be done by anyone.6 -
I think I want to quit my first applicantion developer job 6 months in because of just how bad the code and deployment and.. Just everything, is.
I'm a C#/.net developer. Currently I'm working on some asp.net and sql stuff for this company.
We have no code standards. Our project manager is somewhere between useless and determinental. Our clients are unreasonable (its the government, so im a bit stifled on what I can say.) and expect absurd things from us. We have 0 automated tests and before I arrived all our infrastructure wasn't correct to our documentation... And we barely had any documentation to begin with.
The code is another horror story. It's out sourced C# asp.net, js and SQL code.. And to very bad programmers in India, no offense to the good ones, I know you exist. Its all spagheti. And half of it isn't spelled correctly.
We have a single, massive constant class that probably has over 2000 constants, I don't care to count. Our SQL projects are a mess with tons of quick fix scripts to run pre and post publishing. Our folder structure makes no sense (We have root/js and root/js1 to make you cringe.) our javascript is majoritly on the asp.net pages themselves inline, so we don't even have minification most of the time.
It's... God awful. The result of a billion and one quick fixes that nobody documented. The configuration alone has to have the same value put multiple times. And now our senior developer is getting the outsourced department to work on moving every SINGLE NORMAL STRING INTO THE DATABASE. That's right. Rather then putting them into some local resource file or anything sane, our website will now be drawing every single standard string from the database. Our SENIOR DEVELOPER thinks this is a good idea. I don't need to go into detail about how slow this is. Want to do it on boot? Fine. But they do it every time the page loads. It's absurd.
Our sql database design is an absolute atrocity. You have to join several tables together just to get anything done. Half of our SP's are failing all the time because nobody really understands the design. Its gloriously awful its like.. The epitome of failed database designs.
But rather then taking a step back and dealing with all the issues, we keep adding new features and other ones get left in the dust. Hell, we don't even have complete browser support yet. There were things on the website that were still running SILVERLIGHT. In 2019. I don't even know how to feel about it.
I brought up our insane technical debt to our PM who told me that we don't have time to worry about things like technical debt. They also wouldn't spend the time to teach me anything, saying they would rather outsource everything then take the time to teach me. So i did. I learned a huge chunk of it myself.
But calling this a developer job was a sick, twisted joke. All our lives revolve around bugnet. Our work is our BN's. So every issue the client emails about becomes BN's. I haven't developed anything. All I've done is clean up others mess.
Except for the one time they did have me develop something. And I did it right and took my time. And then they told me it took too long, forced me to release before it was ready, even though I had never worked on what I was doing before. And it worked. I did it.
They then told me it likely wouldn't even be used anyway. I wasn't very happy at all.
I then discovered quickly the horrors of wanting to make changes on production. In order to make changes to it, we have to... Get this
Write a huge document explaining why. Not to our management. To the customer. The customer wants us to 'request' to fix our application.
I feel like I am literally against a wall. A huge massive wall. I can't get constent from my PM to fix the shitty code they have as a result of outsourcing. I can't make changes without the customer asking why I would work on something that doesn't add something new for them. And I can't ask for any sort of help, and half of the people I have to ask help from don't even speak english very well so it makes it double hard to understand anything.
But what can I do? If I leave my job it leaves a lasting stain on my record that I am unsure if I can shake off.
... Well, thats my tl;dr rant. Im a junior, so maybe idk what the hell im talking about.rant code application bad project management annoying as hell bad code c++ bad client bad design application development16 -
Clients always add up:
- The time it took you to create the project.
- Enhancement times.
Client: "How are we still working on this a year later?"
Me: "Well motherfucker, you requested a change recently. It has nothing to do with the original request, nor the last 39 updates."
Like it's my fucking fault you keep changing your mind.3 -
I was pressued to shift the blame.
We received an angry email from a customer that some of their data had disappeared. The boss assigns me to this task. This feature is relatively new and we've found some bugs in the past in here. I go through request logs, search the database, run some diagnostics, etc. for about 5 hours and I cannot find the problem. I focus on the bugs that we've had before but they don't seem to be the problem.
I tell the boss "sorry but I checked XYZ and I can't find the problem. I'm out of ideas." But the boss wanted answers by the end of the day. They did not want to admit to the client that we couldn't figure out what's wrong.
By now I was more pressured to find an answer, find something or someone to blame it on, not exactly to find the real solution. So I made up some BS:
"Sometimes, in HTML forms, the number inputs allow you to change the number by scrolling. We have some long forms where the user has to scroll. Perhaps the focus remained on the number input, so when they scrolled down they accidentally changed the number they meant to input."
The boss was happy with that. We explained this to the customer, and there's now a ticket to change type="number" to type="text" in our HTML forms and to validate it in th backend.
A week later another customer shows us a different error. This one is more clear because it had a stack trace, but I realise that this error is what caused our last error. It was pretty obscure, mind you, the unit tests didn't detect it.
I didn't tell the boss that they were connected tho.
With two angry clients in two weeks, I finally convinced the boss to give us more time to write more unit tests with full coverage. -
You can't keep wasting your time on people who do not know what the fuck they want. You could be way more time efficient with serious clients.
*After I have finally deployed the requested features*
Client: Why did it take you two weeks in the end? You said it would take you a couple days.
Me: Because you told me to use my imagination on half of the tasks and you kept wanting me to change what I had created, thus unnecessarily doubling the time it should have taken. Besides that probably the unclear communication and the fact that you rarely called me back after you told me to call you.
Client: So if I tell you, exactly, how I want it next time you'll be able to do it in a couple days?
Me: I'm not sure, that depends on what you want. Tell me, exactly, what you want.
Client: Oh it's not much, I'll let you do your thing for the most.
Me: I can't handle another request, sorry. *Ends call*4 -
Client told me he doesn't want to be bothered(contacted) outside working hour
So why did he mad as i told him I couldn't do the request he was giving me at sunday noon😕2 -
Shitty-Clent-side: Onclick of submit button, send request to server
Server: Responds with a 500 error.
Shitty-Client-Side: change "Submit" to "Submitted" and backgroumd color to green(because UX is important and error handling can go to hell)1 -
Manager: You want a promotion? To senior? Ha. Well, build this web app from scratch, quickly, while still doing all your other duties, and maybe someone will notice and maybe they’ll think about giving you a promotion! It’ll give you great visibility within the company.
Your first project is adding SSO using this third party. It should take you a week.
Third party implementation details: extremely verbose, and assumes that you know how it works already and have most of it set up. 👌🏻
Alternative: missing half the details, and vastly different implementation from the above
Alternative: missing 80%; a patch for an unknown version of some other implementation, also vastly different.
FFS.
Okay, I roll my own auth, but need creds and a remote account added with the redirects and such, and ask security. “I’m building a new rails app and need to set up an SSO integration to allow employees to log in. I need <details> from <service>.” etc. easy request; what could go wrong?
Security: what’s a SSO integration do you need to log in maybe you don’t remember your email I can help you with that but what’s an integration what’s a client do you mean a merchant why do merchants need this
Security: oh are you talking about an integration I got confused because you said not SSO earlier let me do that for you I’ve never done it before hang on is this a web app
Security: okay I made the SSO app here you go let me share it hang on <sends …SSL certificate authority?>
Boss: so what’s taking so long? You should be about done now that you’ve had a day and a half to work on this.
Abajdgakshdg.
Fucking room temperature IQ “enterprise security admin.”
Fucking overworked.
Fucking overstressed.
I threw my work laptop across the room and stepped on it on my way out the door.
Fuck this shit.rant root mentally adds punctuation root talks to security root has a new project why is nowhere hiring enterprise sso12 -
Well, for starters there was a cron to restart the webserver every morning.
The product was 10+ years old and written in PHP 5.3 at the time.
Another cron was running every 15 minutes, to "correct" data in the DB. Just regular data, not from an import or something.
Gotta have one of those self-healing systems I guess.
Yet another cron (there where lots) did run everyday from 02:00 to 4ish to generate the newest xlsx report. Almost took out the entire thing every time. MySQL 100%. CPU? Yes. RAM? You bet.
Lucky I wasn't too much involved at the time. But man, that thing was the definition of legacy.
Fun fact: every request was performed twice! First request gave the already logged-in client an unique access-token. Second request then processed the request with the (just issued) access-token; which was then discarded. Security I guess.
I don't know why it was build this way. It just was. I didn't ask. I didn't wanted to know. Some things are better left undisturbed. Just don't anger the machine. I became superstitious for a while. I think, in the end, it help a bit: It feels like communicating with an alien monster but all you have is a trumpet and chewing gum. Gentle does it.
Oh and "Sencha Extjs 3" almost gave me PTSD lol (it's an ancient JS framework). Followed by SOAPs WSDL cache. And a million other things.5 -
We have an API available for our customers to integrate our software with their Webshop.
A client and their developer complained because not all of the products came through. I checked the products, the validation, the parameters, the database .. everything looked fine and I was scratching my head why these articles wouldn't come through (but it did work at my end).
After some time, I checked the request logs..
Apparently it wasn't quite clear for them that a loop is required with the 'skip' and 'take' parameters to create an offset for pagination.They only synchronised the first 500 products.. everytime..
We have a limit of 500 products per batch (take) for performance reasons.
They asked if we could increase this limit, because they have "a large range of products" (not really, only 800 or so and we have clients with more than 2mil. products..) Oh pls.. I've sent them a link to the PHP manual for a basic 'while' loop..2 -
While this wasn't technically a real client, it's still one of the most insane requests I've ever had.
I chose to specialize in software engineering for the last year and a half of my degree, which meant a lot of subjects were based around teamwork, proper engineering practises, accessibility, agile methods, basically a lot of stuff to get us ready to work in a proper corporate dev environment. One of our subjects was all about project management, and the semester-long coursework project (that was in lieu of a final exam) was to develop a real project for a real client. And, very very smartly, the professors set up a meeting with the clients so that the clients could tell us what they wanted with sixty-odd students providing enough questions. They basically wanted a management service for their day-center along with an app for the people there. One of the optional requirements was a text chat. Personally not something I'm super interested in doing but whatever, it's a group project, I'll do my part.
The actual development of the project was an absolute nightmare, but that's a story for another day. All I'll say is that seven juniors with zero experience in the framework we chose does not make a balanced dev team.
Anyway, like three months into the four-month project we've got a somewhat functional program, we just need to get the server side part running and are working our asses off (some more than others) when the client comes in and says that 'hey, nice app, nobody else has added the chat yet, but could you do voice recognition okay thanks?'.
Fucking.
Voice.
Recognition.
This was a fucking basic-ass management app with the most complicated task being 'make it look pretty' and 'hook up a DB to an API' and they want us to add voice recognition after sitting on their ass for three months??? The entire team collectively flipped its shit the second they were out of earshot. The client would not take no for an answer, the professor simply told us that they asked for it and it was up to us whether we delivered or not. Someone working on the frontend had the genius idea of 'just get them to use google voice recognition' so we added the how-to in the manual and ticked the requirement box.
What amazes me about all that is how the client probably had no idea that their new last-minute request was even a problem for us, let alone it being in a completely different ballpark in terms of implementing from scratch.8 -
Client: The image upload functionality is broken!!
Me: just tested it, works fine.
Client: no I'm trying to upload this image and it says It cannot complete the request.
Me: hmmm...
Client: does the fact that the image is 36MB has something to do with it?
Me: -
Playing email tennis with a client trying to get to the specifics of a vague initial request. Difficult to do without being patronising and condescending. Having to read and edit my emails to make them believe that I don't think they are a useless fucking incompetent twat.2
-
Client : I am unable to download data from your sever for last 10 days.
Me : Sir, we are sorry to hear that. We are doing some maintenances on our server from this morning today. We request you to call back us in next 4 hours.
Client : But i am facing this problem for last 10 days.
Me: Sir, i heard you. As maintenance is going on it will not be possible to download data this time.
Client: From when this maintenance is going on?
Me: from this morning sir.
Client : but i am facing this probolem for last 10 days.
Me: Sir, you are not understanding it, or may be i am failing to describe the situation to you...
Client: Listen, you guys are incapable. Only knows to make excuse.
Me: Sir..
Client: Sorry to say, i am not Happy with your support. Let me talk to your senior tech guy.
Me : Sir, your problem will be solved in next 4 hours. We will call you as soon as our server went online.
Client: *.....*
It took me 20 minutes to finally make him understand the situation.
Client: Why did not you said that earlier? You guys will have all the time but i do not. Anyway.
He hangs the phone.
My ears are burning man...9 -
Client asks me to implement pie chart on webpage. Sum of figures supplied amounts to > 100%. Pointing out discrepancy I request the correct figures, only to be told that the figures are correct. Very well. One week passes. Receive email from client: "The figures for this chart are wrong, they total > 100%, here are the correct figures...". *Sigh*.1
-
Our system never had sessions that expired. A recent hack at the client caused us to revisit the security measures we had in place.
The person who was on the project since it's start 8 years ago was tasked with fixing this issue. It has a simple solution: add session expiration, and extend the session to an hour from now with each request.
This week I found out how he did it🤦🏻♂️. He added session expirations, but extended the session by an hour with each request. By making 10 requests in quick succession, your session is extended by 10 hours.3 -
This brings joy
https://reddit.com/r/technology/...
Bypass paywall:
A series of scandals and missteps has damaged Facebook's reputation so much that the company is being forced to pay ever larger compensation to hire and retain workers, according to industry recruiters, former employees, and data reviewed by Insider.
The company has always competed aggressively for talent, and the tech job market in general is on fire. But a deteriorating public image means the social-media giant now has to outbid other major tech companies, such as Google.
"One thing Facebook can still do is pay a lot more," said Jose Guardado, an experienced tech recruiter and the founder of Build Talent. "They can easily throw more compensation at people they currently have, and cover any brand tax and pay a little more to get people to come on."
Silicon Valley companies thrive or whither based on their ability to recruit the smartest employees. Without a steady influx of engineers and other technical experts, new products and important updates take longer to release, and rivals can quickly get ahead. Then there's the financial cost: In 2022, Facebook projected, expenses could jump as high as $97 billion from $70 billion this year, in large part because of "investments in technical and product talent." A company spokesperson did not respond to a request for comment.
Other companies, and even whole industries, have had to increase compensation to overcome hiring and retention problems caused by scandal and shifting public perceptions, said Alan Johnson, a managing director at the compensation consulting firm Johnson Associates. "If you're an oil company, if you make cigarettes, if you're in cattle or Wells Fargo, sure," he said.
How well this is working for Facebook is debatable as the company has more than 4,300 open jobs and has seen decreasing rates of acceptance on job offers, according to internal documents reported by Protocol. It's also seen dozens of high-level executives leave this year, and recruiters say employees are now more open to considering jobs elsewhere. Facebook used to be a place that people rarely left, given its reach, pay, and perks.
A former Oculus engineer who left last year said Facebook could now be seen as a "black mark" on someone's career. A hardware engineer who exited in 2020 shared similar sentiments: They said they quit because of concerns about misinformation on the platform and the effect of that on children. Another employee said their department was dissolved in late 2019 by Facebook and, although the company offered another position that paid more, they left last year anyway for a different industry. The workers, and many other people who spoke with Insider for this story, asked not to be identified because of the sensitive nature of the topic.
For those who stick around and people who take new jobs at Facebook, base pay and stock grants have gone up a "sizable" amount in the past year, said Zuhayeer Musa, cofounder of Levels.fyi, a platform that collects pay data based on verified offers and compensation disclosures.
During the second quarter of 2021, the median compensation for an upper-mid-level engineer, an E5, was $400,000, up from $380,000 a year earlier. For an E4, the median pay jumped to $276,000 from $256,000 in the same period. For both groups, the increases were double the gains between 2018 and 2019, Levels.fyi data showed.
Musa, who's firm also offers pay-negotiation coaching, said previously that the total compensation ceiling for an E5 engineer at Facebook was $450,000. "We recently had a client get up to $510,000 for E5," he added.
Equity awards at the company are getting more generous, too. At the group-director and VP levels, Facebook staff are getting $3 million to $6 million in restricted stock units each year, another tech recruiter said. Directors and managers are getting on average $1 million a year. In engineering, a high-level engineer is getting $600,000 in stock and a $75,000 bonus, while even an entry-level engineer is getting $50,000 to $100,000 in stock and a $20,000 to $50,000 bonus, Levels.fyi data indicated.
Even compared to Google, Facebook's stock awards are generous and increasing, Levels.fyi data shows. While base pay is about the same, Facebook offers more in stock grants, significantly increasing total compensation. At Google, entry-level equity awards range from $20,000 to $38,000, while Facebook grants are worth $40,000 to $60,000. Sign-on bonuses at Facebook are often about $50,000, while Google gives about $20,000, according to the data.
"It's not normal, but it's consistent with the craziness that's happening in the market right now," said Aalap Shah, a managing director focused on the tech industry at the consulting firm Pearl Meyer.10 -
Client: I want a new feature for my chat bot. It should be able to rap.
Me: ... k
*monologue: wait u w0t m8*
Also me: Can you please go more into the details? It should be able to rap. Ok. But how do you want it to look like? How "strong" should be the discrimination level, for instance?
Client: It should beat ass, yo.
Inner me -> core me: Let us just ignore him. We won't be able to do it, since he isn't really explaining his needs. "It should be able to rap". We are not wizards.
Core me -> inner me: Chill. We will just use some insult apis, combine it with cleverb0t api et voila.
Me: Alright. I got an idea for it. I can do it within this week. And if you don't like it, I will ofc do some changes to it.
Client: Hmmm... that's nice and good. But within 1 week?
Inner me: I can't do magic and pull that feature out of my fucking ass!
Clients... clients... clients...
0. Don't expect us to be done in a few days. We are also humans. And not fucking machines.
1. Do us (all devs on planet earth. -Microaggression in 3, 2, 1..) a favor and (kill yourself) learn how to request a feature.2 -
Let’s see I suppose the most pissed off I’ve been at work would be....
Being blamed for a clients mistake when their newsletter email settings where being changed over to a new mailing system but during the change over they wanted to still send out mail using the old list. So a single endpoint was kept in place so they could send one last newsletter out after it was approved as part of the migration and they were to inform us when they were done so we could change that endpoint over.
Several months later when everyone had long forgotten about it, the client tried to send another mass mail out using the old endpoint and complained when no emails had been sent.
I was blamed for making this mistake even though management approved the fucking old endpoint to be left in place at the clients request against my concerns that someone’s going to forgot about this and I was never informed to swap it over.
I quit on the spot and walked out the door after that. -
Got a request from a client to remove the dot on the i because umlauts are bad for SEO in URL paths3
-
So... We have a client that shan't be named cause I don't even know their name. A non-profit charity-type classical music organization. Anyway, they came yesterday to discuss the design of their site. Now, before we get to the happenings, know that the construction of said site is ongoing for over 3 years now, with stuff being delayed due to never providing needed content or due to changes in their organization. Due them considering that the site was never finished they believe that all of the changes they request should not be paid. The site is live and in use during the whole time, perfectly functional. They're just never happy with the design and constantly change it little by little, and during the course of those years, it's gone through multiple complete overhauls when you put those little changes together.
TL;DR: Client believes that they should not have to pay for changes over the years due to the belief that it was never finished in the first place.4 -
I miss old times rants...So i guess, here it goes mine:
Tomorrow is the day of the first demo to our client of a "forward-looking project" which is totally fucked up, because our "Technical Quality Assurance" - basically a developer from the '90-s, who gained the position by "he is a good guy from my last company where we worked together on sum old legacy project...".
He fucked up our marvellous, loose coupling, publish/subscribe microservice architecture, which was meant to replace an old, un-maintainable enormous monolitch app. Basically we have to replace some old-ass db stored functions.
Everyone was on our side, even the sysadmins were on our side, and he just walked in the conversation, and said: No, i don't like it, 'cause it's not clear how it would even work... Make it an RPC without loose coupling with the good-old common lib pattern, which made it now (it's the 4th 2 week/sprint, and it is a dependency hell). I could go on day and night about his "awesome ideas", and all the lovely e-mails and pull request comments... But back to business
So tomorrow is the demo. The client side project manager accidentally invited EVERYONE to this, even fucking CIO, legal department, all the designers... so yeah... pretty nice couple of swallowed company...
Today was a day, when my lead colleague just simply stayed home, to be more productive, our companys project manager had to work on other prjects, and can't help, and all the 3 other prject members were thinking it is important to interrupt me frequently...
I have to install our projects which is not even had a heart beat... not even on developer machines. Ok it is not a reeeeaaally big thing, but it is 6 MS from which 2 not even building because of tight coupling fucktard bitch..., But ok, i mean, i do my best, and make it work for the first time ever... I worked like 10 ours, just on the first fucking app to build, and deploy, run on the server, connect to db and rabbit mq... 10 FUCKING HOURS!!! (sorry, i mean) and it all was about 1, i mean ONE FUCKING LINE!
Let me explain: spring boot amqp with SSL was never tested before this time. I searched everything i could tought about, what could cause "Connection reset"... Yeah... not so helpful error message... I even have to "hack" into the demo server to test the keystore-truststore at localhost... and all the fucking configs, user names, urls, everything was correct... But one fucking line was missing...
EXCEPT ONE FUCKING LINE:
spring.rabbitmq.ssl.enabled=false # Whether to enable SSL support.
This little bitch took me 6 hours to figure out...so please guys, learn from my fault and check the spring boot appendix for default application properties, if everything is correct, but it is not working...
And of course, if you want SSL then ENABLE it...
spring.rabbitmq.ssl.enabled=true
BTW i really miss those old rants from angry devs, and i hope someone will smile on my fucking torturerant marshall_mathers worklife sugar-free_tateless_cake_decorant_figure_boss missolddays oldtimes_rants5 -
Boss: we can't accept your MR request until you fix the problems we highlighted, everything is blocked and the client is getting angry
My brother in Christ, I understand your concerns but I need you to understand: you decided to block a perfectly working and documented PR because you didn't like having "<!-- -->" in a couple of HTML files and menial bullshit like that.
It may not be the most elegant thing ever but don't put on me the responsibility of your blocks or I'll smash your face with the coffee mugs I've used to work until midnight so that you could deliver the product in time after someone else delayed the deadline twice already.
Thanks and get fucked ASAP.3 -
So today a client requested that the domain name in the address bar should be all capital letters because of corporate design. Don't get me wrong, this is a valid request for someone who has no experience in the IT world. But he refused to believe me that it wasn't possible. He even claimed that he has seen it at least hundred times and called me incapable. I don't get clients.1
-
That I am not good enough for this shit.
Recently left my job because anxiety, a lot of it.
Tbh, I should not burntout myself, because:
- salary was a shit
- the scrum was a lie, there was no end of the sprint, so no retrospective meeting ever done.
- They change the """sprint""" task pile at any moment, usually adding more tasks for the same sprint.
- previous project manager was an idiot who said "yes" at EVERYTHING the client asked, even if the request was outside tje scope of the project.
The project was heavily delayed, and I was the only developer left on the most hideous backend you can imagine (the code was just tje very definition of "what not to do"). NO UNIT TESTING at all.
My task: clean the mess so we have a """stable""" release (with the tests), add the new features and re-do the backend again, but this time properly.
8 months of develop for this shit and they wanted the stable-shit-backend in a month and the new backend in other month "because everithing was already done in the shitty one". Do not forget the new features too.
So, I was doing the imposible to try to do tje task, overdoing hours and reading the docs of the project (because I was new in it), but it take me.a lot of effort to simply correct bugs because of complexity of the code and not understanding fully some parts of the project.
Then the comments like "why this is not finished yet?" Or "I do not understand why this is taking so long"
So, I had poor sleep, I was anxious because my inhability to do the imposible and in the end, a feeling kind of defeated because I quit.
So... that.
Sorry if something is wrong typed or so, english is not my native language.5 -
I sent an email to a client asking for values in the database only they can access so I can finish an application and test it.... they reply asking for a new feature on the application and completely ignore my request for said values. then another person CCed on the email replies and agrees with the feature request and we should do xyz. still no values from him either. wtfff?7
-
A morbid realization (I am just wasting your time keep scrolling)
Unless someone takes a stand for the user, and their comfort and requirements, unless someone looks a client straight in the eye and says "no, I will not do that, and neither will my team" and denies them their request, nothing will change, good devs will keep losing their spark to save themselves frustration, good people will walk away and the tyranny that we face daily grows... unless someone stands up, someone who cannot be knocked down, or reprimanded and told they're wrong for fighting for what's right.. unless someone stands up for what is right and fair... nothing changes... and nothing ever will... poor programs, bad games and content, lower standards, frustrated users, annoyance that you don't matter as a user or a dev will never go away... unless someone says enough. But no one will, money is the boss, morality a liability, and people an abundant resource. This world is backwards, devs are carrying the blame and no one who is able, cares enough to say "that's enough!".13 -
Client: Each invoice should be it's entity. It should only report it's own open amount. Any other open amounts remain on the other invoices.
Me: No problem. ::Sets invoices to only report own open amount::
PM: Hey, the invoices in UAT are not displaying the sum of all open bills.
Me: I know. The client wants each invoice to only report the open amount on that specific invoice.
PM: That can't be right, change it back before we give the client access to the UAT environment.
Me: No problem. ::reverts invoice changes::
Client: We are failing the invoices. The invoices should not be giving total open amounts for the account. Each invoice should only report the open amount for that invoice. We told the development about this...
PM: I see. I'll make sure he understands your request.
Me: ... ::reverts the revert::
PM: Hey, the invoices in UAT aren't giving a total of the open-
Me: OMFG. I just want this task closed!
Client: After the invoice work is done, we need to talk about past due amounts and how they are reported to customers.
PM: Sure thing. It is logical to give a total of a past due amount to the customer...
Me: ::Starts updating resume:: -
So my client had a simple request a few days ago.
It read: "can you update the bottom middle image on the about page grid to the attached image".
There were two issues with that that my client cannot seem to comprehend - even after I have emailed them clearly explaining the issues.
The about grid is 4 x 4. Not sure how they expect me to update the "middle image" in a 4 column row, but alas.
The second issue was a little clearer. The attachment they mentioned wasn't an image. It was an empty .txt file.
2 consecutive fails right there :)2 -
When I request that a client sends me the images they would like on their website. I do not expect 25 Emails each with one fucking image.1
-
git commit message that I hate:
1. "Adjustment"
2. "Improvement"
3. "Fix Bug"
4. "I commit it but there are bug in this code"
5. "Client request"
YOU KNOW BE MORE SPECIFIC ON YOUR COMMIT MESSAGE!!!9 -
Client request: POST /user/login
Server response: "Login working bitches"
Client: if (response === "Login working bitches"){
//sign in
}1 -
our university results are out
the webpage to check the results has only 3 input fields
roll number
date of birth
captcha
after checking the source code turnsout it doesn't need the date of birth and the most FUCKEDUP part is the captcha it uses is generated using javascript on the client side and literary checked using string1 == string2
I captured the post request its sending..
it only sends the roll number with some headers to the url
I wrote a quick python script to emulate the post request and got back the results of my entire college
note - the university I'm referring to has literally more than hundred thousand students under it, each and every student uses that interface to get his results4 -
True story, honest to god.
Developed a state or the art SOA web app. Front end communicates with backend through API.
Client meeting, this guy looks me right in the eyes and blurts out : « why does the submit button get disabled after first click ? Clicking it a few times gets my request high priority »
I folded back my laptop and left the meeting without saying a word. Pretty sure I’m getting fired tomorrow.5 -
Client writes a bug report: This and that doesn't work.
Me: This functionality never was implemented. Please open a feature request.
Client: But this is a bug. Without this feature, the service won't work as we expect.
Me: But this wasn't in the requirements for release. So you have to contact the PM for a feature request.
Client: THIS IS A BUG! FIX IT!
Me: GO FUCK YOURSELF! THIS IS A NEW FEATURE AND YOU HAVE TO PAY FOR IT!
Unfortunately, I never sent the mail. But I kept it in the drafts. Maybe someday...1 -
I was checking out this wk139 rants & thinking to myself how does one have a dev enemy.. o.O Well TIL that maaaaybe I have one too..
Not sure if ex coworker was a bit 'weird & unskillful' or wanted to intentionally harm us and thank god failed miserably..
I decided to finally cleanup his workspace today: he had a bad habit of having almost all files in solution checked out to himself, most of them containing no changes whatsoever... I reminded him on many occasions that this is bad practice & to only have checked out files he was currently working on. And never checkin files without changes.. Ofc didn't listen.. managed to checkin over 100 files one time, most of which had no changes & some even had alerts for debugging in them.. which ofc made it to the client server.. :/
On one or two occasions I already logged in and wanted to check if files have any real changes that I'd actually want to keep, but gave up after 40 or so files in a batch that were either same or full of sh..
Anyhow today I decided I will discard everything, as the codebase changed a lot since he left an I know I already fixed a lot of his tasks.. I logged in, did the undo pending changes and then proceed to open source control explorer.
While I was cleaning up his workspace, I figured I could test what will happen if I request changeset xy and shelveset yy, will it be ok, or do I have to modify something else & merge code.. Figured using his workspace that was already set up for testing would be easier, faster & less 'stressful' than creating another one on my computer, change IIS settings and all just, to test this merge..
Boy was I wrong.. upon opening source control explorer, I was greeted by a lot of little red Xes staring back at me... more than half the folders on TFS were marked for deletion.. o.O
Now I'm not sure if he wanted to fuck me up when he left or was just 'stupid' when it comes to TFS. O.O
So...maybe I do have a dev enemy after all.. or I don't.. Can't decide.. all I know for sure is tomorrow I'm creating another workspace to test this and I'm not touching his computer ever again.. O.O -
TL;DR: Fuck Wordpress and their shitty “editor”.
Client told me the Wordpress editor was unusual slow on their site. I inspected the network traffic, while fiddling around in the admin pages. What I found was an even worse nightmare than expected. Somehow the fucktard of an “engineer” decided to implement the spell check module, to parse all other text areas on the page - even the fucking image sources. The result is a browser sending a GET request to fetch the images from the server every time an author triggers a keyup-event. Disabled the spell check and everything was back to budget-ineffective-feces-Wordpress normal.3 -
Web form request.
Client: Can we have an Excel workbook with a form? Download it. Fill it out? Then upload the workbook.
This was his suggestion. The workbook would be potentially updated by over 5000 users.
WTH!!!!!!2 -
I was tasked by a client to build a blogging / News website.
Client's first request: remove any reference of a publish date from the blogs, it ages our content.3 -
On Tuesday my client states she will get me one more piece of info I need to launch the site.
On Wednesday, nothing.
On Thursday, nothing.
On Friday she berates me that the site is overdue and demands it be launched before Saturday so she can send the announcement email.
I remind her that I was waiting for the information.
She responds, testily, that the info wasn't mission critical after all and to just insert something as a placeholder. Oh, and that there had been a religious holiday and so nobody would have been available to respond to the information request anyways. Like I'm just supposed to know all that without anyone telling me.
I'm now trying to get the attention of our overseas developer, who is the only person who can pull this off, but he's likely clocked out for the weekend.
I'm so mad right now I'm about ready to burn the whole site to the ground, cut my losses, and just walk away. But that would damage my reputation.3 -
Client asked us to modify site made in some obscure CMS. Authentication on AJAX request is done by sending email and password as plaintext in header and then it would do md5 on server side5
-
Attention: incomming resentful boiled up for months rant.
Hands down G2APAY is the worst because:
Merchant account aproval takes fcking months. It starts with unreasonable delays in documents approval. I mean insane nitpicking. They want to see merchants name surname and address on every god damn document that you submit even if for example bank statement doesnt include these details. I had to manually edit pdf’s just so that they would fck off and approve the merchant application. Insane requirements for document check also combined with their email only support answering only once a week you will have to wait one month just to get your account approved.
Then you get to the fun part, approval proccess for vendor gateway and webhook integration. They are nitpicking everything you can imagine: about website not having https, website forum missing some icons, merchants phone number being from another country then he is, and bunch of other hundreds of problems imagined only by them. Again combined with their one email reply per week policy you will waste atleast one month to finish up your integration.
Now finally you are their client and you think you can chill and go back to focusing on your business? Nope bro. Prepare for threatening emails. Last time I got a request to install https or my merchant application will be shut down. I was given 3 days notice on a fcking friday and had to do it.
Then g2a backend is crashing quite often. Combined with their one email per week policy you are fcked in the ass if your users were not able to pay through g2a and you will get no compensation.
Their backend documentation is shiet. Not clear how to integrate everything and after you integrate they make changes without publishing any changesets. Your integration is working? Good luck if it will still be working tomorrow.
And the very worst part is that they stopped proccessing credit cards like month ago with zero notice. Its been weeks and still zero news about bringing card proccessing back. They sad that they were acquired by some other company so shitty support got even shittier now while they are in a proccess of handover.
So yeah thats the worst vendor I have ever seen in my life. For example integrating paypal took me 30 minutes. Integrating stripe and getting all documents reviewed took me one business day. Same with paymentwall integration and document approval took 1 business day. Support is amazing and even have a phone number that I can reach if urgent problems arise. Thats how it should be. Thats why I can pay percentage of my transactions with a smile for them.
Sorry for the typos since im typing on my shiet phone while driving.
Eat a bag of dicks g2apay. I hope you go bankrupt and shutdown.21 -
That moment after you finish coding a site and the client comes back with a request for weekly analytics reports, on top of all the data from GA, New Relic, etc... in Excel documents. O_O2
-
My first freelance project - happened to be with the worst client. They didnt wanna pay more than $500 and also had no clue what they want, so each time i present something they request additional features or changing the ones implemented. In the end i kept the half downpayment for my time and bailed without deploying or anything. I introduced them to another freelancer to take the project and never went near them again.
To clarify, it was not my first project/ just my first time dealing with clients for projects instead of doing them at work. Ever since then i have a strict no dealing with clients directly policy.2 -
You know it is gonna be "fun" integrating client APIs, when all of them respond with
"Thanks for submitting the request"
And no error or status code whatsoever, no matter what you send.
Also, the client likes to test/call this API in Internet explorer address bar, and doesn't trust Postman. Amazing shit dude.3 -
The whole app was a shitshow...
- Cancel order as a post request (the same post request used to save the order).
I demoed the client how with a couple of lines of code I could change his "Cancel order" button to "Mark my order as payed" button....
- List orders method took an user id as input...
- Update profile did not care about wich properties you should be able to change as a non admin...
And so on...1 -
Client: Please add feature x in "here"
Me: Adds feature x in "here"
Fast forward to QA
QA: Test for feature x failed. Feature was added in "here" but is not in "there"
Me: There was no request to add x in "there"
Client: Feature x was already supposed to be in "there", you might have removed it.
Me: *Checks file where feature would be added.
* Git blame show no changes since received we the project (one major release back)
Lying cunt. I'm sick of your literally incomprehensible tasks giving government fucks, speak human language not overhead driven bureaucracy-jargon3 -
So I work for a VPN company as the Info Sec manager long story short I'm not usually the pleb who does customer support.
But today I ended up having to do this. I spent over 1 hour helping a client that a support agent escalated the request for to me. So I figure out that his network adapters are sharing incorrectly.
I fix problem.
He tries to connect.
Denied access so I check our servers for the request and he's blocked.
I think that's odd.....
I check active subscription and this person ISNT A CLIENT THATS ACTIVE....
WHY IS SUPPORT SO IGNORANT.
UGH.1 -
Sorry, need to vent.
In my current project I'm using two main libraries [slack client and k8s client], both official. And they both suck!
Okay, okay, their code doesn't really suck [apart from k8s severely violating Liskov's principle!]. The sucky part is not really their fault. It's the commonly used 3rd-party library that's fucked up.
Okhttp3
yeah yeah, here come all the booos. Let them all out.
1. In websockets it hard-caps frame size to 16mb w/o an ability to change it. So.. Forget about unchunked file transfers there... What's even worse - they close the websocket if the frame size exceeds that limit. Yep, instead of failing to send it kills the conn.
2. In websockets they are writing data completely async. Without any control handles.. No clue when the write starts, completes or fails. No callbacks, no promises, no nothing other feedback
3. In http requests they are splitting my request into multiple buffers. This fucks up the slack cluent, as I cannot post messages over 4050 chars in size . Thanks to the okhttp these long texts get split into multiple messages. Which effectively fucks up formatting [bold, italic, codeblocks, links,...], as the formatted blocks get torn apart. [didn't investigate this deeper: it's friday evening and it's kotlin, not java, so I saved myself from the trouble of parsing yet unknown syntax]
yes, okhttp is probably a good library for the most of it. Yes, people like it, but hell, these corner cases and weird design decisions drive me mad!
And it's not like I could swap it with anynother lib.. I don't depend on it -- other libs I need do! -
Ok so we just signed a new client with some "artificial intelligence" back-end...
To authenticate with their back end, they developed a FU**ING GET REQUEST so the username and password are passed in the URL.
Then we get a token that we pass in FU**ING GET REQUESTS to communicate with their "artificial intelligence enhanced" back end.
I can't even. I just can't.5 -
I spent 4 days working on a new feature of our program. A real pain in the ass! Even did a few hours of overtime.
This morning I go to my boss to tell him about a performance problem I was trying really hard to solve, but couldn't still totally remove...
His answer: "Don't bother with that! Our client is not going to use it. They simply forgot to remove it from their request. So we are going to deliver it so they will have to pay us!"
FFFFFUUUUUUCCCCKKKK!2 -
We had a school project where we where supposed to implement a software with a heavy client in C# and web services for it in C#, but the web services HAD TO COMMUNICATE WITH SMTP AND IMAP. And do that in 8 days.
We were 6 in the team. 4 had no idea what a web service is, and I and the designated project lead were the only ones knowing what to do. The lead had paperwork to do for the project, so I had to do everything but the UI alone. So 1 guy did the UI, 3 were... Playing Minecraft... The lead was doing paperwork and ranting about how noisy idiots these guys were... And I was sick as hell and could not eat anything, I was vomiting all day in between which moment I managed to make half of the functionalities of the project, despite having to go to the hospital and have to continue working despite the medical request not to work.
So the day before the presentation I had half of the functionalities done and I had to explain them yet another time what web services are so they can answer the questions and cover for themselves.
On the day of the presentation it went kinda fine. It was not finished but it worked like asked.
We were asked for peer evaluation and I gave A to the lead and the UI guy and B to the 3 other lazy asses.
Shortly after I am called by the tutor in the office : "What happened on this project? Were you not working at all? Apart for the lead who gave you an A, every one gave you a D (lowest grade). I demand for explanations"
I said never mind and got back to studying. I got a B, all the rest of the group an A.2 -
This is long rant/story:
My manager conducts sync-up meetings regularly. The idea is to sync up all developers on current state of work. He does’t conduct stand-ups. He doesn't have time for it. He rather discusses on individual basis if we are blocked. The rule of the sync-up meeting is NOT to discuss any blockers or problems but simply explain each other what we are doing and how we plan next.
Sometime ago, the manager brought up and explained a new way of working in the sync-up meeting. At this point, a new developer in the team was absent due to sickness.
Today, there was a sync-up meeting and the manager started to question the new member about the newly introduced way of working. He was unaware of it and the manager never communicated this important information via email or any mode of communication available.
So, the conversation goes on as follows:
"Manager": — "Why didn’t you complete your task as per the new way of working?"
"Employee": — "Well, I've no idea. Am I supposed to do? I’ve been working as usual like any other"
"Manager": — "We have a new process and you have failed to follow it, so we’re late in delivering your work"
"Employee": — "I’ve already finished my work on time. I've raised a pull-request this morning"
"Manager": — "It doesn’t matter, it is not merged to main branch and so we can’t include your work in the release"
"Employee": — "I’ve no idea about the new process"
"Manager": — "Haven’t you asked around about what happened from previous meeting"
"Employee": — "Yes, I have. I was told which tasks were handled, but nothing about a new process"
"Manager": — "Aren’t you interested to learn it?"
"Employee": — "Why won’t I be interested? I was on a sick leave and I have no clue what happened here"
"Manager": — "What’s happened is past now, let’s not focus on it"
"Employee": — <Dumbfounded>
The Employee felt ashamed in front of everyone. He did his job but it didn’t pay off.
…. After an hour … the Employee had a talk with the Manager
"Employee": — "You shouldn’t have pointed me out in front of everyone. It made me feel real bad. You should have emailed this information if its important for the team."
"Manager": — "I have no idea what you’re talking about. When did I say so? I think you’ve a bright future in the team. You should be focusing on doing better things."
Employee goes back to work. A minute later, the Manager sends a PowerPoint screenshot of the process in the group chat.
**The Process**
It's about delivering release packages based on priorities defined by client. Each release package is a set of work items or requirements. Individual developers are assigned to work items. They are expected to deliver on planned delivery timelines in order to consider a work item into a release package.1 -
I work as a freelancer and one time I had a client that needed some work done on a crypto website. I was so hyped up because the money was good so I jumped on it. Fast forward 2 weeks later I still couldn’t figure what the shit I was doing as the client kept asking for update.
Yes, I have experience with blockchain but my skill on Javascript just couldn’t help. I did google and also ask questions on S.O. but it wasn’t enough to get me on track.
At the end, I reached out to the client and apologized for not being able to meet up with their request and then recommended someone else.
So I’d say “I lost faith” on my skill as a Javascript dev at that moment for not being able to use some blockchain APIs effectively and also look forward to improving my catalog.2 -
A few years ago, i had a task to implement a webservice of an insurance-company into our .NET Development.
The security requirements of this insurance-company webservice were top notch.
As a client you had to build a request that used a negotiated certificate, canonical header structures, security timestamp, a secret token in header, ...
To configure all this stuff via web.config WCF was pure pain in the ass.
After many phonecalls and emails, i finally managed to meet all security requirements to send a valid request.
First, i didn't recognized my breakthrough, because my client still had thrown exceptions while calling the insurance-webservice.
Why was that?
The exception told me on the most possible gentle way, that .Net isn't able to process an unsecured response, when there was a secured request before.
So there was top notch security for requesting, but dumbass unsecured responding with all the precious customer information.
*epicfacepalmnuclearexplosionfollowing*
I even had to raise the. Net Version of our. Net client, because i wasn't able to configure that it is allowed to process an unsecured response after using a secured request.
Whyyyyyyy?!!?!!1el even!?! -
I used to be a sysadmin and to some extent I still am. But I absolutely fucking hated the software I had to work with, despite server software having a focus on stability and rigid testing instead of new features *cough* bugs.
After ranting about the "do I really have to do everything myself?!" for long enough, I went ahead and did it. Problem is, the list of stuff to do is years upon years long. Off the top of my head, there's this Android application called DAVx5. It's a CalDAV / CardDAV client. Both of those are extensions to WebDAV which in turn is an extension of HTTP. Should be simple enough. Should be! I paid for that godforsaken piece of software, but don't you dare to delete a calendar entry. Don't you dare to update it in one place and expect it to push that change to another device. And despite "server errors" (the client is fucked, face it you piece of trash app!), just keep on trying, trying and trying some more. Error handling be damned! Notifications be damned! One week that piece of shit lasted for, on 2 Android phones. The Radicale server, that's still running. Both phones however are now out of sync and both of them are complaining about "400 I fucked up my request".
Now that is just a simple example. CalDAV and CardDAV are not complicated protocols. In fact you'd be surprised how easy most protocols are. SMTP email? That's 4 commands and spammers still fuck it up. HTTP GET? That's just 1 command. You may have to do it a few times over to request all the JavaScript shit, but still. None of this is hard. Why do people still keep fucking it up? Is reading a fucking RFC when you're implementing a goddamn protocol so damn hard? Correctness be damned, just like the memory? If you're one of those people, kill yourself.
So yeah. I started writing my own implementations out of pure spite. Because I hated the industry so fucking much. And surprisingly, my software does tend to be lightweight and usually reasonably stable. I wonder why! Maybe it's because I care. Maybe people should care more often about their trade, rather than those filthy 6 figures. There's a reason why you're being paid that much. Writing a steaming pile of dogshit shouldn't be one of them.6 -
Made a tiny-ass code change and commited it today. Put in a proper enough commit message as well (any dev would have understood).
Not 5 minutes later, my manager calls me (I was happy that my code was being reviewed so quickly) and asks "why did you make this change?" So I started explaining it to him. End of the discussion, turns out I had to give him 2 details: "it was a customer request" and "<insert client name here>".
Why did I ever try. Rather why didn't he try. -
A while a go, we got a Feature Request by our client, which was a bit of a stretch. and by a bit of a stretch i mean horrible shit which is totally unusable, a technical nightmare to implement with almost no accessable data.
well, the pm gave me the Ticket. when I First read it, I wanted to puke.
since the pm wasnt in a good mood, i just wrote a large comment on where to implement that Feature to be a much less pain in the ass.
many discussions with the pm and the Client later, i Had to implement it the way, they wanted. so i started.
after one and a half week, i was almost ready, just a few hours left and the nightmare would be over
what i didnt know is that the Client came over to discuss a few things with my Boss
suddenly my Boss walks in and asked, how much im ready
then He told me THE message
i should should Revert everything ive done the last 1 1/2 weeks and implement the Feature the way, i told was better
worst friday ever -
Client wants some CMS text to be automatically translated. So I checked and Google seems to have a solution for that. I thought to to be as simpel as doing a request and parsing the response. That's how API's work, right?
No. First I must create an account, that account must have a credit card, then I need to setup credentials, the default ones working with path variables, an API key... etc etc etc.
I feel so stupid for just not understanding their docs. I'm just a dude that installs a CMS and makes pretty CSS for it. I've worked with REST APIs before (Mollie, Carerix) but none of them ever demanded the level of knowledge and setup the Google Translate API demands.
Am I just a bad developer or is this shit just too complex for your average web developer?9 -
New in my job
Start to work on a abandoned project for one of our client not very happy cause the lack of update
Go for a critical issue which exists since 2 months where everyone was telling me that they passed a huge time working on it with no answer
*check error*
*check code*
The code is so fucking much not DRY so I was able to see the same 4-5 incriminated lines elsewhere
*see that the request is lacking of one parameters just has the error suggests*
*copy paste the missing line*
*it works*
I’m now a hero for them but they become fucking peasants for me
(In addition, when code reviewing, some one had the nerve to tell me that “haha it was nothing much finally, it was easy”
To him : fuck you, eat my 💩) -
Ok so I have done some work with crypto currency mining pools and recently a client requested for me to make a splash page that showed data from multiple instances of these pools APIs. I went to find some documentation for this open source api and to my surprise there is none. I thought of querying the public API from the clients side and it worked, however it's so slow that the data shows up roughly 20 seconds after the page loads.
Easy fix right? Make a PHP server get the data every 5 seconds, cache it and serve the data with the page and use a websocket for live updates! Until I found out that there is no practical way in this garbage framework to get the damn API data without making an HTTP request or mutilating the original source code. I'm so done with this garbage framework. It literally loads pages based on a page and action parameter on the index.php. I quit.1 -
Working for 5 months as a junior dev. I receive a request to check out a data issue at client, no one knows what is happening. I quickly find a data import issue and let everybody know. Few days later apparently issue is still not solved. A senior data consultant approaches me asking for help.
senior: 'So, any idea what's wrong with the data?'
me: 'Yeah, someone messed up the import. Just delete it and import it again.'
senior: 'How do you know?'
me: 'Because <insert valid arguments>'
senior: Wow, very clever. Amazing work. I wouldn't have thought about that. Great job'
A few moments later I receive an email from the senior with all the stakeholders in the cc: 'I found the problem and I have a solution <copy/paste my words>'4 -
Company had problematic client projects that each client has a bucket load of change requests. Company doesn't know how to say "No" to them. Company can't afford to pay the subvendors for the changes and the subvendors aren't willing to do them for free.
I went in, reverse engineer the shit out of each application, database, system, documented my own findings, changed according to each client request. This involves editing tables in MSSQL, rerouting PHP files, adding field and validations in C#, passing parameters in VB to Crystal Report, and managed every change request into my own personalize ticket system (that the company does not have).
Saved the company, everyone was grateful. A couple of months later, the company hasn't paid my salary on time, I left like a boss.
They're in shit again and need my help. Haha! -
!Dev related but still freelance.
So.. I do 3D stuff, scenes, animation and so on. The e-sport pub manager I know told me about this guy that wanted to start a local organizations around FIFA, hold tournaments at the pub and so on. He had some finance, contacts and needed a 3D scene of a stadium to highlight top placers as 3D Fifa cards.
Gotcha, so I hooked him up with said stuff, he was happy, manager was happy, first tournament went well. Now to the shit show:
He wrote to me a couple of days later asking if I'm up for more jobs, which k respectfully declined because l was on a bigger project that took about 2months to complete. Since that day, he spammed both me and the pub manager with request and wishes on wanting to do more.. and I mean SPAM!
Like the dude can't take a no, sorry. He tried to call on phone and messenger, messeged me several times / week and asked the manager of he heard from me.
Both the manager and I were perplexed of his attitude and after asking several times to stop and we both had other things for now (events / projects).. he.. he didn't stop. So.. blocked and that's that, right? Fuck now.. other clients of mine asked me if I knew of him because he tried to contact them to get to me.. like WTF?! How hard is it to take a no and move on?! Jesus.. client of hell in a nutshell2 -
A random story that just popped back into my head while reading another rant:
Long ago, we developed our own webmail platform at the request of clients. After it was finished, it was never updated and eventually turned into an outdated insecure steaming pile of crap. Up until ~2015, it looked like the first iteration of AOL Mail from the 1990s (and it functioned as such too.) Years, we decided to sunset the platform, and allotted 6-months or so to transition all the active users off the platform and over to an alternative email provider. We had to call each client multiple times and send multiple emails with a deadline detailing when the service would be shut down, and we'd explain that if they didn't transition over to a new service and transfer all their emails before that date, then the emails would be lost forever. Lo and behold, a handful of clients ignored our repeated contact attempts, and we shut down their email service (as we told them that we would.) Of course, they called screaming and panicking "OUR EMAIL IS DOWN OUR EMAIL IS DOWN WE'RE LOSING MONEY FIX IT NOW!!!!," and we told them "We attempted to contact you multiple times, and you neglected to return our numerous calls or emails. We're happy to help you transition your old email addresses to this new provider, but because you neglected to follow the cushy deadline we provided you, all of your emails are gone."
Of course, they denied having ever received our calls/emails, and we'd have to provide them with our outgoing call recordings to prove that we did in fact contact them multiple times. Then they'd blame the mishap on their secretary, who would blame it on the intern, who would blame it on the IT guy, who would blame it on the janitor, and so on and so forth.
Moral of the story: always keep outgoing call recordings when you're sunsetting a product.1 -
Been engaged in a silly-client-request VS stubborn-developer war since last week. They wanted a textbox where they enter decimals - generally in the form 1.234 - to automatically put the decimal point after the first number.
"What if it's 10.xxx or 100.xxx?"
"That won't happen"
"How much time will it really save them having to press another key?"
"Why, how long will it take you to do the fix?"
Etc, ridiculousness and rage increasing exponentially...
Common sense finally prevailed today. Just think of all those wasted milliseconds having to press the "." key.3 -
Our new project is a responsive mobile-first web system coded with HTML, CSS, jQuery and AJAX that connects to MySQL, but the main tasks runs trough a huge application written in Visual FoxPro, per client request...the web version could manage the whole business but no, it has to be Fox.
Oh, and it's the version 6, not even using the latest version 9 with all it's "improvements". What are we, back to the past milleniun?3 -
I’m studying at uni remotely at the moment. I’m taking a software engineering class. I love developing software so I was super excited about this course. First assignment is to make a tic tac toe game in python. I finish the assignment super fast within the first hour of our first class.
We end up spending the rest of the fucking semester on this fucking program. No improvements, nothing. Literally just staring at this less than 200 line command line tic tac toe game talking about the same fucking shit every class.
Our fucking final is a presentation about this fucking program. The entire class is going to present the same command line python tic tac toe game
People told me that in the past, this class would find a local client and fulfill a request (making a website, etc)
However, now there’s a new prof teaching this course.
Best way I can describe it, 3 hours of this fucking prof screen sharing a google doc and droning on for 3 hours
I wish I could get the 20+ hours of my life back that this course has taken from me10 -
I just had such a forfilling moment.
Normally, i often (force myself) go to bed at night, after i worked on a project of mine, with these thought saying "oh man i wanted to get that feature done today" or "i want to finish this and that part of my code".I am sure everyone of you knows the feeling, when your brain communicates that you are just not done for today.
Today it was different. I got a project of mine working in it's first state, where i put much heart, love and time in.Just a few minutes before i finished for today i got my server responding the expected numbers(some kind of pin-code). It's a very easy system: Someone(at the time only me and my debug mode :3) on a android phone request a verification which is checked and processed by the server. The server creates a random six-digit number, returns it encoded to the client and sends an email to the user, which currently sends it in plain text(shame on me).
Yeah, the user enters the number and voilà
And of course, all the Pincodes can only be used once.
I got to bed with this feeling of luck and succes.
I hope tomorrow is going to be a productive day!
I am so lucky right now.
Have a good day everyone! -
I was thinking about how I implement login functionality, and realised I have no clue how I came up with it so decided to ask if it was a good way to do things.
Basically, client logs in, username/email and pass are sent to server.
Server salts and hashes password and checks it against the one in the database for that user.
If its correct, send the client the user ID and the user token. (User id could be username, or a number, it depends)
When that client makes a request, the request must contain the ID and token.
The server checks that the ID and token combo are correct, and because the ID is linked to the user we know who it is and can complete the request.
Usually I make the token a random string of 16 or 32 chars, each account has their own token, and it may be stored in the browser so they stay logged in. I also normally add a "log out everywhere" button, which essentially just generates a new token to overrides the current one, making any previously saved tokens invalid.8 -
when the release date is may 31 and the client thought it's a good idea to request a bunch of new features and changes in friday afternoon :)
Tomorrow is gonna be a fun birthday... -
Question: tl;dr: looking for an open source bug tracking tool, or one that's affordable for small freelancers.
I'm working as freelancer with a client on a project and currently all the bugreporting/feature request/information/discussions/and other stuff happen by Telegram (not my first choice but hey, you know clients).
It happend twice, that I forgot about the specs of a feature we discussed briefly, because there was to much going on and I wasn't able to find it. So the next logical step would be to get a bugtracker.
So far my favorite would be http://www.redmine.org/
Does any one of you have good or bad expirience with it? Would you recommend something else, if so what and why? Other stuff I should consider?6 -
"You basically need a iOS and Android app, with access to the driver and also to the final client with an administrative environment and integration to pay online via the app"
- Uber like app request from a friend -
love it when client supports comes to me and tells me the entire conversation they had with a client when i just need wathever request they had. i could have been done with this feature in the time you took giving me 90% useless information.2
-
Client email: so you know that custom thing I wanted on my website that you made and I refused to pay for? Could you just send me the code, I'm gonna write my own.
*Staring at screen in disbelief and laughing*
Even if you were an awesome client, and you had paid, I still wouldn't just "give you my code" so you can write your own. You hired me to do it because you CAN'T not because you didn't want to, not because you're lazy, but because you are not mentally capable of making your own.
Me: I'm sorry, but I'm not sure you would even know where to start with this, what was wrong with the one built?
Client: I wanna put the code in my Salesforce so it can run the API request and automatically make a lead for me.
My code takes fields from a form, runs the data over to the API, gets the response, allows for user confirmation that the information is correct, and then sends all the relevant data to Salesforce as a lead.
Me: But that's exactly what mine does, just does it from your website where users will be entering the info, and once they've confirmed it you get a Salesforce lead.
Client: well some of my leads come from other places and I want to simplify everything.
Me: no, not possible, sorry.
If you didn't have 25 different websites for one company then all your leads would come from the same place and it would be simple.2 -
I worked as a freelance for a client and after working for more than a month, he owes me 1500$ and the payment was already due 15 days back
Today he even disconnected me on Skype which was the main source of communication
Now I want to undo my pull request which has already been merged in the master
I still have write access to the main repo, its on bitbucket
Is there any way i can destroy all my commits from the master branch or undo my merged pull so that he doesn't get any of the code
#helpwanted8 -
Asshole that my client hired: "You will be reporting to me now. As per client request."
Me: "I will murder you." -
I am a Technical Lead in the department in my company that writes code for our clients that have money but doesn't have the technical expertise to handle the complexities of our own software.
Part of my tasks involve taking care of a few projects written by employees that have left after using third-party tools rather than using our own software. No one else in this department knows these third-party tools, they only know our own, and my *still limited* web development experience means I get dumped these things in my lap.
And I'm SO pissed at these projects and their authors and the manager that let these ex-employees write these things. There is this one project that was managed by two different "developers" (I don't know they deserve this title) at two different times, and it is so riddled with different technologies it makes me want to throw up almost daily.
Don't believe me? Here is a complete list of the dependencies listed in the package.json of this project: babel-polyfill, body-parser, cookie-parser, debug, edge, edge-sql, excel-to-json, exceljs, express, html-inline, jade, morgan, mssql, mysql, pug, ramda, request, rotating-file-stream, serve-favicon, webpack, xlsx, xml2js
What this doesn't even show, is that one part of this project (literally one page) is made using react, react-dom, react-redux, and jade. The other part (again literally one page) is made using Angular and Pug. In case you missed it while picking up your jaw, there's also mssql, mysql, edge and edge-sql. excel-to-json, exceljs, xlsx.
Oh you want *more* juicy details? This project takes the entire data object used by the front-end, stringifies it into JSON, and shoves it into the database *as a single field*. And instead of doing WHERE clauses in the SQL queries, it grabs the entire table, loops, parses the json, and does a condition on it. If even one of those JSON entries gets corrupted, the entire solution breaks because these "developers" don't know what try/catch is.
The client asked for a very simple change in their app, which was to add a button that queries the back-end for a URL, shows it in a modal dialog, after which a button is clicked to verify the link by doing a second query to the back-end before modifying a couple of fields in the page.
This. Took. Me. Two. Months*. Save me. Please, save me.
*between constant context switches between this and other projects that were continuously failing because of their mistakes.4 -
A tale of silos, pivots, and mismanagement.
Background: Our consultancy has been working with this client for over a year now. It started with some of our back-end devs working on the API.
We are in Canada. The client is located in the US. There are two other teams in Canada. The client has an overseas company contracted to do the front-end of the app. And at the time we started, there was a 'UX consultancy' also in the US.
I joined the project several months in to replace the then-defunct UX company. I was the only UX consultant on the project at that time. I was also to build out a functional front-end 'prototype' (Vue/Scss) ahead of the other teams so that we could begin tying the fractured arms of the product together.
At this point there was a partial spec for the back-end, a somewhat architected API, a loose idea of a basic front-end, and a smattering of ideas, concepts, sketches, and horrific wireframes scattered about various places online.
At this point we had:
One back-end
One front-end
One functional prototype
One back-end Jira board
One front-end Jira board
No task-management for UX
You might get where this is going...
None of the teams had shared meetings. None of the team leads spoke to each other. Each team had their own terms, their own trajectory, and their own goals.
Just as our team started pushing for more alignment, and we began having shared meetings, the client decided to pivot the product in another direction.
Now we had:
One back-end
One original front-end
One first-pivot front-end
Two functional prototypes
One front-end Jira board
One back-end Jira board
No worries. We're professionals. We do this all the time. We rolled with it and we shifted focus to a new direction, with the same goals in mind internally to keep things aligned and moving along.
Slowly, the client hired managers to start leading everything in the same direction. Things started to look up. The back-end team and the product and UX teams started aligning goals and working toward the same objectives.
Then the client shifted directions again. This time bigger. More 'verticals'. I was to leave the previous 'prototypes' behind, and feature-freeze them to work on the new direction.
One back-end
One conceptual 'new' back-end
One original front-end
One first-pivot front-end
One 'all verticals' front-end
One functional prototype
One back-end Jira board
One front-end Jira board
One product Jira board
One UX Jira board
Meanwhile, the back-end team, the front-end team overseas, all kept moving in the previously agreed-upon direction.
At this stage, probably 6 months in, the 'prototypes' were much less proper 'prototypes' but actually just full apps (with a stubbed back-end since I was never given permission or support to access the actual back-end).
The state of things today:
Back to one back-end
One original front-end
One first-pivot front-end
One 'all verticals' front-end
One 'working' front-end
One 'QA' front-end
One 'demo' front-end
One functional prototype
One back-end Jira board
Two front-end Jira boards
One current product Jira board
One future product Jira board
One current UX Jira board
One future UX Jira board
One QA Jira board
I report to approximately 4 people remotely (depending on the task or the week).
There are three representatives from 'product' who dictate features and priorities (they often do not align).
I still maintain the 'prototype' to this day. The front-end team does not have access to the code of this 'prototype' (the clients' request). The client's QA team does not test against the 'prototype'.
The demos of the front-end version of the product include peanut-gallery design-by-committee 'bug call-outs', feature requests, and scope creep by attendees in the dozens from all manner of teams and directors.4 -
So I start developing a site for a client and request for the site assets.. Client provides 100+ 25mb sized .tiff images.... For the web! I tell him that the page load times will be insanely slow and I explain the need for optimized images.. He doesn't care.. So I upload the images and he flips out at the performance hit, complaining about the slow load times.. Here I am sitting and optimizing the images when I should be home :/1
-
CORS is shit
Stupid useless shit that protects from nothing. It is harmful mechanism that does nothing but randomly blocks browser from accessing resources - nothing more.
Main idea of CORS is that if server does not send proper header to OPTIONS request, browser will block other requests to that server.
What does stupid cocksuckers that invented CORS, think their retarded shit can protect from?
- If server is malicious, it will send any header required to let you access it.
- If client has malicious intents - he will never use your shit browser to make requests, he will use curl or any ther tool available. Also if server security bases on something as unreliable as http headers it sends to the client - its a shit server, and CORS will not save it.
Can anyone give REAL examples when CORS can really protect from anything?33 -
Has any of you reached a point that you want to resign from work because of a client?
We are dealing with a client at work that uses the app for prototyping instead of making designers create wireframe, imagine the amount of code to write,edit, remove, write it again and yet there is always something isn't right from the client point of view.
What is even worse backend guys screw the server and I am the one to be blamed for errors: 5xx
I even get blamed for error 400 (bad request) when that request passes tests but out of a sudden server returns 400, when you hit refresh the exact same moment of error and server decides to return data and stop throwing error 400.
I also get blamed for server fails to return data from a search endpoint, and if server throws 403 for a public endpoint.
This isn't a rant or getting out of my system but I need opinions, I've been working on this project for a year, with complete mess from either client or backend team, if any of you is instead of me, what would you do?
I'm not a complete guy either, but that situation is just beyond my abilities to handle.6 -
Trying to use authenticate a JWT token from an Azure service, which apparently needs to use Azure AD Identity services (Microsoft Entra ID, Azure AD B2C, pick your poison). I sent a request to our Azure admin. Two days later, I follow up, "Sorry, I forgot...here you go..."
Sends me a (small) screenshot of the some of the properties+GUIDs I need, hoping I don't mess up, still missing a few values.
Me: "I need the instance url, domain, and client secret."
<hour later>
T: "Sorry, I don't understand what those are."
Me: "The login URL. I assume it's the default, but I can't see what you see. Any shot you can give me at least read permissions so I can see the various properties without having to bother you?"
T: "I don't see any URLs, I'll send you the config json, the values you need should be in there."
<10 minutes later, I get a json file, nothing I needed>
<find screenshots of what I'm looking for, send em to T>
Me: "The Endpoints, what URLs do you see when you click Endpoints?"
<20 minutes later, sends me the list of endpoints, exactly what I'm looking for, but still not authenticating the JWT>
Me: "Still not working. Not getting an error, just that the authentication is failing. Don't know if it's the JWT, am I missing a slash, or what. Any way I can get at least read permissions so I don't have to keep bugging you to see certain values?"
T: "What do you need, exactly?"
Me: "I don't know. I don't know if I'm using the right secret key, I can't verify if I'm using the right client id. I feel like I'm guessing trying to make this work."
T: "What exactly are you trying to get working?"
<explain, again, what I'm trying to do>
T: "That's probably not going to work. We don't allow AD authentication from the outside world."
Me: "Yes we do. Microsoft Teams, Outlook, the remote access services. I can log into those services from home using my AD credentials."
T: "Oh yea, I guess we do. I meant what you are trying to do. Azure doesn't allow outside services to authenticate using a JWT. Sorry."
FRACK FRACK FRACK!!
Whew! Putting the flamethrower away.
Thanks devrant for letting me rant.3 -
The year was 2006. During the first half of my career, I use to work in the NOC. This was before I made my transition to software engineer. I worked on the third shift for a bank services company. The company was on a down turn. Just years earlier they just went public, and secured a deal with a huge well known bank. Eventually they entered a really bad contract with the bank and was put into a deal they couldn't deliver on. The partnership collapse and their stock plummeted. The CEO was dismissed, and a new CEO came in who wanted to "clean things up".
Anyway I entered the company about a year after this whole thing went down. The NOC was a good stepping stone for my career. They let me work as many hours as I liked. And I took advantage of it, clocking in 80 hours a week on average. They gave me the nick name "Iron Man".
Things started to turn around for the company when we were able to secure a support contract with a huge bank in the Alabama area. As the NOC we were told to handle the migration and facilitate the onboarding.
The onboarding was a mess with terrible instructions that didn't work. A bunch of software packages that crashed. And the network engineers were tips off, as they tunnel between our network and the banks was too narrow, creating an unstable connection between us and them. Oh, and there were all sorts of database corruption issues.
There was also another bank that was using an old version of our software. The sells team had been trying to get them off our old software for over a year. They refuse to move. This bank was the last one using this version, and our organization wanted to completely cut support.
One of the issue we would have is that they had an overnight batch job that had an ETA to be done by 7 AM. The job would often get stuck because this version of the software didn't know how to fail when it was caught in an undesired state. So the job hung, and since the job didn't have logging, no one could tell if it failed unless the logs stopped moving for an hour. It was a heavily manually process that was annoying to deal with. So we would kill the JVM to "speed" the job up. One day I killed the JVM but the job was still late. They told me that they appreciated the effort, but that my job was only to report the problem and not fix it.
This got me caught up in a major scandal. Basically they wanted the job to always have issues everyday. Since this was critical for them, all we needed to do was keep reporting it, and then eventually this would cause the client to have to upgrade to our new software. It was our sales team trying to play dirty. It immediately made me a menace in the company.
For the next 6 months I was constantly harassed and bullied by management. My work was nitpicked. They asked me to come into work nearly everyday, and there was a point I worked 7 days with no off days. They were trying to run me so dry that I would quit. But I never did.
On my last day at the company, I was on a critical call with a customer, and my supervisor was also on the line. My supervisor made a request that made no sense, and was impossible. I told her it wasn't possible. She then scalded me on the call in front of customers. She said "I'm your supervisor, you're just a NOC technician, you do what I say and don't talk back". It was embarrassing to be reprimanded on a call with customers. I never quite recovered from that. I could fill myself steaming with anger. It was one of the first times in my adult life that I felt I really wanted to be violent towards someone. It was such a negative feeling I quit that day at the end of my shift with no job lined up.
I walked away from the job feeling very uncertain about my future, but VERY relieved. I paid the price, basically unable to find a job until a year and a half later. And even was forced to move back in with my mother. After I left, the company still gave my a severance. Probably because of the supervisor's unprofessional conduct in front of customers, and the company probably needed to save face. The 2008 crash kept me out of work until 2009. It did give me time to work on myself, and I swore to never let a job stress me out to that degree. That job was also my last NOC job and the last job where did shift work. My next few jobs was Application Support and I eventually moved into development full time, which is what I always wanted to do.
Anyway sorry if it's a bit long, but that's my burnout story. -
When I hit the endpoint from Postman it works. When I hit the endpoint from my application that pushes data to the endpoint it doesn't work, returning a 404 status code. I KNOW the endpoint is there and operational and that both Postman and my application have the same endpoint configured, letter for letter.
So lost. So confused. What the hell is going on.
I decide to install Fiddler to monitor the traffic to see if I can see anything helpful.
I initiate the request again from the application and immediately see that the request size is huge. BAM. It immediately hits me, the payload to the endpoint is too big and the server is "rejecting" it with a 404. I post a smaller request with the application and it works fine.
Yay, saved by Fiddler.
Why does the endpoint default to 404 in such scenarios. The definition of 404: "the client was able to communicate with a given server, but the server could not find what was requested"
In my case, the 404 returned was a red herring. I understand that the substatus code gives more information on why the 404 was returned, in my case the request size being too big, but 404 in general feels like the wrong status code to return because the endpoint IS there. It made me troubleshoot the wrong thing.
Thanks, IIS.4 -
TLDR: Detect site visitors browser and conditionally load a Citrix frame rather than rendering the site
The request came about 3 days after launching a new project to production. For several months before that moment we had reviewed and confirmed the supported browser matrix. As you might guess plans tend to go up in smoke as we approach and pass launch. Now that we're live after all, it would be the tine to lose our damn minds rather than bask in the warmth of a successful launch for 5 minutes.
Anyway as for the actual request, after those first few days the client PM realized a FEW people were actually using IE8 and was now panicking that it was unsupported. On my way out of the building that day he asked if we could detect the browser and rather than render the site load a frame to a Citrix session that would be running the latest IE... -
So for the past one month I'm working on an enhancement in a product coded in C++ and shell script, running on RHEL. After toiling away for almost 10 hours/day for a month, the enhacement is ready. Coded, tested, documented. Ready to ship.
The client is supposed to recieve the update as a drop. 1 day before the drop is scheduled to be released to Quality Control, I fire an overnight build on the build machine, update the change request ticket, update other related tickets, inform QC of the drop to be released tomorrow. On the D-day, I package the drop using the company's painfully arduous method. Everything is ready by the evening, and the drop is good to go.
At 7pm (one hour before the drop is to be released), Jack fucking Jack-o-lantern (one of the top most exec in the company) tells me that the default value of the parameter introduced in the enhancement, needs to be changed from 86400 to 1500. HALF AN HOUR BEFORE THE DROP IS TO BE RELAEASED!
Now here I am, changing the value in over 25 files, followed by firing an overnight build, followed by sanity testing, change specific testing, followed by drop packaging, followed by inform QC that the drop will be delayed.
All because fucking jack-o-lantern wanted to change the fucking default value.
GOOD FOR YOU FUCKING JACK.2 -
Rant #1
I’ve got a new client wanting me to take over their website, okay... I’ll take care of you.
What’s the hold up?
1. Anon, Get ahold of this person, they’ve got the info you’ll need.
2. We will get together sometime to go over paperwork.
3. We are waiting on the board to sign off on a contract switch.
4. I’m needing this changed immediately on the site or we will be fined, but I understand you don’t have the information to make that change - can you get ahold of X to get the information?
5. *gets ahold of X* - still waiting on Y to approve contract release and change.
Listen, I have my faults too on running my own business but at least I know what I can and can’t do when either accepting or turning away a client. I’d be happy to work on your website, but you’ve got to get approval from those on your team before you make a change, that’s not on me. It’s cool that you need whatever changed on your site before the end of the week, but I can’t help you until I’m officially signed on. Please don’t request content change when I don’t have access to the content to change it.
Go get approval by your team first before you call me about making changes to your site, we haven’t even exchanged any information or paperwork yet.
Rant #2
If you call me again knowing that I’m on a two month leave from work, I’ll slit your throat and fuck the wound. It’s 1:40. There are other techs, you’ve got the on-call list in front of you. I’m flattered you went through the trouble of finding my PERSONAL NUMBER, but I have rants to write damn it. -
!Rant
O colleague of mine recently made a website about himself proudly declaring himself an "established website creater capable of making anything a client desires"....checked out his work...only wordpress with s*it ton of plugins...taking forever to load the simplest request...lord have mercy on the poor souls who hire him..1 -
Managing a small team - poorly.
I was in charge of testing a legacy calculations engine together with two scientists, for whom I set up a python and interop environment so they could test the engine easily.
The two were very excited at the thought of validating the calculations and in fact found many bugs.
I was very supportive, told them to fix the bugs and gave them a pet on the back.
All three of us were happy the legacy engine is shaping up, that's until my boss heard of it, and boy did he grill me hard for it.
Turns out our efforts were highly unappreciated by the client, whose only request was that we test the engine and report the bugs. Not to fix them. My goodwill cost the company a lot of money, since the client paid by the hour, and was now due a refund. Crap.
It took me a year to finally understood the moral of the story. Which is to always respect the client's wishes and convey maximum transparency to him. -
That moment you realize you just completed a task for a client because they asked for it but you didn't first check to see if the request was part of the original spec and estimate and so you don't really get to be paid for it.
-
So the client ask for a new super urgent request and want to see it completed in 10 minutes.
Not that I can't do it, I just need 2-3 minutes to do it, but because of their rudeness, I left the job for my little cute interns who work at my company.
Takes her more than hours to complete.
Sorry client. LOL1 -
Today I spent 9 hours trying to resolve an issue with .net core integration testing a project with soap services created using a third party soap library since .net core doesn't support soap anymore. And WCF is before my time.
The tests run in-process so that we can override services like the database, file storage, basically io settings but not code.
This morning I write the first test by creating a connected service reference to generate a service client. That way I don't need to worry about generating soap messages and keeping them in sync with the code.
I sent my first request and... Can't find endpoint.
3 hours later I learn via fiddler that a real request is being made. It's not using the virtual in-process server and http client, it's sending an actual network request that fiddler picks up, and of course that needs a real server accepting requests... Which I don't have.
So I start on MSDN. Please God help me. Nope. Nothing. Makes sense since soap is dead on .net core.
Now what? Nothing on the internet because above. Nothing in the third party soap library. Nothing. At this point I question of I have hit my wall as a developer.
Another 4 hours later I have reverse engineered the Microsoft code on GitHub and figured out that I am fucked. It's so hard to understand.
2 more hours later I have figured out a solution. It's pure filth..I hide it away in another tooling project and move all the filth to internal classes :D the equivalent of tidying your room as a kid by shoving it all under the bed. But fuck it.
My soap tests now use the correct http client with the virtual server. I am a magician.4 -
TL;DR: This year I changed job to a quite toxic company and because I have to work for two different clients in parallel I'm burning out. I need suggestions about telling about my mental health to my employer or request to change clients because of their incompatibility
----
At the begin of this year I changed work from a small startup (which was nice, but they didn't pay very much) to a consulting company and since then I'm experiencing my first burnout.
Just to give some context, the first month or two months in this new position were nice: the project I've been put on was difficult, but the other people in the team were very kind and helped me navigate through the codebase. After there quiet months, I've been put on a second project (in parallel with the first one), same domain but different client and the two clients must not know that I work for other clients. This doesn't work particularly well because both of the clients require me a full--time presence and both the teams have the tendency to call you without any warning and without setting up a meeting on calendar and beacuse of this I pass 3/4 of my day on such useless meetings (which many of them I have to be present at the same time, and sometimes one meeting is in English and one in Italian) without getting any job done and now both my leads are getting frustrated by my delays.
To make it all worse, when I was contacted from the headhunter it was for a mobile developer position, but because of my previous position my employer thought that I could temporary work on one java project because there was scarcity of developers and I could be a nice fit.
I'm not sure if I sum up my situation clearly of it's confused (I'm sorry about that), but tomorrow I plan to call my employer to tell him that I can't take it anymore and something has to change, I just don't know if I should put it on the incompatibility of the two clients, my mental health or both6 -
I don't like when client decide which tech use in the project. I got some weird tech request like:
1. Move existing database from postgresql to Hadoop because hadoop is Big Data (is kinda move from amazon rds to amazon s3 just why? have you index, cluster your postgresql table?)
2. Move from mysql to postgresql because mysql cause deadlock (maybe their previous developer just fucking moron)
In this situation we just explain why we don't use that and propose alternative solution. If they insist with their solution either ignore it or decide not continuing the project.5 -
Hm... Apparently I've been doing TDD all along... it's just that I don't save the tests in a seperate project.
I just keep editing Main() to test whatever i'm working on (each class).
Also the NJTransit site is sneaky as ****. It seems the devs know a bit about how to prevent site scraping by checking Headers and Client information...
Took all afternoon to get this test to pass....
it works in Chrome but not in my code... and even after I spoofed all the headers... including GZIP.... it wouldn't work for multiple requests...
I need to create a new WebClient for each request.... no idea how it knows the difference or why it cares... maybe it's a WebClient bug...
And this is only the test app. Originally was supposed to be built in React Native but that has it's own problems...
Books are too old, the examples don't work with the latest...
But I guess this also has a upside... learn TDD and React rather than just React... hopefully can finish this week...
I'm actually on vacation... yea... i still code like a work day... 10AM - 8PM....2 -
When you haven't heard anything from your client in months and suddenly they contact you expecting their request to be done by tomorrow 😔1
-
When a client approves the website's design, and you're almost finished building the website (while allowing the client to view progress) and you suddenly recieve the request to change half the damn thing.4
-
Last week: Build out a landing page and contact form in Pardot. Deliver to client after a quick QA pass through.
Friday: Get nasty message from client via basecamp about how the entire page looks like complete crap. We're also very unprofessional and can't deliver a simple request, while we charge a premium for our services.
So I, wondering what I managed to screw up so horribly, hop on to the test page I sent them. Except, its different and looks like crap.
They edited the page after it was sent to them and are pissed it doesn't match the comps they sent over. So I edit it back - except for the form. The one they added selects and textarea boxes to. Fields they didn't include in their comp and there was no mention of them wanting to use.
Today: Phone call with client. Every single complain they have about the page template they delivered all goes back to one of 3 things.
1. Their designer doesn't know how to use their global styles in his designs. So when things match their global styles (as they specifically asked for) they don't understand why they don't match the comp in a side by side view.
2. They change their mind on a design after the page was built. They won't admit this is the case and want to blame someone else for it not looking the way they want it. You know, "Spirit and Style of their current site"
3. They're idiots.
So now, I put aside a much more fun React project for an Amazon owned grocery chain and work on this nonsense. -
When you bust your ass developing a site for a client, bend over backwards with changes - pushing the rest of your extremely large queue further and further behind, just to come in to a cancellation request from someone else at said company. 😡 We had really good rapport and the site looked amazing, and all they give me is "we're going in another direction". 😡 Why do people so this when the site is already finished?!? So rude! Before you comment telling me to charge upfront next time or whatever I work for a huge company so none of that is in my control.
-
I talked to the client how functionality should look like on UI, draw a mockup, designed and made changes to db schema, created REST api, made documentation how to use it, told frontend developer to make changes on frontend application according to the documentation and mockups. Still no one have fucking clue how to do it. Fucking testers can’t write anything, only clicking.
So I sent curl code how the fucking request should look like exactly then resolved bugs they reported as won’t fucking fix because I will not be also making fucking frontend. Probably they even don’t know what curl is. What a fucking fuck.
And that’s what I am mostly doing from Monday till Friday to keep this project going.
It’s cause client are nice guys and we are doing something good, not some fucking ai, blockchain, big data, financial scam everyone is wanking around.
And friends are asking, why I drink. -
Requests to a soap server were failing randomly. In order to contact the API provider, I tried to provide an curl example with the same payload and the error response. Yet when sending the payload over curl, the request worked just fine. When my application was building the request, it failed.
What. The. Fuck.
I checked and double-checked the request body and headers. They were identical.
Of course, no error response was returned by the API provider and, of course, they could not tell me how what error I caused in my request.
So I created a basic dummy server, installed wireshark and compared the payload when sending a request from my application and from curl to my dummy server.
It turns out: curl, if called in a certain way, automagically strips out newlines. The soap client kept them.
So that that shitty soap server crashed due to newlines in the message body!
Stripping out the newlines was rather easy.
Shame on you, your house, and entire family for letting it crash due to them!1 -
Nothing shuts up a client quite as fast as completing and pushing (to QA, product isn't complete yet) a feature request within 30 min of getting the email for it.
-
Anyone elses file names sound more and more frustrating as a client continues to request tiny changes? Like it goes from
Db-image.png to
Fuckityfuckfuck.png6 -
Just first time tried an OpenAI PHP client package and this is what I got as a response on first request ☠️10
-
After three months of development, my first contribution to the client is going live on their servers in less than 12 hours. And let me say, I shall never again be doing that much programming in one go, because the last week and a half has been a nightmare... Where to begin...
So last Monday, my code passed to our testing servers, for QA to review and give its seal of approval. But the server was acting up and wouldn't let us do much, giving us tons of timeouts and other errors, so we reported it to the sysadmin and had to put off the testing.
Now that's all fine and dandy, but last Wednesday we had to prepare the release for 4 days of regression testing on our staging servers, which meant that by Wednesday night the code had to be greenlight by QA. Tuesday the sysadmin was unable to check the problem on our testing servers, so we had to wait to Wednesday.
Wednesday comes along, I'm patching a couple things I saw, and around lunch time we deploy to the testing servers. I launch our fancy new Postman tests which pass in local, and I get a bunch of errors. Partially my codes fault, partially the testing env manipulating server responses and systems failing.
Fifteen minutes before I leave work on the day we have to leave everything ready to pass to staging, I find another bug, which is not really something I can ignore. My typing skills go to work as I'm hammering line after line of code out, trying to get it finished so we can deploy and test when I get home. Done just in time to catch the bus home...
So I get home. Run the tests. Still a couple failures due to the bug I tried to resolve. We ask for an extension till the following morning, thus delaying our deployment to staging. Eight hours later, at 1AM, after working a full 8 hours before, I push my code and leave it ready for deployment the following morning. Finally, everything works and we can get our code up to staging. Tests had to be modified to accommodate the shitty testing environment, but I'm happy that we're finally done there.
Staging server shits itself for half a day, so we end up doing regression tests a full day late, without a change in date for our upload to production (yay...).
We get to staging, I run my tests, all green, all working, so happy. I keep on working on other stuff, and the day that we were slated to upload to production, my coworkers find that throughout the development (which included a huge migration), code was removed which should not have. Team panics. Everyone is reviewing my commits (over a hundred commits) trying to see what we're missing that is required (especially legal requirements). Upload to production is delayed one day because of this. Ended up being one class missing, and a couple lines of code, which is my bad (but seriously, not bad considering I'm a Junior who was handed this project as his first task at his first job).
I swear to God, from here on out, one feature per branch and merge request. Never again shall I let this happen. I don't even know why it was allowed to happen, it breaks our branch policies. But ohel... I will now personally oppose crap like this too...
Now if you'll excuse me... I'm going to be highly unproductive and rest, because I might start balding otherwise after these weeks... -
FUCK APPLICATION LEVEL FIREWALLS!
So i cam online today, thought already lets open the shitty outlook webmail client. Holy crap .... thats way to much mails. Many of them are missed teams messages. So i open up teams and holy crap. Like every third dev in my company send me a message screaming "gitab is not working!!!".
Yesterday i updated it so imediately get in panic mode - what the shitty hack have i done?!
So yeah gitlab seems to be working just fine, everything is speedy and responsive, so i call one of my fellow devs and ask him whats wrong? And he is like oh yeah there comes a ldap error saying timeout or something.
I try to login with active directory. Works like a charm. Try another account, same problem?!
Google the problem, search gitlab tickets. Nope there is no open bug or sth. like this.
So alright lets call the network guy. "Yo, can you check if there is something ldap-like getting blocked to the gitlab server?" - He is like oh yeah damn like almost every damn request is getting blocked. Ah wait, there was an firewall update yesterday too. Yeah ldap is no longer ldap. BLOCK THAT SHIT!
After 10 minutes of figuring out what shitty type is detected by the firewall and what needs to be whitelisted to make it fucking work again it seems to work.
But ha no, there is another update rolling on, so same shit like 15 minutes later.
Now it seems to work and i have to inform every damn fcking developer that it works again. And yeah alright you sent a mail, but fuck it, i will call you though! So yeah just answering calls, mails and chat messages. Like why the fuck cant you read your mails like a damn normal person?!1 -
I am trying to implement an API. It has a very good documentation, everything is written clear and simple, along with
- HTTP 401 on unauthorized request and
- Error codes from 1-35 with definitions
Opened the provided sample file, changed the username, password and client code fields to our own in the source, then tried the request. The Response:
HTTP 200
{"ErrorCode":-1,"ErrorDescription":"Unauthorized."}
Well, thank you very much! 🤬2 -
I am doing an Ionic App for the Client. The client was responsible to provide me with API, so basically, I will just be pulling and showing things in the App.
Last week Friday, Client tried hard to put the blame on me for their API, idk why? Per them, I should have checked the API before doing the development. The way their API works it very confusing and it just making hell a lot of request. Well I tried explaining to them but fuck it anyways...2 -
This is so true, a pain in the arse not only for designers but devs too: https://youtube.com/watch/...1
-
Ups and downs in devLand.
Day started with a meeting with one client. Guys, getting told "thank you" and "I appreciate your help" feels so good. Nothing could bring me down.
Then I get an asshole making the same request that we already went over -__-
Seriously, how many emails do I have to send. Sigh. -
> client has no infrastructure of the project
> dev like me still work on it
> I constantly request for mock-ups and infrastructure
> client never responds back, instead he raises issues ahead of sprint
> I snap back at him
> Client wants call now
> What the fuck
To be honest, I'm gonna take a stand here...fuck this shit man, no clear way of working2 -
I have a few side project ideas. I started one of them a few months ago (project setup, dependencies, git repo, index page, very basic API and client functionality). But I cannot get myself to work on it or even think about it (for months now). The reason? I do not want to work on the client/frontend! I do not want to deal with React or Vue or Svelte or fuckjs or even jquery. It's a fucking mess.
For the backend, the requests are stateless: you get a request, handle it, and respond back. Need to update state? Database. That's it!
For the frontend, there's just tooo many states I can't keep up with! When the user checks or unchecks this checkbox, I need to maintain the state of the checkbox and maintain the all effects of changing the checkbox while syncing with the backend and making sure the elements are still styled correctly with the applied effects. Multiply that with all the expected interactive elements on the page. It's exhausting!4 -
My second client asked me to install a NAS. After listening to his request, I gave him a link to a Synology on Amazon and told him that once he receive the NAS, I will install it.
After one week, no news from him. So I called him and he has answered that he had some trouble with the delivery.
And today, I think I lost my second client and that he will never call me back...
What have I done wrong ?5 -
PM comes into my office: "Hey, if <client> asks about his edits, just tell him they're scheduled for this week."
me: "I thought they were scheduled for this week, I thought that you were currently in a meeting to get final specs so you could tell me what needed changed."
PM: "Yeah, he wants to take the plugin from 5 steps down to 3, we told him it wouldn't be a problem and we would have it done this week."
me: "Ok, there are limitations as far as what I can cut out of the process, his tag line when he started as a client was '5 easy steps' and I built something that did what he wanted in 5 steps. Changing things this late in the game is not simple, I'm talking a minimum 6 hours of work."
PM: "Well I tried to make sure that what he wanted was possible but I didn't have a developer in the meeting. It shouldn't change anything that much."
He ended up scheduling a meeting with me and the designer to go over the edits Thursday afternoon. So I will have the new specifications which I said would be a minimum 6 hours of work and I will be given ~10 hours in which to do it. I sure hope nothing unexpected pops up while I'm working on this.
I'm also the only developer this week (and technically speaking I'm junior) since our senior dev wrecked his car over the weekend and isn't planning on being in all week. I'm the only computer literate person in the office of 50 or so, which means that if there is any kind of tech issue I'm ripped away from my desk for 'emergency help'. I have two other sites to get ready for client approval meetings by Friday afternoon and if the clients approve I will be launching their sites that afternoon as well.
The sign on my door currently says "Error 500: unable to handle your request" I need something to throw at these people.4 -
After waiting a while for another programmer on another team to provide a web service that I needed to call from a client side web form, I received word that it was ready. I could not get it to work because CORS headings were not being set correctly. After contacting them and letting them know, I got an email update to the team letting everyone know that they were waiting on me. After explaining that CORS headings were not there, I just built a PHP page to proxy the request, results and set the headers correctly so I can move on. I will remove it when they get their side fixed... if they ever do.
-
I cant get a JSON object out of my query results!! I have been trying all day and I'm so frustrated and sad. I'm new to JavaScript, AJAX, and JSON. I just want to understand this. I've seen videos, tutorials, but I never get the expected results with jason_encode. And on the client side I don't even know if the request is good since I can't make the JSON object. :(14
-
The frontend developers in my company are the reason why I have anxiety. Here are few things that grinds my knees:
1) for a long time in projects, they deleted the auth token from their storage without integrating the logout api. They thought why use an API for that. :)
2) most of them had no clue that form fields could accept javascript as inputs and work as XSS vulnerabilities. This actually happened with a client, he got so fucking pissed.
3) One of them asked me to convert a PATCH request to DELETE cos fuck REST and HTTP methods.
For fuck’s sake. I need to get out of this place.4 -
/rambling
Arghhh!
Okay, so have just been having a play with Mailgun's webhook functionality (a client finally has a decent use for these).
I setup a test endpoint that sends a mail via Mailgun and then handles the POST data too. It emails myself the raw POST request response from Mailgun when I open the email. Mailgun fire an event their end when they detect the message has been opened.
All is good apart from Mailgun are posting multiple requests for each event, which is annoying.
After an hour messing around and getting annoyed I have a complete face palm moment.
In my test script Mailgun is called is send my notification email! So I'm creating multiple events for the same test message.
i.e. send original message, receive post back from Mailgun to my endpoint, my script then emails me the result using Mailgun. The latter itself generates its own events again.
Sooooo stupid of me to not notice something so obvious :(1 -
It hurts when you have built an feature with so much pain after change request from your client and after six months, you notice that feature has never been used.
-
Explain why a feature or request is a shite idea to your manager but don't accept 'well that's what the client wants' as an answer. Insist the useless manager twat should earn his money and not ruin the project.
-
From the last 3 years, i have accumulated interest and experience in android dev. Not sure about the future, but that's probably where i will be.
But this fact is moot to our 50 year old grumpy professors teaching 1000 year old rusted computer syllabus, who rejected my idea of a video streaming app as major project, simply because i projected it as a social media app, and "everyone is making a social media app, its such an old topic". yeah right sir, its younger than your daughter that fucks in the lobby
Now we are doing a project on file conversions website, a project suggested by my team member and my good friend. its such a shitty topic, there is no resources available, even the research papers are bad , every search points to a shitty site, and i don't know shit about web dev.
Technically i am the team leader, but my team mate won't let me make the project as android native app, because "Brooo, i am going to make a react app that would be completely offline, completely client side, full secure and shitt small" and sometimes "Bro its my idea" .
Well, 1. the whole point of client side is stupid because the 18 mb jsfile isn't going to get downloaded first in the client's cache(or whatever the process is, idk). The top stack overflow answers i saw told me to buy an ec2 instance and run liberoffice commands on it for every request, and that's SERVER SIDE. even if we could, i am sure its going to be bigger than what i would have made in kotlin.
2. what am i supposed to do? look at you coding while make all the ppts and research paper? you are going to use undocumented libs that "just works" , and i am suppose to curate the theory behind this, looking at all the researches of the world?well i guess okay that's a light job since THERE AREN'T ANY.
And we are targetting all types of conversions, nice. from what i know, handbrake.fr: video conversion s/w = 16 mb. photoshop: image conversion s/w=1gb and ms word: doc to pdf/other formats= 500mb.
Plus all those proprietary and undocumented formats, ugh. Thank you ugly ass companies.
Internet is great but web dev has become a whole lot mess. "I am going to build a software that is going to run in your system only using your device's processor" is a desktop/mobile app, not a website -
Spent days to setup a newer-Android version with reverse-proxy-HTTPS certificate in its CA store + one that'd support Google Play and signing in (old school man-in-the-middle).
FINALLY got the API calls of this 1 app whose unofficial client I wanted to make coz their main sucks ass. Just to get stuck on the phone-number-based OTP that they use for their login (:
They send a unique token for each OTP request, I assumed they're using some hard-coded string based function, which they decrypt on their backend to verify.
Downloaded their APK and decompiled. Went through dozens of weird-ass-named classes (coz decompiled). For the 2nd time I thought I had it!
But no -.- they call Google's Firebase messaging for the phone-num OTP n that function simply called firebase, looked into that service n ofc it's very tightly coupled with the calling API's backend
It was fun while it lasted I guess~~~1 -
Friday
> Mister IHateForALiving, we have an automated procedure which downloads files from a website. You should update it and use the new webservice instead.
Sounds cool, just send me the documentation
> Oh yeah, have this example of a request
... Dude, this thing has 10 parameters. None of them are named, and 7 of them are actually nulled. How do I fill this thing?
> IDK
Oh, ehm... Let's ask the client then!
> NONONONO, we told the client this update was live at least 3 months ago, we can't begin asking questions now
Ouch. How much time do I have to make sense of this mess?
> The new supplier should take charge by the end of the month, I'd like this to be live by Tuesday
Needless to say, it's not going well, but that ain't none of my business1 -
The client made us add an overlay that blocks the whole screen for any request. Guess what he wants now that he's seen it working? To press Esc to "close" it and stop the request.
-
New feature request that could be unecessary by client just sticking to one of 4 different very similar input formats instead of many off the cuff formats, that conflict and i cant guess let alone a computer. But i present an outline idea of the solution with his specs
I didnt complain just told him what needs to change and what our constraints will be how the info is interpretted etc
Client says "dont spend time on code for that feature.. stick to other original work for now" ! omg hes getting it! Sweet. I only wasted an hour this time, and if he does want the feature, we have an agreed spec for it. We can get back to handling the customer level shit and maybe he can make some more money finally.
Scope creep plus 0, me plus one. Scope creep still in thr lead by a lot. Oh well. Still, this guy is getting more tolerable -
Just had a major breakthrough on a project for work today! The project has been going slowly the last couple months and the client actually sent a slightly concerned status request this morning, so being able to invite them to preview a fully working demo and let them know we’re starting to conduct QA testing tomorrow is quite a relief.1
-
The random feature request using buzzwords
Can we have picture-in-picture mode for devrant?
Ok I will rest in peace now good night!1 -
Not really the worst but it happened last week. Our lead Dev reviewed a pull request based on works that have been validated several times.
Suddenly, 5 minutes before leaving to take a plane for the week, he tells me that everything is to be refactored because it has no semantical sense, even if it worked perfectly and could be refactored later.
He told me that the day before the delivery and rewriting and restesting everything that had been done took 2 days, several out of worktime hours and huge stress phases. The delivery had to be delayed twice.
I'm easily stressed and a lot of things went by with bad timing (one other coder who could help me was not present, another had to leave early for his kids etc...)
That refactoring was unnecessary but it gave a bad impression to our client and made feel bad fr something I wasn't responsible for.2 -
Gotta love the tard pard train that boards the station whenever you client realizes they forgot a very important feature in the change request.
-
Vague requirement for feature A received from client
Business consultant refines
Example mapping done
Acceptance criteria defined
Scheduled in sprint
Development done
Unit tests passed
Pull request reviewed
Code merged and deployed to system test
Functional testing successful
Deployed to UAT
Client asked to sign off
Client: "Actually I don't want that feature." -
I got a fuzzy understanding of differences between Platform as a Service (PaaS) , Infrastructure as a Service (IaaS), and Software as a Service (SaaS).
I wanted you guy to clarify it for me. For me
IaaS = You choose how much RAM , CPU , Storage you wanted and the provider create the OS for you by virtualization technology and you can do whatever you want on that OS
PaaS = The provider said here is a services (database , docker ,---etc) we offer to help you develop your own software. You use the service we offer and we charge you by how much you use our service.
SaaS = The provider said here is the complete software. You can just use the software and we charge you how many request you send or how many data you store,--etc.
Is the differences between IaaS and dedicated server is that in IaaS you may share the server with other client by virtualization and dedicated server give you the whole server?13 -
Got a change request today. The client had written two lines.
The first line(specs): we would another installation type something like "blabla"(an existing installation type).
The second line just ask for an time estimate...
They same client have been known to use mspaint as the visual aid of how they want things to look, and it looks ugly.
My reply for the CR: The time needed to complete the task is 5 hours + whatever amount of hours I find suitable. -
Finish a client project, with Laravel 5. Got a hang with the features and for once felt like I am "there" . nothing can beat me. then client request for the network to have no single point of failure.
I am like "whuttttt" how do I even replicate database and have fail over on it.1 -
I want your opinion about designing a web.
What is better for you?
1) A web page with 2 files (e.g. page1.html and page2.html), so the client must send a request for each content.
2) A web page with 1 file (e.g. page.html) with all the content in divs with 'display: none' and switch between them wth javascript.
Thanks!13 -
!rant
Imagine you're a dev for mobile apps (xamarin based) and you have a great project opportunity for a client.
The problem is that the project would (besides an app) involve a web version and you don't have any experience in web development.
How would you hire a web developer for this? Via freelancer platforms like twago, via an agency or request a project from some web design company?
Related question: does anyone know a good web frontend developer :)?5 -
I'm at the moment..... after a 100 commits in one single pull request, days of torturous effort and grappling with a stupid bloated piece of crap software, when, I realise, I COULD HAVE JUST TOLD THE CLIENT TO BUZZ OFF!!!
-
Request:
Do not handover project to client before deadline.
They will ask to add minor feature that will cause major bugs.
Happened with me🙄1 -
Question regarding android. I am having a problem with retrofit (I am using moshi converter factory) and hope that you can help.
Basically I have a screen with 3 checkboxes. User is able to select any of these checkboxes, and also user is allowed to select none of them.
When user doesn't select any checkboxes and click complete button, I send a PATCH request to backend with a model which contains 3 null values.
Problem here is that PATCH request which is being sent doesn't include any properties which have been nulled.
I spent some time researching why retrofit/moshi doesn't serialize nulled properties and I found a fix.
So I have this line
.addConverterFactory(MoshiConverterFactory.create(moshi))
Which I replaced with
.addConverterFactory(MoshiConverterFactory.create(moshi).withNullSerialization())
Now nulls are serialized and I am able to send a PATCH request model with nulled values. However now I'm facing another problem. Across my app I'm using only one retrofit client and I don't want to serialize nulls for all requests. Also I don't want to create another retrofit client.
How can I fix this problem? As far as I've researched it seems that I need to add an adapter with toJson() and fromJson() methods and then somehow enable nullSerialization only for that adapter. However I don't completely understand that solution and not even sure how to handle it.1 -
ok hear me out: client side targeted advertising. no unknown data is stored on some server somewhere without you knowing. you just add topics you like to an array and it's sent with each ad request.
i have nothing against advertising, i have stuff against stalking, and i'd be ok with this.9 -
Client request of the day:
Client asks to omit data based on lack of X.
...
Client asks to preload all data with X.1 -
So a client is apparently ignoring my request for payment to continue the hosting services for their blog ( which has been inactive for a long time ).
Thinking of getting rid of the client. I wouldn't mind if they voluntarily left because they don't want to pay, but now it's like i have to force them out.
This is going to be a rope walk. I wouldn't want their few hundred followers coming after me.
Any tips?9 -
So...
I'm pretty sure that my satirical, educational, metaphor-esq, response was warranted... but just to check:
I'm having an issue with an online gambling platform... I'm in the USA-- recently several states allow online gambling. This specific one is a huge company so extra careful about proxies etc. To play via browser\desktop you need to install 3rd party, constant, network verification software... network architecture pro with my company's network, manually written ofc, running my static IPv4 /28 from my home = f that
app version even told me i had to uninstall rustdesk (it thinks i obeyed)
the issue is nothing controllable from client side... it's the same problem regardless of device, os (android phone, tablet, and iPad... fresh factory settings, bare bones and container versions... yea I was using it to procrastinate), network type, etc, etc
so i finally take the time to take a video of the issue (would be super confusing via screenshots)... even compress it to 1.5x speed and 240px, leaving the full screen (not cropping) and metadata intact. I point out that im a dev, and even worked for online gambling platforms...
i quickly mention all the noob troubleshooting bs, that i literally know every bit of data that moves on my network... that this issue is identical on both an iPad and android phones (so totally different apps\OSes)... the "live support" already tried(my req) totally deleting then reissuing the problematic promos... 'deleted' one persisted...etc
I clearly lay out all this info, even suggesting they forward it to someone in tech... give them the specific model numbers and OS builds of the primary devices(ipad and android phone)
...
I get back, an equally long, form response... summary:
we r soooo sorry you're having trouble
we care sooooo much about your\customer experience!
the tech team says (heavily implying it got escalated\forwarded) if you try these things itll fix it:
*imagine every generic troubleshooting guide from the early 2000s, plus a few notes like "(smartphone)"*
...and i shit you not, it even gave instructions to restart devices, power-cycle my modem\router and clear my browser cache. (all clearly nonsensical to anyone who read my initial email with a vague knowledge of English and/or tech)
Despite only having 1 valid hand to type with, i type nearly 70wpm (on my prefd keyboards)... so I lectured them, explaining their disrespectful bs clearly... and including a dumbed down metaphor relating a friendly request for a specific salsa recipe using\not using specific available ingredients... and replied to with a children's description of what a tomato is.
Explicitly gave a second chance to actually read the initial issue\email and forward or respond appropriately.
I was way more polite than my depiction seems...too polite.
soooo... i sent an additional email response...
i changed the subject so it'd still align with their ticket system but also identified the rep, with heavily implied disdain.
the contents of the additional response:
Dear 'Mary',
It seems that I forgot to include a very important resource for you.
I apologise. Please follow this link and complete all steps\levels. I want you to have a great online experience!
https://bestdosgames.com/games/...
Best Regards,
Sara Range
things like the "Best Regards," are artifacts of their formatting.
so... im not sure if i was too much of a dick, not enough, or if it even matters because it may go over their head.
opinions pl0x?6 -
I've a new request from a client wanting a drop shipping system with WordPress and WooCommerce. He also wants a merchandise management system.
I never did this and am unsure how to build it, what fuck to expect or even what to charge.
Please send help! 🥺😱😰6 -
Over the last week I've slowly grown to fucking hate IMAP and SMTP. You'd think after so many years we'd have come up with better servers to manage email but no we still rely on fucking decades old protocols that can't even batch requests.
To make things worse I need to attach to IMAP through node and that has been a nightmare. All the libraries suck ass and even the ones tailored towards Gmail don't work for Gmail because Google decided one day to fucking out the header at the bottom of some emails and split into mimeparts. Also why the fuck is fetching email asynchronous? There's no point at all since we requests are processed line by line in IMAP, and if the library actually supported sending asynchronous requests it wouldn't require a new object to be created for each request and allow only a single listener.
Also callbacks are antiquated for a while and it pisses me off that node hasn't updated their libraries i.e. TLS to support async/await. I've taken to "return await new Promise" where the resolve of the promise is passed as the callback, which let's me go from callback to promise to async/await. If anyone has any other ideas I'm all ears otherwise I might just rewrite their TLS library altogether...
And this is just IMAP. I wish browsers supported TLS sockets because I can already see a server struggling with several endpoints and users, it would be much easier to open a connection from the client since the relationship is essentially:
Client [N] --- [1] Server [1] --- [1] IMAP
And to make the legs of that N : N which would fix a lot of issues, I would have to open a new IMAP connection for every client, which is cool cause it could be serverless, but horrifying because that's so inefficient.
Honestly we need a new, unifying email protocol with modern paradigms...8 -
I’m at my last hair with this job; I report to 3 (two mid-level; one senior) project managers. The senior PM decided not to fix up the company’s jira and has encouraged “I’ll tell you what to do by mail, text, call. Even outside office productivity apps,” and I didn’t mind it but it’s become unbearable. Each of these PMs manage at least one client that I have to work with — in essence, any given day I’m reporting to these PMs, for multiple tasks for at least 2 clients, especially for MVPs. One of the mid-level PM (let’s call her T) has taken it upon herself to make me look bad. I’m the only developer at the company; when I joined the only two developers had already left a week prior, so I was their replacement (no one mentioned this to me during any of the 3 interviews).
T reports to the senior PM and senior PM, who is friends with T from outside the job, would also give T instructions to provide me in regard to Senior PM’s clients. To made this clearer, Senior PM’s client would request for a feature or whatever, Senior PM would prepare a lousy document and send to T to send to me, just so, T can have things to say in standup daily like “I reached out to the Dev to fix xyz’s something something,” so this means I have had to tolerate T twice as much as the other PMs. (She’s new to the job, a week after me — Senior PM brought her in — they both do not have technical experience relating to work tools for programming but I can say Senior PM knows how to manage clients; talk shop).
Anyhow, T gets off by making me look bad and occasionally would “pity” me for my workload but almost in a patronizing way. T would say I don’t try to reply messages in 5 minutes time after I receive them (T sends these messages on WhatsApp and not slack, which is open during work hours). T would say, “I can’t quite get a read of this Engineer — you(me) are wired differently,” whenever one of T’s requests is yet to be completed because I’m handling other requests including T’s, even though T had marked the completed ones as Done on her excel sheet (no jira).
In all of this, I still have to help her create slides for our clients on all completed tasks for the week/month, as senior PM would tell me because “T is new to this.” We’ve been at the job for roughly 4 months now.
I have helped recruit a new developer, someone the company recommended — I was only told to go through their résumé and respond if they are a good fit and I helped with the interview task (a take-home project — I requested that the applicant be compensated as it’s somewhat a dense project and would take their time — HR refused). The company agreed with the developer’s choice of full WFH but would have me come in twice a week, because “we have plenty live clients so we need to have you here to ensure every requests are handled,” as if I don’t handle requests on my WFH days.
Yesterday, T tried making me look bad, and I asked, “why is it that you like making me look bad?” in front of HR and T smiled. HR didn’t say anything (T is friends with HR and T would occasionally spill nonsense about me to HR, in fact they sit together to gossip and their noise would always crawl to my corner; they both don’t do much. T would sleep off during work hours and not get a word for it — the first time I took a 10 minutes break to relax, T said, “you look too comfortable. I don’t like that,” and HR laughed at T’s comment. While it was somewhat a joke, there was seriousness attached to it). As soon as HR left, I asked T again, “why is it that most of the things you say are stupid?”, T took offense and went to her gossip crew of 4, telling them what I had just said, then T informed senior PM (which I’m fine with as it’s ideal to report me to her superior in any circumstance). Then I told those who cared to listen, T’s fellow gossipers, that I only said that in response to T’s remark to me in front of them, a while back, that I talked like I’m high on drugs.
I’ve lost my mind compiling this and it feels like I’m going off track, I’m just pissed.
I loved the work challenges as I’ve had to take on new responsibilities and projects, even outside my programming language, but I’m looking for a job elsewhere. My salary doesn’t not reflect my contributions and my mental health is not looking good to maintain this work style. I recall taking a day off as I was feeling down and had anxiety towards work, only to find out HR showed T my request mail and they were laughing at me the next day I showed up, “everybody’s mental health is bad too but we still show up,” and I responded to T, “maybe you ought to take a break too”.3 -
Well, My firm has a CRM which is built on JSP and Java. They want to upgrade the frontend by using a modern technology. Which one is a great choice React or Angular?
For the backend, APIs need to be integrated and I need to select from PHP and NodeJS. The traffic right now is 100 hits/second and is expected to increase upto 1k/sec in 6months.
What is the best choice for the frontend, backend and I need to select a HTTP request client too.22 -
Working on a quirky client request for a good portion of the day. Of course, I come up with a solid plan 5 minutes until the end of the day. Clean/rebuild.. Is it going to work????????????? ::fingers crossed::
-
I'm working on a simple Flask project. But when I try to work with the database I got an error called "No module named MySQLdb". I also got error when I try to install "mysql clint" with this command:-pip install mysqlclient. So I searched for the solution of this problem but every time I find someone told to download "MySQL client" from this website:-
https://lfd.uci.edu/~gohlke/...
But the "MySQL client" file is no longer available on that website.
please help me by giving that file or any other way. You can also check my project from here:-
https://drive.google.com/file/d/...
unfortunately, my operating system is Android 6.0
Here is the code:-
from flask import Flask,render_template, request
from flask_sqlalchemy import SQLAlchemy
app= Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = "mysql://localhost/codingthunder/"
db = SQLAlchemy(app)
class Contacts(db.Model):
sno = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(80), nullable=False)
phone_num = db.Column(db.String(14), nullable=False)
mes = db.Column(db.String(120), nullable=False)
date = db.Column(db.String(12), nullable=False)
email = db.Column(db.String(20), nullable=False)
@app.route("/home")
def home():
return render_template("index.html")
@app.route("/about")
def about():
return render_template("about.html")
@app.route("/contact", methods=['GET','POST'])
def contact():
if(request.method=='POST'):
name=request.form.get('name')
email=request.form.get('email')
phone=request.form.get('phone')
message=request.form.get('message')
entry=Contacts(name=name,phone_num=phone,mes=message, date="2019-09-01 12:06:20", email=email)
db.session.add(entry)
db.session.commit()
return render_template("contact.html")
@app.route("/post")
def post():
return render_template("post.html")
app.run(debug=True)3 -
Does anyone know a good method, or library to match 2 gps locations based on proximity to each-other?
while being fed a few 100 GPS locations per device per hour.
I currently do it by having the client send their Geohash to a database, then request all neighboring hashes around it and all other clients in those hashes, then get their GPS to check for distance.
But this does not seem to work flawlessly, it works on tests and emulators (its for phones) but on real phones it seems to be hit an miss, but no errors, the event just does not seem to fire.4 -
I am facing some problem on my new project. This is how I expect my project to work.
1. I am working on an Android application that uses Twitter sentiment analysis and gives out predictive result.
2. I want to keep the backend that is the python file/NLTK script on server/cloud/anywhere.
3. The Android App take the input and pass it to server.
4. In backend the tweets regarding the input are processed and after that a result is generated. The result is passed to Android App(client).
5. The app displays the result.
The problem is I don't know how to create the server(All I have is .py file). Secondly I don't know how to create request/response between the app and the server( client with .py) like how to create communication between them.
I have googled the query but am unable to come up with any reasonable solution. Any suggestions are welcome.1 -
Wow, angular is still a pile of shit in 2024, nothing changed.
I renew my https://devrant.com/rants/7582990 previous rant
I've recently switched to angular 17, not because I'm a masochist, but because, unfortunately, we have a huge portal for a super huge multinational enterprise and it's made in angular.
It's 2 years worth of work, and they've suddenly decided it's cool to switch to angular 17, because standards, because it's new etc.
Now that this crap angular 17 came out I prepared my hair pulling room, where there are whips and self torture instruments, and I've typed into browser url they "super new super modern super efficient" angular.dev, which apparently is their new official super 1337 documentation site (spoiler, it's shit as the other if not worse).
Since they realized angular was pigshit, they decided to eviscerate it like a sacrifical lamb in ancient maya age and add lot of stuff that makes it modern and more friendly.
They think they made the big bang of news, but they implemented stuff that exist since 10 years after people were cutting their wrists in their github "request a feature" section for years.
Well, to make it brief, they made a whole clunky obscure way to bootstrap it and didn't even had the decency and modesty to properly document it (they never learn, sigh....)
In any case I put up a .NET minimal API that works well, and a small angular app with a Hello world page that fetches a "hello word" string from a test api route.
The api works everywhere, browser, postman etc etc.
But ta-dahhhh, in angular throws error.
They put various way of using http client. Main 2 are withFetch() and without.
withFetch() says "as error "Invalid self signed certificate" and withoutFetch "Unknown error".
Apparently we have to do shenanigans also to do some dev development4 -
I recently started working on laravel. As the community says it was easy to get along with the framework and its methodologies. But then i had to do multiple login with framework in same domain.
Oh man, i spent a week to make it work. All those guards and middlewares realted to login was driving me crazy. The concept was clear, but somehow the framework was like "You! I shall make you spend a week for my satisfaction". The project demo was nearing and i was doing all kind of stuff i found. Atlast after continous tries it worked. Never in my 4+ years as a developer i had to face such an issue with login.
So here is how it works,if anyone faces the same issue:
(This case is beneficial if you're using table structures different from default laravel auth table structures)
1. Define the guards for each in auth.php
Eg:
'users' => [
'driver' => 'session',
'provider' => 'users',
],
'client' => [
'driver' => 'session',
'provider' => 'client',
],
'admin' => [
'driver' => 'session',
'provider' => 'admins',
],
2. Define providers for each guards in auth.php
'users' => [
'driver' => 'eloquent',
'model' => <Model Namespace>::class,
'table' => '<table name>', //Optional. You can define it in the model also
],
'admins' => [
'driver' => 'eloquent',
'model' => <Model Namespace>::class,
],
'client' => [
'driver' => 'eloquent',
'model' => <Model Namespace>::class,
],
Similarly you can define passwords for resetting passwords in auth.php
3. Edit login controller in app/Http/Controller/Auth folder accordingly
a. Usually this particular line of code is used for authentication
Auth::guard('<guard name>')->attempt(['email' => $request->email, 'password' => $request->password]);
b. If above mentioned method doesn't work, You can directly login using login method
EG:
$user = <model namespace>::where([
'username' => $request->username,
'password' => md5($request->password),
])->first();
Auth::guard('<guard name>')->login($user);
4. If you're using custom build table to store user details, then you should adjust the model for that particular table accordingly. NOTE: The model extends Authenticatable
EG
class <model name> extends Authenticatable
{
use Notifiable;
protected $table = "<table name>";
protected $guard = '<guard name>';
protected $fillable = [
'name' , 'username' , 'email' , 'password'
];
protected $hidden = [
'password' ,
];
//Below changes are optional, according to your need
public $timestamps = false;
const CREATED_AT = 'created_time';
const UPDATED_AT = 'updated_time';
//To get your custom id field, in this case username
public function getId()
{
return $this->username;
}
}
5. Create login views according to the user types you required
6. Update the RedirectIfAuthenticated middleware for auth redirections after login
7. Make sure to not use the default laravel Auth routes. This may cause some inconsistancy in workflow
The laravel version which i worked on and the solution is for is Laravel 6.x1