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 - "names"
-
I’m surrounded by idiots.
I’m continually reminded of that fact, but today I found something that really drives that point home.
Gather ‘round, everybody, it’s story time!
While working on a slow query ticket, I perused the code, finding several causes, and decided to run git blame on the files to see what dummy authored the mental diarrhea currently befouling my screen. As it turns out, the entire feature was written by mister legendary Apple golden boy “Finder’s Keeper” dev himself.
To give you the full scope of this mess, let me start at the frontend and work my way backward.
He wrote a javascript method that tracks whatever row was/is under the mouse in a table and dynamically removes/adds a “.row_selected” class on it. At least the js uses events (jQuery…) instead of a `setTimeout()` so it could be worse. But still, has he never heard of :hover? The function literally does nothing else, and the `selectedRow` var he stores the element reference in isn’t used elsewhere.
This function allows the user to better see the rows in the API Calls table, for which there is a also search feature — the very thing I’m tasked with fixing.
It’s worth noting that above the search feature are two inputs for a date range, with some helpful links like “last week” and “last month” … and “All”. It’s also worth noting that this table is for displaying search results of all the API requests and their responses for a given merchant… this table is enormous.
This search field for this table queries the backend on every character the user types. There’s no debouncing, no submit event, etc., so it triggers on every keystroke. The actual request runs through a layer of abstraction to parse out and log the user-entered date range, figure out where the request came from, and to map out some column names or add additional ones. It also does some hard to follow (and amazingly not injectable) orm condition building. It’s a mess of functional ugly.
The important columns in the table this query ultimately searches are not indexed, despite it only looking for “create_order” records — the largest of twenty-some types in the table. It also uses partial text matching (again: on. every. single. keystroke.) across two varchar(255)s that only ever hold <16 chars — and of which users only ever care about one at a time. After all of this, it filters the results based on some uncommented regexes, and worst of all: instead of fetching only one page’s worth of results like you’d expect, it fetches all of them at once and then discards what isn’t included by the paginator. So not only is this a guaranteed full table scan with partial text matching for every query (over millions to hundreds of millions of records), it’s that same full table scan for every single keystroke while the user types, and all but 25 records (user-selectable) get discarded — and then requeried when the user looks at the next page of results.
What the bloody fucking hell? I’d swear this idiot is an intern, but his code does (amazingly) actually work.
No wonder this search field nearly crashed one of the servers when someone actually tried using it.
Asdfajsdfk.rant fucking moron even when taking down the server hey bob pass me all the paperclips mysql murder terrible code slow query idiot can do no wrong but he’s the golden boy idiots repeatedly murdered mysql in the face21 -
Code works.
Rename a variable for clarity.
Third-party lib behaves differently, breaks things.
Change the var names back.
Still broken.
Stash changes and checkout previous commit.
Everything works.
Diff with stash.
No notable changes. (some comments, ...)
Checkout branch again, pop stash.
Broken again.
... What?19 -
What an absolute fucking disaster of a day. Strap in, folks; it's time for a bumpy ride!
I got a whole hour of work done today. The first hour of my morning because I went to work a bit early. Then people started complaining about Jenkins jobs failing on that one Jenkins server our team has been wanting to decom for two years but management won't let us force people to move to new servers. It's a single server with over four thousand projects, some of which run massive data processing jobs that last DAYS. The server was originally set up by people who have since quit, of course, and left it behind for my team to adopt with zero documentation.
Anyway, the 500GB disk is 100% full. The memory (all 64GB of it) is fully consumed by stuck jobs. We can't track down large old files to delete because du chokes on the workspace folder with thousands of subfolders with no Ram to spare. We decide to basically take a hacksaw to it, deleting the workspace for every job not currently in progress. This of course fucked up some really poorly-designed pipelines that relied on workspaces persisting between jobs, so we had to deal with complaints about that as well.
So we get the Jenkins server up and running again just in time for AWS to have a major incident affecting EC2 instance provisioning in our primary region. People keep bugging me to fix it, I keep telling them that it's Amazon's problem to solve, they wait a few minutes and ask me to fix it again. Emails flying back and forth until that was done.
Lunch time already. But the fun isn't over yet!
I get back to my desk to find out that new hires or people who got new Mac laptops recently can't even install our toolchain, because management has started handing out M1 Macs without telling us and all our tools are compiled solely for x86_64. That took some troubleshooting to even figure out what the problem was because the only error people got from homebrew was that the formula was empty when it clearly wasn't.
After figuring out that problem (but not fully solving it yet), one team starts complaining to us about a Github problem because we manage the github org. Except it's not a github problem and I already knew this because they are a Problem Team that uses some technical authoring software with Git integration but they only have even the barest understanding of what Git actually does. Turns out it's a Git problem. An update for Git was pushed out recently that patches a big bad vulnerability and the way it was patched causes problems because they're using Git wrong (multiple users accessing the same local repo on a samba share). It's a huge vulnerability so my entire conversation with them went sort of like:
"Please don't."
"We have to."
"Fine, here's a workaround, this will allow arbitrary code execution by anyone with physical or virtual access to this computer that you have sitting in an unlocked office somewhere."
"How do I run a Git command I don't use Git."
So that dealt with, I start taking a look at our toolchain, trying to figure out if I can easily just cross-compile it to arm64 for the M1 macbooks or if it will be a more involved fix. And I find all kinds of horrendous shit left behind by the people who wrote the tools that, naturally, they left for us to adopt when they quit over a year ago. I'm talking entire functions in a tool used by hundreds of people that were put in as a joke, poorly documented functions I am still trying to puzzle out, and exactly zero comments in the code and abbreviated function names like "gars", "snh", and "jgajawwawstai".
While I'm looking into that, the person from our team who is responsible for incident communication finally gets the AWS EC2 provisioning issue reported to IT Operations, who sent out an alert to affected users that should have gone out hours earlier.
Meanwhile, according to the health dashboard in AWS, the issue had already been resolved three hours before the communication went out and the ticket remains open at this moment, as far as I know.5 -
Biggest challenge I overcame as dev? One of many.
Avoiding a life sentence when the 'powers that be' targeted one of my libraries for the root cause of system performance issues and I didn't correct that accusation with a flame thrower.
What the accusation? What I named the library. Yep. The *name* was causing every single problem in the system.
Panorama (very, very expensive APM system at the time) identified my library in it's analysis, the calls to/from SQLServer was the bottleneck
We had one of Panorama's engineers on-site and he asked what (not the actual name) MyLibrary was and (I'll preface I did not know or involved in any of the so-called 'research') a crack team of developers+managers researched the system thoroughly and found MyLibrary was used in just about every project. I wrote the .Net 1.1 MyLibrary as a mini-ORM to simplify the execution of database code (stored procs, etc) and gracefully handle+log database exceptions (auto-logged details such as the target db, stored procedure name, parameter values, etc, everything you'd need to troubleshoot database errors). This was before Dapper and the other fancy tools used by kids these days.
By the time the news got to me, there was a team cobbled together who's only focus was to remove any/every trace of MyLibrary from the code base. Using Waterfall, they calculated it would take at least a year to remove+replace MyLibrary with the equivalent ADO.Net plumbing.
In a department wide meeting:
DeptMgr: "This day forward, no one is to use MyLibrary to access the database! It's slow, unprofessionally named, and the root cause of all the database issues."
Me: "What about MyLibrary is slow? It's excecuting standard the ADO.Net code. Only extra bit of code is the exception handling to capture the details when the exception is logged."
DeptMgr: "We've spent the last 6 weeks with the Panorama engineer and he's identified MyLibrary as the cause. Company has spent over $100,000 on this software and we have to make fact based decisions. Look at this slide ... "
<DeptMgr shows a histogram of the stacktrace, showing MyLibrary as the slowest>
Me: "You do realize that the execution time is the database call itself, not the code. In that example, the invoice call, it's the stored procedure that taking 5 seconds, not MyLibrary."
<at this point, DeptMgr is getting red-face mad>
AreaMgr: "Yes...yes...but if we stopped using MyLibrary, removing the unnecessary layers, will make the code run faster."
<typical headknodd-ers knod their heads in agreement>
Dev01: "The loading of MyLibrary takes CPU cycles away from code that supports our customers. Every CPU cycle counts."
<headknod-ding continues>
Me: "I'm really confused. Maybe I'm looking at the data wrong. On the slide where you highlighted all the bottlenecks, the histogram shows the latency is the database, I mean...it's right there, in red. Am I looking at it wrong?"
<this was meeting with 20+ other devs, mgrs, a VP, the Panorama engineer>
DeptMgr: "Yes you are! I know MyLibrary is your baby. You need to check your ego at the door and face the facts. Your MyLibrary is a failed experiment and needs to be exterminated from this system!"
Fast forward 9 months, maybe 50% of the projects updated, come across the documentation left from the Panorama. Even after the removal of MyLibrary, there was zero increases in performance. The engineer recommended DBAs start optimizing their indexes and other N+1 problems discovered. I decide to ask the developer who lead the re-write.
Me: "I see that removing MyLibrary did nothing to improve performance."
Dev: "Yes, DeptMgr was pissed. He was ready to throw the Panorama engineer out a window when he said the problems were in the database all along. Didn't you say that?"
Me: "Um, so is this re-write project dead?"
Dev: "No. Removing MyLibrary introduced all kinds of bugs. All the boilerplate ADO.Net code caused a lot of unhandled exceptions, then we had to go back and write exception handling code."
Me: "What a failure. What dipshit would think writing more code leads to less bugs?"
Dev: "I know, I know. We're so far behind schedule. We had to come up with something. I ended up writing a library to make replacing MyLibrary easier. I called it KnightRider. Like the TV show. Everyone is excited to speed up their code with KnightRider. Same method names, same exception handling. All we have to do is replace MyLibrary with KnightRider and we're done."
Me: "Won't the bottlenecks then point to KnightRider?"
Dev: "Meh, not my problem. Panorama meets primarily with the DBAs and the networking team now. I doubt we ever use Panorama to look at our C# code."
Needless to say, I was (still) pissed that they had used MyLibrary as dirty word and a scapegoat for months when they *knew* where the problems were. Pissed enough for a flamethrower? Maybe.10 -
God, I love when people name stuff right. Now I'm reading through an open source project, trying to find out how they solved a critical issue I'm facing now. It's not a small one but navigating through it is a breeze. Look through variable/function names and I don't even really need to read the code. Meanwhile, last assignment, there was "yangDataHandler" and "yangDataManager" that, obviously, had nothing to do with each other in either interoperability or functionality - and then half of the variables would get aliased to abbreviations. Uh, yes, sure it's obvious what
𝚋𝚣𝚋𝚠𝚒 variable means. Just let me run it through 𝚒𝚍𝚣𝚍() function.11 -
Yeah sure, the Metaverse will be bigger than the Internet.
I really believe that. Short of a system collapse, there's nothing which will stop some Web/VR/AR amalgam from eventually going mainstream. If anything, a prolonged pandemic will make humans hunger for more digital entertainment and socializing options.
Might take 5 years, or 25, but it will happen in some form. Eventually, people will even readily accept various augmentations to their bodies to further immerse themselves and connect to digital experiences.
BUT:
We're still pre-bubble.
Does no one remember the dotcom crash?
Facebook/Meta will become the new Yahoo, decimated to a sliver of its former glory. Million dollar hype NFTs will become the new $10 parked domain names. 99.99% of all current efforts and content will end up like a modern day Geocities Archive.
So yeah... when I read that my pension fund is considering "investing in metaverse technologies"...
...you fucking bet it's time to transfer to a different fund!22 -
PSA:
Next time you plan on changing all your model names from "xxxxx" to "xxxxxModel", under a minor version bump so that everyones CI breaks, in order to deliver no benefit whatsoever ..... don't8 -
“Stop trying to name it and name it”
Kevlin Henney adapting Morpheus’ iconic “stop trying to hit me and hit me” with regard to choosing names for classes/functions/vars. Too often we pussyfoot around with computer sciency sounding words instead of just calling it exactly what it is.12 -
WTF is an agilist? Am I a codist now? This crap is getting out of hand. I’m really starting to dislike this industry- it’s the same thing we’ve been doing for years people, you’re just putting fancy names and certifications on top of it now.13
-
A thousand years ago, Erik the Red names Greenland "Greenland" (even though it's icy) to trick travellers into coming there.
LiveScript was renamed to JavaScript for similar reasons.3 -
DNS is everywhere.
I hate DNS.
I hate DNS migrations.
I hate having a hundred plus DNS names inside my brain.
I hate resolving issues.
I hate DNSSEC.
I hate CNAMES.
I hate services which cannot be persuaded to stop trying AAAA resolves first.
I hate the fucking stupid braindead idea to use TXT as a configuration store inside DNS... And thus the necessity to blow up DNS query size aka EDNS.
I really really really really really want to burn this whole mfucking shit down...7 -
Got a ticket saying we need our website's record creation wizard to have better validation. No worries, just some regex, right?
Sure, regex for name entry (with the usual white person assumptions about names), and fixing the fact that it's in-page popup doesn't close on save. Or save draft. Or delete.
And also you need to apply the name regex for the fields on this page to all the previous names that the user lists.
And there's that one issue where the address history message always shows no matter what.
Oh and make sure that if they choose to ignore those validation issues then the validation message is in the notes for the record.
And fix the thing where it saves as draft instead of as a normal record.
And and and and and...
Can we just talk about making it 1 problem per ticket? This sort of shit makes me look bad when it takes me a week to fix 1 ticket, when I'm usually a few-a-day kinda person5 -
I f&#king hate it here. I am just eyeing to exit as soon as 1 year of my contractual obligation is over. My employer is a good employer. Provides good benefits but I just can't take the bureaucrazy in here. Just yesterday, had to ask another team to deploy objects on our behalf as they are the schema owner. They did it and asked us to review it today. But how? We don't even have manual access to the schema, because we are not the content owner and security! But that's fine, I can always query the catalog views and check the metadata and should be able to conclude the deployment. Right? NOOOO. Because security! Of what? Column names?
Prev rant: https://devrant.com/rants/5145722/...2 -
I just realized a weird thing. It will soon be 6 years since i joined devRant. And while i havent been as active as i was before its still sometimes fun to come and rant or read some rants :)
And for those who know me. Yes i still fuck around with Linux kernel development :)
If you are from the 2016-2018 join time come chat a little in comments :) Wondering how many people still hang out here and how many people names i will recognize :P
//Haxk20 o79 -
i have grown to HATE short variable names
nevermind all the generic names like thing/item/object/component
int i;
cute, good enough...oh wait it's referenced here 50 times in a sea of some loop? well fuk...how do... nope highlighting wont work - int, idkwtftonamethisvar, it's a common vowel. can't sed/regex a stand alone 'i' just...gg. gl finding or recognizing a single letter
about to start using iii or i_cnt14 -
"Please help, when I login as a client somehow the name gets updated to my name. Pls help, ai really don't know why"
How about you be careful and don't hit save to overwrite their names -
This is a sad story of bad recruitment in my school.
One day I had my computer class in school and my teacher was on leave so the substitution department sent another teacher to our class.
I have 3 computer teachers in my institution, let us assume their names for this rant as A, B and C.
A - The most learned teacher who has a lot of experience and also writes books. This teacher is the head of the department and wants students to explore coding.
B - A teacher who sticks to books and writes books on Excel and Powerpoint for small children.
C - The youngest teacher who has almost no experience at all.
What happened was that during the substitution, teacher C was sitting and doing her own work. I thought she might know java and other fundamentals of computers. One of my friends asked her about some bug in his program. She went to his seat and said that teacher A would come and help you out. To this, the student said ok.
I thought that the teacher had something fishy going on.
A few months later teacher B and A were talking about some coding competition and I was alone in the lab cause I am the only one in 11th with computer science.
The problem here was that C came to the room and quietly asked what is an object and class in java. I was shocked! I mean how could that happen, she is supposed to know everything in the comp sci syllabus. This was a disaster, teacher A was explaining to her about classes and objects. It was clear to me that she didn't know anything about programming in Java.
This is the fault of our school.
My school wants a good rank in the lists and for that they cut down the budget of teachers and remove old, experienced teachers for cheap, newer teachers.
This was shocking as a person who doesn't know much about something can't answer the doubts of children, this is a wrong way of teaching.
Hope you have a good day :)6 -
!dev && !rant
so in my native language (slovak), basically any noun has a neutral (default), diminutive, and augmentative form.
including (first) names.
for literally decade and a half, SOME names sounded weird to me, as if there was something... unnatural about them, but I had no idea what, or why.
and then one day i finally gave it a proper thought, and realized:
those names don't have all three forms, only two.
because they basically lack the neutral form, and their default form is simultaneously their diminutive.
so i was happy to have figured it out, finally. but then i noticed that some names still sound weird, unnatural.
and then i realized, there's another cathegory - those which only have two forms, because their default is simultaneously their augmentative.
and so I finally had all the name cathegories figured out.
funny thing though, even though i now know this, and even though i've reminded myself of this many times...
...every time i think about it, I have huge trouble remembering even a single name for either of the two special cathegories, precisely as I have this time.
except right now i can't be bothered.
if anyone is curious, poke me in the comments and i'll come up with examples later.9 -
I gave backend dev my frontend code and he had no idea about SCSS.
So he copied the compiled AND minified CSS, prettified/formatted it and put his own changes by searching the class names.
And he had made lots of design changes arbitrarily so when new changes were to be made I had to cope with it.
As a hack I kept his css as it is and compiled another file with new changes. And now there's two css files all huge, like 800kb multiply by two huge.
It covers about 33+ custom pages with all the bells and whistles.
#let me do the frontend
#I wont bother you either4 -
My surname is also a common firstname, so sometimes people mix them up and call me by my surname. I'm never offended and just answer by calling them by their surname too, so they understand... usually.
Today, the following e-mail exchange happened:
(Following are made-up names)
Me: Alexander William
Colleague 1: Kurt Richardson
Colleague 2: Amy Lopez
From: k.richardson@contoso.com <Kurt Richardson>
To: a.william@contoso.com <Alexander William>
Cc: a.lopez@contoso.com <Amy Lopez>
Hi,
Could I have an USB-C to HDMI adapter please ?
Thanks.
--------------------------------------------------------------------------
From: a.william@contoso.com <Alexander William>
To: k.richardson@contoso.com <Kurt Richardson>
Cc: a.lopez@contoso.com <Amy Lopez>
Hi Kurt,
I'm currently remote-working but if you are on premises tomorrow I could give one to you.
If you're not there tomorrow, I'll just drop it on Amy's desk so you can get it from her.
Regards,
Alexander William
--------------------------------------------------------------------------
From: k.richardson@contoso.com <Kurt Richardson>
To: a.william@contoso.com <Alexander William>
Cc: a.lopez@contoso.com <Amy Lopez>
Hi William,
I'm working on premises every thursday.
Regards.
--------------------------------------------------------------------------
From: a.william@contoso.com <Alexander William>
To: k.richardson@contoso.com <Kurt Richardson>
Cc: a.lopez@contoso.com <Amy Lopez>
No problem, Richardson. As I said I'll then drop it on Lopez' desk.
Regards,
Alexander William
--------------------------------------------------------------------------
From: k.richardson@contoso.com <Kurt Richardson>
To: a.william@contoso.com <Alexander William>
Cc: a.lopez@contoso.com <Amy Lopez>
Good evening William, [Editor's Note: this was received at 14:23]
Thanks.
Is he fucking dense or what?11 -
IDK why I get annoyed by underscores before private member names... Is i it useful or just an old relic?16
-
More and more, I am getting frustrated/depressed from the attitude of our customers who complain, moan and get angry about issues in their infrastructure, while at the same time, refusing to pay more so the issues could be mitigated.
Like, a client's angry with us today for having one of their non-production-critical databases inaccessible for... Hmm... About 8 hours now (So a whole workday).
Like... I get it, some of your employees couldn't work with it offline, but like... What the hell do we do? You keep data from as far back as several years ago in there, without partitioning, without exports, in a mix of innodb and myisam, so when the DB crashes, and its replication has to be reset from zero, reimporting all the data takes hours upon hours, and importing .sql files just takes time.
Or another client who got angry when their app fell out of the internet, cuz one of their myisam-based log tables crashed, and had to be repaired, with data spanning several years back, meaning it took hours to fix...
The more I work with these "basic" and "simple" infrastructure designs that is *not* redundant, or HA, the more I wonder -- How do the big names out there do it? How do you design systems with fault tolerance so a single DB table crash doesn't lead to the whole app getting inaccessible?
We have... One, exactly one, client, who uses MariaDB with Gallera, and that cluster is *amazing*, it just keeps chugging along, without a care in the world. But it cost them quite a lot, as they had to buy 3 DB servers, instead of 1...3 -
Nothing like having to work on a codebase which has most of the class and variable names in a language you don't speak :/8
-
#Story time.
Been working on a project for 2 months with Colleague "Jim" doing the code reviews. Project is finished in a stable form and can be extended if needed. Then my other colleague/boss "Mo" decided that we need to do a refactor. Fast forward a bit and the conclusion is "Mo" and "Jim" are going to discuss every step with me. And we started a new project that should do the same as the project I just finished
Here some facts:
Every day a meeting/ code review / discussion.
Decisions they make I do not agree with.
I need to redo my work multiple times.
Now this does make me look like a toddler that needs supervision which is not the case.
They want something future proof and something that fits his new coding standard "Mo". and certain things I do agree with and is clearly the better architecture. however somethings are just stupid, time wasting, making it worse. I'm getting so frustrated by the fact that billion dollar companies have clear coding standards that work. and are correct. and this company decided to do their own thing of stupid rules!
- shorten variables
- Keep lines under 90char
- put multiple things in 1 file
- Keep function names short
and many more of removing stuff and let you guess stuff..
I just... *sigh* get so tired of this shit.
*names are randomly chosen2 -
Data wrangling is messy
I'm doing the vegetation maps for the game today, maybe rivers if it all goes smoothly.
I could probably do it by hand, but theres something like 60-70 ecoregions to chart,
each with their own species, both fauna and flora. And each has an elevation range its
found at in real life, so I want to use the heightmap to dictate that. Who has time for that? It's a lot of manual work.
And the night prior I'm thinking "oh this will be easy."
yeah, no.
(Also why does Devrant have to mangle my line breaks? -_-)
Laid out the requirements, how I could go about it, and the more I look the more involved
it gets.
So what I think I'll do is automate it. I already automated some of the map extraction, so
I don't see why I shouldn't just go the distance.
Also it means, later on, when I have access to better, higher resolution geographic data, updating it will be a smoother process. And even though I'm only interested in flora at the moment, theres no reason I can't reuse the same system to extract fauna information.
Of course in-game design there are some things you'll want to fudge. When the players are exploring outside the rockies in a mountainous area, maybe I still want to spawn the occasional mountain lion as a mid-tier enemy, even though our survivor might be outside the cats natural habitat. This could even be the prelude to a task you have to do, go take care of a dangerous
creature outside its normal hunting range. And who knows why it is there? Wild fire? Hunted by something *more* dangerous? Poaching? Maybe a nuke plant exploded and drove all the wildlife from an adjoining region?
who knows.
Having the extraction mostly automated goes a long way to updating those lists down the road.
But for now, flora.
For deciding plants and other features of the terrain what I can do is:
* rewrite pixeltile to take file names as input,
* along with a series of colors as a key (which are put into a SET to check each pixel against)
* input each region, one at a time, as the key, and the heightmap as the source image
* output only the region in the heightmap that corresponds to the ecoregion in the key.
* write a function to extract the palette from the outputted heightmap. (is this really needed?)
* arrange colors on the bottom or side of the image by hand, along with (in text) the elevation in feet for reference.
For automating this entire process I can go one step further:
* Do this entire process with the key colors I already snagged by hand, outputting region IDs as the file names.
* setup selenium
* selenium opens a link related to each elevation-map of a specific biome, and saves the text links
(so I dont have to hand-open them)
* I'll save the species and text by hand (assuming elevation data isn't listed)
* once I have a list of species and other details, to save them to csv, or json, or another format
* I save the list of species as csv or json or another format.
* then selenium opens this list, opens wikipedia for each, one at a time, and searches the text for elevation
* selenium saves out the species name (or an "unknown") for the species, and elevation, to a text file, along with the biome ID, and maybe the elevation code (from the heightmap) as a number or a color (probably a number, simplifies changing the heightmap later on)
Having done all this, I can start to assign species types, specific world tiles. The outputs for each region act as reference.
The only problem with the existing biome map (you can see it below, its ugly) is that it has a lot of "inbetween" colors. Theres a few things I can do here. I can treat those as a "mixing" between regions, dictating the chance of one biome's plants or the other's spawning. This seems a little complicated and dependent on a scraped together standard rather than actual data. So I'm thinking instead what I'll do is I'll implement biome transitions in code, which makes more sense, and decouples it from relying on the underlaying data. also prevents species and terrain from generating in say, towns on the borders of region, where certain plants or terrain features would be unnatural. Part of what makes an ecoregion unique is that geography has lead to relative isolation and evolutionary development of each region (usually thanks to mountains, rivers, and large impassible expanses like deserts).
Maybe I'll stuff it all into a giant bson file or maybe sqlite. Don't know yet.
As an entry level programmer I may not know what I'm doing, and I may be supposed to be looking for a job, but that won't stop me from procrastinating.
Data wrangling is fun.2 -
Anyone here have any experience with PHP? I've never really used it myself and don't really want to, but I do look at things like http://phpsadness.com/ from time to time.
These complaints range from "fairly minor" (some stuff like function names/args and some syntsx complaints) to "how is this language even used" (segfaults in a scripting language, broken things like "create_function", comparisons and ternanry operator).
Of course, i don't program in PHP so i don't know how bad any of this actually is.
Anyone actually use PHP or did use it previously?20 -
Wound up talking about baby names with a friend
Apparently wanting to name my hypothetical future daughter Buffy is ridiculous13 -
As an ex-manager I now realize standups are used for control.
1. It sets a time when everyone must be present (might as well read-out names like it's school)
2. You, the manager, get to have people giving "offerings" of their work for you to approve, deny or bless with your gracious interest ("can you please stay on the call? lets discuss further")8 -
! rant, but should I be concerned?
I'm writing an election results API and I imported the bottlepy+pandas and prepped the CSV that contains the data. The first row contains the column names, followed by the actual data.
As I typed my routes, VSCode kept suggesting route names, parameters, and return values. At first I was "nice!" but then it kept suggesting my intent, as if someone was reading my brain. I do have GitHub Co-pilot installed, but I didn't realize my access had been approved.
How many layers of tin foil do I need?3 -
Product manager keeps fucking with my Jira board, changing names of tickets that he's not even the reporter of and none of his names make any sense. I keep thinking my tickets have disappeared. He doesn't understand how Jira works and confuses the shit out of me.4
-
Here is a gem I found when looking at the previous offshore team's database.
So apparently they didn't know that SQL has an ALTER TABLE command to add new columns. So they created a brand new table, version 2, THEN migrated all the data over, every single time a new field was needed.
Then of course they had to update all their code that previously looked at the original table and the clients had to resync data onto the tablets as well.
Maybe they thought it was a good solution since they don't know what database versioning is (something they also manually implemented) or that ORMs exist.
**Sanitized the table names but kept the general structure, casing, etc
CREATE TABLE [dbo].[TVP_NameHere] AS TABLE(
[NameTime] [datetime] NULL,
[NameId] [int] NULL,
[somethingId] [int] NULL,
[fooId] [int] NULL,
[Time] [int] NULL
)
CREATE TABLE [dbo].[TVP_NameHereV002] AS TABLE(
[NewColumnHere] [int] NULL,
[NameTime] [datetime] NULL,
[NameId] [int] NULL,
[somethingId] [int] NULL,
[fooId] [int] NULL,
[Time] [int] NULL
)3 -
Am I the only one that thinks Linq's .Any() and .All() methods are more appropriately named for the use case they cater to, as opposed to their JS counterparts .some() and .every() ?
.some() doesn't justify the fact that it returns true if *atleast* one item in the collection matches the predicate. Should've been named something like .atleastOne() or something else.
Moreover, there isn't any harm to just use the same method names as in Linq ¯\_(ツ)_/¯4 -
Glassdoor gave Zuru the names of the bad reviewers, what a (non-)surprise!
Not glassdoor’s “fault” as it was forced to, but… hey, it was to be expected when you bind a review to an account 🤫5 -
So, just to recap if you missed the last few episodes. I've been a web developer for years. But I decided to get a degree and go to uni.
Also I am firmly on the fewer comments side of the debate about self-documenting code. Even though I usually rephrase it and say method and variable names are comments. Basic idea: something is unclear, you should leave a comment. But, before you leave a comment, take a good look at your method. Can you rename a variable? Maybe the method name? Maybe extract a method into smaller methods so it doesn't need a comment? And only if you fail to do so, leave a comment.
Alright, now that we rehashed that, uni coding makes no bloody sense.
There is code that is abbreviated to the max (or min).
And then, they need everything commented. I mean, why do that? Why call the parameters a and b instead of base and exponent. And then say:
"But write a whole article about it above the method". Like:
a is the base for a power operation.
b is the exponent for a power operation.
return int representing a to the power of b
How about just do this:
public static int power(int base, int exponent).
How is this not the same documentation?
Is it because we're at a uni, a place for smart people and smart people shouldn't have an issue keeping a mental map between the variables and their meaning?
Or is it because they are all mathematicians. All respect to applied mathematics. I mean, the function about exponent calculation, I was not aware that it could be that effective. But on the other hand, keep mathematicians away from programming. I get it, writing maths per hand doesn't have intellisense and therefore you don't want to write long variable names. It's and old tradition. Yada yada, yah.
But programming is not maths. And maths shouldn't be maths like that. Right naming makes it simpler. It might still be a while until we all LaTeX rather than handwrite and be able to give maths right naming schemes, but programming is beyond the point. Calling the array you handing in a function A and the one that you're returning D makes no fucking sense.4 -
*deep breaths*
im seeing code where they use keywords as variable names, and then, sure enough, right there next to it, another piece of code that uses a logical name
it's ok. i'm ok. i can deal with this3 -
You deliver a new feature. After the functionality, how do you prioritize?
- having clear variable- and function names
- having meaningful and orthographically and grammatically spelled commit messages
- having a clean commit history
- having perfect linted syntax
- having it covered with unit-tests
- having a wonderful documentation6 -
Somewhat sad when team lead names a Sharepoint document library as ”a repo”.
I am not surprised. I am used to this level of incompetence. But…still.
I am aware of the generic nature of the meaning of the word repository. I just find it very sad that people with no actual competence try to make it look like they actually knows something.2 -
anti-spam for work recruiters?
anyone have a better method than collecting names and adding to an ever growing list?2 -
Seems like there's no perfect balance at work, good at what you're doing? Take that promotion, also now you handle this and that!
Mediocre little shit? uhhh we won't promote him/her but whatever they do something at least.
Man I love my job and my company but fucking hell it seems like people never stop demanding shit from you and when you tell them no they judge you and call you names, like seriously wtf? is there no fucking thing called balance?4 -
I have decided that massive natural selection events are a thing with humans. When resources appear to be getting low a group of people will prepare and wipe out a large portion of consumers. The most straight forward way is to create a crisis and then offer the "only" solution. Make that solution a weapon and you are done. The masses gladly accept the solution. At all times appear benevolent. Silence dissenting voices swiftly. Make the dissenters look like nutters and publicly humiliate them and apply labels to them. Labels are effective because it creates pariahs. People like to not be singled out and called names.
What do you end up with? People who distrust government and the institutions. I don't know how this benefits the orchestrators (how to spell) of the genocide. Perhaps if the numbers are small enough they can just be rounded up and killed by force rather than coercion.
I get the feeling this approach has been used in the past. Like it has been at least tested on smaller scales. Maybe even on past civilizations. Did we learn to do this from space visitors? I wonder.
2021 has certainly been an interesting year. I used to think people were just stupid. This year has confirmed that for me. But I am not sure stupid is the right word. They are certainly book smart. Maybe naive is a better word. I pray and hope 2022 turns out better for people. Maybe they start seeing signs they have been lied to by people they trust. Maybe not. When you are in the matrix it is hard to see through the facade. The matrix feels very real, until it doesn't.
Dev Goal?: To not be murdered by the matrix.8 -
Every fucking time I start a new project I always forget the basics of using the same operation names, either CRUD(I) or BREAD.. Then I have functions that start with fetch or get and some are list some are browse.. Then I spend an hour refactoring all those to use a standardized naming convention! FFS! I'm so stupid!4
-
Did someone already thought about how color highlight can be better? It's been 4-5 years now that I'm coding on a virtual console that run on iPad with a monochrome code editor. Despite the fact that's remind me the old days when I was 8 years old, that doesn't stop me for coding with it.
I mean, is it really important to know that strings are red and numbers are yellow? How does that help me? They are both literal and behave to the user-content categories.
I was talking with my friend, and he says he likes to know if something is a keyword or an identifier. In C++, a lot of common keywords to define stuff and control the flow are often the first word and easy to spot.
A couple of months ago, I tried Flutter, and the editor can highlight ident blocks and give them different colors, but with Flutter, it's easy to get 10 or more ident levels, Does the color help? Splitting the code does.
I think, there is so much stuff that is more important than coloring the grammar of a language. For instance: knowing if an identifier belongs to which Rust Crate because, It's easy to stack 10 or more dependencies in one file that as better chances of names collisions.
Knowing if an identifier was recognized, if it used, if it's a local, a member, a global, a compiled value or a macro seems more important.
I would like to color block of code that is important or sensible. That will help my coworker about the severity of a particular place in the code.
What do you think?1 -
Partial thoughts, are thoughts that sound like they should have more to them. However they are intentionally left short to create a sense that more is to come. This creates a state of anxiety in people and their desire for closure. The sentence is more effective if you say the last part of the sentence with an increasing pitch. This indicates there is more to the story. When in fact there is no more to the story.
Here is an example:
"I saw this guy walking down the street..."
People will automatically assume there is more to this story. So they will say something like, "And then what?" The response is: "That is it. That is what I saw." This is the peak time of frustration. They may even argue with you or storm away. Be prepared to be called names.
There is actually some history behind this.
...
Hehe, no, I am not going to leave you high and dry. In high school a dude I knew would always make fun of my friend. So I started doing these partial stories to the dude. He would get mad and storm off each time. I would do this several times per day. So it can be a tactic to deal with difficult people. -
I'm not involved in the policy management, but my office uses Google account management. I also have to free trial one of the services I use, because my account got pwned in an attack long ago.
Turns out, my office gives us 6 different emails to choose from. Two different usernames (old, from 8 years ago, and the new one) as well as three website names (.net, .com, and another website).
Literal gold for 30-day trials. -
senior: it should only take 30 seconds to replace multiple display strings across our code base
well it would be nice if they'd do it then, and somehow i don't think that 30 seconds included checking your work and making sure you don't fuck up other instances of those strings (e.g. in variable names, etc)
maybe you got a clever enough regex to only hit exactly what you want :shrug:1 -
Dumb question, but does anyone know how to make VSCode show more of the path than just the folder name on the side bar, I am working on making workspaces to avoid opening 6 file explorer windows but a lot of folders for my workflows have the same name but different locations on the network and I can't change the folder names for automation purposes.
I know it shows the path if i hover over the name, but i'd like to just show path by default on the side panel
example image below (can't show real folders due to NDA)6 -
Tired of having to copy-paste channel names in YouTube stream live chat for proper mentioning? Here's the thing for you.
https://greasyfork.org/en/scripts/...
Use Violentmonkey or Tampermonkey to embed this userscript.
Also, fuck you, YouTube. Fix your shit already! -
I was approached by some guy on a project and I need your help figuring out how to go about this.
the project is basically a website where school owners who are not tech savvy can input necessary details about their school and it spins up a site from an existing website template built in react for them.
an extra complexity will be creating custom domain names for each site. will this also be possible ?
I've not done something like this before and I dont know the word for it so making a Google search has been quite hard
my stack is javascript MERN stack.1