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 - "peg"
-
New senior dev joined the project today.
Senior dev: "There's no way for me to test my changes before I merge this into develop"
Me: "Can you at least run our test suite?"
An hour later the develop branch is fucked and everyone who has merged it locally has pages of red errors splattered across their screens whenever they run any tests.
Start looking into what the fuck is going on.
Notice that all the errors are related to changes the new guy made.
Ask him if he ran the tests..
Senior dev: "Nah they wouldn't catch anything locally "
Stare at the stream of red text running down my screen.
Normally I wouldn't care but we were trying to prepare a release... RUN THE FUCKING TESTS ASSHOLE.9 -
At the peak of the dotcom boom of the early 2000s I had been hired above my skill set because recruiters were desperate to fill seats. I had a pulse and could code even a little so they hired me.
I was the senior web developer on an agency contract with a major corporation working on an ASP (pre ASP.NET) website. I had hired a temp to help me with the workload and one day, in exasperation at my spaghetti code and non-understanding of MVC concepts, he threw his hands in the air and exclaimed, "Do you even know what you're doing?!"
Not having the type of personality to give any subordinate a dressing down for insubordination, I just felt awkward. He was right, of course. I used that as impetus to study more and attend conferences. I'm still a below-average coder because my brain struggles with math and logic. A lot. But that definitely took me down a peg. All those recruiters treating me like I was hot snot on a silver platter when I was really just a cold booger on a paper plate.4 -
It's disheartening to see a senior member of my team shitting on the code of less mature developers. Don't just say "this is unacceptable", elaborate, teach them. How are they going to action anything from that feedback?
Take the time to respond to their questions when they ask for clarification on what you're saying. Don't berate them.
Honestly some developers need to learn a thing or two about code etiquette.
There's no room for good cop / bad cop behaviour.10 -
Talking with colleagues earlier about dealing with a cocky intern:
"Ah, I had one of those last year. I told him to make sure when using the find command, always use the -delete flag to clear up any temporary files it creates while it's searching."
"Man, that's harsh. Did that take him down a peg?"
"Nah, not at all, but he never spoke to me again after that, so I'm calling it a win."1 -
Get your code reviewed by as many good devs as you can. Tell them to be harsh, swallow your pride, expect the code to be torn apart. Then rinse and repeat.
It brings the "know it all" fresh grads down a peg or two, and often brings those with low self esteem up a peg or two (when they realise their code is better than they thought.) Anyone can write code that works. But writing decent, clear, well-tested code that stands up to scrutiny is a different ball game - and it's important to learn that quickly.3 -
Surprise surprise, that unrealistic deadline you set even when the engineering team told you that it wasn't going to work has backfired! Maybe you wouldn't be so stressed if you learnt to listen? It's a pretty basic skill, or at least I thought so.
Oh and when you say "we have two options, stay late or work weekends" you have a critical bug in your conditional. Your missing option 3, go the fuck home. Time to enjoy my weekend with friends and family.4 -
"The client has an important meeting next week! You have two days!"
If it's that important why are we just hearing about it...6 -
Stakeholder: In user profiles, I want users to be able to renew gift memberships for their giftee.
Me: ???
SH: For example, if I buy a gift membership for you and it expires or is about to expire, then I want to be able to renew it for you.
Me: Typically, gifts aren’t the gifter’s responsibility to manage. There’s no reason for you to be able to manage my membership from your account, even if just to renew. You’re opening up Pandora’s box here. If you let users renew for giftees, you’ll eventually have a user ask if they can cancel the giftee’s membership because they got into a fight and want to stick it to the giftee.
SH: But our users aren’t using the gift membership sales flow correctly. That results in all sorts of data issues for our reporting services and we spend so much time fixing it by hand.
Me: Your sales flow is confusing. The website asks users to verify membership for a giftee in case the giftee has or had a membership. How it the gifter supposed to know that? You’re trying to make things easier for you, but you’re expecting the user to know that and comply. That’s unrealistic.
SH: But there must be a something you can do.
Me: No.9 -
There’s a special place in hell for fuckwits who create tickets and don’t include the fucking error message.8
-
Boss: Use the same template that site [X] is using for this project.
Me: [X] is WordPress. Our project is asp.Net/C#. I can't
Boss: Why?
Me: You can't put a round peg in a square hole!
Boss: Why?
Me: [thinking about mortgage] I'll do it.
Boss: Why didn't you say so in the first place?
Me: [die a little inside]7 -
!rant
Need some opinions. Joined a new company recently (yippee!!!). Just getting to grips with everything at the minute. I'm working on mobile and I will be setting up a new team to take over a project from a remote team. Looking at their iOS and Android code and they are using RxSwift and RxJava in them.
Don't know a whole lot about the Android space yet, but on iOS I did look into Reactive Cocoa at one point, and really didn't like it. Does anyone here use Rx, or have an opinion about them, good or bad? I can learn them myself, i'm not looking for help with that, i'm more interested in opinions on the tools themselves.
My initial view (with a lack of experience in the area):
- I'm not a huge fan of frameworks like this that attempt to change the entire flow or structure of a language / platform. I like using third party libraries, but to me, its excessive to include something like this rather than just learning the in's / out's of the platform. I think the reactive approach has its use cases and i'm not knocking the it all together. I just feel like this is a little bit of forcing a square peg into a round hole. Swift wasn't designed to work like that and a big layer will need to be added in, in order to change it. I would want to see tremendous gains in order to justify it, and frankly I don't see it compared to other approaches.
- I do like the MVVM approach included with it, but i've easily managed to do similar with a handful of protocols that didn't require a new architecture and approach.
- Not sure if this is an RxSwift thing, or just how its implemented here. But all ViewControllers need to be created by using a coordinator first. This really bugs me because it means changing everything again. When I first opened this app, login was being skipped, trying to add it back in by selecting the default storyboard gave me "unwrapping a nil optional" errors, which took a little while to figure out what was going on. This, to me, again is changing too much in the platform that even the basic launching of a screen now needs to be changed. It will be confusing while trying to build a new team who may or may not know the tech.
- I'm concerned about hiring new staff and having to make sure that they know this, can learn it or are even happy to do so.
- I'm concerned about having a decrease in the community size to debug issues. Had horrible experiences with this in the past with hybrid tech.
- I'm concerned with bugs being introduced or patterns being changed in the tool itself. Because it changes and touches everything, it will be a nightmare to rip it out or use something else and we'll be stuck with the issue. This seems to have happened with ReactiveCocoa where they made a change to their approach that seems to have caused a divide in the community, with people splitting off into other tech.
- In this app we have base Swift, with RxSwift and RxCocoa on top, with AlamoFire on top of that, with Moya on that and RxMoya on top again. This to me is too much when only looking at basic screens and networking. I would be concerned that moving to something more complex that we might end up with a tonne of dependencies.
- There seems to be issues with the server (nothing to do with RxSwift) but the errors seem to be getting caught by RxSwift and turned into very vague and difficult to debug console logs. "RxSwift.RxError error 4" is not great. Now again this could be a "way its being used" issue as oppose to an issue with RxSwift itself. But again were back to a big middle layer sitting between me and what I want to access. I've already had issues with login seeming to have 2 states, success or wrong password, meaning its not telling the user whats actually wrong. Now i'm not sure if this is bad dev or bad tools, but I get a sense RxSwift is contributing to it in some fashion, at least in this specific use of it.
I'll leave it there for now, any opinions or advice would be appreciated.question functional programming reactivex java library reactive ios functional swift android rxswift rxjava18 -
Did your motivation ever suffered for company enforced tooling/stack?
I'm striving to be as adaptable as possible to not bitch if I have to use Angular insted of React or Java instead of Go but the stack which I was forced to use for the last two years is killing the joy I find in programming.
I'm talking about Spring WebFlux a stack which in theory is very promising (IO performances of NodeJS but in Java) but in practice is a pain to use: it makes polymorphism very hard forcing to rewrite tons of code, it significantly reduces your library choice, even after studying a damn book about it debugging remains a huge headache, unit testing often requires hacks and workarounds to be done...
Programming with it always feels like trying to fit a square peg in a round hole and I'm catching myself in procrastinating more and more, initially I feared I was burning out or losing my passion for the field but I noticed which the rare times I get to use a more canonical stack like .NET my motivation instantly returns but sadly I can use it only for few hours and then I return to WebFlux and my passion flees again.
I'm considering to look for another job but sadly lately I neglected my GitHub so I might have hard times in finding it.2 -
People should have mandatory lessons in vector processing.
In canteen, after lunch, there were 4 places you could place your trays. But only small, one-way corridor, for one person at a time to get there.
Every person picked the first place and while they were placing the tray, people behind them had to wait. Huge line started to form. If they, instead, always picked the last empty place, all tray places would be occupied for longer and the processing speed could increase almost 4 times.
Textbook vector processing example.2 -
So at our company, we use Google Sheets to for to coordinate everything, from designs to bug reporting to localization decisions, etc... Except for roadmaps, we use Trello for that. I found this very unintuitive and disorganized. Google Sheets GUI, as you all know, was not tailored for development project coordination. It is a spreadsheet creation tool. Pages of document are loosely connected to each other and you often have to keep a link to each of them because each Google Sheets document is isolated from each other by design. Not to mention the constant requests for permission for each document, wasting everybody's time.
I brought up the suggestion to the CEO that we should migrate everything to GitHub because everybody already needed a Github account to pull the latest version of our codebase even if they're not developers themselves. Gihub interface is easier to navigate, there's an Issues tab for bug report, a Wiki tab for designs and a Projects tab for roadmaps, eliminating the need for a separate Trello account. All tabs are organized within each project. This is how I've seen people coordinated with each other on open-source projects, it's a proven, battle-tested model of coordination between different roles in a software project.
The CEO shot down the proposal immediately, reason cited: The design team is not familiar with using the Github website because they've never thought of Github as a website for any role other than developers.
Fast-forward to a recent meeting where the person operating the computer connected to the big TV is struggling to scroll down a 600+ row long spreadsheet trying to find one of the open bugs. At that point, the CEO asked if there's anyway to hide resolved bugs. I immediately brought up Github and received support from our tester (vocal support anyway, other devs might have felt the same but were afraid to speak up). As you all know, Github by default only shows open issues by default, reducing the clutter that would be generated by past closed issues. This is the most obvious solution to the CEO's problem. But this CEO still stubbornly rejected the proposal.
2 lessons to take away from this story:
- Developer seems to be the only role in a development team that is willing to learn new tools for their work. Everybody else just tries to stretch the limit of the tools they already knew even if it meant fitting a square peg into a round hole. Well, I can't speak for testers, out of 2 testers I interacted with, one I never asked her opinion about Github, and the other one was the guy mentioned above. But I do know a pixel artist in the same company having a similar condition. She tries to make pixel arts using Photoshop. Didn't get to talk to her about this because we're not on the same project, but if we were, I'd suggest her use Aseprite, or (at least Pixelorama if the company doesn't want to spend for Aseprite's price tag) for the purpose of drawing pixel arts. Not sure how willing she would be at learning new tools, though.
- Github and other git hosts have a bit of a branding problem. Their names - Github, BitBucket, GitLab, etc... - are evocative of a tool exclusively used by developers, yet their websites have these features that are supposed to be used by different roles other than developers. Issues tabs are used by testers as well as developers. Wiki tabs are used by designers alongside developers. Projects and Insights tabs are used by project managers/product owners. Discussion tabs are used by every roles. Artists can even submit new assets through Pull Requests tabs if the Art Directors know how to use the site interface (Art Directors' job is literally just code review, but for artistic assets). These websites are more than just git hosts. They are straight-up Jira replacement with git hosting as a bonus feature. How can we get that through the head of non-developers so that we don't have to keep 4+ accounts for different websites for the same project?4 -
Nothing shits me more than being interrupted every two hours for a "huddle". Shove your buzzword up your ass and fuck off so I can actually get some work done. What am I currently working on? The same fucking thing I was doing before you interrupted me again for a status update.1
-
So I did this https://devrant.io/rants/797965/... which works fine until medium sized data.
However for large data the ETL pegs a 6 core Xeon (2.2GHz) with 50GB of ram. Because of it ends up doing six threaded compares, so 12 different data sets. Other than "pull less data", any tips?
Code (C#) is basically a Linq multi column join between two DataTables and when the compared columns don't match it returns as a var which is turned into a third DataTable to be SqlBulk loaded into the DB.
Table1 is external API return data (no windowing) and Table2 is from our DW.7 -
Stop shoving Django admin down everyones throat as a client facing solution every time we need any admin functionality.
It’s great at first but then you have to dick around customising it when you could build the same thing with any modern frontend framework and REST API easily.
Not to mention Django admin couples the models to the view it provides you (inlining particular models given their relationships) -
Question for all you Java devs out there (and a story). We have a customer that we interfacing with their machine. They sent us a simulator that runs in Windows written in Java. I did try running it in Linux, but the JVMs I have installed did not like it at all. Complained about missing deprecated stuff. I start up their sim in Windows and find it is opening between 50 and 100 network ports. Then I tell the simulator to run inside the gui for their program. It pegs all of my processor cores at 100%. I have pegged cores in software before, then corrected my errors in my code. However, I have never pegged all the cores at once. I am kind of in shock.
So, how hard is it to peg all the cores in a Java program? I assume they have a thread on every port or some nonsense?6 -
For a while my social life was fuck all due to death marches and poorly managed projects. I’d be so exhausted by the time the weekend rolled around that I just didn’t want to do anything.
Sticking to a healthy work schedule and prioritising family and friends after an 8 hour workday did wonders.
On weekends I just tell me wife that I want to look at technology x for a couple of hours and we plan our day around that.
Also, finding social events I want to attend like DnD made a huge difference.