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 - "best feature"
-
Got assigned an intern to mentor him, with an explicit order not to do any of the legwork for him.
We start out with some fuzzy requirements. Intern starts overengineering a generic solution, so I make out a best architecture that conforms to the business requirements and I explain it to the intern why are we going to use such approach and tell him how we are going to do it in three phases.
I explain the intern the first phase, break it down in small tasks for him and return to my projects...
After a couple of days of no words from the intern, I decide to check up on him to see how is he progressing, only to hear him complaining the task is boring. So, instead of doing the assigned tasks, he decided he should do a "design" for a feature I told him explicitly not to do, since it is going to be designed by the design team later on.
I explain it to the intern that we have to do the boring task first because we can't proceed with the next phase of the implementation without the necessary data from the phase one.
Intern says okay and assures me he got it now. Few days later, I check up on him, and he tells me he feels he is doing all the work and that I don't contribute to the project. I call up my boss and tell him intern wants a meeting. Since I was working from home, I quickly pack my things and head to the office. Boss talks to the intern before I managed to get to the office. Once I got there, I meet the intern, and he tells me everything is okay. I ask what did the boss say to make things okay all of a sudden, and he tells me he said we are a team now. Our company has a flat hierarchy model, so he tells me he doesn't feel he needs a mentor, that we are both equal, and that I have no idea how to work in a team, and then proceeds to comfort me on how human interaction is hard and that I will learn it one day... I was like wtf?
I tell him to finish the phase one of the project and start with the phase two, and I leave home again.
I call up my boss and ask him what did he say to the intern, and he says: "nothing much, just explained the project a little bit and how it fits in the grand scheme of things.". I ask about the equal team members thing, and me not being a mentor any longer, the boss goes wtf, saying he never said anything about that to him.
So the kid can't focus on a single task, over-engineers everything and doesn't feel he can learn anything from developers with more experience, doesn't want to obey commands, and also likes to lie to manipulate others.
Tomorrow we'll decide what to do with him...
Sorry for the long rant, it was a long stressful day.86 -
This happened at my previous job where I worked for a dating app. It was at a time where the CEO was trying to turn the dating app into “more than a dating app” by adding tons of social features. We always had “interests” which allowed users to see what interests they had in common with another person, but he wanted to take the social component even further.
So with that, he decided we needed an “activity feed.” The activity feed would show what various Facebook connected users were liking on Facebook, posting on Facebook, etc. On a dating app. Where the majority of the audience was > 50 years old. The idea was absolutely ridiculous and everyone but the CEO knew it was destined for failure before we started building it.
But that’s not the best part. The best part was when we launched the activity feed component. We launched it late on day and went home shortly after. The next morning, we came in, and checked on the activity feed to see what was doing. It was literally all spammers liking porn/sex related stuff on Facebook. It was a complete disaster. All garbage but not just boring garbage - completely obscene garbage.
And just like that, the activity feature came and went in the course of a few days.18 -
An open letter to the guy that commented on my website:
«Function X does not work. This program is shit. I am going to uninstall it and tell everyone.»
I'm sorry that my completely open source project didn't work for you. The fact that I lost countless days and months and years working on it in my free time, without ever asking for a cent, just trying to do something good for the community, doesn't give me the right to release a feature that may be buggy.
You could have opened a bug report. But that takes time. A whole 2 minutes. I understand the urge to post such a harsh public critic on my website. That's why I was so calm and understanding when I replied to you there.
However, it's a long time I wasn't browsing devRant and I confess I felt the urge to tell you to go fuck yourself. And this is the best place to do it! I'd pay to know you. I'd love to see your face. Oooh you must be so confident of yourself. I'm sure you have accomplished a lot in your life. So here's my message:
Go Fuck Yourself Asshole9 -
Today is the 2nd anniversary of devRant unofficial UWP! 😁
Brief summary of the last year:
- A total of 36 updates have been released this year, becoming now 60 in total;
- v2 passed through the closed beta phase with the help of 15 devRanters;
- v2 public beta has been released for everyone;
- The app received (beta) support for Xbox One and Microsoft Hub (becoming available for all the UWP devices: PC, Mobile, HoloLens, Surface Hub, Xbox One);
- The official Issue Tracker on GitHub has been created;
- 35 out of 48 issues/feature requests on the Issue Tracker have been solved;
- The v2 got featured by the official Microsoft Design twitter account;
- The app reached more than 2,000 acquisitions from the Microsoft Store (about 300 active users everyday with an average 20 minutes daily session, ~2.5 sessions per day), +100% since last year;
- Still maintains a solid 4.8 out of 5 average rating on the Microsoft Store (4.9 and even 5.0 in some countries, based on ~300 reviews);
- Softpedia editor has reviewed it 4.5 out of 5, becoming the best devRant client on that website, followed by devRantron (with a solid 4 out of 5);
- Has been featured as "App of the Day" by "myAppFree";
If you're not yet part of the UWP ranters community, download the app now:
https://microsoft.com/store/apps/...
Link to the rant for the 1st anniversary with the full story about this app:
https://devrant.com/rants/59906611 -
We just launched our new stories feature! If you go to the "stories" section, you'll see only rants that are over 70 words and you'll be able to easily enjoy the best long-form rants on devRant!
Just to clarify - all functionality is remaining the same. The main feed will still show all rants. Stories just makes it easier to find fun rants that involve more detailed stories/ranting and helps give them some more exposure.
We hope you enjoy! Feel free to comment here if you have any questions/suggestions about this.10 -
A few years back, there was a super repetitive task I needed to do to create a bunch of new screens for a new feature.
The task was so repetitive that I just couldn't bring myself to do it, and was avoiding it as long as possible.
Finally the day came where I needed to get it done. I sat at the computer readying myself to finally start/finish the task.
As I was going through the files, I could see all the work had already been done..? Confused, I opened up git history, and saw that I had checked the files in a few nights back.
Best I could do was trace it back to a house party where I was the last to go to sleep.
That was the day that I realised the power of auto-pilot :)1 -
Ladies and gentlemen, prepare yourselves for a rant with a capital R, this is gonna be a long one.
Our story begins well over a year ago while I was still in university and things such as "professionalism" and "doing your job" are suggestions and not something you do to not get fired. We had multiple courses with large group projects that semester and the amount of reliable people I knew that weren't behind a year and in different courses was getting dangerously low. There were three of us who are friends (the other two henceforth known as Ms Reliable and the Enabler) and these projects were for five people minimum. The Enabler knew a couple of people who we could include, so we trusted her and we let them onto the multiple projects we had.
Oh boy, what a mistake that was. They were friends, a guy and a girl. The girl was a good dev, not someone I'd want to interact with out of work but she was fine, and a literal angel compared to the guy. Holy shit this guy. This guy, henceforth referred to as Mr DDTW, is a motherfucking embarrassment to devs everywhere. Lazy. Arrogant. Standards so low they're six feet under. Just to show you the sheer depth of this man's lack of fucks given, he would later reveal that he picked his thesis topic "because it's easy and I don't want to work too hard". I haven't even gotten into the meat of the rant yet and this dude is already raising my blood pressure.
I'll be focusing on one project in particular, a flying vehicle simulator, as this was the one that I was the most involved in and also the one where shit hit the fan hardest. It was a relatively simple-in-concept development project, but the workload was far too much for one person, meaning that we had to apply some rudimentary project management and coordination skills that we had learned to keep the project on track. I quickly became the de-facto PM as I had the best grasp on the project and was doing a lot of the heavy lifting.
The first incident happened while developing a navigation feature. Another teammate had done the basics, all he had to do was use the already-defined interfaces to check where the best place to land would be, taking into account if we had enough power to do so. Mr DDTW's code:
-Wasn't actually an algorithm, just 90 lines of if statements sandwiched between the other teammate's code.
-The if statements were so long that I had to horizontal scroll to see the end, approx 200 characters long per line.
-Could've probably been 20 normal-length lines MAX if he knew what a fucking for loop was.
-Checked about a third of the tiles that it should have because, once again, it's a series of concatenated if statements instead of an actual goddamn algorithm.
-IT DIDN'T FUCKING WORK!
My response was along the lines of "what the fuck is this?". This dipshit is in his final year and I've seen people write better code in their second semester. The rest of the team, his friend included, agreed that this was bad code and that it should be redone properly. The plan was for Mr DDTW to move his code into a new function and then fix it in another branch. Then we could merge it back when it was done. Well, he kept on saying it was done but:
-It still wasn't an algorithm.
-It was still 90 lines.
-They were still 200 characters wide.
-It still only checked a third of the tiles.
-IT STILL DIDN'T FUCKING WORK!
He also had one more task, an infinite loop detection system. He watched while Ms Reliable did the fucking work.
We hit our first of two deadlines successfully. We still didn't have a decent landing function but everything else was nice and polished, and we got graded incredibly well. The other projects had been going alright although the same issue of him not doing shit applied. Ms Reliable and I, seeing the shitstorm that would come if this dude didn't get his act together, lodged a complaint with the professor as a precautionary measure. Little did I know how much that advanced warning would save my ass later on.
Second sprint begins and I'm voted in as the actual PM this time. We have four main tasks, so we assign one person to each and me as a generalist who would take care of the minor tasks as well as help out whoever needed it. This ended up being a lot of reworking and re-abstracting, a lot of helping and, for reasons that nobody ever could have predicted, one of the main tasks.
These main tasks were new features that would need to be integrated, most of which had at least some mutual dependencies. Part of this project involved running our code, which would connect to the professor's test server and solve a server-side navigation problem. The more of these we solved, the better the grade, so understandably we needed an MVP to see if our shit worked on the basic problems and then fix whatever was causing the more advanced ones to fail. We decided to set an internal deadline for this MVP. Guess who didn't reach it?
Hitting the character limit, expect part 2 SOON7 -
*creates a freelancer account on some website.
*builds portfolio and gets things running.
*meets his first client.
Client: Hello. so your profile says you are an experienced full stack developer. You are just the kind of person i've been looking for.
Me: Yep.
Client: Okay I have a project for you. I am looking at developing a simple website that has a few functions and the budget is 100$.
Me: Okay smooth. Hit me with the descriptions.
Client: it's going to be a dating website. Once a user signs up; the website would automatically take control of the user's media devices in his/her home; automatically playing something romantic. You get me?
Me: Em... Idk about that it seems a bit...
Client: it can be done! Develop the algorithm.
Me: Em... Ok.
Client: Well, next the website uses some complex sorting algorithm and sorts existing members based on their past real life relationships. It puts the best people above the messy ones.
Me: o.0
*client goes on with his bullshit in like another 10 lines of messages.
Me: -_-
Client: so what do you think? How soon can you begin and how soon can we be done?
Me: Do you also want a "butt scratcher" feature? Like a hand pops out of the monitor and asks to scratch the user's anus?
*client leaves the chat.
Me: Oh. I guess he a thing against family guy.12 -
This one tops the pile for best ... err worst security feature.
<script type = "text/JavaScript">
If( userType != "admin" )
window.location.href = "http://www.example.com";
</script>
What could possibly go wrong?2 -
Boss was in India demoing an app I wrote from scratch, minus a printer feature I insisted was necessary. Get a call from my boss: “I don’t need you to tell me you told me so, I need a printer and supporting functionality”
Being a dev in South Africa (at the time) meant that availability wasn’t the best. I drove out to a supplier, got the required hardware (on personal funds) and wrote the library. Had it all done and updated in 24 hours.
My boss refused to pay for the printer or give me any time in lieu. Started looking for jobs the same day.5 -
I was interviewed for a gaming studio, when I showed them my hobby projects for play testing we encountered a bug, convinced them it was feature and put on my best poker face.
Boy was I shocked when I got hired.7 -
When will Google understand what an ecosystem means ?
Love it or hate it. What makes Apple devices homely is the ability to build a banded and consolidated associative user space that feels the same anytime on any platform. Crafting an ecosystem might be a daunting task , and requires adaptive and perfective rework through a long period. But it pays of , just like apples utility app suite does today. It was a journey to get it right.
Now we have Google , a company that is confused most of the time , releasing new apps everytime they have new feature in mind. According to me , Google did a phenomenal job in building hangouts and Allo , hangouts was a huge step forward from gChat , and Allo was way ahead of its time for a fun and innovative IM app. But what's the need for 2 different apps ? One has video calling , text messaging , group sharing , everything the Allo had.
Then all of a sudden you get Google Duo " The best ever video calling app " Why wasn't this integrated with hangouts and marketed the same way ?
Trial and error is one thing , this seems a lot like the lack of effort in architecting coaction and a well designed internetworking application framework. A lot of unnecessary choices have led to the shutting down of majority of their apps. Allo and hangouts included , but all this would have been unnecessary if the goal was to always build upon iteratively.
While I believe Allo was marketed as a cross platform chat application unlike hangouts , an integration plan could have always circumvented this issue.
I have to talk about another one of Google's failed efforts in recognition of potential , the hello app , but this rant has gone a bit too far already. So I'll post 6 hours later 😅
Well I'll always have the hope to see Google integrate the best of their ideas in a more relaxed and realised structure than what exists today. :)13 -
At the end of side job customer asked if I could add one feature for double the money.
Did it in 1min and with 3 loc. Best deal ever made ;)7 -
I don't want to write clean code anymore :(
I read Clean Code, Clean Coder, and watched many uncle bob's videos, and I was able to apply best practices and design patterns
I created many systems that really stood the test of time...
Management was kind enough to introduce me to uncle bob clean code in the first place, letting us watch it during work hours. after like one year, my code improved 400% minimum because I am new and I needed guidance from veterans...
That said, to management I am very slow, compared to this other guy, they ask me for a feature and my answer would be like "sure, we need to update the system because it just doesn't support that right now, it is easy though it would take 2 days tops"
they ask the same thing for the other guy : "ok let me see what I can do", 1 hour later, on slack, he writes : done. he slaps bunch of if-statement and make special case that will serve the thing they asked for.
oh 'cool' they say -> but it doesn't do this -> it needs to do that -> ok there is a new bug,-> it doesn't work in build mode-> it doesn't work if you are logged in as a guest, now its perfect ! -> it doesn't work on Android -> ok it works on android but now its not perfect anymore.
and they feel like he is fast (and to be fair he is), this feature? done. ok new bugs? solved. Android compatibility ? just one day ... it looks like he is doing doing doing.
it ends up taking double the time I asked for, and that is not to mention the other system affected during this entire process, extra clean up that I have to do, even my systems that stood the test of time are now ruined and cannot be extracted to other projects. because he just slaps whatever bools and if statements he needs inside any system, uses nothing but Singleton pattern on everything. our app will never be ready-for-business, this I can swear. its very buggy. and to fix it, it needs a change in mentality, not in code.
---------------
uncle bob said : write your code the right way, and the management will see that your code generates less errors, with time, you will earn respect even though they will feel you are slow at first.
well sorry uncle, I've been doing it for a year, my image got bad, you are absolutely right, only when there is no one else allowed to drop a giant shit inside your clean code.
note: we don't really have a technical lead.
-------------------
its been only two days since my new "hack n' slash" meta, the management is already kind of "impressed" ... so I'll keep hacking and slashing until I find a better job.9 -
//
// devRant unofficial UWP update (v1.5.6)
//
Hi!
A new update for Windows 10 users is in certification right now (will be available in a few hours/days), with the new feature you could see a few days ago on the official client.
But the main reason of this post is that I've seen the success of the official Issue Tracker created in August by @dfox and @trogus on GitHub.
For this reason I decided to do the same for the unofficial client.
Feel free to post bugs reports (I prefer this method instead of emails) and requests of features (even if not available in the official client) you would like to see.
https://github.com/JakubSteplowski/...
Complete changelog of v1.5.6:
- Added new 'post type' selector for easier classification of rant types in the future;
- Added Official devRant unofficial Issue Tracker on GitHub;
- Added Feedback page with link to GitHub Issue Tracker repo;
- Added black theme... no, wait... already there.
- Minor UI improvements;
- Minor back-end improvements;
I hope to see a lot of interesting feature requests I will enjoy to implement to make the UWP client always the best for you, Windows community. 😁18 -
Apparently, part of being a software engineer means knowing how to read minds and do other people's jobs.
While implementing a user story for marketing, we found some associated features that, according to the database, have not been used for years. We tell them this. We do the courtesy of asking, "Hey, is there anything on the site that is utilizing these features? We'd like to clean up the DB."
"We don't know."
Engineering suggests, "Ok, lets turn the feature off, then, and see if anyone complains. It's been years according to the DB."
Marketing gets angry and hostile and says, "That's not the way to do things!"
I don't vocalize, "Well, not knowing how to do your own damned job is not the way to do things."
-
Marketing asks us to integrate a third party feature to the site. We ask, "Ok, what page do you want it on, and what information do you want to collect, and what should it look like?"
"I don't know. You're engineering. You tell us."
We implement it as best we can.
Marketing says, "HEY! This isn't done right! It's missing this and this and this!"
"Did you ask us to implement that? According to the user story, it passes acceptance criteria."
Marketing says, "I thought you would just know that! I didn't know it was a separate thing. Just put it on all the pages, then. You guys really should know the site better."
Engineering gets angry and hostile
-
Marketing says, "We need this removed from the site."
Engineering replies, "We have a GUI for that. Just go to this URL and you can do it yourself."
Marketing replies, "Well, if that's a really complicated thing, can you just run a script against the DB?"
Engineering says, "If we've built a UI for you, we really shouldn't be executing SQL scripts directly against the DB."
Marketing gets angry and hostile.
-
Engineering tries asking nicely.
"Marketing, if you want us to add new stuff to the site, or change stuff, please tell us what it is and where it should go and what the customer experience should be like."
Marketing replies, "We don't know the site that well. We are leaning on you to tell us."
I do not vocalize, all while trying to keep my eyes from bulging out of my head, my face red with rage, "YOU ARE IN CHARGE OF SELLING SHIT ON A WEBSITE THAT YOU KNOW NOTHING ABOUT. YOU ARE ASKING FOR CHANGES TO SOMETHING YOU DON'T EVEN UNDERSTAND. WHAT IS WRONG WITH THIS PICTURE?"
Engineering is angry and hostile.3 -
I finally did it. I finally got rid of that client in a positive, respectful manner.
So basically, my dad has a freelance colleague. For a side project that person asked me to make him a website. My dad mentioned to said person that my sister's boyfriend does web design (he's trained to use autocad for designing the structure of furniture, nothing fancy just straight lines and upside down doors that fail after a while..
So my brother in law charged the guy 400 money for the design. I charged the guy 200 for the programming because my dad forced me to drop down my price to fit the budget because business relationship and he obviously couldn't let my sister's boyfriend not make more money than he deserves.
In the end after waiting on the design for weeks (I literally saw him do it in photoshop all in 2 layers on his laptop in half an hour) I had to rush the project because the due date was coming up. I already had most of it done but I had to redo a good part of the front-end to fit the design structure. I also had to re-do the design in photoshop to get the images and colors I needed, then cut it up into html. So realistically, my sister's boyfriend barely did anything.
Now the deal was that I'd develop the website and perform any updates/upgrades to it. I'd also host it on my webserver for a monthly fee. My sister's boyfriend was to handle any and all content related support.
At first it was all good, I only ever spoke with the guy when he needed a feature added and he paid me well for it. Overall the hit I took in initial development was paying off. As time went by, my sister's boyfriend started ignoring the guy's calls and the guy started calling me instead.
Now, he had this deal with my brother in law where he could charge his time at 35 money an hour. That's about 4 times minimum wage for not doing much.
Then I started to basically take over all support, but I was only allowed to charge 30 an hour. Pretty reasonable still and I wasn't too busy so it was all good.
As time went by I ended up getting asked to do more and more minimal changes. At some point I had done so many minimal changes I had to charge the guy about 2 hours extra that month and he went completely mental saying I can't just work for hours without telling him beforehand. We decided I had to discuss a price before any change. I charged my time on the phone with him twice after that and both times he bitched about me being expensive and once he even said he wanted to leave.
Now comes the fun part. A week ago he had an issue that was 100% support related. He tried calling my sister's boyfriend but the guy obviously didn't pick up. He called my dad about it, and my dad ended up calling my my sister's boyfriend. Now this guy is so slimy, he purposely didn't hang up the phone knowing my dad would use his cell and assume the other party would hang up because calls cost money. The guy heard my dad call my sister's boyfriend and heard him pick up immediately. He went completely mental saying how he wants both of us to always reply and call him back immediately.
This guy was always my lowest priority. He didn't really make me money and his calls and requests were annoying and unnecessary. Add to that that I specifically didn't want to handle support and was forced into it anyway, while all 'design' things (up to figuring out where and how to display a visitor counter) absolutely had to go to my sister's boyfriend..
But regardless of that, I generally replied to his emails within 10-20 minutes and rarely more than 25 hours.
My dad agreed (for us) that we now both had to reply to him within 24 hours. I was now stuck checking my voicemail every couple hours because my sister's boyfriend sucks at life.
During his rant he threatened to leave me, again. That was the point where I said fuck it.
For the past week I've been ignoring his calls. When he emails me I don't take more than 5 minutes replying. This morning I found an e-mail with 4 requests;
He wanted me to make a content-related change;
He wanted me to give him access to the site's Google analytics;
He wanted me to add a feature and write a guide on how to use it;
And fucking finally, he wanted a 'token to transfer his website'.
I promptly emailed him back saying I added his email a week ago and that he'd gotten an email from Google about it then, that I'd changed the content he wanted me to, a price for the last dev task and a token for his domain name, adding that its valid for 35 days and that his new host can contact me to receive a backup file of his website.
Sadly, I do have this on 10-minute dev job to do, but then I'm invoicing him all jobs I haven't invoiced yet and he can find another host willing to deal with his insanity.
The best part is I lose a webhosting client but I'm sure he'll still ask my sister's bitched parasitic boyfriend whenever he needs a photo resized and he'll still pay him 35 money for 2 minutes of work.
Fuck customers.6 -
Feature request for @dfox:
Swiping for rants:
Left = nay, right = yay
Or better:
Match making via rants for devSingles.
Just kidding! I love devRant the way it is. It's the best app. Probably the best of all. It's huge. You'll like it.7 -
It's enough. I have to quit my job.
December last year I've started working for a company doing finance. Since it was a serious-sounding field, I tought I'd be better off than with my previous employer. Which was kinda the family-agency where you can do pretty much anything you want without any real concequences, nor structures. I liked it, but the professionalism was missing.
Turns out, they do operate more professionally, but the intern mood and commitment is awful. They all pretty much bash on eachother. And the root cause of this and why it will stay like this is simply the Project Lead.
The plan was that I was positioned as glue between Design/UX and Backend to then make the best Frontend for the situation. Since that is somewhat new and has the most potential to get better. Beside, this is what the customer sees everyday.
After just two months, an retrospective and a hell lot of communication with co-workers, I've decided that there is no other way other than to leave.
I had a weekly productivity of 60h+ (work and private, sometimes up to 80h). I had no problems with that, I was happy to work, but since working in this company, my weekly productivity dropped to 25~30h. Not only can I not work for a whole proper work-week, this time still includes private projects. So in hindsight, I efficiently work less than 20h for my actual job.
The Product lead just wants feature on top of feature, our customers don't want to pay concepts, but also won't give us exact specifications on what they want.
Refactoring is forbidden since we get to many issues/bugs on a daily basis so we won't get time.
An re-design is forbidden because that would mean that all Screens have to be re-designed.
The product should be responsive, but none of the components feel finished on Desktop - don't talk about mobile, it doesn't exist.
The Designer next to me has to make 200+ Screens for Desktop and Mobile JUST so we can change the primary colors for an potential new customer, nothing more. Remember that we don't have responsiveness? Guess what, that should be purposely included on the Designs (and it looks awful).
I may hate PHP, but I can still work with it. But not here, this is worse then any ecommerce. I have to fix legacy backend code that has no test coverage. But I haven't touched php for 4 years, letalone wrote sql (I hate it). There should be no reason whatsoever to let me do this kind of work, as FRONTEND ARCHITECT.
After an (short) analysis of the Frontend, I conclude that it is required to be rewritten to 90%. There have been no performance checks for the Client/UI, therefor not only the components behave badly, but the whole system is slow as FUCK! Back in my days I wrote jQuery, but even that shit was faster than the architecuture of this React Multi-instance app. Nothing is shared, most of the AppState correlate to other instances.
The Backend. Oh boy. Not only do we use an shitty outated open-source project with tons of XSS possibillities as base, no we clone that shit and COPY OUR SOURCES ON TOP. But since these people also don't want to write SQL, they tought using Symfony as base on top of the base would be an good idea.
Generally speaking (and done right), this is true. but not then there will be no time and not properly checked. As I said I'm working on Legacy code. And the more I look into it, the more Bugs I find. Nothing too bad, but it's still a bad sign why the webservices are buggy in general. And therefor, the buggyness has to travel into the frontend.
And now the last goodies:
- Composer itself is commited to the repo (the fucking .phar!)
- Deployments never work and every release is done manually
- We commit an "_TRASH" folder
- There is an secret ongoing refactoring in the root of the Project called "_REFACTORING" (right, no branches)
- I cannot test locally, nor have just the Frontend locally connected to the Staging webservices
- I am required to upload my sources I write to an in-house server that get's shared with the other coworkers
- This is the only Linux server here and all of the permissions are fucked up
- We don't have versions, nor builds, we use the current Date as build number, but nothing simple to read, nonono. It's has to be an german Date, with only numbers and has always to end with "00"
- They take security "super serious" but disable the abillity to unlock your device with your fingerprint sensor ON PURPOSE
My brain hurts, maybe I'll post more on this shit fucking cuntfuck company. Sorry to be rude, but this triggers me sooo much!2 -
Let the student use their own laptops. Even buy them one instead of having computers on site that no one uses for coding but only for some multiple choice tests and to browse Facebook.
Teach them 10 finger typing. (Don't be too strict and allow for personal preferences.)
Teach them text navigation and editing shortcuts. They should be able to scroll per page, jump to the beginning or end of the line or jump word by word. (I am not talking vi bindings or emacs magic.) And no, key repeat is an antifeature.
Teach them VCS before their first group assignment. Let's be honest, VCS means git nowadays. Yet teach them git != GitHub.
Teach git through the command line. They are allowed to use a gui once they aren't afraid to resolve a merge conflict or to rebase their feature branch against master. Just committing and pushing is not enough.
Teach them test-driven development ASAP. You can even give them assignments with a codebase of failing tests and their job is to make them pass in the beginning. Later require them to write tests themselves.
Don't teach the language, teach concepts. (No, if else and for loops aren't concepts you god-damn amateur! That's just syntax!)
When teaching object oriented programming, I'd smack you if do inane examples with vehicles, cars, bikes and a Mercedes Benz. Or animal, cat and dog for that matter. (I came from a self-taught imperative background. Those examples obfuscate more than they help.) Also, inheritance is overrated in oop teachings.
Functional programming concepts should be taught earlier as its concepts of avoiding side effects and pure functions can benefit even oop code bases. (Also great way to introduce testing, as pure functions take certain inputs and produce one output.)
Focus on one language in the beginning, it need not be Java, but don't confuse students with Java, Python and Ruby in their first year. (Bonus point if the language supports both oop and functional programming.)
And for the love of gawd: let them have a strictly typed language. Why would you teach with JavaScript!?
Use industry standards. Notepad, atom and eclipse might be open source and free; yet JetBrains community editions still best them.
For grades, don't your dare demand for them to write code on paper. (Pseudocode is fine.)
Don't let your students play compiler in their heads. It's not their job to know exactly what exception will be thrown by your contrived example. That's the compilers job to complain about. Rather teach them how to find solutions to these errors.
Teach them advanced google searches.
Teach them how to write a issue for a library on GitHub and similar sites.
Teach them how to ask a good stackoverflow question :>6 -
Dear fucking boss,
If you want me to implement a huge feature which requires the creation of dozens of db tables, server side classes and front end pages, just fucking stop ask me every 2 hours if I’m done.
Best regards,
The employee that will quit in a week or two6 -
Ticket: Add <feature> to <thing>. It works in <other things> so just copy it over. Easy.
Thing: tangled, over-complicated mess.
Feature: tangled and broken, and winds much too deep to refactor. Gets an almost-right answer by doing lots of things that shouldn't work but somehow manage to.
I write a quick patch that avoids the decent into madness and duplicates the broken behavior in a simple way for consistency and ease of fixing later. I inform my boss of my findings and push the code.
He gets angry and mildly chews me out for it. During the code review, he calls my patch naive, and says the original feature is obviously not broken or convoluted. During the course of proving me wrong, he has trouble following it, and eventually finds out that it really is broken -- and refuses to admit i was right about any of it. I'm still in trouble for taking too long, doing it naively, and not doing it correctly.
He schedules a meeting with product to see if we should do it correctly. He tells product to say no. Product says no. He then tells me to duplicate the broken behavior. ... which I already did.
At this point I'm in trouble for:
1) Taking too long copying a simple feature over.
2) Showing said feature is not simple, but convoluted and broken.
3) Reimplementing the broken feature in a simpler way.
4) Not making my new implementation correct despite it not working anywhere else, and despite how that would be inconsistent.
Did everything right, still in the wrong.
Also, they decided I'm not allowed to fix the original, that it should stay broken, and that I should make sure it's broken here, too.
You just have to admire the sound reasoning and mutual respect on display. Best in class.19 -
One time a former colleague reformatted all the code because he was very strict on code conventions.. so.
If (1==1)
{
Instead of
If (1==1) {
After some discussion on why he should never do this I denied him the rights to commit any longer..
Also..
One time a user requested a feature.. he wanted a drop down with some values without specifying where he wanted it. To our best knowledge we put it somewhere where we thought it would be usefull.. for instance when it is a car model drop down ypu expect it to be somewhere near a car screen right.. little did we know that he didnt have any rights to acces that screen at all hhahaha.. after that he came yelling in our room telling us to think for him.. in not so light words I told him that he should write his stories properly and that if he creates crappy stories he leaves me with a lot of freedom of interpretation of his stories so stop crying and get the fuck out of my room..
Its not that I get angry easily but I cant handle dumb people that do dumb stuff around me..14 -
During a meeting with the client
Client: I don't care how long it takes to complete the app, I want the app to be polished and give the users the best experience!
Us: Got it.
*Later that day*
Client: *wants to implement a new feature in the app*
Us: It'll take us a day or two.
Client: That long?! I need to get it to the market ASAP!
Us:.......
:D -
The best feature in Intellij is the export to Eclipse. I fucking hate Eclipse but we have to submit our assignments as eclipse projects. Eclipse is the worst software i have ever seen. It even crashed in the same Moment as a classmate asked why i hated Eclipse.2
-
Client:
"Ok,. so your saying that its gonna take you 63 hrs to create a simplified CRM with basic functionality and auto fill docs or automated work flow docs as an added feature?"
My response (after already under-quoting and planning on cutting some corners because he has a smaller budget than normally necessary):
"It sounds simpler than it is. There are a lot of things I need to take into account that you wouldn't even think about.
For instance:
Making sure your emails don't go to the client's spam folder. This requires the sending domain to be verified via DNS settings. I have to ensure your email content passes a spam test (link to text ratio needs to be good). I assumed you'd want an email that has your logo and looks good. This means testing the design in Outlook to make sure it's not broken.
What if the email doesn't send due to an invalid email address, or bounces back? You'll need to be notified.
What if the client list for the week contains duplicates? You need them merged or ignored.
Generating a PDF from HTML can be tricky because the conversion isn't apples to apples so there are things I need to adjust to make them as close as possible.
Making a site completely mobile friendly (the tier 3 option) can be very time consuming as well. It's not about whether or not it fits on a mobile phone, it's about whether or not it's intuitive and useful. You're essentially getting a mobile app without paying for separate development of an app.
If I took everything into consideration and built this to be 100% bullet proof, it would cost tens of thousands.
I'm doing my best to leverage your needs with the probability of running into an issue. I'm not going waste my time/your money on something that will likely never happen."9 -
Favorite/most hated language? (I love a good flame war)
Why did you quit your previous job / Moment you've considered quitting your current job?
Why do you think Linux is so much better than OSX? (Ahh yes I feed on apple flavored hipster tears)
What side project are you currently working on?
If you had the best teams and unlimited funds, to be used only on a serious project using both Blockchain, IoT and AI, what would you create?
If you forgot how to code, what other career would you pursue?
What is your "I was so busy wondering if I could, that I forgot whether I should" concept/idea/project?
How many chicken eggs would fit inside the moon if it was hollow? (I like retarded interview questions)
If you started a startup, what unique perk would you offer your developer employees?
Do you under- or overengineer?
Most unnecessary feature you ever had to create?
Most necessary feature your boss/client denied to approve?15 -
It took me around 10 hours, but I finally got a new feature onto my discord-bot. Best thing about it is, that I can basically transfer it onto every meme format4
-
So.... We spend most our lives learning languages and methodologies and best practices and all that crap while depriving ourselves of sleep because the rules said if we did that we'd make something cool and have fun doing it...
But then *any company here* comes along and says make this shitty feature in *arbitrary time here* for our stupid *product here*.
You do it working overtime and sacrificing quality to have the client say afterwards that he wants something different (from his own specs).
And then the circle repeats...
I should consider a different profession...
Hey plants don't speak... Maybe I'll be a gardener!
Clip here clip there - done. I'll be a happy fucking script2 -
I guess the best feature of devRant is that the homepage, where we see all the rants, does not show who posted each rant. It just shows the rants. That's it. Great to see the app is "rant centric" and not "user centric".3
-
So I'm back from vacation! It's my first day back, and I'm feeling refreshed and chipper, and motivated to get a bunch of things done quickly so I can slack off a bit later. It's a great plan.
First up: I need to finish up tiny thing from my previous ticket -- I had overlooked it in the description before. (I couldn't test this feature [push notifications] locally so I left it to QA to test while I was gone.)
It amounted to changing how we pull a due date out of the DB; some merchants use X, a couple use Y. Instead of hardcoding them, it would use a setting that admins can update on the fly.
Several methods deep, the current due date gets pulled indirectly from another class, so it's non-trivial to update; I start working through it.
But wait, if we're displaying a due date that differs from the date we're actually using internally, that's legit bad. So I investigate if I need to update the internals, too.
After awhile, I start to make lunch. I ask my boss if it's display-only (best case) and... no response. More investigating.
I start to make a late lunch. A wild sickness appears! Rush to bathroom; lose two turns.
I come back and get distracted by more investigating. I start to make an early dinner... and end up making dinner for my monster instead.
Boss responds, tells me it's just for display (yay!) and that we should use <macro resource feature> instead.
I talk to Mr. Product about which macros I should add; he doesn't respond.
I go back to making lunch-turn-dinner for myself; monster comes back and he's still hungry (as he never asks for more), so I make him dinner.
I check Slack again; Mr. Product still hasn't responded. I go back to making dinner.
Most of the way through cooking, I get a notification! Product says he's talking it through with my boss, who will update me on it. Okay fine. I finish making dinner and go eat.
No response from boss; I start looking through my next ticket.
No response from boss. I ping him and ask for an update, and he says "What are you talking about?" Apparently product never talked to bossmang =/ I ask him about the resources, and he says there's no need to create any more as the one I need already exists! Yay!
So my feature went from a large, complex refactor all the way down to a -1+2 diff. That's freaking amazing, and it only took the entire day!
I run the related specs, which take forever, then commit and push.
Push rejected; pull first! Fair, I have been gone for two weeks. I pull, and git complains about my .gitignore and some local changes. fine, whatever. Except I forgot I had my .gitignore ignored (skipped worktree). Finally figure that out, clean up my tree, and merge.
Time to run the specs again! Gems are out of date. Okay, I go run `bundle install` and ... Ruby is no longer installed? Turns out one of the changes was an upgrade to Ruby 2.5.8.
Alright, I run `rvm use ruby-2.5.8` and.... rvm: command not found. What. I inspect the errors from before and... ah! Someone's brain fell out and they installed rbenv instead of the expected rvm on my mac. Fine, time to figure it out. `rbenv which ruby`; error. `rbenv install --list`; skyscraper-long list that contains bloody everything EXCEPT 2.5.8! Literally 2.5 through 2.5.7 and then 2.6.0-dev. asjdfklasdjf
Then I remember before I left people on Slack made a big deal about upgrading Ruby, so I go looking. Dummy me forgot about the search feature for a painful ten minutes. :( Search found the upgrade instructions right away, ofc. I follow them, and... each step takes freaking forever. Meanwhile my children are having a yelling duet in the immediate background, punctuated with screams and banging toys on furniture.
Eventually (seriously like twenty-five minutes later) I make it through the list. I cd into my project directory and... I get an error message and I'm not in the project directory? what. Oh, it's a zsh thing. k, I work around that, and try to run my specs. Fail.
I need to update my gems; k. `bundle install` and... twenty minutes later... all done.
I go to run my specs and... RubyMine reports I'm using 2.5.4 instead of 2.5.8? That can't be right. `ruby --version` reports 2.5.8; `rbenv version` reports 2.5.8? Fuck it, I've fought with this long enough. Restarting fixes everything, right? So I restart. when my mac comes back to life, I try again; same issue. After fighting for another ten minutes, I find a version toggle in RubyMine's settings, and update it to 2.5.8. It indexes for five minutes. ugh.
Also! After the restart, this company-installed surveillance "security" runs and lags my computer to hell. Highest spec MacBook Pro and it takes 2-5 seconds just to switch between desktops!
I run specs again. Hey look! Missing dependency: no execjs. I can't run the specs.
Fuck. This. I'll just push and let the CI run specs for me.
I just don't care anymore. It's now 8pm and I've spent the past 11 hours on a -1+2 diff!
What a great first day back! Everything is just the way I left it.rant just like always eep; 1 character left! first day back from vacation miscommunication is the norm endless problems ruby6 -
So we ordered a piece of software from external software house becouse I was low on time and we needed it asap.
So. Long story short, their software was bugged as hell, they deny all the bugs and they have their BDD that they done and anything we say about it like "feature XYZ is broken on firefox" they will deny it "becouse it wasn't on BDD" or "let's get on call" (in which +- 6-7 people participate from their side and we of course have to pay them for this...)
So they fixed like 20% of bugs (mostly trivials/minors) Application is fairly small scope. You have integration with like 3 endpoints on arbitary API, user registration/login, few things to do in database (mainly math running from cron).
They done it in ASP so I don't know the language and enviroment so can't just fix it myself.
2 days ago (monday) they annoyed me to point where I just started to break things. For starters I found that every numeric input is vunrable to integer overflow (which is blocker). I figured most of fields are purefect opportunity to XSS (but I didn't bother to do JS... anything but not JS...). I figured I can embed into my name/surname/phone (none validated) anything in HTML...
So for now we have around 25 bugs, around 15 of them are blockers.
They figured it's somehow our fault that it's bugged and decided to do demo with us to show off how perfectly it works. I'm happy to break their demos. I figured I will register bunch users that have name - image with fixed/absolute position top:0;left:0 width/height 100% - this will effectively brick admin panel
Also I figured I can do some addotional sounds in background becouse why not. And I just dont know what to put in. It links to my server for now so I can freely change content of bricked admin panel.
I have curl's ready to execute in case they reset database.
I can put in GIFs or heck, even videos, dosen't really matter. Framework escapes some things for them so at least that. But audio/image/video works.
Now I have 2 questions:
- what image + audio combo will work the best (of course we need to keep it civil). Im thinking finding some meme with bugs or maybe nuclear logo image with some siren sound
- am I evil person?
Edit:
I havent stated this clearly:
"There is no BDD that describes that if user inserts malicious input server should deny it" - that's almost literally what we get from them....11 -
I've run into problems with the app I'm working on, the problems are related to issues regarding code.
No in fact it's related the last guy who wrote the app, the code has no comments and the variable names make no sense, the only comments in the code are blocks of code... With no reason as to why it was commented.
I have to add in some checks to determine if a person that has logged in is a full member or not (full member has access to the feature I've added) and the way the guy has made this app works makes no sense to me at all.
I've tried my best to avoid all contact with his code because it makes me want to yell out in frustration.
But for this one case I have to work with what's there.
I know I've mentioned this before but I've hit my limit yet again.
And for those who don't know this guy managed to scrape together skeleton code from two apps to make part of this app, rather than using parts of the other apps he left out code that was specifically made for the other apps, (majority of the commented out code).
One app was a taxi app and from the looks of it the feature he used was to get GPS location (which I don't understand before Google maps is a think after all... The taxi app USES Google maps), the other app is some sort of funeral webcasting app (I found code imports for it, without any actual code).
I don't actual understand how this guy could put this together without not thinking "maybe this is a bad idea"
Always code as if the person who ends up maintaining your code is a violent psychopath who knows where you live
I'm that psychopath right now..... Fuck that guy (don't know where he lives though)1 -
My company just migrated our mail servers over to office365. My boss has been excited and could barely contain himself when the migration was done he was having the best day ever after he got a good deal on some new toys...Then I ruined it.
Me (setting up) > WTF!? um...well I guess I don't have email on my phone anymore. These permissions are fucked.
Him > Oh why?
Me > They are ridiculous, I won't give away this much control just to read email.
Him (panicking) > and if buy you a company phone?
Me > Not a fuck it's still a personal device. I'll just sandbox the web version.
Him > Your over reacting, they obviously need them for security blah blah...
Me (sends him the pic) > The minimum system requirement is internet.
(...silence...)
I feel kinda bad for killing his vibe - he's a nice guy and he's only trying to do right by us but now he seems down like his toy isn't shiny anymore because he respects me. I wasn't beating on the stack or his choice (mines running on thunderbird). I just can't support this trend of GOD mode permissions for email / calculator and other single feature apps. I'll use the web app instead. You have to draw the line somewhere...
On the other hand I can't deny that I'm loving the irony that Microsoft just made my life easier and have a deep sense of satisfaction that for the first time ever I got fuck up his Friday :/18 -
😡😡😡 Who here thinks that great software can be build in a few hours?!?! My silly ass boss does. He haven't programmed in decades and think we're supposed to be able to build software that doesn't break, has the best security, no flaws, feature rich in VERY, VERY short amount of time!! 😡😡😡 Fuck out of here!! It pisses me off to my core.
Me: Just finished the required software. In a short amount of time with new stuff I've never worked with before.
Him: Well, it took u a week to do. I heard it should've only have taken u a few hours.
Then u build the shit then!!! Fuck out of here.
The Sr. Dev and I was talking about this on Friday. U won't good product...leave us the fuck alone and let us work!!! He don't think that there will be small issues that come up. He thinks we're supposed to already know those issues are gonna exists, like really u fuck tart!?
FUUUUUUCK!!!!7 -
So happy I found GitLab! Best feature is the integrated CI. No need to pay to have CI for private repositories for my hobby projects 👍14
-
> Last year wrote a unittest - I was asked to delete it
> no design patterns. Not a single one
> no encapsulation
> fucked up inheritance [I had no idea it was possible at all...]
> generics every-fucking-where
> I could go on...
this month the lead dev was not in and I had to make a new feature. Guess what I did :)
tdd [coverage >90%], a couple of builders, a factory or two, two composites, one decorator, only a few generics - only where really needed. Private fields, not a single @Autowired field [they were fucking my tdd], nicely abstracted integrations, and so on. Everything is writen according to clean code: max 10loc methods, <140col lines, reusable constants and utils, SOLID as a rock, etc.
Due date is next week. Took me 3 weeks to craft it.
Guess who's gonna be piiiiiiiiiiiiisssedd 😁
the best part - I don't even work there, our company was hired for xx hours as helping hands 😁
that's not all. They have like 6 envs and their deployment is all-fucking-manual. Will try to learn how to dockerize that app and deploy it on docker. Gosh I wish I could see his face when he's back 😁
p.S. From ethical point of view, he's the only dev who believes his code is perfect. No other dev in the team agrees. AND he once said: 'it's gonna be my way or no way at all'. So I don't think I did wrong... Did I? :)8 -
Here's a real tip for people new to the industry.
It's one of those things that's been said over and over again but very few can really seem to employ. I suggest you learn it /well/.
You are not your code. Criticisms of your code, ideas, or your thought processes, is not a criticism of YOU. You absolutely cannot take criticisms of your work personally.
We are engineers. We strive to seek the best solution at all times.
If someone has found a problem with your code or with an idea or whatnot, it is coming from a place of "this is not the best solution", NOT "you're an idiot".
It's coming from a place of "I'm closing this PR because it is not a change I feel suits this project", NOT "I'm closing this PR because it's coming from a woman".
It's coming from a place of "This feature request is ridiculous/this bug is not actually a bug", NOT "you're a fucking idiot, fuck you".
It's coming from a place of "I've already had to address this in a number of issues before and it's eaten up a considerable amount of my time already", NOT "I don't even know you and this I don't have time for a nobody".
You do not get to be bitchy to maintainers because they denied your request. It's not a reflection of you at all. But if you're arguing with someone who has maintained a piece of code for almost a decade, and they're telling you something authoritative, believe them. They're probably smarter than you on this subject. They've probably thought about it more. They've probably seen their code used in many different places. They have more experience than you with that codebase in almost all cases.
Believe me, if we cared about who was behind all of the issues, pull requests, etc. we get, we'd get NOTHING done. Stop taking shit personally. It's a skill, not a defense mechanism. Nobody has the time to sugar coat every little thing.
Let's normalize directness and stop wasting time during technical discussions into opportunities for ego-stroking and circle-jerking and back-patting.8 -
Let me tell you the story of how a feature request no one asked for got put in an early grave:
PM walks into weekly meeting with a single use case that one user called in about, despite never having this issue during the past year and a half that our app has been in production. PM's boss (genuinely one of the best people i have ever worked with) happens to sit in this particular meeting for no reason other than he felt like he should once in a while.
PM brings up use case and wants to devote 3 weeks' development time and another 3 weeks to test RIGHT NOW while other projects are already in motion. PM's boss speaks up with this: "Listen if this guy is really this upset, we can just tell him to build his own service. All the other end users have no problems with this, so it's not worth spending the resources on, i don't think."
And that is how i went from "this is bullshit" to "i love you" in the span of 20 minutes.2 -
First day on my first job ever, the boss asks me what I want to do. I indicated that I had some experience with php and the yii framework (which was at some point very cool xD), so I wanted to start with something like that. And so it goes: after two days of watching laracasts (which is an awesome platform by the way! :O) I got assigned to a project.
Now the company I work at uses some kind of self built system that tracks how many hours are spent on which project, and compares that to how many hours was estimated implementing a feature would take. That's cool, but then I saw that for the project I was working on the time estimated was 5 work days. This was the estimate for both designing the interfaces and implementing both front and backend. I knew in advance that this was probably way to little time for me, but didn't want to come over as the new kid who can't do shit x)
Anyway, I started on the project and was having fun, but the biggest time consuming aspect of the project was not necessarily that I didn't have enough experience: it was that the developer who started this project and made most of the design choices had written some very messy code, without tests or apparently any refactoring. Also, everything was extremly inconsistent and not according to all the best practices I just watched in my laracasts spree.
So fastforward a little: we're way over the estimated hours. Yay. Now suddenly the boss comes by with an almost angry face that the client is becoming angry and we need to finish soon. He makes it entirely our (me and the front end guy) problem and I just decide to say nothing and try to work faster.
Now I'm stuck writing fugly code on top of more fugly code and when I mentioned to my front end guy that I was almost finished with feature but I only needed to finish up the tests, he said something like "oh just don't write tests, that'll take too long"... Is that really the mindset of this company?! No wonder the project I work on was in a very bad state.
Thanks to devrant I see now that I just need to say something if I know that I won't be able to complete something in a certain amount of time and that other people are just like me (thank god). :) I think I'll need to post more rants to vent my frustrations x)5 -
"Impossible deadline experience?"
When product owners promise delivery dates.
One day, I came back from a two weeks holiday, relaxed. I noticed a teammate missing. "Yes, he took the week off". Sure, why not.
We were working under a bastardized enterprisey version of Scrum (didn't we all at some point?). So we didn't just have a product owner, we had three and an additional "Head of PO". Because enterprises can't live without hierarchies or something. Barely an hour after I came into office, she entered the room and came straight to me. "Your coworker was almost done implementing feature X. You need to finish it immediately. No worries, though, coworker said the rest is a piece of cake".
It wasn't. There was *a lot* left to do, the JIRA task wasn't entirely clear, and the existing code for the feature was so-so (obviously WIP code). I estimated two weeks for the implementation, plus some time to clarify the requirements. When telling "Head of PO" she lost her shit. Screaming things like "this feature is due the end of this week" and "I signed this with my blood!". Well, I didn't, and I made it clear that I hadn't been consulted on this, thus I would not accept any blame in case we missed the deadline.
So I gave my best that week, getting pestered by "Head of PO" all the time. "Is it done yet?", "why does it take so long?" and "your coworker would've been done by now!". Yeah fuck you, too. Not only was I not relaxed any more, I was even more stressed than before my holiday! Thanks, you stupid bitch.
Well, her arbitrary deadline came and the feature wasn't ready. And what happened was... exactly nothing. The following week my coworker returned, who gave me an apologetic smile. "I told her the feature was nowhere finished. And even me, being familiar with the task, couldn't make it in time". We finished the feature together that week, and that was the end of it. So... "Head of PO" either didn't listen or lied to me. She then stressed me to the max right from the day I came back from my holiday. And in the end it didn't even matter.
Again, thanks you stupid bitch, for creating a toxic work environment. Should you ever read this, I'm happy I quit and I hope you miss every single deadline for the rest of your life. Screw you.8 -
After a few weeks of being insanely busy, I decided to log onto Steam and maybe relax with a few people and play some games. I enjoy playing a few sandbox games and do freelance development for those games (Anywhere from a simple script to a full on server setup) on the side. It just so happened that I had an 'urgent' request from one of my old staff member from an old community I use to own. This staff member decided to run his own community after I sold mine off since I didn't have the passion anymore to deal with the community on a daily basis.
O: Owner (Former staff member/friend)
D: Other Dev
O: Hey, I need urgent help man! Got a few things developed for my server, and now the server won't stay stable and crashes randomly. I really need help, my developer can't figure it out.
Me: Uhm, sure. Just remember, if it's small I'll do it for free since you're an old friend, but if it's a bigger issue or needs a full recode or whatever, you're gonna have to pay. Another option is, I tell you what's wrong and you can have your developer fix it.
O: Sounds good, I'll give you owner access to everything so you can check it out.
Me: Sounds good
*An hour passes by*
O: Sorry it took so long, had to deal with some crap. *Insert credentials, etc*
Me: Ok, give me a few minutes to do some basic tests. What was that new feature or whatever you added?
O: *Explains long feature, and where it's located*
Me: *Begins to review the files* *Internal rage wondering what fucking developer could code such trash* *Tests a few methods, and watches CPU/RAM and an internal graph for usage*
Me: Who coded this module?
O: My developer.
Me: *Calm tone, with a mix of some anger* So, you know what, I'm just gonna do some simple math for ya. You're running 33 ticks a second for the server, with an average of about 40ish players. 33x60 = 1980 cycles a minute, now lets times that by the 40 players on average, you have 79,200 cycles per minute or nearly 4.8 fucking cycles an hour (If you maxed the server at 64 players, it's going to run an amazing fucking 7.6 million cycles an hour, like holy fuck). You're also running a MySQLite query every cycle while transferring useless data to the server, you're clusterfucking the server and overloading it for no fucking reason and that's why you're crashing it. Another question, who the fuck wrote the security of this? I can literally send commands to the server with this insecure method and delete all of your files... If you actually want your fucking server stable and secure, I'm gonna have to recode this entire module to reduce your developer's clusterfuck of 4.8 million cycles to about 400 every hour... it's gonna be $50.
D: *Angered* You're wrong, this is the best way to do it, I did stress testing! *Insert other defensive comments* You're just a shitty developer (This one got me)
Me: *Calm* You're calling me a shitty developer? You're the person that doesn't understand a timer, I get that you're new to this world, but reading the wiki or even using the game's forums would've ripped this code to shreds and you to shreds. You're not even a developer, cause most of this is so disorganized it looks like you copy and pasted it. *Get's angered here and starts some light screaming* You're wasting CPU usage, the game can't use more than 1 physical core, and after a quick test, you're stupid 'amazing' module is using about 40% of the CPU. You need to fucking realize the 40ish average players, use less than this... THEY SHOULD BE MORE INTENSIVE THAN YOUR CODE, NOT THE OPPOSITE.
O: Hey don't be rude to Venom, he's an amazing coder. You're still new, you don't know as much as him. Ok, I'll pay you the money to get it recoded.
Me: Sounds good. *Angered tone* Also you developer boy, learn to listen to feedback and maybe learn to improve your shitty code. Cause you'll never go anywhere if you don't even understand who bad this garbage is, and that you can't even use the fucking wiki for this game. The only fucking way you're gonna improve is to use some of my suggestions.
D: *Leaves call without saying anything*
TL;DR: Shitty developer ran some shitty XP system code for a game nearly 4.8 million times an hour (average) or just above 7.6 million times an hour (if maxed), plus running MySQLite when it could've been done within about like 400 an hour at max. Tried calling me a shitty developer, and got sorta yelled at while I was trying to keep calm.
Still pissed he tried calling me a shitty developer... -
Network Security at it's best at my school.
So firstly our school has only one wifi AP in the whole building and you can only access Internet from there or their PCs which have just like the AP restricted internet with mc afee Webgateway even though they didn't even restrict shuting down computers remotely with shutdown -i.
The next stupid thing is cmd is disabled but powershell isn't and you can execute cmd commands with batch files.
But back to internet access: the proxy with Mcafee is permanently added in these PCs and you don't havs admin rights to change them.
Although this can be bypassed by basically everone because everyone knows one or two teacher accounts, its still restricted right.
So I thought I could try to get around. My first first few tries failed until I found out that they apparently have a mac adress wthitelist for their lan.
Then I just copied a mac adress of one of their ARM terminals pc and set up a raspberry pi with a mac change at startup.
Finally I got an Ip with normal DHCP and internet but port 80 was blocked in contrast to others like 443. So I set up an tcp openvpn server on port 443 elsewhere on a server to mimic ssl traffic.
Then I set up my raspberry pi to change mac, connect to this vpn at startup and provide a wifi ap with an own ip address range and internet over vpn.
As a little extra feature I also added a script for it to act as Spotify connect speaker.
So basically I now have a raspberry pi which I can plugin into power and Ethernet and an aux cable of the always-on-speakers in every room.
My own portable 10mbit/s unrestricted AP with spotify connect speaker.
Last but not least I learnt very many things about networks, vpns and so on while exploiting my schools security as a 16 year old.8 -
!dev but rant
Samsung
Samsung...
Samsung!! What the fuck is wrong with you?
Some longer time ago you earned forst red red flag called knox. What the fuck you mean there is physical diode in phone that will burn out when I do whatever I want with phone? Its my phone. My. I live in europe and european law is with me. Its **MY** stuff and Im allowed to be super user so fuvk off with knox bullshit.
Okay, now, more and more phone are missing critical feature to save few cents a phone. You were last bastion. You were **that** company who was loyal to audio jacks. And why the fuck you plan to remove it? You know what? That one thing brought your phones from one of best (becouse retained audio jacks and didnt do much of notch fuckupery) to literally worst one thanks to knox.
And before anyone tells me bullshit apple tried to say "thats space saving", no its not true to point where one of their very own Iphones had internally space and traces for audio jacks. Its to save pennies on phone for profit margins and to force us to use bluetooth stuff, that I dislike. I stick to my K518 few years now and I am super happy user of it. Why y'all want to take away good stuff?
Oneplus, your turn. Why the luving fuck your big bulletpoint of marketing was "yes, we will keep loyal to audio jacks" and later down the line you shown one big fat middle finger to all users.
Goos job, guys, well fucked up.
So any good modern alternatives for my OnePlus 5 when it becomes obstole in few years? Nope. Fuck nope.
OP7 pro is awesome but no audio jacks absolutely kills off this phone in my eyes to level of not existance and inability to be considered.17 -
Static HTML pages are better than "web apps".
Static HTML pages are more lightweight and destroy "web apps" in performance, and also have superior compatibility. I see pretty much no benefit in a "web app" over a static HTML page. "Web apps" appear like an overhyped trend that is empty inside.
During my web browsing experience, static HTML pages have consistently loaded faster and more reliably, since the browser is immediately served with content useful for consumption, whereas on JavaScript-based web "apps", the useful content comes in **last**, after the browser has worked its way through a pile of script.
For example, an average-sized Wikipedia article (30 KB wikitext) appears on screen in roughly two seconds, since MediaWiki uses static HTML. Everipedia, in comparison, is a ReactJS app. Guess how long that one needs. Upwards of three times as long!
Making a page JavaScript-based also makes it fragile. If an exception occurs in the JavaScript, the user might end up with a blank page or an endless splash screen, whereas static HTML-based pages still show useful content.
The legacy (2014-2020) HTML-based Twitter.com loaded a user profile in under four seconds. The new react-based web app not only takes twice as long, but sometimes fails to load at all, showing the error "Oops something went wrong! But don't fret – it's not your fault." to be displayed. This could not happen on a static HTML page.
The new JavaScript-based "polymer" YouTube front end that is default since August 2017 also loads slower. While the earlier HTML-based one was already playing the video, the new one has just reached its oh-so-fancy skeleton screen.
It would once have been unthinkable to have a website that does not work at all without JavaScript, but now, pretty much all popular social media sites are JavaScript-dependent. The last time one could view Twitter without JavaScript and tweet from devices with non-sophisticated browsers like Nintendo 3DS was December 2020, when they got rid of the lightweight "M2" mobile website.
Sometimes, web developers break a site in older browser versions by using a JavaScript feature that they do not support, or using a dependency (like Plyr.js) that breaks the site. Static HTML is immune against this failure.
Static HTML pages also let users maximize speed and battery life by deactivating JavaScript. This obviously will disable more sophisticated site features, but the core part, the text, is ready for consumption.
Not to mention, single-page sites and fancy animations can be implemented with JavaScript on top of static HTML, as GitHub.com and the 2018 Reddit redesign do, and Twitter's 2014-2020 desktop front end did.
From the beginning, JavaScript was intended as a tool to complement, not to replace HTML and CSS. It appears to me that the sole "benefit" of having a "web app" is that it appears slightly more "modern" and distinguished from classic web sites due to use of splash screens and lack of the browser's loading animation when navigating, while having oh-so-fancy loading animations and skeleton screens inside the website. Sorry, I prefer seeing content quickly over the app-like appearance of fancy loading screens.
Arguably, another supposed benefit of "web apps" is that there is no blank page when navigating between pages, but in pretty much all major browsers of the last five years, the last page observably remains on screen until the next navigated page is rendered sufficiently for viewing. This is also known as "paint holding".
On any site, whenever I am greeted with content, I feel pleased. Whenever I am greeted with a loading animation, splash screen, or skeleton screen, be it ever so fancy (e.g. fading in an out, moving gradient waves), I think "do they really believe they make me like their site more due to their fancy loading screens?! I am not here for the loading screens!".
To make a page dependent on JavaScript and sacrifice lots of performance for a slight visual benefit does not seem worthed it.
Quote:
> "Yeah, but I'm building a webapp, not a website" - I hear this a lot and it isn't an excuse. I challenge you to define the difference between a webapp and a website that isn't just a vague list of best practices that "apps" are for some reason allowed to disregard. Jeremy Keith makes this point brilliantly.
>
> For example, is Wikipedia an app? What about when I edit an article? What about when I search for an article?
>
> Whether you label your web page as a "site", "app", "microsite", whatever, it doesn't make it exempt from accessibility, performance, browser support and so on.
>
> If you need to excuse yourself from progressive enhancement, you need a better excuse.
– Jake Archibald, 20139 -
Best: give him a GitHub repo and tell him to add a feature or change something
Worst: What are your greatest strengths and weaknesses?4 -
Anything I (am able to) build myself.
Also, things that are reasonably standardized. So you probably won't see me using a commercial NAS (needing a web browser to navigate and up-/download my files, say what?) nor would I use something like Mega, despite being encrypted. I don't like lock-in into certain clients to speak some proprietary "secure protocol". Same reason why I don't use ProtonMail or that other one.. Tutanota. As a service, use the standards that already exist, implement those well and then come offer it to me.
But yeah. Self-hosted DNS, email (modified iRedMail), Samba file server, a blog where I have unlimited editing capabilities (God I miss that feature here on devRant), ... Don't trust the machines nor the services you don't truly own, or at least make an informed decision about them. That is not to say that any compute task should be kept local such as search engines or AI or whatever that's best suited for centralized use.. but ideally, I do most of my computing locally, in a standardized way, and in a way that I completely control. Most commercial cloud services unfortunately do not offer that.
Edit: Except mail servers. Fuck mail servers. Nastiest things I've ever built, to the point where I'd argue that it was wrong to ever make email in the first place. Such a broken clusterfuck of protocols, add-ons (SPF, DKIM, DMARC etc), reputation to maintain... Fuck mail servers. Bloody soulsuckers those are. If you don't do system administration for a living, by all means do use the likes of ProtonMail and Tutanota, their security features are nonstandard but at least they (claim to) actually respect your privacy.2 -
Lessons I've learnt so far on programming
-- Your best written code today can be your worst tomorrow (Focus more on optimisation than style).
-- Having zero knowledge of a language then watching video tutorials is like purchasing an arsenal before knowing what a gun is (Read the docs instead).
-- It's works on my machine! Yes, because you built on Lenovo G-force but never considered the testers running on Intel Pentium 0.001 (Always consider low end devices).
-- "Programming" is you telling a story and without adding "comments" you just wrote a whole novel having no punctuation marks (Always add comments, you will thank yourself later for it I promise).
-- In programming there is nothing like "done"! You only have "in progress" or "abandoned" (Deploy progressively).
-- If at this point you still don't know how to make an asynchronous call in your favourite language, then you are still a rookie! take that from me. (Asynchronous operation is a key feature in programming that every coder should know).
-- If it's more than two conditions use "Switch... case" else stick with "If... else" (Readability should never be under-rated).
-- Code editors can MAKE YOU and BREAK YOU. They have great impact on your coding style and delivery time (Choose editors wisely).
-- Always resist the temptation of writing the whole project from scratch unless needs be (Favor patching to re-creation).
-- Helper methods reduces code redundancy by a large chunk (Always have a class in your project with helper methods).
-- There is something called git (Always make backups).
-- If you don't feel the soothing joy that comes in fixing a bug then "programming" is a no-no (Coding is fun only when it works).
-- Get angry with the bugs not the testers they're only noble messengers (Bugs are your true enemy).
-- You would learn more than a lot reading the codes of others and I mean a lot! (Code review promotes optimisation and let's you know when you are writing macaroni).
-- If you can do it without a framework you have yourself a big fat plus (Frameworks make you entirely dependent).
-- Treat your code like your pet, stop taking care of it and it dies! (Codes are fragile and needs regular updates to stay relevant).
Programming is nothing but fun and I've learnt that a long time ago.6 -
Sprint planning:
PO: I have a great idea for a new game changing feature
Team: cool, let’s talk requirements, etc
PO: nah, I trust you can come up with the best implementation possible
Sprint demo:
Team: presents the feature
PO: Why are you guys always doing it your way, instead of following my vision?!
Every single sprint...2 -
This fucking Adobe piece of shite.
I get it, you probably make one of the best editing software available out there. But if you could stop rearranging all the icons and features in your UI, that would be fucking great so that I don't have to search on the internet for hours to find out a simple feature.3 -
If you have ever used a union in a C/C++ Program let me know. I am really curious to see who in their right minds use unions unironically.23
-
Im getting tired of this fucking scrum team.
First of all let me introduce our backend team which takes 3 weeks to add one fucking column to database and in the end turns out they fucked up RabbitMQ RPC implementation so the column is not syncing with our app at all so now we have to wait 2 extra weeks until that will be working. Best part is that backend fucker who fucked up doesnt even feel like hes blocking a feature and would rather sit for extra few days and do nothing until he gets reassigned his pile of shit back to him than clean up his own shit.
Then we have business analytic who doesnt know how to define tasks properly so I have to record each grooming meeting so I would know what to fucking implement because he doesnt even bother to take proper notes. Which results in not fully defined tasks, which results in unexpected behaviours and MR's stuck in limbo for weeks.
Also lets not forget QA guy who doesnt even bother writing scenarios, I as an app dev have to write them myself just to be sure that fucker will test everything thoroughly.
Then we have fucking devs from consultancy agency who apparently have 6 years of experience (I have barely 2) and these fuckers are spamming me daily with the most basic questions. After each grooming they rush to assign themselves tasks which are not even defined properly yet and not even in this sprint, but fuckers are lazy so thy want to reserve easier tasks for themselves. Pathetic.
At least I have a decent senior on my team, but sometimes he patronizes me so much that I start asking me what I am doing in this team.
Fuck this shit, I asked for a 43% raise and if Im not getting it in 2-3 weeks im outta here. Fuckers.5 -
Github 101 (many of these things pertain to other places, but Github is what I'll focus on)
- Even the best still get their shit closed - PRs, issues, whatever. It's a part of the process; learn from it and move on.
- Not every maintainer is nice. Not every maintainer wants X feature. Not every maintainer will give you the time of day. You will never change this, so don't take it personally.
- Asking questions is okay. The trackers aren't just for bug reports/feature requests/PRs. Some maintainers will point you toward StackOverflow but that's usually code for "I don't have time to help you", not "you did something wrong".
- If you open an issue (or ask a question) and it receives a response and then it's closed, don't be upset - that's just how that works. An open issue means something actionable can still happen. If your question has been answered or issue has been resolved, the issue being closed helps maintainers keep things un-cluttered. It's not a middle finger to the face.
- Further, on especially noisy or popular repositories, locking the issue might happen when it's closed. Again, while it might feel like it, it's not a middle finger. It just prevents certain types of wrongdoing from the less... courteous or common-sense-having users.
- Never assume anything about who you're talking to, ever. Even recently, I made this mistake when correcting someone about calling what I thought was "powerpc" just "power". I told them "hey, it's called powerpc by the way" and they (kindly) let me know it's "power" and why, and also that they're on the Power team. Needless to say, they had the authority in that situation. Some people aren't as nice, but the best way to avoid heated discussion is....
- ... don't assume malice. Often I've come across what I perceived to be a rude or pushy comment. Sometimes, it feels as though the person is demanding something. As a native English speaker, I naturally tried to read between the lines as English speakers love to tuck away hidden meanings and emotions into finely crafted sentences. However, in many cases, it turns out that the other person didn't speak English well enough at all and that the easiest and most accurate way for them to convey something was bluntly and directly in English (since, of course, that's the easiest way). Cultures differ, priorities differ, patience tolerances differ. We're all people after all - so don't assume someone is being mean or is trying to start a fight. Insinuating such might actually make things worse.
- Please, PLEASE, search issues first before you open a new one. Explaining why one of my packages will not be re-written as an ESM module is almost muscle memory at this point.
- If you put in the effort, so will I (as a maintainer). Oftentimes, when you're opening an issue on a repository, the owner hasn't looked at the code in a while. If you give them a lot of hints as to how to solve a problem or answer your question, you're going to make them super, duper happy. Provide stack traces, reproduction cases, links to the source code - even open a PR if you can. I can respond to issues and approve PRs from anywhere, but can't always investigate an issue on a computer as readily. This is especially true when filing bugs - if you don't help me solve it, it simply won't be solved.
- [warning: controversial] Emojis dillute your content. It's not often I see it, but sometimes I see someone use emojis every few words to "accent" the word before it. It's annoying, counterproductive, and makes you look like an idiot. It also makes me want to help you way less.
- Github's code search is awful. If you're really looking for something, clone (--depth=1) the repository into /tmp or something and [rip]grep it yourself. Believe me, it will save you time looking for things that clearly exist but don't show up in the search results (or is buried behind an ocean of test files).
- Thanking a maintainer goes a very long way in making connections, especially when you're interacting somewhat heavily with a repository. It almost never happens and having talked with several very famous OSSers about this in the past it really makes our week when it happens. If you ever feel as though you're being noisy or anxious about interacting with a repository, remember that ending your comment with a quick "btw thanks for a cool repo, it's really helpful" always sets things off on a Good Note.
- If you open an issue or a PR, don't close it if it doesn't receive attention. It's really annoying, causes ambiguity in licensing, and doesn't solve anything. It also makes you look overdramatic. OSS is by and large supported by peoples' free time. Life gets in the way a LOT, especially right now, so it's not unusual for an issue (or even a PR) to go untouched for a few weeks, months, or (in some cases) a year or so. If it's urgent, fork :)
I'll leave it at that. I hear about a lot of people too anxious to contribute or interact on Github, but it really isn't so bad!4 -
Hmm. So have you ever argued in a job interview? Like really standing your ground? In a technical interview?
Today I had a live coding session with a company I'm interested in. The developer was giving me tasks to evolve the feature on and on.
Everything was TDD. Splendid!
However at one point I had to test if the outcome of the method call is random. What I did is basically:
```
Provider<String> provider = new SomeProvider("aaa", "bbb", "ccc", "ddd", "eee", "fff")
for(int i=0; i<100; i++) {
String str = provider.get();
map.put(str, incrementCount(str));
}
Set<Integer> occurences = new HashSet(map.values());
occurences.removeIf(o -> o.equals(occurences.get(0)));
assertFalse(occurences.empty());
```
and I called it good enough, since I cannot verify true randomness.
But the dev argued that this is not enough and I must verify whether the output is truly random or not, and the output (considering the provider only has a finite set of values to return) occurences are almost equal (i.e. the deviation from median is the median itself).
I argued this is not possible and it beats the core principle of randomness -- non-determinism. Since if you can reliably test whether the sequence is truly random you must have an algorithm which determines what value can or cannot be next in the sequence. Which means determinism. And that the (P)RNG is then flawed. The best you can do is to test whether randomness is "good enough" for your use case.
We were arguing and he eventually said "alright, let's call it a good enough solution, since we're short on time".
I wonder whether this will have adverse effect my evaluation . So have you ever argued with your interviewer? Did it turn out to the better or to the worse?
But more importantly, was I right? :D21 -
Guess I'll fuckin try again tomorrow.
Building a cross platform c program. On Linux side, just using a makefile. Today I tried using visual studios "clone" feature for git. It just downloads the files and makes them available to the editor, it doesn't make a project, obviously.
But this has some disadvantages. For one, you can't build, or run. Two, you don't get any project properties. My project needs to set the character encoding to Unicode. Can't do that without a project.
So I use their tool to create a project from existing code. It didn't really work. The build profiles were janky at best and I still couldn't set the character encoding.
Ended up just deleting the whole thing.4 -
I recently realized that I've been using 2 text editors and 1 IDE pretty much at the same time for different purposes.
Atom -> Code Beautification (atom-beautify is simply the best)
VSCode -> for actual coding (blazing fast and quite good completions)
Webstorm -> cleanup the code, optimize imports
And that made me thing why is it so hard to have all these things in one application (be it a core feature or a plugin/extension). And then I realized smth, only webstorm more has all the features built in, but I don't need/want full IDE for web development (Angular / React) alas it has great features like component automatic imports etc, but not a deal breaker.
So I am having a dilllema. On one hand, Atom has everything I need (especially atom-beautify, my OCD is at peace) except for proper completions (partially solved with extensions) and terminal integrations. On the other hand, VSCode is very fast, has good code assistance but half-broken import completions and terrible code beautification even with extensions such as jsbeautify that require you to have a separate file for each project instead of it being an editor setting/plugin like in Atom.
/* insert joke here */ When will Atom and VSCode go super Saiyan mode and become "Atomized Visual Code" :P I wanna stop bunny hopping between editors!2 -
Most useless premium laptop feature: touch screen.
For my new Lenovo I saved hundreds of dollars because I opted for the second best screen option. Lower resolution WQXGA (2560 x 1600) 165Hz, beacuse the 4K touch enabled fancy schmancy screen of my current Dell XPS 15 has barely been used. I keep Outlook open on it FFS, and I can probably count on one hand the number of times I have used the touch feature 😖
Is it just me?9 -
Whelp. I started making a very simple website with a single-page design, which I intended to use for managing my own personal knowledge on a particular subject matter, with some basic categorization features and a simple rich text editor for entering data. Partly as an exercise in web development, and partly due to not being happy with existing options out there. All was going well...
...and then feature creep happened. Now I have implemented support for multiple users with different access levels; user profiles; encrypted login system (and encrypted cookies that contain no sensitive data lol) and session handling according to (perceived) best practices; secure password recovery; user-management interface for admins; public, private and group-based sections with multiple categories and posts in each category that can be sorted by sort order value or drag and drop; custom user-created groups where they can give other users access to their sections; notifications; context menus for everything; post & user flagging system, moderation queue and support system; post revisions with comparison between different revisions; support for mobile devices and touch/swipe gestures to open/close menus or navigate between posts; easily extendible css themes with two different dark themes and one ugly as heck light theme; lazy loading of images in posts that won't load until you actually open them; auto-saving of posts in case of browser crash or accidental navigation away from page; plus various other small stuff like syntax highlighting for code, internal post linking, favouriting of posts, free-text filter, no-javascript mode, invitation system, secure (yeah right) image uploading, post-locking...
On my TODO-list: Comment and/or upvote system, spoiler tag, GDPR compliance (if I ever launch it haha), data-limits, a simple user action log for admins/moderators, overall improved security measures, refactor various controllers, clean up the code...
It STILL uses a single-page design, and the amount of feature requests (and bugs) added to my Trello board increases exponentially with every passing week. No other living person has seen the website yet, and at the pace I'm going, humanity will have gone through at least one major extinction event before I consider it "done" enough to show anyone.
help4 -
Not planning ahead, just start at some point, adding just a tiny little feature after another, and then wondering why your to do app (just to check out a new framework or language) suddenly comes with Blockchain, a chatbot and a machine learning algorithm that (slowly) learns when the best time to show random cat videos is...
-
4 months into the journey at an ambitious streaming startup we, a team of 10 engineers (primarily full stack), sets up a tiny and performant express.js api setup.
We document plans for improving the maintainability, including outlining specific practices (not very different from general node best practices) that need to be followed for all new development.
Enter a new engineering manager (dedicated backend manager), henceforth referred to as S, with a rat face and brain that belongs in a rat hole.
Week 1:
S: let's push this new feature out asap
Dev: it'll need a couple of weeks to get done right
S: let's push out a functional version tomorrow, and revamp in the next iteration
Dev: ... (long pause) there's documented practices specifically directing against this
S: can you not do it by tomorrow
Dev: not if it needs to be done right
S: all you need to do is.. (simplifies changes spanning 5 modules into a 3 line summary)
Dev: yes, (outlines how each changes chains into the others, and how to keep the development maintainable for atleast a few months)
S: (interrupts every sentence saying "yes dev, I understand, yes yes")
Dev: could you please tell me how you expect me to connect (outlines two modules that would fail unless developed as standalone services)
S: Yes dev, I understand, yes yes. I don't have much experience with Node.js, so I can't tell you that.
Dev:
<_<
>_>
O_<
Our.. entire.. backend.. stack.. is.. Node. (Months of motivation, cultivated through hard work over late nights, dies inside)
I need a J and some sleep.6 -
We are 2 people working as remote android devs for this startup in another country. 6 weeks ago a new person joined onsite to work directly in startup HQ. I'l refer to him as an newguy.
Last week we started new sprint (of 2 weeks) to work on a new feature.
Newguy was responsible for gathering all the specs and planning, so this is how our sprint is going so far:
Day 1:
We have 10+ tickets in jira (tickets have only titles) no one knows what to do and we don't even have specification. I started pushing everybody onsite to get their shit together. We NEED UX/UI specs, we NEED backend to be ready, or at least start working paralelly so that once wer'e done with frontend backend would be ready. I mean cmon guys this feature is already 70% done on iOS, why cant you send us the specification?
Day 2:
We had a meeting on Zoom and talked about missing specification and project manager promised to send us the specs. Meanwhile the idea of feature became clearer so I agreed with the newguy to start researching about best way to implement our solution.
Day 3:
We received the specifications. I provided my research for the feature to the newguy. Turns out the he knew about specification 4-5 days before.
Instead of sharing information with us, he decided to create his own library to do what we want to do and blatantly rejected my research input.
Now he showed his implementaton (which is shit by the way) and presents it as the only way to proceed forward. He offers for us to work paralelly with him on this (basically he wants to write library alone, and we are supposed to somehow implement and test it, but how the fuck we can implement if backend is not ready and library is just a bunch of empty interfaces at this point?)
I talked with one of the teamleads in the startup and told him that this is not the way things were being done here before and new guy is becoming a dictator.
Teamlead talked with new guy and found no issue. Basically newguy defended his sole decision by saying that he did research on his own, there are no libraries that do what we want and he knows better.
Teamlead tells me to STFU because new guy seems competent and he will be leading this feature. Basically from what I gathered teamlead doesn't give a single fuck and wants to delegate all project management to this new guy.
Day 5:
End of the week. New guy claims that his lib is done so we can start implementing properly. I tried implementing his lib but its fucked up and backend is still not ready.
Day 6:
Backend is still not ready, no one is doing anything just waiting for it to be ready.
Day 7 (Today):
Today(Backend is still not ready, no one is doing anything just waiting for it to be ready.
So what can I say? His plan was to probably prove his self worth and try to lead this feature by giving us information at last minute. At the point were we should start implementing instead of researching.
What happened? Motherfucker doesn't know shit about backend, has been notified about backend issues multiple times but his head was so deep up his ass with that new library of his that he delayed the rest of the team.
Result? 7 working days wasted. Out of 3 developers only 1 was actually working (and his fucked up code will have to be rewritten anyways). Only 50% of feature done. Motherfucker tells me that this is how we will work in the future, "paralelly". The fuck is this mate? If you would have worked on this feature alone you would have done it already now, but instead you wait until we remote devs will login and fetch you the test input and talk with backend guys for you? The fuck is wrong with you.
You fucking piece of shit, learn to plan and organize better if you want to lead the team. Now all that you are doing is wasting time, money and getting on everyboys nerves. Im tired of fucking spoon feeding you every day you needy scheming office politics playing piece of shit. Go back to your shithole country and let us work.
When I was responsible for sprint planning I figured out what to do before start of the sprint and remote devs were able to do week's work in 1-2 days and have rest of the week off. This is how it's supposed to be when you work with a remote team. Delegate them separate features, give them proper specs ahead and everyone's happy. Don't start working on frontend if you dont even fucking know when backend will be ready. It's fucking common sense.
Now I need to spoon feed this motherfucker who can't even get information while sitting on his ass onsite in HQ. Fucking hell.8 -
Have you ever argue with a developer who:
+ have the same level as you
+ on the same position in the company
+ in the same team
+ OLDER than you
+ thinks their code is the best
A few years back, a coworker and I argue about how to implement a feature. I proposed an approach. He proposed a different one. I immediately saw some problems and told him. But hell no, he defended his idea so strongly that I just gave up since I will leave the company soon.
2 weeks later, when the sprint was about to end, the whole team had to work overtime to fix the mess because of his terrible approach.7 -
In today's episode of kidding on SystemD, we have a surprise guest star appearance - Apache Foundation HTTPD server, or as we in the Debian ecosystem call it, the Apache webserver!
So, imagine a situation like this - Its friday afternoon, you have just migrated a bunch of web domains under a new, up to date, system. Everything works just fine, until... You try to generate SSL certificates from Lets Encrypt.
Such a mundane task, done more than a thousand times already... Yet... No matter what you do, nothing works. Apache just returns a HTTP status code 403 - Forbidden.
Of course, what many folk would think of first when it came to a 403 error is - Ooooh, a permission issue somewhere in the directory structure!
So you check it... And re-check it to make sure... And even switch over to the user the webserver runs under, yet... You can access the challenge just fine, what the hell!
So you go deeper... And enable the most verbose level of logging apache is capable of - Trace8. That tells you... Not a whole lot more... Apparently, the webserver was unable to find file specified? But... Its right there, you can see it!
So you go another step deeper and start tracing the process' system calls to see exactly where it calls stat/lstat on the file, and you see that it... Calls lstat and... It... Returns -1? What the hell#2!
So, you compile a custom binary that calls lstat on the first argument given and prints out everything it returns... And... It works fine!
Until now, I chose to omit one important detail that might have given away the issue to the more knowledgeable right away. Our webservers have the URL /.well-known/acme-challenge/, used for ACME challenges, aliased somewhere else on the filesystem - To /tmp/challenges.
See the issue already?
Some *bleep* over at the Debian Package Maintainer group decided that Apache could save very sensitive data into /tmp, so, it would be for the best if they changed something that worked for decades, and enabled a SystemD service unit option "PrivateTmp" for the webserver, by default.
What it does is that, anytime a process started with this option enabled writes to /tmp/*, the call gets hijacked or something, and actually makes the write to a private /tmp/something/tmp/ directory, where something... Appeared as a completely random name, with the "apache2.service" glued at the end.
That was also the only reason why I managed fix this issue - On the umpteenth time of checking the directory structure, I noticed a "systemd-private-foobarbas-apache2.service-cookie42" directory there... That contained nothing but a "tmp" directory with 777 as its permission, owned by the process' user and group.
Overriding that unit file option finally fixed the issue completely.
I have just one question - Why? Why change something that worked for decades? I understand that, in case you save something into /tmp, it may be read by 3rd parties or programs, but I am of the opinion that, if you did that, its only and only your fault if you wrote sensitive data into the temporary directory.
And as far as I am aware, by default, Apache does not actually write anything even remotely sensitive into /tmp, so...
Why. WHY!
I wasted 4 hours of my life debugging this! Only to find out its just another SystemD-enabled "feature" now!
And as much as I love kidding on SystemD, this time, I see it more as a fault of the package maintainers, because... I found no default apache2/httpd service file in the apache repo mirror... So...8 -
Microsoft, do you even care what your shitty updates are doing or have you just given up?
Not only did the update start immediately after waking up from standby, it also had to brighten up my day by deleting everything afterwards.
Turns out the anniversary update gets confused by dual boot systems and then just deletes all partitions. And apparently they didn't manage to fix this for months now.
Can't wait for the coming "Creator's update", always wanted to see how an exploding PC looks.1 -
!rant
"What's the best browser that doesn't devour all of my HW resources?"
Seriously guys, Opera GX. You can set how much ram and cpu it eats, and it only eats that much. Yes, even to the point of it being unresponsive and laggy, because it keeps itself within the boundaries you set.
Seriously. Regardless of the number of tabs.
Also, it looks nice.
Downsides: You forget WHY it lags sometimes, so you get irritated, but when you remember, the irritation turns to smile.
I am not a paid shill, i'm just a user and I use it primarily and only for that single feature.28 -
We were documenting a feature which has system wide affect. We’ll be delivering it to customer on Monday.
So we’ve asked the colleague who worked on it about how it works and asked few follow up questions that arise during the documenting. All were good.
Comes Friday when I had a question as some things didn’t add up and I checked the source. To my surprise the very core operation colleague explained us works in exact opposite way. I kid you not in %50 percent of the documentation we ramble about why it was implemented this way since it is faster/safer best practices bla bla.
Moreover we’ve already had some exchange with the customer and we informed(misinformed) them about this core operation...
Also changing the behavior will reduce the overall speed as it will cause extra branchings. Other option is to rewrite the documentation and inform(re-convince) the customer. If it was me I wouldn’t trust us anymore but we’ll see.
I really don’t know what to say about this fucker why would you say something if you’re not sure of it or why the fuck you didn’t confirm in the last 3 weeks....
Anyway we have a meeting on Monday morning to discuss how to proceed, that’s gonna be fun!1 -
one week back from my holidays and so far:
- 3 server outages
- 1 developer will be fired
- 2 new employees (company has around 35 employees)
- 2 employees leaving
- outsourced designs, the designer surely didn't read the feature research doc nor followed style sheet
- a small, easy feature has not yet been finished by the rest of the team
- new devOps engineer wants to rewrite our entire tech stack
But at least the CEO was doing it's best and ran away from the problems & ran 150km21 -
So.. how does being in a company makes you a better engineer?
For eg, this year my team shipped these 2 interesting features (among other things) that were never part of our product.
these were crazy ideas, that got liked by our users, and might have impacted the finances of company positively.
However the engineers (not me, i worked on them even less) that worked on it, did they got their knowledge growth? they just analysed the old codebase, its shitty architecture and drawbacks, and added the feature around it in a similar manner. so basically it was building debris over the debris
but is this growth? if that engg was me, would my experience in dealing with debris and building debris over it (that somehow works) be helpful for any other organisation?
And number (2) : is my organisation even a good one if its allowing to build debris over debris and not leaving a space for discussion or cleaning the mess or thinking about better architectures, data structures for scalability and robustness?
An engineer's growth should be made by giving them a chance to explore new and best solutions and not the best hacks i guess1 -
Best way to avoid procrastination : We tend to avoid commitments or to do large tasks as even visualizing them seems tiring and the longer it takes, the vulnerable we are to distractions
So I use this simple trick
I break my task into numerous sub tasks. For example if I need to finish a feature before day end, I would first list down all the cases I can think of in order and write them down using actual pen and paper.
I then start implementing them step by step.
I mark them checked once done.
It gives me a sense of achievement as I see those checks besides the sub tasks and I can also take breaks between steps.
So all it takes is just first five minutes of planning.
I had to do the above procedure, for this post as well.
Hope it helps fellow developers
:) -
I have been trying my best to fix a broken process and a product that never saw the day of the light.
Aligning all the teams, trying to bridge all the feature gaps, and at the same time learning this new product and company culture.
Now this lady comes to me with a requirement. I have zero clue what it is and instead of empathising with me that I am new and should dumb down her ask, she kept throwing heavy product specific terms as if I have been working in this team for previous 9 lives.
Anyway, I take her ask into my product roadmap and try to prioritise it.
Now I connect with them again for some discovery and she is passive aggressive towards me that it's been more than a year no one is considering their request and started whinning.
I have just joined the org 6 months ago and you start attacking me for someone else's mistake?
What the actual fuck! Go fucking die bitch. Never again I am taking her request.
If she has a problem then just speak it up and take it with leadership. Don't fucking be passive aggressive with me especially when I am not at fault and infact I am trying to help her.
And in interviews they ask people whether they are a team player or not. -
Excel is the best worsy fucking software. It has every feature you can think of except the one you actually need. Every time I use I end up yelling at my poor laptop. Even things that should be simple are made impossibly hard and unmanageable.6
-
Have you ever use the offline mode in chrome or set the data downloading and uploading speed.
It is the great feature in chrome. In that way you easily develop your offline site. Without disconnecting your LAN or Wifi connection.
Best way to develop offline site for developers.1 -
Worst architecture I've seen?
The worst (working here) follow the academic pattern of trying to be perfect when the only measure of 'perfect' should be the user saying "Thank you" or one that no one knows about (the 'it just works' architectural pattern).
A senior developer with a masters degree in software engineering developed a class/object architecture for representing an Invoice in our system. Took almost 3 months to come up with ..
- Contained over 50 interfaces (IInvoice, IOrder, IProduct, etc. mostly just data bags)
- Abstract classes that implemented the interfaces
- Concrete classes that injected behavior via the abstract classes (constructors, Copy methods, converter functions, etc)
- Various data access (SQL server/WCF services) factories
During code reviews I kept saying this design was too complex and too brittle for the changes everyone knew were coming. The web team that would ultimately be using the framework had, at best, vague requirements. Because he had a masters degree, he knew best.
He was proud of nearly perfect academic design (almost 100% test code coverage, very nice class diagrams, lines and boxes, auto-generated documentation, etc), until the DBAs changed table relationships (1:1 turned into 1:M and M:M), field names, etc, and users changed business requirements (ex. concept of an invoice fee changed the total amount due calculation, which broke nearly everything).
That change caused a ripple affect that resulted in a major delay in the web site feature release.
By the time the developer fixed all the issues, the web team wrote their framework and hit the database directly (Dapper+simple DTOs) and his library was never used.1 -
If you've ever tried using Go plugins raise your hand.
If you've ever tried doing plugins in Go, raise your hand.
If you think that the following rant will be interesting, raise your hand.
If you raised your hand, press [Read More]:
This is a tale of pain and sorrow, the sorrow of discovering that what could be a wonderful feature is woefully incomplete, and won't be for a very long time...
Go plugins are a cool feature: dynamically load pre-compiled code, and interact with it in a useful and relatively performant way (e.g. for dynamically extending the capabilities of your program). So far it sounds great, I know right?
Now let me list off some issues (in order of me remembering them):
1. You can't unload them (due to some bs about dlopen), so you need to restart the application...
2. They bundle the stdlib like a regular Go binary, despite the fact that they're meant to be dynamic!
3. #2 wouldn't be so bad if they didn't also require identical versions of all dependencies in both binaries (meaning you'd need to vendor the dependencies, and also hope you are using the right Go version).
4. You need to use -trimpath or everything dies...
All in all, they are broken and no one is rushing to fix it (literally, the Go team said they aren't really supporting it currently...).
So what other options are there for making plugins in Go?
There's the Hashicorp method of using RPC, where you have two separate applications one the plugin, one the plugin server, and they communicate over RPC. I don't like it. Why? Because it feels like a hack, it's not really efficient and it carries a fear of a limitation that I don't like...
Then we come to a somewhat more clever approach: using Lua (or any other scripting language), it's well known, it's what everyone uses (at least in games...). But, it simply is too hard to use, all the Go Lua VMs I could find were simply too hard to set up...
Now we come to the most creative option I've seen yet: WASM. Now you ask "WASM!? But that's a web thing, how are you gonna make that work?" Indeed, my son, it is a web thing, but that doesn't mean I can't use it! Someone made a WASM VM for Go, and the pros are that you can use any WASM supporting language (i.e. any/all of them). Problem inefficient, PITA to use, and also suffers from the same issues that were preventing me from using Lua.
Enter Yaegi, a Go interpreter created by the same guys who made (and named) Traefik. Yes, you heard me right, an INTERPRETER (i.e. like python) so while it's not super performant (and possibly suffering from large inefficiency issues), it's very easy to set up, and it means that my plugins can still be written in Go (yay)! However, don't think this method doesn't have its own issues, there's still the problem of effectively abstracting different types of plugins without requiring too much boilerplate (a hard problem that I'm actively working on, commits coming soon). However, this still feels to be the best option.
As you can see, doing plugins in Go is a very hard problem. In the coming weeks (hopefully), I'm going to (attempt to at least) benchmark all the different options, as well as publish a library that should help make using Yaegi based plugins easier. All of this stuff will go (see what I did there 😉) in a nice blog post that better explains the issues and solutions. But until then I have some coding to do...
Have a good night(/day)!13 -
The feature was to parse a set of fairly complex xml files following a legacy schema. Problem was, the way this was done previously did not conform to the schema so it was a guideline at best, which over the course of many years snowballed into an anarchy where clients would send in whatever and it was continuously updated per case as needed. They wanted to start enforcing their new schema while phasing out the old method.
The good news is that parsing and serialization is very testable, so I rounded up what I could find of example files and got to work. Around the same time I asked our client if they had any more examples of typical cases we need to deal with, and sure enough a couple of days later I receive a zip with hundreds of files. They also point out that I should just disregard the entire old set since they decided to outright cut support for it after all if it makes things simpler. Nice.
I finish the feature in a decent amount of time. All my local tests pass, and the CD tests pass when I push my branches. Once we push to our QA env though and the integration tests run, we get a pass rate of less than 10%.
I spend a couple of days trying to figure out what's going on, and eventually narrow it down to some wires being crossed with the new vs. old xml formats. I'm at a loss. I keep trying to chip away at it until I'm left with a minimal example, and I have one of those lean-back moments where you're just "I don't get it". My tests pass locally, but in the QA environment they fail on the same files.
We're now 3 people around my workstation including the system architect, and I'm demonstrating to the others how baffling and black magic this is. I postulate that maybe something is cached in my local environment and it's not actually testing the new files. I even deleted the old ones.
"Are you sure you deleted the right files?"
"Duh of course -- but let me check..."1 -
I hate it when we are discussing a feature and they ask me "what do you think?" after they said how would they go about it and i mention that i would do it differently and think that my way may be longer now but can pay off in the long run and they decline it.
What i hate even more is that after some period they revesit their decision again and come to conclusion that my way is better and now we (i) need to rewrite it but without acknowledging that i said it then and was the best solution.
AMMA KILL SOMEBODY IN THIS BISH RIGHT TF NOW!!10 -
Fucking experimental technologies. I feel like doing webassembly stuff is like buying a smart device, it's not worth any of the trouble for now.
I wanted to do some webassembly-stuff with rust and yew (basically react for rust). I was really hyped because it all looked promising and i found this cool band "heilung" whose music made me my coding feel like black magic with complex incantations and shit.
A basic webassembly setup did work, but everything afterwards was pure shit. Crate installation didn't go as expected, i get weird errors even though i simply copied the example (and checked the versions). The best i got was when i tried to compile and rust told me to go fuck myself because i cant use feature XY in a package in the stable environment. Why the hell would someone even publish said package then? After losing half a day because of this i give up for now. I don't feel like a badass magician anymore anyways, more like the guy that puts mentos into coke and gets hit by the foam. -
¡rant|rant
Nice to do some refactoring of the whole data access layer of our core logistics software, let me tell an story.
The project is around 80k lines of code, with a lot of integrations with an ERP system and an sql database.
The ERP system is old, shitty api for it also, only static methods through an wrapper to an c++ library
imagine an order table.
To access an order, you would first need to open the database by calling Api.Open(...file paths) (yes, it's an fucking flat file type database)
Now the database is open, now you would open the orders table with method Api.Table(int tableId) and in return you would get an integer value, the pointer.
Now for the actual order. first you need to search for it by setting the search parameter to the column ID of the order number while checking all calls for some BS error code
Api.SetInt(int pointer, int column, int query Value)
Then call the find method.
Api.Find(int pointer)
Then to top this shitcake of an api of: if it doesn't find your shit it will use the "close enough" method of search.
And now to read a singe string 😑
First you will look in the outdated and incorrect documentation given to you from the devil himself and look for the column ID to find the length of the column.
Then you create a string variable with ALL FUCKING SPACES.
Now you call the Api.GetStr(int pointer, int column, ref string emptyString, int length)
Now you have passed your poor string to the api's demon orgy by reference.
Then some more BS error code checking.
Now you have read an string value 😀
Now keep in mind to repeat these steps for all 300+ columns in the order table.
News from the creators: SQL server? yes, sql is good so everything will be better?
Now imagine the poor developers that got tasked to convert this shitcake to use a MS SQL server, that they did.
Now I can honestly say that I found the best SQL server benchmark tool. This sucker creams out just above ~105K sql statements per second on peak and ~15K per second for 1.5 second to read an order. 1.5 second to read less than 4 fucking kilobytes!
Right at that moment I released that our software would grind to an fucking halt before even thinking about starting it. And that me & myself and I would be tasked to fix it.
4 months later and two weeks until functional beta, here I am. We created our own api with the SQL server 😀
And the outcome of all this...
Fixes bugs older than a year, Forces rewriting part of code base. Forces removal of dirty fixes. allows proper unit and integration testing and even database testing with snapshot feature.
The whole ERP system could be replaced with ~10 lines of code (provided same relational structure) on the application while adding it to our own API library.
Best part is probably the performance improvements 😀. Up to 4500 times faster and 60 times less memory usage also with only managed memory.3 -
A dev life in Queen songs:
„A Kind of Magic“ - Build successful
„A Winter’s Tale“ - Key Account Manager visits customer
„Action This Day“ - Release day
„All Dead, All Dead“ - System down
„Another One Bites the Dust“ - kill -9 4711
„Breakthru“ - 10 hour debuging session
„Chinese Torture“ - Microsft Office
„Coming Soon“ - Client asks for delivery date
„Dead on Time“ - shutdown -t 10
„Doing All Right“ - How's the progress on the new feature?
„Don’t Lose Your Head“ - git push -f
„Don’t Stop Me Now“ - In the zone
„Escape from the Swamp“ - Hand in resignation letter
„Forever“ - while(1)
„Friends Will Be Friends“ - friend class Vector;
„Get Down, Make Love“ - No rule to make target "Love"
„Hammer to Fall“ - Release day
„Hang on in There“ - 2 weeks until release
„I Can’t Live With You“- Microsoft
„I Go Crazy“ - Microsoft
„I Want It All“ - Google
„I Want to Break Free“ - free( (void*) 0xDEADBEEF );
„I’m Going Slightly Mad“ - Impossible feature requested
„If You Can’t Beat Them“ - Impossible feature promised by sales
„In Only Seven Days“ - Impossible feature ordered
„Is This the World We Created...?“ - Philosphic moments
„It’s a Beautiful Day“ - Weekend
„It’s a Hard Life“ - Weekday
„It’s Late“ - Deadline was last week
„Jesus“ - WTF?
„Keep Passing the Open Windows“ - Interprocess communication
„Keep Yourself Alive“ - Daily struggle
„Leaving Home Ain’t Easy“ - Time to get up and go to work
„Let Me Entertain You“ - Sales meets customer
„Liar“ - Sales
„Long Away“ - Project start
„Loser in the End“ - Dev
„Lost Opportunity“ - Job ad
„Love of My Life“ - emacs/vim
„Machines“ - Computer
„Made in Heaven“ - git
„Misfire“ - Unhandled exception at Memory location 0xDEADBEEF
„My Life Has Been Saved“ - Google drive/Facebook
„New York, New York“ - Meeting at customer
„No-One But You“ - Bus factor = 1
„Now I’m Here“ - Morning rush hour
„One Vision“ - Management goals
„Pain Is So Close to Pleasure“ - NullPointerExcption
„Party“ - Delivery completed
„Play the Game“ - Customer meeting inhous -
„Put Out the Fire“ - Support hotline
„Radio Ga Ga“ - GSM/GPRS/UMTS/LTE/5G
„Ride the Wild Wind“ - Arch Linux
„Rock It“ - Linux
„Save Me“ - CTRL-S/CTRL-Z
„See What a Fool I’ve Been“ - git blame
„Sheer Heart Attack“ - rm -rf /
„Staying Power“- UPS
„Stealin’“ - Stack Overflow
„The Miracle“ - It works
„The Night Comes Down“ - It doesn't work
„The Show Must Go On“ - Project cancelled
„There Must Be More to Life Than This“ - Philosophic moments
„These Are the Days of Our Lives“ - Daily routine
„Under Pressure“ - 1 day until release
„Was It All Worth It“ - Controlling
„We Are the Champions“ - Release finished
„We Will Rock You“ - Sales at customer
„Who Needs You“ - HR
„You Don’t Fool Me“ - Debugging session
„You Take My Breath Away“ - rm -rf /
„You’re My Best Friend“ - emacs/vim4 -
I'm still studying computer science/programming, I still have one year to do in order to graduate (Master). I am in a work study program so I'm working for a company half of the time, and I'm studying the other half. It is important to mention that I am the only web developer of the company
When I arrived in the company 9 months ago, I was given a Vue project which had been developed by a trainee a few weeks before my arrival and I was asked to correct a few things, it was mostly about css. Then, I was ask to add a few functionalities, nothing really hard to code, and we were supposed to test the solution in a staging environment, and if everything was ok, deploy it to prod.
However, the more I did what I was asked, the more functionalities I had to implement, until I reached a point where I had to modify the API, create new routes, etc. I'm not complaining about that, that's my job and I like it. But the solution was supposed to be ready when I arrived, it was also supposed to be tested and deployed.
The problem is, the person emitting these demands (let's call him guy X) is not from the IT service, it's a future user of the website in the admin side. The demands kept going and going and going because, according to him, the solution was not in a good enough state to be deployed, it missed too many (un)necessary features. It kept going for a few months.
The best is yet to come though : guy X was obviously a superior, and HIS superior started putting pressure on me through mails, saying the app was already supposed to be in production and he was implying that I wasn't working fast enough. Luckily, my IT supervisor was aware of what was going on and knew I obviously wasn't to blame.
In the end, the solution was eagerly deployed in production, didn't go through the staging environment and was opened to the users. Now, guy X receives complaints because none of what I did was tested (it was by me, but I wasn't going to test every single little thing because I didn't have time). Some users couldn't connect or use this or that feature and I am literally drowning in mails, all from guy X, asking me to correct things because users are blocked and it's time consuming for him to do some of the things the website was doing manually.
We are here now just because things have been done in a rush, I'm still working on it and trying to fix prod problems and it's pissing me off because we HAVE a staging environment that was supposed to prevent me from working against the clock.
On a final note, what's funny is that the code I'm modifying, the pre-existing one needs to be refactored because bits and pieces are repeated sometimes 5 times where it should have been externalized and imported from another file. But I don't know when and if I will ever be able to do that.
I could have given more context but it's 4am and I'm kinda tired, sorry if I'm not clear or anything. That's my first rant -
Updated the devrant-web block/filter script, it now also filters based on avatar link, to not have random "commented on your rant" leak into your notifications - forgot myself I've had that script, you're of course welcome to block me too, if I annoy you, that'll make both out lives on devrant easier: https://github.com/7twin/...
Best paired with the notification categories too: https://github.com/7twin/... for an overall better experience.
Just make sure to use tampermonkey, as other implementations usually lack half the necessary style injections, selector supports etc.
I might revive my plugin'able cross-platform (desktop, ios, android, web) app too, which would out of the box feature this and many other things.19 -
New product owner colleague has a question like every hour, walks right over without considering that I am coding or if my headset is on for obviou reasons.
The questions are not even programming related and more to do with him updating story acceptance criterias for like the next freaking 5 sprints. These are stuff that could take hours to explain what the planned features are to begin with let alone discussing individual stories. I've actually taken my time and spent hrs explaining this shit to him now. Won't take any notes, jus shakes his head and says he understands and comes back asking same question again and again. Best part, he never gets to the point. Instead of asking 'hey for xyz feature do we need that component' he goes on to tell me he talked to this person and that person and he found this out and that out bla bla(like I give a fk..) and then somewhat formulates the question which I swear takes like 10 mins.
Lost count on hw many times he has interrupted me now when I am deep into some debug cos he needed to tell me about how his day went for some reason.
It's one thing to train a new developer but a product owner.. For fk sake. Trying to not be offensive but damn he is pushing it.10 -
Developed a feature 4 weeks ago with a lot of requirements from PO, even more from QA, wrote beautiful code/tests, was actually happy after deploy since everything worked beautifully.
Sales increased a lot because of this.
Story created in Jira today by mentioned PO: As a PO I want to have that feature removed because it doesn‘t work in IE9. PO decides so I had to do this.
So: What exactly is the best way to hide a body?3 -
To the managers and new developers.
Development, and Product Development is not a black-and-white game.
It is an entire spectrum. You cannot move to the next best version. Next best feature, or the next best app.
The only jump that you take is getting started. After that it is a walk across the entire spectrum. Things grow slowly, and steadily. Just keep an eye on the next improvement.
Study the analytics, improvise, focus your energies, and just move to the next shade.
Enough steps, and you will have what you want.
It requires planning, courage, determination, tactics, sticking together ,and above all patience.
Most importantly, get rid of the people who cannot think long, rush, and mess things up.1 -
I was too concerned whether or not I should extend a feature, that I forgot to check if I could do so.
Now I've shot myself in the foot by breaking half of the feature and my only solution to make this work out as intented are quite ugly.
10/10 would do so again. Programming like a retard is the way hobby projects are meant to be. Best learning experience you could hope for.
Also, bless git for giving me a second chance in case I've gone full retard mode.4 -
The best IDE in the world is becoming even better.
It's strange no one ever thought about this feature before. Simple yet so useful.
#VisualStudio 2022 v17.610 -
For a person like me who makes a lot of typos, being able to view the password while typing is a boon. But I was a bit disappointed by the absence of a view in Android that could handle it out of the box. So I created my own library to handle the same.
Minimal configuration and you could choose the toggle image and the tint of the view. Interesting part is that even though Google has introduced this feature in their design support library, I still have a few users.
My first open source release and it got retweeted by multiple blog handles. 90+ stars feels like an achievement. The best part is that it got me noticed by a recruiter from a big startup here.
Here's the library
https://github.com/subhrajyotisen/... -
When Icriticize a paid service for taking away or not providing functionality for all users equally but then a user comes back defending them with some BS reason...
Ok... I'll just continue helping myself only...
@nnee
Me:
1. Can you put the New books tab with back in the bottom, scrolling down into the New section in the front page is annoying. At least make it a setting?
2. Where's the # of books read stat in Android?
Blinkist: Hi thanks for your message! The best way to view the newest titles on Android is to do just as you mention – scroll down to reveal the New section. As for BiB stats on Android, we're working on releasing this feature (it's only live on iOS at the moment).
Me: Hm... I liked the older way better. Faster and can tell when it was added. The problem is sometimes still new books don't refresh and I need to login out to get it to update. Also I notice sometimes the list changes randomly I think. One day a new book is there. The next day it's gone.
BiB stats have been in iOS for a year now? How hard is it to put it in Android. Personally it only took me a day to find out what my total is as I can write a program to do it so to me I don't understand how this could be taking so
Some user: Priorities and often it’s strategy for future features...
Me: you take away useful functionality and and can't release a feature that's been on the iOS version for a year already... fine,,, I'll just take it as a challenge... that I've mostly solved... for myself...3 -
So I was rejected by the management today for promotion to Senior 2 although I have done several major feature developments + infra design and basically end to end ownership.
Reason for no promotion? That's the best fucking part, according to the feedback, the work I performed on the service I created is well-designed,
and the code quality is commendable. However, they pointed out a notable difference in code quality between the micro-service
I built and the rest of the project developed by others. This, apparently, suggests that I lack a strong sense of ownership over the broader product.
First of all, we have super tight deadlines (almost 996), and I burned midnight oil to make sure the service I am in-charge of is designed really well.
Also, how in the flying fuck the other how the inability of others to maintain good code quality elsewhere in the product is being used as evidence against my sense of ownership
and initiative in ensuring high engineering quality for the repository I wasn't even working on
What a delusional management, the entire feedback feels like just an excuse to fuck off, we are not promoting you...
May be instead of doing actual engineering work, I should have just do minimal work and write more design docs / technical artifacts
It is very demoralizing after I worked hard for so many months, product went out really well.. yet when performance review comes, rejected with a petty reason7 -
I don't care about market cap. Stick your hype-driven business practices up your ass. Infinite growth doesn't exist. I won't read your fucking books and attend your fucking bootcamps and MBAs. You don't have a business model. Selling data is not a business model. Fuck your quick-flip venture capital schemes, and especially fuck your “ethics”.
I will be the first alt-tech CEO. I only care about revenue. The real money, not capitalization bubble vaporware. You don't need a huge fleet of engineers if you're smart about your technology, know how to do architecture, and you're not a feature creep. You don't need venture capital if you don't need a huge fleet of engineers. You don't need to sell data if you don't need venture capital. See? See the pattern here?
My experience allows me to build products on entirely my own. I am fully aware of the limitations of being alone, and they only inspire lean thinking and great architectural decisions. If you know throwing capacity at a problem is not an option, you start thinking differently. And if you don't need to hire anyone, it is very easy to turn a profit and make it sustainable.
If you don't follow the path of tech vaporware, you won't have the problems of tech vaporware, namely distrust of your user base, shitty updates that break everything, and of course “oops, they raised capital, time to leave before things go south”.
A friend of mine went the path I'm talking about, developed a product over the course of four years all alone, reached $10k MRR and sold for $0.8M. But I won't sell. I only care about revenue. If I get to $10k MRR, I will most likely stop doing new features and focus on fixing all the bugs there are and improving performance. This and security patches. Maybe an occasional facelift. That's it. Some products are valued because they don't change, like Sublime Text. The utility tool you can rely on. This is my scheme, this is what I want to do in life. A best-kept secret.
Imagine 100 million users that hate my product but use it because there are no alternatives, 100 people in data enrichment department alone, a billion dollars of evaluation (without being profitable), 10 million twitter followers, and ten VC firms telling me what to do and what data to sell.
Fuck that. I'd rather have one thousand loyal customers and $10k MRR. I'm different, some call it a mental illness, but the bottom line is, my goals are beyond their understanding. They call me crazy. I won't say it was never about the money, of course it was, but inflating your evaluation is not “money”. But the only thing they have is their terrible hustle culture lives and some VC street wisdom, meanwhile I HAVE products, it is on record on my PH. I have POTDs, I have a fucking Golden Kitty nomination on health and fitness for a product I made in one day. Fuck you.7 -
How do you make up new cool features for your platform?
well you don't because UX and PM think it best to look at competitors and implement whatever shit they come up with.
once, someone came up with a cool feature and some basic prototype for it and they ignored it. the competitor thought of it years later and did it. when they did it, suddenly its a priority at our company to do it as well.
sure, why be the first to do the feature. im sure being unique and creative is overrated not like our profit comes from user subscriptions.
Some recent PM decisions similar to the one above are driving me crazy, its not like u dont know what to do we literally have a ton of ideas so stop ignoring them and prioritizing being a knock off app of someone else. FUCK YOU. -
How hard is it to make a custom steno-lithography API? And do I even need one?
Hi, all. My name is J.A and I am co-owner of 3DPrintedDreams with my best friend. (We are both 17.)
During a brainstorm of what should be the flagship feature of our shop should be. We decided to take user images, (exact specifications TBD), and then use an API to transform them into .stl files so my friend can print it on his 3D Printer.
I am asking how hard or "easy" would it be to make such an API and what would be the bottom dollar if I were to make a collab post here about it? If anyone would be willing to listen, I could explain how all this would work in relation to the full stack of my website.
p.s. I understand that experience costs money and I myself have experienced this, but, we spent most of our money on the Pallete 2 from Mosaic. (about $500).
HOWEVER, we still have some money left. If a suggested price is to much for us to pay up-front, 3DPrintedDreams is willing to pay you in installments dermined by mutual agreement.
Thanks for your time and have a nice day!
-Josh
Co-founder of 3DPrintedDreams, LLC (Pending).15 -
Visual studio code
I usually use IDEs and am in love with everything made by Jetbrains. I am also to lazy to setup dual boot on my pc, so I live with windows 10. After one of the recent downgrades Microsoft distribute, they shipped this lightweight text editor called visual studio code with it.
It lied to me, that it's a good editor for coding C. It even tells me that I can compile and execute the code from inside the editor, similar to vim. I went to the settings and found a dark theme, for the best best feature this "editor"has to offer.
I give it a try by opening a source file with a normal double click. Editor gets focused, but the code is nowhere to be seen. Retrying conforms my, that this piece of shit is literally not able to open files UNLESS you drag and drop them into the editor. HOW FUCKING USELESS IS THAT?
Next I want to compile the program. Guess what, that functionality was not given or at least I could not find it (same goes with the manual)
Even with dark theme it burns my eyes to use this editor. There are almost no useful shortcuts. The functionality is not even comparable to vim. I always thought eclipse was bad, until this shit was installed.
It might work well for other people. Maybe it has functions, that just don't work on my pc, but from what I've seen: visual studio in general and especially that editor feels like Microsoft trying to replace the toolet paper with sandpaper.8 -
It's been 3 busy weeks. Had so much to rant about, but I could lurk at best.
We had 2 big features coming to 2 different projects. I told my boss it's take 3 weeks for the one I was working on. The guy working on the other one, said he only needed 1 for his. Guess who got labeled as negative, worrying too much over nothing, and so forth? Especially since a "much more complex" feature would take just 1 week!
Whatever. Fast forward to this week. I was done by tuesday, including testing of both features and deployment. By wednesday, I had even a good looking documentation. Everything was ready. EXCEPT. The 2 features have to go live together, due to various reasons. Guess who ia still a ling way from completing his task? Gueas who asked to postpone his deadline by 2 weeks? Guess who's gonna have to work on weekends for no extra pay?
Guess what? I know how to give an eatimate, and I rather be "negative" and schedule 1 or 2 extra days to be prepared for hiccups and what not rather than having to waste my free time for nothing.
FFS. -
GoLive for this big feature is set for Thursday. So the customer approaches me and asks can our team do it. Sure it can be done if everything goes perfectly, but... This means that the feature won't be tested, everything won't probably go perfectly (which it didn't because of customer selected third party api surprise nondocumented features (bugs)) and Thursday release is almost as dumb fucking idea as Friday release. I said it more nicely and I got:
"I don't agree with you"
from a person who has 0 understanding of what is going on and whose boss pays me to tell them what it needs in order to work and prosper.
And we had this fucking conversation three times. So basically he interrupted my coding that directly impacts the schedule in order to debate how fast things can be done. Don't these people understand that everytime you interrupt a software engineer the deadline is pushed by the same amount of time you waste of mine + 30minutes of refocus time to get back into the thing you were doing.
Best part was that the deadline was this magic date the guy pulled out of his ass without consulting the developer team and nobody really cared about the deadline =D
FUCK1 -
Can someone relate to it? We have a very simple process:
1. Create a ticket 🎫
2. Specify the requirement 📑
3. Assign the ticket to a developer 👨🦰👩🦰
4. Optional: make a meeting with the developer and go throw the specification if it is a complex feature 🗓️
Under pressure it looks like this:
Someone tells you to implement the request as fast a possible, no written specification, in best case you get a brief email 📧 also the feature has to be available asap in production and they is only poorly tested...
Or they want to test in production because the data in test system is "missing" ⛔☢️☣️
It is so annoying that is so difficult to stick to such a simple process 😭 it really freaks me out 😒😫12 -
First rant here...
Hand full of devs have to create a huge web platform that can shovel a lot of data around in about two months which is impossible...
Project lead has left major decisions in the hands of interns like database we want to use because no question can.be answered by that person. Inexperienced intern has chosen a fucking nosql database for highly relational datasets... why? Because new tech...
Development began and a bunch of problems arised... database was accessable from internet from day one. Random crashes because out of memory exceptions. Every possible feature had a description of at most 10 words... and no standards where enforced on anything.
Now that finaaaally we switch to sql after almost a year of prototypical production everybody keeps coding on new features so i have to port all the crap to the new database...
best part: a bunch of clients on different op systems have to be ported as well!
Even better part: i have to do that cause everybody else has practically no experience in any field...
And now the joke: i got hired for gui/desktop application development
Am i a wizard now? -
Best and worse IDE feature for you.
Me :
IDE : VS2019
Best : Conditional break points (cf image)
Worst : Git branches management (For example : can’t delete multiple branches at the same time)14 -
Good code is a lie imho.
When you see a project as code, there are 3 variables in most cases:
- time
- people / human resources
- rules
Every variable plays a certain role in how the code (project) evolves.
Time - two different forms: when certain parts of code are either changed in a high frequency or a very low frequency, it's a bad omen.
Too high - somehow this area seems to be relentless. Be it features, regressions or bugs - it takes usually in larger code bases 3 - 4 weeks till all code pathes were triggered.
Too low - it can be a good sign. But it should be on the radar imho. Code that never changes should be reviewed at an - depending on size of codebase - max. yearly audit. Git / VCS is very helpful here.
Why? Mostly because the chances are very high that the code was once written for a completely different requirement set. Hence the audit - check if this code still is doing the right job or if you have a ticking time bomb that needs to be defused.
People
If a project has only person working on it, it most certainly isn't verified by another person. Meaning that only one person worked on it - I'd say it's pretty bad to bad, as no discussion / review / verification was done. The author did the best he / she could do, but maybe another person would have had an better idea?
Too many people working on one thing is only bad when there are no rules ;)
Rules. There are two different kind of rules.
Styling / Organisation / Dokumentation - everything that has not much to do with coding itself. These should be enforced at a certain point, otherwise the code will become a hot glued mess noone wants to work on.
Coding itself. This is a very critical thing.
Do: Forbid things that are known to be problematic in the programming language itself. Eg. usage of variables in variables, reflection, deprecated features.
Do: Define a feature set for each language. Feature set not meaning every feature you want to use! Rather a fixed minimum version every developer must use and - in case of library / module / plugin support - which additional extras are supported.
Every extra costs. Most developers don't want to realize this... And a code base that evolves over time should have minimal dependencies. Every new version of an extra can have bugs, breakages, incompabilties and so on.
Don't: don't specify a way of coding. Most coding guidelines are horrific copy pastures from some books some smart people wrote who have no fucking clue what you're doing and why.
If you don't know how to operate on people, standing in an OR and doing what a book told you to do would end in dead person pretty sure. Same for code.
Learn from mistakes and experience, respect knowledge from other persons, but always reflect on wether this makes sense at this specific area of code.
There are very few things which are applicable to a large codebase on a global level. Even DRY / SOLID and what ever you can come up with can be at a certain point completely wrong.
Good code is a lie - because it can only exist at a certain point of time.
A codebase should be a living thing - when certain parts rot, other parts will be affected too.
The reason for the length of the comment was to give some hints on what my principles are that code stays in an "okayish" state, but good is a very rare state -
Started a new role as a front end developer working with React, happy that i finaly won't have to work with wordpress anymore, having a great hope that I will learn from the best with my team, and then ... COVID-19 ... I have to work from home
first task, implement a feature on a react front end build with react boilerplate, first time seeing this repo and dispair quickly took over, there is no documentation except for clone and install, the code is a mess, the console is filled with errors and warnings ...
I did what I could, but it was not enought, my n+1 didn't complain but if I was him i'd fire my ass with no regret, now I understood why almost all my collegues are working as a backend devs.
I don't fear being fired, I fear the feeling of being not good, feeling useless, each morning I stare at the code and I become illiterate, I can't even touch a keyboard, now I don't know what to do, fixing this shitty app, trying to build something with react boilerplate and try to understand how the data flow, or continue my endless tutorial hell .1 -
Interesting...
On Friday, I was playing with the ChatGPT integration in DBeaver. I was using the DBeaver sample SQLite database. This database has a couple of tables, among them Album and Artist, where Album has a foreign key into Artist.
So, I asked it:
"give me a query that lists all albums from artists who's name starts with s"
The query I got back was:
SELECT * FROM Album
Uhh, okay.
But then, I noticed that I wrote "who's" instead of 'whose', which would be proper grammatically. So, I changed that, and then I got this query:
SELECT * FROM Album WHERE ArtistId IN (SELECT ArtistId FROM Artist WHERE Name LIKE 'S%');
Hooray, that works! I'm not sure it's the best way to write the query... I might have written:
SELECT * FROM album a, artist r WHERE a.artistid=r.artistid AND r.name LIKE 'S%'
...I'd have to check to see if one performs better than the other, and consider which syntax I find clearer, but that's a separate issue, it's just nice to see a working, reasonable query generated because that's the point, after all.
But I found it interesting that such a minor error would cause it to not work, that's my main point.
Interestingly, it seems to have learned: I just tried the same thing, and I got the right query either way. So that's pretty cool.
It's a pretty neat feature and I can see some legitimate value in it. I'm pretty good writing SQL myself... I've managed to write some truly hideously complex queries over the years... but there are definitely instances I can recall where the query didn't seem obvious at the start, and having an AI that can MAYBE produce something that is AT LEAST a starting point is definitely something I can get onboard with.9 -
The senior engineer on my project is working with Kafka. Completely unaware of the possibility of rescheduling failed messages with a fixed delay he was trying to put a Thread.sleep somewhere in the consumer to emulate the feature.
Sometime i would like to burst out crying because I feel like I'm the only one who care about writing good code and using best practices.
The more in the industry the more I realise titles don't matters. Everything is shit, everything...5 -
Is there a limitation of how much I can commit in git each day in a separate 'feature-branch'?
Cause, I had to explain to a team member (somewhat senior than me) why I committed 9 times in a single 8 hours task(s) (according to him where it was two separate tasks done in a single day).
When I said, I prefer to save my progress in a small commit (at least try my best to write meaningful commit)", I turned out to be a stupid team member. 😔10 -
I really like coding for scientific purposes. It unites my big passions (natural sciences/engineering/coding). And I like the feeling of empowering someone to do research. BUT BESIDES DEALING WITH DUMB FEATURE REQUESTS, THERE IS NO WORSE PAIN THAN HEARING PHD CANDIDATES FUCKING SAY RETARDED STUFF. HOW DID YOU EVEN WON THE SCHOLARSHIP FOR THE PHD YOU DENSE SON OF A BITCH (NICE JOB ACADEMIC ENVIRONMENT BTW). YOU LACK KNOWLEDGE OF HIGH SCHOOL LEVEL EVEN ON YOUR OWN SUBJECT. THE BEST RESEARCH YOU CAN PROVIDE TO THIS WORLD IS THE FLUID DYNAMICS OF AIR WHILE YOU JUMP OFF A SKYSCRAPER MOTHERFUCKER.
-
Hi devRant community,
First of all, I'm so grateful and thankful for being part
of this awesome community. CHEERS!
I just wanna ask some advices from my super kind and awesome
pile of developers, what is the best thing to do if you're
stucked between creating a certain feature and a raging
girlfriend. I mean, my head is aching. I don't know what to do.
She needs time, but my first love which is programming also
needs much more of my time.
#devRantRocks3 -
At my school we have 2 projects a year, mock projects to learn how that works.
For this project we have to use php, agile and we have an actual customer. Since several groups work for the same customer , the customer can choose the best result. (if your product gets chosen then there may or may not be a reward)
In every sprint meeting the customer confirms my thoughts on how much I hate customers without any knowledge.
I'm good at dumbing things down for less knowledge people. But no matter how I try to dumb down demo, she doesn't get it.
I'm so super frustrated!!!!
And she's asking for a feature that she'll probably use once, and I'm not convinced she knows what she is asking for. But will take me several hours to implement. It feels so useless.3 -
It was the end of my first week. Friday evening and everything was going well. I'd just made a career change and loved it. My new job, boss, and coworkers were fantastic.
So I decided to play a little with a portion of the website before leaving for the weekend. I needed to learn a module that was responsible for displaying our company hours online. I was told prior to being hired that this particular part of the site was important and the only recent cause of the previous developer working long hours.
It didn't work like I thought it did, and with changing one line of code, I brought the entire thing to it's knees. Not just the part displaying hours, but the entire page, which was our home page.
I didn't panic. I called some other devs I had met. I knew they could fix it. No one answered. 4.30pm on a Friday is not the best time to reach people. Four or five unanswered calls later, I started to panic. I tried changing the line of code back, but couldn't get it right. I tired removing the hours module, but that didn't work either. 10 minutes felt like an eternity.
I finally found the history feature of our CMS. It saves versions of pages and saved me that night. I rolled back to a version of the page last modified before I started working there, and it worked like a charm.
I didn't touch that module again until I had something to replace it with.3 -
Well fuck. I am experiencing over-engineering first hand.
I am the single dev responsible for developing a small feature but which is an identity to our whole product(feel free to guess it here). This is quite simple I thought, I can just modify the constants which are being used in the source code and I can finish it off in a week tops. I asked all the relevant teams over which this feature would have dependencies and they gave me a green signal. Setup Jenkins configuration and everything for this new feature. With a wide grin on my face, I sent out a pull request. Now the architect of our product declined the pr saying to change everything from the bottom up giving the reason that it would be configurable sometime later in the future. Now mind you, I get it if this feature could change over time and needs customability. But it has been the same since last seven years and would probably not change again for a couple of years ahead [you have to take my word for it.]. Its not that the guy is a douche or anything, he is one of the best dev I have ever personally came across and I highly respect and admire him. But there has to be a trade off between the effort you are putting in versus the benefit you get. Now I have to touch almost every file, super carefully look in the whole product if a bug creeps out from anywhere and change the existing code to a point where it doesn't even make sense to me anymore, and write tests ofcourse.
wubba lubba dub dub!2 -
ok this may look like a lazy ass beginner crying out for spoon feeding( which it kinda is), but i want some real industrial training in non documented Android coding.
For last 2 years i have been reading tons of Android articles and documentation on "how to use this library", "how to add this feature", "what this function of this class does", but not much about how to use it efficiently, like the way its used in industry.
When I interned with a startup, all they wanted from me was to push new design changes, fix layout bugs and work as fastly as i could. I had no time to understand their core code, which had so many things that i could have learned : those mvp/mvvm design/architecture patterns, dependency injections, kotlin , coroutines, state management designs, data bindings, eventbuses and handling, and VIPER,RIBS (I mean, not everything was particularly in their code, i picked up a few keywords from here n there)... a lot of stuff that is used by many apps for their codebase.
I can read up these stuff by myself, but i always end up feeling bored coz frankly, i got no big/valuable project to implement it upon and feel excited about it. I feel that open source projects from OSS companies could be my window, but their chat spaces are also mostly empty to discuss/get some guidance.
I want some specific training about these. Can you guys provide any online/offline course/company training/books in this subject, the best practices?1 -
We’ve been discussing it, from a lot of angles. We mixed in the domain constraints for this feature and how to build it. I’ve been at the drawing board, and at the keyboard trying to get it into code. FINALLY I have something to show for the hard work, a working proof of concept. It felt good. There are a lot of things still left to polish, but we have most of the building blocks. If that ain’t the best feeling and the reason to work in this field. Left the job yesterday with the feeling that I’ve accomplished something, that’s not often since it’s otherwise mostly meetings and boring code reviews. Satisfaction.
-
I hate reactive management.
It's when your boss instills fake urgency every time a client asks for something close to impossible, or <x> competitor is doing something in a different way he deems the best.
Everything must be dropped, the sprint put on hold, fuck requirements, everybody has to do overtime, why are you not contributing?, why are you going home when you have to?, fuck do I care you have a 1 hour commute - this <y> thing has to be made by sunrise tomorrow or it's a showstopper.
And it's never a showstopper. 90% of the time the feature gets dropped one-two months down the line.1 -
contrarian dev guru types are just losers who couldn't make it in industry or business with their (lack) of skills, but are so sour and embittered they continue to shovel their own garbage on everyone else
god its just so annoying "oh i do it only this way, and its the RIGHT way, you must do it this way"
this UI feature that literally exists everywhere else? "oh no those are bad, no one uses it and its not a best practice"
get the fuck out of my way, you're just slowing me down2 -
Edit feature has* arrived, now I can fix my spelling instead of replying and ragging about autocorrect!
-
I've gone through so many tiling wm this semester and can't figure out what I like best...
i3, bspwm, xmonad, windowchef, herbstuffwm, awesomewm, fvwm, etc.
I love the cleanliness and productivity aspect of them compared to something like Windows and it's floating/snap feature. Awesomewm looks like a good choice but the config scripting is quite verbose.
So many choices! Probably doesn't help I want to keep it consistent across my laptop and 3 monitor setup (1 21:9, 2 16:9).4 -
As promissed.
Day #1 on THE other project. Nothing fancy, just setting up my dev env. Got a decent pc with all the required network permissions. And this time I got w10 [last year I was working there on w7 pc via rdp from another w7 laptop. Dont ask...]
of course no localadmin rights to set shit up. Downloaded all the installs, found someone who has admin rights to run them. I even managed to get admin powershell!
Ran all installers, enabled long paths support, env vars, tweak here, tweak there,... Installed git bash to at least have a taste of shell. Decided to try out wsl. Enabled the feature, didnt reboot right away.
Rebooted. 2xclick on ubuntu setup and I get an error claiming wsl is not ebabled. Wtf? Did I do it wrong? I see bash command is there now so I must have done it right. After some googling I found out that even though I can enable wsl, it doesnt work on my version of windows. It's too okd they say. Yeah, tx MS, that's very intuitive and user friendly!
Allright, my hopes to habe a decent sub-os died. Git bash it is :( but I miss tmux soooo much. Then I came across smth that caught my eye. Msys2 it's called. Apparently it's based on cygwin and has a pacman package manager! ´pacman -S tmux´ -- hippee-ka-yay motherfuckers! It's not the best terminal emulation, but it works quite allright and it has tmux. And netcat!
Banished to mouseclickerland still managed to find a good enough shell. Yayy!
So there it is. My first day's ups and downs, disappointments and discoveries.
If you know a better shell I could set up on w10, please, share -
Was an internal auditor translating department process to a technical spec for a programmer. We were going to leverage an external company's API which would replace our need to use their slow and buggy web app.
During a meeting, an audit teammate suggested something be changed with the external service we were using. I said we could bring it up with the company but we shouldn't rely on it because we were a small customer even during out busiest month (200 from us vs 10000+ from big banks).
Teammate said we should have our programming team fix it. I made it clear that it was not our side and that to build out the service on our side was beyond our scope. Teammate continued to bring it up during the meeting then went back to desk after meeting and emailed us all marked up screenshots of the feature.
I ignored this and finished writing up the specs, sending them over to the programmer building out the service.
30 minutes later I get a call from programmer's manager who was quite angry at an expanded scope that was impossible (engineers were king at this company. Best not to anger them). Turns out my teammate had emailed his own spec to the programmers full of impossible features that did not reference the API docs.
I feel bad about it now but I yelled at my teammate quite loudly. I said he was spending time on something that was not reasonable or possible and when they continued to talk about their feature I yelled even louder.
Didn't get fired but it definitely tagged me as an asshole until I left. Fair enough :) -
Frustrating feature/bug of SO is when you don't have enough rep to leave comments or have your vote truly counted, and the best answer is the bottom comment, and you have absolutely no way to thank the person! @Adiii no idea if you are on here but thanks so much for your simple and elegant nodejs solution to checking for and creating directories.
-
just feeling satisfied being able to program. even if it is just a small vba script again. but it accomplishes a feature in urgent need. best point is doing it within paid time.
-
Best part for me is when you see the final product. I do not mean once you're done working on the entire project (which is never true, always more to do! xD) but when you add a feature and it works.
Actually seeing it work, that gives me such a good, fulfilling feeling.
That has always been what attracted me to programming, or.. the main thing. -
I’m having this issue for the online marketplace I’m working on the side. It’s blockchain tech where you can purchase normal goods and services(no, not like Amazon or Fiverr, eww, this one’s more inclined with promoting organic growth for small businesses and freelancers).
I’m stuck with what solution is in the best interest of the user and the business for the long-term.
The dilemma about anonymity, online freedom and privacy is yes, it protects users from predators and attackers, but then, it’s harder for authorities to hunt down people who uses platforms for malicious intent, and also, digital footprint is helpful during litigation as evidence.
You don’t know who to trust.
-There is nothing to differentiate normal users with spammers, scammers, etc.
-There is no accountability for if they break the rules. They can easily delete and create a new account.
Platforms, communities big or small are plagued with these.
There are a lot of people out there who would rather project their insecurities on other people than to seek therapy.
Also, how platforms uses psychology tricks to make platforms addicting, it’s safe to assume that it’s bound to get toxic. Fixation on these platforms, leads to other needs being neglected or people forget to stay present.
Another thing, automated moderation is not that effective as there are still biases in data and human verification is still required. But then, human moderators get exposed to extreme violence, gore, etc that leads to poor mental health. (see Facebook got sued by moderators)
Also, I’ve had a recent experience where some unstable dev was stalking and harassing me. During that turmoil, I’ve found the many loopholes in every platform out there and how crappy their support is. Like they’ll just say, “make your account more secure”, bitch it’s your platform not providing enough security, your blocking feature means nothing coz anyone can still create accounts and message anyone.
It happened like February-August (it ended coz I quit going online and made private all my accounts). UGH I MISS ALL MY FRIENDS THO. FUCK THAT DUDE. He deserves to be in jail TBH
Lol if this product booms, now u know the back story lololol -
I find it insightful when people actually convert their rant into a knowledge bomb 💣💥😅 https://hackersandslackers.com/flas...
Finally getting to know clear advantages of "application factory" over how Flask apps are usually sugar-coated in scarce tutorials.
This article also points out one of the core problems with Flask documentation and, consequently, a public view on Flask's feature parity with Django.
Ever wondered why it's looked upon as not very strong rival to Django? That's documentation... again, we come to that 😔⌨️🗑 It stretches a lot of commentary and side notes, but forgets to mention best practices from community.rant overlooked patterns where are my blueprints monopoly of django poor documentation tutorial hell make factory great again flask python -
That shitty moment when you are finally about to release your code, after about one month of developing and testing, and making sure everything is OK, imagining: "Oh we're finally releasing this feature, I have worked so hard on it, it's going to kick some ass!" but surprisingly things get fucked up on production server... I mean seriously? Stupid middleware I killed myself to get to work messed up. Where the hell have you been in staging, you stupid little bug? You happy now? My CTO giving me awkward looks and shit like: "I'm sorry but you have to come fix it, during weekend." The best way to fuck up my mood, today is the last day of week for god's sake!
I hate releasing like this. seriously SAG in this release!1 -
Drag-to-select in Samsung's "My Files" app is a disaster.
If you don't move your finger and stop dragging towards the top or bottom, it goes into "drag-and-drop" after one second. When you release your finger, it unselects everything, so you have to start over.
This is why every mobile file manager needs range selection. This means tapping two files, tapping a button, and everything inbetween is immediately selected.
This is similar to shift+click selection on desktop. We take this for granted since it has been a standard feature for three decades. But mobile apps still can't do this simple thing as of 2024.
"Drag-to-select" is better than individual selection, but comes nowhere close to real range selection. "Drag to select" is at best an ugly twin of full desktop-like range selection, but file manager developers can still get away with giving it the label of "mass selection".
ES File Explorer had this since at least 2012, yet billion-dollar Samsung and Google fail to implement this in their file managers.2 -
Something you really should not do:
*adds a new feature*
*build & run*
*See no difference*
Me: "Hmm.. Maybe 1 is not the best test integer, let me pick something higher..."
*build & run*
*INTEGER OVERFLOW EXCEPTION*
Feel free to share your "let me choose anothee test integer"-stories, which gone terribly wrong.1 -
!rant
My ecig mod (or box how some call it) started to missbehave, it started at random not liking more and more batteries and generally it was good time for replacment. Fast forward, im at shop, and I have few options, i dont want to cheap out becouse I know how it ends, and I want reaible box for longer and I can pay a little more for that.
So there was few quite competetive options, but most of them had build quality i wasnt fan of, some even plastic outter shell, magnets which tend to break off, but their feature list was quite competetive, and there most expensive of all (400 pln +-90ish $) that seller presented me had (seemingly) no features. No menu even. But build quality is solid buttons feel are just better, and it looks like it could survive longer than half a year. Fine, i shell out what it looked missing features for solid build quality.
I go home, rtfm, and wtf? "Before use update firmware with XYZ software". Okay, done. But hmmm what is that?
It has plethoria, absolute TON of customization but from PC program. Hell yeah, that was fucking good choice and seller missed whole selling point of this box. Like literally, he didnt know its best feature. I can go as far as customize entire GUI on that small screen. Its been awhile since I did my last pixelart thingy but monochromatic so not too bad :)4 -
I need some advice to avoid stressing myself out. I'm in a situation where I feel stuck between a rock and a hard place at work, and it feels like there's no one to turn to. This is a long one, because context is needed.
I've been working on a fairly big CMS based website for a few years that's turned into multiple solutions that I'm more or less responsible for. During that time I've been optimizing the code base with proper design patterns, setting up continuous delivery, updating packaging etc. because I care that the next developer can quickly grasp what's going on, should they take over the project in the future. During that time I've been accused of over-engineering, which to an extent is true. It's something I've gotten a lot better at over the years, but I'm only human and error prone, so sometimes that's just how it is.
Anyways, after a few years of working on the project I get a new colleague that's going to help me on my CMS projects. It doesn't take long for me to realize that their code style is a mess. Inconsistent line breaks and naming conventions, really god awful anti-pattern code. There's no attempt to mimic the code style I've been using throughout the project, it's just complete chaos. The code "works", although it's not something I'd call production code. But they're new and learning, so I just sort of deal with it and remain patient, pointing out where they could optimize their code, teaching them basic object oriented design patterns like... just using freaking objects once in a while.
Fast forward a few years until now. They've learned nothing. Every time I read their code it's the same mess it's always been.
Concrete example: a part of the project uses Vue to render some common components in the frontend. Looking through the code, there is currently *no* attempt to include any air between functions, or any part of the code for that matter. Everything gets transpiled and minified so there's absolutely NO REASON to "compress" the code like this. Furthermore, they have often directly manipulated the DOM from the JavaScript code rather than rendering the component based on the model state. Completely rendering the use of Vue pointless.
And this is just the frontend part of the code. The backend is often orders of magnitude worse. They will - COMPLETELY RANDOMLY - sometimes leave in 5-10 lines of whitespace for no discernable reason. It frustrates me to no end. I keep asking them to verify their staged changes before every commit, but nothing changes. They also blatantly copy/paste bits of my code to other components without thinking about what they do. So I'll have this random bit of backend code that injects 3-5 dependencies there's simply no reason for and aren't being used. When I ask why they put them there I simply get a “I don't know, I just did it like you did it”.
I simply cannot trust this person to write production code, and the more I let them take over things, the more the technical debt we accumulate. I have talked to my boss about this, and things have improved, but nowhere near where I need it to be.
On the other side of this are my project manager and my boss. They, of course, both want me to implement solutions with low estimates, and as fast and simply as possible. Which would be fine if I wasn't the only person fighting against this technical debt on my team. Add in the fact that specs are oftentimes VERY implicit, so I'm stuck guessing what we actually need and having to constantly ask if this or that feature should exist.
And then, out of nowhere, I get assigned a another project after some colleague quits, during a time I’m already overbooked. The project is very complex and I'm expected to give estimates on tasks that would take me several hours just to research.
I'm super stressed and have no one I can turn to for help, hence this post. I haven't put the people in this post in the best light, but they're honestly good people that I genuinely like. I just want to write good code, but it's like I have to fight for my right to do it.1 -
Who else is frustrated/burnout at building products that never gets into production?
When I work for a company I always tend to do everything with good practices, spend a lot of time thinking on the best ways to build x feature, and then the company falls into the infinite loop of adding stupid features, and then I've been working for 2 years and 0 paid customers. Funny that we've Sentry, GA, Hotjar sitting there doing nothing.
I'm honestly hating the startup environment rn. Good thing is that I've learnt a lot and salary is good. But also I lost all motivation.
Any recommendations for a tired dev?7 -
Can anyone suggest any websites or resources for a breakdown of how to handle requests for features or handling bugs. Basically, I want some kind of background on best practices for managing the process of receiving a feature request/or bug report from a user to it reaching the dev team, to production/user acceptance testing.5
-
YouTube comment translation feature is by far the best and most useful feature (in my opinion) YouTube has added since the creation of it, and then came the worst...1
-
I'm sure it already happened to you :
- Me : I don't know if it's a good idea to make this feature, it will take me hours and may impacts the stability of the app. We are only at one week of the release...
- PM : But the users really need this.
- Me : hum ok...
*Five minutes later, find out it takes only two lines of code to do it*
Me : I did my best and the feature is ready !
*Fortunately no one will check the svn logs :D*2 -
Does anyone feel like their boss is always scheming behind your back. They are changing the requirements and rejecting you without even reviewing your work and are too good to attend any meetings. They’re trying their best but wouldn’t ever give you credit when you are trying your best and getting good results. At what point does the micro management and fear of failure make it so you can’t even take the simplest feature without melting down?1
-
A follow-up to a previous rant: https://devrant.com/rants/2296700/...
... and how the senior dev recently took it up a notch.
To recap: Back then the senior dev in our two-man project prepared tasks for me so thoroughly they became typing monkey jobs. He described what to do and how to do it in minute detail in the JIRA tasks.
I talked to him back then how this is too detailed. I also talked to our boss, who agreed to nudge mr. senior in the right direction and to make it clear he expects teamwork.
Fast forward to a couple of days ago. An existing feature will get extended greatly, needing some rework in our backend project. Senior and me had a phone call about what to do and some unclear details in the feature spec. I was already frustrated with the call because he kept saying "No, don't ask that! That actually makes sense, let's just do it as the spec says" and "Don't refactor! We didn't request a budget for that from our customer". Like wtf, really? You don't consider refactoring part of our job? You don't think actually understanding the task improves the implementation? Dude...
We agreed this is a task for one person and I'd do it. It took me the rest of the day to wrap my head around the task and the corresponding existing code. It had some warts, like weird inheritance hierarchies and control flow jumping up and down said hierarchy, but nothing too bad. I made a mental note to still refactor this, just as much as necessary to make my task easier. However... the following day, I got an email from mr. senior. "I refactored the code after all, in preparation for your task". My eyebrows raised.
Firstly, he had made the inheritance hierarchy *worse*. Classic mistake: Misusing inheritance for code reuse. More control flow jumping up and down like rabid bunnies. Pressed on that matter, he replied "it's actually not that bad". Yeah, good work! Your refactoring didn't make things worse! That's an achievement worthy of being engraved on your tombstone. And didn't he say "no refactoring"? Apparently rules are unfortunate things that happen to other people.
But secondly, he prepared classes and methods for me to implement. No kidding. Half-implemented methods with "// TODO: Feature x code goes here" and shit. Like, am I a toddler to you? Do you really think "if you don't let me do things myself I feel terribly frustrated and undervalued" is best answered with giving me LESS things to do myself? And what happened to our boss' instruction to split the task so each of us can work on his parts?
So, this was a couple of days ago. Since then, I've been sitting in my chair doing next to nothing. My brain has just... shut down. I'm reading the spec, thinking "that would require a new REST endpoint", and then nothing happens. I'm looking at the integration test stubs ("// TODO: REST call goes here") and my mind just stays blank, like a fresh unpainted canvas. I've lost all my drive.
I don't even know what to do. Should I assign the task back to him and tell him to go fuck himself? Should I write my boss I'm suddenly retarded? Could I call in sick for a year or so? I dunno... I can barely think straight. What should I do and how?5 -
Any advice on how to deal with gatekeeping developers? How to deal with red tape?
I work with people that are resistant to code and process change. Continuous pedantic pushback on nearly anything; one raised a fuss over metrics not being satisfactory at a 5% threshold for alerting stating that 4.99% metrics variance wouldn't trigger an alert.
It's genuinely as though my coworkers are all scared of code based on the way they behave. They don't seem to code very often either.
I'm someone that codes quickly but I have to constantly write proposals for quite literally any change to the codebase. Even IF there were issues we could always rollback (and even then we have metrics, alerts, canary rollouts, feature flags, etc etc). As a quick aside, my pace isn't related to the pushback nor experience/skill level. Just affects my morale and mental heth to be blocked.
I can communicate effectively and I try to be as clear as possible in my proposals but this is absolutely driving me up the wall and killing my motivation.
This is a faang-level company and I would've expected better.
Any advice on how to best navigate this? Is this the norm???4 -
We are a remote team of two android developers for this startup. I have 3 years of experience and my protege has 1 year of experience.
One month a new guy with 10 years experience joined our team and hes working onsite. He's supposed to be scrum master and be good ad dividing and delegating tasks, but what he's doing past two weeks is appaling to me.
Basically we got a request for a new feature. He skipped discovery and planning steps, went straight to implementation and one week later showed us his implementation.
Note that at that moment my remote team was not informed about anything. He started reinventing a library to capture a picture and video, while there are tons of other well developed libraries out there.
What makes things more difficult is that his english sucks.
I don't understand what he's doing but now it seems that either he's playing office politics and is trying to stay ahead by not informing us so we would be forced to follow his implementation. Or maybe he is totally oblivious and don't have any sprint management experience, so he's just trying his best by working hard and trying to prove his own worth.
Eitherway it sucks that he is not able to communicate specifications from HQ to us, because even I did a better work with planning our sprints by communicating remotely.
So now I started asking him questions and turns out the guy doesn't even understand specification. He already half implemented the feature and can't tell us why we need it and why we are not using what we already have in the app. So now he's back to square one: doing discovery. It's fcking ridiculous.1 -
I am having an introspective moment as a junior dev.
I am working in my 3rd company now and have spent the avg amount of time i would spent in a company ( 1- 1.5 years)
I find myself in similar problems and trajectories:
1. The companies i worked for were startups of various scales : an edtech platform, an insurance company (branch of an mnc) and a b2b analytics company
2. These people hire developers based on domain knowledge and not innovative thinking , and expect them to build anything that the PMs deem as growth/engagement worthy ( For eg, i am bad at those memory time optimising programming/ ds/algo, but i can make any kind of android screen/component, so me and people like me get hired here)
3. These people hire new PMs based on expertise in revenue generation and again , not on the basis of innovative thinking, coz most of the time these folks make tickets to experiment with buttons and text colors to increase engagement/growth
4. The system goes into chaos mode soon since their are so many cross operating teams and the PMs running around trying to boss every dev , qa and designer to add their changes in the app.
5. meanwhile due to multiple different teams working on different aspects, their is no common data center with up to date info of all flows, products and features. the product soon becomes a Frankenstein monster.
6. Thus these companies require more and more devs and QAs which are cogs in the system then innovative thinkers . the cogs in the system will simply come, dimwittingly add whatever feature is needed and goto home.
7. the cogs in system which also start taking the pain of tracking the changes and learning about the product itself becomes "load bearing cogs" : i.e the devs with so much knowledge of the product that they can be helpful in every aspect of feature lifecycle .
8. such devs find themselves in no need for proving themselves , in no need for doing innovative work and are simply promoted based on their domain knowledge and impact.
My question is simply this : are we as a dev just destined to be load bearing cogs?
we are doing the work which ideally a manager should be doing, ie maintaining confluence docs with end to end technical as well as business logic info of every feature/flow.
So is that the only definition of a Software Engineer in a technical product?
then how come innovations happen in companies like meta Microsoft google open ai etc?
if i have to guess as a far observer, i would say their diversity in different fields helps them mix and match stuff and lead to innovative stuff.
For eg, the android os team in google has helped add many innovative things in google cloud product and vice versa.
same is with azure and windows . windows is now optomissed to run in cloud machines when at one point it was just a horrible memory hogging and slow pc OS
for small companies, 1 ideology/product/domain is their hero ideology/product/domain .
an insurance company tries to experiment with stuff related to insurances,health,vehicles,and the best innovations they come up with is "lets give user a discount in premium if they do 5000 steps a day for an year".
edtech would say "lets do live streaming for children apart from static videos"
but Android team at google said , "since ai team is doing so well, lets include ai in various system apps and support device level models" ~ a much larger innovation as 2 domains combined to make a product
The small companies are not aiming to be an innovative product, they are just aiming to be a monopoly product. and this is kinda sad2 -
Three possible strategies for adding a new feature. Not sure which is the best, so I'm going to go with the one that's least invasive to the existing structure of the database.3
-
Which Idea was it to combine C, C++ and Java in one big fucking Project. And who thought that it was a Good Idea to use Eclipse C++ for developing with Java. If the whole Project would have been in Java I could have used the auto Import feature from Eclipse, but if Eclipse doesn't Know that the Java Files are Java Files it doesn't fucking work. So I just had to spent a whole fucking Day compiling the Projects with Maven so that I can write around 100 Lines of Import...
And the best Thing is, a few Weeks ago the Imports existed so a fucking asshole just erased them when he tried to optimize these...
Sometimes I hate this company -
Not being sure about if the way I did or implemented a feature/functionality was the best practice and if not, is it worth it to try to come with a better way of doing it? I get paranoid about having problems showing up now because I did something not thinking ahead in the past1
-
Fucking product manager...
Customer is struggeling with a feature implemented before I even joined the company. And he is absolutly correct. The logic is bullshit.
Guess what pm Said? Fuck Off, I Don't Care.
Damn fucking you. Should I Care? Is it one of our best customers? Is the feature financed by him? Are you bastard usually crawling in his ass?
Thanks that I'm on vacation for 2 weeks. I'm currious how they going to manage that.... -
I've just received a merge request for a feature that we outsourced. How do you best deal with substandard quality?
It's a merge request for roughly 2k lines of code and I've already noted down 25 comments and I'm only at my first file :(4 -
Literally the best feeling in the world followed by 3 fist pumps.
The feeling I am describing is that sense of accomplishment and god-mode when your working on a feature/bug and you write some code to implement it, run it, and it works flawlessly. Ahhh. -
So, I had a friendly debate with my senior dev today working over this feature.
What do you say is the best approach?
1. Optimize at the time of building the feature.
2. Do the feature work, optimize all at once. (let's say on a time cycle).5 -
At what point has vscode's remote development gone from the best feature of the entire editor to barely functioning heap of shit?7
-
Oh boy this may be my best product review yet. I'm totally smitten with GitHub Copilot! I always put off trying it, but I finally gave it a try recently. Man, oh man, once I got a taste of it, there was no going back. This auto-suggest feature is pure sorcery! It throws out complete function suggestions while you type, and it's all based on the context of your code.
Let me tell you if you have never tried it, it's freaking awesome and super handy! I've been learning Python for less than a month, but thanks to the freaking Copilot, my Python skills have skyrocketed like for real. I know this because I tackled a Python project and nailed it. The client was stoked because it worked flawlessly, even though my Python skills are still a bit rough around the edges.
The coolst thing is hw clean my code looks, especially for a beginner. all I have to do to add a comment is type a double slash, and Copilot takes care of the rest. It suggests what should go on each line as I type, and it's scarily accurate.
You know what's wild? On the GitHub page, it claims that Copilot writes 50% of the code. But, dude, for me, it wrote way more than that!8 -
Working on a feature which heavies relies on a data pipeline. I noticed it is a couple of lambda functions calling each other ( Fuck you to the guy who made it). The best way to get sanity back is build a proper etl pipeline. Any suggestions for building a etl in python with reliability.
Options already considered
1. Celery tasks - Worked well but no overview of the single task progress across celery tasks
2. Airflow - Gives good overview but the docs make less sense than a 10 yr talking. Mostly because they introduced a new syntax and not everything has migrated fully yet. Also no support for reusing dags2 -
I was away sick for a week. Come back to a chat log with messages about how the other dev team is trying to figure out a solution to a bug that they only show three services listed in the system.
Me couple of weeks ago on my second day in the project figured it out relating to a task I was doing. It's not a bug, it's a feature. It's a constant defined in the constants-file.
And the best thing: my team mate quoted me and said "Lankku figured it out last week". And it was passed down back to the team who had actually developed the whole feature and couldn't figure out why it was working so now. xD -
Custom Essay Writing
Paper composing is the one of the most significant task in the scholastic long periods of the understudies. Be that as it may, huge numbers of the understudies are getting exceptionally hard to compose papers. The primary explanation is that understudies are looking recorded as a hard copy an article is that they don't have such an experience.We are giving numerous serves to the understudies like by giving on the web best research paper composing administration . An exposition is a decent method to incorporate all raw numbers. The composing ability is significance in all fields, the Essay composing practice prompts the quality writing.Custom article composing administrations spare your time just as your space for different exercises as you are not the person who is composing the paper. We can't give the best and mistake free quality composition, which is the reason we need custom exposition scholars who can give us the best quality custom articles. The various tips make the Essay progressively appealing. The intriguing feature expands the interest and consideration of peruser. The straightforward language give the progression of sentence. So you should keep the language straightforward and keep up the stream. Try not to commit the sentence structure error, it will occupy the peruser from content.
visiT: https://essaywritersworld.com/13 -
I'd like to hear opinions from experienced devs/software architects... Referencing my two previous rants, the imposter's has been strong today. And I really don't know how to feel about the possible solution I've come up with... Adding the new feature as a microservice for an otherwise monolithic application 🙄 is that a sane idea?
The thing is I need to have a subscription type event-driven mechanism and since we're listening to service bus messages from another cloud provider, I apparently can't just have a serverless function to do the job, so unless there's a better option, I need a microservice with the subscription that can then invoke a serverless function to actually do what needs to be done. That's my idea, but I'm far from sure this is the best way...1 -
Choosing the Right Boxes of Cereals is Paramount for your Business Success!
There are thousands of different cereals to choose from when it comes to making your own cereal boxes. If you're the type of person who enjoys eating cereals like cereal bars for breakfast, you will want to start your cereal packaging design process as soon as possible. Many people enjoy cereal bars for breakfast or snack foods, but for people who prefer whole cereals for their morning meal, it's important to make your cereal box unique and interesting.
When you're cereal box design is unique and interesting, consumers will notice your attention to detail and know that you care about the quality of your products. Here are five different kinds of designs that are fun to look at and show a little creativity when it comes to making your own cereal boxes.
Customized Cereal Boxes If you're interested in creating unique cereal boxes, the first step to making your own is to choose which design type you'd like to use. Corn cereal boxes with different images on them are some of the most popular designs on the market today.
Making your Own Cereal Box isn’t Difficult
To really get the idea across, consider having a cereal image on one side of the box and a common face on the other. This is the best option for making customized cereal boxes because it uses your most prominent feature to get attention.
Fun Boxes and Bags With cereals being so popular these days, companies have jumped on the bandwagon to create fun cereal packaging for kids. In fact, cereal bags and boxes have become some of the most popular gifts for children. There are fun ways to personalize the bags and boxes to make them even more special.
There are cute characters for babies and colorful ones for older children. Personalizing your cereal boxes with a child's name, a favorite character, or a cartoon character is a great way to encourage children to eat their cereals on a daily basis.
High-quality Boxes of Cereals The highest quality boxes of cereal available are from across the world. Cereal boxes are usually made of rice paper, a thick but flexible material. They're covered in cellophane to prevent moisture from leaking out and are sealed using a special chemical coating. It's no surprise that rice paper boxes are some of the most expensive cereal brands available on the market.
Printing Your Own Labels Most kitchen stores will sell generic printing labels that are used for almost every product. Why not add some personal touches to your own labels? You can purchase blank labels in any printing shop and print your own graphics or text.
Or you can also purchase pre-printed custom labels that come with everything you need to be printed on them. Either way, custom printed boxes, and packaging boxes are an excellent idea for any business.
Custom Cereal Packaging Is Trendy!
Customized packaging When it comes to making custom boxes of cereal, there are so many different types of customization options available to you. Cereal boxes can be customized with your company logo or company slogan or even just a photo of your company headquarters. You can have custom boxes printed with many different types of material. Glass, metal, leather, and even paper are all popular options for customization.
With custom cereal boxes, you can choose the size, shape, and color of the box that you want. You can have it personalized with your own company name, telephone number and even have a short message printed on the box.
There are so many different design options to choose from. Depending on your budget and the time frame for your order, you may want to order your boxes from a custom box manufacturer like Packaging Bee to get a more economical quote and fast turnaround.
Conclusion
All of these options will depend on how quickly you need your products for your business, how much are your costs, and what type of boxes you are using for your packaging. Cereal packaging is an essential aspect of any business, and custom boxes of cereal are a great way to make your products stand out from the competition.
Cereal packaging can help keep your products fresh, and you will never be able to catch somebody off guard if they opened your product and saw it sitting on the shelf. Whether you are shipping boxes of cereal internationally or making them at home, consider making them according to the requirement of the customer.
Resource: https://packagingbee.com/custom-cer...3 -
One of the best product feature updates (though it's not "very" recent) that I really found interesting and useful from Developer perspective is integration of JIRA cloud with GITHub and how it uses issue key to associate the commit.
I makes things a bit easy while working in DevOps model :)
Please feel free to post your reviews. -
I just thought of a potential webapp ideas while talking a shower. Still need to give it some thought but wondering how best to built it out? Sorta like a message board/kiva/change.org
I'm thinking #1 is backend + REST api. Then just create a webapp using React Native so it can be used mobile and browser?
Probably will build the first prototype though using either C# just to test the APIs...
But I guess how do you break a project up. Do you build backend first or do it feature by feature (both backend and frontend)?
And well what about hosting? Do need to decide now like AWS/Heroku... Or can I just build on local? Need a db though...1 -
Some really motivated guy.
He apparently wants to monitore his opensource application on his spare time.
His application is likely to have no users though.
But well, that guy looks like kinda montivated.
For professional purpose, guy already did monitore with newrelic.
Seems like he was not satisfied and switched to datadog 3 years ago.
But liking digging dirt, he migrated to self hosted telegraf/influx/grafana (which he likes to about)
Today that guy is not in his company but on his potatoe machine in the cloud. So he wants to be minimalistic, datadog should do.
Now you got it, random ff*** is me, on a weekend, a shinny saturday for that matter.
Actually now it is night.
Now let's start the fight.
I have datadog scripts!
But datadog be sneaky as well. datadog upgraded to v6 8=)
-> scripts ain't working. outdated.
I check the logs. Too bad!
-> datadog removed dogstatsD.log in v6!
Well I have nothing to do in my life it is too cold outside as they say. I read the (sluggy) datadoc and tries some shell command (given in doc) to upload some events to dogstatsd (via udp).
-> Nothing happens, neither in local nor in remote.
ok maybe command not up to date, so let me try some official library. datadog from python. Feels like a nice try!
-> only available for python >= 3.5. 3.4 on my good ol' jessie. Upgrading os for datadog not acceptable.
Maybe dogstatsD not started... doc says it is by default, but well, not the first time doc is wrong... I put datadog as log verbose. Guess what: as per standard: shitload of error.
Digging... kubexx, docker and whatsoever apparently preventing collector to do its normal stuff
np, I am gonna check that on github! Goog, people have the same errors. They seem to fix it by trying some settings, with. or without luck
-> I am not that warrior to check every stuff
Ok, let's stop the datadog events, it works. It does not anymore. You know that sentence. We all know it.
Still not enough!
How about testing that uber super nice feature of v6. The logs. After all I want to make events out of my applicative logs.
How about reading the log again. Configure the yaml log as they say. Done. Make some pattern. Read the best practive. Done. Configures the yaml. Done. Now testing.
-> remote datadog interface be like: no logs for you dude you need to pay
ff***f*f*f
Fuck datadog, fuck that v6 version, good old tail -Fxx | someaggreate.js|sendmail will do... -
I got my first developer job three years ago. I’ve always had a great eye for detail, and getting things done while following best practices. I learned that a few years ago from typography, which I think is a fascinating subject, which has a lot of shared ideas with software development.
In my first job, I immediately took a lot more responsibility than what I was assigned to. This job was as a React Developer, but I quickly got into backend development and set up kubernetes clusters, CI/CD.
Looking back, this was to me quite an achievement, considering I had never done anything even remotely close to it.
I did however, work my ass off. 18 hours work days without telling my boss, so only getting paid for 8. Plus I worked weekends.
I did love it. After a while, I got promotes to Senior Developer, and got responsibility for everything technical. I tried asking for help, but everybody else was either a student, or working purely front-end or app-development. Meanwhile, I was Devops, API-design, backend, Ci/CD, handling remote installations (all our customers are Airgapped), customer support, front-end and occasionally app-development when the app-developers could not handle their shit. Basically, I was the goto-guy for every problem, every feature, every fix. I don’t say this to brag.
I recently quit my job, started working as a consultant, because I almost doubled my pay. However the new job is boring as shit. I’m now an overpaid React Developer. And I really hate React. Not because it is shit, but simply because it is boring.
I’m thinking of going back to my old job. It was a lot of work, but it was really interesting. However, after I quit, they have changed their whole stack. No more Golang, Containers, Kubernetes, webRTC and other fun new technologies. Now, it is just plain, PHP without any dependecies. It is both boring, and idiotic. So I’m thinking of just quitting. Either doing some personal projects like game-development. I dont know. -
Worst / best feature of any language:
Lack of / requirement of strict / dynamic / weak / strong typing. Just typing. Typing typing typing just typing.
Having to specify the type in C/++/#, Java/Kotlin is so annoying and delays the project so much by having to do declare weird classes with 3 or 4 fields just because you need it in this tiny line of code.
Not having good type support in JavaScript and Python is a pain in the eyes when you can't find what type each variable is, or when you pass a wrong argument to a function, and when you do, it shows the definition for the type in a .ty or.pyi file and not the definition itself which you have to find elsewhere. Spent half of my uni exams trying to decipher the type while it could've been a piece of cake if you just knew the type.
Love / hate relationship 😝1