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 - "death line"
-
To the person who architected a system where business logic is encoded to XML within CDATA sections within other XML data inside a 10000 line file that also describes the presentation of this same data:
I hope you meet a violent death. Your suffering should be equal to what developers who had to deal with your perverted shit experienced.
Motherfucker.4 -
Warning: pretty sad thoughts. If you're having a blast of a day, please skip. It's for your own good.
That feeling when you finish watching a piece of art. Be it a film or anime or anything. You're confused why you feel good, but at the same time you're hurt. You smile but the pain is still there when you reflect on the feelings and the experiences you had and you realise that none of it will ever happen again. No art or any of the past will happen again exactly the same way how you felt and experienced.
You think of the best friend you once had. Think of the girl you held hands with and time stopped. The first time you embraced her and knew you loved her more than anything, even if she didn't know your feelings. Think of your first kiss. Your first serious relationship. The last time you saw your parents, your wife, your children, family.
Now look at the perspective of the future and the past you: blissfully ignoring the certain end to all experiences until they all abruptly end reminding you of this and it hurts. Damn it hurts.
I will never be able to see me best friend again, nor will I ever be able to hold hands with her either. First time I kissed is now long gone. It's almost like you wish you were aware of how valuable and important the experience was and to not just throw it away like the last time and the several times before that. But the sad part is, you don't know which experience will make you realise how much you missed it.
But even if you do realise by placing yourself in the place of your future self, and you cherish the experience, you blame yourself because you could have either avoided it's end or did something better.
Like your break up: could it be fixed? Was it worth the little time you have on this plante?
Like your friends argument you had: could you have done better? Could you have stopped it?
Like your parent's death: could you have been a better son to your now overworked dying mum? Could you see how hard they tried even though you thought they were total dicks?
Now you realise that literally anything you do, you will have a problem with somewhere down the line. You're destined to be sad shattered and broken by every day that is tragedy.
But it's similar to art. After all, your life is a piece of art about how you died. Which is why you smile and enjoy the last second of the experience which you just had. That chest warming feeling will only last a little. You smile through pain, yet you realise its not the end.
Then again, its just my thoughts that i need to vent. Take it with a pinch of salt.8 -
I don't know if I'm being pranked or not, but I work with my boss and he has the strangest way of doing things.
- Only use PHP
- Keep error_reporting off (for development), Site cannot function if they are on.
- 20,000 lines of functions in a single file, 50% of which was unused, mostly repeated code that could have been reduced massively.
- Zero Code Comments
- Inconsistent variable names, function names, file names -- I was literally project searching for months to find things.
- There is nothing close to a normalized SQL Database, column ID names can't even stay consistent.
- Every query is done with a mysqli wrapper to use legacy mysql functions.
- Most used function is to escape stirngs
- Type-hinting is too strict for the code.
- Most files packed with Inline CSS, JavaScript and PHP - we don't want to use an external file otherwise we'd have to open two of them.
- Do not use a package manger composer because he doesn't have it installed.. Though I told him it's easy on any platform and I'll explain it.
- He downloads a few composer packages he likes and drag/drop them into random folder.
- Uses $_GET to set values and pass them around like a message contianer.
- One file is 6000 lines which is a giant if statement with somewhere close to 7 levels deep of recursion.
- Never removes his old code that bloats things.
- Has functions from a decade ago he would like to save to use some day. Just regular, plain old, PHP functions.
- Always wants to build things from scratch, and re-using a lot of his code that is honestly a weird way of doing almost everything.
- Using CodeIntel, Mess Detectors, Error Detectors is not good or useful.
- Would not deploy to production through any tool I setup, though I was told to. Instead he wrote bash scripts that still make me nervous.
- Often tells me to make something modern/great (reinventing a wheel) and then ends up saying, "I think I'd do it this way... Referes to his code 5 years ago".
- Using isset() breaks things.
- Tens of thousands of undefined variables exist because arrays are creates like $this[][][] = 5;
- Understanding the naming of functions required me to write several documents.
- I had to use #region tags to find places in the code quicker since a router was about 2000 lines of if else statements.
- I used Todo Bookmark extensions in VSCode to mark and flag everything that's a bug.
- Gets upset if I add anything to .gitignore; I tried to tell him it ignores files we don't want, he is though it deleted them for a while.
- He would rather explain every line of code in a mammoth project that follows no human known patterns, includes files that overwrite global scope variables and wants has me do the documentation.
- Open to ideas but when I bring them up such as - This is what most standards suggest, here's a literal example of exactly what you want but easier - He will passively decide against it and end up working on tedious things not very necessary for project release dates.
- On another project I try to write code but he wants to go over every single nook and cranny and stay on the phone the entire day as I watch his screen and Im trying to code.
I would like us all to do well but I do not consider him a programmer but a script-whippersnapper. I find myself trying to to debate the most basic of things (you shouldnt 777 every file), and I need all kinds of evidence before he will do something about it. We need "security" and all kinds of buzz words but I'm scared to death of this code. After several months its a nice place to work but I am convinced I'm being pranked or my boss has very little idea what he's doing. I've worked in a lot of disasters but nothing like this.
We are building an API, I could use something open source to help with anything from validations, routing, ACL but he ends up reinventing the wheel. I have never worked so slow, hindered and baffled at how I am supposed to build anything - nothing is stable, tested, and rarely logical. I suggested many things but he would rather have small talk and reason his way into using things he made.
I could fhave this project 50% done i a Node API i two weeks, pretty fast in a PHP or Python one, but we for reasons I have no idea would rather go slow and literally "build a framework". Two knuckleheads are going to build a PHP REST framework and compete with tested, tried and true open source tools by tens of millions?
I just wanted to rant because this drives me crazy. I have so much stress my neck and shoulder seems like a nerve is pinched. I don't understand what any of this means. I've never met someone who was wrong about so many things but believed they were right. I just don't know what to say so often on call I just say, 'uhh..'. It's like nothing anyone or any authority says matters, I don't know why he asks anything he's going to do things one way, a hard way, only that he can decipher. He's an owner, he's not worried about job security.13 -
class Life extends Death{
public static void main(String...args){
Guy me = new Guy();
me.born();
GirlFriend gf = new GirlFriend();
me.setGirlFriend(gf);
me.getMarried();
me.haveSon();
me.die();
}
}
------- Exception on line 5: NullPointerException, girlfriend cannot be null ---
Daaamnn6 -
Everyone and their dog is making a game, so why can't I?
1. open world (check)
2. taking inspiration from metro and fallout (check)
3. on a map roughly the size of the u.s. (check)
So I thought what I'd do is pretend to be one of those deaf mutes. While also pretending to be a programmer. Sometimes you make believe
so hard that it comes true apparently.
For the main map I thought I'd automate laying down the base map before hand tweaking it. It's been a bit of a slog. Roughly 1 pixel per mile. (okay, 1973 by 1067). The u.s. is 3.1 million miles, this would work out to 2.1 million miles instead. Eh.
Wrote the script to filter out all the ocean pixels, based on the elevation map, and output the difference. Still had to edit around the shoreline but it sped things up a lot. Just attached the elevation map, because the actual one is an ugly cluster of death magenta to represent the ocean.
Consequence of filtering is, the shoreline is messy and not entirely representative of the u.s.
The preprocessing step also added a lot of in-land 'lakes' that don't exist in some areas, like death valley. Already expected that.
But the plus side is I now have map layers for both elevation and ecology biomes. Aligning them close enough so that the heightmap wasn't displaced, and didn't cut off the shoreline in the ecology layer (at export), was a royal pain, and as super finicky. But thankfully thats done.
Next step is to go through the ecology map, copy each key color, and write down the biome id, courtesy of the 2017 ecoregions project.
From there, I write down the primary landscape features (water, plants, trees, terrain roughness, etc), anything easy to convey.
Main thing I'm interested in is tree types, because those, as tiles, convey a lot more information about the hex terrain than anything else.
Once the biomes are marked, and the tree types are written, the next step is to assign a tile to each tree type, and each density level of mountains (flat, hills, mountains, snowcapped peaks, etc).
The reference ids, colors, and numbers on the map will simplify the process.
After that, I'll write an exporter with python, and dump to csv or another format.
Next steps are laying out the instances in the level editor, that'll act as the tiles in question.
Theres a few naive approaches:
Spawn all the relevant instances at startup, and load the corresponding tiles.
Or setup chunks of instances, enough to cover the camera, and a buffer surrounding the camera. As the camera moves, reconfigure the instances to match the streamed in tile data.
Instances here make sense, because if theres any simulation going on (and I'd like there to be), they can detect in event code, when they are in the invisible buffer around the camera but not yet visible, and be activated by the camera, or deactive themselves after leaving the camera and buffer's area.
The alternative is to let a global controller stream the data in, as a series of tile IDs, corresponding to the various tile sprites, and code global interaction like tile picking into a single event, which seems unwieldy and not at all manageable. I can see it turning into a giant switch case already.
So instances it is.
Actually, if I do 16^2 pixel chunks, it only works out to 124x68 chunks in all. A few thousand, mostly inactive chunks is pretty trivial, and simplifies spawning and serializing/deserializing.
All of this doesn't account for
* putting lakes back in that aren't present
* lots of islands and parts of shores that would typically have bays and parts that jut out, need reworked.
* great lakes need refinement and corrections
* elevation key map too blocky. Need a higher resolution one while reducing color count
This can be solved by introducing some noise into the elevations, varying say, within one standard div.
* mountains will still require refinement to individual state geography. Thats for later on
* shoreline is too smooth, and needs to be less straight-line and less blocky. less corners.
* rivers need added, not just large ones but smaller ones too
* available tree assets need to be matched, as best and fully as possible, to types of trees represented in biome data, so that even if I don't have an exact match, I can still place *something* thats native or looks close enough to what you would expect in a given biome.
Ponderosa pines vs white pines for example.
This also doesn't account for 1. major and minor roads, 2. artificial and natural attractions, 3. other major features people in any given state are familiar with. 4. named places, 5. infrastructure, 6. cities and buildings and towns.
Also I'm pretty sure I cut off part of florida.
Woops, sorry everglades.
Guess I'll just make it a death-zone from nuclear fallout.
Take that gators!5 -
New year is the only +1 I do not give a fuck about. All it means is I am one year closer to death, so I will smoke one more cigarette after the last, one more cup of coffee with far too much sugar, and I will keep coding one more line after the other, and frankly it is just to distract me from the fact that there is always another +1, one more person to hate, one more word spoken, all so I can get to through one more year. So fuck the new year because there will always be another. But I won't always get a +1 on a rant.5
-
Bible verses.
Sorted from "wtf" to progressively more disturbing.
---
1️⃣ One of many contradictions
---
John 4:12
"No one has seen the face of God."
Genesis 32:31
"I have seen the face of God..."
---
2️⃣ All-Knowing God, regrets creating you
---
Genesis 6:6
"And it repented the LORD that he had made man on the earth, and it grieved him at his heart."
---
3️⃣ Says to kill all gay people
---
Leviticus 20:13
"If a man lies with a male as with a woman, they have committed an abomination; the two of them shall be put to death; their bloodguilt is upon them."
---
4️⃣ Approval of sex trafficking
---
Exodus 21:7
"If a man sells his daughter as a servant, she is not to go free as male servants do. If she does not please the master who has selected her for himself, he must let her be redeemed."
---
5️⃣ Says its ok to own slaves
---
Exodus 21:20-21
"Anyone who beats their male or female slave with a rod must be punished if the slave dies as a direct result, but they are not to be punished if the slave recovers after a day or two, since the slave is their property."
---
6️⃣ Says its ok to kill children
---
Psalms 137:9
"Blessed the one who seizes your children and smashes them against the rock: the children represent the future generations, and so must be destroyed if the enemy is truly to be eradicated."
---
7️⃣ Says a raped woman must marry her rapist
---
Deuteronomy 22:28–29
"If a man meets a virgin who is not betrothed, and seizes her and lies with her, and they are found, then the man who lay with her shall give to the father of the young woman fifty shekels of silver, and she shall be his wife, because he has violated her. He may not divorce her all his days."
---
8️⃣ Says incest is ok
---
Genesis 19:32-36
"Let’s get our father to drink wine and then sleep with him and preserve our family line through our father. That night they got their father to drink wine, and the older daughter went in and slept with him. He was not aware of it when she lay down or when she got up. The next day the older daughter said to the younger, “Last night I slept with my father. Let’s get him to drink wine again tonight, and you go in and sleep with him so we can preserve our family line through our father.” So they got their father to drink wine that night also, and the younger daughter went in and slept with him. Again he was not aware of it when she lay down or when she got up. So both of Lot’s daughters became pregnant by their father."19 -
!dev
This boring story with stupid ending started on Monday with me going out to buy some food and cook something delicious, day like always until my mind went nuts.
I work from home and cook my meals by myself cause I love cooking.
To buy ingredients I go shopping couple times a week always making the same steps, doing this for over a year now and by this time everything was automatic so I could think about work problems and solutions.
I start usually by getting up from my desk around noon, not many people doing shopping at that time and I can proceed quick.
Algorithm is like this: go to kitchen and look at the fridge, go out, wait for traffic lights, take tram, ride two stops, wait for the traffic lights again, go to supermarket, do shopping and finally go back the same way. Boooring.
When I get out from tram that day l looked at traffic lights to go green, as always and that’s the place where everything started to go bad.
So I was waiting there doing nothing and then stupid idea got me.
I figured out I can stop looking at light to make this day different and look ahead.
Then simply start walking when people from other side start walking.
It worked smoothly on those lights and I was happy I can do things differently from now on. I proceed with this idea on the way back and motherfuckers started walking on red. Twice !!!!
Almost died.
Since then three times some car was driving on green near me in those places and people started walking on red.
It got me worried about world determinism instantly. I might increased some entropy to much and some world developer changed some line of code while I was shopping and from that time death is passing by me.
Now it got me to the point where the more I follow this way the more I am worried about my life. Started thinking about ordering ingredients online.
So if you read this you know that I know your plan and I will be changing supermarkets and paths to it randomly starting from next week.
Or not I hope nobody hacked my mind and only thing that read and write to it is my consciousness.
I feel relief now.2 -
Go to bed tired. Wake up tired. Get up tired.
A month ago I was excited doing my work, I even was planning a huge change on one of our projects, detailed everything and passed it over to other folks to get funding. Now I seriously doubt I could pull it off. When I start reading a line of code I forget how it started before I reach the \n.
There was this thing I was asked to implement... A nifty one, I already could see the implementation. As I came to it I got stuck. Like when your body gets "stuck" when you get scared to death - you know what you have to do (i.e. RUN), you know how, but for some reason you just can't... Couldn't come up with anything. The other dev had to take it over and implemented it all in like 4 hours. Just like that. And it took me another 4 hours to understand how and why it worked when I know it should not take me that long as I used to write similar algorithms myself for fucks sake! I know I could have written it myself... but I couldn't..
I'm seriously worried.. Is this the end of my carreer as a dev? Am I broken somehow? I have some vacation days saved but I doubt it would be enough... Don't know if changing workplaces would work as well. I've always wanted to leave 9/5 and start working on my own project full time but now I am not sure I could pull it off either.. wtf is happening.. wtf... wtf.. -
I really hate PHP frameworks.
I also often write my own frameworks but propriety. I have two decades experience doing without frameworks, writing frameworks and using frameworks.
Virtually every PHP framework I've ever used has causes more headaches than if I had simply written the code.
Let me give you an example. I want a tinyint in my database.
> Unknown column type "tinyint" requested.
Oh, doctrine doesn't support it and wont fix. Doctrine is a library that takes a perfectly good feature rich powerful enough database system and nerfs it to the capabilities of mysql 1.0.0 for portability and because the devs don't actually have the time to create a full ORM library. Sadly it's also the defacto for certain filthy disgusting frameworks whose name I shan't speak.
So I add my own type class. Annoying but what can you do.
I have to try to use it and to do so I have to register it in two places like this (pseudo)...
Types::add(Tinyint::class);
Doctrine::add(Tinyint::class);
Seems simply enough so I run it and see...
> Type tinyint already exists.
So I assume it's doing some magic loading it based on the directory and commend out the Type::add line to see.
> Type to be overwritten tinyint does not exist.
Are you fucking kidding me?
At this point I figure out it must be running twice. It's booting twice. Do I get a stack trace by default from a CLI command? Of course not because who would ever need that?
I take a quick look at parent::boot(). HttpKernel is the standard for Cli Commands?
I notice it has state, uses a protected booted property but I'm curious why it tries to boot so many times. I assume it's user error.
After some fiddling around I get a stack trace but only one boot. How is it possible?
It's not user error, the program flow of the framework is just sub par and it just calls boot all over the place.
I use the state variable and I have to do it in a weird way...
> $booted = $this->booted;parent::boot();if (!$booted) {doStuffOnceThatDependsOnParentBootage();}
A bit awkward but not life and death. I could probably just return but believe or not the parent is doing some crap if already booted. A common ugly practice but one that works is to usually call doSomething and have something only work around the state.
The thing is, doctrine does use TINYINT for bool and it gets all super confused now running commands like updates. It keeps trying to push changes when nothing changed. I'm building my own schema differential system for another project and it doesn't have these problems out of the box. It's not clever enough to handle ambiguous reverse mappings when single types are defined and it should be possible to match the right one or heck both are fine in this case. I'd expect ambiguity to be a problem with reverse engineer, not compare schema to an exact schema.
This is numpty country. Changing TINYINT UNSIGNED to TINYINT UNSIGNED. IT can't even compare two before and after strings.
There's a few other boots I could use but who cares. The internet seems to want to use that boot function. There's also init stages missing. Believe it or not there's a shutdown and reboot for the kernel. It might not be obvious but the Type::add line wants to go not in the boot method but in the top level scope along with the class definition. The top level scope is run only once.
I think people using OOP frameworks forget that there's a scope outside of the object in PHP. It's not ideal but does the trick given the functionality is confined to static only. The register command appears to have it's own check and noop or simply overwrite if the command is issued twice making things more confusing as it was working with register type before to merely alias a type to an existing type so that it could detect it from SQL when reverse engineering.
I start to wonder if I should just use columnDefinition.
It's this. Constantly on a daily basis using these pretentious stuck up frameworks and libraries.
It's not just the palava which in this case is relatively mild compared to some of the headaches that arise. It's that if you use a framework you expect basic things out of the box like oh I don't know support for the byte/char/tinyint/int8 type and a differential command that's able to compare two strings to see if they're different.
Some people might say you're using it wrong. There is such a thing as a learning curve and this one goes down, learning all the things it can't do. It's cripplesauce.12 -
Reading "duh... that link looks sketchy" time after time when attempting to nudge people in the direction of good resources, e.g., on-line manual pages, becomes rather irritating. Is typing the URL into VirusTotal or something really such a fucking hassle? Are you sufficiently special to warrant the creation of an IP grabber which is dedicated to targeting you... AFTER you posted your exact location on Instagram last week?
Similarly, some pants-shitting, worm-eating troglodytes who have the gall to claim to know anything about cybersecurity STILL think that for all Web sites k, that k's URL begins with "https" implies that k is secure. NO! Unencrypted Web sites are FINE unless sensitive information is being transferred. Are publicly available manual pages sensitive information now?
Grabbing the campaign hat and writing death threats and very personal insults is sometimes slightly tempting.5 -
C is one of those languages that I have no idea why I really even mess around with it. It's cool, and useful, and all that jazz. But holy hell messing up one little line of code is the death of everything.
One forgotten semi-colon, and you whole program is gone. It will mess up other lines of code, which will mess up other lines of code, so on and so forth. I've even had times where I have to almost rewrite little programs I'm playing around with because of how much little errors can mess it up.
Don't even get me started on compiling. I don't even want to get into it now.1 -
!rant
If any of you were wondering why all the panic when we keep hearing reports of so few people personally knowing anyone with covid19 symptoms, I think I just figured out why.
So as of yesterday, assume unofficially fatality is 15%. Yesterdays death total was 3861.
If we assume roughly 15% death rate, based on ten days average for a case to recover or die, then the cases that would be recovering today on april 1st would have been infected or started to show symptoms on march 22nd.
At that time there was 32882 cases total in the u.s.
Therefore for april 1st, that would mean by the end of the day today, if the ~15% fatality rate is accurate, there would be at least 4,932 fatalities logged today.
I don't know about you, but here it's almost 9am, not even halfway through the day, and we're already at 4067 deaths.
And now we get to the part where all this shit starts to make sense.
For a long time since this outbreak has started somethings been bugging me and I couldn't place what it was till now.
Why did it seem, no matter how high the numbers climbed, no matter how much this spread 'like the flu', no matter how hard I looked into it, very few people seemed to personally know anyone *in real life* who died or at least came down with this?
I mean we'd all heard the rumors that it was more lethal, and then mums the word, it seemed like media the world over simply except the official "it's only 2% lethal" line. Same as the line about it only infecting people of asian descent.
And it didn't make sense to me why the numbers were so high, and why all the panic if it's just the flu? I knew in the back of my mind it wasn't I just didn't have a specific reason why.
Here it is: This thing is still pretty contagious, but not as contagious as it *could* be with a lower fatality rate. And with a fatality rate at 15%, combine with *just sufficient* spread, it would continue to burn and fester in communities for a year or more until those panic-numbers we see on the news would become a real thing. And then no matter HOW flat we made the curve, it would be x5-x50 times worse than a bad flu.
So we get panic and fake numbers. Because you really don't want to catch this thing. It kills 1 in 6.6. And it spread just enough that it is hard to effectively fight.8 -
My favorite xkcd quotes (order is not significant )
1. _*It's the world's tiniest open-source violin.*_
2. ...too honest. Scale it back.
3. I'd like to bestow upon you the first annual AWARD of EXCELLENCE in BEING VERY SMART. May you continue to grace our internet with your wisdom.
4. wait, what?
5. Yeah, uh ... I accidentally took the Fourier transform of my cat ...
6. Okay, we _suck_ at this.
7. You either need more medication or less. Not sure which.
8. I THINK EVERYONE INVOLVED HERE IS CUTE
9. World's Greatest Daughter
10. People who open bananas for the other end
11. Just for the sake of the argument, we should get a boat! You can invite the Devil, too, if you want.
12. This explain a lot.
13. My bag is 90% backup batteries.
14. Well- will you be my "it's complicated" on facebook?
15. Oh God. Gotta get out. The window.
16. Sweet! I finally got my subduction license!
17. I'll tell you later - you wouldn't appreciate the punchline over this 12kbps cell phone codec.
18. RON PAUL evolves into TRON PAUL
19. Just talk to them like a f***ing human being
20. In ordering #5, self-driving cars will happily drive you around, but if you tell them to drive to a car dealership, they just lock the doors and politely ask how long humans take to starve to death.
21. I eat my body weight in food every 31 days. That's slightly faster than the human average.
22. Nice try, Mike. Get out of the well.
23. Apollo retroreflectors
24. Can't see space vampires
25. My class on screenshots was a big hit, although for some reason I only ever sold one copy of the digital textbook.
26. WHAT.
27. Introducing The xkcd Phone 6, VIII, 10, X, 26, and 1876. We didn't start this nonconsecutive version number war, but we will not lose it.
28. My morality has evaporated over the harsh UV light.
29. Come on. Somewhere at the edge of the bell curve is the girl for me.
30. P.P.S. I can kill you with my brain.
31. Time to accelerate this giant machine up to terrifying speeds and steer it using my hands, which I am allowed to do because I took a 20-minute test in high school!
32. My normal approach is useless here
33. Wake up, sheeple!
34. Sir- strategic command has send us a lunch order.
35. Yeah, but first I'm gonna go comatose for a few hours, hallucinate vividly, and maybe suffer amnesia about the whole experience.
36. HOLY S***. Guys- people are complicated!
37. OH GOD- SPIDERS
38. Perhaps you need a crash course in taking hints. Here's your first lesson: We're not actually walking somewhere together; I'm trying to leave this conversation and you're following me.
39. How did the pole vaulters get up to our balcony?
40. Friggin' Python
41. I am the goddamn *Michael Jordan* of blurring the line between metaphor and reality. [tosses a basketball]