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 - "web api"
-
One of our web developers reported a bug with my image api that shrunk large images to a thumbnail size. Basically looked like this img = ResizeImage(largeImage, 50); // shrink the image by 50%
The 'bug' was when he was passed in the thumbnail image and requesting a 300% increase, and the image was too pixelated.
I tried to explain that if you need the larger image, use the image from disk (since the images were already sized optimally for display) and the api was just for resizing downward.
Thinking I was done, the next day I was called into a large conference room with the company vice-president, two of the web-dev managers, and several of the web developers.
VP: "I received an alarming email saying you refused to fix that bug in your code. Is that correct?"
Me: "Bug? No, there is no bug. The image api is executing just as it is supposed to."
MGR1: "Uh...no it isn't. Images using *your* code is pixelated and unfit for our site and our customers."
MGR2: "Yes, I looked at your code and don't understand what the big deal is. Looks like a simple fix."
<web developers nodding their heads>
Me: "OK, I'll bite. What is the simple fix?"
<MGR2 looks over at one of the devs>
Dev1: "Well, for example, if we request an image resize of 300, and the image is only 50x50, only increase the size by 10. Maybe 15."
Me: "Wow..OK. So what if the image is, for example, 640x480?"
MGR1: "75. Maybe 80 if it's a picture of boots."
VP: "Oh yes, boots. We need good pictures of boots."
Me: "I'm not exactly sure how to break this to you, but my code doesn't do 'maybe'. I mean, you have the image from disk.
You obviously used the api to create the thumbnail, but are trying to use the thumbnail to go back to the regular size. Why not use the original image?"
<Web-Dev managers look awkwardly towards the web devs>
Dev3: "Yea, well uh...um...that would require us to create a variable or something to store the original image. The place in the code where we need the regular image, it's easier to call your method."
Me: "Um, not really. You still have to resolve the product name from the URL path. Deriving the original file name is what you are doing already. Just do the same thing in your part of the code."
Dev2: "But we'd have to change our code"
Mgr2: "I know..I know. How about if we, for example, send you 12345.jpg and request a resize greater than 100, you go to disk and look for that image?"
<VP, mgrs, and devs nod happily>
Me: "Um, no that won't work. All I see is the image stream. I have no idea what file is and the api shouldn't be guessing, going to disk or anything like that."
Dev1: "What if we pass you the file name?"
<VP, mgrs, and devs nod happily again>
Me: "No, that would break the API contract and ...uh..wait...I'm familiar with your code. How about I make the change? I'm pretty sure I'll only have to change one method"
VP: "What! No...it’s gotta be more than that. Our site is huge."
<Mgrs and devs grumble and shift around in their chairs>
Me: "I'm done talking about this. I can change your code for you or you can do it. There is no bug and I'm not changing the api because you can't use it correctly."
Later I discovered they stopped using the resize api and wrote dynamic html to 'resize' the images on the client (download the 5+ meg images, and use the length and width properties)22 -
You know who sucks at developing APIs?
Facebook.
I mean, how are so high paid guys with so great ideas manage to come up with apis THAT shitty?
Let's have a look. They took MVC and invented flux. It was so complicated that there were so many overhyped articles that stated "Flux is just X", "Flux is just Y", and exactly when Redux comes to the stage, flux is forgotten. Nobody uses it anymore.
They took declarative cursors and created Relay, but again, Apollo GraphQL comes and relay just goes away. When i tried just to get started with relay, it seemed so complicated that i just closed the tab. I mean, i get the idea, it's simple yet brilliant, but the api...
Immutable.js. Shitload of fuck. Explain WHY should i mess with shit like getIn(path: Iterable<string | number>): any and class List<T> { push(value: T): this }? Clojurescript offers Om, the React wrapper that works about three times faster! How is it even possible? Clojure's immutable data structures! They're even opensourced as standalone library, Mori js, and api is great! Just use it! Why reinvent the wheel?
It seems like when i just need to develop a simple react app, i should configure webpack (huge fuckload of work by itself) to get hot reload, modern es and jsx to work, then add redux, redux-saga, redux-thunk, react-redux and immutable.js, and if i just want my simple component to communicate with state, i need to define a component, a container, fucking mapStateToProps and mapDispatchToProps, and that's all just for "hello world" to pop out. And make sure you didn't forget to type that this.handler = this.handler.bind(this) for every handler function. Or use ev closure fucked up hack that requires just a bit more webpack tweaks. We haven't even started to communicate to the server! Fuck!
I bet there is savage ass overengineer sitting there at facebook, and he of course knows everything about how good api should look, and he also has huge ass ego and he just allowed to ban everything that he doesn't like. And he just bans everything with good simple api because it "isn't flexible enough".
"React is heavier than preact because we offer isomorphic multiple rendering targets", oh, how hard want i to slap your face, you fuckface. You know what i offered your mom and she agreed?
They even created create-react-app, but state management is still up to you. And react-boierplate is just too complicated.
When i need web app, i type "lein new re-frame", then "lein dev", and boom, live reload server started. No config. Every action is just (dispatch) away, works from any component. State subscription? (subscribe). Isolated side-effects? (reg-fx). Organize files as you want. File size? Around 30k, maybe 60 if you use some clojure libs.
If you don't care about massive market support, just use hyperapp. It's way simpler.
Dear developers, PLEASE, don't forget about api. Take it serious, it's very important. You may even design api first, and only then implement the actual logic. That's even better.
And facebook, sincerelly,
Fuck you.17 -
We used to do this more often - but to kind of bring it back - what is everyone working on this weekend?
I’m working on some new API endpoints for the awesome new devRant web version that @trogus made that we’re releasing soon.
Share your weekend project!106 -
It happened to one of my friend at work place.
So my friend is a UI developer and was working on a super critical project with very tight deadline. He was waiting for design team to give him mocks and web api team for giving Apis, so he can start his work. Now there are 4 days left for deadline and none of the parties are ready with their work, and my friend is sitting idle. Management is getting anxious day by day. So one program management lady called him the weak link in the standup meeting and started putting blame on him for the delay in the project. Guy tried to explain that it's not his fault and he is stuck. But that lady was not in a mood to listen.
Now come the next day, in morning he got the design ready and complete Apis from other teams. That day he missed the standup meeting, worked whole night and completed the work with two days remaining for deadline. He went to standup meeting after completing the work, and when the turn came for him to give his status, he started with "the weak link has finished the work". There was a pin drop silent in the room. He continued to give his update like this for next couple of days. And finally that lady was forced to apologize in meeting room by him.7 -
When you see a web service API accepting a SQL query in one of its JSON fields and the evil starts growing within you..
DROP ALL DATABASES
Just because you can!
4 -
Currently on an internship, PHP mostly, little bit of Python and the usual web stuff, and I just had the BEST FUCKING DAY EVER.
Wake up and find out I'm out of coffee, oh boy here we go.
Bus leaves 10 minutes late, great gonna miss my train.
Trains just don't wanna ride today, back in a bus I go, what's normally a 10 minute train travel is now a 90 minute bus ride.
Arrive at internship, coffee machine is broke, non problem, I'll just lose it slowly.
NOW HERE COMES THE FUCKING GOOD PART!!
Alright, so I'm working on a CMS that can be used just about on any device you want, mobile or desktop, it's huge, billion's of rows of scientific data. Very specific requirements and low error margins. Now, yesterday I was really enjoying myself here until today, Project manager walks in, comes to my desk and hands me a Samsung Gear S3, an Apple watch and some cheap knockoff. He tells me that before the Friday deploy, THE ENTIRE CMS SHOULD WORK ON THOSE WATCHES!
I mean, don't get me wrong, I like a challenge but it's just not right, I mean, I'm still not sure what the right way to handle tables on phones is, but smart watches, just no. Besides that, I've never worked with any Apple devices, let alone WatchOs, nor have I worked with Android Wear.
Also, Project Manager is a total dickhead, he's the kinda guy that prefers a light theme, doesn't clean up his code, writes 0 documentation for an API, 1 space = tab, pure horror.
So after almost flipping my desk, I just called my school coach to announce I'm leaving this internship. After a brief explanation he decides to come over, and guess what, according to the Project Manager I wasn't supposed to do that, I was supposed to test if it would be possible.
FUCKING ASSFUCKFACE9 -
Great news, our company's has a brand new security-first product, with an easy to use API and a beautiful web interface.
It is SQL-injection-enabled, XSS-compatible, logins are optional (if you do not provide a password, you are logged in as admin).
The json-api has custom-date formats, bools are any of "1", "0", 1, 0, false or null (but never true). Numbers are strings or numbers. Utf-8 is not supported. Most of our customers use special characters.
The web interface is using plain bootstrap, and because of XSS it is really easy to customize everything.
How the hell this product got launched is beyond me.10 -
tl;dr: spent 12 hours creating an api for a job interview challenge. Got rejected after 4 weeks with no real feedback, and all I can do is rant!
So I was in the interview process with a company that was a great fit for my background.
Got through a couple of phone screens, and was given a coding challenge consisting of writing a web API with a couple of endpoints and a filter function.
I'm like, ok no problem, I happen to have created apis for some mobile apps in the past, and I pick Django rest framework to get the job done.
Implemented it on a Sunday, wrote a medium size Readme.md and some unit tests and submit. Took almost four weeks and a partial resubmission to get a rejection with no specific feedback.
Now I'm shamelessly butthurt and I have nothing else to do but rant! Worse part is I looked back at the code and in my opinion is solid AF, so I put it on my public GitHub cause fuck it!6 -
I made a web app that utilizes the GeoLocation API, that is used by search and rescue services in a couple of countries, to located missing and/or injured people “in the wild”. Over a few years, hundreds of people has been found due to this tool, some of them would probably not have survived without it! Made the first prototype myself, then two other devs joined in.
Open source and SaaS is offered free of charge to the rescue services. :)4 -
Just found this gem on Twitters API...
When your app gets too excited they return status code 420 to tell you to chill! 😂😂😂
Fyi : For the non web-devs out there 420 is an invalid http code.
4 -
So we hired a junior engineer. 1 year of experience, this is his second job.
First task: Send some data to a web service using its REST API. Let me know when you've finished.
Two hours later I go to check on him.
- "I'm trying to decode this weird format the server uses"
He was writing a JSON parser in Python from scratch.
:/12 -
FUCK!!! FUCK IT ALL. FUCK YOU AND YOUR CRAPPY BULLSHT UNDOCUMENTED AND OUTDATED API.
YOUR DATABASE SERVER BACK-END HAS TO BE THE ONE MANAGING THE DISPLAY DATA FOR ITS WEB AND MOBILE CLIENTS. NOT THE OTHER WAY AROUND, DAMN IT.
I'M NOT GONNA SIT HERE ALL DAY HARD-CODING ALL YOUR SERVER'S INADEQUACY.
MAKES ME WONDER DO YOU EVER USE DESIGN PATTERNS OR APPLY DESIGN PRINCIPLES? DRY AT LEAST? DON'T FUCKING REPEAT YOURSELF, DAMN IT.
I CAN'T WAIT TO LEAVE THIS PLACE FOR GOOD.6 -
WordPress needs no introduction, it powers a significant portion of the web while having some of the most nightmare inducing code i have seen in all my years as a developer.
Just look at the API, i mean what the actual fuck is that?
get_fucked();18 -
We've built a web app and now a client wants a VPN acces to the database of web app. When asked why, they said they want to occasionally pull some data out. 😱
We said no, and this is what they wrote:
"We’ve got live VPN access to every other web database we work with – why is this different?"
Well because maybe we know that we can build you an export of whatever you want, prepare you API calls for getting data to your CRM, but hell I'm not giving you access to the production DB.5 -
3 rants for the price of 1, isn't that a great deal!
1. HP, you braindead fucking morons!!!
So recently I disassembled this HP laptop of mine to unfuck it at the hardware level. Some issues with the hinge that I had to solve. So I had to disassemble not only the bottom of the laptop but also the display panel itself. Turns out that HP - being the certified enganeers they are - made the following fuckups, with probably many more that I didn't even notice yet.
- They used fucking glue to ensure that the bottom of the display frame stays connected to the panel. Cheap solution to what should've been "MAKE A FUCKING DECENT FRAME?!" but a royal pain in the ass to disassemble. Luckily I was careful and didn't damage the panel, but the chance of that happening was most certainly nonzero.
- They connected the ribbon cables for the keyboard in such a way that you have to reach all the way into the spacing between the keyboard and the motherboard to connect the bloody things. And some extra spacing on the ribbon cables to enable servicing with some room for actually connecting the bloody things easily.. as Carlos Mantos would say it - M-m-M, nonoNO!!!
- Oh and let's not forget an old flaw that I noticed ages ago in this turd. The CPU goes straight to 70°C during boot-up but turning on the fan.. again, M-m-M, nonoNO!!! Let's just get the bloody thing to overheat, freeze completely and force the user to power cycle the machine, right? That's gonna be a great way to make them satisfied, RIGHT?! NO MOTHERFUCKERS, AND I WILL DISCONNECT THE DATA LINES OF THIS FUCKING THING TO MAKE IT SPIN ALL THE TIME, AS IT SHOULD!!! Certified fucking braindead abominations of engineers!!!
Oh and not only that, this laptop is outperformed by a Raspberry Pi 3B in performance, thermals, price and product quality.. A FUCKING SINGLE BOARD COMPUTER!!! Isn't that a great joke. Someone here mentioned earlier that HP and Acer seem to have been competing for a long time to make the shittiest products possible, and boy they fucking do. If there's anything that makes both of those shitcompanies remarkable, that'd be it.
2. If I want to conduct a pentest, I don't want to have to relearn the bloody tool!
Recently I did a Burp Suite test to see how the devRant web app logs in, but due to my Burp Suite being the community edition, I couldn't save it. Fucking amazing, thanks PortSwigger! And I couldn't recreate the results anymore due to what I think is a change in the web app. But I'll get back to that later.
So I fired up bettercap (which works at lower network layers and can conduct ARP poisoning and DNS cache poisoning) with the intent to ARP poison my phone and get the results straight from the devRant Android app. I haven't used this tool since around 2017 due to the fact that I kinda lost interest in offensive security. When I fired it up again a few days ago in my PTbox (which is a VM somewhere else on the network) and today again in my newly recovered HP laptop, I noticed that both hosts now have an updated version of bettercap, in which the options completely changed. It's now got different command-line switches and some interactive mode. Needless to say, I have no idea how to use this bloody thing anymore and don't feel like learning it all over again for a single test. Maybe this is why users often dislike changes to the UI, and why some sysadmins refrain from updating their servers? When you have users of any kind, you should at all times honor their installations, give them time to change their individual configurations - tell them that they should! - in other words give them a grace time, and allow for backwards compatibility for as long as feasible.
3. devRant web app!!
As mentioned earlier I tried to scrape the web app's login flow with Burp Suite but every time that I try to log in with its proxy enabled, it doesn't open the login form but instead just makes a GET request to /feed/top/month?login=1 without ever allowing me to actually log in. This happens in both Chromium and Firefox, in Windows and Arch Linux. Clearly this is a change to the web app, and a very undesirable one. Especially considering that the login flow for the API isn't documented anywhere as far as I know.
So, can this update to the web app be rolled back, merged back to an older version of that login flow or can I at least know how I'm supposed to log in to this API in order to be able to start developing my own client?6 -
At my old job, me and a colleague were tasked with designing a new backup system. It had integrations for database systems, remote file storage and other goodies.
Once we were done, we ran our tests, and sure enough. The files and folder from A were in fact present at B and properly encrypted. So we deployed it.
The next day, after the backup routine had run over night, I got to work and noone was able to log in. They were all puzzled.
I accessed a root account to find the issue. Apparantly, we had made a mistake!
All files on A were present at B... But they were no longer present at A.
We had issued 'move' instead of 'copy' on all the backups. So all of peoples files and even the shared drives have had everything moved to remote storage :D
We spent 4 hours getting everything back in place, starting with the files of the people who were in the office that day.
Boss took it pretty well at least, but not my proudest moment.
*Stay tuned for the story of how I accidentally leaked our Amazon Web Services API key on stack overflow*
/facepalm5 -
There is this service that I want to use (wont name it for privacy/legal reasons) and I have created a trial account which gives me a limited access to their apis. However the usage is where things are interesting.
The api access is restricted to some 1000 calls per trial account. But also they have a explorer option which lets to have the functionality as a web app like a dashboard and the explorer usage has unlimited access.
Now since I didnt want to exhaust my api limit, I let my service call the explorer apis instead. Is this ethically wrong or it is the fault of the service providers that they have such a big gaping hole in their licensing?8 -
Alright, this is a new one to me, and wow am I blown away.
Working on upgrading an API that I did not build. Getting things running well enough and then an endpoint (which runs well enough in the tests) returns a `418 I'm a teapot`
Yeah, you read that right "I'm a (motherfucking) teapot"
The description is that...
"refuses to make coffee because it is a teapot"
It was an April fools joke in the beginning.
I couldn't return that error if I tried!
This shit is bizarre.
For your reading pleasure:
https://developer.mozilla.org/en-US...
3 -
i'm seriously over mobile devs not understanding what backend architecture looks like.
the "we don't need a backend, we just need an API." statement drives me up the fucking walls. stop it, you should know better.
sincerely -
your friendly neighborhood web developer.6 -
What's the point of using a framework if you don't use any of its features!? What the heck, I have to fix this damn web frontend that is so broken in many ways.
Instead of using an authentication middleware, every single view has the same block of code to check if a user is authenticated. Instead of templates, they used static HTML/JavaScript files and they passed data to pages through cookies.
The "REST" API is so messed up, nothing is resource-oriented, HTTP methods are chosen randomly as well as status codes. They are returning "412 Precondition Failed" instead of a plain simple "401 Unauthorized" when you're not authenticated! What the hell, did they even bother to check what 412 is about when they copied and pasted it from a crappy website!? I would never come up with 412, not even in my scariest nightmare.
What kind of drugs were they using when they wrote such code? Oh dear, I need a vacation...2 -
+++ Microsoft switches to the open-source Chromium engine for the Edge browser +++
On December 6th, Microsoft announced that they will dump their own Edge engine and replace it with Chromium, an open-source browser engine developed by Google.
This way they are promising the ~2% of global internet users who prefer Edge over other browsers to experience a better web experience.
The about 2% of market share is one of the reasons Microsoft decided to stop developing their own engine. It's just not worth it.
Joe Belfiore, corporate veep of Windows, said they also want to bring Edge to other platforms, like macOS, to target more audiences.
Web-Developers, like myself, will most likely have the most to gain. Less browsers to target means less incompatibility issues.
There are a lot of HTML5 features that the Edge engine doesn't support...
The new Edge won't be a UWP app, in order to make it usable outside of Windows 10. Instead, it will be build in accordance with the Win32 API, so we can even expect support for older Windows versions, like Windows 7 and 8. A preview release is planned for early 2019.
Because they are switching to Chromium and the Win32 API, Microsoft is hiring new developers! So if you always wanted to work at Microsoft, now is your chance!
That's it!
Thanks for reading!
Source: https://theregister.co.uk/2018/12/...
10 -
-- How I succeeded turning a PHP/MYSQL app into Android app within a week --
Alright. So I wanted to grab your attention to what I'm about to write. If you are here just to read about the technologies I used, jump to bottom.
This is also a kind of rant; rant against the other fellow devs who demotivated me originally when I asked a question.
I'll not go in the details of my original question. Here's the link for those who are interested:
https://www.devrant.io/rants/366496
It's been days since I achieved what I wanted to but I thought someone might learn from my experience. So here it goes.
Why FREE?
Well, it was an important client. I worked on his website and he asked for an app for the same website and told me he won't be able to pay me anything for the app. I was, somewhat, under the impression that he might be testing me. If not, then I would end up learning something new. It wasn't a bad deal for me so I didn't hesitate to took it.
Within a week, I was able to pull the job and finish it. I felt so much better (and proud of myself) when I finished the app within the week and client approved it. What did I get? I got a GOOD BANK CLIENT in my pocket now. Got a lot more worth of projects from the same client. If I were being paid for the app, I might not have pulled the job so much better.
So the moral of this story is never to give up. NOT EVERY DEVELOPER SELLS SHORT ONLY FOR "MONEY". Some enjoy learning new things. And some like me love to accept new challenges and are not afraid to try something new everyday.
In case, someone is interested in knowing the technologies I used, here they go;
PhoneGap
Framework7
Template7
Apache Cordova
I wrote an API for the interaction between the web services and the app.
Also, Ionic Framework seems promising but it had a learning curve and time was of the essence. But I'm gonna learn it anyhow.13 -
So my first job is also my current one. I am a computer science student and for my course we had to do a project for an actual client. The client was a consultancy company and after working my ass off, their software development partner decided to hire me and a classmate.
The company is pretty small (we are now with the 6 of us) and the general attitude is very nice. I've only been working there for a few weeks and I feel very welcome. The work isn't too hard (mainly web development with geographic features/data).
In rough lines the stack always consists of a Java Rest API and an Angular frontend that retrieved the data from the API.
So far I have learned a ton and I am really happy that I have this opportunity. Lunch is provided and we always eat together, we crack jokes, have fun, play games in the break. Coffee machine next to my desk. I'd love to work here all my life :d
Since I'm still in school I can't go to the office every day. Instead I am at the office every Monday and on other days I try to work from school or home.2 -
I swear I work with mentally deranged lunatics.
Dev is/was using TFS's web api to read some config stuff..
Ralph: "Ugh..this is driving me crazy. I've spent all day trying to read this string from TFS and it is not working"
Me: "Um, reading a string from an web api is pretty easy, what's the problem?"
Ralph: "I'm executing the call in a 'using' statement and cannot return the stream."
Me: "Why do you need to return a stream? Return the object you are looking for."
Ralph: "Its not that easy. You can return anything from TFS. All you get back is a stream. Could be XML, JSON, text file, image, anything."
Me: "What are you trying to return?"
Ralph: "XML config. If I use XDoc, the stream works fine, but when I step into each byte from the stream, I the first three bytes have weird characters. I shouldn't have to skip the first three bytes to get the data. I spent maybe 5 hours yesterday digging around the .Net stream readers used in XDoc trying to figure out how it skips the first few bytes."
Me: "Wow...I would have used XDoc and been done and not worried about that other junk."
Ralph: "But I don't know the stream is XML. That's what I need to figure out."
Me: "What is there to figure out? You do know. Its your request. You are requesting a XML config."
Ralph: "No, the request can be anything. What if Sam requests an image? XDoc isn't going to work."
Me: "Is that a use-case? Sam requesting an image?"
Ralph: "Uh..I don't know...he could"
Me: "Sounds like your spending a lot of time doing premature optimization. You know what your accessing TFS for, if it's XML, return XML. If it's an image, return an image. Something new comes along, modify the code to handle it. Eazy peezy."
<boss walks in from a meeting>
Boss: "Whats up guys?"
Ralph: "You know the problem with TFS and not being able to stream the data I had all day yesterday? I finally figured it out. I need to keep this TFS reader simple. I'll start with the XML configs and if we more readers later, we can add them."
Boss: "Oh yea, always start simple and add complexity only when you need it."
Frack...Frack..Frack...you played some victim complaining to anyone who would listen yesterday (which I mostly ignored) about reading data from TFS was this monumental problem no one could solve, then you start complaining to me, I don't fall for the BS, then tell the boss the solution was your idea?
Lunatic or genius? Wally would be proud.
4 -
full stack web development in 2017: mvvm model, api for backend, parsing on frontend
me: <?php echo "<div>hello".$name."</div>" ?>9 -
PM: hows the android app going?
Android Dev: gradle downloading... blocked by network admin.
PM: anyway how is the iOS app going?
iOS Dev: cocoapods downloading... blocked by network admin.
PM: ... i guess the only thing running now is the web admin right?
Laravel/VueJS Dev: composer nodejs/npm/yarn downloading... blocked by network admin.
PM: team lets retest the api endponts
Team: Postman downloading... blocked by network admin.
Team: -_- Insomnia REST Client downloading... blocked by network admin.
PM: code study?
Team: even visual studio code/android studio/xcode is blocked. :(
.... sad dev life
anyone here with the same problem?14 -
After returning back from the company we were purchasing a new phone system (hardware+software, $100K+, kind of a big deal)
VP: “I need the new phone system software integration for our CRM by next week. I need to demo the system for the other VPs”
Me: “No problem. Were you able to get their API like I asked?”
VP: “Salesman didn’t know for sure what that was, but he said all the developer software documentation is on their site.”
Me: “Did he give you a URL? Their main site is all marketing mumbo-jumbo. I assume there is another one specific for developers.”
VP: “Yea, he might have said something, but I don’t understand why you need it. The salesman said the integration would be seamless. He showed me several demos.”
Me: “No, I mean I need to know, is the API a full client install? a simple dll? is this going to be a web service integration? How will I know what to program against?”
VP: “I think I heard him say something about COM? Does that sound like an API?”
Me: “It’s a start. Did he provide you anything, a disk, a flash drive, anything with the software?”
VP: “No, only thing he told me was our CRM integration would be seamless and our development team would have no problems.”
Me: “OK..OK…I get it…he’s a salesman. Is there an 1-800 number I can call? A technical support email address? Anyone technical I can reach out to?”
VP: “Probably, but I don’t understand what the problem is. I need the CRM integrated by next week. I gave the other VPs a promise we would get it done. I do not break promises.”
Me: “Wait…when are we installing the new system?”
VP: “Well, the purchase order will be cut at the end of the month’s billing cycle, the company has about a two month turnaround time to deliver and install the hardware, so maybe 3 months from now? Are you going to be able to have the integration ready for next week?”
Me: “If we won’t see any of the hardware for 3 months, what exactly am I integrating with?”
VP: “That API you wanted or whatever it is. COM…yea, it’s COM. I was told the integration would be seamless and our developers would have no problem. I don’t understand why you can’t simply write the code to make it work. Getting the hardware installed is going to be the hardest part.”
Me: “OK, so I have no documentation, we have no hardware, no software, and no idea what this ‘seamless integration’ means. I’m afraid there isn’t anything I can do right now. ”
VP: “Fine!...I’ll just have to tell the other VPs you were not able to execute the seamless integration with the CRM.”
Which he did. When the hardware+software was finally installed, they hired consultants (because I “failed”). I think the bill was in the $50K range to perform the ‘integration’ which consisted of Excel spreadsheets (no kidding). When approached with the primary CRM integration, the team needed our API documentation, a year’s development time and $300K. I was pissed off enough, and I had the API documentation, I was able to get the basic CRM integration within 3 days. When an agent receives a call, I look up the # in our database, auto-fill the form with the customer info, etc. Easy stuff when you have the documentation.
The basics worked and the VP was congratulated by ‘saving’ the company $300K. May or may not have been bonuses involved, rumors still out on that one, but I didn't see em'. Later my manager told me the VP was really ticked that I performed the integration ‘behind his back’, but because it was a success, he couldn’t fire me.10 -
I'm extremely lucky I'm not violent person. What happened today for some reason just completely pissed me off. I'm not sure why it got under my skin so much, but I feel completely disrespected.
I went to our marketing person's office to discuss a basic requirement for our api. Very simply, we have a lot of old shitty date that doesn't have a lot of fields filled out (worse yet, some are simply bogus values like crazy random dates and whatnot).
She put in a ticket claiming our most recent change started changed the creation dates to be empty. Easy enough to disprove, because the marketing software we have shows a records of all the edits for each contact, and if it came from our api it'll be labeled as "Web API". So of course I check the example contacts she give us, and there's no history of changes, meaning they never had the date to begin with (which is correct, as until now we didn't track creation date WHICH IS NOT MY DECISION. So dude 10 years ago probably made that decision).
So I start asking what exactly we're using it for. She does an absolutely horrible job of describing it and keeps telling me "no you absolutely have to be able to do all this, it's our requirements". By "this" she wants me to magically give all these contacts correct creation dates after the fact.
Eventually she gets the whole campaign idea out and I point, politely, that they're probably violating GDPR. She starts yelling saying her and her boss have been doing marketing for years and they know what they're doing. So I (less politely this time) said that's fine, I just want to talk with her boss to make sure he understands he's in the grey area and that if I'm the one building this, I'm kind of liable as well.
She clearly didn't like that, but I thought whatever, let's just agree on some requirements and I'll pass it on to my boss (who genuinely shits on her every single day and is constantly saying she never knows what she's doing).
So I go back , do some work. A little later I have to go print something off which is next to her office. Her door is shut, but I can hear her from down the hall yelling at someone about the conversation we just had. She actually starts mocking me. Doing the "stupid person" voice. This goes on for longer than our conversation.
Like I said, I know I'm right and she's just venting because she doesn't want to admit she's made a mistake. But for some reason it just completely broke me. I'm new but up until this point everyone had been pretty open about how they feel about me and my co-worker. But she just didn't need to go that bloody far.9 -
Does anyone have a good and free translator api I could use? I’m doing small school project and I just wanted to create text translator app. I tried yandex already, and ibm sucks since it doesn’t allow ajax request9
-
Starting a third year computer science course. Lesson 1 of web API production. Git. Lecturer tells us to do a different branch for every commit so it's easy to roll back.
Nice.8 -
Does anyone know a free hosting that support .net core web api without credit card? It’s just for a school project. IBM Bluemix only supports normal web app and azure needs credit card4
-
That awkward moment when your Girl needs you not as a friend but as a web dev because of a javascript bug in an online job portal that won't let you send your application because the hidden field auto fill crashes due to exhausted free requests to the Google maps API...5
-
Stupid bluemix console, build a translator web apps which processed by translator api services. When I pushed it, error occurred *panic begins*. Then I decided to create a default netcore template and push it. It worked. Push the former one again and it worked.
Stupid server honestly1 -
I think I ranted about this before but fuck it.
The love/hate relation I have with security in programming is funny. I am working as a cyber security engineer currently but I do loads of programming as well. Security is the most important factor for me while programming and I'd rather ship an application with less features than with more possibly vulnerable features.
But, sometimes I find it rather annoying when I want to write a new application (a web application where 90 percent of the application is the REST API), writing security checks takes up most of the time.
I'm working on a new (quick/fun) application right now and I've been at this for.... 3 hours I think and the first very simple functionality has finally been built, which took like 10 minutes. The rest of the 3 hours has been securing the application! And yes, I'm using a framework (my own) which has already loads of security features built-in but I need more and more specific security with this API.
Well, let's continue with securing this fucker!10 -
Web Developer with no common sense: “I’m going to query the currency calculator API for each of the 1000 records to convert.”.
Web Developer with common sense: “I’m going to query the currency rates API and use the calculation to convert each of the 1000 records.”6 -
I need to make a confession about my terribly unprofessional project I made. Around two years ago I got thrown for the first time into back end development - I had to work on the project alone. As a very smart man I basically exposed our SMTP server as a nice and very flexible API.
Fortunately it was, by the design, a very short-lived project, taken down from the web completely and for good after around 2 months. I'm still happy I had more luck than brains and nobody used our server as a spam sending service in our name and I have learned a valuable and relatively cheap lesson in security this way.1 -
I had a coworker that was an Air Force pilot (99% certain he was telling the truth as I was working for a government contractor and he had security clearance so I'd be a little surprised if he fooled HR and our whole team). Thing is... He genuinely believed the earth is flat. Whenever anybody would ask "haven't you seen the curvature of the earth? Like... More than once?" He'd respond with "yes I have, what's your point?". Uh.... Okay.
Didn't help that he also was convinced cpp is the only language you ever need for any project. Like, "what if instead of building a web API and two separate native mobile app frontends (Swift/Java)... We instead build our own proprietary C++ framework that somehow runs on IOS and Android and we can also use it for our Backend instead of .Net?"
I'm not saying I love Java or Swift or that at some point I haven't thought about why we can't just use cpp in both, but you're supposed to grow out of that kind of thinking. I think every noobie or college students thinks "oh there's got to be a way". But at some point in your career you realize even if you could, it wouldn't be any easier to use and the performance gain would crazy small compared to amount of effort and you'd be playing catch up with both IOS/Android forever.
But no matter how many times we'd shoot it down, he'd keep bringing it up. And he wasn't straight out of school or something. He had like 20 years of programming experience.
I don't have a lot of memorable co-workers that were positive but honestly I think that's because usually if they're good at what they do I don't have to interact with them a bunch or spend time thinking "Jesus what am I going to have to fix next from this guy". I definitely have worked with good/great programmers, they just don't stand out as much as the shitty ones.1 -
A LOT of this article makes me fairly upset. (Second screenshot in comments). Sure, Java is difficult, especially as an introductory language, but fuck me, replace it with ANYTHING OTHER THAN JAVASCRIPT PLEASE. JavaScript is not a good language to learn from - it is cheaty and makes script kiddies, not programmers. Fuck, they went from a strong-typed, verbose language to a shit show where you can turn an integer into a function without so much as a peep from the interpreter.
And fUCK ME WHY NOT PYTHON?? It's a weak typed but dynamic language that FORCES good indentation and actually has ACCESS TO THE FILE SYSTEM instead of just the web APIs that don't let you do SHIT compared to what you SHOULD learn.
OH AND TO PUT THE ICING ON THE CAKE, the article was comparing hello worlds, and they did the whole Java thing right but used ALERT instead of CONSOLE.LOG for JavaScript??? Sure, you can communicate with the user that way too but if you're comparing the languages, write text to the console in both languages, don't write text to the console in Java and use the alert api in JavaScript.
Fuck you Stanford, I expected better you shitty cockmunchers.
31 -
I spent about 5 hours rewriting an in company C# toolbox because I thought it's connection to a Web API was broken. 5 FUCKING HOURS.
Only to then see I was using port 80 for HTTPS...3 -
!rant && Announcement
The closed beta for the new DEVRANT TOOLBOX is starting for chrome users.
The Toolbox is an UNOFFICIAL web extension for Chrome and Firefox.
Additional features:
- Compact mode: reduced image height in the feeds
- Extended page navigation controls for feeds
- Timestamps for rants
- Image preview on mouseover
- Autoreload for the recent feed (180 sec)
- Highlighting new rants after a reload (recent feed only, see screenshot)
- Highlighting own rants (inside feeds) and comments (inside rants)
- Hiding personal scores (still visible by mouseover) and share buttons inside rants
- Colored notifs (different colors for the notif types)
- Notifs with clickable usernames: a click will open the rant AND the username (in a different tab)
- 3 additional Themes: Black, Monochrome, Dark blue
(Next themes to come: solarized light and dark)
- Global history.back on rightclick (for faster navigation)
- Increased feed width (see screenshot)
- Plain background (just the feed on screen)
- Weekly rant
All features can be switched on/off.
The weekly rant is a temporary feature. It uses the devrant api.
I will remove it when that feature is added to the original devrant webfeed.
@dfox: If you dont like the use of the api or some of the features please contact me.
Chrome users can join this group to get the beta:
https://groups.google.com/forum/...
I NEED SOME FEEDBACK!!!
Therefore a feedback is my term of use.
Please post it as a comment (or in the google group).
7 -
Last week my company thought it would be a great idea to introduce a new sh*tty internal web portal that gives federated access to aws (instead of using our own accounts to assume dev roles like we used to do).
This broke a lot of sh*t that simply used to ask for an MFA token and used our practically permissionless accounts to assume a proper dev role. An MFA token that we'd enter directly into the terminal/tool. It was very seamless. But nooooooo we now have to go a webpage, login with sso (which also requires mfa), click "generate credentials," copy-paste those into terminal/creds file and _then_ continue our aws cli call. Every. Single. Day.
BUT TODAY I HAD ENOUGH.
I spent the entire day rewriting the auth part of our tools so they would basically read the cookie that's set by the web portal, and use it to call the internal api that generates the credentials, and just automatically save those. Now all we need to do is log into the portal, then return to the tool and voilà, the tool's also got access! Sure, it's not as passive as just entering an MFA token directly, but it's as passive as it gets. Still annoyed by this sh*tty and unnecessary portal, but I learned a thing or two about cookies.9 -
“sEniOr tEcHniCiaN”: “I don’t know what Blazor is. I write my projects in ASP.NET. You should just use ASP.NET”
Me: …”Blazor *is* ASP. This project is running on ASP.NET 6.”
“seNioR tEchNiCiaN”: “As previously stated, I don’t use Blazor. I don’t care what version it is.”
Yes, this is a real exchange from my ongoing problems with this idiot.
His attitude is what ticks me off the most.
He doesn’t know what CORS is.
He doesn’t understand that “ASP.NET” covers Blazor, Razor Pages, the old MVC stuff, web APIs, and more.
He doesn’t understand the difference between a web request being initiated from the browser via Fetch and a web request being initiated from the server. (“My ASP site is shown in the browser, so requests to the third party API aren’t originating from the server.”)
And yet has the arrogance to repeatedly talk down to me while I try to explain basic concepts to him in the least condescending way possible.
After going around and around in circles with him, he finally admitted to me that “he doesn’t actually know what the CORS configuration looks like or how to modify it, to be honest.”
I just wanna go home.15 -
OK heavy rant on 'modern' software development coming! --> don't take it to seriously though :-)
Electron... why does that shit exist? It is like stacking all the worst technologies available to mankind into an enormous pile of crap and polishing that turd to look like something wonderful. It is big, slow and overall AWFUL!
An example? ... Microsoft Teams :-( it burns your PC like fire and makes it squeal for mercy.
When a library/framework becomes the ultimate evolution of abstraction layer upon abstraction layer and it simply should stop to exist and a reset button needs to be pressed.
I would love to see some research on the real world environmental impact that all those shitty slow and bloated web technologies have.
Solution:
Software energy label!
C, C++ and Rust e.t.c. and all accompanying efficient UI libraries should be the only languages/implementations allowed to get a A, B and C label.
Python (without C libraries like Numpy), JavaScript and all those other slow interpreted scripting/Web API nonsense should get a D, E or F label by default.
Have fun!12 -
We got DDoS attacked by some spam bot crawler thing.
Higher ups called a meeting so that one of our seniors could present ways to mitigate these attacks.
- If a custom, "obscure" header is missing (from api endpoints), send back a basic HTTP challenge. Deny all credentials.
- Some basic implementation of rate limiting on the web server
We can't implement DDoS protection at the network level because "we don't even have the new load balancer yet and we've been waiting on that for what... Two years now?" (See: spineless managers don't make the lazy network guys do anything)
So now we implement security through obscurity and DDoS protection... Using the very same machines that are supposed to be protected from DDoS attacks.16 -
Argh! What are HTTP status codes for if you're not using them in your API implementation?!
Fucking morons!15 -
Coolest thing I’ve built solo?
Damn, there’s been a lot of things over the years, but I guess the most used one I’ve made would be my voice activated tv remote - yes it’s real.
So in essence it’s a google home... yea I know spyware and all, but look it was free so I’m going to make use of it... err where was I, oh yea.
An IFTTT account which taps into the google assistant API and creates a webhook, although the authentication side of things is 0 to none, so had to put a api-key into the requests to at least have some layer of auth.
This webhook then hits a raspberry pi containing a PHP API to accept and authenticate the request in, digest this into KEY commands for the TV, and drops this into a Python script to connect to the TV over a web socket connection ( I found python more stable for this ) and sends the pre made key requests, it can even do multiple keys at a time... that was a pain.
So after all that, the end game becomes about a second from saying “hey google, change the tv channel to xxx”
This sick and twisted contraption is finished and the tv is my little bitch.
This has been built out to handle channels by name, number, volume up/down, sources switching to hdmi, tv, vga and a bunch of other things.
The things we do when we can’t find a tv remote for days....
Next up, getting it to launch Netflix app and going to a specified show / episode.. but may be to adventurous. -
Just output the web api response like this:
echo "{"
echo " \"key\" = ["
for i in `seq 1 $arrCount`; do
if [ $i -ne 0 ]; then
echo ","
fi
echo "{ \"key1\" = \"${key1[$i]}\","
echo " \"key2\" = \"${key2[$i]}\" }"
done
echo "]}"9 -
Create an web application(a product of our company). Manager insisted on using X third party API instead of Y third party API.
Now the app is complete.
*Very slow, Shitty User Experience *
I feel shameful for creating such a disaster and also wasted 3 sprints on it. But couldn't do anything because I don't have an authority to take decision which API or technology stack I should use.
Business head and manager had a meeting. Now they want to use Y third party API.
So they called me for discussion, lets me know we will now use Y third party API and it should be completed within a week because we just need to change the API calls in code that's all, despite of knowing all the core logic is built around those API.
Don't know how to react to this :( Want to hit my head on a wall3 -
I'm in the process of moving a web store to Shopify.
Today I was writing the product migration script and noticed about 10% of the products were missing their images after being imported, however no errors were returned from Shopify's API.
After 20 minutes of debugging I finally realized that some idiot uploaded some images in PNG format but changed the filename to a .jpg extension since our old CMS required a JPEG extension.8 -
I'll admit - I come from a WordPress background of almost 9 years in the making. I guess I can justify it because of all of the sites I created using it, it was the best that it could be on WP. Fast, efficient, custom - none of that off-the-shelf themeforest crap. I created everything custom. I actually knew what was going on behind the scenes of WP.
And then a buddy of mine and I had an idea for a new company/software project. I was smart enough to know that WP was not the foundation for this, so I did some NodeJS/Express tutorials. Started learning React, and really getting into the Javascript world.
And now I'm wondering WHY IN THE ABSOLUTE FUCK I ever bothered trying to become an expert in WP. It's the largest use of PHP in the fucking world and it doesn't even have native composer support. And by the time you actually get your project set up using composer you have to add a fucking mirror of the wordpress.org plugin repo to get anything to work. It's 2018 and you'd think that WP and composer would have all of this shit figured out by now.
And don't get me started on git - as soon as you have more than 1 person working on a WP site, I hope you have hourly backups of your DB because someones work will get overwritten. So you all either need to work on the same staging area of work around each other by pushing/pulling the DB and schedule your workflows.
I guess WP CLI and the REST API are a step in the right direction, but the foundation of everything is just so fucked up.
I don't feel like I've wasted my web dev career, but I definitely wish I had started down this path a lot earlier. I guess you don't know what you don't know. Thanks for reading!2 -
>be my team
>developing a mobile app
>I'm responsible for developing a "RESTful" API to interface communications between the app and the database
>there's also an "admin" web application which the client themselves will use to manage some shit in the database
>I've developed the API, it works with the mobile app
>instead of just making it simply a front-end app that makes requests to the API like the mobile app does, the guy responsible for the admin app completely ignores my API and implements his own with a certain messy dollar symbol language and a certain bloated piece of server software, accessing the same database directly, and does some operations in his own special way that will break what I've implemented
>now data inserted via admin app is inaccessible to the server API, and I'm expected to "fix" my code so it's consistent with this guy's shit, but the only way to do it is introducing interdependency between the actual API and the admin app's back end
Fuck my life, now I'm the one responsible for the app being broken because no way the guy who's used to kludging unmaintainable shit together fast would ever fuck anything up2 -
I've created a small smart home web app 2 or 3 years ago.
Features:
- Change DECT heating controller settings
- Philips Hue control
- Wunderlist integration
- Send a cooking recipe to the web app (from a large recipe site, with a greasymonkey script)
I've mounted an old Android tablet to a kitchen cupboard where the web app runs in kiosk mode in fullscreen (you can swipe between the different panels).
The web app is build with .NET Core Web-API, Vue.js and MariaDB. Everything runs on a Raspberry Pi.
Last year I've discovered openHAB with HABPanel...
1 -
So I've started learning Rust and I must say it feels great! But some parts of the language, like enums, are quite different than what I'm used to.
As a proof of concept I've reimplemented a small API (an Azure Function App) in Rust with Actix Web and it's FAST AS FUCK BOIII.
The response is served about 5x as quckly and the memory footprint shrinked from some 90 MB to around 5 MB.
In my small scale usecase it's not a huge difference, but I think it can be massive at large scales...
What is your experience with Rust (at scale)?
I wish I could quickly reimplement the whole fucking CMS Of Doom™ in Rust... but no time and resources :(5 -
How could I only name one favorite dev tool? There are a *lot* I could not live without anymore.
# httpie
I have to talk to external API a lot and curl is painful to use. HTTPie is super human friendly and helps bootstrapping or testing calls to unknown endpoints.
https://httpie.org/
# jq
grep|sed|awk for for json documents. So powerful, so handy. I have to google the specific syntax a lot, but when you have it working, it works like a charm.
https://stedolan.github.io/jq/
# ag-silversearcher
Finding strings in projects has never been easier. It's fast, it has meaningful defaults (no results from vendors and .git directories) and powerful options.
https://github.com/ggreer/...
# git
Lifesaver. Nough said.
And tweak your command line to show the current branch and git to have tab-completion.
# Jetbrains flavored IDE
No matter if the flavor is phpstorm, intellij, webstorm or pycharm, these IDE are really worth their money and have saved me so much time and keystrokes, it's totally awesome. It also has an amazing plugin ecosystem, I adore the symfony and vim-idea plugin.
# vim
Strong learning curve, it really pays off in the end and I still consider myself novice user.
# vimium
Chrome plugin to browse the web with vi keybindings.
https://github.com/philc/vimium
# bash completion
Enable it. Tab-increase your productivity.
# Docker / docker-compose
Even if you aren't pushing docker images to production, having a dockerfile re-creating the live server is such an ease to setup and bootstrapping the development process has been a joy in the process. Virtual machines are slow and take away lot of space. If you can, use alpine-based images as a starting point, reuse the offical one on dockerhub for common applications, and keep them simple.
# ...
I will post this now and then regret not naming all the tools I didn't mention. -
I wrote a node + vue web app that consumes bing api and lets you block specific hosts with a click, and I have some thoughts I need to post somewhere.
My main motivation for this it is that the search results I've been getting with the big search engines are lacking a lot of quality. The SEO situation right now is very complex but the bottom line is that there is a lot of white hat SEO abuse.
Commercial companies are fucking up the internet very hard. Search results have become way too profit oriented thus unneutral. Personal blogs are becoming very rare. Information is losing quality and sites are losing identity. The internet is consollidating.
So, I decided to write something to help me give this situation the middle finger.
I wrote this because I consider the ability to block specific sites a basic universal right. If you were ripped off by a website or you just don't like it, then you should be able to block said site from your search results. It's not rocket science.
Google used to have this feature integrated but they removed it in 2013. They also had an extension that did this client side, but they removed it in 2018 too. We're years past the time where Google forgot their "Don't be evil" motto.
AFAIK, the only search engine on earth that lets you block sites is millionshort.com, but if you block too many sites, the performance degrades. And the company that runs it is a for profit too.
There is a third party extension that blocks sites called uBlacklist. The problem is that it only works on google. I wrote my app so as to escape google's tracking clutches, ads and their annoying products showing up in between my results.
But aside uBlacklist does the same thing as my app, including the limitation that this isn't an actual search engine, it's just filtering search results after they are generated.
This is far from ideal because filter results before the results are generated would be much more preferred.
But developing a search engine is prohibitively expensive to both index and rank pages for a single person. Which is sad, but can't do much about it.
I'm also thinking of implementing the ability promote certain sites, the opposite to blocking, so these promoted sites would get more priority within the results.
I guess I would have to move the promoted sites between all pages I fetched to the first page/s, but client side.
But this is suboptimal compared to having actual access to the rank algorithm, where you could promote sites in a smarter way, but again, I can't build a search engine by myself.
I'm using mongo to cache the results, so with a click of a button I can retrieve the results of a previous query without hitting bing. So far a couple of queries don't seem to bring much performance or space issues.
On using bing: bing is basically the only realiable API option I could find that was hobby cost worthy. Most microsoft products are usually my last choice.
Bing is giving me a 7 day free trial of their search API until I register a CC. They offer a free tier, but I'm not sure if that's only for these 7 days. Otherwise, I'm gonna need to pay like 5$.
Paying or not, having to use a CC to use this software I wrote sucks balls.
So far the usage of this app has resulted in me becoming more critical of sites and finding sites of better quality. I think overall it helps me to become a better programmer, all the while having better protection of my privacy.
One not upside is that I'm the only one curating myself, whereas I could benefit from other people that I trust own block/promote lists.
I will git push it somewhere at some point, but it does require some more work:
I would want to add a docker-compose script to make it easy to start, and I didn't write any tests unfortunately (I did use eslint for both apps, though).
The performance is not excellent (the app has not experienced blocks so far, but it does make the coolers spin after a bit) because the algorithms I wrote were very POC.
But it took me some time to write it, and I need to catch some breath.
There are other more open efforts that seem to be more ethical, but they are usually hard to use or just incomplete.
commoncrawl.org is a free index of the web. one problem I found is that it doesn't seem to index everything (for example, it doesn't seem to index the blog of a friend I know that has been writing for years and is indexed by google).
it also requires knowledge on reading warc files, which will surely require some time investment to learn.
it also seems kinda slow for responses,
it is also generated only once a month, and I would still have little idea on how to implement a pagerank algorithm, let alone code it.
4 -
Alright so I have to create an API that communicates with a web interface and three different back end systems. And I think my customer might have thought that I am actually Jesus because they didn't have any docs for their systems and their policy did not allow me to gain access to their internal testing environment (which. Drove. Me. NUTS) and expected me to create this API by pure guesswork basically. After teaching the customer's internal IT guy how to capture requests between the systems I managed to somehow got the prototype working. I am proud and sleepy. ... Mainly sleepy2
-
In the process of moving our web store to Shopify (yuck!) and we are first creating 150000 fake orders through the API so that as we import our real orders, the numbers match.
I'm disturbed by the fact there is no better way to achieve this and after speaking with support they said our best bet would be asking about it on the forums.1 -
Dear "Create a web API with ASP.NET Core" official MS tutorial:
you betrayed me. I came to you like an innocent child and you fucked me over, you abused my trust, forcing me to follow insane instructions leading to no result other than the loss of my childhood and my day.
I feel like a child raped by some perv-priest or monster father.
I had a soul ready for a space walk,
and now I have just a hole full of your cock1 -
!Rant
Is this what we've all been waiting for?
CodeCorrect finds solutions to common errors in your code
"The hack works by inserting a piece of JavaScript in your web code that reroutes uncaught exceptions to a local node.js web server. From there, the code sends a request to StackOverflow's API to search for error messages and return the highest-ranked solutions to user-submitted questions. Answers are extracted from the StackOverflow, and if they can automatically be converted into instructions, changes will be made to the original code."
https://techcrunch.com/2017/05/...3 -
At work, my closest relation is with the DBA. Dude is a genius when it comes to proper database management as well as having a very high level of understanding concerning server administration, how he got that good at that I have no clue, he just says that he likes to fuck around with servers, Linux in particular although he also knows a lot about Windows servers.
Thing is, the dude used to work as a dev way back when VB pre VB.NET was all the rage and has been generating different small tools for his team of analysts(I used to be a part of his team) to use with only him maintaining them. He mentioned how he did not like how Microsoft just said fk u to VB6 developers, but that he was happy as long as he could use VB. He relearned how to do most of the GUI stuff he was used to do with VB6 into VB.NEt and all was good with the world. I have seen his code, proper OOP practices and architectural decisions, etc etc. Nothing to complain about his code, seems easy enough to extend, properly documented as well.
Then he got with me in order to figure out how to breach the gap between building GUI applications into web form, so that we could just host those apps in one of our servers and his users go from there, boy was he not prepared to see the amount of fuckery that we do in the web development world. Last time my dude touched web development there was still Classic ASP with JScript and VBScript(we actually had the same employer at one point in the past in which I had to deal with said technology, not bad, but definitely not something I recommend for the current state of web development) and decided that the closest thing to what he was used was either PHP(which he did not enjoy, no problem with that really, he just didn't click with the language) and WebForms using VB.NET, which he also did not like on account of them basically being on support mode since Microsoft is really pushing for people to adopt dotnet core.
After came ASP.NET with MVC, now, he did like it, but still had that lil bug in his head that told him that sticking to core was probably a better idea since he was just starting, why not start with the newest and greatest? Then in hit(both of us actually) that to this day Microsoft still not has command line templates for building web applications in .net core using VB.NET. I thought it was weird, so I decided to look into. Turns out, that without using Razor, you can actually build Web APIs with VB.NET just fine if you just convert a C# template into VB.NET, the process was...err....tricky, and not something we would want to do for other projects, with that in we decided to look into Microsoft's reasons to not have VB.NET. We discovered how Microsoft is not keeping the same language features between both languages, having crown C# as the language of choice for everything Microsoft, to this point, it seems that Microsoft was much more focused in developing features for the excellent F# way more than it ever had for VB.NET at this point and that it was not a major strategy for them to adapt most of the .net core functionality inside of VB, we found articles when the very same Microsoft team stated of how they will be slowly adding the required support for VB and that on version 5 we would definitely have proper support for VB.NET ALTHOUGH they will not be adding any new development into the language.
Past experience with Microsoft seems to point at them getting more and more ready to completely drop the language, it does not matter how many people use it, they would still kill it :P I personally would rather keep it, or open source the language's features so that people can keep adding support to it(if they can of course) because of its historical significance rather than them just completely dropping the language. I prefer using C#, and most of my .net core applications use C#, its very similar to Java on a lot of things(although very much different in others) and I am fine with it being the main language. I just think that it sucks to leave such a large developer pool in the shadows with their preferred tool of choice and force them to use something else just like that.
My boy is currently looking at how I developed a sample api with validation, user management, mediatR and a custom project structure as well as a client side application using React and typescript swappable with another one built using Angular(i wanted to test the differences to see which one I prefer, React with Typescript is beautiful, would not want to use it without it) and he is hating every minute of it on account of how complex frontend development has become :V
Just wanted to vent a little about a non bothersome situation.6 -
I am working on a project that integrated with Microsoft Dynamics. The D365 team changes the data and API too often. I keep munging the data over and over so that it fits view models.
Yesterday I had a technical discussion with someone that the company installed to coordinate building technical solutions that get shared between projects. This is a problem across all of our Dynamics projects and is a technical one than needs coordinated approach.
The management heard that I am “doing repeated work because the data isn’t stable.” So they decided that it must be a problem with the project manager. The executive decides to use it as a reason to fire him. Which shows me that I can’t talk to even a technical person without risk of project chaos.
After the conversation but before the firing I get an offer letter from another company. I plan on taking it to get away from this crazy company. The project is going to lose their key web developer and also the project manager.
This executive seems to love firing project managers. My other project is on its third PM. My trust for the upper management is basically gone. I can’t even discuss the technical hurdles with a technical person without someone getting fired. I’m so ready to be out of this zoo.
The only downside of leaving is that I won’t have as many stories to tell on devRant.1 -
You know something is ABSOLUTELY NOT RIGHT when you see this code.
Even more when you notice the parameter is not being used at all!
Holy crap, it is a web api deployed in production. Imagine it being called!
3 -
No-code web design tools are made for the sole purpose of lacking features in order to torture a developer after marketing or sales requests something that the tool cannot do, or can but requires a very roundabout way of doing things. Extra points for things that have a JS API instead of letting you inject the damn thing.3
-
TL;DR;
I was asked to give estimation on an app, that:
1. No one has a clue what it does, even though there is v1 on the store with almost 10% of functionality working
2. No one has a clue what should be in the new rewritten version
3. We are already behind schedule and I have no clue why, I've just been told that
4. They need UI flow that shows how the app will work with static data and when API's are ready (because ya know, writing code is easier than creating wireframes and modifying them accordingly) I will then need to link app with API as if it is as simple as drinking a cup of water, especially that: 1. What is water? 2. Do I have a cup or is it given, and 3. Relax bro, drinking water is like eating a burger, piece of cake!
I'm not sure what to do, not enough that it's React Native but also spaghetti requirements that no one was able to answer my simple question: What is the app responsible of?
P.S.: Some say I must rewrite the old app ONLY, no new features, others say: Turn the new web portal into mobile app, I say: WTF is going one?5 -
So I just spent the last few hours trying to get an intro of given Wikipedia articles into my Telegram bot. It turns out that Wikipedia does have an API! But unfortunately it's born as a retard.
First I looked at https://www.mediawiki.org/wiki/API and almost thought that that was a Wikipedia article about API's. I almost skipped right over it on the search results (and it turns out that I should've). Upon opening and reading that, I found a shitload of endpoints that frankly I didn't give a shit about. Come on Wikipedia, just give me the fucking data to read out.
Ctrl-F in that page and I find a tiny little link to https://mediawiki.org/wiki/... which is basically what I needed. There's an example that.. gets the data in XML form. Because JSON is clearly too much to ask for. Are you fucking braindead Wikipedia? If my application was able to parse XML/HTML/whatevers, that would be called a browser. With all due respect but I'm not gonna embed a fucking web browser in a bot. I'll leave that to the Electron "devs" that prefer raping my RAM instead.
OK so after that I found on third-party documentation (always a good sign when that's more useful, isn't it) that it does support JSON. Retardpedia just doesn't use it by default. In fact in the example query that was a parameter that wasn't even in there. Not including something crucial like that surely is a good way to let people know the feature is there. Massive kudos to you Wikipedia.. but not really. But a parameter that was in there - for fucking CORS - that was in there by default and broke the whole goddamn thing unless I REMOVED it. Yeah because CORS is so useful in a goddamn fucking API.
So I finally get to a functioning JSON response, now all that's left is parsing it. Again, I only care about the content on the page. So I curl the endpoint and trim off the bits I don't need with jq... I was left with this monstrosity.
curl "https://en.wikipedia.org/w/api.php/...=*" | jq -r '.query.pages[0].revisions[0].slots.main.content'
Just how far can you nest your JSON Wikipedia? Are you trying to find the limits of jq or something here?!
And THEN.. as an icing on the cake, the result doesn't quite look like JSON, nor does it really look like XML, but it has elements of both. I had no idea what to make of this, especially before I had a chance to look at the exact structured output of that command above (if you just pipe into jq without arguments it's much less readable).
Then a friend of mine mentioned Wikitext. Turns out that Wikipedia's API is not only retarded, even the goddamn output is. What the fuck is Wikitext even? It's the Apple of wikis apparently. Only Wikipedia uses it.
And apparently I'm not the only one who found Wikipedia's API.. irritating to say the least. See e.g. https://utcc.utoronto.ca/~cks/...
Needless to say, my bot will not be getting Wikipedia integration at this point. I've seen enough. How about you make your API not retarded first Wikipedia? And hopefully this rant saves someone else the time required to wade through this clusterfuck.12 -
True story, honest to god.
Developed a state or the art SOA web app. Front end communicates with backend through API.
Client meeting, this guy looks me right in the eyes and blurts out : « why does the submit button get disabled after first click ? Clicking it a few times gets my request high priority »
I folded back my laptop and left the meeting without saying a word. Pretty sure I’m getting fired tomorrow.5 -
#!/usr/bin/rant
So, we are a web development and marketing agency. That's fine... except now it seems that we are a marketing and web development agency. Where the head marketing guy feels it's his job to head up web development.
This is NOT what I signed up for.
When you offer web services to a client, the one meeting with the client should understand at least basic stuff, and know when to pull in a heavyweight for more questions. Instead, our web team is summarized by a guy who listens to 80's rock music in a shared office (used to be just me in there) and spends his days trying to get 30-year-olds on Facebook to click an ad.
He was on the phone yesterday with some ecommerce / CRM support, trying to tell them that they have an API, that "it's a simple thing, I'm sure you have it", and that's all we need to do business with them. Which is not his call, it's my call, but for some reason he's the one on the phone asking for API info. The last time I took someone else's word on an API, I underquoted the work and eventually found out that their "API" was nothing more than a cron job which places a CSV file on your server via FTP.
Anyway, we now have a full-time marketer and two part-time interns, with another ad out for an AdWords specialist. Meanwhile, I'm senior dev with a server admin / retired senior dev, and if we don't focus on hiring a front-end guy soon we're going to lose business.
Long story short, I'm getting sick of having a guy who does not understand basic web concepts run the show because he's the one who talks to the client.3 -
Haven't had such joy as with developing the devrant client in a while. (when things work of course haha)
The js plugin system works now with barely any time added to just loading the rants and in proper order too! (thanks asyncjs) now just need to add a way for the user to download and manage external ones.
The screenshot shows the test plugin linkify, which fetches from the API if there's any links and linkifies them even on the feed (which devrant web doesn't do and always annoyed me) - though since html gets stripped by handlebars I'll have to find a way for them to properly render with other tags to still be stripped (maybe handlebars has that inbuilt already? didn't check yet), plugins currently have access to all values the template would get too, so one could fuck around with e.g. the usernames too lol.
btw: the app is fully responsive even on desktop, which will be handy for me personally, iirc all the other clients I've tried always had some sort of size limit, without which it'd also better fit all our i3 archers out there.
-
Azure portal is all I hate about Windows in a single, convenient, accessible web page.
Worst part being there are some parts of my work requiring me to deal with it on a daily basis as there is no PowerShell equivalent command, nor any API I could use, to perform some tasks.3 -
!rant
I've had a personal project (commercial idea) I've been meaning to get started on for a while, and today I started...
Kudos to the team at Microsoft, they've really gotten .net core and asp.net core to a fantastic place.
And the team at JetBrains have done an amazing job on Rider.
I've been able to get a docker container running SQL Server on linux, as well as Web API projects for an API and an identity server all running with local HTTPS and communicating quite happily, with barely an issue in sight.
Bodes well for the future I hope.
Now I just have to commit to the project and actually finish it 😂1 -
Some thoughts about time relations in app dev:
10% - minimal ui & coding main functions
10% - testing
10% - writing web api just for fun
70% - try to "design" an ui
Am I the only one having problems with ui?? 🤔3 -
Fuck everything about Microsoft Dynamics. I'm supposed to use the REST API to make a web front-end. I notice all of the data comes back codified.
null == 0.
boolean true == 100000000
boolean false == 100000001
except sometimes when
boolean false == 100000000
boolean true == 100000001
or other times
string "Yes" == 100000000
string "No" == 100000001
string "Maybe" == 100000003
Hang on. Is the system representing a 1 bit value with base 10 numbers? Did the client set this up like this? Holy crap every number corresponds to a unique record in a table somewhere. That means it only returns numeric values instead of strings and I have to figure out what the number means in the context of the table.
A "key" is user typed? So every time someone starts to make a new record it saves a new "key" without a record? So I can pull a bunch of "0" records if I pull sequentially? So basically I need to see all of the data in Dynamics to have any context at all for what is returned from the Dynamics API? Fuuuuuuuuuu10 -
Anybody tried Project Fugu the new browser api's from google which let's progressive webapps access the users filesystem, contacts, computer vision, nfc, geo fencing and launch other apps?
https://blog.chromium.org/2018/11/...10 -
Started a new gig doing APIs and deployment pipelines. After a few weeks a new boss came on the scene and decided I'm now a web dev, and the API and pipelines are going to be scrapped, and replaced by something with less availability and scalability.
Anyone looking for a good back-end dev?
😵💫 -
A friend has a small business and asked me if I could make him a small program. So why not, experience for me and I can help a friend out. (This started in ~mid 2016)
Started out as a WPF desktop application with many weird bugs and slow interface, into crashing the database on AWS (could not connect, could not get a backup). It was just hell and I kind of gave up on fixing it.
I always talked to him and said "yeah, I will do something better soon", but I was procrastinating and kept pushing it away from me. Then one day I said "f*ck it - lets go" and started coding on 2.0:
- WebApp with a complete new architecture (which I learned in the past few months)
- User authentication (JWT)
- ASP.NET Core Backend for web api
- Angular 4 Frontend w/ bootstrap
- Coded in like a week with 3-5 hours each day
Deployed around 6 months ago and he never had a complain. When I visited him I asked "how is your application doing?" - "great. it just works!".
My once most hated project turned into the most successful project in just a few months.2 -
"One misstep from developers at Starbucks left exposed an API key that could be used by an attacker to access internal systems and manipulate the list of authorized users," according to the report of Bleeping Computer.
Vulnerability hunter Vinoth Kumar reported and later Starbucks responded it as "significant information disclosure" and qualified for a bug bounty. Along with identifying the GitHub repository and specifying the file hosting the API key, Kumar also provided proof-of-concept (PoC) code demonstrating what an attacker could do with the key. Apart from listing systems and users, adversaries could also take control of the Amazon Web Services (AWS) account, execute commands on systems and add or remove users with access to the internal systems.
The company paid Kumar a $4,000 bounty for the disclosure, which is the maximum reward for critical vulnerabilities.6 -
I started programming when I was 14, because I was deeply enrooted in MMORPG hacking communities. It gave me an escape from real life, and I felt empowered by the skill to create something from nothing. My first language was Lazarus FPC, followed by VB.NET, C#, C++ ( managed and unmanaged non CLR ). As time went on, I found more ways to turn my "hacks" into software, and finally I began selling subscriptions which required me writing an authentication system.
After weeks of research, I began writing my own REST API in PHP using MySQL as my database. At this point I had an IPB forum up and running for a year, but with my newly acquired knowledge I was able to couple my API with my forum software. To properly distribute my API i had to learn NGINX to route my API to a subdomain.
Soon after I began writing my own portal for my authentication system, at which point I had become entirely enveloped in Web Development. I was 17 when I dropped my forum, I'm now 21 and freelancing web app consulting, day job as a QA automation developer. -
Android dev job question:
"Describe the activity lifecycle and write an application that does x,y,z in accordance with it"
Fullstack dev job question:
"Write some code that interacts with our API and does x,y,z, put the data into our database and build a web interface"
Java backend dev interview :
"BUILD AN ELEVATOR ALGORITHM WITH LESS THAN o(nlog(n)), FIND NEIGHBORS IN A BINARY TREE, WHAT IS THE DIFFERENCE BETWEEN AN INTERFACE AND ABSTRACT CLASS?"
Why?5 -
A friend came to me whether i want to do a project on c++(someone asked him to find a c++ guy).
Me needing money didn’t refuse. Even though i am a Java developer with 0 skills on c++, but wanted to give it a try.
So project started, and it was about a plugin for rhinoceros app(3d graphics app).
The plugin was simple, had some views and some services to upload a file into s3 and some api calls, not something complex..
So i ended up working on the project together with my friend(web dev).
So long story short, we had a lot of issues, but considering we both had no knowledge on c++, we were really lucky to finish the product almost on time(3 days after).
Did no memory management even though i’ve read that we have to do that by our selfs and that c++ doesn’t have garbage collector.
But the plugin worked great even without garbage collector.
Had a lot issues with string manipulation, which almost drive me crazy.
PS: did a post here before taking the project, to ask whether it is a good idea to take the project or not, had some positive and some negative replies, but i deleted the post since i thought i was breaking the NDA i signed 😂😂
PS2: just finished OCAJP 8 last week with a great score😃6 -
So, the other day, I was working on a Angular Web app which included the YouTube Api. In the event listener, I wrote that when a video ended, a next one would start (from our database).
Guess what. It didn't work.
Then, I wrote a console.log();
It freaking worked! Then, I removed the console.log. It didn't. I tested cases for like half an hour and it still baffles me, why the hell would an output change everything?
devGod works on mysterious ways...7 -
Received feedback on a task I made for a job interview (I didn't get a technical interview).
The task was easy with nothing special about it that made me think if that's what the job is like, I don't want to work there. It was a simple web page with search functionality. I did the task anyway.
The feedback I got was useless. It said that I made a complex and an over-engineered solution.
What I made, mind you, was a one endpoint API and a single Vue.js component instead of using jQuery to update the results. That's it. OVER-ENGINEERED!
Complete waste of time.5 -
I am learning java at school and my teacher asked me to make a work on JTA (java transaction API). There's not a lot of tutos on it on the web so I say to myself "go on, give it a try, you'll only learn by trying."
I finally find how to make the @TransactionType, where to put the @Stateless, my test works, nice. Finally I want to try a case where it shouldn't work, just to be sure the rollback works well. The test goes and... NullPointerException. Wtf ! Normally, my catch is supposed to, well, catch the error !
And finally, I was just stupid. My catch worked great. But I put a "throw e" inside.
Now I wanna hides under blankets, cry, eat cake and never see my coworkers again.2 -
JSF: Yeah, we make it so can focus on what's important and you never have to write HTML or CSS like those lowly web developers.
Also JSF: You can't nest <h:form> components because nested forms are invalid HTML. Oh, that breaks the composite component you were trying to use? Ha, fuck off.
Primefaces: You know how you can just provide an ID and OverlayPanel will open on its own? Well, for a Dialog, the API is completely different. Here's a glob of JavaScript in an onclick event.
I swear this entire thing was regurgitated by a murder of seagulls.1 -
That's it, where do I send the bill, to Microsoft? Orange highlight in image is my own. As in ownly way to see that something wasn't right. Oh but - Wait, I am on Linux, so I guess I will assume that I need to be on internet explorer to use anything on microsoft.com - is that on the site somewhere maybe? Cause it looks like hell when rendered from Chrome on Ubuntu. Yes I use Ubuntu while developing, eat it haters. FUCK.
This is ridiculous - I actually WANT to use Bing Web Search API. I actually TRIED giving up my email address and phone number to MS. If you fail the I'm not a robot, or if you pass it, who knows, it disappears and says something about being human. I'm human. Give me free API Key. Or shit, I'll pay. Client wants to use Bing so I am using BING GODDAMN YOU.
Why am I so mad? BECAUSE THIS. Oauth through github, great alternative since apparently I am not human according to microsoft. Common theme w them, amiright?
So yeah. Let them see all my githubs. Whatever. Just GO so I can RELAX. Rate limit fuck shit workaround dumb client requirements google can eat me. Whats this, I need to show my email publicly? Verification? Sure just go. But really MS, this looks terrible. If I boot up IE will it look any better? I doubt it but who knows I am not looking at MS CSS. I am going into my github, making it public. Then trying again. Then waiting. Then verifying my email is shown. Great it is hello everyone. COME ON MS. Send me an email. Do something.
I am trying to be patient, but after a few minutes, I revoke access. Must have been a glitch. Go through it again, with public email. Same ugly almost invisible message. Approaching a billable hour in which I made 0 progress. So, lets just see, NO EMAIL from MS, Yes it appears in my GitHub, but I have no way to log into MS. Email doesnt work. OAuth isn't picking it up I guess, I don't even care to think this through.
The whole point is, the error message was hard to discover, seems to be inaccurate, and I can't believe the IRONY or the STUPIDITY (me, me stupid. Me stupid thinking I could get working doing same dumb thing over and over like caveman and rock).
Longer rant made shorter, I cant come up with a single fucking way to get a free BING API Key. So forget it MS. Maybe you'll email me tomorrow. Maybe Github was pretending to be Gitlab for a few minutes.
Maybe I will send this image to my client and tell him "If we use Bing, get used to seeing hard to read error messages like this one". I mean that's why this is so frustrating anyhow - I thought the Google CSE worked FINE for us :/
-
In a meeting yesterday working through our WebAPI coding standards, starting from File -> New project..etc..etc.. and ironing out some of the left-or-right decisions so we can have a consistent coding style, working in a meeting room with an overhead projector and sharing keyboard around with one another.
Then we hit the routing 'rules' in the WebApiConfig, "api/{controller}/{id}"…
DevMgr: "Do we need the 'api' prefix? It seems redundant."
Ralph: "Yes it's needed. Prefixing the controllers with 'api' is industry best practice. Otherwise, how is anyone to know it's a web api"
Prancer: "Yea, it's part of the REST standard."
Me: "I don't think so. That is only part of the Asp.Net routing rule. We can put anything we want or take anything out."
DevMgr: "Yea, it looks silly. All the new services are going to be business process specific."
Ralph: "That's how everyone does it. It's kind of the point of why REST services are called WebApi"
Prancer: "What's the point of doing any of this work if we're not going to follow industry standards."
Me: "I understand if the service is part of larger web site, but we're developing standalone services. Prefixing routes with 'api' is redundant. I mean who are these 'everyone' you're talking about?"
<ralph rolls his eyes>
Ralph: "Lets see …uhhh… Netflix?. They're kinda a big deal."
Me: "Like I said, it's an integral part of their site and the services they provide. That's fine. I'm talking about the 12 other 3rd party services we integrate with. None of them have 'api' on any of their routes."
Prancer: "We're talking about serious web services."
Me: "Last time I checked, UPS is a big and serious service."
Ralph: "Their services are a fracking joke" – he didn't say fracking.
Me: "Our payroll system, our billing system, billion dollar companies, didn't have '/api' prefix anywhere. Heck, even that free faxing service we used for a while was a dead-simple routing path."
<I take the keyboard away from Ralph, remove the 'api' from the route.>
Me: "There. Done. Now, lets talk about error handling.."
Rest of the meeting Ralph and Prancer don't say much of anything, arms crossed…I swear Ralph looked like he was going to cry.
This morning I catch my boss…
Me: "What did you think of the meeting? I thought Ralph was going to take a swing at me when I took the keyboard away from him."
DevMgr: "Oh yes…I almost laughed out loud….blows my freaking mind how worked up people get about crap that doesn't matter. Api..or not…who the frack cares. Just make it consistent"
Me: "Exactly…I didn't care either way, but I enjoyed calling out that nonsense."
DevMgr: "Yes..waaay too much."
If I didn't call them on their BS and the 'standard' allowed to continue, I can bet my paycheck when the subject comes up in a few months (another mgr asks 'isn't this api prefix redundant?') Ralph and Prancer will be the first to say "Yea, its stupid. We fought really hard to remove it from the standard...its not our fault...its <insert scapegoat> fault." -
OK semi rant... Would like suggestions
Boss wants me to figure out someway to find the maximum load/users our servers/API/database can handle before it freezes or crashes **under normal usage**.
HOW THE FUCK AM I SUPPOSED TO DO THAT WITH 1 PC? The question seems to me to mean how big a DDoS can it handle?
I'm not sure if this is vague requirements, don't know what they're talking about, or they think I can shit gold... for nothing... or I'm missing something (I'm thinking how many concurrent requests and a single Neville melee even with 4 CPUs)
"Oh just doing up some cloud servers"
Uh well I'm a developer, I've never used Chef or Puppet and or cloud sucks, it's like a web GUI, not only do I have to create the instances manually and would have to upload the testing programs to each manually... And set up the envs needed to run it.
Docker you say? There's no Docker here... Prebuilt VM images? Not supported.
And it's due in 2 weeks...11 -
I just learned the concept of this thing called REST API and now here's GraphQL showing up on me face. Mother fucking web development hell. BRB. KMS4


