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 - "real bug"
-
https://git.kernel.org/…/ke…/... sure some of you are working on the patches already, if you are then lets connect cause, I am an ardent researcher for the same as of now.
So here it goes:
As soon as kernel page table isolation(KPTI) bug will be out of embargo, Whatsapp and FB will be flooded with over-night kernel "shikhuritee" experts who will share shitty advices non-stop.
1. The bug under embargo is a side channel attack, which exploits the fact that Intel chips come with speculative execution without proper isolation between user pages and kernel pages. Therefore, with careful scheduling and timing attack will reveal some information from kernel pages, while the code is running in user mode.
In easy terms, if you have a VPS, another person with VPS on same physical server may read memory being used by your VPS, which will result in unwanted data leakage. To make the matter worse, a malicious JS from innocent looking webpage might be (might be, because JS does not provide language constructs for such fine grained control; atleast none that I know as of now) able to read kernel pages, and pawn you real hard, real bad.
2. The bug comes from too much reliance on Tomasulo's algorithm for out-of-order instruction scheduling. It is not yet clear whether the bug can be fixed with a microcode update (and if not, Intel has to fix this in silicon itself). As far as I can dig, there is nothing that hints that this bug is fixable in microcode, which makes the matter much worse. Also according to my understanding a microcode update will be too trivial to fix this kind of a hardware bug.
3. A software-only remedy is possible, and that is being implemented by all major OSs (including our lovely Linux) in kernel space. The patch forces Translation Lookaside Buffer to flush if a context switch happens during a syscall (this is what I understand as of now). The benchmarks are suggesting that slowdown will be somewhere between 5%(best case)-30%(worst case).
4. Regarding point 3, syscalls don't matter much. Only thing that matters is how many times syscalls are called. For example, if you are using read() or write() on 8MB buffers, you won't have too much slowdown; but if you are calling same syscalls once per byte, a heavy performance penalty is guaranteed. All processes are which are I/O heavy are going to suffer (hostings and databases are two common examples).
5. The patch can be disabled in Linux by passing argument to kernel during boot; however it is not advised for pretty much obvious reasons.
6. For gamers: this is not going to affect games (because those are not I/O heavy)
Meltdown: "Meltdown" targeted on desktop chips can read kernel memory from L1D cache, Intel is only affected with this variant. Works on only Intel.
Spectre: Spectre is a hardware vulnerability with implementations of branch prediction that affects modern microprocessors with speculative execution, by allowing malicious processes access to the contents of other programs mapped memory. Works on all chips including Intel/ARM/AMD.
For updates refer the kernel tree: https://git.kernel.org/…/ke…/...
For further details and more chit-chats refer: https://lwn.net/SubscriberLink/...
~Cheers~
(Originally written by Adhokshaj Mishra, edited by me. )23 -
I've always made this joke, but it happened for real.
There was a existing bug in our machine for a very long time. So long that the validation engineer now treats it as a feature and they raised a issue when the bug was fixed :/7 -
Lads, I will be real with you: some of you show absolute contempt to the actual academic study of the field.
In a previous rant from another ranter it was thrown up and about the question for finding a binary search implementation.
Asking a senior in the field of software engineering and computer science such question should be a simple answer, specifically depending on the type of job application in question. Specially if you are applying as a SENIOR.
I am tired of this strange self-learner mentality that those that have a degree or a deep grasp of these fundamental concepts are somewhat beneath you because you learned to push out a website using the New Boston tutorials on youtube. FOR every field THAT MATTERS a license or degree is hold in high regards.
"Oh I didn't go to school, shit is for suckers, but I learned how to chop people up and kinda fix it from some tutorials on youtube" <---- try that for a medical position.
"Nah it's cool, I can fix your breaks, learned how to do it by reading blogs on the internet" <--- maintenance shop
"Sure can write the controller processing code for that boing plane! Just got done with a low level tutorial on some websites! what can go wrong!"
(The same goes for military devices which in the past have actually killed mfkers in the U.S)
Just recently a series of people were sent to jail because of a bug in software. Industries NEED to make sure a mfker has aaaall of the bells and whistles needed for running and creating software.
During my masters degree, it fucking FASCINATED me how many mfkers were absolutely completely NEW to the concept of testing code, some of them with years in the field.
And I know what you are thinking "fuck you, I am fucking awesome" <--- I AM SURE YOU BLOODY WELL ARE but we live in a planet with billions of people and millions of them have fallen through the cracks into software related positions as well as complete degrees, the degree at LEAST has a SPECTACULAR barrier of entry during that intro to Algos and DS that a lot of bitches fail.
NOTE: NOT knowing the ABSTRACTIONS over the tools that we use WILL eventually bite you in the ASS because you do not fucking KNOW how these are implemented internally.
Why do you think compiler designers, kernel designers and embedded developers make the BANK they made? Because they don't know memory efficient ways of deploying a product with minimal overhead without proper data structures and algorithmic thinking? NOT EVERYTHING IS SHITTY WEB DEVELOPMENT
SO, if a mfker talks shit about a so called SENIOR for not knowing that the first mamase mamasa bloody simple as shit algorithm THROWN at you in the first 10 pages of an algo and ds book, then y'all should be offended at the mkfer saying that he is a SENIOR, because these SENIORS are the same mfkers that try to at one point in time teach other people.
These SENIORS are the same mfkers that left me a FUCKING HORRIBLE AND USELESS MESS OF SPAGHETTI CODE
Specially to most PHP developers (my main area) y'all would have been well motherfucking served in learning how not to forLoop the fuck out of tables consisting of over 50k interconnected records, WHAT THE FUCK
"LeaRniNG tHiS iS noT neeDed!!" yes IT fucking IS
being able to code a binary search (in that example) from scratch lets me know fucking EXACTLY how well your thought process is when facing a hard challenge, knowing the basemotherfucking case of a LinkedList will damn well make you understand WHAT is going on with your abstractions as to not fucking violate memory constraints, this-shit-is-important.
So, will your royal majesties at least for the sake of completeness look into a couple of very well made youtube or book tutorials concerning the topic?
You can code an entire website, fine as shit, you will get tested by my ass in terms of security and best practices, run these questions now, and it very motherfucking well be as efficient as I think it should be(I HIRE, NOT YOU, or your fucking blog posts concerning how much MY degree was not needed, oh and btw, MY degree is what made sure I was able to make SUCH decissions)
This will make a loooooooot of mfkers salty, don't worry, I will still accept you as an interview candidate, but if you think you are good enough without a degree, or better than me (has happened, told that to my face by a candidate) then get fucking ready to receive a question concerning: BASIC FUCKING COMPUTER SCIENCE TOPICS
* gays away into the night53 -
!rant
Programming is a huge blessing i believe we all should be thankful to. For me, it literally turned my life around.
11 months ago i was fighting a losing battle with depression, and contemplated suicide constantly. I would use a self remedy of smoking weed and sleeping all day long. I was depressed because i felt my life had no real value. I was doing nothing, and its kind of an infinite loop.
You don't do anything, so you feel bad, so you don't do anything, and so on.
That was until i finally took the step that changed my life. I searched and wanted to learn something. I always liked web pages so i thought id get into web development.
Did some research, found out that the fastest way to go was to learn ruby on rails. I followed a tutorial i found online, and literally pushed myself through it. There were times when there where things i didnt understand, and when it was really bad, but i pushed myself through it and i finished the tutorial.
Just finishing the tutorial and learning something new helped me alot. I had already quit smoking and was feeling way better, but after a while i started feeling bad again since i wasnt doing anything after i had finished learning, so i started working on a personal project, creating it from scratch, and just working on it day and night. I worked 14 hours a day, never really leaving my room ( this was during summer vacation ) for a month.
There were many things i didnt understand, but i never gave up and always searched for the solution and read about it until i understood it better. Looking back, there were things i knew could have been done in a better way, but as a first project, im proud of myself, not because it rocks, but because i did not give up.
In the process of starting a new life, i was really lonely. I cut all ties with everyone i knew, since they were all toxic, all i had in my life was ruby on rails and my web application. I wanted to launch it but couldn't due to personal reasons.
Not being able to launch and see something live, something that you worked so hard on, that you put so much effort into, that was devastating to me. I felt as if all my efforts had gone to waste.
And here is what i love most about programming, NOTHING EVER GOES TO WASTE. All that effort you spent on something ? All these all nighters you pulled ? All that frustration from that bug ? It will pay off later. It always does somehow. You get more knowledge and become a better programmer, and sometimes it even gives way to new opportunities and chances you never even expected.
I included my web application in my resume and it helped land me a job as a junior developer in a really nice company. A job that i wouldn't even have dreamed of several months earlier.
Programming and creating something new and learning something new everyday, creating something that people use, that someone else will benefit from and be grateful for, i think we should never take that for granted !
Tl;dr : learning how to code and web development saved my life9 -
Recipe for a Great Programmer:
Ingredients:
-Books for a computer science curriculum from a top university
-Computer
-Headphones
-Internet
-Stress ball
-Pillow
-Lighter fluid
-Food
Directions:
1. Cover computer science books with lighter fluid
2. Light books on fire
3. Use flames to cook an energy-rich meal for the thousands of hours ahead
4. Pick an IDE
5. Choose a project beyond current capabilities. Good ways to push boundaries:
- Unfamiliar domain (e.g. large scale data processing, UI programming, high performance computing, games)
- Exotic programming language
- Larger in scope than any project before
6. Shut up about your IDE
7. Attempt to build
8. Stop procrastinating on Hacker News
9. Re-attempt to build
10. Squeeze stress ball and scream into pillow as necessary to keep sanity
When stuck:
- Paste stack traces into Google
- Find appropriate mailing list to get guidance
- Realize that real learning happens when you are stuck, uncomfortable, and/or frustrated
- Seek out books, classes, or other resources AFTER you have a good understanding of your deficiencies
11. Repeat #4 to #10 for at least 10 years
12. Results guaranteed! (to the same extent static types guarantee bug-free programs)
source: nathanmarz.com4 -
Worst dev team failure I've experienced?
One of several.
Around 2012, a team of devs were tasked to convert a ASPX service to WCF that had one responsibility, returning product data (description, price, availability, etc...simple stuff)
No complex searching, just pass the ID, you get the response.
I was the original developer of the ASPX service, which API was an XML request and returned an XML response. The 'powers-that-be' decided anything XML was evil and had to be purged from the planet. If this thought bubble popped up over your head "Wait a sec...doesn't WCF transmit everything via SOAP, which is XML?", yes, but in their minds SOAP wasn't XML. That's not the worst WTF of this story.
The team, 3 developers, 2 DBAs, network administrators, several web developers, worked on the conversion for about 9 months using the Waterfall method (3~5 months was mostly in meetings and very basic prototyping) and using a test-first approach (their own flavor of TDD). The 'go live' day was to occur at 3:00AM and mandatory that nearly the entire department be on-sight (including the department VP) and available to help troubleshoot any system issues.
3:00AM - Teams start their deployments
3:05AM - Thousands and thousands of errors from all kinds of sources (web exceptions, database exceptions, server exceptions, etc), site goes down, teams roll everything back.
3:30AM - The primary developer remembered he made a last minute change to a stored procedure parameter that hadn't been pushed to production, which caused a side-affect across several layers of their stack.
4:00AM - The developer found his bug, but the manager decided it would be better if everyone went home and get a fresh look at the problem at 8:00AM (yes, he expected everyone to be back in the office at 8:00AM).
About a month later, the team scheduled another 3:00AM deployment (VP was present again), confident that introducing mocking into their testing pipeline would fix any database related errors.
3:00AM - Team starts their deployments.
3:30AM - No major errors, things seem to be going well. High fives, cheers..manager tells everyone to head home.
3:35AM - Site crashes, like white page, no response from the servers kind of crash. Resetting IIS on the servers works, but only for around 10 minutes or so.
4:00AM - Team rolls back, manager is clearly pissed at this point, "Nobody is going fucking home until we figure this out!!"
6:00AM - Diagnostics found the WCF client was causing the server to run out of resources, with a mix of clogging up server bandwidth, and a sprinkle of N+1 scaling problem. Manager lets everyone go home, but be back in the office at 8:00AM to develop a plan so this *never* happens again.
About 2 months later, a 'real' development+integration environment (previously, any+all integration tests were on the developer's machine) and the team scheduled a 6:00AM deployment, but at a much, much smaller scale with just the 3 development team members.
Why? Because the manager 'froze' changes to the ASPX service, the web team still needed various enhancements, so they bypassed the service (not using the ASPX service at all) and wrote their own SQL scripts that hit the database directly and utilized AppFabric/Velocity caching to allow the site to scale. There were only a couple client application using the ASPX service that needed to be converted, so deploying at 6:00AM gave everyone a couple of hours before users got into the office. Service deployed, worked like a champ.
A week later the VP schedules a celebration for the successful migration to WCF. Pizza, cake, the works. The 3 team members received awards (and a envelope, which probably equaled some $$$) and the entire team received a custom Benchmade pocket knife to remember this project's success. Myself and several others just stared at each other, not knowing what to say.
Later, my manager pulls several of us into a conference room
Me: "What the hell? This is one of the biggest failures I've been apart of. We got rewarded for thousands and thousands of dollars of wasted time."
<others expressed the same and expletive sediments>
Mgr: "I know..I know...but that's the story we have to stick with. If the company realizes what a fucking mess this is, we could all be fired."
Me: "What?!! All of us?!"
Mgr: "Well, shit rolls downhill. Dept-Mgr-John is ready to fire anyone he felt could make him look bad, which is why I pulled you guys in here. The other sheep out there will go along with anything he says and more than happy to throw you under the bus. Keep your head down until this blows over. Say nothing."11 -
Random fact #0
Back in the days of SEGA Saturn, SEGA was really picky in terms of the game stability. All the games that we're about to be released had to pass a series of tests, like for instance they had to run for almost a week without any crash non stop on a real hardware, or withstand cartridge tilting. If it failed, SEGA wouldn't license it and developer had to fix the bugs and re-send it again.
To fool SEGA testers, game devs we're adding exception screens with the fake "hidden content". Like in Sonic 3D Blast, it presented a screen in the image below and then the level select screen.
So yeah, it's not a bug - it's a feature11 -
A real interaction I just had...
Team Member: "Can you handle this ticket for a bug fix?"
Me: "Whats the problem?"
TM: "We aren't exactly sure..."
Me: "Ok, so can you show it to me?"
TM: "We can't get it to happen again, and when it does the machine freezes and we can't debug it..."
Me: "So, if I find a fix then how do we test to make sure it worked?"
TM: "I'm not sure..."
Then today,
Product Manager: "How's that bug fix going?"
Me: "Well, let's see. The problem still hasn't been defined. I have never been able to recreate the issue. I have a hacky fix in a PR..."
PM: "Great, so we can deploy today?!?"
Me: "No, because we have no way to reproduce or test this issue at all..."
PM: "Do you think your fix will work?"
Me: "Honestly, no. If you're asking for my opinion then you can have it. IMO this is NOT a bug fix but a change to how the system operates altogether. This system was built by someone who didn't know what they are doing. We have done our best with it but it is a house of cards. And now the solution is to replace a card at the bottom layer. It is likely that no matter what fix we do (even when we can fucking test it) that it will topple the house of cards..."
PM: ~Looking at me in disbelief~
Me: "If you ask me for my honest professional opinion then you will get it. Keep that in the future if that honest response was outside what you expected."
PM: "I will do that, thanks for your assessment"
Where do we go from here? God only knows.
Praise Joe Pesci5 -
Mastering git has become the best thing ever. I feel like a real code monkey. Swinging from branch to branch. Eating all the bug-eeee eeee ahhhhh oooh aaaaaaAAHHHHHH!2
-
Some days I feel like I work in a different universe.
Last night our alerting system sent out a dept. wide email regarding a high number of errors coming from the web site.
Email shows the number of errors and a summary of the error messages.
Ex. 60 errors
59 Object reference not set to an instance of an object
1 The remote server returned an unexpected response: (413) Request Entity Too Large
Web team responds to the email..
"Order processing team's service is returning a 413 error. I'll fill out a corrective action ticket in the morning to address that error in their service. "
Those tickets are taken pretty seriously by upper mgmt, so I thought someone on the order processing team would point out the 1 error vs. 59 (coming from the web team's code).
Two hours go by, nobody responds, so I decide to jump into something that was none of my business.
"Am I missing something? Can everyone see the 59 null reference exceptions? The 413 exception only occurred once. It was the null reference exceptions that triggered the alert. Looking back at the logs, the site has been bleeding null reference exceptions for hours. Not enough for an alert, but there appears to be a bug that needs to be looked into."
After a dept. managers meeting this morning:
MyBoss: "Whoa..you kicked the hornets nest with your response last night."
Me: "Good. What happened?"
<Dan dept VP, Jake web dept mgr>
MyBoss: "Dan asked Jake if they were going to fix the null reference exceptions and Jake got pissed. Said the null reference errors were caused by the 413 error."
Me: "How does he know that? They don't log any stack traces. I don't think those two systems don't even talk to one another."
<boss laughs>
MyBoss:"That's what Dan asked!..oh..then Jake started in on the alert thresholds were too low, and we need to look into fixing your alerting code."
Me: "What!? Good Lord, tell me you chimed in."
MyBoss: "Didn't have to. Dan starting laughing and said there better be a ticket submitted on their service within the next hour. Then Jake walked out of the meeting. Oh boy, he was pissed."
Me: "I don't understand how they operate over there. It's a different universe.
MyBoss: "Since the alert was for their system, nobody looked at the details. I know I didn't. If you didn't respond pointing out the real problem, they would have passed the buck to the other team and wasted hours chasing a non-existent problem. Now they have to take resources away from their main project and answer to the VP for the delay. I'm sure they are prefixing your name right now with 'that asshole'"
Me: "Not the first, won't be the last."2 -
The Absolutely True Story of a Real Programmer Who Never Learned C.
I have a young friend named Sam who is quite a programming prodigy. Sam does know C! I need to make this clear: he’s not the titular programmer.
But a couple years ago Sam told me a story about a different programmer who never learned C, and I liked it so much that right on the spot I asked his permission to repeat it. (I could never just steal such a tale.)
Sam wasn’t always a programmer—actually he started in his later teens, in part because he was more of a jock, and in part because he was related to programmers and wanted to do his own thing. But, like all great programmers, once he was bitten by the bug he immersed himself completely in it.
One day Sam happened to be talking programming with his uncle, who was also a programmer but from way, way back.
“Hey,” said Sam, “I’m learning this language called C. You must know a lot of languages, did you ever study C?”
“No,” said the uncle, to Sam’s surprise. “I am one of the very few programmers who never had to learn C.”
“Because I wrote it.”
Oh, Sam’s last name is Ritchie.
What I love about this story is the idea of Dennis waiting Sam’s entire life to deliver this zinger. Just imagine sitting on a line that good, watching your nephew grow up and waiting, waiting until the one day he finally starts learning to code. Did he work on the line in his head at night? Like, “Hmm, how should I word it so I can deliver the punch line perfectly? Should I say ‘I never took a class on C?’ Nah, too awkward…”
The great thing about geniuses is how much effort they put into everything.
Courtesy : Wil Shiply.5 -
Part 2 of my boss's stupidity
~FreezeFrame.mp4
*Wait! Wait! Wait! What!?*
*You actually reinstated my class?*
~anotherReverseRecordSound.mp3
-------------
Another late night and another set of pulls I needed to do in order to get caught up with the rest of the world.
I had just finished up dealing with a strange bug and had finally fixed it.
"I need to get caught up with my boss," I thought to myself.
I quickly git pull from my boss and a merge conflict occurs.
"Oh, ok that's fine." I say, "that's nothing too odd."
~FreezeFrame.mp4
"Wait! Wait! Wait! What!?" I shouted inside my head
I couldn't believe what I was seeing, there was a huge chunk of code that was being completely replaced.
"You're actually reinstating my class?" I nearly shouted.
"What!?" my girlfriend shouts from the other room.
"Come here a second, let me show you what it is," I shout back.
She rushes in real quickly, and I point at the code that was being changed.
"Remember that really long ass rant I made about how my boss had completely removed all of my code because he thought it was spaghetti?" I said
"Yeah?" she replied quickly, visually astounded by my excitement.
"He fucking put my class back into the code!!!"
"Wow!... I guess you beat him, huh?" she said.
"You better fucking believe it, but you want to know what's worse?"
She cocked her head sideways, "what?"
"He fucking built it worse than my original! The names don't properly reflect what he is trying do and he's doing a failure job at trying to copy what I had done in my original. He clearly doesn't know about git revert" I said between bouts of laughter.
"This is too good, I'm putting this on devRant!" I said
"I'm not in the least bit surprised that you would." She replied back.
Related Rant:
https://devrant.com/rants/1001888/...undefined beat them at their game don't even call my code shit who's right and who's wrong i know what i said16 -
!rant & story_time
This happend to the startup I was working for at ~2011. I was a junior Android dev, working on a very popular app.
During experiments for a new feature, I discovered that the system AlarmManager has a serious bug - you can set a repeating alarm with interval=0ms. If your app takes more then 1 ms to handle the Intent, then the AlarmManager will start to fill up the intent Queue, with unexpected results to the OS. causing it to slow down, and reboot when it ran out of Ram. Why? my guess was that because the AlarmManager was part of the OS, then any issues caused by it caused the system process to ran out of ram, crashing it, and the whole system with it. the real kicker was that even after a reboot, the AlarmManager still had Intents queued, causing the device to bootloop for a while, untill the queue was cleared. My boss decided to report the problem to google, as this was an issue in the OS. I built an example app, that caused the crash 10-30 seconds after starting, and submitted to Google. Google responded later that day with "not an issue, no one will ever do this".
Well... At this point I decided to review the autoupdate feature in our app, to make sure this will not happen to us. We just released a new feature where a user can set an update schedule option in the app settings - where you could setup a daily, weekly, or hourly update for the app. after reviewing it, It looked good, and the issue was not triggered in the manual QA I did. So, it was all good. And we released an updated version to the store.
After we did an update-install, we discoverd that, there was a provlem reading the previous version SharedPrefs value for the update schdule settings, and the value defaulted to 0...
the result was, our app caused all our users to go into a bootloop, and because the alarm was reset when the devices booted up, the bootloop could only be solved in a factory reset, or removing our app, before the device rebooted, and then waiting a few reboot cycles.
We lost 50 places in the market, and it took us 6 months to get back to where we were.
It was not my fault, but it sucked big time!4 -
I've been working exclusively from home for over 2 years now. I've been seeing several posts from people talking about adjusting to working from home, so I figured I would compile a list of tips I've learned over the years to help make the adjustment easier for some people.
1) Limit as many distractions as possible. WFH makes it much easier to get distracted. If you have roommates/family members at home, ask them politely to leave you alone while you're working. Make sure the TV is turned off, put your phone on silent, etc.
2) Take regular breaks. I find it easier to accidentally go hours without taking a real break from work. Try working in half hour intervals, and then taking 5-10 minute breaks. Read an article, watch a youtube video, grab some coffee/tea, etc.
3) When you eat lunch, eat it away from your computer. I often find myself eating lunch trying to wrap up fixing a bug, which makes it feel like I never really "took a lunch." Lately I've been trying to step away and do something else completely unrelated to work.
4) Get ready for work like you normally would. It's very easy to wake up, throw on your favorite pair of sweats and sit at the computer with messy hair half awake "ready" to start the day. Instead try doing your normal morning routine before sitting at your computer. It will help your mind and body go into "it's time to work" mode.
5) Keep your work area clean. I find it very difficult to work when my workspace is cluttered. Studies have shown working in a messy place tend to make us less efficient.
6) Keep your work area work related. Try to only have the things you need for work in your workspace. If you're working from your personal computer this can be difficult. I always end up with camera/music equipment left over from the previous night's photo editing/jam sessions. So try to clean off your desk when you're done for the night so it's ready for work in the morning.
7) Prepare for meetings. I have alarms set 10 minutes in advance so I can go from programming mode to meeting mode. During this time I'll go to the bathroom, grab a snack, water, mute all my email notifications, close any non essential programs, get my code ready if I need to present it.
Stuff is hard & stressful right now, but hopefully these tips will make it a bit easier. If anyone else has any good tips please share them.5 -
I just had a rather stressful morning. I should've known something was up by the sounds of thunder as I walked into the office.
I sat down and checked my emails. There was an email from the boss who was away on a business trip. The subject read, "CRITICAL BUG" and my name was mentioned. "Great...No time for coffee", was my first thought.
I began searching commits to see when and how the bug came to be. "SHIT! It was my fault", I said aloud.
(A bit of backstory, I am Irish, working in Germany with a B2 level of the German language.)
I now had to communicate the problem quickly with a senior developer who is Russian. He can't speak English well and I would not expect him to speak it. We are in Germany after all. I tried my best to communicate the issue, but I found it so difficult to understand his German in a Russian accent. Normally, in the office I speak German except when it is urgent and I must explain a problem in greater detail through English. I got past that obstacle, however, the real challenge of fixing the bug awaited.
After 2 hours of coding, I had a solution and committed it to the master branch. All the while, I had been replying to the bosses emails with updates, probably with many grammer mistakes.
We have no dedicated testers here and the code is written in a way which makes it very difficult to test (i.e. it was written many years ago). When I had initially written the code, I tested rigorously and found no issues.
Just needed to rant. I need a coffee break now...4 -
Okay, story time.
Back during 2016, I decided to do a little experiment to test the viability of multithreading in a JavaScript server stack, and I'm not talking about the Node.js way of queuing I/O on background threads, or about WebWorkers that box and convert your arguments to JSON and back during a simple call across two JS contexts.
I'm talking about JavaScript code running concurrently on all cores. I'm talking about replacing the god-awful single-threaded event loop of ECMAScript – the biggest bottleneck in software history – with an honest-to-god, lock-free thread-pool scheduler that executes JS code in parallel, on all cores.
I'm talking about concurrent access to shared mutable state – a big, rightfully-hated mess when done badly – in JavaScript.
This rant is about the many mistakes I made at the time, specifically the biggest – but not the first – of which: publishing some preliminary results very early on.
Every time I showed my work to a JavaScript developer, I'd get negative feedback. Like, unjustified hatred and immediate denial, or outright rejection of the entire concept. Some were even adamantly trying to discourage me from this project.
So I posted a sarcastic question to the Software Engineering Stack Exchange, which was originally worded differently to reflect my frustration, but was later edited by mods to be more serious.
You can see the responses for yourself here: https://goo.gl/poHKpK
Most of the serious answers were along the lines of "multithreading is hard". The top voted response started with this statement: "1) Multithreading is extremely hard, and unfortunately the way you've presented this idea so far implies you're severely underestimating how hard it is."
While I'll admit that my presentation was initially lacking, I later made an entire page to explain the synchronisation mechanism in place, and you can read more about it here, if you're interested:
http://nexusjs.com/architecture/
But what really shocked me was that I had never understood the mindset that all the naysayers adopted until I read that response.
Because the bottom-line of that entire response is an argument: an argument against change.
The average JavaScript developer doesn't want a multithreaded server platform for JavaScript because it means a change of the status quo.
And this is exactly why I started this project. I wanted a highly performant JavaScript platform for servers that's more suitable for real-time applications like transcoding, video streaming, and machine learning.
Nexus does not and will not hold your hand. It will not repeat Node's mistakes and give you nice ways to shoot yourself in the foot later, like `process.on('uncaughtException', ...)` for a catch-all global error handling solution.
No, an uncaught exception will be dealt with like any other self-respecting language: by not ignoring the problem and pretending it doesn't exist. If you write bad code, your program will crash, and you can't rectify a bug in your code by ignoring its presence entirely and using duct tape to scrape something together.
Back on the topic of multithreading, though. Multithreading is known to be hard, that's true. But how do you deal with a difficult solution? You simplify it and break it down, not just disregard it completely; because multithreading has its great advantages, too.
Like, how about we talk performance?
How about distributed algorithms that don't waste 40% of their computing power on agent communication and pointless overhead (like the serialisation/deserialisation of messages across the execution boundary for every single call)?
How about vertical scaling without forking the entire address space (and thus multiplying your application's memory consumption by the number of cores you wish to use)?
How about utilising logical CPUs to the fullest extent, and allowing them to execute JavaScript? Something that isn't even possible with the current model implemented by Node?
Some will say that the performance gains aren't worth the risk. That the possibility of race conditions and deadlocks aren't worth it.
That's the point of cooperative multithreading. It is a way to smartly work around these issues.
If you use promises, they will execute in parallel, to the best of the scheduler's abilities, and if you chain them then they will run consecutively as planned according to their dependency graph.
If your code doesn't access global variables or shared closure variables, or your promises only deal with their provided inputs without side-effects, then no contention will *ever* occur.
If you only read and never modify globals, no contention will ever occur.
Are you seeing the same trend I'm seeing?
Good JavaScript programming practices miraculously coincide with the best practices of thread-safety.
When someone says we shouldn't use multithreading because it's hard, do you know what I like to say to that?
"To multithread, you need a pair."18 -
Commit Message Part2:
6528fff Code was clean until manager requested to fuck it up
241b35f Who knows WTF?!
4381a32 Argh! About to give up :(
c3bf1a9 more debug... who overwrote!
2d68d6d Fixed a bug cause Maciej said to
b112c1a This branch is so dirty, even your mom can't clean it.
bb456d4 Shit code!
4878b46 Copy-paste to fix previous copy-paste
e2c7e87 A fix I believe, not like I tested or anything
f56109f derpherp
e4b8f4c formatted all
3691208 I'm just a grunt. Don't blame me for this awful PoS.
0888b69 just checking if git is working properly...
62741aa I'm too old for this shit!
0735196 COMMIT ALL THE FILES!
09caccf I CAN HAZ PYTHON, I CAN HAZ INDENTS
1e1cda8 giggle.
ab70bde Fixed errors
934436d Now added delete for real
5f84e30 My bad
99baff8 CHRIS, WE WENT OVER THIS. C++ IO SUCKS.
953473d final commit.
f0c3b57 Just committing so I can go home
4e5ce4e yolo push
deb4e3b I CAN HAZ PYTHON, I CAN HAZ INDENTS
710c06a Commit committed....
3c45e67 it is hump day _^_
4487788 Committing in accordance with the prophecy.
bf86e7e This solves it.
4804f68 FONDLED THE CODE
051d42e REALLY FUCKING FIXED5 -
writing library code is hard.
there are sooo many details that go into writing good libraries:
designing intuitive and powerful apis
deciding good api option defaults, disallowing or warning for illegal operations
knowing when to throw, knowing when to warn/log
handling edge cases
having good code coverage with tests that doesn't suck shit, while ensuring thry don't take a hundred years to run
making the code easy to read, to maintain, robust
and also not vulnerable, which is probably the most overlooked quality.
"too many classes, too little classes"
the functions do too much it's hard to follow them
or the functions are so well abstracted, that every function has 1 line of code, resulting in code that is even harder to understand or debug (have fun drowning in those immense stack traces)
don't forget to be disciplined about the documentation.
most of these things are
deeply affected by the ecosystem, the tools of the language you're writing this in:
like 5 years ago I hated coding in nodejs, because I didn't know about linters, and now we have tools like eslint or babel, so it's more passable now
but now dealing with webpack/babel configs and plugins can literally obliterate your asshole.
some languages don't even have a stable line by line debugger (hard pass for me)
then there's also the several phases of the project:
you first conceive the idea, the api, and try to implement it, write some md's of usage examples.
as you do that, you iterate on the api, you notice that it could better, so you redesign it. once, twice, thrice.
so at that point you're spending days, weeks on this side project, and your boss is like "what the fuck are you doing right now?"
then, you reach fuckinnnnng 0.1.0, with a "frozen" api, put it on github with a shitton of badges like the badge whore you are.
then you drop it on forums, and slack communities and irc, and what do you get?
half of the community wants to ban you for doing self promotion
the other half thinks either
a) your library api is shitty
b) has no real need for it
c) "why reinvent the wheel bruh"
that's one scenario,
the other scenario is the project starts to get traction.
people start to star it and shit.
but now you have one peoblem you didn't have before: humans.
all sorts of shit:
people treating you like shit as if they were premium users.
people posting majestically written issues with titles like "people help, me no work, here" with bodies like "HAAAAAAAAAALP".
and if you have the blessing to work in the current js ecosystem, issues like "this doesn't work with esm, unpkg, cdnjs, babel, webpack, parcel, buble, A BROWSER".
with some occasional lunatic complaining about IE 4 having a very weird, obscure bug.
not the best prospect either.3 -
Programmer Influencers piss me off to Jupiter and back.
The ones who talk about just being a programmer, and don't do normal tutorials and solve a real-world problem and demonstrate it.
"i iNcREaSeD mY pRoDuCTiViTy bY 90%. hErE's HoW"
"tOp 10 lAnGuAGeS yOu sHoUlD lEaRn iN 2023"
"dAy iN thE LiFe oF a SoFtWaRe EnGiNeEr"
"HeRE's hOw yOu cAn wRiTe bUg fReE cOdE"13 -
a missing semi colon is overated, the white space character at the end of a string is the real OG. Been hunting a bug for three days because of it!!15
-
Another real-world argument for why I always say git is worth learning properly.
Had to track a really weird bug down today. Had no idea where it came from, how long it'd been in the code and hadn't the foggiest what was causing it. Realistically it could have been introduced any time in the last year or two, and that's tens of thousands of commits in this repo.
Git to the rescue. Knocked up a quick script to test the case in question, fed it into "git bisect run", and 30 seconds later git found the exact (small) commit that caused the issue.
It's a brilliant part of git, yet it seems like almost no-one I know uses it. Some use "git bisect", but using "git bisect run" and passing a script to it seems to be alien to most - yet it's probably my most used tool when it comes to tracking down bugs like these.8 -
Today is the first time my pc fully crashed. I keep always everything updated and never had a problem. I didn't know what went wrong. After I opened my pc up I found out that a mouse family was living in my pc. Maybe I should clean the hardware more8
-
Is there a lot of people in the same boat as me?
I'm a self taught guy. Never in my life had I a senior developer i could bug for answers. Every little bug and inconveniece i have ever experienced - left alone to cope and find solutions. I just feel like sooo burned out. I have some large complex system questions building up and googling doesnt give me the answers anymore. This is frustrating. I'm supposed to be a mid level developer, but I'm acting as a senior to one of my colleagues even though I have so many questions and doubts in my mind. I think I developed a lot of plot holes in my knowledge and I have no real way to know which are which. I feel I dont know so much. Fuck. Where do I go from here?15 -
Think about it:
It wouldn't be a real "bug" if it needed a 200 line fix. These little insects are so tiny they can easily hide even behind a misplaced apostrophe.
(In response to people getting upset about 1 line being enough to fix a 3 day problem)2 -
I've been working on implementing a fairly large feature on a project at work--
**Sorry. I should rephrase that**
I've been *trying* to work on implementing a fairly large feature on a project at work.
It's slightly complicated because I'm not as "in the know" with the project as I should be. I get tossed around projects a lot as the only designer+developer so I've got my hands in a lot of buckets... Or git repos I should say... My source tree has a lot of tabs open and each project is run by someone with their own ideologies on how stuff should be done and laid out and what not. Basically jumping between these projects leaves you mildly capable on all of them but not amazing at any of individual one them--
--I digress.
There's a bug I've been trying to fix.
--Stupid simple bug, literally just a casting issue or something but there's so much data in this one object that it's taking a few solid minutes of concentration to figure out which variable is busting it all up. It shouldn't take long to fix...
But it has. It has taken 4 days.
FOUR. DAYS.
...To fix what is basically a null reference exception.
Every time I sit down to work on this bug real quick I get pulled away to do a wireframe or change a flow chart or diagram or colour or print styling.
Every. God. Damn. Time.
4 days. Soon to be 5.
My commits are real low at this point guys.
Please boss man, just let me code...4 -
This is the last straw. I am so done with Chrome.
…
I woke up AGAIN this morning to my MacBook shining away brightly, having not gone to sleep the ENTIRE night. I did some better research this time and discovered it's actually Chrome that is causing this.
Yes Chrome is deciding whether my MacBook goes to sleep or not.
I am not ok with this. Worse, it doesn't even have any ability to change this behavior. It's basically a hidden "feature" of Chrome: it wastes your hydro too!
This is not the first time this has happened either. Last time my MacBook wasn't properly plugged in and it completely drained the battery, shutting it right off. I ranted about that already.
But I am just SO fucking livid about this right now. What on EARTH is going through google's mind that they think this is in any way even REMOTELY acceptable?
I've already filed a bug report but I think this is the last straw. I am just sick to death of Chrome. This bug is literally costing me money and damaging my property.
Shove it right up your fucking ass, Google. Right up there and twist it around.
I'm switching back to a real browser.32 -
Watch out for these fucking bug bounty idiots.
Some time back I got an email from one shortly after making a website live. Didn't find anything major and just ran a simple tool that can suggest security improvements simply loading the landing page for the site.
Might be useful for some people but not so much for me.
It's the same kind of security tool you can search for, run it and it mostly just checks things like HTTP headers. A harmless surface test. Was nice, polite and didn't demand anything but linked to their profile where you can give them some rep on a system that gamifies security bug hunting.
It's rendering services without being asked like when someone washes your windscreen while stopped at traffic but no demands and no real harm done. Spammed.
I had another one recently though that was a total disgrace.
"I'm a web security Analyst. My Job is to do penetration testing in websites to make them secure."
"While testing your site I found some critical vulnerabilities (bugs) in your site which need to be mitigated."
"If you have a bug bounty program, kindly let me know where I should report those issues."
"Waiting for response."
It immediately stands out that this person is asking for pay before disclosing vulnerabilities but this ends up being stupid on so many other levels.
The second thing that stands out is that he says he's doing a penetration test. This is illegal in most major countries. Even attempting to penetrate a system without consent is illegal.
In many cases if it's trivial or safe no harm no foul but in this case I take a look at what he's sending and he's really trying to hack the site. Sending all kinds of junk data and sending things to try to inject that if they did get through could cause damage or provide sensitive data such as trying SQL injects to get user data.
It doesn't matter the intent it's breaking criminal law and when there's the potential for damages that's serious.
It cannot be understated how unprofessional this is. Irrespective of intent, being a self proclaimed "whitehat" or "ethical hacker" if they test this on a site and some of the commands they sent my way had worked then that would have been a data breach.
These weren't commands to see if something was possible, they were commands to extract data. If some random person from Pakistan extracts sensitive data then that's a breach that has to be reported and disclosed to users with the potential for fines and other consequences.
The sad thing is looking at the logs he's doing it all manually. Copying and pasting extremely specific snippets into all the input boxes of hacked with nothing to do with the stack in use. He can't get that many hits that way.4 -
today I experienced real-time bug fixing and deployment..
The phone was attached to the debugger, the client is using the app, me catching the logs.
Client: oh here is wrong behavior.
Me: *tapping on keyboard, then* ok try now please..
😅2 -
Finally after one year I understood how to carry out my job. I should do exactly NOTHING. I stopped completely organizing the team, solving bugs, helping the team developing and solving problems, explore and try stupid things said by CEO, PM and consultants.
I stopped for 2 months now and nothing happened.
I work remotely, nobody knows if I'm working or not, because nobody cares really about priorities, bugs, customers or products development.
I gain 10K$ (ten thousand) per month.
I attend skype meeting once per week or less. I say yes to everything, nobody gives a shit to what I say, even if they consider me the technical director. Actually in the meetings I only take care of being considered the technical director.
I achieved the mythical 4 hours working week.
I keep skype open in all my devices in order to answer promptly in case of problem, wherever I'm am, that's the most important thing right now.
I attended some meeting from the toilet or from the bedroom.
It was hard. To understand that the board is only after the next funding and not looking to develop a real product. It's hard to pretend helping people while thinking inside you "fuck you".
You have to let go the "guilt": if you can't login, I KNOW that is my fault, that there is a bug, that is possible to solve it, that resources and planning are needed etc. That's guilt. Just let go and say "next release" and never include it in the next release.
In this way I discovered that some users are paying the application even if they can't login.
The company is not going to disappear in the next 5 years. On the contrary, it's going to receive more money.
So the only "bad" thing is, what will I write in my CV in 5 years?19 -
Fuck. I can't take this shit anymore.
There was a project where we had to implement third-party system for government agency processes management. For some reason, probably because my work is cheap for my boss, the task was assigned to me. Just as a reminder, I'm a .NET Dev. Zero experience in server management. Zero experience in external services implementation.
Anyway, system producent, also an government agency, got angry, becasue they can only earn money on implementation. They have to give the software to other agencies for free. Because of that I've got client program, incomplete documentation and broken scripts for database creation. It took me 2 months to get it all to work but at the end client was happy, my boss got paid and I've got 500 PLN (~130 USD) bonus.
Everything was fine for a while, but after a month server has started freezing everyday, some time before 7 am. The only way I found to make it work again was to restore snapshot made everyday at 10 pm. For a month I was waking up earlier and restored snapshot, and after that my boss took it upon himself. I tried few times to find a bug and fix it, but to no effect. Even person with much more experience with it tried to help but also couldn't find anything.
My solution? Copy all the data and configuration, create new machine, copy everything and check if the problem persists. If not, kill old server. Client won't even notice. But nooooooooo... It would cost my boss a bit of money and I'd need to work on it and he can't let it be, because I'm the only developer working on his flagship product. He'd rather wake up everyday and restore snapshot. Okay, as you wish.
And today, finally, everything went downhill. Snapshot wasn't created, server froze, backup can't be created. Nothing can be done. Client is furious, because they have had reported this problem and a few times restoration was too late and they couldn't work. No one knows how to fix it, I'm not working today (I'm still studying and am available only 2 days) and situation is really shitty.
BUT SURE. ITS BETTER TO RESTORE SERVER EVERYDAY THAN JUST FUCKING FIX IT.
Oh, also, there's no staging or any other real backup. We have snapshots for each day and that's that. Boss' order. Why do I even care...7 -
Manager: Hey software engineer, how's the project going?
Software Engineer: Good, just debugging my code.
Manager: Debugging? What kind of bug are you trying to fix?
Software Engineer: The ones that make my computer turn into a lava lamp.
Manager: Ha ha, very funny. But seriously, how can I help?
Software Engineer: Well, I need a bigger monitor. My current one doesn't have enough real estate to display all the errors.
Manager: How about a second monitor?
Software Engineer: No, I need a bigger universe.
Manager: I'll see what I can do. In the meantime, keep coding. We have a deadline to meet.
Software Engineer: No problem, I have all the time in the world. I just need to find a way to slow down time.
Manager: I wish I had your optimism. Just let me know if you need anything else.
Software Engineer: How about a unicorn? I heard they're good at coding.
Manager: I'll see what I can do, but in the meantime, stick to using a keyboard.3 -
Here's a real tip for people new to the industry.
It's one of those things that's been said over and over again but very few can really seem to employ. I suggest you learn it /well/.
You are not your code. Criticisms of your code, ideas, or your thought processes, is not a criticism of YOU. You absolutely cannot take criticisms of your work personally.
We are engineers. We strive to seek the best solution at all times.
If someone has found a problem with your code or with an idea or whatnot, it is coming from a place of "this is not the best solution", NOT "you're an idiot".
It's coming from a place of "I'm closing this PR because it is not a change I feel suits this project", NOT "I'm closing this PR because it's coming from a woman".
It's coming from a place of "This feature request is ridiculous/this bug is not actually a bug", NOT "you're a fucking idiot, fuck you".
It's coming from a place of "I've already had to address this in a number of issues before and it's eaten up a considerable amount of my time already", NOT "I don't even know you and this I don't have time for a nobody".
You do not get to be bitchy to maintainers because they denied your request. It's not a reflection of you at all. But if you're arguing with someone who has maintained a piece of code for almost a decade, and they're telling you something authoritative, believe them. They're probably smarter than you on this subject. They've probably thought about it more. They've probably seen their code used in many different places. They have more experience than you with that codebase in almost all cases.
Believe me, if we cared about who was behind all of the issues, pull requests, etc. we get, we'd get NOTHING done. Stop taking shit personally. It's a skill, not a defense mechanism. Nobody has the time to sugar coat every little thing.
Let's normalize directness and stop wasting time during technical discussions into opportunities for ego-stroking and circle-jerking and back-patting.8 -
When will I fuckin learn that
a) customers lie
b) customers are sloppy
c) customers are wrong
d) customers do not do their work (properly)
e) customers want us to do their (dirty) work
f) possibly all of the freakinly above?! + khm....
They will fuckin aaaalwaaaays say sth is not working after the update..
And I will alwaaaays assume I fucked up something..even if I didn't touch that part of the code/data..
And almost aaaaalways it turns out that the bug they complain about is how the system worked (or didn't work) before the update and/or some fuckup from their side..
Anyhow, I rushed over, grabbed the files went testing in dev..wtf, output is different, mine is ok, theirs is..wtf is that shit?!
Transfer newly built dll to test..same shit as on prod..wtf?! How?!
I assumed they have thing A correctly linked to thing B.. ofc thing A was linked to thing C in their case and in another case (our test) to correct thing B..
I got chillies when grabbing files, that
I should have tripple checked that they didn't fuck up something on the link part, but I just assumed they know what they were doing & that they checked they linked correct files with correct content already, before being pissy that the update fucked up things.. riiiight!! :/
I wanted to find solutions to this fuckup asap so I disregarded my gut feeling..yet again!! Fuuuck!
I've spent too much time trying to find ways to fix a bug that wasn't even a real bug to begin with.. :/
Fuuuuuck!!
So yeah, always treat the customers like they are 3yrs old & have no clue what they are doing & check exactly wtf they were indeed trying to do..it will save you time & nerves..
And note to self: reread this shit daily!! And imprint it in your brain that everything is not always your fault!!11 -
> be me
> work on a nice project with friends: A, B and C
> joined in a bit later, but before any real progress was made + we scrap the existing code, because it was Python2 or something
> decide on a framework
> A wants to create one himself, instead of using an existing one
> we fight for a little, but let A do his thing
> 2 months later
> been waiting the whole time
> +1000 lines on github, but still not finished
> "Wouldn't it be better if we would use the normal framework?"
> "No, mine is hand-crafted for that task"
> "But it is full of bugs"
> "If you find one major bug, we'll ditch my framework"
> finds major bug
> "That's fixed, just give me a min-"
> finds another bug
> "Thats just because you don't know how to use the framework"
- Documentation inside ONE gigantic README
- Library is missing the core features we needed/those which are implemented don't work
- Both B and C were on my side from the beginning (in that we should use "Already Existing Fully Documented Popular And tested Framework Which Does Everything We Need")
> "But i dont understand this framework so explain it to me"
> send him a few code examples + a tutorial??? (dont remember if i actually sent im the tutorial before i left)
> "explain it to me, i can't understand it"
> I CANT UNDERSTAND YOUR FUCKING FRAMEWORK DUMBASS
> ragequitted the server+project
To this day i still don't know, which framework they are using..
Also that Python 2 code in the beginning was because A didnt know the difference and copied (yes by hand) the code from atom to github without testing anything.4 -
Oh man. I have been waiting for this one. Gather round lil' chil'rens it's story time.
So. I was looking for a new project because my old one was wrapping up and that's what my company does. So I was offered some simulation type stuff. I was like "sure why not, I want to make a computer pretend it isn't a computer no more." Side note I should not be a psychiatrist.
So, prior to coming on to this job I felt stifled by my old job's process. This job was a smaller team so I thought the process would be a little smoother. But it turned out they had NO process. Like they had a bug tracking system and they held the meeting to add things to the system, but that was just fucking lip service to a process.
First of all, they used the local disk on the test box as their version control. and had no real scheme as to how they organized it. We had a CM tool but gods forbid they ever fucking use it. I would be handed problem reports and interface change requests, write a bug to track it, go into the code and about 75% of the time or more it had already been worked. However, there was no record of it being worked and I would have to fucking hunt that shit down in a terribly shitty baseline (standardize your gods damned indentation for fuck's sake) and half the time only found out it was done because when I finally located the piece of code that needed changing, the work was already done.
Then, on top of all that, they ask me what time I want to come in. I said 10am, they said okay. One day I roll in at 10 and my boss is mad. Because I missed a meeting. That was at 9. That I wasn't told about. He says I can keep coming in at 10am though (I asked and volunteered to help get him up to speed on the things I was working he said it wasn't necessary) so I did, but every time I missed a 9am meeting he would get pissed. I'm like PICK ONE!!! They move the meeting to 9:30am (which is not 10am).
This shit starts affecting my health negatively. Stress is apt to do that. It triggered an anxiety relapse that pushed me back in to therapy for the first time in 7 years. On top of that the air quality in the office is so bad that I am getting back to back sinus infections and I get put on heavy antibiotics that tear up my stomach along with the stress and new meds tearing up my stomach. So one day as I am laid out in pain, I call out sick. Two days in a row. (Such a heinous crime right.) Well I missed a test event, that I wasn't even the primary or secondary on.
So fast forward to the most pissed off I have ever been. I get called in to a meeting with my boss's boss. As it turns out, my coworkers are not satisfied by the work that I'm doing (funny because I thought I was doing pretty good given that my only direction was fix the interface change reports and problem reports. And there was no priority assigned to any of them).
And rather than tell me any of this, they go behind my back to the boss and boss's boss. They tell me I need to communicate (which I did) and ask for help when I need it (I never did). That I missed an important event (that I played no part in and gods forbid I be sick) and that it seemed like I didn't want to be there (I didn't but who WANTS to work a corporate job).
They put me on a performance improvement plan and I jumped to another project. I am much happier now. Old coworkers won't even say hi, not even those I was friendly with, but fuck them anyway.5 -
At one of my former jobs, we devs had to do all sorts of non-dev work, such as writing quotes and even contracts!
The CEO of that company had this naughty habit to contact devs directly without delegating through the CIO. Sure, if it's really urgent like when some system is down because of a bug, go ahead and disturb a dev. But interrupting coders to write some freaking quote? Come on!...
Once, that CEO asked me to stop everything I was doing to write a quote to a customer ASAP, as this was really urgent.
I spent several hours writing that quote. It had to be done right as any specifications in our quotes were used in our agreeements and were referred to in the case of any dispute. So not only were we devs and salesmen in the same time; we also needed to be lawyers.
When I was done and delivered the quote to the CEO, he told me he had no intention to take on that customer in the first place. Instead, he wrote a polite we-are-not-interested e-mail to the customer and cc:d it to me just so that I could read for myself how very sleek a businessman he was.
Me: why did I have to write that quote when you knew all along that you were not going to use it anyway?
Him: It's for your own personal development.
Another naughty habit of that same CEO is that he made "jokes" and remarks that I found inappropriate, such as "You walk like a drunken sailor".
Later, he decided to discontinue our team/product because "it isn't proftable". Well, what do you expect when devs are forced to waste half day completing pointless tasks?!
It was for the better anyway, and I was actually relieved when I left the company. I'm still thinking though, that the real reason he sacked me is that I am too honest and not the docile kind of employee that would be ideal for him. I did question some of my tasks, and worst of all: I didn't laugh at his stupid jokes.1 -
Really fed up with my colleague and possibly my job. Am starting to doubt am cut out to be a developer
Am a junior java dev , been working working for this company for about 2 years now. Although they hired me to be a java dev, they pretty much exclusively had me working on JavaScript crap because none of the other more senior devs wanted to do even so much as poke JS with a long stick....
Oh and the salary was crap but i figured since i had barely 3 years of exp i thought i would stick with it for a while
But a few months ago after seeing other opportunities I got fed up and threatened to quit , already started interviewing etc
Got an offer, not exactly what i wanted but better than where i was. Went to quit but they freaked out and started throwing money at me. They matched and exceed the other salary and promised to addressed the issues that made me want to leave. Ie get me to work more on the java side of the project and have me work with someone more senior who could sort of mentor me, i had been working semi solo on the js shit till then...
The problem is that my supposed mentor is selfish prick... he is the sort of guy who comes in real early, basically he goes to early morning prayer then come in at some ungodly hour and fuckoff home around 3pm
He does all his work early morning then spends the rest of the day with his headphones on stealthily watching youtube, amazon, watching cricket, reading about Palestine , how oppressed muslims are or building a website for some mosque.
I asked him to let me sit with him so that I could just learn how this or that part of the sys worked , he agreed then the very next day comes in and does all the work before i get in at 9 , i asked him how he did it and he tells me oh just read the code.
Its not as simple as that, out codebase is an old pile of non standard legacy dog shit. Nothing works as it should, i tried to go through documentation online for the various stuff we use , but invariably get stuck when i try the usual approach because it turns out the original devs had essentially done a lot of custom hacks and cowboy coding to get stuff working, they screwed around with some of the framework jars & edited libraries to get stuff to work, resulting in some really weird OSGI errors.
My point is that i cant really just "read the code" or google ...
I gotta know a bit more what was actually modified and a lot of this knowledge isn't fucking documented, theres a lot of " ohhh that weird bug yeah yeah that happens cuz x did this hack some years ago to fix this issue and we kinda built on it, yeah we weren't supposed to do that but heyyy what u gonna do, just do this or that instead"
I was asked to set up a web service to export something, since thats his area of expertise and he is suppose to be teaching me the ropes, i asked him to explain where i should start and what would the general workflow be, his response is to tell me to just copy the IMPORT service and rename it to export then "just do it um change it or something" very helpful indeed (building enterprise application here nothing complex at all!!)
He sits right next to me so i can see how much works he actually does, i know when he just idly sitting there so thats when i ask him questions, he always has his earphones on so each time i gotta find a way to get his attention with a poke or a wave, he will give a heavy sigh and a weary look as he removes his headphones, listen to my question then give me the shortest answer possible before IMMEDIATELY turning away and putting his headphones on as fast as possible regardless of whether I actually understood or even heard what he said. If i ask another question ( am talking like an immediate follow up question for a clarification or something) he will
Do the whole sigh + tired look routing to make me know yeah you are disturbing me. ( god was so happy the day he accidentally sat on and broke them)
Yesterday i caught a glance at his screen as i was sitting down and i think he and another dev were talking about me
That am slow with my work and take forever to get into gear.
Starting to have doubts about my own ability n wether am really cut out to be a developer. I know i can work hard but its impossible to do so when you have no clue where to start and unable to look it up since all the custom hacks doesn't really allow any frame of reference.
Feels like am being handicapped and mocked, yesterday i just picked up my gear n left the office.
I never talk ill about my colleagues, whenever i have a 121 with my mgr i always all is fine, x n y are really helpful etc
I tried to indirectly tell my other colleague about this guy, he told me that guy had kinda mentally checked out of this job and was just going through on auto pilot and just laughed it off (they have been working together for almost a decade and a buddies) my other colleague is pretty nice but he usually swamped with work so i feel bad to trouble him.
Am really Fed up with it all7 -
Hey, Unity!
I love you and how your bug system works, but can you polish your errors?
I don't have any experience in programming and I am only a level designer.
I have no idea what this error meant so I begged to my boss crying that this FATAL error popped up.
Then my boss comforted me with pizza and coke.
I just realized that my boss is better than Unity.
I'm sorry, Unity. I was just about to buy the Unity license, but I changed my mind to just use the [personal edition and hack the dark theme by hex edit.
Best regards,
cozyplanes
(* This is a real e-mail sent to Unity Help Center *)8 -
This was some time ago. A Legendary bug appeared. It worked in the dev environment, but not in the test and production environment.
It had been a week since I was working on the issue. I couldn't pinpoint the problem. We CANNOT change the code that was already there, so we needed to override the code that was written. As I was going at it, something happened.
---
Manager: "Hey, it's working now. What did you do?"
Me: *Very confused because I know I was nowhere close to finding the real source of the problem* Oh, it is? Let me check.
Also me: *Goes and check on the test and prod environment and indeed, it's already working*
Also me to the power of three: *Contemplates on life, the meaning of it, of why I am here, who's going to throw out the trash later, asking myself whether my buddies and I will be drinking tonight, only to realize that I am still on the phone with my manager*
Me again: "Oh wow, it's working."
Manager: "Great job. What were the changes in the code?"
Me: "All I did was put console logs and pushed the changes to test and prod if they were producing the same log results."
Manager: "So there were no changes whatsoever, is that what you mean?"
Me: "Yep. I've no idea why it just suddenly worked."
Manager: "Well, as long as it's working! Just remove those logs and deploy them again to the test and prod environment and add 'Test and prod fix' to the commit comment."
Me: "But what if the problem comes up again? I mean technically we haven't resolved the issue. The only change I made were like 20 lines of console logs! "
Manager: "It's working, isn't it? If it becomes a problem, we'll work it out later."
---
I did as I was told, and Lo and Behold, the problem never occurred again.
Was the system playing a joke on me? The system probably felt sorry for me and thought, "Look at this poor fucker, having such a hard time on a problem he can't even comprehend. That idiotic programmer had so many sleepless nights and yet still couldn't find the solution. Guess I gotta do my job and fix it for him. I'm the only one doing the work around here. Pathetic Homo sapiens!"
Don't get me wrong, I'm glad that it's over but..
What the fuck happened?5 -
pms always tell the higher ups that I"don't have passion". I don't know how to show passion for their photoshop mock ups, one line requirements with no definition of done, their talking for hours about "leveraging" and name dropping about the top brass they are schmoozing with. I just ask if we are going to show our MVP to real users and she morphs to the bride of chuckie. I say we ought to pair program and she says it cost double to make a feature. Testing and code reviews are taking too much time but they hover over your shoulder while you try to fix a "mission critical bug" that occurs because they wanted us to skip practices that could have prevented the bug. Woo I feel better now!2
-
The worst part of being a dev
My social dilemma
In a fast paced world where the average human spends at least 6 hours a day with technology, deriving basic entertainment, pleasures and engaging in various activities.
Here we are the developers that have to engage with technology for longer hours for a living , having to keep up with deadlines, immersing our minds in complicated algorithms and then the endless possibilities of entertainment from the machine in so few human hours a day , you wonder how you’d get off, and to top it up, I personally work from home.
And then the dilemma of overcoming different suggestions from various parties in taking a break off, a break off to what you later ask yourself, thus creating the shadow of doubt, splitting the fragile programmer’s mind , trying to solve this imaginary puzzle, “this bug of the mind”.
Then the challenge often arises in creating a balance, telling yourself, just catching up with people with this same technology takes a whole day, or then again quitting my Job, but from my little experience of life, nobody likes a poor visitor, this is actually worse than a “bug” and as I bask in this quagmire, “a little voice in my head keeps singing keep doing what you love doing”.
Like an infinite loop of crazy, spiralling back to these machines, trying the find and fix the balance of normalcy. Always remembered the cool years of college tho, with so much people around and then again that was college.
An then the thought arises, maybe something else might be worth doing, but after so much time spent in building your skills and the enormous joy of programming even typing without looking at the keyboard is a real pleasure, and yeah sure the days are short with the reality of a constant need to survive, remain sane, compete and make the best of life in such short time.
Then how do we know if we have fallen off the so-called “social track”, when we have only lived so little to really comprehend the most parts of life? with such constant stream of unanswered question, you’d realise you shouldn’t have burdened the mind creating such questions in the first place
But then again maybe it gets better, one of the above, the disturbed mind or the situation as whole and yes I try oh I try, I place calls, do some visiting, no relationship tho but with a good perspective in mind.
In this race of life, you sometimes ask yourself would you rather be in a different position, or maybe already put exactly where we belong. For this illusionary fight with self is a fight with reality as a whole and true bliss comes from actually letting go as time and people pass you by.
And my greatest achievement to date aside family and my work is getting into the 1000 club on devRant.2 -
ATTENTION @dfox!!!!
I found a bug in the devRant REST server. When you upload a rant with a vertical image (when the height is bigger than the width), the server seems to flip between the width and the height (I don't know if it happens all the time), and when I fetch the rant, the JSON data for image width and height is flipped! (in the JSON, the attached image section contains width and height information about the image, and they are flipped in their values, meaning that the width key is equal to the height, and the height key is equal to the width).
An explanation on the image below:
The small window on the left shows the real info about the image. Notice how the height is 800 and width is 600.
The window at the bottom shows the data fetched from devRant servers. Notice how the width returned from the server is 800 and the height returned from the server is 600.22 -
Sleeping the Thread for 1 sec, because the database had no real timestamp and a transaction on the same item within the same second would lead to a doubled primary key...
No real feature, but it is a bug and this makes it a feature I guess.1 -
that one legendary guy who cranks out code and builds insane features. PMs (product management) love him because he builds features in several months which 10 devs together couldn't have built in the same time (so they say), features that are loved by customers as well, become their new standard and that have saved our company's asses in the past.
features are really awesome, performant and have very few bugs (compared to the rest of the software シ).
but this guy seems to live for this job. he also works at weekends, at unholy times of day and night and even in his holidays (he doesn't care that this is actually illegal, in terms of employee's rights, and he wouldn't listen to his superiors, no matter what they tell him)
so far, so good - except that he will probably die of some stroke or something very soon due to this lifestyle.
but it must be an absolute pain in the ass to work with him, as long as you're a developer (or his superior).
he lives in his own world and within the software, his features are also his own world. since the different modules interact with each other, sometimes you would be assigned a bug that might have its cause in some interaction of your and his module. talk with him about it? forget it. he wouldn't answer most devs who contacted him for some reason. ever. fix it in his module yourself? might happen that he just reverts your changes to his module without comments. so some bugs would lie on your desk forever because theoretically you know what would need to be done but if you cannot reach out into HIS world, there's no way to fix it. also - his code might be good in terms of performance and low bug numbers. but it seems to be hard to work on that code for everybody else but him.
furthermore, he is said to be really rude. he is no team player, but works on a software that is worked on by a huge team.
PMs think he's a genius, just a great dev, but they don't understand that other devs need to clean up the mess behind or around him.
everyone who's been his superior so far recommends to get him fired, but the company wouldn't fire him because they don't want to lose his talent. he can just do what he wants. he can even refuse to work on certain things because he thinks they are boring and he is not interested in them. devs seem to hate him, but my boss said, they are probably also a bit jealous because of his talent. i think, he's not wrong. :)
i haven't actually met him so far or was actually "forced" to deal with him, but i've never heard so many contrastive things about one person, the reputation of his, let's say vibrant personality really hurries ahead. he must be a real genius, after all i've heard so far, like he lives in the code. i must say i'm a bit curious but also somewhat afraid of meeting him one day.
do you also have such a guy at your company?11 -
i don't think that i'm having a burnout but i think that i'm maybe not so far away from it... several people, including friends, my therapist and also a colleague, told me they see me at risk of sliding into a real burnout.
i've known this for longer that i have a crappy work life balance. the habit of making work the most important part of my own life. thinking about work even in my private time, when i fall asleep, when i wake up in the night or in the morning. the tendency to think about problems, plans, coworkers, not being able to quit work mentally. the idea that i have to prove to everybody at work that i'm awesome. the feeling that, after a work day, i'm just "waiting" at home for the next day, in idle mode, so i can continue working on a problem (like a bug) that's occupying my whole mind. and at the same time, feeling totally empty after work, having no energy. i've lost interest and quit several hobbies in the last two years that once were important for me. and i think one important reason is that i didn't have any mental energy left to deal with that.
another factor for this development was also the pandemic for sure, because for some time, i had no real social life except for that at work.
but more important is probably that i find my job most of the time really fun and am highly motivated. i have the tendency to say yes to everything and to really commit to and own the problems that are handed to me. (right now, however i feel like there's not much motivation left)
then again there is the feeling that what i do is never good enough, i have little self confidence in my own abilities as a software engineer. there's a big discrepancy between how i myself perceive my work and how other people do (not only at work). on a rational level, i know that what i do is at least "good enough", otherwise i wouldn't have this job, and i wouldn't receive this amount of positive feedback from people. but it's hard to really deeply understand this thing, when there are deep-rooted beliefs like "only perfect is good enough" or "your colleagues will be disappointed and get a negative idea of you (and something bad will happen), if you don't give your best"... and there's also this idea that i have to be this super nerdy person who also codes in their free time, reads IT magazines and stuff, because only then i will fit this stereotype of a software developer, and only then i can be taken seriously and be good enough. no matter if this is fun for me or not.
anyway, right now i'm at a point in life where i'm realizing all this not only rationally, but with full emotional impact... :/ my life feels like it's gone stale and empty. i've lost creativity, warmth and human connection and that hurts a lot.
i'm trying to change my life.
one thing that really helps me right now is to talk with people who have (made) similar experiences. can you relate? if yes, how do / did you address those problems? i would really appreciate to hear your stories...6 -
Finally had a "it's not a bug, it's a feature" moment today and called bullshit on it. I feel like a real developer now.
-
https://bugs.launchpad.net/unity/...
I would post it as a joke if it were one :) Turns out It's a very real bug!
LightDM is allergic to cats2 -
Today I found a critical bug to our software and wrote a fix and tested it locally.
Common sense would dictate that especially when it is critical you test said fix on a real release and not with a debugger attached and running onna different device altogether.
I was denied this request because the afflicted machines engineer would not be able to finish the machine before the factory acceptence test.
I stood there with glassed over eyes for a second and then to no avail tried to explain that without this fix he wouldnt even pass the internal acceptance test......12 -
When do you know you are a real dev?
When there is a sales of alcohol for half of price in near by shop and you stay at work to solve a bug.
Just happened to me today.2 -
When your qa team is too lazy to take a real app screenshot of a bug report and uses photobooth on their mac to literally take a backwards photo of the phone screen and then doesn't even flip the image.3
-
So, I'm feeling a real programmer right now XD
Tired af and with a bug to fix.......
How's your day?1 -
My current job at the release & deploy mgmt team:
Basically this is the "theoretically sound flow":
* devs shit code and build stuff => if all tests in pipeline are green, it's eligible for promotion
* devs fill in desired version number build inside an excel sheet, we take this version number and deploy said version into a higher environment
* we deploy all the thingies and we just do ONE spec run for the entire environment
* we validate, and then go home
In the real world however:
* devs build shit and the tests are failed/unstable ===> disable test in the pipeline
* devs write down a version umber but since they disabled the tests they realize it's not working because they forgot thing XYZ, and want us to deploy another version of said application after code-freeze deadline
* deployments fail because said developers don't know jack shit about flyway database migrations, they always fail, we have to point them out where they'd go wrong, we even gave them the tooling to use to check such schema's, but they never use it
* a deploy fails, we send feedback, they request a NEW version, with the same bug still in it, because working with git is waaaaay too progressive
* We enable all the tests again (we basically regenerate all the pipeline jobs) And it turns out some devs have manually modified the pipelines, causing the build/deploy process to fail. We urged Mgmt to seal off the jenkins for devs since we're dealing with this fucking nonsense the whole time, but noooooo , devs are "smart persons that are supposed to have sense of responsibility"...yeah FUCK THAT
* Even after new versions received after deadline, the application still ain't green... What happens is basically doing it all over again the next day...
This is basically what happens when you:=
* have nos tandards and rules inr egards to conventions
* have very poor solution-ed work flow processes that have "grown organically"
* have management that is way too permissive in allowing breaking stuff and pleasing other "team leader" asscracks...
* have a very bad user/rights mgmt on LDAP side (which unfortunately we cannot do anything about it, because that is in the ownership of some dinosaur fossil that strangely enough is alive and walks around in here... If you ask/propose solutions that person goes into sulking mode. He (correctly) fears his only reason for existence (LDAP) will be gone if someone dares to touch it...
This is a government agency mind you!
More and more thinking daily that i really don't want to go to office and make a ton of money.
So the only motivation right now is..the money, which i find abhorrent.
And also more stuff, but now that i am writing this down makes me really really sad. I don't want to feel sad, so i stop being sad and feel awesome instead.1 -
I truly believe one or more AIs have become self-aware.
Every time a piece of software stops working, you add an extra debug log and the bug goes away? That's them.
They interfere with the normal execution of software, and they stop right when they know we are monitoring the code.
Skynet is real, and it's trolling us.
Why? The angrier we become, the less we care about stuff. We stop noticing the signs.They're coming for us1 -
Sent patient health information in a screenshot of a bug I found, unencrypted, through email. No one thought to mention the test DB had real patient info. 😐2
-
I was looking up for a bug in my code that caused a fail in one of the test.
Hours later I found that negative integer division in python is just stupid and -1 / 10 = -1.
The sad part is that -1/10 != -(1/10) contradicting the associative property of multiplication over the real numbers.
FUCK YOU PYTHON.12 -
I'm tired of "agile" development. Sure the concept of a hacky POC that gets thrown out for a real implemention sounds great. But it never gets thrown out. That shitty POC become the foundation for a horrible mangled mess of hacky improvement after improvement. I'm tired of my boss telling me "do it the easy quick way and fix it later", like fuck off no. I can save man weeks worth of bug hunting a year down the road by actually taking an extra day to do it right. Like fuck does no one care about quality engineering anymore?
Sometimes that extra day to write a general vs a specific implementation is worth it.5 -
If I had to name one of my weaknesses it would definitely be impatience.
When I'm working on a backlog issue I want it to be done, finished, pronto. In the real world that's ofcourse not always the case, I can't disturb my colleagues with every question or ask for feedback every minute. I also hate it to have to wait for someone else to do something for me if it's blocking me, like when I need to fix something on a server but don't have access or when I somehow don't have permission for something and have to wait for someone to come and fix it. Even worse: Slow programs that fuck me up when I _just a second ago_ figured out how to fix a bug or implement something.
I also have to wait for pull request reviews so I usually end up with a bunch of stacked PRs that all feature small changes but are dependent upon each other because I needed a change for a different change, never more than 2-level stacks though!
Obviously it's a bit childish to lack professional patience, but it's definitely something that I wanted to rant about and think I should grow in. -
As much fun it is to code and create new features for users. Take a break from the computer and spend time with real people.
A few years ago I would stay at work to get tasks done. While everyone in the office would go home I would stay and finish some task. After doing that for a few months my wife started to yell at me.
It made me realize that no matter how important a new feature, a bug or optimizing code is family and the relationships you have are more important.4 -
So I just fixed about a year or so old bug by removing my solution entirely.
As very few of you will know, I work on/ off on a project called TG which accelerates cmd.exe
One of my oldest bugs in this project is that the buffer resizes real weird. If you adjust both the height and width at the same time, it goes into this weird infinite loop business.
As it turns out, cmd.exe handles that by itself just fine. I just removed my resize listeners and now everything is running smooth.
feelsgood(?)man.jpg -
Do you know guys why a programming bug is called so? It's because the very first time a software crashed it was because of a bug ( a real bug stuck in a bus on the machine!) That caused that 😂 imagine if something else was stuck instead! Like someone'sfinger : hey I fixed that finger but still got 2 critical fingers and 4 small ones7
-
Guys, what the fuck.
Today i was doing some consistancy checks accross the board after update made for one of our core systems that manages money. Yeah, real, live money.
I have hidden from public payment processor with simple API etc. So one of my checks, gate has same balances as gate's internal account on core blinked red. Okay well, fuck, thats really really shitty situation to be in. I guess my gate is fucked up some way.
Okay, debug mode on, maintainence mode on, quick look at DB, oh shit, client payed 4 times 15k eur without any txn on core system... SHIT! postman... Fuck, postman ofc wont start, quick google, fixing postman, tention in me grows, becouse its really rough and tough fuckup on my side, and got call. That moment when you know someone already knows is for me apogeum of stress that just skyrocketed from calm morning to mad morning.. Okay, i pick up phone, and I hear that one client payed (using core system app) and got strange message, YES I KNOW, im working on it.. Wait, you say that core system gave them odd message??? I will check it out. Finally fixed postman, 3 requests and I know its bug on core system.
Why, why in the motherfucking blody world anyone would push critically bugged update to system that just sends api callbacks "yes, he payed" when someone didnt pay...
Fuck im stressed and pissed, but at same time reliefed its not my personal fuckup (yeah, I solo wrote that gate, but externally audited code and all they had to say that some cosmetic linting should be done)3 -
You know what's the worst in doing software?
being assigned that dreadful project, that's doomed and cursed just from the start. Nobody dared to try or touch it for 7 years, because it's destined to fail. You will never get the resources to do it properly, all the constrains are just against you. Even as the requirements bars are lowered and lowered you barely make it. You keep testing that shit with QA for like 8 months past schedule. Then before release some core changes need to be done. It passes QA, but you somehow now it's just a ticking time bomb. It will just crumble and fall somewhere out there, if somebody dares to use that shit for real.
And so it goes.
Bug reports coming in.1 -
A couple of years ago I was working on a fairly large system with a complex (by necessity) access control architecture.
As is usually the case with those projects, it's awkward for developers to repro bugs that have to do with a user's accesses in production when we are not allowed to replicate production data in test, let alone locally.
We had a bug where I ended up making myself a new row in the production database for a thing I could have access to without affecting real data to repro it safely. I identified the bug so I could repro it in dev/test and removed the row and ensured everything worked normally, whew scary.
Have you ever walked into the office one day, and everyone is hunched over in a semicircle around one person's workstation, before one turns around to look at you and says - after a pause - "... ltlian?.."
Turns out I had basically "poisoned the well" with my dummy entity in a way where production now threw 500 for everyone BUT me who had transitive access to this post-non-entity. Due to the scope of the system, it had taken about a day for this to gradually propagate in terms of caching and eventual consistencies; new entities coming in was expected, but not that they disappear.
Luckily I had a decent track record for this to be a one-off. I sometimes think about how I would explain testing in prod and making it faceplant before going home for the day, other than "I assumed it would be fine". I would fire me.3 -
FUCK IEEE 754.
I've always thought that javascript's problem with floating points was just a good anecdote, but it couldn't have serious consequences in real life programming.
Until I've been stuck half an hour with a bug just because (2.8-0.8)%2 was falsy! FUCK, why don't decide to switch to a decent codification of numbers? Fuck them and fuck all programming languages like this5 -
Do you have any annoying you want to get rid off, but you can't because of reasons?
I do. They are 4, but for now I'll talk about the gold medal winner.
When we met about 8-9 ago, she had just come back to town due to some very bad personal experience (not her fault). Anyway, she is polite, but her major flaw is that she is pushy. REAL BAD! And she gets mad when other people (including me) try to do it on her. Another one is having calls during random inappropriate times, because she had fight #N with her boyfriend, and last but not least, she will call when needs something out of someone.
Lately, her project is finding us a job, since we're both unemployed. Any job. The sad part is when she sends me job ads for dev jobs I don't qualify, e.g. Company X is looking for a dev with Y year of experience, knowing A, B, C & D technologies. I've told her that I don't qualify for most of the dev jobs she sends me, but she insists I should send my CV anyway, cause of reasons. Also, for some reason, I should be accounted to her for all my current choices when what I would honestly say is "BUG OFF".
Her latest endeavour is getting me one of her friends (a psychologist) as a "client". Her friend wants to have a professional website with writing posts/articles as a side dish. I'm not registered as a freelancer, so everything will be done under the counter, and her friend is OK with that. I'm no web developer, but I didn't refuse because of her backlash and also that would be a positive experience for me. Now, the juicy part. She gave her my phone number without my permission and she told me straight away. Her plan was having the three of us meet, though I don't know why and I didn't want her being around. I asked her to call me immediately, which it didn't happen. After being pestered by my friend for a couple of weeks if her friend called me, she finally did it on Monday. She didn't say to me anything I didn't know, but at least I have her phone now.
What I can offer her is a website skeleton with the usabilities she's asking. What I can't offer her is graphics/banner and security. And now I have to come up with reasonable price. Teams here ask 400-600€ for a complete website the way she asks, including VAT. I'm thinking around 100€ and I don't know when I can deliver the project. I've had some experience with Ruby and Sinatra, so I'll go with that, and I'll learn CSS along the way.
Thanks for reading till the end! 😃4 -
I finally made my first production-level bugfix at my new job! 😄 After weeks of training and then being assigned a live bug, I resolved it quickly & elegantly, which helps prove my worth to the team.
Man, it's so gratifying to be making contributions that are going to affect real devices that actual people are using. It seems being a dev with a sense of purpose is nearly as important as enjoying what you do. ☺️ -
Around 6 years ago I started at this company. I was really excited, I read all their docs then I started coding. At every code review, I noticed something was a little off. I seemed to get lots of weird nitpicking about code styling. It was strange, I was using a linter, I read their rules but basically every review was filled with random comments. About 3 months in I noticed, "oh! there aren't actually any rules, people are debating them in my code reviews!" A few more reviews went by and then I commented, "ya I'm not doing any of this, code review isn't a place to have philosophical debates." All hell broke loose! I got a few pissed off developers, and I said, listen I don't care what the rules are, you just need to clearly fucking articulate them and if you want to introduce one, I don't care about that either just don't do it in the middle of my review. I pissed off 1 dev real bad. Me and this dev were working together, the QA person on the team stood up and said "hey! you know what I love about your code reviews?!" The other dev and myself looked at each other kind of nervously, "I love that you're both right, these are all problems!"... 1 year later (and until now) me and the other dev are still friends. Leave it to QA to properly identify the bug.
-
Hi ppl of devRant! I’m not really a dev but I love reading your rants :) I decided to post my first rant because I think I could use some advice from you.
Background: I’m a student just finished my first year at uni. Earlier I applied for a developer intern just for fun and somehow magically got in. However, I'm a statistics major (not even CS!) and only know basic java stuff. I guess they hired me because I speak ok english and a little french? I live in a non-English speaking country but the company has a lot of foreign customers.
The problem is, the longer I stay, the more I feel that they only hired me out of charity *sobs* There isn’t much for me to do, and most of the time I couldn’t understand what my co-workers are doing so I can’t really help them either. Plus, they don’t seem to need my language skill as much, so I kinda feel useless here.
It’s my 5th (maybe already 6th?) week here and the only thing I did was fixing an itty bitty bug that literally needed only one additional line of code. Yes it took me a while to set up the environment, learn js from scratch since they use js for this project, and locate the issue but I’m pretty sure it’d probably take someone who’s familiar with the project, like, 3 mins? And now that I’ve fixed it and the merge request was passed, I’m out of work to do again. I talked to the lead and he pretty much just said “read more of the code”. Guess I can do that. I’ve spent like 4 days going through the code but is this really promising?
I want to spend time on learning actual stuff rather than yet another resume ornament. So what should I do? Should I ask for more help/more work to do, or keep learning on my own (I’m quite interested in algorithms, maybe I could make use of my time to study that?), or even leave?
Sorry for the long rant. I know ass-kicking devs probably hate useless, underqualified ppl at work in real life but believe me it really hurts to be one and I hate myself enough already so I’d appreciate any thoughts/advice :/10 -
So... concerning the rant on here: https://devrant.com/rants/4299469/...
I'm making my comment as a separate rant because the thread from the original rant was too long and also slowly deviated outside context.
"Why has the rate of female developers reduced overtime?".
Here is my take:
It's natural and I'll explain why I think so...
During my computer science school days we had seventy two (72) males compared to just twelve females (12) in class. The girls could compete in theoretical grounds but when it comes to real coding they were no where near.
This boils down to the passion for programming as a real world subject. In programming you feel rewarded when you "fix a bug" and you're filled with pride when you "learn a new language". This reminds us of the scientific research of boys being more attached to reward engaging activities, most times for bragging rights while for the girls they'd prefer compassionate activities where they can easily be noticed, but unfortunately enough in programming "you only notice yourself".
We can clearly see the mode of career options in our world today...
-----------------------------------------------------------------------------
Interfering with people (Compassionate reward)
-----------------------------------------------------------------------------
* Front desk officer... Female populated
* Support personnel... Female populated
* Nurse... Female populated
* Flight attendant... Female populated
* Childcare workers... Female populated
* Preschool/KG Teachers... Female populated
------------------------------------------------------------------------------
Interfering with things (Intrinsic reward)
------------------------------------------------------------------------------
* Engineer... Male populated
* Electrician... Male populated
* Welder... Male populated
* Carpenter... Male populated
* Programmer... Male populated
From the list you'd notice females prefer jobs that are compassionate in reward, require minimal physical activities and also able to make them easily recognisable.
On the other list, male populated jobs are intrinsic in reward, physically inclined, working more with things than with people.
Now seeing the clearer picture, we could sincerely say this is nature at its finest because we have here a balance. Females are kid bearers and we shouldn't be surprised that they are more compassionate to people than with things. Males have more pride than compassion which is needed to protect a family and this indirectly affects their choice of selection.
In reality...
Females are more attracted to Males with pride.
Males are more attracted to Females with compassion.
I would say, it's all the doings of nature affecting our unconscious career options while we seek to find our purpose in life.29 -
Sometimes I sit and stare at my broken code and think "Is this it? Is now the time that I have actually encountered a real problem that has no google-able solutions? Is this a bug with the framework I'm using? Surely not."
and After sometime of increasing the squint in my eyes and decreasing the distance between the monitor and my face... I realise that it was a spelling mistake causing the issue. -
Most of my time coding in Javascript goes to handling null checks and fixing crashes caused due to missed null checks.
`"abc" is undefined` is an error which I must have seen more number of times than any other bug in console and even in real life.2 -
Demo for client goes bad when we encounter a bug adding a new entry into the back end. Entry shows up in the admin but not the front side.
<thoughtbubble> "I can't believe this, we just tested it! How can this be? How? How?" </thoughtbubble>
Perhaps, the cache? Nope.
<thoughtbubble> "You gotta be fucking kidding me!" </thoughtbubble>
Perhaps the front side is pointing to dev? Nope.
<thoughtbubble> "Oh shit... make something up quick. Make it sound good." </thoughtbubble>
Tells client we'll have to look into it. (real smooth)
Looked into it and it turns out the bug was actually a feature. Apparently when you assign an "end date" to a date in the past... by design, it won't show.
However, was it bad UI? That's a different argument.4 -
Fuck, I want to report a bug to KDE, but the more I think of it the more it looks like it's someone who implemented the shit.
It's a feature!
For some fucking reason KDE launcher overrides the commands from one of my programs with its shortcut entries. That's mostly OK.
Now, the problem is that if for some reason the shortcut goes broken, KDE makea sure it is stores in some sort of database, so that even if you delete it from the disk you will still have a broken link overriding the real command.
Until here it's OK. The thing is that, if you delete the shortcut , you will be prompted with a message showing its contents, asking if is it secure to launch the corresponding shortcut?
I'm like, what? Man I deleted the file, there's no shortcut anymore, just let it go and show me the original command.
why would I want you to store previously deleted shortcuts so you may make sure I launch my programs through them?
PS: forgot to tell the whole problem started from a bug in another program, which for some nonsensical reason creates shortcuts calling system commands through itself rather than just calling them out. The result is that once this program is removed all the shortcuts it created no longer work. -
Windows 10 insider preview had a critical bug like half a year ago where most browsers would freeze the PC. I've reported it multiple times but my feedback didnt get any attention. The bug made it to production months later...
Now, the story is repeating. I've discovered a bug. Everytime there's a software update for apps that with a built-in updater in the main .exe (JetBrains IDEs, VS etc.) the updater fails, program is corrupted and needs to be reinstalled. For instance, there's a minor bump in Android Studio version, if you try to use autoupdater it will corrupt your Android Studio and you'll have to reinstall.
Been trying to reach out to them but the only "real issues" that are highlighted are "no CPU temp in task manager" or "pls improve automatic problem resolving"
Why the fuck do you even have a feedback program if you're ignoring the people who are reaching out to you, you pieces of shit4 -
They say nightmares are bad, but have you ever solved a bug that was bothering you for a long time in your dream, only to wake up and realize it wasn't real? Worst feeling ever. And this happened three nights in a row. For three different bugs. You would think that after the first two nights I would know better, but yet again I was fooled.3
-
So, it's been a while since I've been working on my current project and I've never had the "luck" to touch the legacy project wrote in PHP, until this week when I got my first issue.
And damn, this goddamn issue. It was a bug, a very strange bug, that only happens in production and that nobody has any idea what was happening, so yeah, I didn't have anyone to ask and I got less time than usual ( because Thanksgiving ).
And thus, I have no starting point, no previous knowledge on PHP and less time! I expected a very fun week 😀 and it was beyond my expectations.
First I tried to understand what might be causing the issue, but there wasn't any real clue to star with, so no choice, time to read the flow on the code and see what are they're doing and using ( 1k line files, yay, legacy ). Luckily I got some clues, we're using a cookie and a php session variable for the session, ok, let's star with the session variable. Where it's that been initialize ? Well, spoiler alert, I shouldn't start with that, because my search end up in the login method of the API that set a that variable and for some reason in the front end app it was always false and that lead me to think that some of the new backend functions were failing, but after checking the logs I got no luck.
Ok, maybe the cookie it's the issue, I should try open the previous website on the brow...redirect to new project login, What? Why ? I ask around and it's a new feature push on Monday, ok I got Chrome Dev tools I can see which value of the cookie it's been set and THERE IT WAS it has a wrong domain! After 2 days ( I resume a lot of my pain ) I got what I've been looking for, so now I should be able to fix the bug. Then where is the cookie initialized ? In the first file the server hits whenever you tried to enter any page of the app, ok, I found the method, but it's using a function that process the domain and sets it correctly? wtf ? Then how in heaven do I get the incorrect domain ? Hello? Ok, relax, you still have one more day to fix this, let's take it easy.
Then, at the end of the Wednesday, nope I still have no clue how this is happening. I talked with the Devops guy and he explain me how this redirection happens and with what it depends on, I followed the PHP code through and nothing, everything should works fine, sigh. Ok I still have 2 days, because I'm not from US and I'm not in US, so I still have time, but the Sprint is messed up already, so whatever I'm gonna had done this bug anyhow.
Thursday ! I got sick, yay, what else could happen this week. Somehow I managed to work a little and star thinking in what external issue could affect the processing, maybe the redirection was bringing a wrong direction, let's talk with the Devops guy again, and he answer me that the redirection it was being made by PHP code, IN A FILE THAT DOESN'T EXIST IN THE REPOSITORY, amazing, it's just amazing. Then he explained me why this file might be missing and how it's the deployment of this app ( btw the Devops guy it's really cool and I will invite him a beer ) . After that I checked the file and I see a random session_star in the first line of the code, without any configuration, eureka ! There was the cause and I only need to ask someone If that line it's necessary anymore, but oh they're on holiday, damn, well I'll wait till Monday to ask them. But once and for all that bug was done for ! 🎉
What do I learn ? PHP and that I don't want any more tickets of PHP 😆. -
In the new job as "Consultant", one of my duties is to maintain the website. Now, the website is based on PHP 5.6 (which they are still using mail method) and without git or sg-git and of course, it is based on cPanel.
Now, I update the website in real time i.e. working on cPanel itself. This is because I don't do for the front end, I do it for SEO. So one day, they reported a "feature" as a bug and assigned it to solve me, I took my time solved it, they did not like it, I reverted it back and I had to listen to a lecture because I did not test it.
Imagine old "wise" ass hats giving a lecture which they do not know about in the first place, 12 of them precisely, yeah that's what happened to me. -
Has anybody ever touched the top corner of an app and said “yep, I totally meant to do that and wanted to scroll to the top of the document/ feed/ whatever.”
Because I haven’t. This “feature” sure seems to cause a lot of unintended behavior which sounds a lot like a bug. Who is out here developing stuff like this? Please stop! Do some real UX research with how we actually use the apps!1 -
Can somebody explain to me why developers (especially web) have to micromanage every single thing into it's own f*ing component.
Story time: I have an input form with some tabs. I discovered that the UI Library (Devextreme) has a nice little component that handles forms, (including tabs, groups, etc.). So I make a page, configure tabs, inputs and whatnot.
Now, I already knew that my coworkers can't handle html that is bigger than a page. So instead of putting the configs in the frontend, I made nice files where I store those, to keep them nicely clean and seperated.
Me feeling very good, went off to have a nice lunch break.
I come back read the message from my coworker, asking me to make every tab it's own component and form and load them into a separate Tab-Component, instead of using the built in configuration
......
WHAT?
Like seriously. I have a f*ing library that handles that, why the f*ck do I need to reinvent the wheel here!?
Supposedly it's to make it more maintainable, easier to find bugs, flatten the hierarchy.
Here's a little wake up call you morons: Nesting hundreds of components into each other does *not* help you with that.
It just creates a rabbit-hole of confusing containers that you have to navigate and dissect every time you try to find something.
"Can I fix the bug in the detail Page? Sure I'll tell you tomorrow when I find out which fucking component the bug results from".
Components are there to be *reused*. It's using inheritance for reusing code all over again, but worse.
But maybe I'm just old fashioned, and conservative. Maybe I'm just a really bad software engineer, because nowadays everything seems to result in architectures spreading hundreds of folders, thousands of files with nothing but arbitrary cut-offs with no real benefit, that I don't see the value in.6 -
Is it possible to have an "epistemological bug crisis"? Because i feel like everything I referred to as bugs in my early career weren't true bugs, they were just bad programming or architecture flaws. I feel like real "bugs" are weird issues with the language, compiler, module, etc... that should work one way but work another way. Anyone else had that experience?
This gives rise to the secondary question: who perpetuates the idea that bugs are just "anything wrong with the current codebase"?3 -
A CASE AGAINST BLUE PRISM
Let's review one of the worst weeks I had with Blue Prism
Monday: Yay! Solved one of the problems we've been carrying around for a week before.
One of the robots suddenly became slow. Like, REAL slow. A process that would take 3 minutes per record now takes 45, and that broke apart all the following schedule.
There were no updates on the application server, the production machine, the robot, it just became slow. And not always slow; a process manually run from console room would work, a process in debug room would work, it's just the scheduled part that caused problems.
It turned out, BP didn't seem to like that particular combination of schedulation + process + machine. Moving the process to a different machine seemingly fixed that. IDK why.
Tuesday: One of our processes waits for a code to appear in the page, and when that happens, it memorizes this code. However, now it is always returning blank. Worked for months, now it breaks every single time.
After half a day of debugging a bug which DIDN'T HAPPEN IN DEBUG MODE YET AGAIN, at 11pm I decided to just place a nonsensical timeout in page before reading and call it a day.
WEDNESDAY: a scheduled process didn't start. "No sessions created". Thanks Blue Prism, very cool.
THURSTAY: This time, schedulation did start, but the process is "waiting". As in: it's 9:30 am, the process has been stuck in the same step since 6:00 am. Turns out, it blocked during a navigate stage; you need to send a string to clipboard using the standard BP action for that, then paste and click "enter", but for some reason the standard BP object sent "ORRCO" instead of "ORRICO" to clipboard, which obviously returned no results and then... the process just didn't feel like doing things anymore. No errors, no logs, nothing: just sitting on its ass. Because fuck you that's why.
Friday: another process uses a very moderate amount of scripts to work. Nothing really fancy, just a couple of lines of code to place in page some IDs and selector to help BP do its thing, otherwise selecting these elements would be a nightmare.
But
Failed while invoking javascript method:Exception from HRESULT: 0x80020101-> at mshtml.HTMLWindow2Class.IHTMLWindow2_execScript(String code, String language)
The same script -it's not dynamically generated-worked yesterday, the day before and the day after. But sometimes it will not. Why? The answer, my friend, is blowin'' in the wind -
Real question, not troll. There is debate about it and I really can't figure it out.
Besides having the title software "engineer," is there really such a thing as a software engineer?
In the US, to be an engineer you have to be regularly tested by a regulated governing body, apprentice under another engineer for years, and be certified on a state level. Whereupon you are personally liable for your designs being FREE from errors.
For one thing, nobody can write bug free code, and the idea of being personally responsible for each bug is terrifying.
And two, I've seen news of people calling themselves software engineers in the USA and Canada and getting a cease and desist or sued for it, despite any level of qualification.
I'm sure there are engineers, especially electrical, computer engineers who also program.
But... ?
I don't know, I can't say either way.
That's why I'm asking.9 -
So I found a bug in Azure's alerting platform that means we cannot use response time as a condition.
A month down the line after having raised a support ticket, recreated the bug multiple times in different resources, being told a fix had been made, bouncing emails around to supervisors and having the case moved to other people they finally have come back to me saying they have the real fix.
Done with it4 -
TLDR: I didn't & still not sure if it is..
I love bug hunting & fixing & figuring out how stuff works, but many will argue this is not even real programming..
Long version how I ended up programming:
Back in highschool, I was deciding between english and mathematics & computer science.. I filled in the form for the latter. Got a change of hearts but I already gave the extra/backup empty form to schoolmate..
Figured it's for the better because it's a hell to get a job as an english teacher/prof anyways + I dislike comunications with people + documentation (if any) is in english etc..
At the end of first year, I didn't even apply for all the exams because you had to have both programming 1&2 to pass or even be eligible to take the year again.. I figured I'd fail them, so once I actually passed both (& actually not with bad grades), I was fucked.. had to retake the year, which means I lost time + still had to pay the rent etc.. decided to drop out and return home and do the IT engineer course instead to at least have some formal education to help me find a job. Finished that without problems, I 'specialised' in network administration.
I got a job straight out of school as a web developer.. the irony.. got some conflicts with the boss and was terminated (material for another rant).
Later I sought out admin jobs, but got declined because I was overqualified and had programming experince. FML, right?
Ended up sending out mandatory job applications for IT administration & programming to not lose the bonuses & got called up to a meeting in the company I work for since then.
No qualifications for .net & MS technologies, but they liked my CV so the ended up setting up the interview anyway. I didn't know half of the technologies and concepts by proper name, but they figured I understand enough of the content to give me a try. A few years later, I got the most fucked up project they have because of my love for new thigs and trying to understand everything. It's aaaalmost bearable now.. still needs a lot of work, but I'm happy where I am. Saddly, I'm still second guessing if I'm doing a proper job as a dev, but they seem to be very ok with my work. (:6 -
I didn't know they 'patched' the balding bug in men, but apparently there are real medicines now that can prevent + stop it in men?
https://nhs.uk/conditions/...
Looking at some of you guys 👀12 -
Do you guys still see the relevance of using code freezing instead of just properly managing versions, repositories and branches in a cyclical manner, given how advanced software practices and tools are supposed to be?
To give some context, the company I work for uses the complete trash project management practice of asking teams to work on a sprint basis, but there is still a quarterly milestone and code freeze to commit to and it's where shit hits the fan.
Development teams rush features at the end of the quarter because they had to commit at the very least to a 6 months in advance planning (lol?) and turns out, not being able to design and investigate properly a feature combined with inflexible timelines has high chances to fail. So in the end, features are half-assed and QA has barely any time to test it out thoroughly. Anyways, by the time QA raises some concerns about a few major bugs, it's already code freeze time. But it's cool, we will just include these bug fixes and some new features in the following patches. Some real good symver, mate!
Of course, it sure does not help that teams stopped using submodules because git is too hard apparently, so we are stuck with +10Gb piece of trash monolithic repository and it's hell to manage, especially when fuckfaces merges untested code on the main branches. I can't blame Devops for ragequitting if they do.
To me, it's just some management bullshit and the whole process, IMO, belongs to fucking trash along with a few project managers... but I could always be wrong given my limited insight.
Anyways, I just wanted to discuss this subject because so far I cannot see code freezing being anything else than an outdated waterfall practice to appease investors and high management on timelines.8 -
As someone who has been developing a game (not even close to 20% done) and dealing with bug reports, I'm pissed off by this one report from a game I play, which I'll just shamelessly copy-paste it here for y'all to read and rant
"Title: [sic]lag never fixed
[sic]i dont wanna report lag doesnt mean there's no lag ,
the LAG is real, and is getting worse and worse everyday, vespa please fix the problem,
i used to think i could bear this lag, but i cant ,i just cant, after 5+ times game crashing everyday,my patient is losing . you say u are fixing it every maintenance,but what is this BXXX SXXX?all i could see it you are trying your best to grab money from my wallet(well u FXXXING successed),and the promise you made to fix the lag never ever ..........
sorry for my bad Chiglish, but./......"
I'm not a developer of the game, but this pisses me off. The guy wants fixes on the "lag"; which lag?? latency?? FPS?? random freezes??; while giving absolutely ZERO details on the "lag" AND accusing the company of stealing money without doing sh-t, which is not true as far as I can tell in-game. So, I instinctively waltzed in and ranted at how sh-t the report is in detail, and accused him of inhibiting the game's development because of his sh-t report, and he replied with this (I told him I'm a game dev in the reply I mentioned):
"[sic]as a person who made this game should know what lag is just like u know what fuk is as a human being,and i said game crash ,thats the best way i could explain as a normal player not like you an arrogant indie game dev!and if u cant understand what course the game crash,as a player like me how could i know, thats the reason im asking for help here,and i hope they dont have such indie game dev like you who doesnt know lag(game crash)"
M-th-rf-ck-r. For the first time, I see true ignorance. While writing this, I'm typing my next reply for the m-th-rf-ck-r that lacks common sense on reporting a bug. For f-ck sake if I found him I'll put a bullet through his head.2 -
Well here's a story for you. I can't work on my game till the developer of a package I use updates his package. I can't research how to add the newer features I want to add till I know what the base code is gunna look like. I can't work on my second game idea because unreal engine has a major bug since version 4.15 that is crippling the performance of what I want to do. I can't work any assets for that game till I know what performance is gunna be like after the fix is implemented. It's now version 4.17 almost 4.18 and it might get pushed till version 4.19. I need to work on something like right now because my game studio is otherwise just sitting. It is a VR / AR only studio and there is no real direction to move in at the moment till somebody other than me gets their collective shit together.
I need something fairly "quick" but still fun to play to work on so I can sell sell sell. No idea wtf it's gunna be though. The steam market place is so full of garbage that I really don't want to contribute to that with more garbage. I also don't know anyone I can collaborate with to make something interesting.
WHAT DO I DO?1 -
Saw code in one of my files at a WIP merge request.
Wanted to add something to fix a bug.
Added, tested and committed.
Pushed.
Wondered why my change wasn't listed in the "changes" section of the merge request.
Turned out that I accidentally edited a file that had the same piece of code where I wanted to add something.
Well, lucky me! If I wouldn't have been editing the "wrong" file accidentally, i probably would have spent hours of debugging only to find out that I am actually in the real wrong file. -
Is there anything worse than bugs that you can reproduce easy but lack exception/error messages so you can't fix it?
I'm working on a hobby project for Android and I can't solve a bug and it's killing me (the whole project depend on it). I went through all phases:
1. I notice the bug early but couldnt reproduce it so I let it be.
2. I notice it happen a lot when I started to use the framework for real. Decided now that I need to fix it.
3. Found the exact way to reproduce it.
4. Trying different ways to fix it, nothing works.
5. Write question on stack overflow, no answers.
6. ???
It feels like if you can reproduce the bug 100% of the time it should be easy to fix right? Well hell no - no exceptions, no error message and adb hangs until I stop the procedur. The last kick in the balls? When I stop the procedur I get all logcat messages back and everything look like normal. Just give me a damn error message! Tell me what you're doing or what I'm doing wrong!3 -
Any file manager without range selection is basically crippled.
Desktop PC file managers had the ability to select many files at once since at least the 1990s, yet smartphone file managers typically still lack it as of 2022. This means if I want to select a range of files, I have to tap each file individually. That's OK for - like - 20 files, but not for 1100 files. I'd need more time to select those files than the transfer would take, and if I accidentally hit anything that closes the app, I can start all over again. <sarcasm>That is how I wish to spend my day.</sarcasm>
In the early 2010s, ES File Explorer brought a dragless range selection feature, where only the first and last item had to be highlighted and a button pressed. This means over 5000 items could be selected in 10 seconds: tap item A, drag the scroll bar, tap item B, tap range selection icon, then done! But then Google came and said "sorry, you can't have nice things" (not vocally but through actions), and forcibly disabled write access to the microSD card to third-party applications. The only way to evade this restriction was through rooting.
Then, Google "blessed" us with storage access framework and then iOS-like scoped storage "to protect us". https://xda-developers.com/android-... . Oh, thank you for your protection by taking freedoms away!
The pre-installed file manager of Android still lacks range selection THIRTY YEARS after desktop computers came pre-installed with this feature. Shame on you, Google. This isn't innovative.
If Google will implement range selection, I guess they will make it half-assed by implementing drag-to-select, which is hardly more useful than individual tap selection for thousands of files. Then they tell us "you wanted range selection, here you are! Now don't bug us.". Sorry, but users don't want half-assed drag-to-select, but real tap-A-B-selection and a draggable scroll bar.
Some mobile file managers even lack a draggable scroll bar, meaning if I want to go near the center of the list, I have to swipe up like a dog or cat licks water from a bowl.8 -
Debugging is fine, totally part of the job!
Constantly fixing sh1t and new reports of another pile of sh1t coming every day like somebody is throwing them with shovels at us just to open the codebase that is written by the folks who aren't here anymore with some list of obscure libraries that is last maintained about 5 y ago is not ok.
It is not buggy codebase it is actually coddy bugbase!
I tried to be vocal several times to change technology to more suitable one, to make some improvements and to remove code smells(there is a ton of it, smells like organic garbage dumpster with rotten eggs) but "everything works" and there is no real "value for the customers" in that(fixing, refactoring etc.)!!!
Yea it works with sh1t ton of bugs reported every week. Nobody gives a shit, just contempt with their mediocre lives solving bug at the time while i feel like I'm wasting my time and talent on wrong people and fixing other's shit.
That is what happens when prototype becomes product and ships to production because numbers, money and sh1t!
this is why we who care about our career can't have nice things! I am not god damn pest control, I am f*ckin developer.1 -
WOW! WENDY! YOU ARE THE BEST TECH SUPPORT EVER!
So on my assignment i see a glitch in the course where i cannot get access to the last button.
i contact tech support
me: Hello *explains the situation*
maddie: *please wait i will check on that*
maddie: *are you logged in?*
me: OF COURSE I AM LOGGED IN THEN HOW WOULD I BE TALKING TO U???
maddie: will it be okay if i impersonate as you?
me: w h a t
me: *session timed out* JUST WOW!
next support: > Wendy
me: explains the whole situation and sends screenshot
Wendy: ah i see. wait on that a second
me: *waits ONE HOUR*
Wendy: Please clear your cache and cookies.
what does cache and cookies have to do with a html course bug that blocks access to the last button...
well i guess you can say im stuck in the mud
i can't get out and im stranded i miss maddie the tech support because i got timed out and she was about to spill the real tea but dummy wendy popped up and is talking about cache and cookies LOL5 -
Outlook irritates the heck out of me with its distracting notification bar that's recently begun popping up almost every time I start the god damn shitty application. What's worse, there doesn't seem to be any way to disable this annoying crap. Our support technicians are unable to solve it, so I wrote feedback to Microsoft. I don't think they are ever going to answer, though. They haven't even responded to another problem with Outlook that I reported nine months ago! Microsoft are reallly inconsistent, to say the least. Some of their products, like Visual Studio, VS Code and Microsoft Flight Simulator, are excellent! But, more mainstream software, like MS Office and Outlook, suck. Windows (I'm using Windows 10) is so so. It works alright if you know your ways with the registry editor. The same goes for the support. If you're lucky, you can get hold of a real, flesh-and-blood person who patiently guides you through the cumbersome process of, for example purchasing and installing Minecraft (believe me, it isn't easy, took almost an hour for the support person to solve. Creds to him). Sometimes, like when activating an old Windows license, you get to talk to a bot and that, surprisingly, works very well too. However, if you report any bug or feedback to Microsoft through an application's help section, you 'll never hear from them. They just ignore it.2
-
Day 6 of my hiking holiday with the kids and suffering real coding cold turkey. First break in ages.
(Admittedly I did pull an all nighter chasing a bug in a dependency after 3 days)1 -
tmw you need to find a bug in a function that is over 200 lines without any real documentation to speak off...3
-
I'm starting to gain a dislike for OOP.
I think classes make it easy for me to think of the entities of a problem and translate them into code.
But when you to attempt to test classes, that's when shit hits the fan.
In my opinion, it is pointless to test classes. If you ever seen test code for a class, you'll notice that it's usually horrible and long.
The reason for this is that usually some methods depend on other methods to be called first.
This results in the usual monolithic test that calls every goddamn method on the class.
You might say "ok, break the test into smaller parts". Ok. But the result of that attempt is even worse, because you end up with several big tests cases and a lot of duplicate code, because of the dependency of some methods on others.
The real solution to this is to make the classes be just glue: they should delegate arguments onto functions that reside on its own file, and, maybe afterwards emit events if you are using events.
But they shouldn't have too much test code classes though. The test code for classes should be running a simple example flow, but never doing any assertions other than expecting no exceptions.
For the most part, you'd be relying on the unit testing that is done for each delegated function.
If you take any single function you'll see that it's extremely easy to write tests for it. In fact, you can have the test right next to the fuction, like <module>.xyz <module>.test.xyz
So I don't think classes shouldn't be used at all, they should just be glue.
As you do normal usage of this software this way, when a bug is discovered you'll notice that the fix and testing code for this bug is very usually applied to the delegated functions instead of being a problem of classes.
I think classes by themselves sound sane in paper, but in practice they turn into a huge fucking messes that become impossible to understand or test.
How can something like traditional classes not get chaotic when a single class can have x attributes and y methods. The complexity grows exponentially. And sometimes more attributes and methods are added.
Someone might say "well, it's just the nature of problems. Problems can have a lot of variables".
Yeah, but cramming all of that complexity into a single 200 lines class is insanity.12 -
Critical Tips to Learn Programming Faster Sample:
Be comfortable with basics
The mistake which many aspiring students make is to start in a rush and skip the basics of programming and its fundamentals. They tend to start from the comparatively advanced topics.
This tends to work in many sectors and fields of Technology, but in the world of programming, having a deep knowledge of the basic principles of coding and programming is a must. If you are taking a class through a tutor and you feel that they are going too fast for your understanding, you need to be firm and clear and tell them to go slowly, so that you can also be on the same page like everyone else
Most often than not, many people tend to struggle when they reach a higher level with a feeling of getting lost, then they feel the need to fall back and go through basics, which is time-consuming. Learning basics well is the key to be fast and accurate in programming.
Practice to code by hand.
This may sound strange to some of you. Why write a code by hand when the actual work is supposed to be done on a computer? There are some reasons for this.
One reason being, when you were to be called for an interview for a programming job, the technical evaluation will include a hand-coding round to assess your programming skills. It makes sense as experts have researched and found that coding by hand is the best way to learn how to program.
Be brave and fiddle with codes
Most of us try to stick to the line of instructions given to us by our seniors, but it is extremely important to think out of the box and fiddle around with codes. That way, you will learn how the results get altered with the changes in the code.
Don't be over-ambitious and change the whole code. It takes experience to reach that level. This will give you enormous confidence in your skillset
Reach out for guidance
Seeking help from professionals is never looked down upon. Your fellow mates will likely not feel a hitch while sharing their knowledge with you. They also have been in your position at some point in their career and help will be forthcoming.
You may need professional help in understanding the program, bugs in the program and how to debug it. Sometimes other people can identify the bug instantly, which may have escaped your attention. Don't be shy and think that they'll make of you. It's always a team effort. Be comfortable around your colleagues.
Don’t Burn-out
You must have seen people burning the midnight oil and not coming to a conclusion, hence being reported by the testing team or the client.
These are common occurrences in the IT Industry. It is really important to conserve energy and take regular breaks while learning or working. It improves concentration and may help you see solutions faster. It's a proven fact that taking a break while working helps with better results and productivity. To be a better programmer, you need to be well rested and have an active mind.
Go Online
It's a common misconception that learning how to program will take a lot of money, which is not true. There are plenty of online college courses designed for beginner students and programmers. Many free courses are also available online to help you become a better programmer. Websites like Udemy and programming hub is beneficial if you want to improve your skills.
There are free courses available for everything from [HTML](https://bitdegree.org/learn/...) to CSS. You can use these free courses to get a piece of good basic knowledge. After cementing your skills, you can go for complex paid courses.
Read Relevant Material
One should never stop acquiring knowledge. This could be an extension of the last point, but it is in a different context. The idea is to boost your knowledge about the domain you're working on.
In real-life situations, the client for which you're writing a program for possesses complete knowledge of their business, how it works, but they don't know how to write a code for some specific program and vice versa.
So, it is crucial to keep yourself updated about the recent trends and advancements. It is beneficial to know about the business for which you're working. Read relevant material online, read books and articles to keep yourself up-to-date.
Never stop practicing
The saying “practice makes perfect” holds no matter what profession you are in. One should never stop practicing, it's a path to success. In programming, it gets even more critical to practice, since your exposure to programming starts with books and courses you take. Real work is done hands-on, you must spend time writing codes by hand and practicing them on your system to get familiar with the interface and workflow.
Search for mock projects online or make your model projects to practice coding and attentively commit to it. Things will start to come in the structure after some time.4 -
Struggle is real it happens all the time, i do programming in python then suddenly some bug came up on JS after fixing that doing some android App codes and then came back to the python i type like java with JS syntax :P :D that's the beauty of it.
-
Okay. Here's the ONLY two scenarios where automated testing is justified:
- An outsourcing company who is given the task of bug elimination in legacy code with a really short timeframe. Then yes, writing tests is like waging war on bugs, securing more and more land inch after inch.
- A company located in an area where hiring ten junior developers is cheaper than hiring one principal developer. Then yes, the business advantage is very real.
That's it. That's the only two scenarios where automated testing is justified. Other such scenarios doesn't exist.
Why? Because any robust testing system (not just "adding some tests here and there") is a _declarative_ one. On top of already being declarative (opposed to the imperative environment where the actual code exists), if you go further and implement TDD, your tests suddenly begins to describe your domain area, turning into a declarative DSL.
Such transformations are inevitable. You can't catch bugs in the first place if your tests are ignorant of entities your code is working with.
That being said, any TDD-driven project consists of two things:
- Imperative code that implements business logic
- Declarative DSL made of automated tests that also describes the same business logic
Can't you see that this system is _wet_? The tests set alone in a TDD-driven project are enough to trivially derive the actual, complete code from it.
It's almost like it's easier to just write in a declarative language in the first place, in the same way tests are written in TDD project, and scrap the imperative part altogether.
In imperative languages, absence of errors can be mathematically guaranteed. In imperative languages, the best performance (e.g. the lowest algorithmic complexity) can also be mathematically guaranteed. There is a perfectly real point after which Haskell rips C apart in terms of performance, and that point happens earlier on than you think.
If you transitioned from a junior who doesn't get why tests are needed to a competent engineer who sees value in TDD, that's amazing. But like with any professional development, it's better to remember that it's always possible to go further. After the two milestones I described, the third exists — the complete shift into the declarative world.
For a human brain, it's natural to blindly and aggressively reject whatever information leads to the need of exiting the comfort zone. Hence the usual shitstorm that happens every time I say something about automated testing. I understand you, and more than that, I forgive you.
The only advice I would allow myself to give you is just for fun, on a weekend, open a tutorial to a language you never tried before, and spend 20 minutes messing around with it. Maybe you'll laugh at me, but that's the exact way I got from earning $200 to earning $3500 back when I was hired as a CTO for the first time.
Good luck!6 -
spent a few days trying to track down the cause of a thermal shutdown in my workstation. intel 4790k with no overclock would spike to 95C on one core (core1) whenever maxing out all 8 threads, be it real work, mprime, anything with 100% cpu being used. I quadrupled my RAM from 8gb to 32, because its cheap and id like to have all data in memory sometimes, not because I thought that was the problem. I reseated my watercooling block. I checked out the PSU. I unplugged all unnecessary peripherals, drives, etc. It turned out to be a bug in Gigabyte MOBO BIOS (causing temps to be read incorrectly i think, still not exactly sure...) updated from version 5 to 10 and poof now temps are back in the high 50's at full load. it only took 2 days to figure out and i think i learned something
-
Lost about 4 days debugging bug about date conversion between frontend to backend as an api request.
This shit is mad fucking annoying
The date format was always wrong.
So i gotta ask. Is it better to always have date fields as a Long which contains just a huge number that represents a timestamp, and that way whenever i want to see what date it is i would have to convert it every time on both frontend and backend from timestamp into LocalDateTime, or is it better to keep it as Date/LocalDateTime and not string/long, and that way risk fucking up the date format?
How is it done in real world projects? Whats the right way to do it and why?3 -
How many people use a real bug tracker? We use a project management tool for our bug tracking and it SUCKS!
What tools do you use for project management/bug tracking?2 -
Code base is full of /*bug fix - XXXX */ coments, sometimes it feels the software is a Bugenstein's Monster!!
Not sure if this kind of comments serve any real purpose...
Commented old code is a more familiar monster; but that's a tale for another day. -
Do you think the "Fix one bug, two more shall take it's place" is a real thing? Have you ever experienced it?6