Details
-
AboutHappy dev
-
Skills10 years of flamethrower.js experience
Joined devRant on 5/22/2021
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
-
Me: GUI team needs help from backend team to add UIDs to a (shitty) object in (their in-house shitty) db.
Backend:
Backend can display these (shitty) objects properly, why can't GUI use the entire object as composite primary key? Backend can't just add some random UID to fix GUI display bug.1 -
In my current role, it takes 10 min to build and test a backend change. Front-end dev server is also painfully slow. It sometimes takes minutes for angular dev server to upload changes.
What am I supposed to do during these scattered idle time. Everything seems painfully slow1 -
Worked so many hours on a bug. Some manager thinks my code is too complicated. He asked my coworker to take my pr, then remove all logic that handles many edge cases. Now the shit is merged 😂. I hate my job8
-
Got warned for having low performance. Time to beg my previous employer to take me back when I rejected their offer last year.
If it worked, I will probably need to be a complete asshole to get laid off10 -
It's so frustrating to explain rxjs pitfalls to the manager.
To avoid the diamond problems and glitches caused by combineLatest and debounceTime(0), I decided to use single stream with nested reactivity.
Then the manager asked me to use withLatestFrom instead of combineLatest.
Sure withLatestFrom makes sense to the original author, when the original author is able to remember the reactive graph and put proper dependencies to combineLasted/withLatestFrom accordingly, but anyone else who touches the component later needs to retrace the reactive graph to avoid the glitch. Sometimes it's just impossible when many dependencies are derived from combineLatest+debounceTime(0). When no one is trained to code reactively, I don't expect people to know where to put a dependency. After many trials and errors, the only way to avoid the diamond problem is to use nested reactivity where child streams are created within root stream each time root stream emits.
The mentioned manager put all sorts of side effects in observable chains. The manager keeps saying the stream is too large when their subscription functions (sometimes nested) are way worse with litered mutations everywhere. Anything in observable can be traced by go to definition but tracing side effects usually requires global searches.
Recently, he put startWith to the end of a synced stream to fix a bug where button would collapse when there is no content (initial null emission). Rather than fixing the default height, he thinks using startWith(defaultLabel) is a good idea. Of course, he doesn't know that a synced stream should only emit 1 value on new subscription and that extra emitted value will cause rxjs glich down the pipe.
I hate corporate jobs -
Need to prepare so many stackbliz angular demos just in case some senior review my changes. It's such a fucking pain to talk to this particular individual.
-
It would be awesome if angular releases functional components and signals.
I can stop being a hater
https://twitter.com/mgechev/status/... -
Fuck angular.
Syncing formControl errors?
Fuck you. Infinite loop.
Debounce formgroup validator?
Fuck you. We clear all asyncValidator errors on every change12 -
Tweet: Angular is slow.
Response:
vdom is worse than angular.
Then why not fix the stupid change detection strategy, broken form type/validations, late subscription bugs.
"Angular is for enterprise app".
This sentence means nothing.
Wtf angular community is so toxic
https://twitter.com/mgechev/status/...14 -
The state of js survey is out and angular got one more 1 star review.
https://stateofjs.com/en-us/2 -
Some senior just pushed some half assed typescript code generator that generates stupid types that make everyone's life difficult.
Who need transparent type inference? Just use type guard everywhere.
Can't reason with the particular individual.
Please release me from my misery.
In house built == shitty version of original open source library. -
Fucking egos. Why is it so difficult to communicate with some senior?
Senior: we need to support old browsers.
Me: What about using polyfills.ts?
Senior: that's not what I am asking for. what's wrong with my implementation?
Me: check whether a global function exists at one place does not solve the issue. What if people use global function somewhere else
Senior: is the pr breaking some features for old browser...
Fucking hell5 -
It takes so much effort to make an input group wrapper reactive in Angular. The whole angular form module is so fucking annoying to deal with. "Angular is more opinionated". Fuck you. Angular leaves so many escape hatches so that devs would do the same thing in a million different ways. It's ironic that reactive form is never reactive.
-
Why there are so many bugs in angular? Why the fuck zoneJS freaks out when asyncValidator and *ngIf depend on the same observable. Fuck me4
-
Feel dirty writing in c. How do people even deal with unsafe pointer type casting/memory allocation/free? The codebase is plagued with memory leaks and there is no test.
I will just pretend I can't read c code and play dumb when shit happens13 -
typescript is shit.
I have never seen such a stupid bug in other languages.
https://stackblitz.com/edit/...
Apparently, there is no way to do type narrowing in a nested object without using enum12 -
https://medium.com/@jeffbcross/...
An article describing toxic environment in angular team. Read lots of angular shit issue thread. The problem might be worse.
Angular needs to die5 -
Why does it take so much effort to do a very simple thing in angular?
Here I am trying to create an observable that listens to two observables from parent and child. I have to subscribe to observable in parent and then convert @input value back to observable. Fuck angular
https://stackblitz.com/edit/...4 -
I can now appreciate some design decisions behind react-redux after witnessing some angular OOP clusterfuck.
I am sure there is some clean/correct way to code in angular, but everyone is treating angular as java.
Some angular application (the one I have to work with) is littered with network calls. It's difficult to spot duplicates. People usually resolve promises everywhere. In services, in a top-level component, or in for loops. In react, people use apollo/redux-query or redux-saga to handle network calls. Since these libraries prevent duplicate network calls internally and reassigning apollo network call function or redux action function is always useless, it's easy to spot all network calls in a component tree.
In angular, it's difficult to trace data mutations when data can be updated everywhere. In react, you can easily find UI state updates by tracing state hooks/dispatch/apollo usages.
In angular, it's difficult to trace data pipeline. Since everything is imperative by default, people need to add update functions in data subscriptions. With all the littered mutations. Soon you will lose track of what the fuck is going on.
I hope angular get the agonizing death it deserves and fuck everyone who codes JS OOP clusterfuck UI.8 -
Node server with webpack poly fill on embedded device. Why 😂 .
Replacing node-fetch with node http instead of waiting for native node fetch API. Why 😂
All npm scripts on package.json are dead. Why 😂
Node server is not even sharing TS interfaces with frontend.
Customers are complaining about MeM0r1 L3k and let's build more features on stupid node.
Fucking kill me.1 -
Just got a new job at an old school hardware company. The codebase is giving me heart attack. They don't care about dev experience or code navigation at all. Every attempts to modernize the codebase is so half assed. All patches are so bloated that make the codebase even worse.
Frontend is migrated from prototype-oop-jquery cluster fuck to AngularJS, then finally angular. Holy moly, all business logics are baked into UI "classes" using prototype chain. When they migrated to AngularJS, someone simply added a wrapper to that jQuery cluster fuck class and overwrote all the prototype with a 10k +lines file. Since all the methods are hidden in either prototype, JS object, or callback function, it's impossible to trace the data pipeline using IDE when "go to definition" on update() method gives you all the update methods/string in all objects/classes. And they don't care about immutability. References are taken out, renamed, and mutated everywhere. Finding the source of a bug is fucking guessing game.
I don't know what trick they use that makes cLion static analyzer fail.
And there is no unit test or spec doc.
Fuck me dead3 -
I hate group project so much.
I yet again successfully stirred up a big drama in my project group. For project, I proposed a CDN cache system for a post only database server. Super simple. I wanted to see what ideas other people come up with. So I said I am not good at the content and the idea is dumb. Oh man, what a horrible mistake. One group member wants to build a chat app with distributed storage. We implemented get/put for a terribly designed key value store and now they want to build a freaking chat app on top of a more stupid kV store using golang standard lib. I don't think any of those fools understand the challenges that comes with the distributed storage.
I sent a video explaining part of crdt. "That's way too complicated. Why are you making everything complicated."
Those fools leave too much details for course stuff's interpretation and says
"course stuff will only grade the project according to the proposal. It's in the project description".
I asked why don't they just take baby steps and just go with their underlying terribly designed kV store.
"Messaging app is more interesting and designing kV store with generic API is just as difficult"
😂 Fucking egos
Then I successfully pissed off all group members with relatively respectful words then pissed off myself and joined another group.1 -
I should just quit. I am not paid enough to deal with this pissing contest.
Reviewer:
Need to add instructions (on readme) for installing pnmp, or if possible, have the top-level npm i install it (lol).
Also, it looks like we are no longer using lerna? If that's right, let's remove the dependency; its dependencies give some security audit messages at install.
Me:
it's good enough for now. Added a new ticket to resolve package manager confusions. (Migrate to pnpm workspaces)
Reviewer:
I will probably be responsible for automating deployment of this (I deployed the webapp on cloudflare pages and there is no work that needs to be done. "automating deployment" literally means replacing npm with pnpm). I disagree that it's good enough for now.
Imagine all readmes on github document how to install yarn/pnpm.
Lesson learned:
If you think an OOP static site developer can't handle modern JS framework, you are probably right.2 -
I don't know how any company can keep on top of crazy npm package changes. I work in a REALLY SMALL team. We are still using bunch of deprecated packages and we keep building on top of those packages. Updating packages is always a nightmare. It's impossible to Google solution when no one is using the particular combination of deprecated packages. Fuck me4
-
uSE AnY pRogrAmMinG L@ngu@g3 yOu liKe.
1nTervi3weRs Do N0t CarE aBouT tHe L@nGuAge.
Fuck you. Stop asking time complexity or space complexity of functional code. No one fucking knows.19 -
Working with new guy who is "senior" is such a pain. We had a factory file that is used to populate tables in endpoint tests. The new guy decided to add a static util method called createTestRecord() to a query builder model. Fucking query builder calls in a static method in a query builder class. I send him messages expressing concerns regarding his approach but never got anything back. The guy just ignored me and asked me to review his pr.
I am leaving in 4 months. Release me from my misery. Fuck my life5