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 life bugs"
-
The programmer who killed people: Not so talented programmer named John, made a mistake in his code. because of this mistake the program users spent 15 minutes to do a workaround. this program had 10 million users. In general the users spent 150 million minutes because of john's mistake, which is 2.5 million hours. if a person sleeps about 8 hours a day, he have 16 active hours. which means john wasted 156,250 human days that equals to 427.8 human years. people leave approx. until the age of 64, that means John just killed 6.68 people because of his bug. So john, how do you sleep at night?10
-
Every day.
I am a PHP developer.
Yeah, "another PHP is awful" rant... no, not really.
It's just unsuitable for some ambitious projects, just like Ruby and Python are.
First of all, DO NOT EVER use Laravel for large enterprise applications. The same goes for RoR, Django, and other ActiveRecord MVCs.
They are all neat frameworks for writing a todo app, as a better-than-wordpress flexible blogging solution, even as a custom webshop.
Beyond 50k daily users, Active Record becomes hell due to it's lazy fat querying habits. At more than a million users... *depressed sigh*.
PHP is also completely unsuitable for projects beyond 5M lines of code in my opinion. At more than 25M lines... *another depressed sigh*.
You can let your devs read Clean Code and books about architecture patterns, you can teach them about SOLID & DRY, you can write thousands of tests... it doesn't matter.
PHP is scaffolding, it's made of bamboo and rope. It's not brick or concrete. You can build quickly, but it only scales up to a certain point before it breaks in multiple places.
Eventually you run into patterns where even 100% test coverage still doesn't guarantee shit, because the real-life edge cases are just too complex and numerous.
When you're working on a multi-party invoicing system with adapters for various tax codes, or an availability/planning system working across timezones, or systems which implement geographical routefinding coupled to traffic, event & weather prediction...
PHP, Python, Ruby, etc are just missing types.
Every day I run into bugs which could have been prevented if you could use ADTs in a generic way in PHP. PHP7 has pretty good typehints, and they prevent a lot of messy behavior, but they aren't composable. There is no way to tell PHP "this method accepts a Collection of Users", or "this methods returns maybe either an Apple or a Pear, and I want to force the caller to handle both Apple/Pear and null".
Well, you could do that, but it requires a lot of custom classes and trickery, and you have to rewrite the same logic if you want to typehint a "Collection of Departments" instead of "Collection of Users" -- i.e., it's not composable.
Probably the biggest issue is that languages with a (mostly) structural type system (Haskell, Rust, even C#/JVM languages to some degree, etc) are much slower to develop in for the "startup" era of a project, so you grab a weak, quick prototyping language to get started.
Then, when you reach a more grown up phase, you wish you had a better type system at your disposal...28 -
We had a client visit our PH office to "hang out" and see the progress in this educational type game we were building for their private school (apparently, it's the one that Obama's kids went to).
Manager oversold the progress and actually guaranteed some features that we were still working on and estimated to finish in the next 3 sprints (2 week intervals).
Client was due to be in the office in 2 days.
PM pushes back and says we need to manage client expectations properly.
CEO got wind and sat the dev team down. Dev lead, two seniors, and junior me. He sat us down and asked us what we think.
Lead says we can do it.
Now to be fair, I know this guy to be very competent and an INCREDIBLE programmer. He is the person I consider to be the first real mentor I ever had but I really thought we were fucked here.
Next day and half was hell--for me, at least and I really couldn't see how this was all possible.
But then the fucker came through. This beautiful, majestic meganerd and the two other guys shat out 6 weeks of code in ~30 hours.
And the crazy part was it was all working. Bugs were caught in the next few days for sure, but the demo went flawlessly.
I never doubted this guy again.
Years later, I'd meet up with him and would talk fondly about those days and all he could say was "I don't really remember". He remembers the project and that we had a demo but he couldn't remember anything around those days.
Two of the most stressful days of my life and to him it was a fucking Wednesday. What a fucking champ.4 -
At a certain client, was asked to help them with an "intermediary" solution to stopgap a license renewal on their HR recruiting system.
This is something I was very familiar with, so no big. Did some requirements gathering, told them we could knock it out in 6 weeks.
We start the project, no problems, everything is fine until about 2.5 weeks in. At this point, someone demands that we engage with the testing team early. It grates a little as this client had the typical Indian outsourcing mega-corp pointey-clickey shit show "testing" (automation? Did you mean '10 additional testers?') you get at companies who put business people in charge of technology, but I couldn't really argue with it.
So we're progressing along and the project manager decides now is a great time to bugger the fuck off to India for 3 months, so she's totally gone. This is the point it goes off the rails. Without a PM to control the scope, the "lead tester," we'll call her Shrilldesi, proceeds to sit in a room and start trying to control the design of the system. Rather than testing anything in the specification, she just looked at the existing full HRIS recruiting system they were using and starts submitting bugs for missing features. The fuckwit serfs they'd assigned from HR to oversee this process just allowed it to happen totally losing focus on the fact this was an interim solution to hold them over for 6 months and avoid a contract renewal.
I get real passive aggressive at this point and refuse to deliver anything outside the original scope. We negotiate and end up with about 150% scope bloat and a now untenable timeline that we delivered about 2 weeks late, but in the end that absolute whore made my life a living hell for the duration of the project. She then got the recognition at the project release for her "excellent work," no mention of the people who actually did the work.
Tl;Dr people suck and if you value your sanity, you'll avoid companies that say things like, "we're not in the technology business" as an excuse to have shitty, ignorant staff.6 -
Have you ever had a problem with a partner, but you cannot prove at 100% that he has something against you? But you cannot stand him?
Well, this happened two years ago. I was working as a tester, and “John” (I won’t say his real name) was the dude who tests my tests, but in production.
I ‘m a sociable person, and I don’t mind talking with another people. Suddenly, I noticed that my co-worker started to behave a little bit... rude? Plain? I don’t know, but sometimes he didn’t answer my conversations/questions, or sometimes answered with extra-negative stuff.
“Well, his life is not easy” I said to myself. “Everybody haveproblems”, “I have to understand him and calm down”.
Two weeks later started to report really REALLY absurd production bugs, and with absurd I mean, for example, that he didn’t like the color of a button, a point next to a phrase, etc., things very very simples, but sometimes he ignored big errors.
Once I had to went out of the city for few hours, and asked to permission to go out. I had pending tests, but I left a document with specifications in case of emergency. Even passwords. Before I could finish the thing in the other city, my partner called me two times, and asking me obvious things! I had to go back to the office ealier that I had planned, so f*** angry 😡 and when I arrived to the office, John said “no, forget it, let’s solve it tomorrow” 🙃 WTF?!!!!!!
I decided not to argue with him.
Also noticed that his headaches suddenly increased, and looked so tired ☹️ I felt guilty to judge him
I felt so guilty, and even today I don’t know what to feel about that or what to think. I don’t work there anymore, but, What do you think? What would you do?6 -
Wish I could be Geralt in real life. Fighting ghouls, slaying griffins, brewing potions, repairing swords, helping people, getting laid and roaming across seeing wonders of nature.
Instead I'm here fighting with QA's, squashing bugs, brewing tea, wasting hours in stand-up, pulling my hairs out and finally trying to stay sane in an insane world 😐14 -
Today I learned why it’s so important to have life outside engineering (better put, I remembered this).
For the last couple of weeks, we’ve been working hard to catch some deadlines, contributing to a large oss project. Getting up at 4am, working with the team in my timezone, having some time with family then working with people with 6-9 hour difference was extremelly challenging and I was so tired I literaly was a fucking pain to bear with.
Today, on Saturday, my wife started cleaning the bathroom sink drain. You know, started... “won’t fix” was not an option. First, the dirt and the smell, mmmmmm, you just have to love it. And then the thing collapses (yes, I was optimistic, trying to clean it just partly - I learned not to fix if it aint’t broken, I wonder where).
It’s of course built of trivial parts, but the water just finds its way. Needless to say, I am afraid of it :). In the end, it got resolved. Just as any bug we squash - with some anger and plenty of dirty words.
During the whole thing, I thought to myself, that all that stress at work is quite bearable; it put everything back into a perspective. Great feeling!1 -
This night I dreamt that I could build indexes (yeah, boo me on the plural) for relalife things..trees, buildings, birds.. Everything gets an index, Oprah style!!!! And once last month I also dreamt I could debug real life things.. Look at the person and see what's wrong with them.. All their stats, bugs, everythiiiiing!! So disappointend when I woke up :(7
-
I want to explain to people like ostream (aka aviophille) why JS is a crap language. Because they apparently don't know (lol).
First I want to say that JS is fine for small things like gluing some parts togeter. Like, you know, the exact thing it was intended for when it was invented: scripting.
So why is it bad as a programming language for whole apps or projects?
No type checks (dynamic typing). This is typical for scripting languages and not neccesarily bad for such a language but it's certainly bad for a programming language.
"truthy" everything. It's bad for readability and it's dangerous because you can accidentaly make unwanted behavior.
The existence of == and ===. The rule for many real life JS projects is to always use === to be more safe.
In general: The correct thing should be the default thing. JS violates that.
Automatic semicolon insertion can cause funny surprises.
If semicolons aren't truly optional, then they should not be allowed to be omitted.
No enums. Do I need to say more?
No generics (of course, lol).
Fucked up implicit type conversions that violate the principle of least surprise (you know those from all the memes).
No integer data types (only floating point). BigInt obviously doesn't count.
No value types and no real concept for immutability. "Const" doesn't count because it only makes the reference immutale (see lack of value types). "Freeze" doesn't count since it's a runtime enforcement and therefore pretty useless.
No algebraic types. That one can be forgiven though, because it's only common in the most modern languages.
The need for null AND undefined.
No concept of non-nullability (values that can not be null).
JS embraces the "fail silently" approach, which means that many bugs remain unnoticed and will be a PITA to find and debug.
Some of the problems can and have been adressed with TypeScript, but most of them are unfixable because it would break backward compatibility.
So JS is truly rotten at the core and can not be fixed in principle.
That doesn't mean that I also hate JS devs. I pity your poor souls for having to deal with this abomination of a language.
It's likely that I fogot to mention many other problems with JS, so feel free to extend the list in the comments :)
Marry Christmas!34 -
Debugging in real life
Our family is working on the house. We have an integrated floor heating system, which is connected individually for each room. (we have three rooms, only two are connected yet)
Today we changed the main water boiler. At first it seemed like it was working, but then we lost pressure. It dropped fairly fast so we checked every sink, every water outlet.
We just missed the unconnected floor heating pipe, that was connected to the main pipe...
Its a fucking mess down here, so dont complain about you bugs, I have experienced worse!!!3 -
There has been a post today about the existence of too many js frameworks. Which reminds me of this awesome post https://hackernoon.com/how-it-feels...
At first I thought someone was corpseposting, as it is my understanding that the js ecosystem is calming down a bit. But then I noticed that post got almost 20 upvotes. So here's my thoughts:
(I'm not sure what I'm ranting about here, as it feels kinda broad after writing it. I think it's kinda valid anyhow.)
I'm ok with someone expressing frustration with js. But complaining about progress is definitely off to me.
How is too many frameworks a bad thing?
How does the variety and creation of more modern frameworks affect negatively developers?
Does it make it hard to understand each of these new frameworks?
Well, there's no need to. Just because it has a logo and some nice badges and says it will make you happy doesn't mean you should use it.
You just stick to the big boys in the ecosystem and you'll be fine for a while.
Does it make you feel compelled to migrate the stack of every project you did?
Well, don't. If you don't like being on the bleeding edge of js, then just stick to whatever you're using, as long as it's good code.
But if a lot of companies decided to migrate to react (among others frameworks), it's because they like the upsides: the code is faster to write, easier to test and more performant.
In general, I'm more understanding/empathic with beginner js programmers.
But I have for real heard experienced devs in real life complain about having to learn new frameworks, like they hate it.
"I just want to learn a single framework and just master it throughout my life" and I think they're lowering the bar.
There's people that for real expect occupying positions for life, make money, but never learn a new framework.
We hold other practitioners to high standards (like pilots or doctors), but for some reason, some programmers feel like they're ok with what they know for life.
As if they couldn't translate all they learned with one framework to another.
Meanwhile our lives are becoming more and more intertwined with technology and demand some pretty high standards. Standards that historically have not been met, according to thousands of people screaming to their devices screens.
Even though I think the "js can be frustrating" sentiment is valid, the statement 'too many js frameworks is bad' is not.
I think a statement like 'js frameworks can go obsolete very quickly' is more appropriate.
By saying too many js frameworks is a bad thing you're
1) Making a conspiracy theory as if js devs were working in tandem to make the ecosystem hard,
But people do whatever they want. Some create packages, others star/clone/use them.
2) Making a taboo out of a normal itch, creating.
"hey you're a libdev? just stop, ok? stop"
"Are you a creative person? Do you know a way to solve a problem in an easier way than some famous package? it doesn't matter, don't you dare creating a new package."
I'm not gonna say the js world is perfect. The js world is frantic, savage, evolves aggressively.
You could say that it (accidentally) gives the middle finger to end users, but you could also say that it just sets the bar higher.
I liked writing jquery code in the past, but at the same time I didn't like adding features/fixing bugs on it. It was painful.
So I'm fine with a better framework coming along after a few years and stealing their userbase, as it happens almost universally in the programming world, the difference with js is that the cycle is faster.
Even jquery's creator embraced React.
This post explains also
https://medium.com/@chrisdaviesgeek...13 -
Happy New year
May you have a year that is filled with love and bugs, laughter and debugging , brightness and dark theme , hope and distro hopping and little less windows vs linux shit 😂 please arch guys you too 🙄😝
Wish you all a great year 😅😛
I rarely post anything but I'm pretty active reading every shit post here. we fucking have a great community here. Few people are going through some real shit , hey you, things will get better don't lose hope but don't just wait on it , things don't ever get better by just wishing. Do what has to be done no matter how hard that decision can be.
Cut all those toxic people from your life doesn't matter who they're. You all deserve better
Believe in yourself. Everyone is going through some real shit. Keep fighting. Live for yourself.
You got only one life live upto your fill potential.
Regret is the worst thing so do whatever the fuck you want to do.
Never give up doesn't matter what you're going through.
And in the end may you "live" all the days of your life. -
I don't care about market cap. Stick your hype-driven business practices up your ass. Infinite growth doesn't exist. I won't read your fucking books and attend your fucking bootcamps and MBAs. You don't have a business model. Selling data is not a business model. Fuck your quick-flip venture capital schemes, and especially fuck your “ethics”.
I will be the first alt-tech CEO. I only care about revenue. The real money, not capitalization bubble vaporware. You don't need a huge fleet of engineers if you're smart about your technology, know how to do architecture, and you're not a feature creep. You don't need venture capital if you don't need a huge fleet of engineers. You don't need to sell data if you don't need venture capital. See? See the pattern here?
My experience allows me to build products on entirely my own. I am fully aware of the limitations of being alone, and they only inspire lean thinking and great architectural decisions. If you know throwing capacity at a problem is not an option, you start thinking differently. And if you don't need to hire anyone, it is very easy to turn a profit and make it sustainable.
If you don't follow the path of tech vaporware, you won't have the problems of tech vaporware, namely distrust of your user base, shitty updates that break everything, and of course “oops, they raised capital, time to leave before things go south”.
A friend of mine went the path I'm talking about, developed a product over the course of four years all alone, reached $10k MRR and sold for $0.8M. But I won't sell. I only care about revenue. If I get to $10k MRR, I will most likely stop doing new features and focus on fixing all the bugs there are and improving performance. This and security patches. Maybe an occasional facelift. That's it. Some products are valued because they don't change, like Sublime Text. The utility tool you can rely on. This is my scheme, this is what I want to do in life. A best-kept secret.
Imagine 100 million users that hate my product but use it because there are no alternatives, 100 people in data enrichment department alone, a billion dollars of evaluation (without being profitable), 10 million twitter followers, and ten VC firms telling me what to do and what data to sell.
Fuck that. I'd rather have one thousand loyal customers and $10k MRR. I'm different, some call it a mental illness, but the bottom line is, my goals are beyond their understanding. They call me crazy. I won't say it was never about the money, of course it was, but inflating your evaluation is not “money”. But the only thing they have is their terrible hustle culture lives and some VC street wisdom, meanwhile I HAVE products, it is on record on my PH. I have POTDs, I have a fucking Golden Kitty nomination on health and fitness for a product I made in one day. Fuck you.7 -
Fixing bugs is kind of like picking freshly washed socks from the washing machine all socks at once.
As i grab the last sock from the washing machine, I drop a sock..
As i pick up the sock i dropped, I drop two more.. -
Just debugged and patched a broken loveseat. I looked at the components on the working part and compared it to the components on the broken part. Could not figure out what the actual problem was, so I hammered out a makeshift solution that has things temporarily working.
Sounds like my job. -
Protip: Bugs exist everywhere, also in real life (no pun intended). Trying to think of possible real-life-bugfixes while commuting (train legroom too small, traffic jam on the same spot every day) makes makes the entry to your work projects easier. You simply haven't stopped thinking about bugfixes, only the project changed to "commuting".
-
Who amongst you remembers Ultima Online?
At one point probably one of the best games ever made. Even wrote the record for most players online and got in the Guinness Book of records for it. This was during the dial-up days. You kids these days have no idea how slow internet was or how cool it was to hear those three special words, You've Got Mail.
Everquest and WOW dont have shit on this game even if it never really went 3D. There was a sorta blocky 3d but it sucked which is why it failed. Everyone was content with 2d because the blocky 3d was trash in most circumstances.
With Ultima it made you feel like a kinda second life. And it wasn't a chore like Life Is Feudal or many of the other grundy games of today.
My 80 year old grandfather played it all day everyday. That's how fucking good the game was.
I would still be playing the official servers a decade plus, later if they would stop adding unnecessary dlc and they wouldn't have added a pay store.
It seriously pisses me off that I spent years collecting and hoarding rare items that I actually fucking earned and the assholes add a pay store that lets these new players buy the item I fought a boss four hours to get.
It ain't fucking right. It literally makes the rares worthless and my efforts pointless.
EA also rushed Ultima IX so it was buggy as hell and technically unbeatable unless you edited the game to let you cheat. Richard Garriott made the game and bugs and all is a masterpiece. His new game Shroud of The Avatar, not so much but that's a different rant.
I honestly wish EA would go out of business. They have ruined enough of my favorite titles with their incompetent bullshit and greedy cash grabs. If they would just make UO the way it was around the second age or Lord Blackthorn I'd guess a lot of us old-school vets would come back.
But as it is our only real option is to build our own servers or play someone else's which is what I do. Fuck EA!9 -
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