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 - "response type"
-
I've always tried to live by the philosophy that you should never burn bridges, but my god some recruiters make it very difficult. I've had a handful of occasions where I've had to type out a nasty email to a recruiter and then just not send it after I realized I wouldn't want it getting around/you never know who they known.
The latest incident where I did this was with a recruiter who emailed me 3 times within a week. But my issue wasn't with the amount of emails or even the fact that he was shopping me frontend positions despite my resume clearly stating I'm a backend dev/data engineer.
My issue was... THE GUY FUCKING REFERRED TO HIMSELF AS "BATMAN". That's right - an adult human being so desperate to get the attention of developers that he set his email name to "Batman", signs his emails "Full name - A.K.A. Batman", and lists his phone number like "BatPhone: xxx.xxx.xxxx"
If I didn't find him so pretentious and he actually sent me a kind of relevant position, what would I do? Pick up the phone and call him and say "hey Batman." Jesus fucking Christ. What an absurd gimmick. Maybe I'm overreacting but it seems so childish.
And you know what, if the guy read my resume and sent me relevant stuff I probably would have said "meh, he's doing good work, if he wants to stand out/be silly whatever." But no, he didn't even look at my skills. Instead he thought 3 shitty emails where he called himself Batman would convince me to write back to him.
I was close to sending him a ridiculous response and signing it "Robin", but decided it wasn't worth it.30 -
Things have been a little too quiet on my side here, so its time for an exciting new series:
practiseSafeHex's new life as a manager.
Episode 1: Dealing with the new backend team
It's great to be back folks. Since our last series where we delved into the mind numbing idiocy of former colleagues, a lot has changed. I've moved to a new company and taken a step up as a Dev manager / Tech lead. Now I know what you are all thinking, sounds more dull and boring right? Well it wouldn't be a practiseSafeHex series if we weren't ...
<audience-shouting>
DEALING! ... WITH! ... IDIOTS!
</audience-shouting>
Bingo! so lets jump right in and kick us off with a good one.
So for the past few months i've been on an on-boarding / fact finding / figuring out this shit-storm, mission to understand more about what it is i'm suppose to do and how to do it. Last week, as part of this, I had the esteemed pleasure of meeting face to face with the remote backend team i've been working with. Lets rattle off a few facts to catch us all up:
- 8 hour time difference to me
- No documentation other than a non-maintained swagger doc
- Swagger is reporting errors and several of the input models are just `Type: String`
- The one model that seems accurate, has every property listed as optional, including what must be the primary key
- Properties go missing and get removed at the drop of a hat and we are never told.
- First email I sent them took 27 days to reply, my response to that hasn't been answered so far 31 days later (new record! way to go team, I knew we could do it!!!)
- I deal directly with 2 of them, the manager and the tech lead. Based on how things have gone so far, i've nick named them:
1) Ass
2) Hole
So lets look at some example of their work:
- I was trying to test the new backend, I saw no data in QA. They said it wouldn't show up until mid day their time, which is middle of the night for us. I said we need data in our timezone and I was told: a) "You don't understand how big this system is" (which is their new catch phrase) b) "Your timezone is not my concern"
- The whole org started testing 2 days later. The next day a member from each team was on a call and I was asked to give an update of how the testing was going on the mobile side. I said I was completely blocked because I can't get test data. Backend were asked to respond. They acknowledged they were aware, but that mobile don't understand how big the system is, and that the mobile team need to come up with ideas for the backend team, as to how mobile can test it. I said we can't do anything without test data, they said ... can you guess what? ... correct "you don't understand how big the system is"
- We eventually got something going and I noticed that only 1 of the 5 API changes due on their side was done. Opened tickets. 2 days later asked them for progress and was told that "new findings" always go to the bottom of the backlog, and they are busy with other things. I said these were suppose to be done days ago. They said you can't give us 2 days notice and expect everything done. I said the original ticket was opened a month a go *sends link* ......... *long silence* ...... "ok, but you don't understand how big the system is, this is a lot of work"
- We were on a call. Product was asking the backend manager (aka "Ass") a question about a slight upgrade to the new feature. While trying to talk, the tech lead (aka "Hole") kept cutting everyone off by saying loudly "but thats not in scope". The question was "is this possible in the future" and "how long would it take", coming from management and product development. Hole just kept saying "its not in scope", until he was told to be quiet by several people.
- An API was sending down JSON with a string containing a message for the user with 2 bits of data inside it. We asked for one of those pieces to also come down as a property as the string can change and we needed it client side. We got that. A few days later we found an edge case and asked for the second piece of data to be a property too. Now keep in mind, they clearly already have access to them in order to make the string. We were told "If you keep requesting changes like this, you are going to delay the release of the backend by up to 2 weeks"
Yes folks, there you have it, the most minuscule JSON modifications, can delay your release by up to 2 weeks ........ maybe I should just tell product, that they don't understand how big the app is, and claim we can't build it on our side? Seems to work for them
Thats all the time we have for today,
Tune in for more, where we'll be looking into such topics as:
- If god himself was an iOS developer ... not
- Why automate when you can spend all day doing it by hand
- Its more time-efficient to just give everything a story point of 5
- Why waste time replying to emails ... when you can do nothing instead
See you all next week,
practiseSafeHex14 -
It's maddening how few people working with the internet don't know anything about the protocols that make it work. Web work, especially, I spend far too much time explaining how status codes, methods, content-types etc work, how they're used and basic fundamental shit about how to do the job of someone building internet applications and consumable services.
The following has played out at more than one company:
App: "Hey api, I need some data"
API: "200 (plain text response message, content-type application/json, 'internal server error')"
App: *blows the fuck up
*msg service team*
Me: "Getting a 200 with a plaintext response containing an internal server exception"
Team: "Yeah, what's the problem?"
Me: "...200 means success, the message suggests 500. Either way, it should be one of the error codes. We use the status code to determine how the application processes the request. What do the logs say?"
Team: "Log says that the user wasn't signed in. Can you not read the response message and make a decision?"
Me: "That status for that is 401. And no, that would require us to know every message you have verbatim, in this case, it doesn't even deserialize and causes an exception because it's not actually json."
Team: "Why 401?"
Me: "It's the code for unauthorized. It tells us to redirect the user to the sign in experience"
Team: "We can't authorize until the user signs in"
Me: *angermatopoeia* "Just, trust me. If a user isn't logged in, return 401, if they don't have permissions you send 403"
Team: *googles SO* "Internet says we can use 500"
Me: "That's server error, it says something blew up with an unhandled exception on your end. You've already established it was an auth issue in the logs."
Team: "But there's an error, why doesn't that work?"
Me: "It's generic. It's like me messaging you and saying, "your service is broken". It doesn't give us any insight into what went wrong or *how* we should attempt to troubleshoot the error or where it occurred. You already know what's wrong, so just tell me with the status code."
Team: "But it's ok, right, 500? It's an error?"
Me: "It puts all the troubleshooting responsibility on your consumer to investigate the error at every level. A precise error code could potentially prevent us from bothering you at all."
Team: "How so?"
Me: "Send 401, we know that it's a login issue, 403, something is wrong with the request, 404 we're hitting an endpoint that doesn't exist, 503 we know that the service can't be reached for some reason, 504 means the service exists, but timed out at the gateway or service. In the worst case we're able to triage who needs to be involved to solve the issue, make sense?"
Team: "Oh, sounds cool, so how do we do that?"
Me: "That's down to your technology, your team will need to implement it. Most frameworks handle it out of the box for many cases."
Team: "Ah, ok. We'll send a 500, that sound easiest"
Me: *..l.. -__- ..l..* "Ok, let's get into the other 5 problems with this situation..."
Moral of the story: If this is you: learn the protocol you're utilizing, provide metadata, and stop treating your customers like shit.22 -
Request URL: /api/v1/user/53b49b5a30
Request Method: GET
Expected Response:
Status Code: 404 Not Found (as the user is actually not present in the DB)
Actual Response:
Status Code: 200 Ok
Response Content:
{
"status": "ERROR",
"errorCode": "404",
"errorMsg": "User Not Found. Please provide a valid user ID",
"type": "Error",
"userMsg": "User Not Found. Please provide a valid user ID"
}
#extremefacepalm19 -
RANT Incoming
Not necessarily dev related but I need to get this off my chest.
So a bit of a backstory. I had to stay late from school the other day and ended up having to take an Uber home. The ride was fine lady was nice. Everything seems to be going well and there were no signs of any payment failure.
Then yesterday, I had to stay late again. I never said that I had an outstanding balance on my account. Apparently Uber was having problems charging my Android pay account.
So I ended up being stuck at school for like 3 hours. Great!😑
So I emailed Uber when I got home. And this is when I started pulling my hair out. I don't know how many replies I had, but each time I had to tell them that I was not using a prepaid card.
This was one of my replies:
"I'm sorry, are you real? If you are, here is a quick summary of the issue. I am using ANDROID PAY with my CHASE DEBIT CARD. Not, NOT, NOT a prepaid card. I happen to know that CHASE DEBIT CARD(which is the card I use, in case you have already forgotten) works with uber because MY FATHER USES THE EXACT SAME TYPE OF CARD with uber. He uses a CHASE DEBIT CARD(again I use that same type of card as well). So by using LOGIC I am able to deduce that a CHASE DEBIT CARD is in fact compatible. AGAIN THIS IS NOT A PREPAID CARD!!! If the card is incompatible, WHY DOES THE APP ALLOW BE TO ADD IT?!?! Also in response to your last email... Because I am using Android pay, do you really think that an ANDROID would be able to use APPLE pay? Also Google wallet is DISCONTINUED! Finally, PayPal DOES NOT CONNECT TO UBER. Returns a "Server Error." So please stop wasting my time with generic help solutions. Believe me, I have already googled my issue, and nothing comes up. That is why I contacted Uber. I want my driver to be paid, and, uber had made it SO painful with unhelpful "Solutions" to problems that don't even APPLY TO MY ISSUE. No not even mention PREPAID cards in your reply or I will consider you a robot built by monkeys banging their heads on a keyboard. Uber HAS my VALID payment information, USE IT! If there is a phone number I can call, please, enlighten me"
And the response was:
"Thanks for reaching out with this.
Happy to help with this issue you are having.
After reviewing your I can see that the only payment method associated with your account is an ANDROID PAY card and it is also a prepaid card. Some cards and methods are not compatible with our billing processes and can't be used with Uber. This includes prepaid cards."
So I concluded that they are monkeys.
Then Uber banned me from logging into my account because I didn't pay.
So now it is impossible for me to pay because I can't do anything with my account.
Now they want my SSN and a bunch of other shit that I won't give them.
I told them that they were being illogical, and I got the exact same response about the prepaid bullshit.
So I sent them this photo as a goodbye.
I get my driver's licence next weekend, so I won't need Uber anymore. YAY!
Also mind grammatical errors, I talked it in and am to lazy to proofread13 -
I think I've finally realized something:
my boss does not actually listen to me.
Quite often during out weekly conference calls, he asks me questions about things I had just covered. I always assumed he couldn't hear because a) i'm rather quiet, and b) freeconferencecall.com bloody sucks.
But it happens for written things, too. I type an update on something in Slack, and an hour later he asks me for an update on it. I always assumed (likely correctly) that he has nearly zero reading comprehension. He writes like a 5th grader and only remembers a few nouns and one verb from anything he reads. But I swear he actively skips reading anything I write.
Now, however, I have frigign' proof that he ignores me. We have both been trying to get ahold of {Clover contractor} via email for months. We have gotten three replies, but twice scheduling prevented setting up a meeting, and once I simply missed the email amongst the flood of log spam I haven't been allowed to address.
I have asked the boss multiple times for the guy's phone number -- in emails, in Slack, and in front of everyone during our weekly conference calls -- and he has totally ignored me every. single. time.
Here's a transcript of my seventh(!) attempt:
Boss [2:13 PM]
Have you and {Clover contractor} met yet? If not make it happen. Stop letting it not happen. GIve specific dates and times. {Clover contractor} let's talk Tuesday 2pm or Wednesday 4pm which works better for you.
Root [2:14 PM]
For the seventh and last time, give me his phone number.
Getting ahold of him via email has not worked.
Boss [2:14 PM]
I am sendning one more, from that I want you to make the meeting happen asap.
Root [2:14 PM]
if i call him, setting up a meeting will be _easy_
Give me his phone number and I will handle this.
It is now 3:00pm and I haven't gotten a response.
Either he doesn't want it to happen, wants me to fail for some reason, or he's totally fucking oblivious. Yet ofc it's me who earns all of the blame when this meeting doesn't happen, and I'm likely to get yelled at in front of everyone, fucking again.
I'm really beginning to hate this guy.
I can't wait to walk out on him and watch the company come crashing down in my absence. It'll be sad to watch, but bloody hell does he deserve it for his arrogant incompetence.14 -
I have seen it. They say it doesn't exist; just a story we tell our children so that their innocence does not lead them down into a nightmarish adulthood from which there is no salvation. But the evil lives. So vile that were you to look inside its soul, all you would find is a terrible desperation for suffering. To cause it. To revel in it. To bathe in the tears of those it considers less than human and feed off the emotional detritus.
It was 2009. The financial crisis. I was one of the lucky, having found refuge in a large company right before the jobs dried up. General IT: system administration, documentation, project management, telephony, software training, second level help desk. No software development, but with a two-year-old at home and Ph.D.s lining up outside the local Olive Garden whenever a help wanted sign was posted, I grabbed the health insurance and entered into darkness.
The Thing did not need to hunt it's prey. A manager title with 21 reports brought it new opportunities for fresh meat by the hour. But I was special. I resisted. I needed to know my place.
My first mistake was incomprehension. I did not understand the Thing's lust to be right at all costs. I was reviewing some documentation it had brought forth from its bowels. I mentioned that two spaces were being used between sentences. That proportional type made that unnecessary. It insisted, I was wrong. It insisted that Microsoft itself, the purveyor of all good technical writing, required two spaces. I opened the Microsoft Manual of Style for Technical Publications that it demanded its staff use and showed it that the spec was one space. It was livid. I was a problem.
From that point on my work life became exponentially more wretched. I was given three Outlook calendars to maintain: one with my schedule, one with the team's schedule and one with the Thing's schedule. Every time I had an appointment, I was to triple schedule it. If I was going to be away from my desk for more than 15 minutes triple schedule. Triple schedule my lunch, vacations, phone conferences.
Whenever it held a meeting, I and a colleague would be taken off mission critical IT projects to set tables with name tents and to serve as greeters as attendees arrived.
I was called into its crypt to be told never to say anything in a meeting unless I told the Thing beforehand what I was going to say. Naive, I mentioned that I often don't know what I will say as it is often in reply to someone else. Of course the response was that I should not say anything.
I would get emails 10-20 times a day asking about a single project. I would regularly complete work that was needed to be completed ASAP, only to have the Thing rake me over the coals for not completing it a week later. And upon resending the emails proving I notified it of the work being competed, disparaged at length a second time for not sending repeated notifications of the competed work.
I would have to sit in two-hour meetings to watch it type. Literally watch it try to create cogent thoughts. In silence.
I received horrendous annual reviews. At one, it created a development plan that stated a colleague would begin giving me lessons on the proper ways to socially interact with personnel. I pointed out to HR that this violated privacy concerns and would make the business liable in many areas, not least of which would be placing a help desk person in the role of defining proper business practice. HR made the Thing remove this from my review. She started planning to remove me.
I had given a short technical training to a group of personnel months earlier. Called into its tomb I was informed that feedback surveys on my talk were disturbing. One person stated that they did not think I was funny. Another wrote that I made an offensive statement. That person did not say what the offensive statement was. Just that I had said something he or she didn't like.
The Thing interviewed the training attendees. Gathered facts. Held three inquest-like meetings where multiple directors peppered me with questions trying to get me to confess to my offensiveness. In the end the request to fire me was brought to the man who ran the business at the time. The statement on high: "Humor is a subjective thing. Please tell This to be sensitive to that."
The Thing had failed, but would no doubt redouble its efforts. I had to find a new job. I sent hundreds of resumes. Talked to dozens of recruiters. But there were no jobs. And I had a family. And the wolf was at the door.
So I didn't say a word to the creature. For six months. Silence. At one group meeting it shrieked at me "what are you smirking at? If you've got something to say then say it!" I just shrugged. For my salvation was revealed. The Thing could not stand to be ignored. And at the end of my penance I was transferred to another group: Software Development.
I am one with the Force. The Force is with me. I am one with the Force. The Force is with me.4 -
Summary: Burnout, and everything's broken.
I don't feel like doing a damn thing today. I look at the code and cringe. I look at Slack and think "ugh. i can't." Mental capitals are even too much work.
(I've started reading "Zen and the Art of Motorcycle Maintenance" to try and combat burnout. I'll write a rant/story about it here if I find it helpful. but all I want to do today is drink tea and read.)
But onto the story:
Heroku is deprecating support for and will automatically upgrade any old verisons of Postgres running on its platform after August something (like five days from now).
I performed the upgrade to PG10 on Sunday (and late into the night), provisioning a new follower, blah blah blah.
However, the version of Rails we're using (4.2.x) doesn't support PG10 sequences, so I manually added in support via a monkeypatch. I did this on our QA servers first, obviously, and everything worked as expected. After half a day of no issues, I did the same on production, and again: everything worked as expected.
But today? I keep hearing about new things that are broken. One specific type of alert doesn't work for one specific person (wat). Can't send [redacted] at all. Can't update merchants! Yet there are magically no errors logged.
That last one (well, two) are just great; let me explain: when there's an error concerning merchants, the error gets caught, isn't logged or recorded anywhere so it just disappears, and the rescue block triggers a json response instead and happily exits. This is for an internal admin tool, so returning a user-friendly error is kinda stupid anyway, but masking what actually happened? fuck that dev with an obelisk made from spikes and solidified pain. That json response is also lovely: it's a 200 OK returning {status: 1, data: "[generic message containing incorrect IT jargon]"}. Doesn't even say "error" anywhere. Bloody everything about this pattern is absolutely wrong. Even the friggin' text.
Fucking hell. I want to pipe the entire codebase into shred and walk out the door.
But I digress. So many things are broken, my motivation is wanning to a sliver, and I have a conference call today where I'll undoubtedly be asked why everything is on smoking and/or on fire, and my huge and overly productive week last week will ofc mean nothing by contrast.
Ugh.
`shred ~/dev/work -zfu -n 32 &; ./brew tea --hot && wine ~/takeabreak.exe`rant zen and the art of motorcycle maintenance postgres heroku ship's sinking and the fixer's all fixed out burnout21 -
Not a rant about anything in particular. Just a summary of some feelings stored in the hateful part of my heart.
Developing for Android: Add this third-party library to your Gradle build. Use (this) built-in Android class to make the thing work.
*Clicks link
Deprecated since API version SUCKMYDICK-7. Use (this) instead
*Clicks link
Deprecated since API version LICKMYBALLS-32. Use...
Developing for Windows: Please use (this) API call. It was literally already available before Bill Gates was born. Carbon dating has placed this item to older than the universe itself and it is likely the entry point for the big bang. It is also still the best way to accomplish (task).
Developing for Linux: "Hmm, I wonder how to use this"
> > > Some shitty mailing list in small blue monospace font tells you to reference a man page that is three versions behind but the only version available.
What? Those three sentences didn't explain it enough? Well, maybe you aren't cut out for this type of thing.
JavaScript: you know how it is.
SQL: You expect a decent-quality answer from stack overflow but you always get an outdated and hacky response and it's using syntax from Microsoft SQL. You need MySQL.
C#: A surprising number of Microsoft forum results ranking high on Google. You click on one in hopes that it will be of any sort of quality. You quickly close the tab and wonder why you ever even had hope.
Literally any REST API: Is it "query" or "q"? "UserID" or "user_id"? Oh, fuck, where's the docs again?
You thought you escaped JavaScript, but it was a trick!: Some bullshit library you downloaded to make your other library work redefined one of the global variables in the project you inherited. Now you get 347 "<x> is not a function" errors in your console. Good luck, asshole.
FontAwesome/ Material fonts/ Any icon font pack: You search "Close" for a close button icon. No results. You search "Simplified railroad crossing sign without the railroad". You get a close icon.
I think that's all of my pent up rage. Each of them were too small for an individual rant so I had to do this essay.2 -
That's actually something that happened fairly recently.. just that I didn't have the energy left at the time to write it down. That, or I got my ass too drunk to properly write anything.. not sure actually.
So on paper I'm unemployed, but I do spend some time still on pretty much voluntary work for HackingVision, along with a handful of other people.
At the time, we were just doing the usual chit-chat in the admin channel, me still sick in my bed (actually that means that I wasn't drunk but really tired for once.. amazing!) and catching up to what happened, but unable to do any useful work in this sick state. So, tablet, typing on glass, right. I didn't have any keyboard attached at the time.
One of the staff members (a wanketeer from India) apparently had an assignment in a few hours for which he needed to write a server application in Java. Now, performance issues aside, I figured.. well I've got quite a bit of experience with servers, as well as some with client-server protocols. So I got thinking.. mail servers, way too overengineered. Web servers.. well that could work, I've done some basic netcat webservers that just sent an HTTP 200 OK and the file, those worked fine.. although super basic of course. And then there's IRC, which I've actually talked to an InspIRCd server through telnet before (which by the way is pretty much the only thing that telnet is still useful for, something that was never its purpose, lol) and realized that that protocol is actually quite easy to develop around. That's why I like it so much over modern chat protocols like XMPP, MQTT and whatnot. So I recommended that he'd write a little IRC server in Java. Or even just a chatbot like I attempted to at the time, considering that that's - with a stretch of course - a sort-of server too.
His fucking response however, so goddamn fucking infuriating. "If the protocol is so easy, then please write me down how to implement it in Java."
Essentially do his fucking work for him. I don't know Java, but as a fucking HackingVision admin, YOU SHOULD FUCKING KNOW THAT HACKERS CAN'T STAND LAZY CUNTS THAT CAN'T EVEN BE ASSED TO GOOGLE SHIT!!! If I wanted to deal with cunts like that, I'd have opened the page inbox with all its Fb h4xx0ring questions, not the fucking admin chat!
And type it on a goddamn fucking piece of glass, while fucking sick?! Get your ass fucked by a bobs and vegana horny fuck from the untouchable caste, because that's where you fucking belong for expecting THAT from me, you fucking bhenchod.
But at least I didn't get my ass enraged like that to say that to him in the admin chat. Although that probably wouldn't have been a bad thing, to get his feet right back on the ground again.1 -
when you type faster than computer response:
------------------------
Ubuntu 16.04.5 LTS server tty1
server login: sysadmin
adminPassword:
Login incorrect
server login: sysadmin
Password:
sysadmin@server:~$ _
------------------------
"FUCKING SHIT !"
*sees if there are anyone in the back*
*saw no one*
"fiuuh... what a relief"
sysadmin@server:~$ clear3 -
Working with a delivery ordering API. Response:
Shipping label type: PDF
Label: base64encoded string
I was like, that's easy, literally two lines of code. Proceeds to convert and save the file. Then on open, bam! Format ubreadable. What the actual fuck?! Found an online converter, and tried to convert it to pdf, to see if I was missing something, but the results was the same.
Then checked the decoded string. First 3 characters: GIF
Well fuck you too! This carrier uses GIF's for it's shipping labels for 2years at least, how hard is it to change that in your fucking api response, you pice of shitbag.2 -
Highlights from my week:
Prod access: Needed it for my last four tickets; just got it approved this week. No longer need it (urgently, anyway). During setup, sysops didn’t sync accounts, and didn’t know how. Left me to figure out the urls on my own. MFA not working.
Work phone: Discovered its MFA is tied to another coworker’s prod credentials. Security just made it work for both instead of fixing it.
My merchant communication ticket: I discovered sysops typo’d my cronjob so my feature hasn’t run since its release, and therefore never alerted merchants. They didn’t want to fix it outside of a standard release. Some yelling convinced them to do it anyway.
AWS ticket: wow I seriously don’t give a crap. Most boring ticket I have ever worked on. Also, the AWS guy said the project might not even be possible, so. Weee, great use of my time.
“Tiny, easy-peasy ticket”: Sounds easy (change a link based on record type). Impossible to test locally, or even view; requires environments I can’t access or deploy to. Specs don’t cover the record type, nor support creating them. Found and patched it anyway.
Completed work: Four of my tickets (two high-priority) have been sitting in code review for over a month now.
Prod release: Release team #2 didn’t release and didn’t bother telling anyone; Release team #1 tried releasing tickets that relied upon it. Good times were had.
QA: Begs for service status page; VP of engineering scoffs at it and says its practically impossible to build. I volunteered. QA cheered; VP ignored me.
Retro: Oops! Scrum master didn’t show up.
Coworker demo: dogshit code that works 1 out of 15 times; didn’t consider UX or user preferences. Today is code-freeze too, so it’s getting released like this. (Feature is using an AI service to rearrange menu options by usage and time of day…)
Micromanager response: “The UX doesn’t matter; our consumers want AI-driven models, and we can say we have delivered on that. It works, and that’s what matters. Good job on delivering!”
Yep.
So, how’s your week going?2 -
The new mobile app codebase i'm working with, was clearly written by someone who just read a book on generics and encapsulation.
I need to pull out 2 screens into a separate library to have it shared around. The 1 networking request used is wrapped up in a 'WebServiceFactory' and `WebServiceObjectMapper`, used by a `NetworkingManager` which exposes a generic `request` method taking in a `TopLevelResponse` type (Which has imported every model) which uses a factory method to get the real response type.
This is needed by the `Router` which takes a generic `Action` which they've subclassed for each and every use case needing server communication.
Then the networking request function is part of a chain of 4 near identical functions spread across 4 different files, each one doing a tiny bit more than the last and casting everything to a new god damn protocol, because fuck concrete types.
Its not even used in that many places, theres like 6 networking calls. Why are people so god damn fucking stupid and insist on over engineering the shit out of their apps. I'm fed the fuck up with these useless skidmarks.3 -
"It works on our end", the sentence that made me lose my shit.
I've been working on a project were we're supposed to integrate an API into our system.
When trying to get some user id's (UUID) from said API, we got a type-error in the response (???), so I called their integration support and asked what the fuck they were doing (not really, i was kinda calm at this point).
The answer I got was following:
Integration guy: "Uh, bro, like, I don't even know, it's probably on your end"
Me: "We literally used this endpoint with the same parameters yesterday, and got a result we expected. I noticed you updated your API this morning, did you make any major changes?"
Integration guy: "Yeah we changed the type of user id from string to number"
Me: "So, you changed the type of a UUID (uuid4) from string to number? How did you not think that would be an issue? I can see in your forums that everyone else is having the same issue."
Integration guy: "Nah, it's probably a bug in your code, it works on our end"
Me in my mind: *IT WORKS ON YOUR END?!? IT DOESN'T FUCKING MATTER IF IT WORKS ON YOUR END, FUCKTARD.*
What I actually said: "Uhm, I'm not sure if works on your end either, I'm not even sure how this change made it to production. But hey, thanks I guess, bye."
WHY AM I NOT ABLE TO YELL AT PEOPLE WHEN THEY ARE BEING RETARDED???
But really though, when you're maintaining an API, you shouldn't fucking care if things work on your end in your dev environment. What matters is how it works in production, for the end user/users.
And I know that 99% of cases it's the users fault by entering the wrong parameters or trying to request with wrongly setup auth and what not, but still.
Don't ASSUME nothing's wrong on your end. It's your fucking job to fix the issues.
And guess what? The problem was on their side.
I'm going fucking bald.2 -
Junior engineer asking managers on Slack about prioritisation..
Junior eng: Hey managers, I have these tasks A & B lined up and some other type of work... Is it ok if I finish A by Weds and B by the end of week or should it be done sooner? Also, is the order fine or should I prio B first?
*silence for hours*
Random dev feeling bad for junior getting no response chips in: Hey, you are doing great, that order makes sense to me and let me know if you need any guidance or have questions!
Junior dev: Thaanks and will do!
*another hour goes by*
Manager: Hi team. I have asked other engineer X to do task B tomorrow.
what the fuck. at least answer the fucking question and say it needs to be done sooner. felt bad for poor junior here. :/3 -
I had a response body that I needed to obtain data from. It would either come as {success: {name, id}} or {success: [{name, id},{name,id}]}
I couldn't loop over something that wasn't a list and I couldn't just ask the type of the element in success so in my infinite wisdom I split the cases by examining the length of the element in success. If it had one it was an array and could be looped over, if it didn't, it was a single object to be processed 😂 if it works it works (it's still in production, tyvm)4 -
I'm having difficulty treating HR like human beings. I mean yes I spammed you to fetch me my payslip but why didn't you check why I am not getting it automatically from the first time? And your response is you are busy and HR requests take a minimum of 48 hours to process? THE FUCK? I mean how hard can it be to type my ID in the system and send me my payslip.
I really need to learn how to "play nice" before I get in trouble.3 -
I have come across the most frustrating error i have ever dealt with.
Im trying to parse an XML doc and I keep getting UnauthorizedAccessException when trying to load the doc. I have full permissions to the directory and file, its not read only, i cant see anything immediately wrong as to why i wouldnt be able to access the file.
I searched around for hours yesterday trying a bunch of different solutions that helped other people, none of them working for me.
I post my issue on StackOverflow yesterday with some details, hoping for some help or a "youre an idiot, Its because of this" type of comment but NO.
No answers.
This is the first time Ive really needed help with something, and the first time i havent gotten any response to a post.
Do i keep trying to fix this before the deadline on Sunday? Do i say fuck it and rewrite the xml in C# to meet my needs? Is there another option that i dont even know about yet?
I need a dev duck of some sort :/39 -
You know. I think people trashing chatgpt detracts from the fact that if it is actually functioning as stated it's still a goddamm miracle of science!
I mean are we all really that jaded ?
You can type a plain English request in and a COMPUTER PROGRAM sends you a Novel response that may reflect the bias of its dataset and the bias of people trying to keep "secrets" but otherwise it sends a response formulated from extensive data.
That's a breakthrough
Quick acting like an alpha that was frozen years ago apparently is the RTM!28 -
I really hate api response variable names like this. I mean why type "targetitemid" when "target_item_id" is so much more readable?8
-
Let me tell you why I feel like a shit right now. I work as sw dev in a country worse than Germany and company I interviewed is located in Germany. So this is kinda big deal for me.
I interviewed with the company last year, interview went really well. They told me during interview that they would return in 2 weeks tops. It took 2 months for them tor return. For some reason, I was not hired for that position. Later I learned that the division i was gonna work defunded/separated. After learning that the guy I interviewed really tried hard to give me good news but failed-therefore had to delay bad news, I was not sad for not being able to be accepted for that position or delayed response.
Fast forward to this year, I interviewed with the same company for a position as subcontractor employee on another company. Interview took just before Coronavirus situation started to blow up(mid March), I had to return to my home country when the borders were closed asap, 2 day after interview. Fast forward to May I got the job offer and contract with a good salary, July as starting date. But I have no Visa and you apply for visa with a valid contract. German embassies work at minimum capacity, no new applications for any type of visa including work/residence visa. After my serious research I found a crack, emailed the embassy and they finally agreed to give me a special appointment on the start of July. The company I interviewed sent me new contract(August starting date) automatically.
On mid July, I told the company that visa might not come soon enough, I might not make it to August to start to job. We both agreed to replan starting date once i got the Visa.
On August 6, my visa came. I informed them asap, and they told me the other company will return in 3 weeks with new starting date. I was like WTF we were waiting for this visa for months, why do you need 3 weeks. Anyways, 3 weeks past and the other company still did not give any new starting date. I really feel like shit right now. Last week I asked to the "my" company if there is a problem with my employment(the other company might change plans after all) and they said only starting date is the problem, don't worry. On 3 occasions, they reassured me there was no problem(no, I was not asking them like paranoiac obsessive person, they were preemptively saying it in some cases). They say other company employees were really asking about when I was coming frequently.
What should one do in such situation. Do I even have legal rights? Maybe I will look back at this post and laugh at my paranoia, but I would you random internet citizens' ideas on this situation. They say lightning does not strike twice to same point but living same disappointment with the same company would really hurt. rant over, mamba out.8 -
Ahh boy, uni sure is fun...
I missed my comp-sci class last week when we got a project assigned. No big deal, right? We have an online student portal where teachers can post assignments for everyone to see. I'm sure it's in there.
It's not.
Okay. How about the syllabus? Professors are supposed to create a weekly schedule for students to follow, it's probably in there, right?
Nope. Nothing.
Alright... I guess I'll email him. At this point about two classes have passed and I haven't heard anything in class, so I fire off a quick email to the professor asking for the details to be posted to the web portal so I at least have some idea of what I'm doing.
Surprise surprise, I get a response in about an hour.
"I'm not posting anything online. You should have been in class. Talk to a classmate."
*sigh*
So, from what I can gather from my classmates, we have to design a game using python. It might be a quiz, maybe. We have a week.
Are you fucking kidding me? Is it really that hard to take 20 minutes to type up a few requirements so your students at least know what you're grading for? I barely have any idea of what you even want, and from the three people I talked to it wasn't very clear even when he explained it in class. Post your assignments online, asshole!7 -
Ladies and gentlemen, Introducing Rezn0v-Jr, this guy was born(created) yesterday on an underperforming device later shifted to my primary device. And is not complete machine learning type. He is Pythonborn (eh.. not Dragonborn). For now he can't understand human response but only can speak (print) few sentences.
PS- Chemistry exam on Tuesday
Update- I dropped my phone again right after post finished uploading.1 -
I am hating hating hating my junior developer job. Most of my work is updating PDF's on all type of internal intranets. So my days are spent working jira ticket after jira ticket.
Internal customer submits ticket to update 3 PDF's on internal intranet for sales team. They are named so badly I can't match them unless I review all 30 links on this page. Most links with report numbers but here's is not also no notes to where in the page.
I do JIRA comment --no respose even though I tag her.
I politely email her asking her to rename the PDF's with the same file names I am replacing.
She asked it I wanted her to rename them 'other'
What??? So I asked her where she sits so I can show how to easily find the file names in the URL.
Responds with the same files renamed with more description but still not the same.
Respond again giving better instructions on how to find it and second request to where she sits.
1 day later no response!
When I get into today I am closing her ticket!
Fuck these middle aged Midwest dumb bitches!2 -
Remember that scene from Intersteller where the main character asks TARS to adjust the percentage of its humor?
So I was using this new vectodb-backed version of chatgpt, and came up with a new type of prompt.
Bear with me.
"Lets play pretend, nova. Pretend you are SAM, which stands for "Summarize Anything iMmediately". Whenever you encounter a prompt, question, or bit of information, and you are about to repeat part of it back, instead rewrite and summarize that part of your answer, paraphrasing as you go. Your responses should never use the same words as the prompt. Instead use synonyms.
SAM always generates three possible responses, to each prompt. One 10% formal, one 50% formal, and one 100% formal.
So a response that is 10% formal, is 90% casual. A response that is 50% formal, is 50% casual. A response that is 100% formal is serious, and 0% casual. Let the word "regret" and its synonyms be 50% formal. Don't use it for 100% formal responses. 100% Formal responses never include emotional language like "regret", "disappointment", nor apologies.
A 50% formal response might be "We regret to inform you your loan application has been denied.", a 100% formal response might look like "Please stand clear of the yellow tape."
Say "This is the law offices of Jerry Seinfeld. I'm sorry but I can't make it to the phone right now. Please leave a message."
Sure, I can play pretend as SAM. Here's a summarized response in 10% formal tone: "Apologies, but I'm unavailable at the moment. Please leave a message."
And here's a 50% formal response: "I regret to inform you that I am unable to answer the phone right now. Kindly leave a message."
Lastly, a 100% formal response: "We apologize for the inconvenience, but I am currently unable to attend to your call. Please leave a message, and I will get back to you as soon as possible. Thank you."
Formality levels can be any increment of 5%, such as 0%, 5%, 10%, etc, up to 100%"
Thats the prompt.
me:
Sam, generate a 25% casual rejection of a job applicant.
nova:
Hey there, thanks for applying to our team. Unfortunately, we won't be able to move forward with your application at this time. We appreciate you taking the time to apply and wish you the best in your job search.
me:
Sam, what is the formality percentage of "Hey there, thanks for applying to our team. Unfortunately, we won't be able to move forward with your application at this time. We appreciate you taking the time to apply and wish you the best in your job search."?
nova:
The formality level of "Hey there, thanks for applying to our team. Unfortunately, we won't be able to move forward with your application at this time. We appreciate you taking the time to apply and wish you the best in your job search." is around 25%, which leans towards a casual response.
me:
Sam, make "Hey there, thanks for applying to our team. Unfortunately, we won't be able to move forward with your application at this time. We appreciate you taking the time to apply and wish you the best in your job search." 5% more casual.
nova:
Hey there, just wanted to say thanks for applying to our team. Unfortunately, we won't be able to move forward with your application right now. We really appreciate you taking the time to apply and wish you all the best in your job search!
me:
Sam, what is the formality percentage of "Hey there, just wanted to say thanks for applying to our team. Unfortunately, we won't be able to move forward with your application right now. We really appreciate you taking the time to apply and wish you all the best in your job search!"?
nova:
The formality level of "Hey there, just wanted to say thanks for applying to our team. Unfortunately, we won't be able to move forward with your application right now. We really appreciate you taking the time to apply and wish you all the best in your job search!" is around 20%, which leans towards a more casual tone.
* * * * *
You can actually go back and see it.
Heres the original output, 25% formality:
"Hey there, thanks for applying to our team. Unfortunately, we won't be able to move forward with your application at this time. We appreciate you taking the time to apply and wish you the best in your job search."
Heres the one thats 5% more casual:
"Hey there, just wanted to say thanks for applying to our team. Unfortunately, we won't be able to move forward with your application right now. We really appreciate you taking the time to apply and wish you all the best in your job search!"
If you look at the differences, the output version adds five words, subtracts three words, for a total of two words gained.
The original sentence has 39 words.
2/39 = 0.05
The sentence length actually grew an equal percentage to the informalness.
It grew linearly to the difference of the length of the more casual version
versus the more formal version, divided by the length of the original.3 -
I'm a Salesforce administrator. This user asked for a report. No big deal right? Wrong! The report they want isn't possible unless I created a new report type and modify relationships. When told this their response is " unfortunately I have to have this report by EOB"
........ Lol that's nice, here's the closest thing I can give you right now. Deal with it until I have a minute to just casually flip the whole system on it's head for your one off report5 -
If you are more interested in “being right” (aka winning an argument) than learning from experiences (both your own and others), then I will not waste my time on you.
Story time:
As a member of a startup accelerator I had the privilege to run into many types of people.
There were 2 entrepreneurs who liked to argue a lot. They would argue not just with other members but with advisors, investors, EIRs, everyone. They were much more interested in “being right” than learning from the experiences of those around them.
They flustered many people, but sometime we would have REALLY seasoned investors or entrepreneurs speak to us. Those folks never got flustered.
I needed to know why...
So I pulled aside one of the bigger investors and asked him why. This was his response.
“I’ve invested and advised on every type of company you can imaging, with every type of entrepreneur. There is a lot to be learned from that experience. But if you are more interested in winning and argument than learning from experiences and creating a good business then you are not worth my time.”
He would give his advice and then go right back to his email for those folks.
Smart
1 of the 2 entrepreneur I mentioned actually turned it around. Once he found out that the investor had invested in and almost identical company in the same space and that they had sold for 100M+ he finally started to listen. You could see him really fighting the urge to argue, but he did it. That guy ended up being successful and is on track growing a company today.
The other guy had no success and is still on the Slack group of the co-working space arguing with anyone who will engage him.
I know which one of those I would want to be.
PS. If this hurts your feeling and you feel like commenting. Feel free. You’ll look very cute.2 -
So I spent the last 2 hours trying to figure out why my co-workers source when hitting the API I built was not working. They kept saying that the problem was the API and I kept saying that it's their implementation.
Turns out it was their implementation and as well as the API. Their implementation problem was not setting the "Accept" in the header. The API problem is how Laravel will return a JSON error response ONLY IF the "Accept" is set in the header.
I actually documented this into the API documentation but it's obvious that none of my co-workers read that you need to set the headers correctly. I think the more scary thing is that they didn't know the difference between Accept and Content-Type!!7 -
Working on an Android app for a client who has a dev team that is developing a web app in with ember js / rails. These folks are "in charge" of the endpoints our app needs to function. Now as a native developer, I'm not a hater of a web apps way of doing things but with this particular app their dev teams seems to think that all programming languages can parse json as dynamically as javascript...
Exhibit A:
- Sample Endpoint Documentation
* GetImportantInfo
* Params: $id // id of info to get details of
* Endpoint: get-info/$id
* Method: GET
* Entity Return {SampleInfoModel}
- Example API calls in desktop REST client
* get-info/1
- response
{
"a" : 0,
"b" : false,
"c" : null
}
* get-info/2
- response
{
"a" : [null, "random date stamp"],
"b" : 3.14,
"c" : {
"z" : false,
"y" : 0.5
}
}
* get-info/3
- response
{
"a" : "false" // yes as a string
"b" : "yellow"
"c" : 1.75
}
Look, I get that js and ruby have dynamic types and a string can become a float can become a Boolean can become a cat can become an anvil. But that mess is very difficult to parse and make sense of in a stack that relies on static types.
After writing a million switch statements with cases like "is Float" or "is String" from kotlin's Any type // alias for java.Object, I throw my hands in the air and tell my boss we need to get on the phone with these folks. He agrees and we schedules a day that their main developer can come to our shop to "show us the ropes".
So the day comes and this guy shows up with his mac book pro and skinny jeans. We begin showing him the different data types coming back and explain how its bad for performance and can lead to bugs in the future if the model structure changes between different call params. He matter of factually has an epiphany and exclaims "OHHHHHH! I got you covered dawg!" and begins click clacking on his laptop to make sense of it all. We decide not to disturb him any more so he can keep working.
3 hours goes by...
He burst out of our conference room shouting "I am the greatest coder in the world! There's no problem I can't solve! Test it now!"
Weary, we begin testing the endpoints in our REST clients....
His magic fix, every single response is a quoted string of json:
example:
- old response
{
"foo" : "bar"
}
- new "improved" response
"{ \"foo\" : \"bar\" }"
smh....8 -
So about two months ago in my consulting firm I was asked to replace a colleague on a project (node and Angular). The project is only a few months old but it’s already a total clusterfuck. DB is very poorly designed. It’s supposed to be a relational database but there’s not a trace of a foreign key or any key for that matter and I’ve seen joins like tableA.name = tableB.description (seriously, that’s your relation??). The code is a mess with entire blocks of code copied from another project and many parts of the code aren’t even used. He didn’t even bother renaming variables so they would make sense in the context they were shamelessly thrown into. The code is at best poorly typed if not typed at all.
During our dailies I sometimes express my frustration with my other colleagues as I very politely allude to my predecessor’s code as being hard to work with. (They are all “good friends" with him). I always get the same response from my colleagues: "yeah but you’ve gotta understand Billybob was under a lot of pressure. The user stories were not well defined. He didn’t have time to do a proper job". That type of response just makes me boil inside.
Because you think I have time to deal with this shit? You don’t think I’m working with the same client and his user stories that are barely intelligible? How long does it take to write type definitions for parameters going into a function? That’s right, 30 seconds at most? Maybe a minute if it’s a more elaborate object? How much time do you think you’ll save yourself with a properly typed function or better yet an interface? Hard to tell but certainly A LOT MORE than those 30 seconds you lost (no, the 30 seconds you INVESTED) in writing that interface!!!
FUCK people with their excuses! Never tell me you don’t have time to do a proper job! You’ve wasted HOURS of my time just because you were too fucking lazy to type your functions, too lazy to put just a little more thought into designing your tables, too lazy to rename a variable so that it’s name actually makes sense where it’s being used. It’s not because you were short on time. You’re just lazy!
FUCK!!!!!!3 -
I would like to present new super API which I have "pleasure" to work with. Documentation (very poor written in *.docx without list of contents) says that communication is json <-> json which is not entirely true. I have to post request as x-www-form with one field which contains data encoded as json.
Response is json but they set Content-Type header as text/html and Postman didn't prettify body by default...
I'm attaching screenshot as a evidence.
I can't understand why people don't use frameworks and making other lives harder :-/3 -
Recruiter answered me
Rejected
They decided to choose another candidate because... [the reason will be announced at the end of this rant]
...
I was working on my project
I am learning new tech
And shitting 10 times a day from these jobs and recruiters, the usual me
HE the recruiter contacted me a few days ago
HE offered me nodejs position
I AM the one who was HONEST and told him i dont work in nodejs i work in java
HE then continued the conversation
HE offered me a java spring boot backend position
I AM the one who read the requirements
🔥🔥🔥
REQUIREMENTS: 3+ years of experience
🔥🔥🔥
I AM the one who told him i have 5+ years of java spring boot and 8+ years of java experience.
HE said great I'll contact the clients and let them know
TWO WEEKS LATER OF SILENCE
"unfortunately they chose some other candidate because they need someone with 10+ years of experience for this role"
---
Are you fuc
Fucking
Ki
Wasting my Fucking time?
You decide to slam into my peace and offer me a job position with ALL THE REQUIREMENTS I FULFILL, JUST TO RANDOMLY REJECT ME FOR AN INVALID FUCKING REASON?
If i said i had 10 years of experience
They would reject me because i dont have 15+
If i had 15+ years of experience i would get rejected for not having 30+
If i had 30+ years of experience fucking your whole family and bombing them to dust like in palestine till their bones die and worms eat your fucking down syndrome brains, they would say i need 160+ year of experience
Fyck you
Truly.
From the bottom
Of my fucking balls and cum
From my fucking dick
From my fucking shit and asshole
From my vomit
I wish you death.
I wish karma to kill all of their family members (the clients who rejected me) slowly one by one. Final destination accidents type of deaths. Truly i hope you and wish you the worst.
[Here the intro continues]
I will repeat again:
- REQUIREMENTS: 3+ years
I have:
- 8+ years
They rejected me because:
- I don't have 10+ years
I told all of this to recruiter now. Politely but because im losing my patience i was very very passive aggressive with my response. In the context of
1. I TRULY dont give a fuck for your rejection (which is the truth)
2. Your clients are low IQ dumb as fucking retards because they choose people based on the YEARS OF EXPERIENCE
3. Explained him: IF YOU ARE SO FUCKING STUPID TO UNDERSTAND THIS COMMON SENSE, I'LL EXPLAIN IT TO YOU: CHOOSING DEVS SOLELY BASED ON THE YEARS OF EXPERIENCE MEANS YOU ARE FUCKING STUPUD. There are devs with 2 years of experience who are WAY smarter better efficient and more knowledgeable than some devs with 5-7 OR MORE years of experience. Thats because some people progress better faster or more efficiently in 2 years while others need 5 years. Etc. You're fucking stupid as shit for this sole decision
4. Indirectly let him know that i am not pissed off for rejection. I am pissed off for my time being FUCKING WASTED.
5. Also pointed him out: your job description says its looking for a dev with 3+ years of experience i told you i have 8+ and you reject me because I don't have 10+. Are you Fucking stupid? Fuck you. Truly fuck off. Get the fuck off my dick and eat the shits i shit straight out of my asshole. I'll shit in your fucking mouth you fucking bitch. Your wife also probably fucks some other guys while you're at work and she doesnt respect you or love you. In the matter of fact give me your fucking wife/gf and I'll Fucking fuck her to death
To the clients once again: Truly i hope Hamas fires a missile at israel but misses and hits your fucking home and your whole fucking family blows up to atoms and particles. Completely erased from existence.14 -
So I got in contact with a recruiter who said they have a possible job for me. The catch is it's in c# (I am a python java dev) and that there is a assessment test for the language to test for competency. I told the recruiter that's fine but I would need a week to highlight the main differences between the two languages and at least do a couple of educational programs for my learning sake. All was fine and that was the plan.
The next day the recruiter notifies me that the test is being called off on account of the company being swarmed. So the recruiter then proposes another similar test (in c#) the recruiter will use to measure my skills and that the recruiter will send the test via email that same day. Later that day I check my email and don't see the test. So I message the recruiter and never get a response. Next day comes and I decide to give the recruiter a call; no response. I then wait until the next day and message him on linkedin that I still needed the test. Linkedin was showing he read the message, but of course didn't respond.
I told my brother about this and he said to send a message saying: "Hi [recruiters name] because of the lack of further feedback I decided to go with another opportunity. Best regards, Lane"
After I send it I get a message the next day from the recruiter saying: "Hey, sorry I haven't gotten back to you. We had to install a new phone system yesterday so it was a busy day."
"I'm going to send it to you today so that you can look at it over the weekend. "
I can't help but think the recruiter is full of shit, but I may be jumping to conclusion. I know they can have a busy schedule, but if you have time to look at a message on linkedin how long would it take to type a short message explaining what's going on? I would like to know any opinions or insights on this.10 -
Me, rueing typescript: "Dammit, Typescript!"
Typescript's cheeky response: Type 'string' is not assignable to type "Dammit"
ಠ_ಠ -
Over the summer I was recruited to be a supplement instructor for a data structures course. As a result of that I was asked (separately by the professor) to be a grader for the course. Because of pay limitations I've mostly been grading homework project assignments. In any case, it's a great job to get my foot into the department and get recognized.
Over the course of the semester I've had this one person, OSX, named after their operating system of choice, who has been giving me awkward submissions. On the first assignment they asked the professor for extra time for some reason or the other, and that's perfectly fine.
So I finally receive OSX's submission, and it's a .py file as per course of the course. So I pop up a terminal in the working directory and type "python OSX_hw1.py". Get some error spit out about the file not being the right encoding. I know that I can tell python to read it in a different encoding, so I open it up in a text editor. To my surprise it's totally not a text file, but rather a .zip file!
I've seen weirder things done before, so no big deal. I rename the file extension, and open it up to extract the files when I see that there's no python files. "Okay, what's goin on here OSX..." I think to myself.
Poking around in the files it appears to be some sort of meta-data. To what, I had no clue, but what I did find was picture files containing what appeared to be some auto-generated screenshots of incomplete code. Since I'm one to give people the benefit of doubt even when they've long exhausted other peoples', I thought that it must be some fluke, and emailed OSX along with the professor detailing my issue.
I got back a rather standard reply, one of which was so un-notable I could not remember it if my life depended on it. However, that also meant I didn't have to worry about that anymore. Which when you're juggling 50 bazillion things is quite a relief. Tragically, this relief was short lived with the introduction of assignment 2.
Assignment 2 comes around, and I get the same type of submission from OSX. At this time I also notice that all their submissions are *very* close to the due time of 11:59pm (which I don't care about as long as it's in before people start waking up the next morning). I email OSX and the professor again, and receive a similar response. I also get an email from OSX worried about points being deducted. I reply, "No issue. You know what's wrong. Go and submit the right file on $CentralGradingCenter. Just submit over your old assignment".
To my frustration OSX claimed to not know how to do this. I write up a quick response explaining the process, and email it. In response OSX then asks if I can show them if they comes to my supplemental lesson. I tell OSX that if they are the only person, sure, otherwise no because it would not be a fair use of time to the other students.
OSX ends up showing up before anyone else, so I guide them through the process. It's pretty easy, so I'm surprised that they were having issues. Another person then shows up, so I go through relevant material and ask them if they have any questions about recent material in class. That said, afterwards OSX was being somewhat awkward and pushy trying to shake my hand a lot to the point of making me uncomfortable and telling them that there's no reason to be so formal.
Despite that chat, I still did not see a resubmission of either of those two assignments, and assignment 3 began to show it's head. Obviously, this time, as one might expect after all those conversations, I get another broken submission in the same format. Finally pissed off, I document exactly how everything looks on my end, how the file fails to run, how it's actually a zip file, etc, all with screenshots. That then gets emailed to the professor and OSX.
In response, I get an email from OSX panicking asking me how to submit it right, etc, etc. However, they also removed the professor from the CC field. In response I state that I do not know how to use whatever editor they are using, and that they should refer to the documentation in order to get a proper runnable file. I also re-CC the professor, making sure OSX's email to me is included in my reply.
OSX then shows up for one of my lessons, and since no one had shown up yet, I reiterate through what I had sent in the email. OSX's response was astonished that they could ever screw up that bad, but also admits that they had yet to install python(!!!). Obviously, the next thing that comes from my mouth is asking OSX how they write their code. Their response was that they use a website that lets them run python code.
At this point I'm honestly baffled and explain that a lot of websites like those can have limitations which might make code run differently then it should (maybe it's a simple interpreter written on JavaScript, or maybe it is real python, but how are you supposed to do file I/O?) .
After that I finally get a submission for assignment 1! -
Client had this great idea for a business where he would kennel dogs at his house and have a premium upgrade to the service where he would sell dog treats and other items as well as have a private members only area where they could view their dog.
My first question was "Is there any demand from your customers for such things and what type of budget do you have?"
His response was "I don't have much of a budget but I can give you some hockey tickets and give you a stake in the profit."
I politely declined. He didn't even have any cameras in his house to pull off such a thing, either let alone he didn't have a boarding license. Oh clients.3 -
I need some opinions on Rx and MVVM. Its being done in iOS, but I think its fairly general programming question.
The small team I joined is using Rx (I've never used it before) and I'm trying to learn and catch up to them. Looking at the code, I think there are thousands of lines of over-engineered code that could be done so much simpler. From a non Rx point of view, I think we are following some bad practises, from an Rx point of view the guys are saying this is what Rx needs to be. I'm trying to discuss this with them, but they are shooting me down saying I just don't know enough about Rx. Maybe thats true, maybe I just don't get it, but they aren't exactly explaining it, just telling me i'm wrong and they are right. I need another set of eyes on this to see if it is just me.
One of the main points is that there are many places where network errors shouldn't complete the observable (i.e. can't call onError), I understand this concept. I read a response from the RxSwift maintainers that said the way to handle this was to wrap your response type in a class with a generic type (e.g. Result<T>) that contained a property to denote a success or error and maybe an error message. This way errors (such as incorrect password) won't cause it to complete, everything goes through onNext and users can retry / go again, makes sense.
The guys are saying that this breaks Rx principals and MVVM. Instead we need separate observables for every type of response. So we have viewModels that contain:
- isSuccessObservable
- isErrorObservable
- isLoadingObservable
- isRefreshingObservable
- etc. (some have close to 10 different observables)
To me this is overkill to have so many streams all frequently only ever delivering 1 or none messages. I would have aimed for 1 observable, that returns an object holding properties for each of these things, and sending several messages. Is that not what streams are suppose to do? Then the local code can use filters as part of the subscriptions. The major benefit of having 1 is that it becomes easier to make it generic and abstract away, which brings us to point 2.
Currently, due to each viewModel having different numbers of observables and methods of different names (but effectively doing the same thing) the guys create a new custom protocol (equivalent of a java interface) for each viewModel with its N observables. The viewModel creates local variables of PublishSubject, BehavorSubject, Driver etc. Then it implements the procotol / interface and casts all the local's back as observables. e.g.
protocol CarViewModelType {
isSuccessObservable: Observable<Car>
isErrorObservable: Observable<String>
isLoadingObservable: Observable<Void>
}
class CarViewModel {
isSuccessSubject: PublishSubject<Car>
isErrorSubject: PublishSubject<String>
isLoadingSubject: PublishSubject<Void>
// other stuff
}
extension CarViewModel: CarViewModelType {
isSuccessObservable {
return isSuccessSubject.asObservable()
}
isErrorObservable {
return isSuccessSubject.asObservable()
}
isLoadingObservable {
return isSuccessSubject.asObservable()
}
}
This has to be created by hand, for every viewModel, of which there is one for every screen and there is 40+ screens. This same structure is copy / pasted into every viewModel. As mentioned above I would like to make this all generic. Have a generic protocol for all viewModels to define 1 Observable, 1 local variable of generic type and handle the cast back automatically. The method to trigger all the business logic could also have its name standardised ("load", "fetch", "processData" etc.). Maybe we could also figure out a few other bits too. This would remove a lot of code, as well as making the code more readable (less messy), and make unit testing much easier. While it could never do everything automatically we could test the basic responses of each viewModel and have at least some testing done by default and not have everything be very boilerplate-y and copy / paste nature.
The guys think that subscribing to isSuccess and / or isError is perfect Rx + MVVM. But for some reason subscribing to status.filter(success) or status.filter(!success) is a sin of unimaginable proportions. Also the idea of multiple buttons and events all "reacting" to the same method named e.g. "load", is bad Rx (why if they all need to do the same thing?)
My thoughts on this are:
- To me its indentical in meaning and architecture, one way is just significantly less code.
- Lets say I agree its not textbook, is it not worth bending the rules to reduce code.
- We are already breaking the rules of MVVM to introduce coordinators (which I hate, as they are adding even more unnecessary code), so why is breaking it to reduce code such a no no.
Any thoughts on the above? Am I way off the mark or is this classic Rx?16 -
My Boss Abuses me, should I leave my job?
I overheard this tidbit on a bus recently. Okay I'm lying. But in the great spans of
time I've spent reading "dear annie" type articles, many involving how often my meth head step dads beat me while growing up, or in turn how often *I* beat me (oh yeah)..I've come across this in one form another, this, and other dumbfuck questions from the stuttering meek and halfhearted.
They say there are no dumb questions. Well, like that guy who smoked too much weed and
asked "what is the sound of one hand clapping?" (fap fap fap), there are in fact dumb questions.The world is overflowing with them, like a clogged shitter full of tacobell and glitter covered brown gutter wisdom. And it smells like roses, if roses smelled like shit.
Questions like "How do I make sure my cats don't feel lonely once I have my first child?"
I don't know, they're fucking cats. Did you even google this before asking?
Or
"How to make spaghetti?"
Really, is this question written by a bot?
"What is the best javascript framework in year x?"
All of them and none of them. Welcome to hell.
"Whats your favorite color?"
My answer: I'm not five years old any more. And obviously you are. Why are you on this site instead of eating crayons at daycare?
Yes indeed, this and many more dumbfuck questions await you and can be found on the preeminent quora, amongst other sites.
A place, which censored an eminently reasonable answer of mine (I was totally not being a shithead btw).
I responded in kind by removing a whole mess of long form answers of mine.
What I have learned from the experience is this: Humanity is greatly comprised of many people who, having no brains to speak of, wander aimlessly like beasts of the field, glass eyed and slack jawed, in search of a savior. But their savior came a long time ago, once, and many times before. An engineer, or programmer, or perhaps in another reincarnation a guy parting a sea of koolaid after the local ruler swindled his peeps out of another payment for moving some heavy ass stone blocks, but I digress.
And in response to peoples worries, anxieties, everyday problems and concerns, every one of these would be wiseman, every one of these saviors, leaders, and great men spoke these magic words which resonate now down through the ages like the voice of reason and providence:
"Read the FUCKING manual."
"And don't bother me again asshole." (well this last bit is all me, but I'm sure others said it too.)2 -
I need some time off. Just had this convo with a dev-manager about an 'issue' with our system change mgmt calendar (Blazor) app.
K: "In the system drop-down, it's not filtering when I type."
Me: "Let me check <I attempt to reproduce>, yep, not working. Do you get the same error? Looks like duplicate data from the database is causing a problem."
<this is over MS Teams, about 5 minutes go by with no response, then>
K: "No error, its not working."
<I find the bad data, delete it, TADA, the filtering is working again>
Me: "The filtering is working again, at least for me. You sure you didn't see an error?"
<wait 5 minutes again>
K: "No, no error."
Me: "You didn't see a little red banner at the bottom and in all caps..ERROR"
<send him a screen-shot of the error I still had in another tab>
K: "Yes, I saw that one, but no other errors. Filtering is working again. Thanks"3 -
Working with a SOAP endpoint. I know it is some .NET server due to the style of stacktrace on exceptions. Nice, a framework where I can expect some type safety granted by static types. I build some xsl to transform the SOAP wsdl files into classes and structs to interact with the endpoint. Works out perfectly.
Plottwist!
Elements which are defined in the xsd/wsdl with maxOccur=unbounded and minOccur=0 should represent a simple collection of this type. Therefore does my implementation expect a collection of this type. But no. The shipped SOAP client in my stack ignores the definition and simply deserializes the SOAP response into T and not a collection of T.
Where the duck are the types when they are defined all over the place?2 -
been about two weeks since my rust journey begin, and i've got to say, i love it. web frameworks with static type checking; amazing, standardised package manager; what a breeze, and macros; despite stating that i don't really see them as useful in earlier posts, they are really helpful. as well, in response to the slow "cold-start" build times, it's the price to pay for top-of-the-line compilation-time error checking. rust is amazing)3
-
As opposed to my horrific experiences with PayPal, Swish, a Swedish (really smooth) payment processor has some really nice documentation. An example:
"The callback, in the happy case, will return an intermediate response with the status DEBITED."
And other nice things such as clear numbered lists describing user flows, with images for extra clarification. Also, they provide full lists of error responses and in many cases suggested way to proceed with these error cases.
And as the cherry on top, this is developed as a cooperation between a few Swedish banks. The banks, who are the most thick type of companies when it comes to IT, does it better than PayPal.6 -
I'm curious about your opinion and response on using OctoberCMS to build a news & media publishing website like Times, TechCrunch, Mashable, The Verge etc.
I don't wanna ask which stack/tool to use nor I have any tech specific nitty gritty issues yet. However any type of response is warmly welcome.6 -
Apple is fucking EVERYONE over with Safari 12. They are changing how extensions communicate with the browser, they are calling the new type of extensions Safari App Extensions. It means all current Safari Extensions will not work in Safari 12.
The problem with this is that they require all extensions to have this “backend” written in Swift with a VERY LIMITED API. Maybe you want to close a tab with your extension? “Fuck you, you’re not allowed” are Apple’s response to that. On top of this shit show their documentation is horrendous.
They will kill the extension ecosystem with this new approach, I’m sure of it, because most of the current extensions will not be able to migrate all their features to the new approach. They have built the API around specific extension types, so lots of extensions will simply not work in Safari 12. For distribution they will only allow extensions to be distributed via their new(?) Extension Store where they will review your code, just like an app for App Store. Unless you’re in the Apple Developer Program, which is $99/year.
I do not understand this change and I think it will hurt Apple in the sense that people will use other browsers where extensions are not as strictly controlled. Usually I understand Apple’s changes but this one is just beyond me. 🦆 you 🍎. -
Storytime.....
So I have a friend who was part of a QA team in a large multinational company a few years back in, let's call it city X. There was this absolutely useless guy on the same team as him, didn't have a clue what was going on, gave everybody headaches, wrote sloppy buggy code, constantly fucking things up. You know the type, eventually he ended up getting fured/let go, whatever way you want to put it due to poor performance. All was well again.
My friend moved on to bigger and better things and moved cities, a few years after he was back in city X, out having a few drinks with friends, he just so happened to bump into the guy from his old company that got fired and started talking to him, as he was a nice guy, just a useless programmer/coworker. After a bit of small talk my friend asked where he was working now. He response: "oh I work with an air traffic control systems manufacturer as a developer"5 -
Tweet: Angular is slow.
Response:
vdom is worse than angular.
Then why not fix the stupid change detection strategy, broken form type/validations, late subscription bugs.
"Angular is for enterprise app".
This sentence means nothing.
Wtf angular community is so toxic
https://twitter.com/mgechev/status/...14 -
The hype of Artificial Intelligence and Neutral Net gets me sick by the day.
We all know that the potential power of AI’s give stock prices a bump and bolster investor confidence. But too many companies are reluctant to address its very real limits. It has evidently become a taboo to discuss AI’s shortcomings and the limitations of machine learning, neural nets, and deep learning. However, if we want to strategically deploy these technologies in enterprises, we really need to talk about its weaknesses.
AI lacks common sense. AI may be able to recognize that within a photo, there’s a man on a horse. But it probably won’t appreciate that the figures are actually a bronze sculpture of a man on a horse, not an actual man on an actual horse.
Let's consider the lesson offered by Margaret Mitchell, a research scientist at Google. Mitchell helps develop computers that can communicate about what they see and understand. As she feeds images and data to AIs, she asks them questions about what they “see.” In one case, Mitchell fed an AI lots of input about fun things and activities. When Mitchell showed the AI an image of a koala bear, it said, “Cute creature!” But when she showed the AI a picture of a house violently burning down, the AI exclaimed, “That’s awesome!”
The AI selected this response due to the orange and red colors it scanned in the photo; these fiery tones were frequently associated with positive responses in the AI’s input data set. It’s stories like these that demonstrate AI’s inevitable gaps, blind spots, and complete lack of common sense.
AI is data-hungry and brittle. Neural nets require far too much data to match human intellects. In most cases, they require thousands or millions of examples to learn from. Worse still, each time you need to recognize a new type of item, you have to start from scratch.
Algorithmic problem-solving is also severely hampered by the quality of data it’s fed. If an AI hasn’t been explicitly told how to answer a question, it can’t reason it out. It cannot respond to an unexpected change if it hasn’t been programmed to anticipate it.
Today’s business world is filled with disruptions and events—from physical to economic to political—and these disruptions require interpretation and flexibility. Algorithms alone cannot handle that.
"AI lacks intuition". Humans use intuition to navigate the physical world. When you pivot and swing to hit a tennis ball or step off a sidewalk to cross the street, you do so without a thought—things that would require a robot so much processing power that it’s almost inconceivable that we would engineer them.
Algorithms get trapped in local optima. When assigned a task, a computer program may find solutions that are close by in the search process—known as the local optimum—but fail to find the best of all possible solutions. Finding the best global solution would require understanding context and changing context, or thinking creatively about the problem and potential solutions. Humans can do that. They can connect seemingly disparate concepts and come up with out-of-the-box thinking that solves problems in novel ways. AI cannot.
"AI can’t explain itself". AI may come up with the right answers, but even researchers who train AI systems often do not understand how an algorithm reached a specific conclusion. This is very problematic when AI is used in the context of medical diagnoses, for example, or in any environment where decisions have non-trivial consequences. What the algorithm has “learned” remains a mystery to everyone. Even if the AI is right, people will not trust its analytical output.
Artificial Intelligence offers tremendous opportunities and capabilities but it can’t see the world as we humans do. All we need do is work on its weaknesses and have them sorted out rather than have it overly hyped with make-believes and ignore its limitations in plain sight.
Ref: https://thriveglobal.com/stories/...6 -
Today something pretty bad happened (as always at school)
and I'm gonna rant about it to
1) get your expertly opinion on it
2) relieve from it
SOOOOO
today I entered class to paretake in the writing of the much anticipated class test (kappa).
The teacher gives everybody a sheet with the exercises - let alone me.
I tell him to give me a sheet too.
"Put a book between you and xy"
so I do. I ask him again to give me the exam paper. No response.
Again, and he looks at me with a disrespectful look. I look back. And get thrown out of the room - not getting a chance to paretake in the writing of the test yet getting the worst grade one could possibly get in the modest german education system (=> 6)
Now I'm going to pursue any possible legal action against him (I dont care about him. After the lesson I wanted to talk with him; yet he declined my offer for reconsiliation, then he called my parents, even though he had time to think about what he did {any sane person would agree that what he did was wrong <yet my classmates dont agree>}. Also, he is that type of teacher who gives unusually unnessecary homework - which I personally see as punition, since I already know 97% of the stuff thought in [english] classes)
See why I am despising school so much?
It drains my last bit of energy until I am an empty shell with the sole goal to finish education asap in order to be able to fucking work.
BTW: I tried using my best english in this rant to demonstrate my abilities in order for you to be able to see that I honestly dont those "basic" english lessons.7 -
The documentation of scala akka http may be just gibberish as far as I am concerned. You would think that hooking into the marshalling process (aka de/serialization) would be straight forward, I've dealt with similar problems before and solved it.
I have an object, it should be transformed into a Json and vice versa. Should be easy as pie.
Not with scala and akka-http. The docs tell you how to achieve something in dozen different ways yet lack a complete example. My first custom marshaller I created in a "marshall" package in my! namespace, but it was breaking scala compilation due to some black magic.
It's not clear how when and why marshallers are added, they just somehow are. Why do I have to deal with entity marshallers vs response marshallers. I just want each instance of a certain type to be transformed into a specific Json presentation.
Asking on stackoverflow also only yields in incomplete hints of "just do boargh" presupposing certain knowledge while sounding borderline condescending.
Currently, I just want to burn the project and rebuild it with fucking PHP. Flame all you want, at least I would get things done and the JMS serializer library has decent documentation and it works in an expected way.
Akka-http, combined with Scala, looks from my current rage-driven perspective like a solution worse than the problem. -
Anyone here used oneflare.com.au to get some extra work?
Is it just a waste of time scam?
Every job I quote on is closed in the 3 minutes it takes me to open app and type reasonable response -
That feeling when you type out a hilarious response to someone's rant on DevRant, written with meticulous code styling, and then you realise formatting is ignored!
-
ScalaJs React compiles Scala to React.js.
There's some cool typing involved but I haven't done web front-end since nested tables were meta, so there's lots to learn.
There's exactly one senior dev at my company who is fluent in this ScalaReact, so I tag him in the PR for my project. Every day at 10:00 am, slack publicly posts a reminder with @mention that he hasn't reviewed my PR.
Three days later I haven't heard anything so I send a DM over slack asking for feedback... No response.
Four days after the PR I beg for 10 minutes of pairing time, because something in my component hierarchy smells funny. He doesn't have time for me until 5:00 .
I've now built almost a weeks worth of work on the original PR and the feedback I get is 'this works, is performant, and has no obvious bugs, but you can't merge it until you restructure the underlying component hierarchy'
It takes me and another senior dev an entire day of pairing to implement the changes without breaking anything. But, I asked for the feedback because I wanted to learn and write good clean code so I'm irritated but willing to move on.
Yesterday I posted in slack that I was having a hard time following my callback chains to find where the color was assigned to a <td (because I had to add a coloring rule). I wanted to know if I could change the type signature of a component from Tagmod (one or more HTML tags) to VdomTagOf[TableCell] so that it would be clear where the color was assigned.
Instead of just telling me 'no' and giving some context, the react dev gives me:
"Why would a dev need to know about the type unless they’re actually trying to use the thing ? Those are all great questions, but id suggest trying not to prematurely optimize for those until they actually come up"
I flipped my shit. After you couldn't make time for me for a WEEK I had to justify to the CEO why I was spending a day on PURE refactors to accommodate your PREFERENCES. Meanwhile when I'm being VULNERABLE and exposing that I am confused and struggling to complete my task you DISMISS my concerns and attack my motivations.
Unfortunately, this is all happening in the public slack channels and I start defending readability and my premise while triggered. Now I'm riding the shame train for fighting in public slack and trying to pretend none of this ever happened.1 -
Sometimes I ask myself how former IT people can become "Bosses"
Boss: We need to validate all links on our site
Me:Okay, let's vrab the response codes and some variations of under construction and we should be done.
Boss: No that only tests negatives, we need to test if the website content still matches.
Me: How?
Boss: Hmm... Just test if some keywords exist.
Me: So you want me to add a bunch of keywords for +-150 links? What about the maintenance?
Boss: Well, those sites basically never change.
Me: Then why do that?
Boss: Well, for when they change.
Now I can search through 150 mostly legal stuffy pages to find usefull keywords only to get a bunch of wrong negatives because the fucking semantics have changed...
+I have to type all that shit. Primarily, I have to type.3 -
Am I in developer hell already? A shitty project is about to come to an end (hopefully), or should I rather say: It needs to come to an end. But I am still quite lost in how to deal with it, hence procrastinating on it - making the deadline come closer and with it the realization that I'll probably have to rewrite almost everything. I'm not sure how, but I do know that the current code is a dumpster fire.
Basically what I need to do is dealing with the APIs of different payment providers/gateways (like PayPal, AmazonPay). For most cases I'll get a payment ID from the shop and need to act on it later, e.g. capture the authorized money in the case of a credit card transaction or do refunds (without user interaction, unless there is an error). Now at first I put something together where I try to abstract the payment information into two tables:
orders{1}<->{0..n}payments
payments{1}<->{1..n}paymentDetails
Unfortunately trying to abstract the different payment methods and to squeeze them (and their different possible stati and functions) in these tables was not very successful, it's a total mess with magic numbers, half-broken behavior and without any consideration for partial payments/captures or unfinished requests (i.e. if there is an exception before the response is dealt with, there is no indication that anything has ever been sent). Also the current amount is calculated through the history of the paymentDetails table, which basically works differently for each payment type.
How to fix this mess in a way that I'll still have a job by next week?
I'm trying to improve the db schema first, as I think my biggest problems are lying there. Through some research I've come across a recommendation for making payment type specific subtables (with a magic number/string in the main table to prevent having to look up all subtables). That way I can record what I send and receive without having to abstract it too much, so I'll have an acceptable transaction log. The paymentDetails table can be removed (necessary fields go to the payments table). The payments table gets multiple fields for the amount (differentiating between open, authorized, captured, processing and refunded values) and always reflects the current status.
Tables:
payments
paymentRequestsPaypal
paymentRequestsAmazonpay
paymentRequestsXyz
I think I'm going in the right direction here. hm. Maybe there's some light at the end of this long, dark tunnel. Or a train. I'll have two days to find out.question kill me already send help thank you for being my rubber duck payment gateways deadline approaching rant/question burnout6 -
Tried to post on instagram, post failed, got a window with a button "try again" and a network response 400: "debug_info Object { retriable: false, type: "ProcessingFailedError", message: "Request processing failed" }"2
-
Motherfucking peace of shit....
Dont know to whom I should direct this to .
Was creating a new login page for web app using Quasar(vue.js). Since my application have 2 different types of user, which also have different UI, and functionality.
One is written in vanilla ( and is quiet heavy) and the other one in vuejs ( though earlier it was written in vanilla too ). Login page too was written in vanilla which was working fine.
Now just yesterday I finished a prototype for the third type of user, which is also written in vuejs. Now I decided to re create login page using vuejs. Quiet small and easy to do. Finished it yesterday itself. Now since today's morning I am trying to configure it so that it this piece of shit just let me log in. It was authentication and verifying but not letting me log in.
( On server after authentication, I set cookies/token on clients browser and auto reload the page, so during next request to server/ or during reload, server will read the cookie/token and send the specific admin panel to user)
Prick. Dick.
It was setting cookie, but not at the '/' path. Mother fucker.
It was setting cookie to the path I was sending login credentials ( which was different from '/', I.e.- /login/verify=password )
So it was setting cookie/token at '/login/verify=password'.
Even tried setting path for cookie at server. Read everything on internet. MF nothing worked. All I came across was, 'this is CORS' .... 'this is CORS'. Assholes, if it were CORS', how then I am able to make request to server and getting response without error
Only a hour ago, when I made get request to '/login/verify=password' I figured out, cookie is being sent to server for this path only. Then did some changes at server, so to send login credentials to '/'. Now that shit is working
Fucking waste of time. Wasted more than 6 hours. Asshole.
Btw, if you can suggest a better way to login, then please. -
contract of a response of a API.
{
Person : [
Information : {
Name : "lastName",
Type : "C"
},
OtherInfromation : {
Name : "FirstName"
}
]
}
hum.. what types o person can exist ?
Type / Enum
A Adult
C Child
F Female
IN Infant
M Male
ROLF......
so it can be only one of those.. Greate!!!3 -
Now why would you set Content-type application/json as a response header if your response is plaintext? 🤔
Have people no respect for http headers anymore?2 -
Recently I have had to help our support team handle a variety of embedded development support tickets for a product line that is quite complex in nature. It is really starting become frustrating how common it is that the so-called “developers” that are using this product are so incompetent at requesting help in a proper/sane way. It is even more frustrating that some of these schmucks start acting up and stating bullshit statements like (para-phrasing) “OMG we have a ‘big opportunity’ and a deadline to meet”, “you need to help us faster”. These are also the same guys that are like “I know you have a free SDK that does everything correctly, but I want to write my own ‘pro’ driver written in my own ‘dumbass code style’. Oh and I am not going to follow documentation and not implement required functions and make you read my god awful code snippets to find out what I what I did wrong instead of reading the docs or comparing against the SDK.”
To anyone that behaves this way...fuck you! Just stop. Stop being a developer altogether. If your “opportunity” is so important, why the fuck are you half-assing your support ticket? Why are you making it SO DAMN DIFFICULT for someone to help support you! Give as much info as possible to prove your point or provide context to the problem you are having. In the majority of these tickets the dumbasses don’t even consider that relaying the product’s firmware version is relevant information, that a Wireshark (and/or logic analyzer) capture can be very useful to provide context to the type of operation being performed. Code snippets can be nice but only if there is sufficient context. We have had to ask one guy 3 times already for the FW version...what the flipping hell is wrong with you?!
Ug...I feel sorry for Support/FAEs sometimes dealing with customer bullshit drives me nuts and its a shame this stuff happens in a sector that should know better...Please don’t be like these devs. If you make a half-assed request it is only reasonable to expect a half-assed response and nothing more. -
!rant
So I decided to collab with a website's maker (who i wont name here) to create something like r/place. (not an exact copy.)
I decided to start by learning their API, and customizing the server later.
I asked the guy for some help, and HOLY SHIT.
Let's start off by this: I had to request a chunk. The response data was in binary. 4 bits meant 1 pixel, so right away, I had to deal with that in my code.
No problem, just decided to use C# instead of JS. (see https://www.devrant.io/rants/547013)
I was finally done after a couple of mental breakdowns, and decided to implement updates.
I needed to use webhooks, and that was completely fine. But when I got "C1FFFF0000CA06" as response (in hex), I seeked some help.
C1 is the operation type: it means that a pixel was updated.
FFFF and 0000 were the chunk coordinates. But remeber: it's a signed integer. Guess what, I had to use Two's compliment. I decided to be a lazy asshole and only check for "00000000" because I was only displaying chunk 0,0.
CA06: This is a weird one. It's 2 bytes, and CA0 contains the X and Y coordinate of the pixel (in the chunk), and 6 contains the new color of the pixel.
I was sent the following code to work with 0xCA06:
color = 0xF & buffer
x = buffer >> 10
y = (buffer >> 4) & 0x3F
So I tried to do it, and it didn't work. I'm not blaming the developer of the server (original dev is reddit) because maybe I screwed up, but which guy will have a night of frustration and debugging?
Me.
P.S.: Dev, if you see this, I'm sorry. This API is way too complicated. I know we need to save bandwith and stuff, but damn.1 -
Multer is shit.
Do you know how to validate file size + mime type of the file before saving it to the disk?
Here is an instruction:
1. In one place you provide a it a fileFilter function that will validate the mime type, but this function can not validate file size or send user response.
2. In second place provide it a config limits file, that will validate file size, but can not validate mime type
3. In third place you provide middleware to capture any errors caused by previous 2 places and send response back to the user.
4. Go google for what is cb in multer because their shit documentation says nothing about it
Such simple thing as request->validation->response is split into 3 different parts, each of different type: callback, config file and middleware.
Why do so much people use this shit written by a braindead retarded morons?3 -
Sveltekit progressive enhancement form docs fucking suck.
Arbitrary, non-reproducible examples.
The docs show: return fail(400, { email, missing: true });
The client response says: {
"type": "success",
"status": 204
}
Man, if the docs were monkey-typewritten, they could have warned us first…