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 - "the 10 rules"
-
I wanted to post a note on devRant community etiquette and rule-breaking behavior we’ve been seeing lately to make clear it will not be tolerated. This is pretty much a rehash of this rant, https://devrant.com/rants/609739/... and also our official rules which I highly encourage people to read: https://devrant.com/rules
I’ve noticed an influx of a select group of members, mostly older users, expressing a distain towards other users or declaring content they dislike “shouldn’t be posted”, “please stop”, etc. If you find yourself about to post that, as per our rules, please don’t. It blatantly violates our rules and we are going to start cracking down on it much more. Whether you have 30k+ points or 10, we will apply the rules fairly to everyone and not give breaks to specific people, which admittedly I’ve done in the past.
If we see this behavior in rants/comments first we will give a warning (and the rant/comment will be deleted) and the next offense is a ban.
A valid question (even though I’ve answered it before) might be why does this need to be a rule? Simply put, it’s a rule for a number of reasons: posts like described try to inflict one’s will upon the entire community (even though we have a Democrat voting process...), they create confusion (almost every time they try to sound official, ex. “Stop doing this”), and beyond those two main reasons, they literally accomplish nothing because they offer no constructive methods of achieving what’s being requested, and only a fraction of the community will actually see it.
Here’s an example of what’s not allowed and what is allowed:
- Allowed: posting an issue on our GitHub issue tracker saying “I really dislike seeing this type of rant in my algo feed, here’s some ideas I have to improve the algo and add more personalization so I can see what I want.”
- Allowed: posting on GitHub issue tracker: “I found this awesome image similarly algo that I think can improve the ‘repost check feature’ - you guys should check it out and see if it might be good”
- Not allowed: “Omg stop shitposting windows update rants and Linux rants I hate them. Go post this type of rant because that’s what everyone really wants to see.”
One is constructive an the other is merely an opinion expressed as an enforcement of a self-made rule on the community and tries to tell other people how they should use devRant.
I cringe when people tell others how to use devRant because without fail when I see those posts, I go through that person’s rant/comment history and I nearly always see them using devRant in some kind of way I disagree with or isn’t exactly what I like to see. But that’s OK. I understand I’m not going to enjoy everything posted and I’m also not going to agree with everything posted. But I think it’s fair for those same people to then lecture on what isn’t appropriate to post on devRant, and it’s even more silly when their posts are sometimes irrelevant to development and the posts they are complaining about are relevant.
In the end, based on the large majority of feedback we get, we want to make devRant a place where everyone feels comfortable expressing themselves and doesn’t have to think about possibly getting ridiculed every time they post and that don’t have people trying to dictate what kind of ideas they are allowed to post. We also realize there’s types of content people don’t enjoy, but telling others not to post it is not the solution. We will soon be launching post type filters that will make filtering rants by post type possible.
Please let me know if you have any questions and thanks for reading.64 -
Rant
Why do shithead clients think they can walk away without paying us once we deliver the project !!!
So, here goes nothing..
Got an online gig to create a dashboard.
Since i had to deal with a lot of shitheads in the past, I told them my rules were simple, 20% advance, 40% on 50% completion and 40% after i complete and send them proof of completion. Once i receive the payment in full, only then i will hand over the code.
They said it was fine and paid 20%.
I got the next 40% also without any effort but they said they also needed me to deploy the code on their AWS account, and they were ready to pay extra for it, so i agreed.
I complete the whole project and sent them the screenshots, asking for the remaining 40% payment. They rejected the request saying my work was not complete as i had not deployed on AWS yet. After a couple of more such exchanges, i agreed to setup their account before the payment. But i could sense something fishy, so i did everything on their AWS account, except registered the domain from my account and set up everything. Once i inform them that its done and ask for the remaining payment.
The reply i got was LOL.
I tried to login to the AWS account, only to find password had been changed.
Database access revoked.
Even my admin account on the app had been removed. Thinking that they have been successful, they even published ads about thier NEW dashboard to their customers.
I sent them a final mail with warning ending with a middle finger emoji. 24 hours later,
I created a github page with the text " This website has been siezed by the government as the owner is found accused in fraud" and redirected the domain to it. Got an apology mail from them 2 hours later begging me to restore the website. i asked for an extra 10% penalty apart from the remaining payment. After i got paid, set an auto-reply of LOL to thier emails and chilled for a week before restoring the domain back to normal.
Dev : 1
Shithead Client: 024 -
<rant>
*Rules For Work*
1. Never give me work in the morning. Always wait until 4:00 and then bring it to me. The challenge of a deadline is refreshing.
2. If it's really a rush job, run in and interrupt me every 10 minutes to inquire how it's going. That helps. Even better, hover behind me, and advise me at every keystroke.
3. Always leave without telling anyone where you're going. It gives me a chance to be creative when someone asks where you are.
4. If my arms are full of papers, boxes, books, or supplies, don't open the door for me. I need to learn how to function as a paraplegic and opening doors with no arms is good training in case I should ever be injured and lose all use of my limbs.
5. If you give me more than one job to do, don't tell me which is priority. I am psychic.
6. Do your best to keep me late. I adore this office and really have nowhere to go or anything to do. I have no life beyond work.
7. If a job I do pleases you, keep it a secret. If that gets out, it could mean a promotion.
8. If you don't like my work, tell everyone. I like my name to be popular in conversations. I was born to be whipped.
9. If you have special instructions for a job, don't write them down. In fact, save them until the job is almost done. No use confusing me with useful information.
10. Never introduce me to the people you're with. I have no right to know anything. In the corporate food chain, I am plankton. When you refer to them later, my shrewd deductions will identify them.
11. Be nice to me only when the job I'm doing for you could really change your life and send you straight to manager's hell.
12. Tell me all your little problems. No one else has any and it's nice to know someone is less fortunate. I especially like the story about having to pay so many taxes on the bonus check you received for being such a good manager.
13. Wait until my yearly review and THEN tell me what my goals SHOULD have been. Give me a mediocre performance rating with a cost of living increase. I'm not here for the money anyway.
</rant>10 -
> In office for first time in awhile
> Run into group of 4 people I don’t recognize in far cubicle corning laughing in hushed voices eating of an impressive spread of food
> See me and immediately look at each other with panicked expressions
> Confused, I put my hands up to indicate I come in peace
> They relax a little and say they thought I was from HR since they didn’t recognize me
> Ask why HR seeing them would be such a big deal
> They say their potluck is not “sanctioned”
> …?
So apparently HR just could resist ruining one of the only good things about coming into the office and one of the coolest things about the company’s culture. At least once a month there would be a giant potluck where everyone would bring some home cooked dish and share it. I can’t tell you how amazing these are in Canada, 50+ plates of authentic food from all over the world.
Unfortunately HR didn’t agree as 1. They didn’t cook so felt bad taking food. 2. Nobody asked them permission to put on these events they just happened organically. 3. Some people were bringing in food that they felt was culturally inappropriate (ie. caucasian guy bringing in homemade sushi).
HR recently banned all “unsanctioned” potlucks and all future potlucks needed to be approved through them with the following stipulations. 1. You could participate without bringing something by donating to HR $10 2. If you brought something you still had to give HR $10. 3. Things you brought in had to be approved by HR
Naturally the first and only potluck under these rules only 4 people brought something in as many couldn’t get their dishes approved because HR didn’t like what they were planning to bring (started out as being because culture and turned into HR just being picky), most just brought $10 so there wasn’t enough food to go around and so after HR took a giant group photo to post on the company’s social media accounts to show off how good the company’s culture is most everyone had to go out for lunch. HR sent out an email later that day exclaiming what a huge success for charity and the company brand the potluck was and they can’t wait for the next one. (I have the HR communications email marked as spam so I never saw the email). Nobody ever organized a sanctioned potluck after that.
However people still missed cooking and sharing their favourite recipes with one another so potlucks still occur but they are now very small, secret, invite-only, hush-hush affairs.
…What in the ever loving fuck22 -
Still trying to get good.
The requirements are forever shifting, and so do the applied paradigms.
I think the first layer is learning about each paradigm.
You learn 5-10 languages/technologies, get a feeling for procedural/functional/OOP programming. You mess around with some electronics engineering, write a bit of assembly. You write an ugly GTK program, an Android todo app, check how OpenGL works. You learn about relational models, about graph databases, time series storage and key value caches. You learn about networking and protocols. You void the warranty of all the devices in your house at some point. You develop preferences for languages and systems. For certain periods of time, you even become an insufferable fanboy who claims that all databases should be replaced by MongoDB, or all applications should be written in C# -- no exceptions in your mind are possible, because you found the Perfect Thing. Temporarily.
Eventually, you get to the second layer: Instead of being a champion for a single cause, you start to see patterns of applicability.
You might have grown to prefer serverless microservice architectures driven by pub/sub event busses, but realize that some MVC framework is probably more suitable for a 5-employee company. You realize that development is not just about picking the best language and best architecture -- It's about pros and cons for every situation. You start to value consistency over hard rules. You realize that even respected books about computer science can sometimes contain lies -- or represent solutions which are only applicable to "spherical cows in a vacuum".
Then you get to the third layer: Which is about orchestrating migrations between paradigms without creating a bigger mess.
Your company started with a tiny MVC webshop written in PHP. There are now 300 employees and a few million lines of code, the framework more often gets in the way than it helps, the database is terribly strained. Big rewrite? Gradual refactor? Introduce new languages within the company or stick with what people know? Educate people about paradigms which might be more suitable, but which will feel unfamiliar? What leads to a better product, someone who is experienced with PHP, or someone just learning to use Typescript?
All that theoretical knowledge about superior paradigms won't help you now -- No clean slates! You have to build a skyscraper city to replace a swamp village while keeping the economy running, together with builders who have no clue what concrete even looks like. You might think "I'll throw my superior engineering against this, no harm done if it doesn't stick", but 9 out of 10 times that will just end in a mix of concrete rubble, corpses and mud.
I think I'm somewhere between 2 and 3.
I think I have most of the important knowledge about a wide array of languages, technologies and architectures.
I think I know how to come to a conclusion about what to use in which scenario -- most of the time.
But dealing with a giant legacy mess, transforming things into something better, without creating an ugly amalgamation of old and new systems blended together into an even bigger abomination? Nah, I don't think I'm fully there yet.8 -
> be me
> create profile in dating app because pandemic rules make meeting people at irl events impossible
> match with cute girl
> start to talk about interesting stuff
> mention being a software developer
> her: 'pls help me I have a not activated windows 10 on my laptop and can't do stuff since the last update'
> fml20 -
Had to setup 7 HP laptops today for a small hackathon.
Install windows 10...
just shout in the room and hope all cortanas hear the same answer.
done after a couple minutes.
Windows 10 rules.
...
This story could be over but no, have a plot twist.
All pcs connected to our wifi network as we tried to install Chrome ( cause edge sucks), realized it takes hours to install.
someone drawing internet over here?!
our network wasn't that bad usually.
opens windows store on one laptop by accident.
42 downloads running.
Yep on all of them.
what were they downloading?
candy crush... bubble witch saga...mcaffee.
spent about 4h uninstalling bloatware and teaching windows not to reinstall it over and over again...
Microsoft sucks...
and I didn't even mention the "tell us why you think you don't need McAfee premium protection pl0x" and "you really sure you don't want to try edge as default browser? is really fast and stuff" dialog fields...9 -
Did i just get rick rolled through a user agent?
"[17/Nov/2020:10:20:42 +0000] "GET / HTTP/1.1" 200 1274 "-" "We are no strangers to love. You know the rules and so do I. A full commitment is what Im thinking of. You wouldnt get this from any other guy.." "-""4 -
Once interviewing a developer I asked her what was the most challenging work from her experience. She said it was writing a game of tic tac toe, I paused for a bit, and asked her if she can describe in more details which part of it was challenging.
She said, "I am not too familiar with the rules of the game so it was hard".
The whole room went brain-freeze for 10 seconds before anyone could find a way to continue the conversation.6 -
Company requests that I do overtime to meet deadlines, I start working overtime, a week later I get an email "clarifying" the rules for overtime. None of which I have complied with because I didn't know about the fucking rules because they never told me about them.
Now they will "try their best" to put the hours through for me but they can't promise anything.
That's 10 hours of my life I probably won't get back, just glad I didn't do more now.4 -
Tl;dr stupid password requirements
Begin quote
Password must not contain any non-alphanumeric characters.
Your Password change was not accepted. Enter your current Password correctly following the rules for New Passwords. Please try again.
Passwords must be between 8 and 12 characters in length and MUST contain each of the following:
At least 1 lower case character (a-z)
At least 1 upper case character (A-Z)
At least 1 numeric digit (0-9)
But, MUST NOT contain:
more than five repeating characters in a row (e.g. 111111356 would not be valid, but 112233445 would be valid)
spaces or other special characters
NOTE: Your new password cannot be the same as any of your 10 previous passwords.
End quote
Are you fucking kidding me? Only (26+26+10)^8 through
(26+26+10)^12 different passwords to go through? It's like the oxygen wasters that built this website give zero fucks about security.
Why? This is the site that manages money and investments. Just allow passwords up to 64 characters, allow any ascii character and just fucking encod the characters to prevent any Injunction.4 -
To all the Java Teams that died during the fucking Mobile Civil War, We salute you!
1. Millionaire 2011
2. Splinter Cell: Double Agent
3. Dragon Ball Z Saiyan Fighters
4. Moto Girls
5. 24 Special Ops
6. Thor: The Dark World
7. Kung Fu Panda
8. Worms 2011: Armageddon
9. Asphalt 4: Elite Racing
10. Resident Evil - The Missions
11. Ghost Recon: Future Soldier
12. Spider-Man 3
13. Need for Speed - Undercover 3D
14. Contra 4
15. Rambo on Fire
16. Fast and Furious 6
17. Counter Strike 3D
18. Men in Black 3
19. X–Men Origins: Wolverine
20. WWE Legends of Wrestlemania 3D
21. 3D Fight Night: Round 4
22. 3D Ultimate Rally Championships
23. Assassin's Creed
24. Zuma
24. Die Hard 4
25. 3D WWE Smackdown Vs RAW 2009
26. Prince of Persia 3: The Two Thrones
27. 3D Fight Night: Round 3
28. Super Mario Bros
29. Bruce Lee - Iron Fist 3D
30. Naruto Adventure: A New Apprentice
31. FIFA 2011
32. James Cameron's Avatar
33. Racing 2: The Real Car Experience
34. King Kong
35. Gangstar City
36. Iron Man 3
37. XIII 2: Covert Identity
38. 4x4 Extreme Rally 3D
39. Real Football Manager 2013
40. Splinter Cell: Conviction
41. 2008 Real Football 3D
42. Assassin's Creed 2
43. Hummer 3D
44. American Gangster
45. Real Football 2009
46. 3D Football: Real Madrid 2010
47. Xtreme Dirt Bike
48. Tekken Mobile
49. A Good Day to Die Hard
50. The Amazing Spider-Man 2
51. Asphalt 3: Street Rules 3D
52. GTA IV Mobile
53. 3D Contr Terrorism
54. Real Football 2015
55. The Amazing Spider-Man
56. Contra 4 (2009)
57. Mortal Kombat 3D
58. Bad Girls
59. Assassin's Creed: Brotherhood
60. Need for Speed: Hot Pursuit 3D
61. God of War
62. PES 2009 (Pro Evolution Soccer)
63. Ultimate Street Football
64. Assassin's Creed: Revelations
65. Prince of Persia: The Forgotten Sands
66. 3D Super taxi driver
67. Gangstar 2: Kings of LA
68. Asphalt 6: Adrenaline
69. Assassin's Creed III
70. Danger Dash
71. Real Football 2014
72. Gangstar - Crime City
73. Gangstar 3: Miami Vindication
74. Modern Combat 4: Zero Hour
75. Zuma's Revenge!
We know you guys did your best but the world is a fucking shit hole. We still remember your hard work!
76. Mission Impossible 3
77. Gangstar Rio: City of Saints (I guess these were your last days at work. Well-done guys!)
78. Real Football 2010
79. Real Football 2011 (Real Soccer)
80. Real Football 2012
81. PES 2011 (Pro Evolution Soccer)
82. Ultimate Mortal Kombat 3 (My Favorite)
83. And those missing the list.
WE SALUTE YOU ALL!!! ∠(^ー^)4 -
## Building my own router
IT HAS ALREADY PAID OFF!!!!!
So I (with my fam) have evacuated from the capital of Lithuania into a distant place - much smaller, where average age is prolly >30 or even >40 years. I live in a village now. In a house with very good neighbours. In fact these neighbours own that house :D
Back to the point.
So these neighbours used to share their wifi (w/ internet) between the two houses. They have the line, the mian router has quite a strong antenna and that other house has 2 repeaters: 1 on the outside wall and another one -- indoors. Sepeaters are connected sequentially, i.e. the indoors one is repeating the outdoors one. ikr....?
The first day was alright. We settled in, got everything set up wifi-wise. Peachy.
The second day repeaters refused to issue a DHCP IP. That's something, right? Alright, nvm - I don't mind setting up static IPs. In fact I prefer them over the DHCP magic!
And by the noon both repeaters were connectable but neither of them could provide internet connection... We that sucks! I restarted both of them a few times, neighbours restarted their main router -- still no luck.
Here comes my router [God am I happy with this purchase and the whole idea of a customized router!!! Thanks @hakx20!].
I brought it outside, plugged it in. Connected to it through it's hotspot, used nmcli to connect to neighbours' main router with an internal wifi card (that shitty mPCIe operating in USB mode. yes, the same one, manufactured in 2003. Yes, in g mode.). A couple of iptables rules for traffic forwarding et voila! I have built my own repeater! And tomorrow I can WFH w/o any issues.
Yes, hardware routers are faster and easier to maintain. Yes, hardware routers are cheaper and usually have nicer bells and whistles. But when hardware fails you and the last thing you want is going to the public (shop), soldering rod won't help you. A software solution becomes the easiest to set up, considering you know how to.
Boi am I so happy about my purchase! CentOS router FTW!
P.S. even though we've fled the city we are responsible citizens and we've self-quarantined ourselves for the 14 days period. No local person any closer than 10 meters for the whole period until we're cleared. Being away from the city gives us sooo much freedom! Especialy now, when cities are shitting bricks in fear.rant ap success story repeater quarantine wifi centos hotspot custom router coronavirus custom router4 -
Follow up to: https://devrant.com/rants/5047721/....
1- The attacker just copy pasted its JWT session token and jammed requests on the buy gift cards route
2- The endpoint returns the gift card to continue the payment process, but the gift card is already valid
3- Clients wants only to force passwords to have strong combinations
4- Talk about a FIREWALL? Only next month
5- Reduce the token expiration from 3 HOURS to 10 minutes? Implement strong passwords first
6- And then start using refresh tokens
BONUS: Clearly someone from inside that worked for them, the API and database password are the same for years. And the route isn't used directly by the application, although it exists and has rules that the attacker kows. And multiple accounts from legit users are being used, so the person clearly has access to some internal shit7 -
Eric Thomas' Top 10 Rules For Success
1- Know what you want.
If you don’t know what you want, how will you know what to say yes to in your life? Stop taking every body else’s leftovers and step up and take what you deserve!
2- Work on your gift.
We all have our own individual talents, gifts and strengths. But those natural gifts will only become truly great by refining and nourishing them. Natural ability will get you started, but commitment and determination to achieve greatness is what will get you to where you want to be.
3- No excuses.
Stop using your circumstances, finances or current position in life as an excuse to justify why you aren’t working towards your goals. You are in charge. If you aren’t where you want to be, take a look in the mirror and ask yourself honestly- WHY? Take responsibility for you life once and for all.
4- Upgrade your values.
Your values dictate your behaviours. And your behaviours create your results. If you want to a different result, you need to change your behaviour.
5- You reap what you sow.
Nothing in life is free. It is up to you to determine the course of your life. If you want success, you need to do what it takes, daily, to get there. Don’t focus so much on being successful. Focus on solving problems, helping others, and adding value to people’s lives, and success will come.
6- Education is the great equaliser.
If you are at the bottom, you need to learn. If you are at the top, you still need to learn. Never, ever, ever stop growing and educating yourself.
7- What is your WHY?
Why do you wake up in the morning and hustle? Why do you do what you do? Knowing the answer to this question is the single most important thing to know about yourself if you want to become successful. When you know WHY you are doing what you do, you won’t ever quit, even on a bad day.
8- Have boundaries.
If you want to be a huge success, you have to be strict on yourself with how you spend your energy. Distractions will come in many forms, family, friends, TV, but you have to make sure that your time is being spent wisely.
9- Speak from the heart.
Transparency is attractive. Don’t be afraid to open up to the world and let yourself be seen.
10- Succeed as bad as you want to breathe.
Everybody wants to be successful. But not everybody is willing to do the work that it takes to become successful. When you are willing to get so uncomfortable, so out of your depth, so blind that you have no other choice but to be successful, THEN you will become successful. The only question you need to ask yourself is this. Am I willing?
Credits: https://fearlessmotivation.com/2016...2 -
how am i supposed to fix anything if they change the priorities on my tickets every 10 sec, like PM's change them, 2 min later MD over rules them and changes them again, so 5 min later PM's change them again because something urgent came up, but then another client starts ringing my MD so that client is suddenly priority
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARG
I give up2 -
I recently upgraded my computer to a ryzen 1700x and 16gb 3600mhz memory and an asus rog crosshair hero vi board(From an 8350)
My pc ran soo smooth, games even more so
The games ran great, but my personal performance went down.
I didn't understand why. Im probably just losing my edge.
I trained and tried. But still, it felt off.
Today I realized that with my new motherboard, I got a new mac address. And my friend is a bit of a neat freak with that stuff. He has a whole system for ip addresses.
So i told him, I wont have the correct ip address. Then he started laughing and asked my to browse to a certain site www.privateinternetaccess.com
There at the top it said: "you are protected by pia"
Devices without an ip address bound to their mac address, will automatically use the vpn according to his rules.
My ping improved by 10-15ms upon getting my normal ip address back and my game performance is back.3 -
I need some opinions on Rx and MVVM. Its being done in iOS, but I think its fairly general programming question.
The small team I joined is using Rx (I've never used it before) and I'm trying to learn and catch up to them. Looking at the code, I think there are thousands of lines of over-engineered code that could be done so much simpler. From a non Rx point of view, I think we are following some bad practises, from an Rx point of view the guys are saying this is what Rx needs to be. I'm trying to discuss this with them, but they are shooting me down saying I just don't know enough about Rx. Maybe thats true, maybe I just don't get it, but they aren't exactly explaining it, just telling me i'm wrong and they are right. I need another set of eyes on this to see if it is just me.
One of the main points is that there are many places where network errors shouldn't complete the observable (i.e. can't call onError), I understand this concept. I read a response from the RxSwift maintainers that said the way to handle this was to wrap your response type in a class with a generic type (e.g. Result<T>) that contained a property to denote a success or error and maybe an error message. This way errors (such as incorrect password) won't cause it to complete, everything goes through onNext and users can retry / go again, makes sense.
The guys are saying that this breaks Rx principals and MVVM. Instead we need separate observables for every type of response. So we have viewModels that contain:
- isSuccessObservable
- isErrorObservable
- isLoadingObservable
- isRefreshingObservable
- etc. (some have close to 10 different observables)
To me this is overkill to have so many streams all frequently only ever delivering 1 or none messages. I would have aimed for 1 observable, that returns an object holding properties for each of these things, and sending several messages. Is that not what streams are suppose to do? Then the local code can use filters as part of the subscriptions. The major benefit of having 1 is that it becomes easier to make it generic and abstract away, which brings us to point 2.
Currently, due to each viewModel having different numbers of observables and methods of different names (but effectively doing the same thing) the guys create a new custom protocol (equivalent of a java interface) for each viewModel with its N observables. The viewModel creates local variables of PublishSubject, BehavorSubject, Driver etc. Then it implements the procotol / interface and casts all the local's back as observables. e.g.
protocol CarViewModelType {
isSuccessObservable: Observable<Car>
isErrorObservable: Observable<String>
isLoadingObservable: Observable<Void>
}
class CarViewModel {
isSuccessSubject: PublishSubject<Car>
isErrorSubject: PublishSubject<String>
isLoadingSubject: PublishSubject<Void>
// other stuff
}
extension CarViewModel: CarViewModelType {
isSuccessObservable {
return isSuccessSubject.asObservable()
}
isErrorObservable {
return isSuccessSubject.asObservable()
}
isLoadingObservable {
return isSuccessSubject.asObservable()
}
}
This has to be created by hand, for every viewModel, of which there is one for every screen and there is 40+ screens. This same structure is copy / pasted into every viewModel. As mentioned above I would like to make this all generic. Have a generic protocol for all viewModels to define 1 Observable, 1 local variable of generic type and handle the cast back automatically. The method to trigger all the business logic could also have its name standardised ("load", "fetch", "processData" etc.). Maybe we could also figure out a few other bits too. This would remove a lot of code, as well as making the code more readable (less messy), and make unit testing much easier. While it could never do everything automatically we could test the basic responses of each viewModel and have at least some testing done by default and not have everything be very boilerplate-y and copy / paste nature.
The guys think that subscribing to isSuccess and / or isError is perfect Rx + MVVM. But for some reason subscribing to status.filter(success) or status.filter(!success) is a sin of unimaginable proportions. Also the idea of multiple buttons and events all "reacting" to the same method named e.g. "load", is bad Rx (why if they all need to do the same thing?)
My thoughts on this are:
- To me its indentical in meaning and architecture, one way is just significantly less code.
- Lets say I agree its not textbook, is it not worth bending the rules to reduce code.
- We are already breaking the rules of MVVM to introduce coordinators (which I hate, as they are adding even more unnecessary code), so why is breaking it to reduce code such a no no.
Any thoughts on the above? Am I way off the mark or is this classic Rx?16 -
In the “Qualities of Great Design” session at #WWDC2018. Really wish the Xcode team could be sitting in the front row so they couldn’t sleep thru the session...
oh i guess being the optimist I was thinking they would even be here. Silly me.
All the bugs that drive me effen crazy are clear and present in Xcode 10 beta. Stupid shit still rules at Xcode Central. -
How do I convince a dev department to take source control, peer code review and unit tests seriously?
I'm a recent software grad with internships that recently started at a smallish company (less than 20 employees but has been around for 10 years, with most senior non-mgmt employee around 6 years). I've been working here for less than a year (approx 5 months) and I love the company - lots of talented and passionate people.
We are a creative industry with a handful of devs and one of the issues I'm seeing is that often devs are working in silos. I'm trying to make suggestions to upper management like encourage more usage of source control, documentation, etc and most of the senior devs are pushing back - saying that they don't feel that it is necessary and due to the fast moving nature of our projects that all this would be a total waste (they were so fast on the idea of not having PR's because it would be "too much of a blocker").
I understand that a large part of this has more to do with shifting the culture in the department and that can be very hard to do, especially since i'm fresh out of school, but I see these devs have so much potential but it seems that they think having these implementations in place would mean more rigid rules and bureaucracy.
I've been speaking to some of my engineering friends and they're pretty much all just telling me that I am shooting myself in the foot if I continue to stay at this company because I'll be behind skill wise, but part of me isn't ready to just give up yet.
looking for some advice10 -
I'm at my Community College as a member of the engineering club requesting funds for a software and hardware-related physical project.
The code was mostly pre-written in Python from a university already, but we needed to build essentially a gaming-level PC to run it, do some welding and metalwork for the hardware, cables, et citera. I don't want to get too detailed in case anyone involved is reading this story.
To get funding, we needed to go before the student senate. I didn't go the first time, but later when we needed more funding for the project to do expansions, we attended.
I came in with a few pages of documentation explaining how the project operated, it's scope, and why we needed the additional $500 on top of the previous $1000 or so spent. I went in woefully behind the times on what a student senate meeting was like.
For starters, I thought this would be somewhat formal, being "Student Senate" in Week 8, and prepared to defend my project fully. Instead, we spent the first 15 minutes going around the table explaining what animal we would be and why, if we had to turn into an animal. It just kept going hilariously, painfully downhill from there.
They did ask some questions about what my project was and how it operated (as not many had seen it), and they wanted explanations even though it was clear absolutely nobody else in the room understood anything. My partner virtually shut down and let me do all the talking for my project and his because he couldn't take the ignorance of some of the questions and the assorted nonsense spread throughout the meeting.
Amazingly, we got funding. We had to sit for the rest of the meeting though, which (among other things) included a segment about whether we should create a new committee called the "Fundamental Insecurities committee" to help out with, well, "Fundamental Insecurities." There was only one member on this proposed committee.
When I brought up the question on why we were making a one-person committee alongside the, like, three one-person committees already in existence, they congratulated me for asking good questions and said I should come more often. They then said the exact same thing again when I pointed out there were better names than "Fundamental Insecurities." It's such a reality check that you are trying to impress people to get funding, when you can't help but feel that everyone is an utter idiot in the back of your head.
Almost a year later, I had to go back with a list of parts we needed. I wrote a whole complex list of things we needed for the project. Even though they tried to ask questions about what certain parts were (to appear like they weren't totally incompetent), and despite asking questions about a bunch of the items, nobody cared about what the $10 for "C418" was (google it if you don't get this joke). I spent about 30 minutes talking with them and succeeded in getting $600 more in funding. We then, to my surprise, spent less than 5 minutes debating whether to send 2 students on a field trip for $700. 30 minutes for $600, for a permanently installed project. <5 minutes for a $700 one-time thing.
And, because this is already a long rant, here's one more thing: The Student Senate's voting rules initially gave everyone who showed up 1 vote. We're all students, we all get a say, right?
Well, I soon put together that Student Senate had fairly low attendance. Engineering Club had high attendance. Student Senate and Engineering Club took place at the same date and time. I then, of course, asked why we couldn't bring the whole Engineering Club into Senate one day, and then proceed to pass an order by simple majority saying that all Student Life funding goes to us.
They then said that the administrators (the heads of Student Senate) could override that, but I pointed out that kind of defeats the purpose of voting in the first place. They then switched script and said they wouldn't do that and would honor such a vote. Shortly after, they changed the rules saying that you only get a vote on your 2nd consecutive visit; and again said I should visit more often because I was brilliant.
You can't make this stuff up.3 -
TL;DR - Coding standards are a shit practice IMO.
What we don't talk about enough among software engineers, is the artistic aspect of the craft of writing code.
For example, consider your client saying this to you.
"Build me a web app where a user will login. They will have a wallet to purchase subscriptions of 3 products of different prices."
Give these two statements to say, 10 devs and see how each of them will come up with their own vision of the problem and how they would implement it in their own ways.
So now you are working on a big team with say 30 people and you have a big project to work on. Different members of the team bring different styles of code to you to review and if, the Team Leader is as incompetent as mine is, they would find it troubling to understand the pull requests.
So what do you do in these scenarios? Implement Coding standards !!! They take away the artistic vision of the devs and tries to force them to follow rules like sheep.
Also the company doesn't give two shits about the code standards cuz, as long as they have working code that makes them money, they wouldn't care how the code is written.
Thoughts ?8 -
Sonuva bitch thought he's so smart. He made a mod of a game, and a launcher for it, APK while bullshitting that "Games shouldn't have IAPs because it's just a game". I got ticked off, I called him out for bullshitting, he got ticked off, I asked for proof of the mods, this is what he gave me. It's on an iPhone mind you, and he said he made an APK. My fucking god. I sworn at him with another programmer friend for a solid 10 minutes, breaking the community's rules 20 times over non-stop (I'm Moderator so.... (not Reddit, Discord (Yes mom I use Discord (Yes I moderator)))). My fucking god. AT LEAST MAKE SOME FILES INSIDE WHILE YOU'RE BULLSHITTING US! OH WAIT! YOU CAN'T! YOU'RE NOT JAILBROKEN YOU PIECE OF SHIT! (more in the comment)6
-
In reply to this:
https://devrant.com/rants/260590/...
As a senior dev for over 13 years, I will break you point by point in the most realistic way, so you don't get in troubles for following internet boring paternal advices.
1) False. Being go-ahead, pro active and prone to learn is a good thing in most places.
This doesn't mean being an entitled asshole, but standing for yourself (don't get put down and used to do shit for others, or it will become the routine) and show good learning and exploration skills will definitely put you under a good light.
2)False. 2 things to check:
a) if the guy over you is an entitled asshole who thinkg you're going to steal his job and will try to sabotage you or not answer acting annoyed, or if it's a cool guy.
Choose wisely your questions and put them all togheter. Don't be that guy that fires questions in crumbles, one every 2 minutes.
Put them togheter and try to work out the obvious and what can be done through google or chatgpt by yourself. Then collect the hard ones for the experienced guy and ask them all at once. He's been put over you to help you.
3) Idiotic. NO.
Working code = good code. It's always been like this.
If you follow this idiotic advice you will annoy everyone.
The thing about renaming variables and crap it's called a standard. Most company will have a document with one if there is a need to follow it.
What remains are common programming conventions that everyone mostly follows.
Else you'll end up getting crazy at all the rules and small conventions and will start to do messy hot spaghetti code filled with syntactic sugar that no one likes, included yourself.
4)LMAO.
This mostly never happens (seniors send to juniors) in real life.
But it happens on the other side (junior code gets reviewed).
He must either be a crap programmer or stopped learning years ago(?)
5) This is absolutely true.
Programming is not a forgiving job if you're not honest.
Covering up mess in programming is mostly impossible, expecially when git and all that stuff with your name on it came out.
Be honest, admit your faults, ask if not sure.
Code is code, if it's wrong it won't work magically and sooner or later it will fire back.
6)Somewhat true, but it all depends on the deadline you're given and the complexity of the logic to be implemented.
If very complex you have to divide an conquer (usually)
7)LMAO, this one might be true for multi billionaire companies with thousand of employees.
Normal companies rarely do that because it's a waste of time. They pass knowledge by word or with concise documentation that later gets explained by seniors or TL's to the devs.
Try following this and as a junior:
1) you will have written shit docs and wasted time
2) you will come up to the devs at the deadline with half of the code done and them saying wtf who told you to do that
8) See? What an oxymoron ahahah
Look at point 3 of this guy than re-read this.
This alone should prove you that I'm right for everything else.
9) Half true.
Watch your ass. You need to understand what you're going to put yourself into.
If it's some unknown deep sea shit, with no documentations whatsoever you will end up with a sore ass and pulling your hair finding crumbles of code that make that unknown thing work.
Believe me and not him.
I have been there. To say one, I've been doing some high level project for using powerful RFID reading antennas for doing large warehouse inventory with high speed (instead of counting manually or scanning pieces, the put rfid tags inside the boxes and pass a scanner between shelves, reading all the inventory).
I had to deal with all the RFID protocol, the math behind radio waves (yes, knowing it will let you configure them more efficently and avoid conflicts), know a whole new SDK from them I've never used again (useless knowledge = time wasted and no resume worthy material for your next job) and so on.
It was a grueling, hair pulling, horrible experience that brought me nothing in return execpt the skill of accepting and embracing the pain of such experiences.
And I can go on with other stories. Horror Stories.
If it's something that is doable but it's complex, hard or just interesting, go for it. Expecially if the tech involved is something marketable.
10) Yes, and you can't stop learning, expecially now that AI will start to cover more and more of our work.4 -
Fuckin' windows 10, cannot check my mining rig's hashrate API, because for whatever fucking reason it decides to block port 10555 in spite of me specifically opening it in the inbound/outbound rules.
ARGH!!3 -
UNOFFICIAL DEVRANT CLONE JAM - VOTING START - DAY 1
3 entries were submitted, and we're ready for your feedback! It is exciting to know what your votes say about the work needed to supplant devRant. However, considering the sudden announcement of hackathon some 10 days ago and very short sprints, we get what we get.
2nd place nominee gets their devRant self in all vector beauty. Of course, it's not the exact style, but it's something resembling and with objects separable from each other! The winner gets an animated version.
You are welcome to familiarize with all devRant clones that our participants have made!
Finnegan (by @retoor): https://devrant.com/rants/9946268
Ostream App (by @ostream): https://devrant.com/rants/9946296
ragedev (by @SidTheITGuy): https://devrant.com/rants/9946238
Leave your comments in respective rants. Read the rules and vote for as many as you like!2 -
Today I got a change request that told me I needed to create a report showing orders broken down by their order types as percentages.
Now the order types part involve SQL queries that translate business rules into multiple table joins and it's quite nasty (200 + lines or so).
Naturally the change request doesn't mention any of these business rules and how to tell that orders are of a specific type... but alas!
It teaches me how to calculate a percentage :)
... like "10 / 100 * 100 = 10%"
I don't know whether to laugh or feel insulted.2 -
a lion in captivity forgets to hunt. a man loosing everyday forget about winning.
I am feeling so sad and worthless right now. Like, so worthless that if I am walking down the street tomorrow and if some car hits me and i die, i wouldn't mind.
I find it questionable about what I am living for? why am i selling myself in front of keyboard till 12 am every day to earn some bucks when all this money is being / will be used to give happiness to a bunch of people that don't give 2 shits about me.
why can't i get some love? why can't i get some respect? i feel like a disabled 5 year old boy trapped in an abled 25 year old body. I can feel my legs, but I don't have the permission to use them. its like i am tied by ropes. and this rope has been on me for so long, that i can feel my legs, but i can also feel that those are having cuts so deep that i won't be able to use them even once the rope is taken out.
being a single child, loneliness has always been my shadow at home. and The middle class poor income, fighting parents, sickness and lack of culture ensured that loneliness remained my friend in school, college and other areas too.
the only goal of becoming an ideal son has shadowed every other thing in life. I can't drink, i can't go outside after 10pm, I can't take a jobbin different city. I can't fucking have female friends or think about relatiion-shits with people. i can't drive the car that was bought by my salary money. the list goes on and on.. i think every Indian (girls more than boys ig) have gone through at least 1 such restrictions at some point of their life. but me? a GUY in his fucking 25 , is going through ALL OF THEM, from day 1.
Plus i haven't started to discuss the weird eccentricities that i have to deal with, which are not so common. we follow a special religion where they have lots of philosophy and additional rules ( like no onion garlic mushroom in foods, mediation + pray for 1 hour twice a day ,... etc)
But i didn't complain, until now. I got sadder and sadder with time, but I cooperated. Whome else to live for , if not for the folks who made you in their womb amd sack? yeah I will fucking stay celibate until you find some willing "cultured" girl from your "religion" and arrange a lifelong existence. yes, i will fucking keep paying the car emis and see it in the parking lot everyday , while traveling via a metro. yes i will stay in your house in front of you all the times and never learn to exist independently coz fuck maturity. yes i will be a static atm machine waiting to die as you please.
but i am still not your ideal son? I say one little thing, and you start shouting at me for being selfish? why is religious superstition and those crime storemies so much deep into your head that you folks are micro managing and criticising every single thing in my life?
why is there a need for repetitive arguments, fights and shouting before evry action? why can't we just be happy for once!
I am shattered looking for happiness. I can't live like this anymore. There are no more than 2 people in my life that i care about and if those 2 are always having an upside down , angered face the what is the point of waking up every day?
wish i could just leave them. But can they live without me? or even can i live without them? and no , not talking about emotionally. I am very strong at the emotional side and i can throw word daggers to even 10+ years of companionships and ruin them. this will be just another long term relationship that i will sour.
BUT I CAN'T LITERALLY LIVE WITHOUT THEM. i am a useless guy who don't have any social intelligence outside his computer screen. i don't know how to live alone, and exist, or what my goals will be. I never saw a future without thinking about securing their future first, and them being in my future at all times.
aagh fuck. another painful night to survive and exist until i rise again to live like a corpse coz i can't do anything about it6 -
Need to work on GitHub CI action that wraps a terraform deploy (previous teams deploy setup that they would run from inside a docker compose setup locally). Working directly on main and get moaned at (definitely consider the moan reasonable) when it was originally being duct taped together. It's scrappy and doesn't have all the repo rules that other repos have set up, but it's stable, and I need to move onto “actual” requirements.
Several months later, I'm still the only “active” maintainer (it's been stable since then and hasn't needed any changes).
Have to do a hotfix experiment after adding support for a new bucket, put the changes in a PR and merge (since it has to be on main, and I'm the only one who maintains it, and if it's truly deploy change related that is the only thing that changed)
Come back to the PRs at the end of the day after discovering it's just a change to django storage, and it turns out a colleague who is tangentially related to the project dropped a comment. He's complaining about the lack of a description, the lack of a ticket and “skipping” the review process.
I, too, would have liked all that, but the damn code needs to be merged so I can check that it was that MFer. Sorry, I expected you to be able to deal with a “vague” 10 contiguous lines of iam config values, ignore the immediately following PR that reverts this revert and the preceding one adds a bucket. Sorry, that the title saying that this is a revert isn't enough of a description for you. Sorry that the other dev that told me about it didn't create a ticket. Sorry that I didn't immediately do overtime to update all the PRs and magically conjure up someone who is available to review them. But hey now that's evening and I have time to get back to going through the PRs again I can see your indignant comment which I wasn't notified about since the PR is fucking closed.
Now that I have had time to go through and see your comment, message you to let you know that commenting on a closed PR is screaming into the void and updated the PRs I can get back to what I was supposed to do today. Which is dealing with streaming data into S3. Hope you had a good day in your Clojure tower with your hired PR person (yes a person to review his PRs).
Not having to deal with your comment would have saved me an hour+.
Getting real tired of the “act like product” when it comes to fixing bugs/any polishing that isn't exploding in prod and even then. Sometimes I really wish I could refuse people from messaging me to fix an issue and can only communicate by tickets 🙄 to avoid these problems. They've been told to create a ticket and assign it to me when there is an issue, and even then, I tend to fix the issue before they get to it. I can't wait until next friday…
Anyway /rant keep up the good work in keeping quality up :D3