Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
Get a devDuck
Rubber duck debugging has never been so cute! Get your favorite coding language devDuckBuy Now
Search - "vendor problems"
Vendor says we're "spamming" their API. Look at screenshot - 16 calls in TEN FUCKING MINUTES is apparently creating too much load. 🖕
Oh how I wish I could put them on blast by name...2
Well, here's the OS rant I promised. Also apologies for no blog posts the past few weeks, working on one but I want to have all the information correct and time isn't my best friend right now :/
Anyways, let's talk about operating systems. They serve a purpose which is the goal which the user has.
So, as everyone says (or, loads of people), every system is good for a purpose and you can't call the mainstream systems shit because they all have their use.
Last part is true (that they all have their use) but defining a good system is up to an individual. So, a system which I'd be able to call good, had at least the following 'features':
- it gives the user freedom. If someone just wants to use it for emailing and webbrowsing, fair enough. If someone wants to produce music on it, fair enough. If someone wants to rebuild the entire system to suit their needs, fair enough. If someone wants to check the source code to see what's actually running on their hardware, fair enough. It should be up to the user to decide what they want to/can do and not up to the maker of that system.
- it tries it's best to keep the security/privacy of its users protected. Meaning, by default, no calling home, no integrating users within mass surveillance programs and no unnecessary data collection.
- Open. Especially in an age of mass surveillance, it's very important that one has the option to check the underlying code for vulnerabilities/backdoors. Can everyone do that, nope. But that doesn't mean that the option shouldn't be there because it's also about transparency so you don't HAVE to trust a software vendor on their blue eyes.
- stability. A system should be stable enough for home users to use. For people who like to tweak around? Also, but tweaking *can* lead to instability and crashes, that's not the systems' responsibility.
Especially the security and privacy AND open parts are why I wouldn't ever voluntarily (if my job would depend on it, sure, I kinda need money to stay alive so I'll take that) use windows or macos. Sure, apple seems to care about user privacy way more than other vendors but as long as nobody can verify that through source code, no offense, I won't believe a thing they say about that because no one can technically verify it anyways.
Some people have told me that Linux is hard to use for new/(highly) a-technical people but looking at my own family and friends who adapted fast as hell and don't want to go back to windows now (and mac, for that matter), I highly doubt that. Sure, they'll have to learn something new. But that was also the case when they started to use any other system for the first time. Possibly try a different distro if one doesn't fit?
Problems - sometimes hard to solve on Linux, no doubt about that. But, at least its open. Meaning that someone can dive in as deep as possible/necessary to solve the problem. That's something which is very difficult with closed systems.
The best example in this case for me (don't remember how I did it by the way) was when I mounted a network drive at boot on windows and Linux (two systems using the same webDav drive). I changed the authentication and both systems weren't in for booting anymore. Hours of searching how to unfuck this on windows - I ended up reinstalling it because I just couldn't find a solution.
On linux, i found some article quite quickly telling to remove the entry for the webdav thingy from fstab. Booted into a root recovery shell, chrooted to the harddrive, removed the entry in fstab and rebooted. BAM. Everything worked again.
So yeah, that's my view on this, I guess ;P32
TLDR: There’s truth in the motto “fake it till you make it”
Once upon a time in January 2018 I began work as a part time sysadmin intern for a small financial firm in the rural US. This company is family owned, and the family doesn’t understand or invest in the technology their business is built on. I’m hired on because of my minor background in Cisco networking and Mac repair/administration.
I was the only staff member with vendor certifications and any background in networking / systems administration / computer hardware. There is an overtaxed web developer doing sysadmin/desktop support work and hating it.
I quickly take that part of his job and become the “if it has electricity it’s his job to fix it” guy. I troubleshoot Exchange server and Active Directory problems, configure cloudhosted web servers and DNS records, change lightbulbs and reboot printers in the office.
After realizing that I’m not an intern but actually just a cheap sysadmin I began looking for work that pays appropriately and is full time. I also change my email signature to say “Company Name: Network Administrator”
A few weeks later the “HR” department (we have 30 employees, it’s more like “The accountant who checks hiring paperwork”) sends out an email saying that certain ‘key’ departments have no coverage at inappropriate times. I don’t connect the dots.
Two days later I receive a testy email from one of the owners telling me that she is unhappy with my lack of time spent in the office. That as the Network Administrator I have responsibilities, and I need to be available for her and others 8-5 when problems need troubleshooting. Her son is my “boss” who is rarely in the office and has almost no technical acumen. He neglected to inform her that I’m a part time employee.
I arrange a meeting in which I propose that I be hired on full time as the Network Administrator to alleviate their problems. They agree but wildly underpay me. I continue searching for work but now my resume says Network Administrator.
Two weeks ago I accepted a job offer for double my current salary at a local software development firm as a junior automation engineer. They said they hired me on with so little experience specifically because of my networking background, which their ops dept is weak in. I highlighted my 6 months experience as Network Administrator during my interviews.
My take away: Perception matters more than reality. If you start acting like something, people will treat you like that.3
I have been working 9 months as consultant for a company thru a vendor. The contract will finish in two weeks, the company want to continue working with me, I can't be hired directly, should be thru a vendor. The problem is that today I confirmed that this vendor bill the company the double and want me to sign again with them for the same rate, I can't switch to another vendor because there is a non-compete clause. What would you do in my case? I feel like that squirrel12
Attention: incomming resentful boiled up for months rant.
Hands down G2APAY is the worst because:
Merchant account aproval takes fcking months. It starts with unreasonable delays in documents approval. I mean insane nitpicking. They want to see merchants name surname and address on every god damn document that you submit even if for example bank statement doesnt include these details. I had to manually edit pdf’s just so that they would fck off and approve the merchant application. Insane requirements for document check also combined with their email only support answering only once a week you will have to wait one month just to get your account approved.
Then you get to the fun part, approval proccess for vendor gateway and webhook integration. They are nitpicking everything you can imagine: about website not having https, website forum missing some icons, merchants phone number being from another country then he is, and bunch of other hundreds of problems imagined only by them. Again combined with their one email reply per week policy you will waste atleast one month to finish up your integration.
Now finally you are their client and you think you can chill and go back to focusing on your business? Nope bro. Prepare for threatening emails. Last time I got a request to install https or my merchant application will be shut down. I was given 3 days notice on a fcking friday and had to do it.
Then g2a backend is crashing quite often. Combined with their one email per week policy you are fcked in the ass if your users were not able to pay through g2a and you will get no compensation.
Their backend documentation is shiet. Not clear how to integrate everything and after you integrate they make changes without publishing any changesets. Your integration is working? Good luck if it will still be working tomorrow.
And the very worst part is that they stopped proccessing credit cards like month ago with zero notice. Its been weeks and still zero news about bringing card proccessing back. They sad that they were acquired by some other company so shitty support got even shittier now while they are in a proccess of handover.
So yeah thats the worst vendor I have ever seen in my life. For example integrating paypal took me 30 minutes. Integrating stripe and getting all documents reviewed took me one business day. Same with paymentwall integration and document approval took 1 business day. Support is amazing and even have a phone number that I can reach if urgent problems arise. Thats how it should be. Thats why I can pay percentage of my transactions with a smile for them.
Sorry for the typos since im typing on my shiet phone while driving.
Eat a bag of dicks g2apay. I hope you go bankrupt and shutdown.21
Third party vendor whose shitty API we have to use as part of our application blocks our account IN PRODUCTION without even telling us every time they have a slowdown because of course it must be us. Yeah, I didn't want to go home anyway🖕1
When a vendor tells you you can't do certain things on their API because their database is not optimized, and then drops the bomb that doing a certain action that, when it happens to overlap with a completely different client doing the same action, causes their system to go down, you know it's a Tuesday that feels like it should be a Friday...
Whoo, 4 days into my new project, and a lot of mess already happening all over the place, in short, everyone in here consisted of the human population that fill up the average (and below) margin on everything (especially their IQ, seriously, by the time I finished telling this story, you'll wonder how the hell are these guys able to finish uni, not to mention working in IT)
Okay so, backstory, I was cut off from my previous project (the product was finally launched, but only a handful developers are kept to maintain & do enhancements, why wasn't I included? That's a story for another time), and I was sent to a new (shitty) project, by the order of the (shitty) manager, in the same institute, but different division, whom tries to copy paste everything the golden child (my previous project) has been doing, technology, environment, work culture, etc
And I'm faced with another react native application (let's call it project N), in which the team leader was so proudly explained to me, that it got released way earlier than my previous project (let's refer to it project X) even though X started a long time before they have any plan for N, N was passed down from a vendor to the internal devs whom has very little knowledge of react native, and I was supposed to "help" them with it
Day one, I learned a new english term for this, sinecure, nothing done on the first day, just introductions, a long boring meeting and got assigned to the project N, I did skim through the source code for a while, at a glance it looks like a student's assignment done overnight, reminds me of the first website I made, and this is supposed to be an app that handles monetary transactions,
Day 2, still no task given, due to their "end of sprint" session, 4 days of not having anything to work on, I analyzed the code further, and yep, it's rubbish,
- first, the code convention is shit, based on the git log, only 2 guys were working on this and neither of them had any standards with their coding, spaces, semicolons, indentations, everything is a mess, folder & file names and their placement too, not to mention redundancy everywhere, nothing is reusable, this is the first time I saw a react application that keeps defining & creating new components on every pages, and no documentation at all
- second is, the warnings, I was in awe with the disappearance of yellow warnings in the app since I found a bunch of yellow box errors on the debugger console, then I checked the main app.js file and lo and behold
console.disableYellowBox = true
Whoooo, a new breakthrough in software debugging, you won't find any potential bugs if you hide the warnings altogether, fuck, not even any config to diferentiate debugging & release environments (my last project had one)
Well worse is that ALL of the components doesn't have any proptype checking (prop is something like an attribute that is inherited from parent component to child component, CMIIW), and this cause for some issues that already happened a bit later,
- third, but not last, the software is buggy as hell, not to mention the flow & logic is messy as fuck, who the hell put a splash screen as it's own navigation entity,
After opening the app, splash screen is showing, then redirect to login page, and if user pressed back button while on login page, they'll be stuck on the splash screen, unable to navigate anywhere
Then, later that evening, one of the PO suddenly came to me and said something about telling him if I had any issues/concerns, given the opportunity, I immediately pointed out the problems, only to add up to my dissapointment, the conversation went like this,
Me: I do have concerns, 3 of them at the moment (explained like above but with more polite words)
PO: really? Well, us from the product team doesn't really care for cleanliness as long as it works
Me: bla blah (explaining about current & potential bugs and maintainability)
PO: like I said it's not urgent, we have more important goals to achieve
Me: blah blah (up to you, but I insist that at least consider this matter)
PO: A foreigner made this you know?
*how the fuck is that information even relevant? Fucking victim mentality
Me: So? It's still rubbish (continue explaining the current bugs)
PO: do you know how much this project has cost?
*cool, now you want to justify this farce by overpricing it?
PO: this much (after googling, it's around 3 years worth of average salary for senior dev in US)
*well my previous project cost almost twenty times that
PO: bla blah (saying something like, And don't go introducing changes and new stuff too much, since you're the new guy, unless you want to be seen as a show off, you gotta mingle with the devs first and once you got in a friendlier term, then you can give your opinion)
I just nods and didn't continue the convo after that, but suddenly the PO reaffirms
PO: OKAY? (in a tone like "capische?")
Okay, I'll consider that as a warning,
To be continued...
The networking group at my day job, hooooooolly crap I have some unprintable words. But keeping it professional:
* Days to turn around simple firewall whitelisting requests
* Expecting other teams to know the network layout despite not sharing that information anywhere and going out of their way to not share it
* Adding bureaucracy in the form of separate Word doc forms despite having a ticketing system - for no justifiable reason
* Breaking production systems multiple times per month
* Calling in with problems that are clearly network related, being told it’s our systems, and then the problems magically go away even though they swear they didn’t touch anything
* Outright verifiable lies or vague non-answers when they’re not talking to someone at the director level or a vendor from an outside company on conference calls
* Worse packet loss and throughput on our LAN than my home ISP
Doing anything with these clowns is my single biggest source of stress right now. I can’t wait until we get a full SDN stack set up and then we won’t have to deal with them for day-to-day needs any longer.
My boss swears it’s better that we’re not managing the network directly, but I’m pretty sure my friend’s dog could be loosed into the data center to chew on fiber, and eventually the pairs would be connected in such a way as to improve performance.1
Ahh, this particularly memorable occasion, it’s not much of a “fight” per se, but remembering the events I really want to beat the shit out of those asshats,
Backstory, I was working in a project, big one, my previous one, we had all this “squads” to say, agile teams consisted of several devs, I was happily working in my squad namely squad “A”, until one day by the end of a sprint my PO asked me to help another squad, call it squad “B”,
Curious for the reason as I may be, I ignored it at first, after all having the higher up owing me one is always welcome, A and B are having similar amount of dev team, with A having 1 more Front End developer,
Skipping the boring detail, continue on to my first sprint, I saw problems within the team, the other 4 FE consisted of 2 foreigners (call them “the good guys”) and 2 of our own (same vendor as me, let’s call them “the pricks”),
The ones leading discussions most of the time are the pricks, the good guys usually keep their mouth shut, calm and composed, and when shit happens, the good guys usually fix the problem without any fuss, on the contrary, the pricks threw fit all over the place trying to find somone to blame first,
Skip all the excruciating 2 weeks of trying to guide them in the right way, and talking with their PO, my PO, tech leads, etc, I came across a development of a certain feature, PR already made and waiting for review from a TL, then being the impatient ass B’s PO is, he pushed me to ask for a review from another TL, and the only one available is “the meticulous and perfectionist” TL, which is definitely not my choice in any given order,
Simple math, I assigned my review to TL X, wait a day, it’ll definitely be merged within a day, give it to TL Y, he reviews it immediately, and he’ll find all these shit squad B’s been writing, and then I’ll be spending 3 days trying to clean it up, but no matter, the PO insist on having it reviewed first,
Lo and behold, it happened, I had to refactor all the shit the pricks have been writing, again, I took the high road, until I stumbled upon a piece of code that just doesn’t makes any sense, no matter how exhaustively I put the effort to trace it out, an hour passed by and I decided to ask the pricks, let’s call them #1 and #2, #1 being the senior prick, and #2 being the regular prick but bigger pain in the ass, it went on something like this,
Me: uhh, sorry to bother you guys, but what’s this piece is used for?
#2: huh? Dunno, last guy to touch it was #1
Me: eeh, but the line history says it’s you,
#2: strange, I don’t remember, for testing probably
Me: well TL said to remove this one if it’s unused, I want to know if it’ll affect any functionality
#2: well, go figure
Me: yep that’s why I’m asking
#2: well, if you don’t need it just remove it
Me: again that’s what I’m trying to figure out, will it affect any functionality, since time is pressing I don’t have room for experimenting so I’m trying to find some solution by asking the creator if he might have any insight on this matter
#2: well don’t ask me, try asking #1
Me: dear sir #1 have you the faintest idea of what this piece of scripture might mean?
#1: huh? No idea, #2 wrote it
#2:... I don’t remember, I thought it was you,
#1: see the git blame, it’s #2
Me: guys, since we’re not getting anywhere, I’ll just go against my guts and remove it, so that everyone can live happily ever after,
#2: wait, who’s asking?
Me: the reviewing TL,
#2: yes, who?
Me: mr Y
#2: let’s meet with him
Me: what for?
#2: you said he wants to delete the code, let’s have a chat with him
Me: *not this shit again
#2: what are we waiting for, let’s go,
Me: naah, no need I’ll just delete it as you said it first, sorry, my bad
#2: what’d you say?
Me: I already deleted it, nevermind
#2: why did you do that? If the TL doesn’t like it let’s have a chat
Me: and what would be the point of that? I deleted it already, case closed, I’ll take the responsibility for fixing anything that may come up later, I don’t have time for your childish shit,
#2: *glares at me
Me: *glares back
#1: now, now, let’s all take a step back here, blah blah blah
#2: blah blah blah
And they both starts arguing with each other after #1 tries to act all diplomatic, I left them to their own discussion, and proceed with the PR,
Thankfully removing the piece of code doesn’t affect anything, it seems like #1 or #2 forgot to delete it when fixing the unit test some commits ago1