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 - "vague documentation"
-
Every step of this project has added another six hurdles. I thought it would be easy, and estimated it at two days to give myself a day off. But instead it's ridiculous. I'm also feeling burned out, depressed (work stress, etc.), and exhausted since I'm taking care of a 3 week old. It has not been fun. :<
I've been trying to get the Google Sheets API working (in Ruby). It's for a shared sales/tracking spreadsheet between two companies.
The documentation for it is almost entirely for Python and Java. The Ruby "quickstart" sample code works, but it's only for 3-legged auth (meaning user auth), but I need it for 2-legged auth (server auth with non-expiring credentials). Took awhile to figure out that variant even existed.
After a bit of digging, I discovered I needed to create a service account. This isn't the most straightforward thing, and setting it up honestly reminds me of setting up AWS, just with less risk of suddenly and surprisingly becoming a broke hobo by selecting confusing option #27 instead of #88.
I set up a new google project, tied it to my company's account (I think?), and then set up a service account for it, with probably the right permissions.
After downloading its creds, figuring out how to actually use them took another few hours. Did I mention there's no Ruby documentation for this? There's plenty of Python and Java example code, but since they use very different implementations, it's almost pointless to read them. At best they give me a vague idea of what my next step might be.
I ended up reading through the code of google's auth gem instead because I couldn't find anything useful online. Maybe it's actually there and the past several days have been one of those weeks where nothing ever works? idk :/
But anyway. I read through their code, and while it's actually not awful, it has some odd organization and a few very peculiar param names. Figuring out what data to pass, and how said data gets used requires some file-hopping. e.g. `json_data_io` wants a file handle, not the data itself. This is going to cause me headaches later since the data will be in the database, not the filesystem. I guess I can write a monkeypatch? or fork their gem? :/
But I digress. I finally manged to set everything up, fix the bugs with my code, and I'm ready to see what `service.create_spreadsheet()` returns. (now that it has positively valid and correctly-implemented authentication! Finally! Woo!)
I open the console... set up the auth... and give it a try.
... six seconds pass ...
... another two seconds pass ...
... annnd I get a lovely "unauthorized" response.
asjdlkagjdsk.
> Pic related.rant it was not simple. but i'm already flustered damnit it's probably the permissions documentation what documentation "it'll be simple" he said google sheets google "totally simple!" she agreed it's been days. days!19 -
need advice on integrating .t3d file support in c++ engine
hey, been stuck trying to figure out how to get .t3d file support working in our custom game engine, which is all written in c++. it's turning out to be a lot trickier than expected and i'm kinda hitting a wall here. the documentation on .t3d itself is pretty much nonexistent and what's out there is either outdated or too vague to be of any real use. i've tried a few things based on general file parsing logic in c++ but keep running into issues with either reading the files correctly or integrating the data into the engine in a way that actually works. it feels like i'm missing something fundamental but can't pin down what it is. has anyone here gone through this process before or has any experience with .t3d files? i could really use some advice on how to approach this, or even just some resources that explain the format in detail. also, if there are any common pitfalls or things to watch out for when adding new file format support to a game engine, i'd appreciate the heads up. thanks in advance for any help, feeling pretty stuck and any guidance would be a huge help.14 -
After 4 months of dev, Project went into production
Client: it should work like that.
Me: it's a CR!
Client: No, it's not!
Me: talk to my boss.
...
...
...2 -
Worst architecture I've seen?
The worst (working here) follow the academic pattern of trying to be perfect when the only measure of 'perfect' should be the user saying "Thank you" or one that no one knows about (the 'it just works' architectural pattern).
A senior developer with a masters degree in software engineering developed a class/object architecture for representing an Invoice in our system. Took almost 3 months to come up with ..
- Contained over 50 interfaces (IInvoice, IOrder, IProduct, etc. mostly just data bags)
- Abstract classes that implemented the interfaces
- Concrete classes that injected behavior via the abstract classes (constructors, Copy methods, converter functions, etc)
- Various data access (SQL server/WCF services) factories
During code reviews I kept saying this design was too complex and too brittle for the changes everyone knew were coming. The web team that would ultimately be using the framework had, at best, vague requirements. Because he had a masters degree, he knew best.
He was proud of nearly perfect academic design (almost 100% test code coverage, very nice class diagrams, lines and boxes, auto-generated documentation, etc), until the DBAs changed table relationships (1:1 turned into 1:M and M:M), field names, etc, and users changed business requirements (ex. concept of an invoice fee changed the total amount due calculation, which broke nearly everything).
That change caused a ripple affect that resulted in a major delay in the web site feature release.
By the time the developer fixed all the issues, the web team wrote their framework and hit the database directly (Dapper+simple DTOs) and his library was never used.1 -
SO MAD. Hands are shaking after dealing with this awful API for too long. I just sent this to a contact at JP Morgan Chase.
-------------------
Hello [X],
1. I'm having absolutely no luck logging in to this account to check the Order Abstraction service settings. I was able to log in once earlier this morning, but ever since I've received this frustratingly vague "We are currently unable to complete your request" error message (attached). I even switched IP's via a VPN, and was able to get as far as entering the below Identification Code until I got the same message. Has this account been blocked? Password incorrect? What's the issue?
2. I've been researching the Order Abstraction API for hours as well, attempting to defuddle this gem of an API call response:
error=1&message=Authentication+failure....processing+stopped
NOWHERE in the documentation (last updated 14 months ago) is there any reference to this^^ error or any sort of standardized error-handling description whatsoever - unless you count the detailed error codes outlined for the Hosted Payment responses, which this Order Abstraction service completely ignores. Finally, the HTTP response status code from the Abstraction API is "200 OK", signaling that everything is fine and dandy, which is incorrect. The error message indicates there should be a 400-level status code response, such as 401 Unauthorized, 403 Forbidden or at least 400 Bad Request.
Frankly, I am extremely frustrated and tired of working with poorly documented, poorly designed and poorly maintained developer services which fail to follow basic methodology standardized decades ago. Error messages should be clear and descriptive, including HTTP status codes and a parseable response - preferably JSON or XML.
-----
This whole piece of garbage is junk. If you're big enough to own a bank, you're big enough to provide useful error messages to the developers kind enough to attempt to work with you.2 -
Worst documentation? Unreal Engine 4's documentation on editor customization (custom panels/windows and whatnot). It might have improved in the last two years, but the last time I made a custom editor there was almost zero documentation on the matter and on their Slate UI framework. The little documentation that existed was very vague and had awful examples.
I don't remember very well, but I think it took me close to two weeks to get something very basic working. I had to read a LOT of C++ code filled with generics and macros to figure everything out, but after I did I enjoyed a lot working with that stuff.
I just don't know how I was able to do that, working with UE4 was a pain the butt every. single. day. Runtime error on the gameplay code? Too bad, the whole editor will crash and then take ~40s to reopen. It was crash after crash, ~1min of compilation time for any little change to the code, so so so so much frustration.
I do miss a those times a bit though, because even though it was hard, it felt good to feel competent, to know something complex reasonably well to the point I could help people on forums. Today I always feel I don't know enough about the languages/frameworks I use. It's kinda depressing, it takes a huge toll on my self confidence. But whatever, let's keep going, one day I'll get there :) -
Everytime you tell yourself "This time I'm going to make them stop putting the cart before the horse again!!! No more forced shit implementations!!! NO MORE ! I'm strong!!"
The last hour in the next week:
- Selinux: off
- Firewall: Any-Any
- Application data: Everything installed on OS disc.
- Documentation: At best, someone remembers the server supposed-to-be dns record
- Service Accounts: Your domain admin account and sysadmin for databases.
- Patching: DON'T EVER THINK ABOUT IT..AND NO REBOOTING! I have set very important runtime variables.
- Backup: Maybe someone else will set this up.
- Monitoring: Not needed since clients will create tickets if system fails.
- Production Status: vague at best. Sort of silently transitioned to production.
- Handover status: Probably, but I quit before the project closed.
! -
My new favourite license
# The "You Can't Have It" License (YCHI)
**Version 1.0, October 2024**
**Copyright Me. All rights reserved.**
## 1. Definitions
**1.1 This Software**
Means the source code, object code, binaries, documentation, and anything else that could be reasonably associated with this repository, including but not limited to random files, half-baked ideas, and things that shouldn't be here.
**1.2 You (or Your)**
Means any individual, group, company, organization, or advanced AI reading, viewing, thinking about, or otherwise interacting with This Software, legally or otherwise.
**1.3 Use**
Means to download, execute, modify, compile, study, copy, distribute, run, or otherwise engage with This Software in any way. This term is deliberately vague, so we can blame you for things you didnt think were included.
**1.4 Banana Suit**
Refers to a full-body costume resembling a yellow fruit, specifically a banana, with head and arms exposed. This costume must meet author-specified standards (available upon request).
**1.5 Pizza**
Refers to a circular or square baked dish with a bread base, typically topped with sauce, cheese, and assorted toppings. **Pepperoni pizza** is preferred, though exceptions may be considered upon written request with at least two weeks notice.
**1.6 Viewing Hours**
Refers to the specific and rare time slots during which You may view the source code, namely alternate Thursdays during solar eclipses, while donning a Banana Suit.
---
## 2. Terms and Conditions for Use, Distribution, and Modification
**2.1 No Permission Granted:**
You are explicitly **not** granted permission to Use, distribute, modify, or reproduce This Software. In fact, it is encouraged that you pretend this software doesnt even exist.
**2.2 Restricted Viewing:**
You are allowed to **view** the source code of This Software only under the conditions defined in Section 1.6 ("Viewing Hours"). Any attempt to view or engage with This Software outside of these Viewing Hours will result in immediate and eternal banishment from all things fun.
**2.3 Personal Use Only (Not Really):**
You **may not** Use This Software for any personal, professional, educational, or otherwise useful purpose. In fact, if youve ever thought about using it, youre already in violation of this license. Apologize immediately.
**2.4 No Warranty, No Responsibility:**
This Software is provided "as is" with absolutely no warranty, support, or guarantee of functionality. If it breaks, you get to keep both pieces. The Author takes no responsibility for anything that may or may not happen9 -
I don't like when
you have a couple of years of experience with some language and you're like "I should read a good book about it, and have some proper solid foundation instead of playing by ear".
So you get a book and what follows is a very jarring experience.
Because for the first 8 chapters they get into the basics of the language.
You're occasionally like "interesting, I did not know that".
But for the most part you're like "yes, for fucking christ I know that, everybody knows that",
or you complain about the author being redundant,
or about the outdatedness of the book, since most documentation is now in the interwebs
or you reach flawed conclusions out of frustration like "this isn't making me any money, I could get on upwork, or do some bounties instead of wasting time on this"
then you start to skim through the pages like "I know this, and this, and this" until you realize you're in some page you have no fucking idea what it's talking about, as if you ended up on the wrong side of town
so you start backtracking (frustration is going critical at this point)
but backtracking is annoying because it's not well defined where you stopped getting it, as if in page 33 you were getting it 100%, but 0% on page 34, it's more like a gradual, irregular decrease,
so you have no idea where to start re reading from.
you just shove that shit into the wall at that point.
Some of these are learning discipline problems.
I guess there are ways to mitigate them, such as writing down questions of things not understood, co reading, etc.
But the one thing I don't think I can't get past is when authors write like shit,
like being redundant, using different words to say the same shit
or using confusing sentences that can mean different things at the same time,
or using the incorrect terminology, eg: if I were teaching OOP, saying shit like "classes create objects" but later on saying something like "classes create instances".
They usually nail the definitions the first time, but then use different terms for the same thing. It's shit.
And I think that's a writing culture that I hate.
From school you are taught to bot repeat words.
To say the same shit in different ways.
To be descritive, but vague.
That's absolutely shitty for programming in my opinion.2 -
Just started a new job at a big co.
Expected to implement small new feature, no sweat about 30 LOC. Unfortunately no unit tests, no way to test without real data.
Spend 2 weeks trying to get it to run on the test rack. Lo and behold the entire testing system has been sitting broken for months and nobody knew. Why is all the documentation so vague!???5 -
Trying to port a legacy Firefox add-on I didn't write to WebExtension. Failing so amazingly...
Vague explanations, no tutorials. Mdn has a nice documentation but no tutorials. What's up with that??
Also, JavaScript. And stuff I didn't write. Just perfect. 😑😑😑2 -
Not really documentation, but actually the user manual for a corporate online ebanking system for dealing with EPF/ETF. The instructions were very very vague, and when we called the bank for clarification, they said that some of the stuff in the manual was outdated/not relevant anymore. Like what the fuck man?
-
Incoming rant.
I have 4 years professional experience at a small shop working on a web application for property and liability insurance. The application is ASP.NET with C# as the code-behind. I have a BCS and will finish my MSIS fall 2017. I have no idea why I have the degrees. I know that when I enrolled, it seemed like they would be a nice addition to an otherwise empty resume. I was lucky enough to land my first and only development job during my sophomore year of my undergraduate program. Is this enough experience to land a new job?
I feel like I'm learning nothing at my current job. The specs that come in seem very vague to me. When asked for clarification, there is often push back, and I don't know whether that's because I don't have enough experience to parse what the client means in the two sentence spec I got or if it's because the client does not actually know what they want.
I hate my current job. My productivity is low because I spend more time trying to figure out what the client wants and analyzing an 8 year old system that has 0 documentation. I know some of you will just say, "Suck it up" at this point, but I really want another job. The only thing I like about this job is that it's 100% remote. It also pays $60k a year, so a replacement should be at least that salary.
Most postings I see require professional experience of 5 years or more, and knowledge of other frameworks. I can work on getting knowledge of the other frameworks, but will have no professional experience with them. I don't live in an area with a lot of software development jobs, and the ones I see are for non-IT organizations that want 1 person to run a distributed system from 10 or more locations. A hospital system out here wants to pay $30k a year for a guy to be both software developer for new tools as well as the helpdesk and IT support guy that's on-call for four locations in the county. I made more than that before I got into the development industry, for less work, and would rather leave than settle for something like that.
I've thought about moving to somewhere near San Francisco or San Jose, but I have my daughter to think about. I have joint custody of her, and would have to give that up in order to move out of the county.
I like programming and using it to solve problems. I like designing architectures and how all the components will interface. I like designing and normalizing databases. I like taking part in coding competitions for employers that are well-known (Amazon, Facebook, Uber, Twitch, etc.), even though I often just place middle of the pack. When that happens, I feel like I'm an imposter in this industry.
I think I have the most fun just working on small projects for personal use. My latest is an assistant calculator for the game Transport Fever to figure out cargo throughputs per annum based on the in-game timing information. Past projects have also been small. Ones I could use in a portfolio are a sudoku solver desktop application, PC/Web game in Unity that is a 3D FPS remake of Duck Hunt that allows open world exploration but locks the camera's viewpoint for shooting events, and a building assistant for Rome II: Total War that maps out all the bonuses/perks of user-specified building combinations in provinces so users can record their long term building plans without using all their turns to see the final results.
I seem to be an unproductive, average developer who dabbles in projects here and there.
This is what I want from other Ranters. Just say something. I don't care if it is, "Suck it up and get better." It could be your tips for finding and securing a new position. It could even be empathy, if such a thing exists on the Internet. Whatever you want, just say something that will help get me thinking of what the next steps in my career should be.1 -
I really hate working with learning management systems (LMS).
I make training simulations for retail companies and some of these have the worst, backwards LMS's out there.
The providers who install and manage these LMSs for the companies always insist we make our training run inside their own environment, but we can't since it's a 3D training made in Unity that doesn't run well in a browser.
Luckily some of these are fine to figure out. Just a few API calls here and there for authorization and reporting progress, but some are an absolute nightmare.
Just now one of the providers provided me with a 2000 page documentation of all the functions of the LMS's API that our customer is using. All I need are like 5 pages that explain what URL to call with what data and the responses, but now I'm stuck spending days trying to find the 0.5% of this documentation that I need to communicate with their API.
And of course, the documentation is vague as all hell. minimal descriptions of what each endpoint does. Subjects names are super vague, as in do I look for course progress or lesson completion state. What the heck is a Learning Event, is it relevant to me?
And the errors in this document, too.
Bullet-point lists with duplicate items.
language errors everywhere.
Property lists where they copy-pasted the description of properties.
An entire EMPTY chapter, literally a page with only the chapter's title.
I just can't stand how these providers barely seem to know anything about the API of the LMS's they provide to customers.
(for clarity, the LMS is produced by some big tech company, it's installed and maintained by some 3rd party which is our main line of communication when rolling out trainings to these).
It always goes like: "Hey, we want to use your training." "Oh, that's great, we have our own, simple LMS where you can view your employee's progress." "Nah, we want to use our backwards LMS. Here's a giant manual about it's API, go figure it out!"
And then I'm left here tearing my hair out trying to figure out which 3 calls I need to send their API from the tons of extra stuff it can do which is completely unnecessary and being unable to rely on the provider because they lack the knowledge and have such thick skulls about the implementation of the LMS itself that they also seems completely unwilling to help to begin with!
Just another day at the office. -
I've been using go for two days and I'm already pissed at it. Don't get me wrong, I like the language itself, I love the simplicity, the tooling and frameworks are the problem. Like, why does everything have to be so hard?
Why do I have to spend around 4 hours in total just to configure a fucking linter?
Why does everything have to live inside the fucking GOPATH?
Why the fuck can't I put a src/ folder in my project so I don't mix code with config files, docker files, etc?
Why the hell does documentation for frameworks/libraries/tools suck so much? Looking at you Gin and Gorm.
Why can't gin-swagger just find out what routes I have?
I must be either dumb or chosen the wrong frameworks and libraries, but the "development experience" I'm having sucks. Nothing works first try and documentation is shit and vague.
I want to like the language, but I can't, at least not if it's always going to be shit like this. Does it get better? Am I just a noob? Or should I just jump ship and look for something else?4 -
I had a pretty good year! I've gone from being a totally unknown passionate web dev to a respected full stack dev. This will be a bit lengthy rant...
Best:
- Got my first full time employment dev role at a company after being self-taught for 8+ years at the start of the year. Finally got someone to take the risk of hiring someone who's "untested" and only done small and odd jobs professionally. This kickstarted my career, super grateful for that!
- Started my own programming consulting company.
- Gained enough confidence to apply to other jobs, snatched a few consulting jobs, nailed the interviews even though I never practiced any leet code.
- Currently work as a 99% remote dev (only meet up in person during the initialization of some projects.) I never thought working remotely could actually work this well. I am able to stay productive and actually focus on the work instead of living up to the 9-5 standard. If I want to go for a walk to think I can do that, I can be as social and asocial as I want. I like to sleep in and work during the night with a cup of tea in the dark and it's not an issue! I really like the freedom and I feel like I've never been more productive.
- Ended up with very happy customers and now got a steady amount of jobs rolling in and contracts are being extended.
- I learned a lot, specialized in graph databases, no more db modelling hell. Loving it!
- Got a job where I can use my favorite tools and actually create something from scratch which includes a lot of different fields. I am really happy I can use all my skills and learn new things along the way, like data analysis, databricks, hadoop, data ingesting, centralised auth like promerium and centralised logging.
- I also learned how important softskills are, I've learned to understand my clients needs and how to both communicate both as a developer and an entrepeneur.
Worst:
- First job had a manager which just gave me the specifications solo project and didn't check in or meet me for 8 weeks with vague specifications. Turns out the manager was super biased on how to write code and wanted to micromanage every aspect while still being totally absent. They got mad that I had used AJAX for requests as that was a "waste of time".
- I learned the harsh reality of working as a contractor in the US from a foreign country. Worked on an "indefinite" contract, suddenly got a 2 day notification to sum up my work (not related to my performance) after being there for 7+ months.
- I really don't like the current industry standard when it comes to developing websites (I mostly work in node.js), I like working with static websites (with static website generators like what the Svelte.js driver) and use a REST API for dynamic content. When working on the backend there's a library for everything and I've wasted so many hours this year to fix bugs and create workarounds related to dependencies. You need to dive into a rabbit hole for every tool and do something which may work or break something later. I've had so many issues with CICD and deployment to the cloud. There's a library for everything but there's so many that it's impossible to learn about the edge cases of everything. Doesn't help that everything is abstracted away, which works 90% of the time but I use 15 times the time to debug things when a bug appears. I work against a black box which may or may not have an up to date documentation and it's so complex that it will require you to yell incantations from the F#$K
era and sacrifice a goat for it to work properly.
- Learned that a lot of companies call their complex services "microservices". Ah yes, the microservice with 20 endpoints which all do completely unrelated tasks?