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 - "api wrapper"
-
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 -
Just released my JS devRant API wrapper. It has support for posting, viewing, voting and much more. If you are interested here is the NPM package:
https://npmjs.com/package/...9 -
I realize I've ranted about this before, but...
Fuck APIs.
First the fact that external services can throw back 500 errors or timeouts when their maintainer did a drunk deploy (but you properly handled that using caching, workers, retry handlers, etc, right? RIGHT?)...
Then the fact that they all speak a variety of languages and dialects (Oh fuck why does that endpoint return a JSON object with int keys instead of a simple array... wait the params are separated with pipe characters? And the other endpoint uses SOAP? Fuck I need to write another wrapper class around the client...)
But the worst thing: It makes developers live in this happy imaginary universe where "malicious" is not a word.
"I found this cloud service which checks our code style" — hmm ok, they seem trustworthy. Hope they don't sell our code, but whatever.
"And look at this thing, it automatically makes database backups, just have to connect to it to DigitalOcean" — uhhh wait...
"And I just built this API client which sends these forms to be OCR processed" — Fuck... stop it... there are bank accounts numbers on those forms... Where's that API even located? What company?
* read their privacy policy *
"We can not guarantee the safety of your personal data, use at your own risk [...] we are located in Russia".
I fucking hate these millennial devs who literally fail to get their head out of the cloud.
Somehow they think it's easier to write all these NodeJS handlers and layers around some API, which probably just calls ImageMagick + Tesseract on the other side.
If I wasn't so fucking exhausted, I'd chop of their heads... but they're like hydra, you seal one privacy breach and another is waiting to be merged, these kids just keep spewing their crap into easy packages, they keep deploying shitty heroku apps... ugh.
😖8 -
micromanager: "Quick and easy win! Please have this done in 2-3 days to start repairing your reputation"
ticket: "Scrap this gem, and implement your own external service wrapper using the new and vastly different Slack API!"
slack: "New API? Give me bearer tokens! Don't use that legacy url crap, wth"
prev dev: "Yeah idk what a bearer token is. Have the same url instead, and try writing it down so you don't forget it?"
Slack admin: "I can't give you access to the slack integration test app, even though it's for exactly this and three others have access already, including your (micro)manager."
Slack: "You can also <a>create a new slack app</a>!" -- link logs me into slack chat instead. After searching and finding a link elsewhere: doesn't let me.
Slack admin: "You want a new test slack app instead? Sure, build it the same as before so it isn't abuseable. No? Okay, plan a presentation for it and bring security along for a meeting on Friday and I'll think about it. I'm in some planning meetings until then."
asdfjkagel.
This job is endless delays, plus getting yelled at over the endless delays.
At least I can start on the code while I wait. Can't test anything for at least a week, though. =/17 -
Ok peeps, this is it!
I have completed my contribution to community projects! Wanted to share with you guys...
I was so impressed/inspired with @ChappIO 's www.jsRant.com project that I wanted to create something similar.
So I created an XML stylized stream of rants, in dark theme.
It also reflects how I feel as software developer with my current knowledge - kinda derelict old school!
The underlying tech is Asp.net core 1.1, using my own .net core API wrapper.
So, here it is:
Http://xmlRant.com14 -
Spent weekend building DevRant Api Wrapper in Python.
Link: https://github.com/aayush26/pirant
How to Install(tested in Python 2.7):
sudo python -m pip install pirant==0.1.3.dev1
Currently, only features to getRants. More features coming soon....29 -
!$rant
Playing around with pxgamer's php wrapper for the devrant api and was able to display my devrants avatar image in my portfolio project :D7 -
Why the fuck does your API have to send 401 when the server is down.
Just spent an hour thinking something was wrong with my auth wrapper.3 -
Just a reminder for anyone that wants to use the devRant API for .NET. I made a C# wrapper that people might find useful: https://github.com/redrails/...
Not sure why it's not on the devRant projects page but feel free to use it and contribute 🙂 🙂7 -
I don't know if I'm being pranked or not, but I work with my boss and he has the strangest way of doing things.
- Only use PHP
- Keep error_reporting off (for development), Site cannot function if they are on.
- 20,000 lines of functions in a single file, 50% of which was unused, mostly repeated code that could have been reduced massively.
- Zero Code Comments
- Inconsistent variable names, function names, file names -- I was literally project searching for months to find things.
- There is nothing close to a normalized SQL Database, column ID names can't even stay consistent.
- Every query is done with a mysqli wrapper to use legacy mysql functions.
- Most used function is to escape stirngs
- Type-hinting is too strict for the code.
- Most files packed with Inline CSS, JavaScript and PHP - we don't want to use an external file otherwise we'd have to open two of them.
- Do not use a package manger composer because he doesn't have it installed.. Though I told him it's easy on any platform and I'll explain it.
- He downloads a few composer packages he likes and drag/drop them into random folder.
- Uses $_GET to set values and pass them around like a message contianer.
- One file is 6000 lines which is a giant if statement with somewhere close to 7 levels deep of recursion.
- Never removes his old code that bloats things.
- Has functions from a decade ago he would like to save to use some day. Just regular, plain old, PHP functions.
- Always wants to build things from scratch, and re-using a lot of his code that is honestly a weird way of doing almost everything.
- Using CodeIntel, Mess Detectors, Error Detectors is not good or useful.
- Would not deploy to production through any tool I setup, though I was told to. Instead he wrote bash scripts that still make me nervous.
- Often tells me to make something modern/great (reinventing a wheel) and then ends up saying, "I think I'd do it this way... Referes to his code 5 years ago".
- Using isset() breaks things.
- Tens of thousands of undefined variables exist because arrays are creates like $this[][][] = 5;
- Understanding the naming of functions required me to write several documents.
- I had to use #region tags to find places in the code quicker since a router was about 2000 lines of if else statements.
- I used Todo Bookmark extensions in VSCode to mark and flag everything that's a bug.
- Gets upset if I add anything to .gitignore; I tried to tell him it ignores files we don't want, he is though it deleted them for a while.
- He would rather explain every line of code in a mammoth project that follows no human known patterns, includes files that overwrite global scope variables and wants has me do the documentation.
- Open to ideas but when I bring them up such as - This is what most standards suggest, here's a literal example of exactly what you want but easier - He will passively decide against it and end up working on tedious things not very necessary for project release dates.
- On another project I try to write code but he wants to go over every single nook and cranny and stay on the phone the entire day as I watch his screen and Im trying to code.
I would like us all to do well but I do not consider him a programmer but a script-whippersnapper. I find myself trying to to debate the most basic of things (you shouldnt 777 every file), and I need all kinds of evidence before he will do something about it. We need "security" and all kinds of buzz words but I'm scared to death of this code. After several months its a nice place to work but I am convinced I'm being pranked or my boss has very little idea what he's doing. I've worked in a lot of disasters but nothing like this.
We are building an API, I could use something open source to help with anything from validations, routing, ACL but he ends up reinventing the wheel. I have never worked so slow, hindered and baffled at how I am supposed to build anything - nothing is stable, tested, and rarely logical. I suggested many things but he would rather have small talk and reason his way into using things he made.
I could fhave this project 50% done i a Node API i two weeks, pretty fast in a PHP or Python one, but we for reasons I have no idea would rather go slow and literally "build a framework". Two knuckleheads are going to build a PHP REST framework and compete with tested, tried and true open source tools by tens of millions?
I just wanted to rant because this drives me crazy. I have so much stress my neck and shoulder seems like a nerve is pinched. I don't understand what any of this means. I've never met someone who was wrong about so many things but believed they were right. I just don't know what to say so often on call I just say, 'uhh..'. It's like nothing anyone or any authority says matters, I don't know why he asks anything he's going to do things one way, a hard way, only that he can decipher. He's an owner, he's not worried about job security.13 -
I've released my unofficial C# wrapper for the devRant public API. Feel free to check it out and contribute if you would like! Feedback is appreciated.
https://github.com/redrails/...1 -
It's been a while since i update you all on my devRant projects but i have some updates to share with you on my API wrapper...
- added avatars api
- added searchTags api
- added storyRants api
- numerous tweaks
http://github.com/nblackburn/... -
If anyone here is a ruby dev, I've built out a wrapper for the devRant api which allows you to integrate devRant into your ruby projects easily.
Check it out here: https://github.com/alexdovzhanyn/... if you're interested. (And please report any issues if you come across them)3 -
Not a rant, but i'm proud of myself :3
to make a long story short, i wanted a wrapper for a api (https://esi.evetech.net), but there were none that were updated or actively maintained, so i built my own. the first version had all the non-authed endpoints, and 2 days ago i finally got all the authed endpoints, plus added in features like a config file (for storing the token and project name) :D
I'm one happy fox rn!8 -
To be honest I forgot completely about the ducks and was kind of disappointed to see them, don't understand me wrong, its a great addition to the shop (especially to support devrant more when buying them and I will probably do too) and trogus (wow it's pronounced t-rogus) deserves a lot of respect for going through the very hard process of developing it, getting somebody to do a decent quality result etc. but I was hoping for the new site that got hyped up some time ago or some update to the app that fixes design issues on phones that have 2k resolution and no statusbar and more. ("just open a github issue" - I don't have one right now and it didn't get much attention anyway, since I am in the niche of people with those kind of setups, most people it seems have phones that can even barely run the app lol). The login still pops up each time you visit the site (basically just click it away, but it's rather annoying to have it pop up), it's nowhere near to the original app (although the native app is written in some sort of wrapper anyway?) - especially what comes to options, customizing, deactivating things, posting into categories (newest feature), getting notifications etc
There is some community builds that try to recreate a better desktop experience, but sadly fail to do so (sorry to devrantron and others, but what the fuck were you thinking when you rounded only the top right and left corner?) - since they always have something that is just thrown out to "be there" or design fails (which devrant just lacks and looks good across the board), that makes me rather cautious if that program doesn't send my credentials to some african prince. ("just look at the sourcecode", yes I have better things to do, thanks)
I could just create my own build, having to reverse engineer the whole website and app (granted, most of it are just api calls), but I simply lack the time (so I understand why my mentioned problems aren't getting really any attention or can't be implemented that fast, yet still its somewhat bugging)
I have listened to the Q&A and I know you guys are working full time at for example adobe (amazing that you both have time to be putting it towards devrant), so its not as much of a rant, just wanted to get out my disappointment about the event I felt personally. Still nice to have seen you and talk with the community a bit (although the time I feel was picked more towards your US audience rather than EU?).3 -
I was talking to a friend about the current state of machine learning through tensorflow and commented about the use of Javascript as a language.
He discarded the idea as he views Javascript as something that should only be used as a frontend technology rather than something to build backends or deep learning models.
I am thorn. I have always liked Javascript but will admit that I have used it mostly in the area of front end with very few backend instances(i did create a full stack intranet app in Express once, major success for the application it was hosting, it was a very basic api which had its own nosql db with no need to interact with the company's relational data, it was perfect for the occasion and still help maintaining it from time to time)
My boi states that node's biggest issue has always been npm and the quality of packages. I always contradict those statements by saying that if one uses community standards and the best packages then one does not need to worry about the quality(i.e mongoose over some unmaintained mongo wrapper etc)
I sometimes catch myself finding that my way of thinking adapts better to JS than it even does Python (which is his preference for deep learning) and whilst there are some beastly packages for python in terms of quality and usefulness such as matplotlib etc that one can do great things with the equivalent JS.
I mean, tensorflow.js came from the same wizards that did tensorflow (obviously) and i find the functional approach of JS to be more on par with how we develop solutions.
I am no deep learning expert, and sadly I have no professional experience with machine learning. But I venture to say that we should not cast aside the great strides that the JS community has done to the language in terms of evolution and tooling. Today's Js is not your grandaddy's Js and thinking that the language is crippled because of early iterations of the language would be severely biased.
What do you guys(maybe someone with professional experience) think of Js as a language for machine learning?
Do you think the language poses something worth considering in terms of tooling and power for ml?2 -
¡rant|rant
Nice to do some refactoring of the whole data access layer of our core logistics software, let me tell an story.
The project is around 80k lines of code, with a lot of integrations with an ERP system and an sql database.
The ERP system is old, shitty api for it also, only static methods through an wrapper to an c++ library
imagine an order table.
To access an order, you would first need to open the database by calling Api.Open(...file paths) (yes, it's an fucking flat file type database)
Now the database is open, now you would open the orders table with method Api.Table(int tableId) and in return you would get an integer value, the pointer.
Now for the actual order. first you need to search for it by setting the search parameter to the column ID of the order number while checking all calls for some BS error code
Api.SetInt(int pointer, int column, int query Value)
Then call the find method.
Api.Find(int pointer)
Then to top this shitcake of an api of: if it doesn't find your shit it will use the "close enough" method of search.
And now to read a singe string 😑
First you will look in the outdated and incorrect documentation given to you from the devil himself and look for the column ID to find the length of the column.
Then you create a string variable with ALL FUCKING SPACES.
Now you call the Api.GetStr(int pointer, int column, ref string emptyString, int length)
Now you have passed your poor string to the api's demon orgy by reference.
Then some more BS error code checking.
Now you have read an string value 😀
Now keep in mind to repeat these steps for all 300+ columns in the order table.
News from the creators: SQL server? yes, sql is good so everything will be better?
Now imagine the poor developers that got tasked to convert this shitcake to use a MS SQL server, that they did.
Now I can honestly say that I found the best SQL server benchmark tool. This sucker creams out just above ~105K sql statements per second on peak and ~15K per second for 1.5 second to read an order. 1.5 second to read less than 4 fucking kilobytes!
Right at that moment I released that our software would grind to an fucking halt before even thinking about starting it. And that me & myself and I would be tasked to fix it.
4 months later and two weeks until functional beta, here I am. We created our own api with the SQL server 😀
And the outcome of all this...
Fixes bugs older than a year, Forces rewriting part of code base. Forces removal of dirty fixes. allows proper unit and integration testing and even database testing with snapshot feature.
The whole ERP system could be replaced with ~10 lines of code (provided same relational structure) on the application while adding it to our own API library.
Best part is probably the performance improvements 😀. Up to 4500 times faster and 60 times less memory usage also with only managed memory.3 -
Recently, I have planned out my weekends to learn new stuffs.
And guess what, since I needed a project to start with, I have taken devrant related projects.
Example: Writing a python library as devrant api wrapper.
I have few other stuffs to learn too which I will begin once I finish this. That too most probably will also have some relationship with DevRant.. -
Pretty much Python automation on steroids.
https://github.com/konradhalas/...
Dacite is an integral part in it, cause it makes most auto generated API wrappers like Cloudflare API "maintenable".
Getting dicts, converting via Dacite to defined data classes...
Then using TOML to define e.g. output parameters (e.g. list of classes / properties one needs)...
... To export them via Pandas to anything what one needs.
It's just so comfortable.
Definining data classes, sprinkle the API calls and dacite in it, some definition via TOML, done.
Yes, lots of dark vodoo / behind the scenes magic... But ... It removes all this annoying fucked up boilerplate writing that takes ages and makes it frustrating.
As long as the data wrapper (e.g. clousflare API) generates Dicts, its really minutes to get an export working.
If you know the pain of having to deal with multiple accounts, different formats (e.g. different companies)… hours of manual copy pasting to aggregate the data etc.
Then you can maybe understand why I love this so much.
Data classes and dacite makes painful confusing workflows so much nicer and self documenting, I get wet in my pants while writing this. :) -
Created a wrapper of a wrapper for DevRant API specifically to create Bots.
https://github.com/theabbie/...
Built-in Support for DevRant bot Registry.
https://devrant.com/collabs/...
Making bots will be much easier now.10 -
*cloning and building this other team's Android project*
"install API 21, current is 23" K
"needs gradle wrapper 2.2, you have 2.10" umm, OK
"this project is using gradle 1.2.3, current is 2.1.1". (ノ-_-)ノ~┻━┻ -
I'm making a devRant API wrapper for Dart. The point? None! Just to get better at the language and mostly make my own life easier. Open source or not, seems like I'll be the only one to use it. Or am I? Is anyone else (I know ewpratten is) using Dartlang?7
-
I'm fixing our wrapper for API calls. The typescript for it was nice and simple, except that halfway through it casted almost everything as `any` and then hand-typed the expected return type :)))
Took me almost two weeks to work through that wretched piece of code, I managed to get the types actually correct... but now it started to catch incorrect calls, so I have to go through quite a lot of files to fix the references. But the worst part?
Now it breaks unit tests.
Turns out, multiple frontend unit tests DID NOT MOCK API CALLS AT FUCKJNG ALL HGGHGGHHHHHH. I WONDER WHY THE TESTS WERE TAKING SO FUCKING LONG TO RUN. I AM FUCKING FROTHING AT MOUTH AND I MIGHT NEED TO BE PUT DOWN OR I WILL START BITING PEOPLE3 -
So, I've decided I'm going to completely redo my Discord Bot. I will probably still use Node.js to program it, but I haven't 100% decided yet. If I do use Node.js, I will probably end up using a different Discord API wrapper for it. I also don't know what I'm going to call the bot. NoVegBot 2.0 sounds too boring, but idk.2
-
I always end up building my own wrapper using the REST API rather than using the already existing SDKs to just avoid going through the docs!
-
I'm not sure if I'd say I'm "deeply inspired" but I spent more time coding a personal project this week than I've spent on any other project in a similar timeframe for the past several years. All because I wanted to build a personal dashboard/startpage that queries the APIs of a couple of MMOs I play and displays it nicely on a grid of cards.
I wrote my own API wrapper, built a Flask site for the first time in years, tried out a few things I've never done before, and stuffed the whole thing in a docker container.
I'm no web developer (my job is more about the infrastructure than the web apps which run on it) so I'm learning a lot just through trial and error and it's actually kind of fun. -
Can I just say, fuck app wrappers.
Why? Well let me tell you the story of cordova.
My plan was to make a leaderboard kind of thing for the tablesoccer we do at the place I'm interning at.
How it would work:
app -> create game -> API -> live feed
Buttons (flic) -> API
API -> RTU -> live feed
They use Symfony internally and externally, so that was my first go to.
I couldn't find any way to do Symfony that can do RTU without running another service.
As they really want an app but it's not their core domain I looked around for options for wrappers and decided to put RTU on the backburner.
Setting up cordova was slightly annoying but was okay. I got to building the base app.
Then I thought, maybe let's get RTU working with cordova. Looked at the options that were available. Decided to check out socketio since it had an tutorial for cordova. Tried it and it didn't work. Went over the whole internet but nobody seems to have a solution that works (the most recent post being 2017)
So I thought, let's get websockets to work instead, but again. Seems like O just can't get it to work.
So, guess what I'm going to do?
AJAX ever 1 second to the API.
Why the hell does RTU have to be so hard cordova. You are the only open source wrapper that's both multiplatform and easy to set up. Why can't you just work...
I might just call it quits on the app and just make a mobile friendly website instead.. Where socketio and websockets just work. As does SSE..
I'm tired, so sorry for the rambling I hope somebody can make sense of this mess. -
So I was planning to use an REST API wrapper library and I included into my app spent over an hour working my logic... No errors... but then when I compile... I get a FUCKING DEPENDENCY COMPATIBILITY ERROR.... My NET Framework app isn't compatible with NET Standard libraries??? WTF.....
-
I'm trying to stand up a docker container to read a storage queue with dotnet and invoke ffmpeg to convert some videos. For a whole day I fought with this wrapper (FFMpegCore) which kept throwing file not found errors on the ffmpeg binary itself. Locally (windows) it worked fine.
I spent a ton of time trying to install the Debian package, trying to add it to the path manually, trying to just use the wrapper just to generate the arguments I wanted (I'm not an ffmpeg pro, so the fluent API the wrapper has is super useful) and running it manually, nothing worked. Finally, I realized it wasn't getting to the part where I ran it manually: just using the fluent API to get the arguments was invoking ffmpeg and throwing.
I took away the wrapper completely, start ffmpeg manually and it works...
Ay carumba. Things just can't be easy.2 -
i am indeed working for some fun litte projects with the Dev Rant Unofficial Wrapper API and it looks good to use it! Now. Lets make some Action!2
-
Using a library that is a wrapper around an API, seems to work fine and I can connect to the api with my credentials.
Cue me, a responsible dev, wanting to use Dependency Inversion using the library's interfaces so that I can mock them easily in tests.
var test lib.IObjectManager = lib.ObjectManager{}
Error: Return type of method 'GetA' is A and should be 'B' according to the interface!
Error: Return type of method 'GetE' is *E and should be 'E' according to the interface!
Clearly nobody ever tried to use that interface :/ -
So I get an internship and I am obviously very happy about it.
First day at work and I get a brief idea of what my project is and it was related to machine learning with tensorflow which I have experience with.
Come tensorflow lite and NN api, my job is now to convert tensorflow model into tfLite and use NN api whichpart of NDK and I have 0 clue about it.
So I obviously go to documentation and read up about it. Goes to Google sample to checkout NNAPI example and I freak out looking at the no of files and the code cuz. Wtf are these JAVA CPP WRAPPER AND NATIVE CODE .HOW DO I EVEN START WRITING CODE FOR IT. WHERE DO I BEGIN. HOW DO I USE NDK WITH THIS. THERE ARE NO OTHER EXAMPLES ON THIS REEEEEEEE
Legit feel like quitting already2 -
The one I use the most often is the AWS API (usually via a wrapper like boto3), but I hate it so it's not my favorite.
Ive been playing with the Bungie.Net API for a while, with the end goal of building some kind of dashboard for information about the various weekly events and such in Destiny 2. I guess that's currently my favorite. -
I was working with integrating GAMADV-X (python wrapper for google gsuite) with google spreadsheet, which gives limited api calls (around 100 calls) per day.
So I was syncing the users in the spreadsheet and google group users (more than 100 or so).
I used up my daily quota -_-.
Funny thing is I knew when I wrote the code and when I fucking ran it that I will overuse the api call limit.
It slowly triggered to me that I can't work on this project until next day and the first thing that came to my mind
'me dense mother fucker' -
Going through another department's API documentation and wrapper library where it has documented samples on how to use it. One of the samples specifically shows how to disable HTTPs requests for when retrieving customer info but it also states in the documentation to specifically NOT USE this disable function.
When it comes to customer info, I don't know why the fuck you would allow an override option to do everything over unsecure requests, and even document about it! -
!!rant && !documentation
Hm, let's see what a semi-beginner can find as a project in Python...
Oh, an API Wrapper seems interesting! *full of joy*
Okay, let's look at the documentation...
HOLY FUCKING SHIT. IT IS UGLY. IT IS INCONSISTENT. IT IS INCOMPLETE AND WRONG. WHY THE FUCK, AREN'T YOU STUPID ASSHOLES CAPABLE OF WRITING DOCUMENTATION FOR YOUR API?
HMMMMMM?
YOU STACK OF SHIT.
IF YOU HAPPEN TO CREATE AN API, AND DONT DOCUMENT IT CAREFULLY, I WILL FIND YOU.
AND KILL YOU.1 -
So i'm workin on a wrapper for an api, and it has authenticated endpoints. My request function has a check to see if the user has a token before making the authed request, but guess who forgot to actually mark like 20-40 different methods as authed : D2
-
!rant
I have a personal dilemma. I'm creating an API wrapper for a small project, and I ran out of API requests. I "requested" the owner to grant me more to keep testing the wrapper.
He tells me that I either need to pay for more or code better. I don't know if I should keep going or just tell him to off himself.4 -
One of the worst practices in programming is misusing exceptions to send messages.
This from the node manual for example:
> fsPromises.access(path[, mode])
> fsPromises.access('/etc/passwd', fs.constants.R_OK | fs.constants.W_OK)
> .then(() => console.log('can access'))
> .catch(() => console.error('cannot access'));
I keep seeing people doing this and it's exceptionally bad API design, excusing the pun.
This spec makes assumptions that not being able to access something is an error condition.
This is a mistaken assumption. It should return either true or false unless a genuine IO exception occurred.
It's using an exception to return a result. This is commonly seen with booleans and things that may or may not exist (using an exception instead of null or undefined).
If it returned a boolean then it would be up to me whether or not to throw an exception. They could also add a wrapper such as requireAccess for consistent error exceptions.
If I want to check that a file isn't accessible, for example for security then I need to wrap what would be a simple if statement with try catch all over the place. If I turn on my debugger and try to track any throw exception then they are false positives everywhere.
If I want to check ten files and only fail if none of them are accessible then again this function isn't suited.
I see this everywhere although it coming from a major library is a bit sad.
This may be because the underlying libraries are C which is a bit funky with error handling, there's at least a reason to sometimes squash errors and results together (IE, optimisation). I suspect the exception is being used because under the hood error codes are also used and it's trying to use throwing an exception to give the different codes but doesn't exist and bad permissions might not be an error condition or one requiring an exception.
Yet this is still the bane of my existence. Bad error handling everywhere including the other way around (things that should always be errors being warnings), in legacy code it's horrendous.6 -
I just love when an API returns a set of results, some have property X as a string and some as a JSON array. Wtf? Good people had put great API wrappers and it works if X is string as per service specification, but breaks otherwise, unsurprisingly.
I had to do a pull request to the wrapper repository to account for this inconsistency 😶3 -
Okay I usually like Swift, but why did they have to make parsing JSON such a pain in the ass?? You have to loop through every child collection and should give up the type that it should be. Obviously you could work around this by writing some sort of wrapper but if I want to do a simple request to an API it results it so much unnecessary code.1
-
Tried building my first npm module, which is just a wrapper for voice API that supports Angular 4+ Applications. Please check and share your feedback which helps me to improve it.
https://npmjs.com/package/... -
!rant
Right now i'm working as a volunteer developer for a discord server. I've recently been learning JDA (a Discord API java wrapper) and I wanted to get some experience in a more real world environment by working on a Discord Bot. What a mistake
The owner of the server has written some pretty messy, but solid code, and I was asked to build as sort of “punishment system” (warns, kicks, mutes, bans, all of which timed). It started off fine, me doing some work, getting some critic, all good. Soon, it started to get worse. At every point of the way, while i’m working I have him trying to make me add new features, and change massive existing ones even after i’ve done them and moved on with his permission! I keep telling him, “it’s a work in progress, please wait”, but it never stops.
I’m planning to resign, but I have to continue to dodge him and his “suggestions” as I simply want to finish my work, and get out. The reason I need to avoid his as, I feel that if I was to alert him I was to leave in advance, things would only get worse in the time while I stayed.
:/5 -
@dfox @trogus is there an api available? I know there are some wrapper frameworks, like "drs" by @ewpratten but I don't know if it's meant to be used by other "unregistered" apps.2
-
Has anyone here done any serious coding in Rust? I'm attempting to make a Salesforce API wrapper using it and it's both awesome and super difficult to wrap my head around
-
i am feeling angry and frustrated. not sure if it's a person ,or codebase or this bloody job. i have been into the company for 8 months and i feel like someone taking a lot of load while not getting enough team support to do it or any appreciation if i do it right.
i am not a senior by designation, but i do think my manager and my seniors have got their work easy when they see my work . like for eg, if on first release, they told me that i have to update unit tests and documentation, then on every subsequent release i did them by default and mentioning that with a small tick .
but they sure as hell don't make my work easy for me. their codebase is shitty and they don't give me KT, rather expect me to read everything on my own, understand on my own and then do everything on my own, then raise a pr , then merge that pr (once reviewed) , then create a release, then update the docs and finally publish the release and send the notification to the team
well fine, as a beginner dev, i think that's a good exercise, but if not in the coding step, their intervention would be needed in other steps like reviewing merging and releasing. but for those steps they again cause unnecessary delay. my senior is so shitty guy, he will just reply to any of my message after 2-3 hours
and his pr review process is also frustrating. he will keep me on call while reviewing each and every file of my pr and then suggest changes. that's good i guess, but why tf do you need to suggest something every fucking time? if i am doing such a shitty coding that you want me to redo some approach that i thought was correct , why don't you intervene beforehand? when i was messaging you for advice and when you ignored me for 3 hours? another eg : check my comment on root's rant https://devrant.com/rants/5845126/ (am talking about my tl there but he's also similar)
the tasks they give are also very frustrating. i am an android dev by profession, my previous company was a b2c edtech app that used kotlin, java11, a proper hierarchy and other latest Android advancements.
this company's main Android product is a java sdk that other android apps uses. the java code is verbose , repetitive and with a messed up architecture. for one api, the client is able to attach a listener to some service that is 4 layers down the hierarchy , while got other api, the client provides a listener which is kept as a weak reference while internal listeners come back with the values and update this weak reference . neither my team lead nor my seniors have been able to answer about logic for seperation among various files/classes/internal classes and unnecessary division of code makes me puke.
so by now you might have an idea of my situation: ugly codebase, unavailable/ignorant codeowners (my sr and TL) and tight deadlines.
but i haven't told you about the tasks, coz they get even more shittier
- in addition to adding features/ maintaining this horrible codebase , i would sometimes get task to fix queries by client . note that we have tons of customer representatives that would easily get those stupid queries resolced if they did their job correctly
- we also have hybrid and 3rd party sdks like react, flutter etc in total 7 hybrid sdks which uses this Android library as a dependency and have a wrapper written on its public facing apis in an equally horrible code style. that i have to maintain. i did not got much time/kt to learn these techs, but once my sr. half heartedly explained the code and now every thing about those awful sdls is my responsibility. thank god they don't give me the ios and web SDK too
- the worst is the shitty user side docs. I don't know what shit is going there, but we got like 4 people in the docs team and they are supposed to maintain the documentation of sdk, client side. however they have rasied 20 tickets about 20 pages for me to add more stuff there. like what are you guys supposed to do? we create the changelog, release notes , comments in pr , comments in codebase , test cases, test scenarios, fucking working sample apps and their code bases... then why tf are we supposed to do the documentation on an html based website too?? can't you just have a basic knowledge of running the sample, reading the docs and understand what is going around? do i need to be a master of english too in addition to being a frustrated coder?
just.... fml -
!Rant
So guys , there is no other place to ask this question.
I'm thinking about making a Python wrapper for the devrant API . There isn't much info on the web.
I'm really stuck guys , how do I go about doing it .
Thanks2 -
Hey everyone!
I'm thinking of building an open-source React Native app for DevRant just as a fun project. I came across an unofficial API documentation and also a wrapper.
https://devrant-docs.github.io/
https://github.com/danillouz/...
If anyone has used these, kindly let me know your experience and which one is better.
PS: I have no intention to publish or earn money from this project. Anyone who is interested can jump into the project and help in making it better. If enough people want to use it, I can compile an apk/ipa for people to download later on.devrant react native devrant app open source community project community app github android devrant api ios -
Anyone have some good books or websites on different types of resource-fetching (lazy-loading, eager loading, explicit loading, etc...)? I'm refactoring an API wrapper and i cant seem to figure out what i want to do with the API... It's extremely slow and unreliable, however i have to use it.2