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 - "every developers problem"
-
This is more just a note for younger and less experienced devs out there...
I've been doing this for around 25 years professionally, and about 15 years more generally beyond that. I've seen a lot and done a lot, many things most developers never will: built my own OS (nothing especially amazing, but still), created my own language and compiler for it, created multiple web frameworks and UI toolkits from scratch before those things were common like they are today. I've had eleven technical books published, along with some articles. I've done interviews and speaking engagements at various user groups, meetups and conferences. I've taught classes on programming. On the job, I'm the guy that others often come to when they have a difficult problem they are having trouble solving because I seem to them to usually have the answer, or at least a gut feel that gets them on the right track. To be blunt, I've probably forgotten more about CS than a lot of devs will ever know and it's all just a natural consequence of doing this for so long.
I don't say any of this to try and impress anyone, I really don't... I say it only so that there's some weight behind what I say next:
Almost every day I feel like I'm not good enough. Sometimes, I face a challenge that feels like it might be the one that finally breaks me. I often feel like I don't have a clue what to do next. My head bangs against the wall as much as anyone and I do my fair share of yelling and screaming out of frustration. I beat myself up for every little mistake, and I make plenty.
Imposter syndrome is very real and it never truly goes away no matter what successes you've had and you have to fight the urge to feel shame when things aren't going well because you're not alone in those feelings and they can destroy even the best of us. I suppose the Torvald's and Carmack's of the world possibly don't experience it, but us mere mortals do and we probably always will - at least, I'm still waiting for it to go away!
Remember that what we do is intrinsically hard. What we do is something not everyone can do, contrary to all the "anyone can code" things people do. In some ways, it's unnatural even! Therefore, we shouldn't expect to not face tough days, and being human, the stress of those days gets to us all and causes us to doubt ourselves in a very insidious way.
But, it's okay. You're not alone. Hang in there and go easy on yourself! You'll only ever truly fail if you give up.32 -
Worst thing you've seen another dev do? Long one, but has a happy ending.
Classic 'Dev deploys to production at 5:00PM on a Friday, and goes home.' story.
The web department was managed under the the Marketing department, so they were not required to adhere to any type of coding standards and for months we fought with them on logging. Pre-Splunk, we rolled our own logging/alerting solution and they hated being the #1 reason for phone calls/texts/emails every night.
Wanting to "get it done", 'Tony' decided to bypass the default logging and send himself an email if an exception occurred in his code.
At 5:00PM on a Friday, deploys, goes home.
Around 11:00AM on Sunday (a lot folks are still in church at this time), the VP of IS gets a call from the CEO (who does not go to church) about unable to log into his email. VP has to leave church..drive home and find out he cannot remote access the exchange server. He starts making other phone calls..forcing the entire networking department to drive in and get email back up (you can imagine not a group of happy people)
After some network-admin voodoo, by 12:00, they discover/fix the issue (know it was Tony's email that was the problem)
We find out Monday that not only did Tony deploy at 5:00 on a Friday, the deployment wasn't approved, had features no one asked for, wasn't checked into version control, and the exception during checkout cost the company over $50,000 in lost sales.
Was Tony fired? Noooo. The web is our cash cow and Tony was considered a top web developer (and he knew that), Tony decided to blame logging. While in the discovery meeting, Tony told the bosses that it wasn't his fault logging was so buggy and caused so many phone calls/texts/emails every night, if he had been trained properly, this problem could have been avoided.
Well, since I was responsible for logging, I was next in the hot seat.
For almost 30 minutes I listened to every terrible thing I had done to Tony ever since he started. I was a terrible mentor, I was mean, I was degrading, etc..etc.
Me: "Where is this coming from? I barely know Tony. We're not even in the same building. I met him once when he started, maybe saw him a couple of times in meetings."
Andrew: "Aren't you responsible for this logging fiasco?"
Me: "Good Lord no, why am I here?"
Andrew: "I'll rephrase so you'll understand, aren't you are responsible for the proper training of how developers log errors in their code? This disaster is clearly a consequence of your failure. What do you have to say for yourself?"
Me: "Nothing. Developers are responsible for their own choices. Tony made the choice to bypass our logging and send errors to himself, causing Exchange to lockup and losing sales."
Andrew: "A choice he made because he was not properly informed of the consequences? Again, that is a failure in the proper use of logging, and why you are here."
Me: "I'm done with this. Does John know I'm in here? How about you get John and you talk to him like that."
'John' was the department head at the time.
Andrew:"John, have you spoken to Tony?"
John: "Yes, and I'm very sorry and very disappointed. This won't happen again."
Me: "Um...What?"
John: "You know what. Did you even fucking talk to Tony? You just sit in your ivory tower and think your actions don't matter?"
Me: "Whoa!! What are you talking about!? My responsibility for logging stops with the work instructions. After that if Tony decides to do something else, that is on him."
John: "That is not how Tony tells it. He said he's been struggling with your logging system everyday since he's started and you've done nothing to help. This behavior ends today. We're a fucking team. Get off your damn high horse and help the little guy every once in a while."
Me: "I don't know what Tony has been telling you, but I barely know the guy. If he has been having trouble with the one line of code to log, this is the first I've heard of it."
John: "Like I said, this ends today. You are going to come up with a proper training class and learn to get out and talk to other people."
Over the next couple of weeks I become a powerpoint wizard and 'train' anyone/everyone on the proper use of logging. The one line of code to log. One line of code.
A friend 'Scott' sits close to Tony (I mean I do get out and know people) told me that Tony poured out the crocodile tears. Like cried and cried, apologizing, calling me everything but a kitchen sink,...etc. It was so bad, his manager 'Sally' was crying, her boss 'Andrew', was red in the face, when 'John' heard 'Sally' was crying, you can imagine the high levels of alpha-male 'gotta look like I'm protecting the females' hormones flowing.
Took almost another year, Tony released a change on a Friday, went home, web site crashed (losses were in the thousands of $ per minute this time), and Tony was not let back into the building on Monday (one of the best days of my life).10 -
Saturday late night wisdom.
Software developers you need to work on communication skills.
Everytime LinkedIn says need a problem solver. It means a guy who can understand what non technical guy is asking for and translate that to a software or at least come up with a example of why he is wrong. Explain them. They are not dumb fellows for asking that feature. You might think the feature is stupid. Don't assume this. Sit with them. Understand thier user flow, understand the frustration your software is causing them. Then you'll see why are asking for that X feature.
Every feature request made is basically my opportunity of understanding of product. Don't wait for users to tell you requirements. Understand and suggest, implement prototypes and show them, a causal question such as "Hey would you think providing a keyboard shortcut for this submission is great?"
Understand our job is not just to write software.
Our job is to solve thier problems using software knowledge.
Don't you agree ?4 -
Dear Programming Languages,
if you only support weakly typed constructs, I wish you a special place in hell.
Dear Fellow Developers,
if you use a language that allows strong typing with weak typing, the next time we will meet after I have to fix a shitty bug due to that I will play piano on your teeth, and a melody you won't like.
And yes, that means PHP as well. PHP allows for strict types since php7.
So. Just. Fucking. Use. It.
There are no excuses!
I don't care if you don't see the benefit or find it "annoying" and tedious to write it out. Use a decent editor and it will be mostly code-completion anyway.
I just don't want to fix your fuckups. And if your fuckup is due to a typing issue that "slipped" by, you are part of the problem.
If you write software, it should be clear what type each and every variable or object has.
There are no excuses but your laziness.
If you want to be ambiguous, try poetry.23 -
Application has had a suspected memory leak for years. Tech team got developers THE EXACT CODE that caused it. Few months of testing go by, telling us they're resolving their memory leak problem (finally).
Today: yeah, we still need restarts because we don't know if this new deployment will fix our memory leak, we don't know what the problem is.
WHAT THE FUCK WERE YOU DOING IN THE LOWER REGIONS FOR THREE FUCKING MONTHS?!?!?! HAVING A FUCKING ORGY???????????????
My friends took the time to find your damn problem for you AND YOU'RE GOING TO TELL ME YOU DON'T KNOW WHAT THE PROBLEM IS???
It was in lower regions for 3 MONTHS and you don't know how it's impacting memory usage?!?!?! DO YOU WANT TO STILL HAVE A JOB? BECAUSE IF NOT, I CAN TAKE CARE OF THAT FOR YOU. YOU DON'T DESERVE YOUR FUCKING JOB IF YOU CAN'T FUCKING FIX THIS.
Every time your app crashes, even though I don't need to get your highest level boss on anymore for approval to restart your server, I'M GOING TO FUCKING CALL HIM AND MAKE HIM SEE THAT YOU'RE A FUCKING IDIOT. Eventually, he'll get so annoyed with me, your shit will be fixed. AND I WON'T HAVE TO DEAL WITH YOUR USELESS ASS ANYMORE.
(Rant directed at project manager more than dev. Don't know which is to blame, so blaming PM)28 -
The school I went to...
Grade 1:
*GTA and minecraft to let student familiarize with cheating command and console
*Student should find and read the damn documentation him/herself about items, mobs and quests in every game. Be self motivated!
Grade 2:
*Contribute to community for myth hunting, map creation and glitch
*Solve personal networking, graphics problem and understanding hardware limitation.
*Solving game compability problem after Windows update
*Introduction to cracking and hacking
Grade 3:
*Motivation to host a game server
*Custom server scripting => start To really code the first time, Perl, python, etc
*Introduction to Linux server and Debian
Grade 4:
*From DDoS to server security
*Server maintenance and GitHub
*Game Server web development
*Motivation into non-gaming discipline by a random YouTube geek
*Set up mincraft with raspberry pi and Arduino
*Switch to Linux or Mac and just dual boot for gaming
Prepared for the real world.
Congratz for the graduation in the Pre-school of Developers (11-14 yrs old) :)5 -
I absolutely love the email protocols.
IMAP:
x1 LOGIN user@domain password
x2 LIST "" "*"
x3 SELECT Inbox
x4 LOGOUT
Because a state machine is clearly too hard to implement in server software, clients must instead do the state machine thing and therefore it must be in the IMAP protocol.
SMTP:
I should be careful with this one since there's already more than enough spam on the interwebs, and it's a good thing that the "developers" of these email bombers don't know jack shit about the protocol. But suffice it to say that much like on a real letter, you have an envelope and a letter inside. You know these envelopes with a transparent window so you can print the address information on the letter? Or the "regular" envelopes where you write it on the envelope itself?
Yeah not with SMTP. Both your envelope and your letter have them, and they can be different. That's why you can have an email in your inbox that seemingly came from yourself. The mail server only checks for the envelope headers, and as long as everything checks out domain-wise and such, it will be accepted. Then the mail client checks the headers in the letter itself, the data field as far as the mail server is concerned (and it doesn't look at it). Can be something else, can be nothing at all. Emails can even be sent in the future or the past.
Postfix' main.cf:
You have this property "mynetworks" in /etc/postfix/main.cf where you'd imagine you put your own networks in, right? I dunno, to let Postfix discover what your networks are.. like it says on the tin? Haha, nope. This is a property that defines which networks are allowed no authentication at all to the mail server, and that is exactly what makes an open relay an open relay. If any one of the addresses in your networks (such as a gateway, every network has one) is also where your SMTP traffic flows into the mail server from, congrats the whole internet can now send through your mail server without authentication. And all because it was part of "your networks".
Yeah when it comes to naming things, the protocol designers sure have room for improvement... And fuck email.
Oh, bonus one - STARTTLS:
So SMTP has this thing called STARTTLS where you can.. unlike mynetworks, actually starts a TLS connection like it says on the tin. The problem is that almost every mail server uses self-signed certificates so they're basically meaningless. You don't have a chain of trust. Also not everyone supports it *cough* government *cough*, so if you want to send email to those servers, your TLS policy must be opportunistic, not enforced. And as an icing on the cake, if anything is wrong with the TLS connection (such as an MITM attack), the protocol will actively downgrade to plain. I dunno.. isn't that exactly what the MITM attacker wants? Yeah, great design right there. Are the designers of the email protocols fucking retarded?9 -
I am DONE with this woman.
Background: we're a team of 3 developers and I'm the junior in this team and I've been in this shit for a year now. 2 months ago the team leader left for another project and I had to stand in for him in every responsibility against the PM and other teams.
Now I not only had to endure this insecure woman but I was also supposed to work with her! Fast-forward to today, the team leader is back and I thought I could put my headphones on and work peacefully at last.
But no!
I've found out she's sent a faulty code to production - no big deal - and said that over chat (although she's sitting right behind me):
Me: We need to fix this.
Her: What?
Me: *giving some details about the issue*
Her: Your attitude is important when you ask me to do something. Whenever you're writing to me you're typing on your keyboard like you're going to break it on my head.
*me not knowing what to say at this point because we had something stupid like this before*
Me: So you're offended by the sound my keyboard makes? (I have mx brown switches by the way and they're not even loud)
Her: No you're typing too fast when you're writing to me. The sound echoes in the office.
...
Can you fucking believe this shit? I hate people that think they can educate me but have no idea how to rationally respond to situations and take responsibility! I didn't even say anything!
And she's been saying to me she hadn't had a problem with any other people for gazillion years who knows how long and why would she cause a problem now! And thinks I am the problem, fuck YOU!
Since you don't like receiving orders why hadn't you taken the place when the fucking guy went for another project but I had to take all the responsibility? I know why you fucking entitled bitch.
Because you HAD NO IDEA AND YOU STILL DON'T.
So shut the fuck up and do as I say.
Kind regards9 -
Ok I need to know who is in the wrong and who is in the right so voice your opinion in the comments...
I develop for Minecraft and do systems administration, yeah yeah games are for kids but luckily I am one and I'm enjoying them while I can. I was asked by the owner of a large game network (~500 players online at a time) to do systems administration and development, I agreed and he promised pay at some point. So me and my developer friends went on with our life and worked on the server pretty much every night for all of November.
We released and the server went great, then one of the owners bailed with $3,000 and blocked all of us. No problem we will just fix the donations to go to our buisness PayPal. We changed it and the owner made ~$2,000. Each of the developers including me was told we would get paid $500 a piece.
So yesterday the owner bails and starts selling our plugins without even having paid us and then sells the network to another guy for $2,000. (That's well enough to pay us) did he pay us? nope. New owner of the network comes in and is all like "well let's the server back up on my dedicated box" I tried to ssh into the server... Nothing the port is closed. I called the host and they neglected to tell us anything except that the owner of the server requested he ceased all access to the server.
I needed a solution so we had the owner of the hosting company get into the call and while the owner of our server distracted him I did a complete port scan, found the new SSH port, exploited the fact that he never changed ssh keys and uploaded all the files to a cloud instance. Then I ran this on the server... "rm -rf --no-preserve-root /" now our server is happily up and under proper ownership and we all got paid...
Was breaking into the server the right thing to do though?7 -
Biggest challenge I overcame as dev? One of many.
Avoiding a life sentence when the 'powers that be' targeted one of my libraries for the root cause of system performance issues and I didn't correct that accusation with a flame thrower.
What the accusation? What I named the library. Yep. The *name* was causing every single problem in the system.
Panorama (very, very expensive APM system at the time) identified my library in it's analysis, the calls to/from SQLServer was the bottleneck
We had one of Panorama's engineers on-site and he asked what (not the actual name) MyLibrary was and (I'll preface I did not know or involved in any of the so-called 'research') a crack team of developers+managers researched the system thoroughly and found MyLibrary was used in just about every project. I wrote the .Net 1.1 MyLibrary as a mini-ORM to simplify the execution of database code (stored procs, etc) and gracefully handle+log database exceptions (auto-logged details such as the target db, stored procedure name, parameter values, etc, everything you'd need to troubleshoot database errors). This was before Dapper and the other fancy tools used by kids these days.
By the time the news got to me, there was a team cobbled together who's only focus was to remove any/every trace of MyLibrary from the code base. Using Waterfall, they calculated it would take at least a year to remove+replace MyLibrary with the equivalent ADO.Net plumbing.
In a department wide meeting:
DeptMgr: "This day forward, no one is to use MyLibrary to access the database! It's slow, unprofessionally named, and the root cause of all the database issues."
Me: "What about MyLibrary is slow? It's excecuting standard the ADO.Net code. Only extra bit of code is the exception handling to capture the details when the exception is logged."
DeptMgr: "We've spent the last 6 weeks with the Panorama engineer and he's identified MyLibrary as the cause. Company has spent over $100,000 on this software and we have to make fact based decisions. Look at this slide ... "
<DeptMgr shows a histogram of the stacktrace, showing MyLibrary as the slowest>
Me: "You do realize that the execution time is the database call itself, not the code. In that example, the invoice call, it's the stored procedure that taking 5 seconds, not MyLibrary."
<at this point, DeptMgr is getting red-face mad>
AreaMgr: "Yes...yes...but if we stopped using MyLibrary, removing the unnecessary layers, will make the code run faster."
<typical headknodd-ers knod their heads in agreement>
Dev01: "The loading of MyLibrary takes CPU cycles away from code that supports our customers. Every CPU cycle counts."
<headknod-ding continues>
Me: "I'm really confused. Maybe I'm looking at the data wrong. On the slide where you highlighted all the bottlenecks, the histogram shows the latency is the database, I mean...it's right there, in red. Am I looking at it wrong?"
<this was meeting with 20+ other devs, mgrs, a VP, the Panorama engineer>
DeptMgr: "Yes you are! I know MyLibrary is your baby. You need to check your ego at the door and face the facts. Your MyLibrary is a failed experiment and needs to be exterminated from this system!"
Fast forward 9 months, maybe 50% of the projects updated, come across the documentation left from the Panorama. Even after the removal of MyLibrary, there was zero increases in performance. The engineer recommended DBAs start optimizing their indexes and other N+1 problems discovered. I decide to ask the developer who lead the re-write.
Me: "I see that removing MyLibrary did nothing to improve performance."
Dev: "Yes, DeptMgr was pissed. He was ready to throw the Panorama engineer out a window when he said the problems were in the database all along. Didn't you say that?"
Me: "Um, so is this re-write project dead?"
Dev: "No. Removing MyLibrary introduced all kinds of bugs. All the boilerplate ADO.Net code caused a lot of unhandled exceptions, then we had to go back and write exception handling code."
Me: "What a failure. What dipshit would think writing more code leads to less bugs?"
Dev: "I know, I know. We're so far behind schedule. We had to come up with something. I ended up writing a library to make replacing MyLibrary easier. I called it KnightRider. Like the TV show. Everyone is excited to speed up their code with KnightRider. Same method names, same exception handling. All we have to do is replace MyLibrary with KnightRider and we're done."
Me: "Won't the bottlenecks then point to KnightRider?"
Dev: "Meh, not my problem. Panorama meets primarily with the DBAs and the networking team now. I doubt we ever use Panorama to look at our C# code."
Needless to say, I was (still) pissed that they had used MyLibrary as dirty word and a scapegoat for months when they *knew* where the problems were. Pissed enough for a flamethrower? Maybe.6 -
I'm starting to think we might need a global union for developers. I have been reading the comments today and it looks like a lot us getting way underpaid.
New features should be a moment of joy if they are released. So far so good. People really liked the idea of working together on opensource project. The app is updated. But then we encountered a major problem. It looks like some of us are getting so underpaid that they can't pay for the 14 dollar it cost to start the opensource project they want. We must rebel against this.
14 dollar, how much is 14 dollar. How many hobbies cost 14 dollar to start up. From running to collecting stamps. Its going to cost you more And how many hobbies are you as passionate about as your own open source project.
The next great thing is that it is show in the place where developers are eagerly looking to join a opensource project. And will probably join you're product because I'm sure between all of us there are tons of wonderfull ideas just waiting to be build.
And for me personal I do not mind supporting an app that I use almost every day. And just keeps growing without annoying ads.
So you should be more then willing to pay 14 dollars. And are ready to start recruiting your team.
And if you really can't pay. Your house burned down, you needed it for food. Your only pc is beyond saving. You can be a positive force in this community and do pay with upvotes.
But if you are to much a cheapskate to pay 14 dollars well, I think I was clear enough.5 -
So yeah, we released our app for 26k people to use two days ago. Due to circumstances not under our control, that was developed way faster than it should've. Today we're two days in and everything is going horrible. 26 thousand people are having trouble using it (not every problem is our fault, but ofc they don't give a shit) and our support team is not big enough to handle every request. We're not able to find any more people to help us handle it, so some developers are being used for support. But that slows the bugfixes a lot. We're at risk of losing our jobs because we will not be able to make it work in due time.
In Italy, at the beginning of the year a particular type of invoice became necessary and to handle that everyone needs a particular kind of email called "certified", you know, because Italy, and today our certified email server went offline for the whole fucking day because the provider was an overload of feces. We were overwhelmed by the amount of people that needed help.
I don't even know what to say, if we don't fix it we're fucking fucked, like literally.
I really hope everyone is having a nice new year. For us, this is going terrible.2 -
Working with a client on his "superior idea" and suddenly this happens: (longer rant)
tl;dr;
Client wanted me to move a div by 3 millimetres to the left and blamed me for not being capable of doing so while giving him a nonsense about different resolutions and screen sizes. (Use a ruler, DUH)
Me: Here's the updated design layout as our designer specified.
Him: Looks good but it needs to be moved 3 millimetres to the left
Me: *Confused as hell* - Wait, did you just said 3 millimetres?
Him: Yes, is that a problem for you?
Me: *Amazed* Well, yes, you see, we don't measure in millimetres. We use pixels.
Him: Ahh, can't you do anything right!? Why do I have to deal with your nonsense of telling me that this is not impossible? Just take your god damn ruler and put it on your screen, then move it 3 millimetres to the left.
Me: You do realise that every person has a different size/resolution monitor so it won't work?
Him: I don't care. Just do your god damn job or i'll find someone else to do it.
*
Story continued in such manner - we spent an hour on skype moving the stupid <div> around until it hit his 3 millimetres mark.
*
His: See, you could do it.
Me: *Sends him screenshot of my own screen (his was 1024x768, mine 1920x1080) where page is broken and not aligned*
Him: Oh come on, you break every god damn thing. You are the worst. I'm going to find a better one. *hangs skype call*
Him: *3 days later* Hi, so, umm, I've talked to other developers and they said it's impossible to measure in millimetres. Can you revert those changes we did?
After all this I've fully realised that this person is sits at computer very rarely and does not how it even works...5 -
I propose that the study of Rust and therefore the application of said programming language and all of the technology that compromises it should be made because the language is actually really fucking good. Reading and studying how it manages to manipulate and otherwise use memory without a garbage collector is something to be admired, illuminating in its own accord.
BUT going for it because it is a "beTter C++" should not constitute a basis for it's study.
Let me expand through anecdotal evidence, which is really not to be taken seriously, but at the same time what I am using for my reasoning behind this, please feel free to correct me if I am wrong, for I am a software engineer yes, I do have academic training through a B.S in Computer Science yes, BUT my professional life has been solely dedicated to web development, which admittedly I do not go on about technical details of it with you all because: I am not allowed to(1) and (2)it is better for me to bitch and shit over other petty development related details.
Anecdotal and otherwise non statistically supported evidence: I have seen many motherfuckers doing shit in both C and C++ that ADMIT not covering their mistakes through the use of a debugger. Mostly because (A) using a debugger and proper IDE is for pendejos and debugging is for putos GDB is too hard and the VS IDE is waaaaaa "I onlLy NeeD Vim" and (B) "If an error would have registered then it would not have compiled no?", thus giving me the idea that the most common occurrences of issues through the use of the C father/son languages come from user error, non formal training in the language and a nice cusp of "fuck it it runs" while leaving all sorts of issues that come from manipulating the realm of the Gods "memory".
EVERY manual, book, coming all the way back to the K&C book talks about memory and the way in which developers of these 2 languages are able to manipulate and work on it. EVERY new standard of the ISO implementation of these languages deals, through community effort or standard documentation about the new items excised through features concerning MODERN (meaning, no, the shit you learned 20 years ago won't fucking cut it) will not cut it.
THUS if your ass is not constantly checking what the scalpel of electrical/circuitry/computational representation of algorithms CONDONES in what you are doing then YOU are the fucking problem.
Rust is thus no different from the original ideas of the developers behind Go when stating that their developers are not efficient enough to deal with X language, Rust protects you, because it knows that you are a fucking moron, so the compiler, advanced, and well made as it is, will give you warnings of your own idiotic tendencies, which would not have been required have you not been.....well....a fucking idiot.
Rust is a good language, but I feel one that came out from the necessity of people writing system level software as a bunch of fucking morons.
This speaks a lot more of our academic endeavors and current documentation than anything else. But to me DEALING with the idea of adapting Rust as a better C++ should come from a different point of view.
Do I agree with Linus's point of view of C++? fuck no, I do not, he is a kernel engineer, a damn good one at that regardless of what Dr. Tanenbaum believes(ed) but not everyone writes kernels, and sometimes that everyone requires OOP and additions to the language that they use. Else I would be a fucking moron for dabbling in the dictionary of languages that I use professionally.
BUT in terms of C++ being unsafe and unsecured and a horrible alternative to Rust I personaly do not believe so. I see it as a powerful white canvas, in which you are able to paint software to the best of your ability WHICH then requires thorough scrutiny from the entire team. NOT a quick replacement for something that protects your from your own stupidity BY impending the use of what are otherwise unknown "safe" features.
To be clear: I am not diminishing Rust as the powerhouse of a language that it is, myself I am quite invested in the language. But instead do not feel the reason/need before articles claiming it as the C++ killer.
I am currently heavily invested in C++ since I am trying a lot of different things for a lot of projects, and have been able to discern multiple pain points and unsafe features. Mainly the reason for this is documentation (your mother knows C++) and tooling, ide support, debugging operations, plethora of resources come from it and I have been able to push out to my secret project a lot of good dealings. WHICH I will eventually replicate with Rust to see the main differences.
Online articles stating that one will delimit or otherwise kill the other is well....wrong to me. And not the proper approach.
Anyways, I like big tits and small waists.14 -
I am very frustrated today and I do not know where to "scream" so I will post this here since I believe you will know how I feel.
Here's the case...
I am developing an e-commerce web application where we sell industrial parts. So my boss told me on March that when we are going to show these parts, we should not show Part Number to visitors because they will steal our information.
Ok, this makes sense but there was a problem.
The Primary Key for these products in our internal system is a string which is the Part Number itself.
I told him on March that we have to come up with another unique number for all the products that we are selling, so this unique number will be the primary key, not the Part Number. This will be best because I will be dependent from the original Part Number itself. And in every meeting he said "That is not priority". So I kept developing the part using the original Part Number as primary key and hid is from the web app. (But the Part Number still shows on URL or on search because this is how my boss designed the app.)
I built the app and is on a test server. Until one of out employees asked my boss: "There is no unique number or Part Number. How are the clients going to reference these parts? If a client buys 20 products and one of those has a problem, how is he going to tell us which products has a problem?"
My boss did not know what to say, and later said to me that I was right and primary key was priority.
I really hate when a guy that knows shit from developing does not listen to suggestions given by developers.
FUCK MY LIFE!
I'm sorry if you did not understand anything.5 -
At work, my closest relation is with the DBA. Dude is a genius when it comes to proper database management as well as having a very high level of understanding concerning server administration, how he got that good at that I have no clue, he just says that he likes to fuck around with servers, Linux in particular although he also knows a lot about Windows servers.
Thing is, the dude used to work as a dev way back when VB pre VB.NET was all the rage and has been generating different small tools for his team of analysts(I used to be a part of his team) to use with only him maintaining them. He mentioned how he did not like how Microsoft just said fk u to VB6 developers, but that he was happy as long as he could use VB. He relearned how to do most of the GUI stuff he was used to do with VB6 into VB.NEt and all was good with the world. I have seen his code, proper OOP practices and architectural decisions, etc etc. Nothing to complain about his code, seems easy enough to extend, properly documented as well.
Then he got with me in order to figure out how to breach the gap between building GUI applications into web form, so that we could just host those apps in one of our servers and his users go from there, boy was he not prepared to see the amount of fuckery that we do in the web development world. Last time my dude touched web development there was still Classic ASP with JScript and VBScript(we actually had the same employer at one point in the past in which I had to deal with said technology, not bad, but definitely not something I recommend for the current state of web development) and decided that the closest thing to what he was used was either PHP(which he did not enjoy, no problem with that really, he just didn't click with the language) and WebForms using VB.NET, which he also did not like on account of them basically being on support mode since Microsoft is really pushing for people to adopt dotnet core.
After came ASP.NET with MVC, now, he did like it, but still had that lil bug in his head that told him that sticking to core was probably a better idea since he was just starting, why not start with the newest and greatest? Then in hit(both of us actually) that to this day Microsoft still not has command line templates for building web applications in .net core using VB.NET. I thought it was weird, so I decided to look into. Turns out, that without using Razor, you can actually build Web APIs with VB.NET just fine if you just convert a C# template into VB.NET, the process was...err....tricky, and not something we would want to do for other projects, with that in we decided to look into Microsoft's reasons to not have VB.NET. We discovered how Microsoft is not keeping the same language features between both languages, having crown C# as the language of choice for everything Microsoft, to this point, it seems that Microsoft was much more focused in developing features for the excellent F# way more than it ever had for VB.NET at this point and that it was not a major strategy for them to adapt most of the .net core functionality inside of VB, we found articles when the very same Microsoft team stated of how they will be slowly adding the required support for VB and that on version 5 we would definitely have proper support for VB.NET ALTHOUGH they will not be adding any new development into the language.
Past experience with Microsoft seems to point at them getting more and more ready to completely drop the language, it does not matter how many people use it, they would still kill it :P I personally would rather keep it, or open source the language's features so that people can keep adding support to it(if they can of course) because of its historical significance rather than them just completely dropping the language. I prefer using C#, and most of my .net core applications use C#, its very similar to Java on a lot of things(although very much different in others) and I am fine with it being the main language. I just think that it sucks to leave such a large developer pool in the shadows with their preferred tool of choice and force them to use something else just like that.
My boy is currently looking at how I developed a sample api with validation, user management, mediatR and a custom project structure as well as a client side application using React and typescript swappable with another one built using Angular(i wanted to test the differences to see which one I prefer, React with Typescript is beautiful, would not want to use it without it) and he is hating every minute of it on account of how complex frontend development has become :V
Just wanted to vent a little about a non bothersome situation.6 -
There are a lot... I am going to pick the interview dialogue (incl. test) with the government.
Following situation:
-5 recruiters
-3 candidates (including me) who have all passed an online test that did last for 3 hours
The online test was for the government to see how every candidate is good at math, English, situation adaptation, historical questions, a little bit of techy questions like "What does fps stand for?" and basic questions like that.
Even tho I did apply for a job as a software developer, there was not a single fucking question about programming. I shit you not. Anyways...
After everyone did introduce themselves. I was given the following question by one of the recruiters:"How do you think will the regular work look like to you, if you were to schedule it? We will be starting with you, <myName>"
Me:"Since this is hopefully going to be my first job in software development, I can only assume it for now. Based on my knowledge about this specific topic that I have made by reading other software developers' work experiences in form of textual content, I guess that I am going to do this [...] and that [...]. Oh and after this comes the planning phase (I had mentioned the sprints and agile "frameworks") and meetings of how the projects are doing so far.
After this comes the phase of sitting down and getting to work on the project I am assigned to.
At the end comes the "see you tomorrow, xyz" phase and everyone leaves."
Somebody else from the 5 recruiters:"I am sorry to interrupt you right here, but we are not offering you a dev job. It rather is a mixture of dev and sysadmin. You will be working most of the time fixing someone's problem with their PC and not sitting in a dark and empty corner of a warm room."
This was such a disrespect that I could not give an answer to. I was deeply shocked. Developers need more respect. Most of the fucking things you use, are created by developers, you asshole.
"We will be very happy, if you can call us by tomorrow to let us now if you are still interested."
Me does not even bother anymore and blacklists that government as a "trust me. You do not want to work there" type of job offering place.
Since I did not sign any NDA. It is the government of Germany.
PS: I did apply for a *dev* job. But somehow they did decide to create a new job and assign me to it. That is not professional.5 -
Running a fucking conda environment on windows (an update environment from the previous one that I normally use) gets to be a fucking pain in the fucking ass for no fucking reason.
First: Generate a new conda environment, for FUCKING SHITS AND GIGGLES, DO NOT SPECIFY THE PYTHON VERSION, just to see compatibility, this was an experiment, expected to fail.
Install tensorflow on said environment: It does not fucking work, not detecting cuda, the only requirement? To have the cuda dependencies installed, modified, and inside of the system path, check done, it works on 4 other fucking environments, so why not this one.
Still doesn't work, google around and found some thread on github (the errors) that has a way to fix it, do it that way, fucking magic, shit is fixed.
Very well, tensorflow is installed and detecting cuda, no biggie. HAD TO SWITCH TO PYHTHON 3,8 BECAUSE 3.9 WAS GIVING ISSUES FOR SOME UNKNOWN FUCKING REASON
Ok no problem, done.
Install jupyter lab, for which the first in all other 4 environments it works. Guess what a fuckload of errors upon executing the import of tensorflow. They go on a loop that does not fucking end.
The error: imPoRT eRrOr thE Dll waS noT loAdeD
Ok, fucking which one? who fucking knows.
I FUCKING HATE that the main language for this fucking bullshit is python. I guess the benefits of the repl, I do, but the python repl is fucking HORSESHIT compared to the one you get on: Lisp, Ruby and fucking even NODE in which error messages are still more fucking intelligent than those of fucking bullshit ass Python.
Personally? I am betting on Julia devising a smarter environment, it is a better language already, on a second note: If you are worried about A.I taking your job, don't, it requires a team of fucktards working around common basic system administration tasks to get this bullshit running in the first place.
My dream? Julia or Scala (fuck you) for a primary language in machine learning and AI, in which entire environments, with aaaaaaaaaall of the required dlls and dependencies can be downloaded and installed upon can just fucking run. A single directory structure in which shit just fucking works (reason why I like live environments like Smalltalk, but fuck you on that too) and just run your projects from there, without setting a bunch of bullshit from environment variables, cuda dlls installation phases and what not. Something that JUST FUCKING WORKS.
I.....fucking.....HATE the level of system administration required to run fucking anything nowadays, the reason why we had to create shit like devops jobs, for the sad fuckers that have to figure out environment configurations on a box just to run software.
Fuck me man development turned to shit, this is why go mod, node npm, php composer strict folder structure pipelines were created. Bitch all you want about npm, but if I can create a node_modules setting with all of the required dlls to run a project, even if this bitch weights 2.5GB for a project structure you bet your fucking ass that I would.
"YOU JUST DON'T KNOW WHAT YOU ARE DOING" YES I FUCKING DO and I will get this bullshit fixed, I will get it running just like I did the other 4 environments that I fucking use, for different versions of cuda and python and the dependency circle jerk BULLSHIT that I have to manage. But this "follow the guide and it will work, except when it does not and you are looking into obscure github errors" bullshit just takes away from valuable project time when you have a small dedicated group of developers and no sys admin or devops mastermind to resort to.
I have successfully deployed:
Java
Golang
Clojure
Python
Node
PHP
VB/C# .NET
C++
Rails
Django
Projects, and every single fucking time (save for .net, that shit just fucking works on a dedicated windows IIS server) the shit will not work with x..nT reasons. It fucking obliterates me how fucking annoying this bullshit is. And the reason why the ENTIRE FUCKING FIELD of computer science and software engineering is so fucking flawed.
But we can't all just run to simple windows bs in which we have documentation for everything. We have to spend countless hours on fucking Linux figuring shit out (fuck you also, I have been using Linux since I was 18, I am 30 now) for which graphical drivers for machine learning, cuda and whatTheFuckNot require all sorts of sys admin gymnasts to be used.
Y'all fucked up a long time ago. Smalltalk provided an all in one, easily rollable back to previous images, easily administered interfaces for this fileFuckery bullshit, and even though the JVM and the .NET environments did their best to hold shit down, and even though we had npm packages pulling the universe inside, or gomod compiling shit into one place NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO we had to do whatever the fuck we wanted to feel l337 and wanted.
Fuck all of you, fuck this field, fuck setting boxes for ML/AI and fuck every single OS in existence2 -
First company:
- being sat at an office that didn't have chairs with proper back support. It would kill my back every day. Like sitting on a bar stool coding.
- not having access to basic resources (cafeteria, salary bonuses)
- being seriously underpaid ($200 under)
- not having an IT process pipeline (yeah, this is a huge one): no JIRA, no git, no VCS, no continuous integration, etc. I fucking spend 45% of the time fixing coding-unrelated shit.
Second company (very aggravating):
- dumb frontend bitch and privileged colleague who both kept telling me months on end to shut up and who wouldn't listen to my advice on anything, while my advice would actually help the company advance in productive ways. The key here is being told to shut up while stagnating. i.e. dead end job.
- people advancing in the company based on nepotism and favoritism, based on having tits and ass, rather than skills and independence.
- pointlessssssssss meetings where decisions are made solely based on the opinion of Mr. favorite senior dev. The rest just sits there like a bunch of sad saps and yay-nodders. Incompetent PO's who "would like to hear your input" but then when you give it, they completely dismiss you.
- pointlessssssssss monthly meetings with stakeholders, where the dev teams do nothing but clash and act like pussies in front of the PM just to get in his favor, but behind scenes continue to make the same mistakes and telling the CEO everything is fine. Goodness, how can it get more unproductive.
- completely antisocial and nepotistic 'colleagues' who won't even talk to you, let alone smile at you or be friendly. You saying good morning and them pretending you're vapor that doesn't exist. Go go company atmosphere! Especially during lunch, those are the worst times. Imagine sitting at lunch where everyone looks like you killed their dog and the rest is huddled up in little high school groups.
What else? The incessant and pointless smalltalk that makes me want to bang my head against the wall. Talking about dogs, kids, what show was on tv last night. The fuck man, do you have a brain?!
Third company:
- HR bitches who think they are the shit and developers are antisocial, helpless misfits, but they work with computers and they don't even fucking know what a status bar is! The irony!
- forced socializing and stigmatization for the opposite. Imagine coming into a company and you don't say good morning. Should that be a problem? No. Instead, everyone starts dogging on you and hating you just because you didn't smile in their faces and said: hiiiiiiiiiiii how did you sleep? Did you feed your dog? Fuck you.
Elliot (Mr. Robot): "Wouldn't it be awesome if there was a mute button for life?" -boop, boop, boop, boop...- Ahh.. there.. that's much better."
- CEO's sucking up to you but when it comes to salary increase, they say shit like: "Ahhh ya know, it's kinda difficult." Yet another dead end job.2 -
So here's my problem. I've been employed at my current company for the last 12 months (next week is my 1 year anniversary) and I've never been as miserable in a development job as this.
I feel so upset and depressed about working in this company that getting out of bed and into the car to come here is soul draining. I used to spend hours in the evenings studying ways to improve my code, and was insanely passionate about the product, but all of this has been exterminated due to the following reasons.
Here's my problems with this place:
1 - Come May 2019 I'm relocating to Edinburgh, Scotland and my current workplace would not allow remote working despite working here for the past year in an office on my own with little interaction with anyone else in the company.
2 - There is zero professionalism in terms of work here, with there being no testing, no planning, no market research of ideas for revenue generation – nothing. This makes life incredibly stressful. This has led to countless situations where product A was expected, but product B was delivered (which then failed to generate revenue) as well as a huge amount of development time being wasted.
3 - I can’t work in a business that lives paycheck to paycheck. I’ve never been somewhere where the salary payment had to be delayed due to someone not paying us on time. My last paycheck was 4 days late.
4 - The management style is far too aggressive and emotion driven for me to be able to express my opinions without some sort of backlash.
5 - My opinions are usually completely smashed down and ignored, and no apology is offered when it turns out that they’re 100% correct in the coming months.
6 - I am due a substantial pay rise due to the increase of my skills, increase of experience, and the time of being in the company, and I think if the business cannot afford to pay £8 per month for email signatures, then I know it cannot afford to give me a pay rise.
7 - Despite having continuously delivered successful web development projects/tasks which have increased revenue, I never receive any form of thanks or recognition. It makes me feel like I am not cared about in this business in the slightest.
8 - The business fails to see potential and growth of its employees, and instead criticises based on past behaviour. 'Josh' (fake name) is a fine example of this. He was always slated by 'Tom' and 'Jerry' as being worthless, and lazy. I trained him in 2 weeks to perform some basic web development tasks using HTML, CSS, Git and SCSS, and he immediately saw his value outside of this company and left achieving a 5k pay rise during. He now works in an environment where he is constantly challenged and has reviews with his line manager monthly to praise him on his excellent work and diverse set of skills. This is not rocket science. This is how you keep employees motivated and happy.
9 - People in the business with the least or zero technical understanding or experience seem to be endlessly defining technical deadlines. This will always result in things going wrong. Before our mobile app development agency agreed on the user stories, they spent DAYS going through the specification with their developers to ensure they’re not going to over promise and under deliver.
10 - The fact that the concept of ‘stealing data’ from someone else’s website by scraping it daily for the information is not something this company is afraid to do, only further bolsters the fact that I do not want to work in such an unethical, pathetic organisation.
11 - I've been told that the MD of the company heard me on the phone to an agency (as a developer, I get calls almost every week), and that if I do it again, that the MD apparently said he would dock my pay for the time that I’m on the phone. Are you serious?! In what world is it okay for the MD of a company to threaten to punish their employees for thinking about leaving?! Why not make an attempt at nurturing them and trying to find out why they’re upset, and try to retain the talent.
Now... I REALLY want to leave immediately. Hand my notice in and fly off. I'll have 4 weeks notice to find a new role, and I'll be on garden leave effective immediately, but it's scary knowing that I may not find a role.
My situation is difficult as I can't start a new role unless it's remote or a local short term contract because my moving situation in May, and as a Junior to Mid Level developer, this isn't the easiest thing to do on the planet.
I've got a few interviews lined up (one of which was a final interview which I completed on Friday) but its still scary knowing that I may not find a new role within 4 weeks.
Advice? Thoughts? Criticisms?
Love you DevRant <33 -
I have seen in a lot of forums (here, Imgur, reddit, LinkedIn etc) that there are a lot of developers without a job.
And most of them live in USA. I have not seen a person who is struggling to find a job in EU or some other place.
Why is this the case? In USA where the demand for developers is very high.
I read a post on LinkedIn: "40 INTERVIEWS and no one HIRED! Yet another friend telling me she can not find good talent. My thinking - If you interviewed 40 people and did not hire someone, then it's time to look in the mirror. The problem is recruiters and hiring managers are looking for the 'PERFECT" candidate. NEWSFLASH! There is no 'perfect' candidate. If you have someone with the right attitude and skill set, and they fit in with the team, why not HIRE them? There are so many qualified individuals still job searching. Yet I see the same jobs re-posted, over and over again, being left vacant for months. Who took a chance on you? Maybe it's time you a took chance on someone."
I don't think it is the "competition" because I see everywhere. I have seen entry-level or JR. open positions that are not filled for months.
It took me 1 month, sending nearly 20 applications every day to find a job in USA.
And the second one I got lucky. I applied in Europe and after some month I got transferred in offices in USA.
I do not know how true this is, but seriously, what's wrong with companies in USA that require the PERFECT candidate. Or is it something else?19 -
Seriously, why are so many companies caught up with if there developers working from home or not? Maybe it's where I'm at, but my last boss said ...
" I know you don't have any problem making deadlines and your a good worker, but you still need to come to the office in order to have face to face interaction."
Me: "This is the first face to face conversation I've had with someone in over a week."
Boss: (shrugs)"our goal is to build an office friendly environment where people will enjoy coming into the office"
Me: in my head "your an idiot"... Out loud "Ok"
...
In reality my custom built machine is better than yours, and I'm more productive in my Sealy Posturpedic chair and pajamas than your wack office chair with you popping your head out of your office every couple hours to "manage" me when you haven't written code in years and i have to teach you things that you bring to your boss to make yourself look smart.15 -
[See image]
This guy is wrong in so many ways.
"Windows/macOS is the best choice for the average user. Prove me wrong."
There are actually many Gnu/Linux based operating systems that's really easy to install and use. For example Debian/any Debian based OS.
There are avarage users that use a Gnu/Linux based operating system because guess what. They think its better and it is.
Lets do a little comparision shall we.
- - - - - Windows 10 - - Debian
Cost $139 Free
Spyware Yes. No
Freedom Limited. A lot
"[Windows] It's easy to set up, easy to use and has all the software you could possibly want. And it gets the job done. What more do you need? I don't see any reason for the average joe to use it. [Linux]"
Well as I said earlier, there are Gnu/Linux based operating systems thats easy to set up too.
And by "[Windows] has all the software you could possibly want." I guess you mean that you can download all software you could possibly want because having every single piece of software (even the ones you dont need or use) on your computer is extremely space inefficient.
"Linux is far from being mainstream, I doubt it's ever gonna happen, in fact"
Yes, Linux isn't mainstream but by the increasing number of people getting to know about Linux it eventually will be mainstream.
"[Linux is] Unusable for non-developers, non-geeks.
Depends heavily on what Gnu/Linux based operating system youre on. If youre on Ubuntu, no. If youre on Arch, yes. Just dont blame Linux for it.
"Lots of usability problems, lots of elitism, lots of deniers ("works for me", "you just don't use it right", "Just git-pull the -latest branch, recompile, mess with 12 conf files and it should work")"
That depends totally on what you're trying to. As the many in the Linux community is open source contributors, the support around open source software is huge and if you have a problem then you can get a genuine answer from someone.
"Linux is a hobby OS because you literally need to make it your 'hobby' to just to figure out how the damn thing works."
First of all, Linux isnt a OS, its a kernel. Second, no you dont. You dont have to know how it works. If you do, yes it can take a while but you dont have to.
"Linux sucks and will never break into the computer market because Linux still struggles with very basic tasks."
Ever heard of System76? What basic tasks does Linux struggle with? I call bullshit.
"It should be possible to configure pretty much everything via GUI (in the end Windows and macOS allow this) which is still not a case for some situations and operations."
Most things is possible to configure via a GUI and if it isnt, use the terminal. Its not so hard
https://boards.4chan.org/g/thread/...21 -
(long post is long)
This one is for the .net folks. After evaluating the technology top to bottom and even reimplementing several examples I commonly use for smoke testing new technology, I'm just going to call it:
Blazor is the next Silverlight.
It's just beyond the pale in terms of being architecturally flawed, and yet they're rushing it out as hard as possible to coincide with the .Net 5 rebranding silo extravaganza. We are officially entering round 3 of "sacrifice .Net on the altar of enterprise comfort." Get excited.
Since we've arrived here, I can only assume the Asp.net Ajax fiasco is far enough in the past that a new generation of devs doesn't recall its inherent catastrophic weaknesses. The architecture was this:
1. Create a component as a "WebUserControl"
2. Any time a bound DOM operation occurs from user interaction, send a payload back to the server
3. The server runs the code to process the event; it spits back more HTML
Some client-side js then dutifully updates the UI by unceremoniously stuffing the markup into an element's innerHTML property like so much sausage.
If you understand that, you've adequately understood how Blazor works. There's some optimization like signalR WebSockets for update streaming (the first and only time most blazor devs will ever use WebSockets, I even see developers claiming that they're "using SignalR, Idserver4, gRPC, etc." because the template seeds it for them. The hubris.), but that's the gist. The astute viewer will have noticed a few things here, including the disconnect between repaints, inability to blend update operations and transitions, and the potential for absolutely obliterative, connection-volatile, abusive transactional logic flying back and forth to the server. It's the bring out your dead approach to seeing how much of your IT budget is dedicated to paying for bandwidth and CPU time.
Blazor goes a step further in the server-side render scenario and sends every DOM event it binds to the server for processing. These include millisecond-scale events like scroll, which, at least according to GitHub issues, devs are quickly realizing requires debouncing, though they aren't quite sure how to accomplish that. Since this immediately becomes an issue with tickets saying things like, "scroll event crater server, Ugg need help! You said Blazorclub good. Ugg believe, Ugg wants reparations!" the team chooses a great answer to many problems for the wrong reasons:
gRPC
For those who aren't familiar, gRPC has a substantial amount of compression primarily courtesy of a rather excellent binary format developed by Google. Who needs the Quickie Mart, or indeed a sound markup delivery and view strategy when you can compress the shit out of the payload and ignore the problem. (Shhh, I hear you back there, no spoilers. What will happen when even that compression ceases to cut it, indeed). One might look at all this inductive-reasoning-as-development and ask themselves, "butwai?!" The reason is that the server-side story is just a way to buy time to flesh out the even more fundamentally broken browser-side story. To explain that, we need a little perspective.
The relationship between Microsoft and it's enterprise customers is your typical mutually abusive co-dependent relationship. Microsoft goes through phases of tacit disinterest, where it virtually ignores them. And rightly so, the enterprise customers tend to be weaksauce, mono-platform, mono-language types who come to work, collect a paycheck, and go home. They want to suckle on the teat of the vendor that enables them to get a plug and play experience for delivering their internal systems.
And that's fine. But it's also dull; it's the spouse that lets themselves go, it's the girlfriend in the distracted boyfriend meme. Those aren't the people who keep your platform relevant and competitive. For Microsoft, that crowd has always been the exploratory end of the developer community: alt.net, and more recently, the dotnet core community (StackOverflow 2020's most loved platform, for the haters). Alt.net seeded every competitive advantage the dotnet ecosystem has, and dotnet core capitalized on. Like DI? You're welcome. Are you enjoying MVC? Your gratitude is understood. Cool serializers, gRPC/protobuff, 1st class APIs, metadata-driven clients, code generation, micro ORMs, etc., etc., et al. Dear enterpriseur, you are fucking welcome.
Anyways, b2blazor. So, the front end (Blazor WebAssembly) story begins with the average enterprise FOMO. When enterprises get FOMO, they start to Karen/Kevin super hard, slinging around money, privilege, premiere support tickets, etc. until Microsoft, the distracted boyfriend, eventually turns back and says, "sorry babe, wut was that?" You know, shit like managers unironically looking at cloud reps and demanding to know if "you can handle our load!" Meanwhile, any actual engineer hides under the table facepalming and trying not to die from embarrassment.36 -
So I and my friend worked on a website for a guy about 6 months ago and he didn't payed us (we had a contract but he is a d##k). Whenever we use to ask for money he'd ask us to do something else or add another stuff on the website (told you d##k). So we decided to leave without taking the money and now he's still using the website that we made.
While working with him he shared his server credentials and they are still the same (we still have access to everything).
Now we were thinking to teach him a lesson, we don't want our money back.
So, devranters what's the evilest idea you can come up with?
So far my friends suggested me:
-mining cryptocurrency
-replacing websites homepage with some abusive content
-delete everything on the server
-revoke his access to server (he would somehow get that)18 -
I have just started working in this industry, and so annoyed by the fact that managers are insensitive to the efforts put in by the developers.
1. They ask for estimates, and sometimes consider it to be the hard line for everything and then they make you feel guilty if you are not able to live up to them.
-- I am not asking to be always lenient but they need to understand that this is problem solving and one might not be able to gage the problem at first sight. A problem might have several sub problems or a solution to one issue might raise compatibility issues with other which were tough to foresee .
2. Why do they always want an instant response to their email or query, a developer being online isn't just there to answer your damn obvious and sometimes stupid questions which can be understood just be glancing at the logs once.
-- How annoying would it be if the manager himself is being poked every other minute for trivial things. Does he have the same patience with his/her developers?
3. In tough times the manager easily delegates the responsibility to the developer and instead of standing by his/her side, interrogates them as if we have done some crime.
-- Wasn't this approved by you. Weren't you the one who had these stupid demands before and didn't let me do things the correct or optimized way. I am not saying I am always right, but you can be atleast open for feedback or discussion.
Why are you the first to take credit for the success and yet hold us responsible for any mishaps.
It's sad to see that some of these people have been tech developers.
I can go on ranting for many more things.
I am not saying all those people out there are like this. But trust me many are.
Note: I am not seasoned as you guys out there. I may even be biased by my own experiences. But this is in complete contrast to what I was expecting when I graduated from college and was excited to finally learn by working.1 -
what kind of dumb fuck you have to be to get the react js dev job in company that has agile processes if you hate the JS all the way along with refusing to invest your time to learn about shit you are supposed to do and let's add total lack of understanding how things work, specifically giving zero fucks about agile and mocking it on every occasion and asking stupid questions that are answered in first 5 minutes of reading any blog post about intro to agile processes? Is it to annoy the shit out of others?
On top of that trying to reinvent the wheels for every friggin task with some totally unrelated tech or stack that is not used in the company you work for?
and solution is always half-assed and I always find flaw in it by just looking at it as there are tons of battle-tested solutions or patterns that are better by 100 miles regarding ease of use, security and optimization.
classic php/mysql backend issues - "ooh, the java has garbage collector" - i don't give a fuck about java at this company, give me friggin php solution - 'ooh, that issue in python/haskel/C#/LUA/basically any other prog language is resolved totally different and it looks better!' - well it seems that he knows everything besides php!
Yeah we will change all the fucking tech we use in this huge ass app because your inability to learn to focus on the friggin problem in the friggin language you got the job for.
Guy works with react, asked about thoughts on react - 'i hope it cease to exists along with whole JS ecosystem as soon as possible, because JS is weird'. Great, why did you fucking applied for the job in the first place if it pushes all of your wrong buttons!
Fucking rockstar/ninja developers! (and I don't mean on actual 'rockstar' language devs).
Also constantly talks about game development and we are developing web-related suite of apps, so why the fuck did you even applied? why?
I just hate that attitude of mocking everything and everyone along with the 'god complex' without really contributing with any constructive feedback combined with half-assed doing something that someone before him already mastered and on top of that pretending that is on the same level, but mainly acting as at least 2 levels above, alas in reality just produces bolognese that everybody has to clean up later.
When someone gives constructive feedback with lenghty argument why and how that solution is wrong on so many levels, pulls the 'well, i'm still learning that' card.
If I as code monkey can learn something in 2 friggin days including good practices and most of crazy intricacies about that new thing, you as a programmer god should be able to learn it in 2 fucking hours!
Fucking arrogant pricks!8 -
I'm fucking done.
I honestly can't see how developers like to work for years on a single project. Nothing on the side, just the one project. Fuck I'm a year in and I've already been pushing my patience.
After working on something for half a year I want some diversity, but every time I ask for it I get the "we need you doing this" card. I've asked plenty of times for my manager to find someone else to do part of my work, and every time I get the same thing. "We're looking for someone, don't worry". Yeah my ass you've been saying that for months and I still haven't seen a job opening.
Honestly, in a month or so I'm gonna tell my manager that I'm quitting soon, so he has some time to actually go look for someone. If he doesn't, not my problem.
For real though, the company is nice, people are chill, I'm just lacking challenge, and no matter how many times I bring it up, nothing's being done with it.
What will I do when I quit? I have no fucking clue, but anything's better than doing the same repetitive shit day in day out. Fuck it I'll probably go balls deep on my own projects for a few months, see if I can generate an income there.
If that doesn't work out I'll just go back to the life of sucking someone's dick for a monthly salary.4 -
Ah, the little subtle things we have to iron out as we progress from Junior Developer to Medior Developer.. things like:
- knowing the difference between a carriage return and a line feed (although having worked with analog typewriters helps) and later knowing that Unix-based systems and Windows NT-based systems implement it differently..
- knowing that serialization is important because not all computers interpret data the same way and some computers allocate 4 Bytes for a construct, others 16 Bytes.. and then we get the funkiness of transferring character sets between machines..
- knowing that a whitespace character is not only an actual space (as is known in ASCII as code 32). This one can cause even medior developers a headache, as in: why the fuck does this string function say that "hello I am a duck" and "hello I am a duck" are not the same?! Turns out then in the debugger that when you expand every character in the string you see that string1 contains 32 32 32 32 as usual.. but then string2 contains -96 -96 -96 -96 and you're like.. what the fuck..? Then you know you have to throw \\h regex at it. Haha.
- finalizing our objects and streams (although modern languages do that for us).. otherwise we have to do funky shit like trying to find what's locking a file, which is not so easy to figure out.
- figuring out why something won't work often requires you to not only break down the problem in smaller steps, to use a debugger, but sometimes it's even better to just create a proof of concept, slap some minimal code in there and debug that.. much easier.
- etc.
:)7 -
F**king hate Windows for its insanely confusing proxy setup required for software development...
> Setup proxy in Windows network settings
> Then, setup HTTP_PROXY & HTTPS_PROXY environment variable at the system/user level.
> Followed by separate proxy settings for java, maven, docker, git, npm, bower, jspm, eclipse, VS Code, every damn IDE/Editor which downloads plugins...
> On top of everything, find out the domains which does not need to go through proxy and add them to NO_PROXY.. at each level..
> It does not end here. Sometimes, I need to setup proxy for SSH connections... like, if I have to use git with SSH and not HTTP/S... Uhhh....
More than half of the problems me and my dev team face is related to setting the right proxy. Why can't it be like, set in one place and everything picks up from there, like in any linux machine or for God's sake, a Mac ?
Worst of all is, my org uses a configuration script, which resolves into a list of proxy servers, from which one of them will be used. So, I need to download that script, find out which is the right proxy server and then, use it in all the aforesaid places... WTH ?????
Is this a common workplace problem for all developers ??? Will this be solved by Windows Subsystem for Linux ???9 -
I tried to go for a job as a ReactJS junior dev.. I got my first interview and they liked my prototype.. but..
A week later they reply: "We decided not to go with you because we hired an expert in ReactJS".
Err.. really? You're hiring expert-level ReactJS developers for a junior position?! What the frig.
You want to know what I think? This whole "It's ok that you don't know everything, you'll learn on the job" thing is a hoax. No, the job market doesn't want novices. With every single interview, I'm met with: "but you're not an expert and we can't afford that".
This reminds me of the best advice my professor (seasoned expert in the field, real engineer with more than 20 years experience) once gave me:
"The job market doesn't have the time nor patience to mollycoddle you. When you enter it, you have to already know things to an expert degree because companies want value. They're hiring you because you have these skills and knowledge.
You have to already know what they ask before they ask it. You're required to know things by yesterday, so to speak. It is an exigent industry out there. This is why we bring you the foundations - so that you go further on your own and you can take on any problem"9 -
(Warning: This rant includes nonsense, nightposting, unstructured thoughts, a dissenting opinion, and a purposeless, stupid joke in the beginning. Reader discretion is advised.)
honestly the whole "ARM solves every x86 problem!" thing doesn't seem to work out in my head:
- Not all ARM chips are the same, nor are they perfectly compatible with each other. This could lead to issues for consumers, for developers or both. There are toolchains that work with almost all of them... though endianness is still an issue, and you KNOW there's not gonna be an enforced standard. (These toolchains also don't do the best job on optimization.)
- ARM has a lot of interesting features. Not a lot of them have been rigorously checked for security, as they aren't as common as x86 CPUs. That's a nightmare on its own.
- ARM or Thumb? I can already see some large company is going to INSIST AND ENFORCE everything used internally to 100% be a specific mode for some bullshit reason. That's already not fun on a higher level, i.e. what software can be used for dev work, etc.
- Backwards compatibility. Most companies either over-embrace change and nothing is guaranteed to work at any given time, or become so set in their ways they're still pulling Amigas and 386 machines out of their teeth to this day. The latter seems to be a larger portion of companies from what I see when people have issues working with said company, so x86 carryover is going to be required that is both relatively flawless AND fairly fast, which isn't really doable.
- The awkward adjustment period. Dear fuck, if you thought early UEFI and GPT implementations were rough, how do you think changing the hardware model will go? We don't even have a standard for the new model yet! What will we keep? What will we replace? What ARM version will we use? All the hardware we use is so dependent on knowing exactly what other hardware will do that changing out the processor has a high likelihood of not being enough.
I'm just waiting for another clusterfuck of multiple non-standard branching sets of PCs to happen over this. I know it has a decent chance of happening, we can't follow standards very well even now, and it's been 30+ years since they were widely accepted.5 -
There has been a post today about the existence of too many js frameworks. Which reminds me of this awesome post https://hackernoon.com/how-it-feels...
At first I thought someone was corpseposting, as it is my understanding that the js ecosystem is calming down a bit. But then I noticed that post got almost 20 upvotes. So here's my thoughts:
(I'm not sure what I'm ranting about here, as it feels kinda broad after writing it. I think it's kinda valid anyhow.)
I'm ok with someone expressing frustration with js. But complaining about progress is definitely off to me.
How is too many frameworks a bad thing?
How does the variety and creation of more modern frameworks affect negatively developers?
Does it make it hard to understand each of these new frameworks?
Well, there's no need to. Just because it has a logo and some nice badges and says it will make you happy doesn't mean you should use it.
You just stick to the big boys in the ecosystem and you'll be fine for a while.
Does it make you feel compelled to migrate the stack of every project you did?
Well, don't. If you don't like being on the bleeding edge of js, then just stick to whatever you're using, as long as it's good code.
But if a lot of companies decided to migrate to react (among others frameworks), it's because they like the upsides: the code is faster to write, easier to test and more performant.
In general, I'm more understanding/empathic with beginner js programmers.
But I have for real heard experienced devs in real life complain about having to learn new frameworks, like they hate it.
"I just want to learn a single framework and just master it throughout my life" and I think they're lowering the bar.
There's people that for real expect occupying positions for life, make money, but never learn a new framework.
We hold other practitioners to high standards (like pilots or doctors), but for some reason, some programmers feel like they're ok with what they know for life.
As if they couldn't translate all they learned with one framework to another.
Meanwhile our lives are becoming more and more intertwined with technology and demand some pretty high standards. Standards that historically have not been met, according to thousands of people screaming to their devices screens.
Even though I think the "js can be frustrating" sentiment is valid, the statement 'too many js frameworks is bad' is not.
I think a statement like 'js frameworks can go obsolete very quickly' is more appropriate.
By saying too many js frameworks is a bad thing you're
1) Making a conspiracy theory as if js devs were working in tandem to make the ecosystem hard,
But people do whatever they want. Some create packages, others star/clone/use them.
2) Making a taboo out of a normal itch, creating.
"hey you're a libdev? just stop, ok? stop"
"Are you a creative person? Do you know a way to solve a problem in an easier way than some famous package? it doesn't matter, don't you dare creating a new package."
I'm not gonna say the js world is perfect. The js world is frantic, savage, evolves aggressively.
You could say that it (accidentally) gives the middle finger to end users, but you could also say that it just sets the bar higher.
I liked writing jquery code in the past, but at the same time I didn't like adding features/fixing bugs on it. It was painful.
So I'm fine with a better framework coming along after a few years and stealing their userbase, as it happens almost universally in the programming world, the difference with js is that the cycle is faster.
Even jquery's creator embraced React.
This post explains also
https://medium.com/@chrisdaviesgeek...13 -
So at our company, we use Google Sheets to for to coordinate everything, from designs to bug reporting to localization decisions, etc... Except for roadmaps, we use Trello for that. I found this very unintuitive and disorganized. Google Sheets GUI, as you all know, was not tailored for development project coordination. It is a spreadsheet creation tool. Pages of document are loosely connected to each other and you often have to keep a link to each of them because each Google Sheets document is isolated from each other by design. Not to mention the constant requests for permission for each document, wasting everybody's time.
I brought up the suggestion to the CEO that we should migrate everything to GitHub because everybody already needed a Github account to pull the latest version of our codebase even if they're not developers themselves. Gihub interface is easier to navigate, there's an Issues tab for bug report, a Wiki tab for designs and a Projects tab for roadmaps, eliminating the need for a separate Trello account. All tabs are organized within each project. This is how I've seen people coordinated with each other on open-source projects, it's a proven, battle-tested model of coordination between different roles in a software project.
The CEO shot down the proposal immediately, reason cited: The design team is not familiar with using the Github website because they've never thought of Github as a website for any role other than developers.
Fast-forward to a recent meeting where the person operating the computer connected to the big TV is struggling to scroll down a 600+ row long spreadsheet trying to find one of the open bugs. At that point, the CEO asked if there's anyway to hide resolved bugs. I immediately brought up Github and received support from our tester (vocal support anyway, other devs might have felt the same but were afraid to speak up). As you all know, Github by default only shows open issues by default, reducing the clutter that would be generated by past closed issues. This is the most obvious solution to the CEO's problem. But this CEO still stubbornly rejected the proposal.
2 lessons to take away from this story:
- Developer seems to be the only role in a development team that is willing to learn new tools for their work. Everybody else just tries to stretch the limit of the tools they already knew even if it meant fitting a square peg into a round hole. Well, I can't speak for testers, out of 2 testers I interacted with, one I never asked her opinion about Github, and the other one was the guy mentioned above. But I do know a pixel artist in the same company having a similar condition. She tries to make pixel arts using Photoshop. Didn't get to talk to her about this because we're not on the same project, but if we were, I'd suggest her use Aseprite, or (at least Pixelorama if the company doesn't want to spend for Aseprite's price tag) for the purpose of drawing pixel arts. Not sure how willing she would be at learning new tools, though.
- Github and other git hosts have a bit of a branding problem. Their names - Github, BitBucket, GitLab, etc... - are evocative of a tool exclusively used by developers, yet their websites have these features that are supposed to be used by different roles other than developers. Issues tabs are used by testers as well as developers. Wiki tabs are used by designers alongside developers. Projects and Insights tabs are used by project managers/product owners. Discussion tabs are used by every roles. Artists can even submit new assets through Pull Requests tabs if the Art Directors know how to use the site interface (Art Directors' job is literally just code review, but for artistic assets). These websites are more than just git hosts. They are straight-up Jira replacement with git hosting as a bonus feature. How can we get that through the head of non-developers so that we don't have to keep 4+ accounts for different websites for the same project?4 -
Let's say you're working on a web application, and you notice that one of the pages is not displaying the correct data. You investigate further and realize that the data is being retrieved from an API endpoint, but for some reason, the API is returning the wrong data.
You start looking into the code that calls the API and notice that it's passing in the correct parameters, so you dig deeper into the API code itself. After hours of poring over the code, you finally discover that the bug is caused by a typo in the database query that the API is using to retrieve the data.
You fix the typo and think the problem is solved, but then you realize that the data is still not displaying correctly on the page. After even more investigation, you discover that the bug is actually being caused by a caching issue on the client side.
At this point, you're feeling incredibly frustrated and overwhelmed. You've spent hours trying to track down this bug, and it feels like every time you think you've found the root cause, another issue pops up. This is just one example of the many challenges that developers face on a daily basis.6 -
[tl;dr at the bottom]
(Project Team Group Chat)
dev: @Desing team, i have a question, there's a required field missing in you design, can i go to your desktop to get an quick answer/explanation about that?
design team:....
dev: hello..?
PM: [writes a huge text to tell me that i can not interrupt them even if its a blocker and that we (dev team) shoul write them down and tell them only once a day in the scrum meeting]
dev: uuumm ok
-next day-
dev: so about that field, why did you...
Client: WHAT? There's a problem with the design!? oh boy, lets re-check every view right now with the whole team!
(it took like 2 hours, the field was missing just because they forgot that feature)
PM: okay, @DesingTeam, answer any questions from developers when they ask you...
tl;dr
we spent almost two hours with the client just because desing team didn't want to answer me a little question -
Monday morning client meetings are usually a pain. If they're not delayed once, they're delayed twice, and they go on for hours, taking up the entire morning for everyone on the project.
To make today even better, it was about an hour of our client ripping into us developers on the project, and the application we're making, to shreds, saying that we have a lack of attention to detail and are working well.
(not bearing in mind, we're building a hybrid application, so it's a glorified web page and we can't test on every android phone, or iOS device and any combination of keyboards for those in between, and every problem comes with its own quirks when you're forcing things with html, js and angularjs).
I feel back for the pm, she had literally 5 more hours of salty, salty calls with our other poc about the issues raised and how we could go about fixing all these minor issues, since they know the solution to them, despite having little to zero technical knowledge.
Just another day in the office I guess. -
We've recently employed a new lead dev that seems to have a problem in that his solution is always the correct solution.
On a typical day, whenever I push code up for review via pull request, every single ticket I work on, he has something that has to change which doubles the amount of time of each ticket.
I'd be fine with this if the other 2 developers also think he's a bit of a headache in terms of his opinion but a lot of the time, there is always.. ALWAYS something that has to change because his method is better than mine.
For example, just now I pushed up some code that literally just adds in the user's email to the view which is already in the store for that action/effect anyway. I added one line of HTML.
He comments saying that I need to change the way it gets the email by doing a different request in the effect, to get the current user id, and from that match it against the email address, and THEN display it in the view.
This ticket took me 5 minutes. He's making me make it 30-60 minutes (to understand his requirement and implement it).
Is this normal? Am I over reacting?
Opinions please!7 -
My Gripe With Implicit Returns
In my experience I've found that wherever possible code should be WYSIWYG in terms of the effects per statement. Intent and the effects thereof should always be explicit per statement, not implicit, otherwise effects not intended will eventually slip in, and be missed.
It's hard to catch, and fix the effects of a statement intent where the statement in question is *implicit* because the effect is a *byproduct* of another statement.
Worse still, this sort of design encourages 'pyramid coding recursion hell', where some users will first decompose their program into respective scopes, and then return and compose them..atomically as possible, meaning execution flow becomes distorted, run time state becomes dependent not on obvious plain-at-sight code, but on the run time state itself. This I've found is a symptom of people who have spent too much time with LISP or other eye-stabbingly fucky abominations. Finally implicit returns encourage a form of thinking where programmers attempt to write code that 'just works' without thinking about how it *looks* or reads. The problem with opaque-programming is that while it may or may not be effortless, much more time is spent in reading, debugging, understanding, and maintaining code than is spent writing it--which is obviously problematic if we have a bunch of invisible returns everywhere, which requires new developers reading it to stop each and every time to decide whether to mentally 'insert' a return statement.
This really isn't a rant, as much as an old bitter gripe from the guy that got stuck with the job of debugging. And admittedly I've admired lisp from afar, but I didn't want to catch the "everything is functional, DOWN WITH THE STATE" fever, I'm no radical.
Just god damn, think of the future programmer who may have to read your code eventually.2 -
Every problem I ever had with a game development engine, only made me hope for something better.
After all, we’re independent developers, not activision! What the hell is an “indie” anyway? I’d even grown a sort of disgust at the term, as if saying it, without having published anything, was being fake. The word felt vapid. Like calling yourself an e-celebrity, or apple putting an i in front of everything.
(Don’t you know its year 20xx, we attach coin to brands now! Dogecoin, ecoin, walmartcoin, hospitalCoin for when you really really just want an appendectomy).
This is my newsletter, Y Intercept, and the story of my many embarrassing failures, and what I have learned from them.
Indie Game Development Tools
https://yintercept.substack.com/p/...
Stay tuned for more, like "how I once redesigned the same interface over two thousand times."
and gems like
"I wish it was more like Minecraft, But With Guns - and the awful ads that FLOODED the internet from that one little, terrible, god awful suggestion."3 -
WARNING - a lot of text.
I am open for questions and discussions :)
I am not an education program specialist and I can't decide what's best for everyone. It is hard process of managing the prigram which is going through a lot of instances.
Computer Science.
Speaking about schools: regular schools does not prepare computer scientists. I have a lot of thoughts abouth whether we need or do NOT need such amount of knowledge in some subjects, but that's completely different story. Back to cs.
The main problem is that IT sphere evolves exceedingly fast (compared to others) and education system adaptation is honestly too slow.
SC studies in schools needs to be reformed almost every year to accept updates and corrections, but education system in most countries does not support that, thats the main problem. In basic course, which is for everyone I'd suggest to tell about brief computer usage, like office, OS basics, etc. But not only MS stuff... Linux is no more that nerdy stuff from 90', it's evolved and ready to use OS for everyone. So basic OS tour, like wtf is MAC, Linux (you can show Ubuntu/Mint, etc - the easy stuff) would be great... Also, show students cloud technologies. Like, you have an option to do *that* in your browser! And, yeah, classy stuff like what's USB and what's MB/GB and other basic stuff.. not digging into it for 6 months, but just brief overview wuth some useful info... Everyone had seen a PC by the time they are studying cs anyway.. and somewhere at the end we can introduce programming, what you can do with it and maybe hello world in whatever language, but no more.. 'cause it's still class for everyone, no need to explain stars there.
For last years, where shit's getting serious, like where you can choose: study cs or not - there we can teach programming. In my country it's 2 years. It's possible to cover OOP principles of +/- modern language (Java or C++ is not bad too, maybe even GO, whatever, that's not me who will decide it. Point that it's not from 70') + VCS + sime real world app like simplified, but still functional bookstore managing app.
That's about schools.
Speaking about universities - logic isbthe same. It needs to be modern and accept corrections and updates every year. And now it depends on what you're studying there. Are you going to have software engineering diploma or business system analyst...
Generally speaking, for developers - we need more real world scenarios and I guess, some technologies and frameworks. Ofc, theory too, but not that stuff from 1980. Come-on, nowadays nobody specifies 1 functional requirement in several pages and, generally, nobody is writing that specification for 2 years. Product becomes obsolete and it's haven't even started yet.
Everything changes, whether it is how we write specification documents, or literally anything else in IT.
Once more, morale: update CS program yearly, goddammit
How to do it - it's the whole another topic.
Thank you for reading.3 -
Laravel being easy to use is far from a strong point. "Easy to use" is a cool thing for pro developers who know what's going on under the hood and don't wanna write the same thing a hundred times.
It should translate into good developers being able to work immediately, not in bad developers getting away with whatever without getting even a slight warning just because the framework itself accepts whatever weird crap you can come up with while you're training.
But that's what it became: a free for all for every noob out there. You find yourself working with a slow application (and by "slow" I mean "slow even by Laravel's standards", which are fairly low), and as soon as you look what's going on you find someone decided to load a hundred thousand middlewares, queries optimized like ass on top of Eloquent, and the whole application breaks as soon as you just run config:cache to try speeding it up a little bit, because env-ing your way out of whatever problem is so quick. Easy to use needs to be there for pro developers; give such a tool to a newbie, you end up with a maintenance nightmare3 -
I've seen some posts on remote work. I believe all companies should permanently implement remote work if they cannot arrange a proper office.
I have been working for a company where programmers and project managers work in the same room, and sometimes I was trying to understand some problem in code when managers were screaming next to me at other developers or on the phone, because they couldn't hear themselves.
This happend so often that I would literally go home burned out.
Also there were people coming in the room to talk to the managers or just passing next to my screen every couple of minutes which was extremely distracting.
I bought a pair of over ear noise cancelling headphones and on top of that used ear plugs, but eventually I developed a very strange stress condition over the course of a year. Also listening to music while trying to focus for 8 hours a day while at work is very tiresome.
Also couldn't quit because it was my first job. -
As a dev, I have to reuse a lot of codes again and again. Some I've written, and some of them I found after stucking my head for 1 hour on StackOverflow.
Now, the problem is every time I need the code, I have to search again. Some of them I saved in note apps but organizing code snippets & finding them with a quick search is a mess.
I was thinking of building a code snippet organizer where developers can save code snippets in any language (have syntax highlighting), search quickly, share with anyone, create buckets, manage multiple accounts etc.
Let me know if it's a good idea or not. Would you be interested in using something like this? Is this even a real problem or it's just me?15 -
This is yet another rant about php.
But I'll put my hands on first: I'm less than a junior and I'm looking for a backend language to learn.
So far I've been looking at php with Symfony because it's been used where I work.
Is it my impression or Symfony somehow overcomplicates everything? Like I don't know, for any stupid thing I get stucked (like yesterday, spent two hours on a circular reference problem with serialization).
Also, I don't like it's documentation. I am a book person, meaning that I need pages of text explaining how the framework (or whatever) works in a precise order.
Symfony's docs are like a graph: you often have no idea where you are or "what comes next".
Also, I feel like every page makes you just copy-paste everything without explaining very much what's happening under the hood.
I know there is a cookbook, but it's pretty outdated (like it's at version 3 or 2.7, I don't remember).
Is it just me? Do other Symfony developers experienced the same?10 -
I have a small NUC-like machine in my home with an old external hdd connected to it. I use it to run my local gitlab, nextcloud and to test a few websites I build for the lolz.
If you too have a homelab, whether it's a single raspberry or an entire room full or racks, you know damn well that everything you have running locally as a web service keeps going until it doesn't, for whatever fucking reason. This time, it was the turn of my nextcloud.
The machine has arch linux running, I chose it since I already use it on my coding laptop and being a rolling release means I don't have to manually upgrade to a newer version, risking various fuck-ups and consequent screaming of profanity.
The downside is that arch is a bleeding-edge distro, so, despite being pretty good for what concerns security, as updates are pushed out some packages may still require legacy software to work as intended, since obviously not all developers for all packages can release simultaneously.
The problem was that php reached 8.2.x but nextcloud couldn't use anything beyond 8.1, so the highlighted solution was to download php-legacy, a package with a set of utilities which the cloud could use instead of mainline php.
Pretty easy, right? fuck my life, here we go.
I edited apache-httpd's configurations to link the new libraries, updated every reference in every virtual host that could possibly screw up the web server.
Done.
Then I went on and disabled the php-fpm mainline, creating a new systemd unit that would instead run the legacy executable and afterwards I edited nextcloud's additional configs so they use that instead.
Done, getting a bit dizzy, but I reboot everything and breathe.
At this point the migration should be complete, but wait, the server returns an error saying that the application is still trying to use php 8.2+...wait, what in the sysadmin Christ?
Back to nextcloud config, everything is set, everything else in every other fucking php-legacy and web server is fine, the old fpm service is disabled, I am confused, and why in the FUCKING FUCK is the new php-fpm unit failing to start at boot with "error 78/config - directory not found"? Hello? Am I being trolled by a shitty dual-core amazon fake NUC?
Maybe yes, cause it turns out that the unit was referencing a directory in the external hdd, which gets mounted at boot time after the unit itself starts, so nothing much, just a matter of tinkering with cron jobs, a reboot and at least this one is off my balls.
But why still isn't the server responding correctly? why? WHY?
After slamming my cock on the keyboard here and there scrolling back through all the config files I think to myself, hmmm, my gitlab is working flawlessly, well yeah, I didn't need to install the whole web stack, everything was nice and easy wrapped in a docker container...so why am I even here, why the fuck am I bothering with all this layered web-app bullshit, why don't I just run the up-to-date docker image that someone else has already set up for me, back up all the data and reupload them on the application?
Oh joy, you can't imagine, after 3...almost 4 hours of pure computer-touching the relief I had from seeing the blue web page with the "welcome to nextcloud" title.
Right now it's copying back all the files, and the external hdd is now linked to include the data folder.
Like really, everything was solved in two lines of bash.
I am still fuming, but at least I learned a valuable lesson, if you want a service up for yourself, implement it and deploy it as fucking easy straight-forward as you can, giving MAXIMUM priority to already fully-working options that are out there just waiting to be downloaded and used. I swing my scrotal sack on web-apps elegance as long as it's MY homelab in MY place.
Eat a fat dick php.
sudo pacman -Rns nextcloud
sudo systemctl disable --now php-fpm-legacy
sudo pacman -Rns php-legacy
sudo pacman -Rns $(sudo pacman -Qdtq)2 -
Top 12 C# Programming Tips & Tricks
Programming can be described as the process which leads a computing problem from its original formulation, to an executable computer program. This process involves activities such as developing understanding, analysis, generating algorithms, verification of essentials of algorithms - including their accuracy and resources utilization - and coding of algorithms in the proposed programming language. The source code can be written in one or more programming languages. The purpose of programming is to find a series of instructions that can automate solving of specific problems, or performing a particular task. Programming needs competence in various subjects including formal logic, understanding the application, and specialized algorithms.
1. Write Unit Test for Non-Public Methods
Many developers do not write unit test methods for non-public assemblies. This is because they are invisible to the test project. C# enables one to enhance visibility between the assembly internals and other assemblies. The trick is to include //Make the internals visible to the test assembly [assembly: InternalsVisibleTo("MyTestAssembly")] in the AssemblyInfo.cs file.
2. Tuples
Many developers build a POCO class in order to return multiple values from a method. Tuples are initiated in .NET Framework 4.0.
3. Do not bother with Temporary Collections, Use Yield instead
A temporary list that holds salvaged and returned items may be created when developers want to pick items from a collection.
In order to prevent the temporary collection from being used, developers can use yield. Yield gives out results according to the result set enumeration.
Developers also have the option of using LINQ.
4. Making a retirement announcement
Developers who own re-distributable components and probably want to detract a method in the near future, can embellish it with the outdated feature to connect it with the clients
[Obsolete("This method will be deprecated soon. You could use XYZ alternatively.")]
Upon compilation, a client gets a warning upon with the message. To fail a client build that is using the detracted method, pass the additional Boolean parameter as True.
[Obsolete("This method is deprecated. You could use XYZ alternatively.", true)]
5. Deferred Execution While Writing LINQ Queries
When a LINQ query is written in .NET, it can only perform the query when the LINQ result is approached. The occurrence of LINQ is known as deferred execution. Developers should understand that in every result set approach, the query gets executed over and over. In order to prevent a repetition of the execution, change the LINQ result to List after execution. Below is an example
public void MyComponentLegacyMethod(List<int> masterCollection)
6. Explicit keyword conversions for business entities
Utilize the explicit keyword to describe the alteration of one business entity to another. The alteration method is conjured once the alteration is applied in code
7. Absorbing the Exact Stack Trace
In the catch block of a C# program, if an exception is thrown as shown below and probably a fault has occurred in the method ConnectDatabase, the thrown exception stack trace only indicates the fault has happened in the method RunDataOperation
8. Enum Flags Attribute
Using flags attribute to decorate the enum in C# enables it as bit fields. This enables developers to collect the enum values. One can use the following C# code.
he output for this code will be “BlackMamba, CottonMouth, Wiper”. When the flags attribute is removed, the output will remain 14.
9. Implementing the Base Type for a Generic Type
When developers want to enforce the generic type provided in a generic class such that it will be able to inherit from a particular interface
10. Using Property as IEnumerable doesn’t make it Read-only
When an IEnumerable property gets exposed in a created class
This code modifies the list and gives it a new name. In order to avoid this, add AsReadOnly as opposed to AsEnumerable.
11. Data Type Conversion
More often than not, developers have to alter data types for different reasons. For example, converting a set value decimal variable to an int or Integer
Source: https://freelancer.com/community/...2 -
You work in a team, for a team to move forward successfully the team should work in sync. A team always has a goal and a plan to get to it. There are times when the team needs to take a different direction therefore the set path should always be available for change because our environments dictate it.
We all have different styles of working and different opinions on how things should work. Sometimes one is wrong and the other is right, and sometimes both are wrong, or actually sometimes both are right. However, at the end of it all, the next step is a decision for the team, not an individual, and moving forward means doing it together. #KickAssTeam
The end result can not come in at the beginning but only at the end of an implementation and sometimes if you’re lucky, during implementation you can smell the shit before it hits the fan. So as humans, we will make mistakes at times by using the wrong decisions and when this happens, a strong team will pull things in the right direction quickly and together. #KickAssTeam
Having a team of different opinions does not mean not being able to work together. It actually means a strong team! #kickAssTeam However the challenging part means it can be a challenge. This calls for having processes in place that will allow the team members to be heard and for new knowledge to take lead. This space requires discipline in listening and interrogating opinions without attachment to ideas and always knowing that YOUR opinion is a suggestion, not a solution. Until it is taken on by the team. #KickAssTeam We all love our own thinking. However, learning to re-learn or change opinions when faced with new information should become as easy to take in and use.
Now, I am no expert at this however through my years of development I find this strategy to work in a team of developers. It’s a few questions you ask yourself before every commit, When faced with working in a new team and possibly as a suggestion when trying to align other team members with the team.
The point of this article, the questions to self!
Am I following the formatting standard set?
Is what I have written in line with official documentation?
Is what I am committing a technical conversion of the business requirement?
Have I duplicated functionality the framework already offers?
I have introduced a methodology, library, heavily reusable component to the system, have you had a discussion with the team before implementing?
Are your methods and functions truly responsible for 1 thing?
Will someone you will never get to talk to or your future self have documentation of your work?
Either via point number 2, domain-specific, or business requirements documentation.
Are you future thinking too much in your solution?
Will future proof have a great chance of complicating the current use case?
Remember, you can never write perfect code that cures every future problem, but what you can do perfectly is serve the current business problem you are facing and after doing that for decades, you would have had a perfect line of development success.1 -
How difficult is it to decide for your own future?
It's a month that I'm in total panic 'cause of a difficult choice I have to make about my job.
I really need some external opinions and points of view from other developers, maybe more experienced than me (I'm a medium-junior JS developer).
The situation is as follows:
1) I work as a Frontend Web Developer for a wonderful enterprise-like company with 100+ employees, where the individual rights are fully respected, there are no whatsoever pressures and there is a peaceful paradise-like atmosphere most of the days. I also love my teammates, which is something rare because I often dislike other humans.
2) I received a proposal from a Fintech startup, which required me a long time to complete a complex programming test they gave me. They look all very young, modern, fast and passioned about their job. But they are only living with bank's investments and are not producing any money at the moment. Also, I don't know if Fintech will be a successful field in the future.
3) I received another proposal, from a Healthtec startup this time, which has a lovely mission in the medical field, has received millions of investments, it's gaining some KK net each month but has a team of only 2 developers (3 with me if I accept). I know one of the developers and I remember he had issues of not getting paid months ago.
What's the problem with the first company? I totally dislike the product we are building, the development stack (fully Microsoft-based), the company's view (they still sell and think about software like in the 90's) and how the repository is managed. Everyday there are huge problems that end up blocking the frontend work and the final product is super ugly and works only if you know all the quirks behind it.
It's an old-fashioned desktop app with inside Chromium which should execute some components like graphs, tables, forms and shit like this. Every component is configurable through a property editor which is an utter giant mess of collapsed menus. I also suspect that the company's main business model is based on the difficulty to use this software (because they sell licenses and courses to use it).
There are no modern UX/UI concepts applied at all, nor they seem to care about it.
Each time I propose something there is a huge chain of approval-waiting that end up in a stale mate.
Also, it's useless to show my frustration about all these issues because I count very little in a so populated office.
------------------------------------------------
TLDR: I need to choice if staying in a Enterprise Microsoft-based and old-fashioned company, but in which the atmosphere is paradisiac or accept the risk to work for a Fintech or a Healthtec startup.
------------------------------------------------
What would you do if you were in my situation? What's for you the most stable field in the future?
Many thanks for the attention!6 -
It's been over 7 months of being deployed to help finish a project that's crossed the deadline umpteenth times. There's only this guy who had started on this project and me as developers. He's a nice guy, but I'm finding him to be a snowflake that's extremely difficult to work with. Every time I mention a critical problem with his original design, or the approaches he takes on this project, he takes it personally. He would pour out a long spiel of why this and why that, and waste most of the meeting time. Or he would run to his outdated diagrams or documents that he had created himself somewhere deep in the wiki forest, and use that as a defense. He creates his own user stories and tasks on a whim with no PM supervision. I've noted to the managers that this is a project to fail, and all they've done is assign a busy PM to this project, and the new PM is perfectly fine w/ the way the project has been handled so far.
I point out a small flaw with his assumptions just the other day, and he even managed to hyperventilate and again fall back to his outdated document... WTF? I'd rather start from scratch and get this project finished faster.. and even though I've expressed my objection to continue on this path, the managers foolishly believe that this project will be completed somehow. I don't hate my development partner, or PM, or people in the management, but I hate the fact that I don't have control over so many aspects of this project, including the half-assed, unnecessarily complex design, and the dev workflow itself. I feel like I'm tied to a car that's being thrown over the cliff, and assigned to fix the junky car w/ its engine broken before the car hits the ground. Something like this would never be allowed to go in a commercial sector. I just wish that the management could just give me control over project as THE lead & PM over this project, and get this project tied up for good, and with better reusability and quality.1 -
hey uh, this is a rant about phantom forces, if you don't know what it is, look it up, anyways, that's really it.
so, i've been playing this game very actively called phantom forces and its a good game but its been ruined and the fun has pretty much been taken away. the community is dead and terrible, the developers don't care and the game is just falling off.
what i consider community is the youtube scene, and now as of january 1st, 2022, there's nothing left that's actually interesting besides godstatus and moons fps studio. honestly, its so dry and i'm sick of it.
i'm tired of seeing shitty best setup videos and gun reviews. i hate somesteven and strider and then, there's nothing to actually watch so i just watch brain-numbing shitty videos about stuff.
and then theres the developers, stylis studios is a great development team, i'll give you that but the sheer ignorance of their team is so fucking much.
its kinda obvious they don't really care about adding new features or anything new that isn't guns and its fucking sickening. just to see the same old updates, every fucking month man, its annoying and tiring.
i'm fucking tired of just seeing ape shit guns that are too high for regular players to actually unlock. like i know they're trying to please the growing number of 200+ rank users but its terrible, they haven't done a gun below rank 200 or 100 in forever. the last time they did it was like 6 months ago or something.
we've been asking for shit for years and they haven't given it to us and its fucking tiring. asking for daily quests, new features, more grips, vehicles and shit like that is obviously never gonna happen and thats the fucking problem. they don't care about their community.
but anyways, thats really all i want to say, might make a follow up post later. if you want to add your 2 cents down in the comments, you can do that. bye2 -
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.