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 - "explicit"
-
Got assigned an intern to mentor him, with an explicit order not to do any of the legwork for him.
We start out with some fuzzy requirements. Intern starts overengineering a generic solution, so I make out a best architecture that conforms to the business requirements and I explain it to the intern why are we going to use such approach and tell him how we are going to do it in three phases.
I explain the intern the first phase, break it down in small tasks for him and return to my projects...
After a couple of days of no words from the intern, I decide to check up on him to see how is he progressing, only to hear him complaining the task is boring. So, instead of doing the assigned tasks, he decided he should do a "design" for a feature I told him explicitly not to do, since it is going to be designed by the design team later on.
I explain it to the intern that we have to do the boring task first because we can't proceed with the next phase of the implementation without the necessary data from the phase one.
Intern says okay and assures me he got it now. Few days later, I check up on him, and he tells me he feels he is doing all the work and that I don't contribute to the project. I call up my boss and tell him intern wants a meeting. Since I was working from home, I quickly pack my things and head to the office. Boss talks to the intern before I managed to get to the office. Once I got there, I meet the intern, and he tells me everything is okay. I ask what did the boss say to make things okay all of a sudden, and he tells me he said we are a team now. Our company has a flat hierarchy model, so he tells me he doesn't feel he needs a mentor, that we are both equal, and that I have no idea how to work in a team, and then proceeds to comfort me on how human interaction is hard and that I will learn it one day... I was like wtf?
I tell him to finish the phase one of the project and start with the phase two, and I leave home again.
I call up my boss and ask him what did he say to the intern, and he says: "nothing much, just explained the project a little bit and how it fits in the grand scheme of things.". I ask about the equal team members thing, and me not being a mentor any longer, the boss goes wtf, saying he never said anything about that to him.
So the kid can't focus on a single task, over-engineers everything and doesn't feel he can learn anything from developers with more experience, doesn't want to obey commands, and also likes to lie to manipulate others.
Tomorrow we'll decide what to do with him...
Sorry for the long rant, it was a long stressful day.86 -
Today, I learned the shortest command which will determine if a ping from your machine can reach the Internet:
ping 1.1
This parses as 1.0.0.1, which thanks to Cloudflare, is now the IP address of an Internet-facing machine which responds to ICMP pings.
Oh, you can also use this trick to parse 10.0.0.x from `10.x` or 127.0.0.1 from `127.1`. It's just like IPv6's :: notation, except less explicit.8 -
Boss: we need to make a website.
Dev: we fired the web dev
Boss: you do it then
Dev: I am a mobile dev
Boss: dont care you are a developer
Tbh he isnt wrong but i just hate web development.12 -
Code: if(customer.primaryContract)
Boss: "just using a variable as a boolean isn't very readable"
Me:
if(!(!customer.primaryContract != !true).toString() == 'false')13 -
Navy story continued.
And continuing from the arp poisoning and boredom, I started scanning the network...
So I found plenty of WinXP computers, even some Win2k servers (I shit you not, the year was 201X) I decided to play around with merasploit a bit. I mean, this had to be a secure net, right?
Like hell it was.
Among the select douchebags I arp poisoned was a senior officer that had a VERY high idea for himself, and also believed he was tech-savvy. Now that, is a combination that is the red cloth for assholes like me. But I had to be more careful, as news of the network outage leaked, and rumours of "that guy" went amok, but because the whole sysadmin thing was on the shoulders of one guy, none could track it to me in explicit way. Not that i cared, actually, when I am pissed I act with all the subtleness of an atom bomb on steroids.
So, after some scanning and arp poisoning (changing the source MAC address this time) I said...
"Let's try this common exploit, it supposedly shouldn't work, there have been notifications about it, I've read them." Oh boy, was I in for a treat. 12 meterpreter sessions. FUCKING 12. The academy's online printer had no authentication, so I took the liberty of printing a few pages of ASCII jolly rogers (cute stuff, I know, but I was still in ITSec puberty) and decided to fuck around with the other PCs. One thing I found out is that some professors' PCs had the extreme password of 1234. Serious security, that was. Had I known earlier, I could have skipped a TON of pointless memorising...
Anyway, I was running amok the entire network, the sysad never had a chance on that, and he seemed preoccupied with EVERYTHING ELSE besides monitoring the net, like fixing (replacing) the keyboard for the commander's secretary, so...
BTW, most PCs had antivirus, but SO out of date that I didn't even need to encode the payload or do any other trick. An LDAP server was open, and the hashed admin password was the name of his wife. Go figure.
I looked at a WinXP laptop with a weird name, and fired my trusty ms08_067 on it. Passowrd: "aaw". I seriously thought that Ophcrack was broken, but I confirmed it. WTF? I started looking into the files... nothing too suspicious... wait a min, this guy is supposed to work, why his browser is showing porn?
Looking at the ""Deleted"" files (hah!) I fount a TON of documents with "SECRET" in them. Curious...
Decided to download everything, like the asshole I am, and restart his PC, AND to leave him with another desktop wallpaper and a text message. Thinking that he took the hint, I told the sysadmin about the vulnerable PCs and went to class...
In the middle of the class (I think it was anti-air warfare or anti-submarine warfare) the sysad burst through the door shouting "Stop it, that's the second-in-command's PC!".
Stunned silence. Even the professor (who was an officer). God, that was awkward. So, to make things MORE awkward (like the asshole I am) I burned every document to a DVD and the next day I took the sysad and went to the second-in-command of the academy.
Surprisingly he took the whole thing in quite the easygoing fashion. I half-expected court martial or at least a good yelling, but no. Anyway, after our conversation I cornered the sysad and barraged him with some tons of security holes, needed upgrades and settings etc. I still don't know if he managed to patch everything (I left him a detailed report) because, as I've written before, budget constraints in the military are the stuff of nightmares. Still, after that, oddly, most people wouldn't even talk to me.
God, that was a nice period of my life, not having to pretend to be interested about sports and TV shows. It would be almost like a story from highschool (if our highschool had such things as a network back then - yes, I am old).
Your stories?8 -
Dev: So tell me some specs about the app you want.
Client: something like facebook.
Dev: you know facebook has too many features for even having a price tag?
Client: what? Will I pay too? I have the idea.
....6 -
Seriously now:
Our boss just asked our manager to log in github and do a daily report of the number of lines we write every day.
....6 -
So, there was this person I met on the internet who was preaching about how the success of games depends primarily on luck.
His argument was that even though he made a great game(his opinion) and uploaded it to the appstore his game failed to gain popularity.
He stated that there are about 500 games uploaded daily and it is only the matter of luck whether or not a game gets noticed and that he ran out of luck.
Now, his game was a pretty ripped off copy of the overused tile matching games. I pointed out to him that the reason his game didn't do well was probably because he made a ripoff(I actually used 'a copy's but 'ripoff' sounds more rant like) and that he priced it fairly high, while there were free games with more features and better graphics and mechanics(based on the description of the game and screenshots).
He then began to rage(all caps obviously) about how I am talking out of my ass and that I probably haven't even made a game yet.
I politely(the only reason I was polite was because the account was known to my Twitter followers. Sometimes one has to protect one's name) told him that I am an indie game developer and that I have made a decent amount of games.
He then proceeded to mock me and dared me to name a few.
So I posted four links to my 48 hour competition games and one to an official game.
He then began to call me an imposter, so I did a shout-out to him through my Twitter account.
Instead of continuing on Twitter, he ran back to the forum, and began to shit talk about how anyone can do it if they have a team with them.
I corrected him on that, stating how I was alone at the time and these particular games were the results of me working hard and striving to improve myself.
Then the guy finally starts spamming on different threads about how I am an arrogant bastard and other explicit forms of abuses before finally getting banned.
Sometimes I don't even know why I bother.
When I was starting out, there was this developer who would point out the faults in my games so that I could work on them. That was a great help and probably accelerated my growth. He was a great mentor and is now a good friend and is now in my team.
I guess some people are so hung up on their pride that they will refuse to accept their mistakes and make any efforts to improve.9 -
Website owners who use modals that aren't triggered by explicit user interaction should be punished by public hanging.
YOU CAN SHOVE YOUR FREE EBOOK AND NEWSLETTER UP YOUR ARSE. FUCK YOU.3 -
New boss rant here!
Boss: Can you give me an estimate for a new project that we willbe running?
Dev: Oh yes I have already calculated at approximately three months.
Boss: Thats great start on it!
3 months laters....
Boss: Why did it take so much? I feel like our productivity sucks.
Dev:...5 -
I was expecting a 4th interview this afternoon for a position as a fullstack elixir developer.
Got a response from the CTO.
'Even if you pass all the tests with success, we could not go further because you're a junior and we're looking for a senior'
Well, dude, you've seen me 3 times and didn't understand that I was a junior ? My CV is not enough explicit ? It's written at the top of it...
So after a motivation interview, technical test, technical interview and Phoenix framework interview, they only realized yet the plot.
Good luck for your seniors to pass their knowledge to other seniors.17 -
OMFG it happened again. I'm always very explicit with recruiters that I don't take full time employment while I'm studying. This one was very understanding about it and said he found a great match for my skillset.
I just had a meeting with the CEO of this great match of a company.
- "No, we only seek people who can work full time, let's keep in touch when you've graduated".
What the fuck, way to waste everyones time.10 -
Although it might not get much follow up stuffs (probably a few fines but that will be about it), I still find this awesome.
The part of the Dutch government which keeps an eye on data leaks, how companies handle personal data, if companies comply with data protection/privacy laws etc (referring to it as AP from now on) finished their investigation into Windows 10. They started it because of privacy concerns from a few people about the data collection Microsoft does through Windows 10.
It's funny that whenever operating systems are brought up (or privacy/security) and we get to why I don't 'just' use windows 10 (that's actually something I'm asked sometimes), when I tell that it's for a big part due to privacy reasons, people always go into 'it's not that bad', 'oh well as long as it's lawful', 'but it isn't illegal, right!'.
Well, that changed today (for the netherlands).
AP has concluded that Windows 10 is not complying with the dutch privacy and personal data protection law.
I'm going to quote this one (trying my best to translate):
"It appears that Microsofts operating system follows every step you take on your computer. That gives a very invasive image of you", "What does that mean? do people know that, do they want that? Microsoft should give people a fair chance for deciding this by themselves".
They also say that unless explicit lawful consent is given (with enough information on what is collected, for what reasons and what it can be used for), Microsoft is, according to law, not allowed to collect their telemetrics through windows 10.
"But you can turn it off yourself!" - True, but as the paragraph above said, the dutch law requires that people are given more than enough information to decide what happens to their data, and, collection is now allowed until explicitly/lawfully ok'd where the person consenting has had enough information in order to make a well educated decision.
I'm really happy about this!
Source (dutch, sorry, only found it on a dutch (well respected) security site): https://security.nl/posting/534981/...8 -
Dear Programming Languages,
if you only support weakly typed constructs, I wish you a special place in hell.
Dear Fellow Developers,
if you use a language that allows strong typing with weak typing, the next time we will meet after I have to fix a shitty bug due to that I will play piano on your teeth, and a melody you won't like.
And yes, that means PHP as well. PHP allows for strict types since php7.
So. Just. Fucking. Use. It.
There are no excuses!
I don't care if you don't see the benefit or find it "annoying" and tedious to write it out. Use a decent editor and it will be mostly code-completion anyway.
I just don't want to fix your fuckups. And if your fuckup is due to a typing issue that "slipped" by, you are part of the problem.
If you write software, it should be clear what type each and every variable or object has.
There are no excuses but your laziness.
If you want to be ambiguous, try poetry.23 -
I wrote a database migration to add a column to a table and populated that column upon record creation.
But the code is so freaking convoluted that it took me four days of clawing my eyes out to manage this.
BUT IT'S FINALLY DONE.
FREAKING YAY.
Why so long, you ask? Just how convoluted could this possibly be? Follow my lead ~
There's an API to create a gift. (Possibly more; I have no bloody clue.)
I needed the mobile dev contractor to tell me which APIs he uses because there are lots of unused ones, and no reasoning to their naming, nor comments telling me what they do.
This API takes the supplied gift params, cherry-picks a few bits of useful data out (by passing both hashes by reference to several methods), replaces a couple of them with lookups / class instances (more pass-by-reference nonsense). After all of this, it logs the resulting (and very different) mess, and happily declares it the original supplied params. Utterly useless for basically everything, and so very wrong.
It then uses this data to call GiftSale#create, which returns an instance of GiftSale (that's actually a Gift; more on that soon).
GiftSale inherits from Gift, and redefines three of its methods.
GiftSale#create performs a lot of validations / data massaging, some by reference, some not. It uses `super` to call Gift#create which actually maps to the constructor Gift#initialize.
Gift#initialize calls Gift#pre_init (passing the data by reference again), which does nothing and returns null. But remember: GiftSale inherits from Gift, meaning GiftSale#pre_init supersedes Gift#pre_init, so that one is called instead. GiftSale#pre_init returns a Stripe charge object upon success, or a Gift (and a log entry containing '500 Internal') upon failure. But this is irrelevant because the return value is never actually used. Pass by reference, remember? I didn't.
We're now back at Gift#initialize, Rails finally creates a Gift object using the args modified [mostly] in-place by all of the above.
Another step back and we're at GiftSale#create again. This method returns either the shiny new Gift object or an error string (???), and the API logic branches on its type. For further confusion: not all of the method's returns are explicit, and those implicit return values are nested three levels deep. (In Ruby, a method will return the last executed line's return value automatically, allowing e.g. `def add(a,b); a+b; end`)
So, to summarize: GiftSale#create jumps back and forth between Gift five times before finally creating a Gift instance, and each jump further modifies the supplied params in-place.
Also. There are no rescue/catch blocks, meaning any issue with any of the above results in a 500. (A real 500, not a fake 500 like last time. A real 500, with tragic consequences.)
If you're having trouble following the above... yep! That's why it took FOUR FREAKING DAYS! I had no tests, no documentation, no already-built way of testing the API, and no idea what data to send it. especially considering it requires data from Stripe. It also requires an active session token + user data, and I likewise had no login API tests, documentation, logging, no idea how to create a user ... fucking hell, it's a mess.)
Also, and quite confusingly:
There's a class for GiftSale, but there's no table for it.
Gift and GiftSale are completely interchangeable except for their #create methods.
So, why does GiftSale exist?
I have no bloody idea.
All it seems to do is make everything far more complicated than it needs to be.
Anyway. My total commit?
Six lines.
IN FOUR FUCKING DAYS!
AHSKJGHALSKHGLKAHDSGJKASGH.7 -
So boss finds out that a competitors app has a youtube vid making half a million views.
His response to the lead dev: make one video like that!
Lead: But that video needs at least a video editor to make it, a professional and at least a couple thousands euros.
Boss: you are my best dev just do it, I believe in you...
Worst part is that he tried he made a couple hundred views and boss dissed him that he is useless. Go figure!9 -
In a mobile project far far away...
Dev: Now we need a ui expert to beautify the app.
Boss: we dont need him its beautiful as it is.
5 mins later....
Boss: here Is a ton of ui changes dear dev. I trust that you have creative insight to make changes that I like :)4 -
Large comment block at the top of the file, commenting explicit line numbers, as in: "line 365: copy to a new image".
Only everytime the comment block grew, the line numbers got more and more off. -_-4 -
The nightmare continues.
Currently dealing with a code review from a “principal” dev (one step above senior), who is unironically called a “legendary dev” by some coworkers. It’s painfully obvious he didn’t read the code, and just started complaining and nitpicking.
It’s full of requests to do things that make absolutely no sense, and would make the code an unmaintainable mess.
• Ex: moving the logic and data collection from the module’s many callers into the module instead of just passing in the data.
• Ex: hiding api endpoint declarations by placing them in the module itself, and using magic instance variables to pass data to it. Basically: using global functions and variables instead of explicit declarations and calls.
• Ex: moving the logic to determine which api endpoint to use, for all callers, into the view.
More comments about methods being “too complex” (barely holds water) right next to comments saying “why are these separate? merge them together!”
Incredulously asking how many times I’m checking permissions and how ridiculous it all is. (The answer? Twice.)
Conflating my “permissions” param and method names with a supposedly forthcoming permissions system overhaul, and saying I shouldn’t use permissions because my code will all have to get rewritten. Even if that were true, and it’s likely not, the ticket still needs to use the current permissions. I can’t just ignore them because they might be rewritten someday.
Requests to revert some code cleanup because the reviewer thought the previous heavily-nested and uncommented versions (with code duplication) were easier to read. Unsurprisingly, he wrote them.
On the same ticket, my boss wants me to remove all styling and clientside validation, debouncing, and error messages from a form. Says “success” and “connection failed” messages are good enough. The form in question sends SMS and email using arbitrary user input for addresses. He also says it shouldn’t be denounced on the server, and doesn’t want me to bother checking permissions. Hello, spam!
Related: the legendary dev reviewer says he can’t think of a reason why we would want to disable the feature for consumers, so I should remove the consumer feature flag.
You can’t make this stuff up.7 -
I'm working on a programming language with a "bytecode" interpreter and a compiler that translates source code to said bytecode and... it sort of actually works!
I want to recreate an Erlang-style environment, currently you can write functions, call C++ functions via wrappers, have immutable-only values, and it has no explicit control structure apart from statement sequencing and the if-expression because I want to make it as functional as possible. Next thing on the list is to add a green threads implementation and ability to spawn and send messages to processes.
Still a WIP and heck even design-in-progress.
Now for the rant:
I'm using CMake for building C++ (interpreter) and Stack for Haskell (compiler) and I've been trying to get them to talk to each other for hours because I want CMake to manage the Stack build too and shove all the executables into one place. CMake documentation is weird and Stack isn't too helpful either, so I guess I'll just spend another few hours trying to get Stack to fuckin reveal its build directory to CMake and/or build to a given directory. Ugh.8 -
On my former job we once bought a competing company that was failing.
Not for the code but for their customers.
But to make the transition easy we needed to understand their code and database to make a migration script.
And that was a real deep dive.
Their system was built on top of a home grown platform intended to let customers design their own business flows which meant it contained solutions for forms and workflow path design. But that never hit of so instead they used their own platform to design a new system for a more specific purpose.
This required some extra functionality and had it been for their customers to use that functionality would have been added to the platform.
But since they had given up on that they took an easy route and started adding direct references between the code and the configuration.
That is, in the configuration they added explicit class names and method names to be used as data store or for actions.
This was of cause never documented in any way.
And it also was a big contributing cause to their downfall as they hit a complexity they could not handle.
Even the slightest change required synchronizing between the config in the db and the compiled code, which meant you could not see mistakes in compilation but only by trying out every form and action that touched what you changed.
And without documentation or search tools that also meant that no one new could work the code, you had to know what used what to make any changes.
Luckily for us we mostly only needed to understand the storage in the database but even that took about a month to map out WITH the help of their developer ;)
It was not only the “inner platform” it was abusing and breaking the inner platform in more was I can count.
If you are going down the inner platform, at least make sure you go all the way and build it as if it was for the customers, then you at least keep it consistent and keep a clear border between platform and how it is used.12 -
Staring at cursed blinking cursors.
Repairing work of worst thinking workers
Reverse merges or it'll murder the servers, it nurtures despair
Amateur managers, dimwitted savages interrupt all of us janitors
Cleaning up damages, spills and experiments using skills in embarrassment
Explicit foulness, in a minute it's straight to the bowels with weapons of limitless vowels
A bittersweet hateful machete, eviscerates stateful spaghetti
The slow disease flowing from keys knowing it's going to please
The growing unease, no one agrees, there's no guarantees with your useless degrees
Need more drugs, keyboard's crawling with bugs, falling as I chug
A bottle of cognac gotta love all the hacks, no poise for code that lacks
All the noise, gotta relax, before I destroy the syntax.
Excuse me for not making sense.
Too gloomy, aching and tense.10 -
Would it be a bad idea if I mention my biggest project is a Discord bot supplying explicit material to a total of 7000 servers on my CV?
Honestly unsure.13 -
TL.DR.: Emojis in commit messages + bad commit messages made by Microsoft™ employees.
Yes, I'm looking at you Microsoft. It would be helpful if I can, you know, understand your commit messages instead of trying to guess wtf _that_ emoji means. That is, if it is the same emoji on my machine. We didn't figure that one out yet. And no, "Some 💄 changes ✨" is not a good commit message, even if you interpret it correctly (which depends on your emoji icon set).
idk about you, but that shitty 💄 emoji tends to be (see image) and I happen to associate that with an XLR audio cable. I had to ask someone else to understand a commit message; a message supposed to be explicit—stating what you changed and optionally why you changed it (you can off-load that part to an issue tracker).
Furthermore, that "Some 💄 changes ✨" commit did none of that. "I made cosmetic changes somewhere for some reason without linking to an issue." If you didn't catch that little detail yet: "COSMETIC CHANGES" is vague as fuck. What is a cosmetic change?
* Does a cosmetic change mean adjusting indentation?
* Does it mean deleting unnecessary abstraction to make the code more readable?
* Does it mean refactoring code to add that beauty factor?
* Does it mean all of the above? Or perhaps a specific combination of these?
Human communication is shit enough, don't make it worse than it already is.22 -
someone pushes code and breaks ci.
me: you broke the build
her: (ignoring the explicit error message) it works on my machine, travis is broken
me: it doesn't even work on my machine!
her: I forgot to push one file, sorry.1 -
the most incompetent person that ever worked with me had no proactivity, always waited for an explicit order to start to do anything and had absolutely no autonomy. this guy would frequently ask me stuff that he could find with a google search.
when the IT team was let go, the company lined me up for another job, and my boss actually told me "you work well so i can refer you, but i can't do the same for <that guy>". i honestly thought that was his first job, but no. i have no clue how he managed to work in a hospital before that.4 -
Kotlin! I recently transitioned to kotlin for Android Development and it's such an exciting journey!!!2
-
What do you need a boss if you can find the idea, analyze it, design the product, code it, test it, setup the cloud and even do the marketing.
Dear bosses,
I am a developer not a God!3 -
I just had a chat with the CEO (I'll call him John) of the company I work at. I was trying to get a real alignment on what I need to do to be a valuable resource to this company. They promoted me (without a raise in pay) to a different (management) role, and I do not know what I need to do to be the best in this role.
During the discussion, the CEO failed to provide any usable metrics, or a way to track those, except for phrases like "higher productivity" and "higher quality". How to track? No idea.
So, at this point, me being the idiot I am, wanted to make things explicit:
*Me: Okay, so what if I request for a 20% raise six months from now, what metrics will you look at to decide whether to give me the raise.
(My last raise was a big one, more than 100% or so, more than a year ago. That was a dev role, and I was paid 2 cents earlier, so the doubling to 4 cents wasn't really a big deal.)
John went on a long rant on how people just expect raises every year, inflation, etc. All good and fine.
But then he mentioned something strange.
*John: ...and you know, for the last three years, there has been a race to retain resources. During this race, many companies, including us, had to pay people WAY MORE THAN THEIR VALUE to retain them. These people are going to be the first to be fired during cost-cutting as they are the most expensive resources at the company without any proven value. These people should not expect raises to come soon, and if they do expect that, they need to prove the value themselves.
Now, I, being a simpleton, am wondering how is it fair for an organization to pay someone "more than their value" to retain them once so that they can just be fired two years later. How did the company decide the value of such employees to begin with?
And all this is ignoring the fact that in the company there are no metrics, no KPIs, and performance of a person is how much the CEO likes that guy. How TF the people who joined a year ago and never interacted with the CEO prove their worth?
Developers are building PowerPoints and configuring JIRA/Confluence/Laptops of Sales team, project managers are delegating management to developers and decision-making to the CEO, Technical architect is building requirements documents, Business Analyst is the same person as the QA team lead (and badly stretched), and the Release Manager is the Product Technical Admin that cannot write one sentence in English. And then we got 3.8 hours in meetings every DAY. Why TF are Dev Managers in "QA KPI Meeting"? Why are "developers" writing documentation on "How to create meeting notes at <company>"?
And, in this hell-storm, how does one really demonstrate one's value?14 -
devRant should place an explicit notice upon registration:
"devRant cannot be held responsible for proctrastination when you have pressing deadlines :D"
and every 20 minutes a popup saying "get back to work! it's been a while"1 -
I've made a social dashboard to pull tweets/instagrams with certain hashtags for a big company event we have next week, which will be on all the big screens. We've been testing it this week on some of the screens. This morning, a Twitter spam bot posted a rather explicit picture of 2 girls having some fun, with one of the hashtags.. It was on the screens for 20 minutes before I realised. 😢4
-
Explicit!
Okay so someone asked me to explain difference between an iPad & PC & i did it something like this:
If you provide a kid with a condom and a balloon, which would he value more?
Now give the same set to a mature adult, which would he value more?
We know which one serves the greater purpose right? 😝9 -
Never worked before so I'll talk about one of the former staff at my school.
This guy worked as IT and did some teaching in the high school. Early last year, he suddenly disappears for no reason.
Now, I'm going to go in order of what we (the students) found out, not, chronological order.
Firstly, turns out that in class he would make comments about female students. Nothing explicit, just kinda strange. I forget the examples I heard but think like the overly friendly old guy. Those types of comments from a 40-something IT guy. (Some female students knew about this for a long while but I only heard about it after the investigation)
Next, rumor got out that they found some stuff on his computer. I don't know how, but it turned out to be accurate, and we were accurate at the follow-up assumption that it was porn.
After that, the school made an announcement that we had been arrested. Up until then, we just assumed he had been sacked. He was weird sure, but we didn't think criminal.
Some other students looked into the police records, and it turns out this guy had been arrested for possession and distribution of child pornography.
Pretty sick right? Its worth pointing out now that our school has Pre-K through 12th grade students.
I gained a new level of respect for my female classmates after that. I didn't even know that was going on, really wish I could have helped out.1 -
css quick maffs
so you did this:
.foo:hover {
transform: scale(1.1);
}
and now ugly scrollbar is there when the element is scaled.
No, don't do overflow: hidden. There's a better way. Instead, do this:
.container {
padding: 1rem;
box-sizing: border-box;
}
the element total width is calculated based on the width of its content. That's true unless you specified width and height explicitly (if you did so, you're a doofus, I'm sorry).
Scaling makes content somewhat larger. With border-box, paddings work differently with the total width.
By default, if you set width to say 100px, and paddings are 20px, total width will be 140px — it's your 100px of content plus two paddings of 20px. width property set the width of the content, not the total width.
With border-box, width property sets the total width. So if you set width to 100px and paddings to 20px, total width would be 100px, just like you set it, and content will be 60px wide — it's 100px minus 20px times two.
The key part is it doesn't end with explicit width. The algorithm remains. When some node is rendered, its total width is calculated. When you use border-box, the total width will stay the same even if your content grows by some value that is less than your paddings. So, your content was 100px, you scaled it, and it became 110px. Well, then that extra 10px will be subtracted from your paddings, and they will be 15px each instead of 20px.
No more ugly scroll bar. Yaaay!
aight bye8 -
Clients r wankers. He wants to be able to send login details incl passwords in email to his clients when he adds them in the cms. The passwords are encrypted and generated on creation of a new user. Ive told him that sending credentials in email is shit and not secure. The stubborn bastard wont budge, so instead i've put explicit instructions to reset password once logged in with the credentials they send. Any other suggestions?3
-
So what do you do if your workplace is just a sinkhole but its one of the highest paying sinkholes?4
-
This.
Not the worst but almost all of us (including me) handle strings like fucking morons.
If the input doesn't need to be an exact match we use a explicit comparison operator, when the input should explicitly match we do a loose comparison operator.
I'll format the crap out of a number, convert it, validate decimal places, check for float rounding hell, give it a absolute value and return it correctly formatted for the users locale but half the time I forget to trim their input. 🤦♂
Like I said - just a tad fucking moronic isn't it?3 -
Short rant: I hate xcode, I hate Swift, I hate Apple.
After 3 weeks of intensive work (I'm an apprentice, part-student, part-worker), I was happy to go back to school and was like "Oh we're going to learn iOS, sounds cool !".
It is now friday, I have homicidal tendencies growing inside me, I want to cry whenever I hear xcode or swift.
Why in the hell I can't use a string argument when I'm calling a function NEEDING a string arg ?
Why do xcode take so long to tell me that there is a problem, why is the error message not explicit AT ALL ?
Why dictionaries so hard to manipulate, EVEN IN JAVA IT'S SIMPLIER.
Why putting our API call in specialized files make them run AFTER EVERYTHING ELSE and the solution that is given to us is deprecated since 5 years ?
Why is a classic c-style for loop is now deprecated ?
These are just a drop in the ocean of WHAT THE FUCK IS THAT that we came across this week.
Fuck Swift, fuck xcode.7 -
Reading about Lua, see this:
"Lua arrays are 1-based: the first index is 1 rather than 0 as it is for many other programming languages (though an explicit index of 0 is allowed)."
*close tab*2 -
If hiring managers really want to hire based on skill, what they should be doing is testing for one thing:
The ability to take a specification, written in general language, notice deficiency, communicate with the 'client' (manager) to hash out what needs done, and the (explicit) ability to read documentation on libraries or tooling outside the dev's core skillset.
If a dev can read a spec, talk to a client to work out whats lacking, and then identify what they need to know and where to find it, thats 90% of the skills they need from what I can see.
tl;dr version of it, is they should be explicit about the requirements for reading/implementing specs and finding the correct documentation.
Something along the lines of
"can you form your letters? Are you able to follow instructions on the back of a cake box? Then there may be a position waiting for you!"8 -
Boss yelled at lead mobile dev for low productivity because the project manager present him wrong timetables and added accidentally one more week of work.
Next day boss yelled at the lead mobile dev cause the back end wasnt working well.
Project manager and lead back end developer enjoy life! Front is hell :P5 -
GDPR is about to happen.
Has anyone read the provisions?
It's like they put some flat earther anti-vaxers in a room and made them scribble up a law.
For those who don't know - it's a new, EU-wide "data privacy" law that's about to take effect on May 25th.
The gist of it is that if you fuck up even a little bit, you get to personally pay a fine of up to 10 Million Euros (for companies there's a separate clause, this is for employees only), or/and 2-3 years in jail if that fuck-up has caused material damages.
That little fuck-up can be as simple as losing a tiny amount of data between back-ups, or entrusting a third party with full access to some data (which is not prohibited) without controlling 100% what he can do with that data (which IS prohibited).
I shit you not, these are the explicit articles of that law.
If it is enforced in this way, it is the swift death of European economy. Just because some retards didn't read the privacy policy before agreeing to it, and then made a shit storm, everyone has to suffer.50 -
While testing the newly discovered "primesieve" C library, I forgot to change the limit variable from 1e10 to just 10 when giving the value through pow to make it more explicit.
Now my PC is dying in front of me while trying to compute the Gogol nth prime number. Nice.3 -
My dissertation at university was to analyse chat logs of pedophiles in the hope that the application of a density metric could flag up both explicit chats between parties (which it did very well) and more importantly flag up potential on going grooming (it was a bit hit or miss) I love telling people about this because it freaks them out2
-
Keeping my layer names as clean and explicit as my variables when I am designing.
I will never leave an "New Layer 1" untouched!2 -
My Precalculus teacher has such overstrict rules on showing work.
1. On tests, degree signs must be shown in all work. This wouldn't be outrageous except that if the answer is right but a single degree sign is missing in the mandated shown work, the entire question is wrong even with a correct final answer because the "answer doesn't match up with the work".
2. We must show work in the exact form mandated from on class. If even a single step of work is missing or wrong on even one say homework problem, no credit even if the entire rest of the sheet is correct and complete.
3. Never applied to me, but if a homework problem cannot be solved by a student, they must write a sentence describing how far they got and what wasn't doable, or no credit on the entire homework. Did I mention it is checked daily and is 2 unweighted points with 50-100 point tests?
4. On graphing calculator problems, one had to draw a rectangle representing the calculator screen, even for solving systems of equations without explicit drawing graphs as part of the problem, because otherwise, she had "no proof that a calculator was used". It isn't that hard to fake, and it was quite stupid.
5. Reference triangles were required even when completely unnecessary or the answers were assumed copied, even if a better method was shown in work.
And much, much more!4 -
The akward moment your boss asks if you finished implementing all the business rules when he didnt reply at the last hundreds of emails that you sent about specifying what are those rules!
-
I just finished designing an entire asset management pipeline and christ on a fucking pogo stick, if it isn't convoluted.
Theres a lot of game engines out there, but all of them do it a little different. They all tackle a slightly different problem, without even realizing it.
1. asset management
2. asset change management
3. behavior change management
4. data management
5. combinatorial design management.
6. Combinatorial Behavior management
7. Feature completion
ASSET MANAGEMENT is exactly what it says on the tin.
ASSET CHANGE management can be thought of handling the import, export, formatting, platform specific packing, and versioning (including forking) of an asset.
BEHAVIORAL CHANGE management is a subset of asset management, because code is a subset of assets (depending on how you define 'assets'). The oldest known example of this is commenting and uncommenting code.
Or worse, printf debugging.
This can be file versioning, basic undo services, graph management of forks and mergers, toggles for features or modules, etc.
DATA management is about anything that doesn't fall into the other categories, everything from mission text to npc dialogues, quests, location names, item stats, the works. Anything you'd be tempted to put in a database, falls under this category. Haven't yet seen many engines offer this as an explicit built in tool as of yet, because the other problems are non-trivial as is, so this is a bit of low hanging fruit that gets handled by external tools, or loaded from formats as simple as json.
COMBINATORIAL DESIGN management is the idea of prefabbing, blueprints of broader object design using nested prototypes of existing game objects, to create more complex, reusable set pieces. Unity did this well. GM does this in part.
COMBINATORIAL BEHAVIOR management is entity-component systems, plus tooling to make it easy to add, remove, and configure components and their values on entity blueprints, also not uncommon. Both stencyl and unity do this. GM has a precursor to this in the form of configurable fields, but these fields are not based on component scripts attached to objects.
FEATURE COMPLETION is that set of gameplay mechanics or styles of design that an engine naturally makes easier to include or build in a game.
I don't think I'm aiming for all that, but I think at minimum a good engine has to do asset management, behavioral change management, prefabs, and entity-component systems with management tools for that. And ideally, asset change management.8 -
1. i'm drunk.
2. please do me a sanity check
3:
this video, at this timestamp, watch the following about 5 minutes or so:
https://youtu.be/oG-6Ltp1_yE?t=1129
4. tell me (and possibly him in comment) if i'm wrong in the (point) of the following comment i wrote under that video:
20:53 ARE YOU FUCKIN KIDDING ME YOU ABSOLUTE MORON?!
yes, US has an altitude software written in fuckin VBA with an explicit statement to ignore errors, and there's not about 10x more automated testing code for a critical piece of functionality, than there is of the code that handles the actual functionality, and it's not been tested off-line (in simulated environment) as well as on-line (IRL) for at least years in all conditions, before it was deployed, YOU ABSOLUTE FUCKING MORON.
CAN YOU JUST PLEASE FOR THE LOVE OF ALL THAT'S HOLY STICK TO WHAT YOU ACTUALLY PROPERLY UNDERSTAND?!
HOLY FUCK THE LEVEL OF ARROGANCE IN YOU IN ASSUMING THAT JUST BECAUSE YOU KNOW VBA YOU KNOW HOW PROPER SOFTWARE DEVELOPMENT IS DONE, HOLY FUCKING SHIT.
I've worked in companies of 1k employees and less, on absolutely non-critical stuff, that has DevOps and QA processes and infrastructure that would make your script kiddie head spin for WEEKS, LET ALONE FUCKIN MILITARY SW DRIVING MILITARY EQUIPMENT YOU ARROGANT KNOWITALL FUCK.
Please, just please, FOCUS ON FUCKING DOING VIDEOS ABOUT STUFF YOU FUCKING UNDERSTAND, instead of stuff your ego overinflated from years of debunking dunning-krugers tells you that you're an expert in despite never actually having worked even near those fields. PLEASE. You are amazing when doing those, but this bullshit is just fucking rage-inducing. Don't ever talk about software again, because that's obviously YOUR dunning-kruger area, you fuckin bigheaded script kiddie.12 -
Potentially hot take : If you're making a video course on a tool that supports multiple languages you should show examples in a language with explicit typing whenever possible.
Weakly typed and implicitly typed languages make it harder to know what the results of a particular statement are and therefore what you can do with them.6 -
My opinion on Spotify introducing parental controls:
As a software engineer
When I see a track labeled as Explicit
Then I know it's a piece of p**s to filter out that track if a child is logged in.3 -
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!1 -
What I'm doing now, writing a JS library for a simple kitchen timer (like, something that can be wound up, is ticking, can be paused, etc). Here's a list of neat stuff I've learned:
Polyfilling as a lib author (I decided against it).
Packaging the lib (using Rollup, ES6 modules are totes cool).
Using flow to add static typing in strategic places (started appreciating types in JS since reading up on functional programming).
Modelling state and transitions using an explicit state machine. (Fucking finally. There's usually an implicit state machine somewhere, only spread out all over the app...)
Using mostly side-effect free methods, being very explicit about when and why things are mutated).
Test-first/TDD (ish) using Jest and the awesome Wallabyjs.
Freeing up mental capacity by letting Prettier format my code for me (it was hard to let go but totally worth it).
Started using git.
Did all work on Ubuntu after pretty much a lifetime of Windows (initially to separate work from gaming) and finally swapped MS Visual Studio for Atom.
When it's finished I'm going to publish it on GitHub, which will also be a first for me. Might try out some CI platform while I'm at it.
tl;dr: wrote some js, felt good2 -
So I do not get why people use ReactJS. I hate it. for 3 years passionately. And I have to work with it every day.
- one-way data binding
this makes you write twice as much code, which will have twice as much bugs, you need to read through twice as much code from other devs.
- mixing html and JS
after all I like to pour my coffee on my omlette so I can eat and drink at the same time in the morning. This kills productivity and ugly AF
- not unified
Every dev uses their own special snowflake framework with React there is no unified way of doing things and you cannot use your familiar tools. Every project you need to start over from zero.
- Bugs bugs bugs
infinite loops, max update depth reached, key not present on list element. Let me ask you something dear ReactJS. If you know that there should be a unique key on that element. Why cannot you just put it there and shut the f up?
- works reeaally slow when compiled with TS
ReactJS was never designed to work with TS and now the tools for it are really slow. And why TS? Explicit contract is always better than an implicit contract. TS helps you in coding time, but for some reason React devs decided to worth 3 seconds to wait for compile and then realize you mad an error. ReactJS is bad and inefficient so stop making projects with it please.9 -
Guys! Let’s have a contest.
I need a new name for a new journal for my new thoughts. Deep thoughts.
Person who best chooses a name that is fitting (maybe nerdy too) gets a ++ and a screenshot of my handwriting.17 -
Python ecosystem drives me nuts!
Not the language tho, i kinda like it, and some features are damn straight awesome.
But ecosystem... man!
The way ppl write code in it, the lack of documentation (or in quality of it)...
I recently wanted to check how library does one thing (debug purposes), and not only i had to track some method up 3 classes, the other method i hunted only by signature and still i have no idea how it ends up being accessible where it should...
"Explicit is better than implicit" my ass...
Also dev managed to make the code very unreadable. In Python. Language with such strong opinions about code formatting. HOW ?!!
And the worst part is, it wasn't that big of a library and didn't really need the full freaking Enterprise OOP treatment with layers over layers of generally named classes and fucked up architecture.
FUCK THAT LIB, FUCK THAT DEV, FUCK IT ALL !!!
PS.
Project seems to be abandoned for a year or two, so there is hardly an option to fix things with the author sadly :(3 -
You can say you know a computer language to a decent level when you can in fact make useful programs with it.
For example, I can say I know JavaScript to a basic level. I know its basic core functionality by heart (which can't be said for some people I know), such as:
- it manipulates the DOM, the DOM has Element, Nodes, TextNodes (all to be found on W3C documents with its own specs)
- useful functions are:
getElementById()
getElementsByClassName()
Also knowing that these return either HTMLElementCollection or NodeCollection because you have to iterate over it differently then
- element.textContent
- == and ===
- dynamic typing
- closures
- avoid global variables
- nodes have parentNodes
- isNaN, undefined
- arr.push()
- arguments don't have explicit types defined
- etc.
Using this knowledge I built an antispam script for a particular server. It's good to know the model of a language, that it sits in your head and that you can use and understand the constructs when you want and how you want.1 -
The state of web dev is we have to be explicit that a lib DOES NOT depend on jQuery.
Even when it is blindingly obvious that will be a terribly bad idea to do so.
https://github.com/STRML/...11 -
"Reflective" programming...
In almost every other language:
1. obj.GetType().GetProperties()
or
for k, v in pairs(obj) do something end
or
fieldnames(typeof(obj))
or
Object.entries(obj)
2. Enjoy.
In C++: 💀
1. Use the extern keyword to trick compilers into believing some fake objects of your chosen type actually exist.
2. Use the famous C++ type loophole or structured binding to extract fields from your fake objects.
3. Figure out a way to suppress those annoying compiler warnings that were generated because of your how much of a bad practice your code is.
4. Extract type and field names from strings generated by compiler magic (__PRETTY_FUNCTION__, __FUNCSIG__) or from the extremely new feature std::source_location (people hate you because their Windows XP compilers can't handle your code)
5. Realize your code still does not work for classes that have private or protected fields.
6. Decide it's time to become a language lawyer and make OOPers angry by breaking encapsulation and stealing private fields from their classes using explicit template instantiation
7. Realize your code will never work outside of MSVC, GCC or CLANG and will always be reliant on undefined behaviors.
8. Live forever in doubt and fear that new changes to the compiler magic you abused will one day break your code.
9. SUFFER IN HELL as you start getting 5000 lines worth of template errors after switching to a new compiler.13 -
Anyone know a good site to ask programming questions that are more on the looking for suggestions side of things rather than explicit answers? Apparently Stackoverflow mods would rather wave there mighty e-peen and close a thread if your looking for suggestions on how to go about something... 😕7
-
My Gripe With Implicit Returns
In my experience I've found that wherever possible code should be WYSIWYG in terms of the effects per statement. Intent and the effects thereof should always be explicit per statement, not implicit, otherwise effects not intended will eventually slip in, and be missed.
It's hard to catch, and fix the effects of a statement intent where the statement in question is *implicit* because the effect is a *byproduct* of another statement.
Worse still, this sort of design encourages 'pyramid coding recursion hell', where some users will first decompose their program into respective scopes, and then return and compose them..atomically as possible, meaning execution flow becomes distorted, run time state becomes dependent not on obvious plain-at-sight code, but on the run time state itself. This I've found is a symptom of people who have spent too much time with LISP or other eye-stabbingly fucky abominations. Finally implicit returns encourage a form of thinking where programmers attempt to write code that 'just works' without thinking about how it *looks* or reads. The problem with opaque-programming is that while it may or may not be effortless, much more time is spent in reading, debugging, understanding, and maintaining code than is spent writing it--which is obviously problematic if we have a bunch of invisible returns everywhere, which requires new developers reading it to stop each and every time to decide whether to mentally 'insert' a return statement.
This really isn't a rant, as much as an old bitter gripe from the guy that got stuck with the job of debugging. And admittedly I've admired lisp from afar, but I didn't want to catch the "everything is functional, DOWN WITH THE STATE" fever, I'm no radical.
Just god damn, think of the future programmer who may have to read your code eventually.2 -
Whenever I search Anaconda, Nicki Minaj's explicit video songs pops in the 3rd result... I don't know why I feel weird about it... Feel like I have to explain myself to myself...?!?2
-
Data representation is one of the most important things in any kind of app you develop. The most common, classic way to do it is to create a class with all the fields you want to transport, for example User(name, lastName). It's simple and explicit, but hell no, in my current company we don't play that kindergarten bullshit, the only way we know how to do things here is full hardcore. Why would anyone write a class to represent a Song, a Playlist or an Album when you can just use a key-> value map for pretty much everything? Need a list of songs? No problem, use a List<Map<String, String>>, OBVIOUSLY each map is a song. Need a list of playlists? Use a List<List<Map<String, String>>>... Oh wait, need to treat a value as a number and all you have are strings? That's what casting is for, dumbass.
No, seriously, this company is great. I'm staying here forever!1 -
What I learned about C# this weekend:
1. I am shit at C#
2. There is a nice selection of libraries both from Microsoft and third party.
3. I like a lot of the design decisions to not make foot guns. Like you can't use an int as a bool. You must be explicit so you don't have hidden type conversions.
4. WPF isn't terrible, but it took me a bit to figure out how to make sure the front end can see changes by triggering events when a property changes. I knew this was a thing, but it took forever to figure out how. The new terminology for things is tripping me up.
5. I am shit at C#.
So what do I get out of 1.5 days of banging my head against the wall? An https server that simulates a hardware device and exchanges json messages back and forth. It does what my python code is doing now.
I found a nice library for https:
https://github.com/chronoxor/...
I learned quite a bit reading the code from this library.9 -
A couple of years ago, I was invited for an interview after applying for a part time job as a C/C++/Assembly developer with customer contact to earn a bit of money while studying at university.
Throughout the whole interview they didn't ask me a single question related to the work I was expecting to do. Just a couple of questions about my team skills, how I would react in certain difficult situations and how my studies were going. Nevertheless they seemed pretty pleased with me and asked when I could start.
I was somewhat irritated by that, especially because I was still a beginner in some areas and made that quite explicit in my application. I asked what kind of projects I would be working on and what skill level was expected of me.
"It's pretty straightforward. Just pick up the phone and go through the checklists we'll provide. You'll pick it up quickly."
Wait what?!
Turns out they didn't have an opening for a programmer. They were looking for somebody for a first level phone support minimum wage job and simply used an old ad for a programmer's position "to attract more technically minded people".
I rejected respectfully...
What the actual fuck? Who even does something like that?1 -
I did not think that making a serverless Discord bot would be such a learning experience. The code itself was easy. The hard part was the infrastructure, because I decided to automate it all with Terraform and deploy it on AWS.
Before this project, I had no idea how API Gateways worked. Now I still have very little idea how they work but I managed to build one anyway. Eventually. And then I had to figure out how to automate the deployment of a lambda layer and function that would both still be managed in the Terraform state, with any code changes triggering a rebuild and update for the resource.
And then I had to untangle a dependency mess because API Gateways have some weird issues where two resources that have no explicit dependencies on each other will throw an error if they don't deploy in the right order.
And then I went the wrong way with Github actions trying to conditionally chain multiple workflows together before I realized I could just put multiple jobs with conditions in a single workflow.
And now after all that work over the course of 2 days, I have a bot that does this:2 -
Doesn't Python kind of contradict its own mantra. When they write explicit is better than implicit but at the same time they provide collection literals?5
-
I've decided to switch my engine from OpenGL to Vulkan and my god damn brain hurts
Loader -> Instance -> Physical Devices -> Logical Device (Layers | Features | Extensions) | Queue Family (Count | Flags) -> Queues | Command Pools -> Command Buffers
Of course each queue family only supports some commands (graphics, compute, transfer, etc.) and everything is asynchronous so it needs explicit synchronization (both on the cpu and with gpu semaphores) too4 -
Anyone else here who needs to deal with GDPR on the software level? I'll go nuts until we're compliant in every aspect.
I've been developing a consent library for the last few days. It even automatically links expressions of explicit consent to current screenshots of the relevant forms (because you need to do that too), and past records are immutable. Well, unless the whole database gets fucked somehow, then it's not.3 -
Possibly my favourite function is Clojure's "recur", which isn't really a function at all, but a special form that gives you a guaranteed tail-position call to the current function.
Basically what that means is you can write recursive functions (functions that call themselves) and know that you're not creating a potential stack overflow.
Um. Okay, I can feel people looking at me like 🤔 Basically what *that* means is: normally when a function calls another function, a "stack frame" is allocated, holding all the local variables for that call. If a function calls itself 1000 times, 1000 stack frames get allocated. "Tail call optimisation" is a process by which if you call yourself as the very last thing in a function, the language doesn't need to remember the current frame; it just has to pass the return value upwards. The trouble is, it's sometimes hard to notice that you've turned a tail-call optimisable function into a non-optimisable one. Clojure's recur keyword makes it explicit, and therefore safe: if you try to do anything with the return value of recur, it's an error.
PS I'm sure another language did explicit TCR first, but Clojure is where I first saw it.6 -
God damn the last few days:
JUST give me some modular-ish code that is a bit more explicit and doesn't measure every fucking thing over and over.
Like I get how taking a couple .lenght and a bunch of other variables adds up to "Make a meat lovers pizza".
But fuck man when the code goes all over the place just give me a block of code that measures all that shit in ONE PLACE a god damn pizzType variable that I can use elsewhere and just fucking know what is going on.
Every damn corner becomes this maze of measurements that you cant be sure is exactly the same unless you fucking watch every damn variable, I get how that happens but god damn.2 -
Rust should support explicit variance declarations. Explicit declarations are like the main feature of the language, variance is a critically important part of a type's public interface, and &mut-s that are never reassigned and should thus inherit the referee's variance are extremely common. If the language can't recognize this, I should be able to declare it with a single unsafe rather than constantly casting to and from 'static.3
-
I prefer VSCode over visual studio for a ton of tiny conveniences. Some git operations can really only be done conveniently by switching rapidly between the command line and the big scrollable list of diffs. The currently open file is automatically focused in the tree, not by explicit user command. Ctrl+Tab shows the last viewed section of files and not their name, so I can find an arbitrary point in my jump chain. If I open the diff for a newly added file it's possible that I want to edit the file, but it's also possible that I didn't notice that it's newly added. Painting the whole background green doesn't hinder the first scenario nearly as much as it solves the second, in contrast to VS not showing any changes, which just has me confused because of the total lack of modification marks.3
-
Learning Philosophy.
It is the most important thing for anyone to do to.
Everyone has one either implicit or explicit.
Learning metaphysics, and then more specifically epistemology has greatly increased my ability to process new information and build better models of the world around me. -
Useless language feature #1: specify kind in explicit expression type annotations that you insert to guide the type inference engine.
How did I work on this for 6 months without realizing that the kind of a value's type is always the kind of types because that's literally what the kind of types means?2 -
I'm still on a regular basis reminded of how I might be wrong despite the absolute certainty in how obviously wrong the other person is.
Lately I've been working on setting up this API with a fairly intricate database integration. One request can lead to multiple db calls if we're not careful, so we have been polishing up the implementation to guard against ddosing ourselves and dealing with thread-unsafe concurrency.
Someone on the team could happily report that they got rid of all async use so there should no longer be threading issues. "You mean it all runs sync now?" "I guess. It works at least".
I'm just internally pulling a surrender cobra. If this was pre-dev me I would have let him and everyone know what a stupidpants he is and that I thought he had some experience in api development. But let's not make an exception to the rule; I might be wrong. I mean I'm not, but let's pretend I could be. Let's pull down the changes and maybe set up a minimal example to demonstrate how this is a bad idea.
Funny story. He got rid of explicit calls to the database entirely. When resolving data, the query is instead constructed virtually and execution is deferred until the last step. Our functions are sync now because they don't call the database, and threading isn't an issue since there's only one call per request context.
Thank god I've learned to keep my mouth shut until I can prove with absolute conclusive certainty that they are wrong. Here's to another day of not making an ass of myself. -
Nothing like trying to understand a single 1500-line source file that implements the API usage in the frontend. Without a single comment.
No, wait. There are comments! But it's only commented-out code. Or explicit shit (like "gets the version" before a getAssetVersion function).
Functions with unused parameters? ✅
Weird var names (like "tmpX")? ✅
`console.log(var)` everywhere? ✅
Long-ass lines with 150+ chars? ✅
Duplicate code? ✅✅
Not a single interface was used so everything is var: any? ✅
Random unreadable RegEx? ✅
If-chains of 6+ more levels? ✅
Many `else if` towers instead of a switch? ✅
And did I mention it was written by a fucker who can't speak proper English so shit like visiable, cataloge and isExist is everywhere? Yeah.
Fun day at the office reading spaghetti code 🙃 -
I swear to god of I have one more developer recommend EMAC to me I'm going to change my career back to marketing with the explicit purpose of rebranding EMAC users as the neck beards among developers! AARRHGHH2
-
Always use explicit parentheses.
Nothing like an OR swallowing the majority of your conditions to get you to make sure they're grouped properly with parentheses. -
Not loving the implicit return statement within Scala. I like to avoid else statements to keep the level of nesting low and do early return yet Scala doesn't allow that.
(I am aware that I should flatMap that shit though in some cases I just want a simple if not foo then throw exception line. And continue with the next block until I return something.)
So you either have to create if-else-nesting beats or use pattern matching. The latter seems overly complicated for this use case (though it has its moments).
I know that I can make the return explicit yet the linter warns against that. It feels so verbose and I currently do not see any benefits and would argue that the code becomes both harder to read and maintain.3 -
Fucking Fluent NHibernate with it's stupid fucking explicit empty constructors. WHY? JUST FUCKING USE THE DEFAULT CONSTRUCTOR YOU MONG LIBRARY!!! And also, why the holy fuck do my field setters need to be PROTECTED INSTEAD OF PRIVATE??? WHY THE FUCK?
-
Top 12 C# Programming Tips & Tricks
Programming can be described as the process which leads a computing problem from its original formulation, to an executable computer program. This process involves activities such as developing understanding, analysis, generating algorithms, verification of essentials of algorithms - including their accuracy and resources utilization - and coding of algorithms in the proposed programming language. The source code can be written in one or more programming languages. The purpose of programming is to find a series of instructions that can automate solving of specific problems, or performing a particular task. Programming needs competence in various subjects including formal logic, understanding the application, and specialized algorithms.
1. Write Unit Test for Non-Public Methods
Many developers do not write unit test methods for non-public assemblies. This is because they are invisible to the test project. C# enables one to enhance visibility between the assembly internals and other assemblies. The trick is to include //Make the internals visible to the test assembly [assembly: InternalsVisibleTo("MyTestAssembly")] in the AssemblyInfo.cs file.
2. Tuples
Many developers build a POCO class in order to return multiple values from a method. Tuples are initiated in .NET Framework 4.0.
3. Do not bother with Temporary Collections, Use Yield instead
A temporary list that holds salvaged and returned items may be created when developers want to pick items from a collection.
In order to prevent the temporary collection from being used, developers can use yield. Yield gives out results according to the result set enumeration.
Developers also have the option of using LINQ.
4. Making a retirement announcement
Developers who own re-distributable components and probably want to detract a method in the near future, can embellish it with the outdated feature to connect it with the clients
[Obsolete("This method will be deprecated soon. You could use XYZ alternatively.")]
Upon compilation, a client gets a warning upon with the message. To fail a client build that is using the detracted method, pass the additional Boolean parameter as True.
[Obsolete("This method is deprecated. You could use XYZ alternatively.", true)]
5. Deferred Execution While Writing LINQ Queries
When a LINQ query is written in .NET, it can only perform the query when the LINQ result is approached. The occurrence of LINQ is known as deferred execution. Developers should understand that in every result set approach, the query gets executed over and over. In order to prevent a repetition of the execution, change the LINQ result to List after execution. Below is an example
public void MyComponentLegacyMethod(List<int> masterCollection)
6. Explicit keyword conversions for business entities
Utilize the explicit keyword to describe the alteration of one business entity to another. The alteration method is conjured once the alteration is applied in code
7. Absorbing the Exact Stack Trace
In the catch block of a C# program, if an exception is thrown as shown below and probably a fault has occurred in the method ConnectDatabase, the thrown exception stack trace only indicates the fault has happened in the method RunDataOperation
8. Enum Flags Attribute
Using flags attribute to decorate the enum in C# enables it as bit fields. This enables developers to collect the enum values. One can use the following C# code.
he output for this code will be “BlackMamba, CottonMouth, Wiper”. When the flags attribute is removed, the output will remain 14.
9. Implementing the Base Type for a Generic Type
When developers want to enforce the generic type provided in a generic class such that it will be able to inherit from a particular interface
10. Using Property as IEnumerable doesn’t make it Read-only
When an IEnumerable property gets exposed in a created class
This code modifies the list and gives it a new name. In order to avoid this, add AsReadOnly as opposed to AsEnumerable.
11. Data Type Conversion
More often than not, developers have to alter data types for different reasons. For example, converting a set value decimal variable to an int or Integer
Source: https://freelancer.com/community/...2 -
Was told the following by an "Information Security Professional"...
"RFC 1918 addresses will not follow a default route, default routes are only for internet bound traffic and RFC 1918 addresses are dropped by any router without an explicit route."
I honestly do not get paid enough for this.2 -
I started reading this rant ( https://devrant.com/rants/2449971/... ) by @ddit because when I started reading it I could relate to it, but the further he explained, the lesser relatable it got.
( I started typing this as a comment and now I'm posting this as a rant because I have a very big opinion that wouldn't fit into the character limit for a comment )
I've been thinking about the same problem myself recently but I have very different opinion from yours.
I'm a hard-core linux fan boy - GUI or no GUI ( my opinion might be biased to some extent ). Windows is just shit! It's useless for anything. It's for n00bs. And it's only recently that it even started getting close to power usage.
Windows is good at gaming only because it was the first platform to support gaming outside of video game consoles. Just like it got all of the share of 'computer' viruses ( seesh, you have to be explicit about viruses these days ) because it was the most widely used OS. I think if MacOS invested enough in it, it could easily outperform Windows in terms of gaming performance. They've got both the hardware and the software under their control. It's just that they prefer to focus on 'professionals' rather than gamers.
I agree that the linux GUI world is not that great ( but I think it's slowly getting better ). The non-GUI world compensates for that limitation.
I'm a terminal freak. I use the TTY ( console mode, not a VTE ) even when I have a GUI running ( only for web browsing because TUI browsers can't handle javascript well and we all know what the web is made of today - no more hacking with CSS to do your bidding )
I've been thinking of getting a Mac to do all the basic things that you'd want to do on the internet.
My list :
linux - everything ( hacking power user style )
macOS - normal use ( browsing, streaming, social media, etc )
windows - none actually, but I'll give in for gaming because most games are only supported on Windows.
Phew, I needed another 750-1500 characters to finish my reply.16 -
Browser automation is a PITA. I’m going on my fourth side mission with this crap and I honestly still look like a newbie. I’ve tried Java Selenium with Chrome, Excel VBA with IE9, Vanilla JS in the browser console, and tonight I’m thinking to concoct some kind of hybrid CDP & Selenium approach in Chrome. Never used CDP before, not even sure where to start but I heard it sucks like anything else unless you get some extra libraries and plugins and stuff.
It doesn’t help that I can’t get just anything I want from our IT Department. It would be another PITA to ask for puppeteer. If puppeteer is totally legit please let me know.
Selenium sucks. The buttons don’t click, the waits don’t wait. Its unusable. Iframes are annoying as all hell but I can deal with that. HTML Tables suck too. It doesn’t help I have to restart my whole java program and whole Chrome every time an element doesn’t get picked correctly. Scripting one single element can take all fucking night.
Chrome dev tools what the fuck. Why the fuck is the DOM explorer in the same window as the web page I’m working on?? I can’t undock it. Am I supposed to use a fucking TV screen to work with this bastard?? If I use the remote chrome tools on port 9225 or whatever - It Still Renders The Whole Fucking Page Alongside The Console. Get Out Of My Way!!! The nested HTML CODE IS ONE CHARACTER WIDE ALL THE TIME. I can’t for the life of me figure out what the fuck I’m looking at. Haven’t you people ever heard of A HORIZONTAL SCROLL BAR at least.
Fuck I tried using getElementById, and the Xpath thing and its not all that great seeing I have seemingly 1000s of nested Divs all over the god damned place oftentimes containing a single element. I’m finally on chrome now should I learn Jquery now? I mean seriously wtf.
I use this one no code tool for dev it has web automation built in. As you can imagine its just as broken as anything else!! I have 10 screens to navigate it gets stuck on the second screen all the damn time. Fuck I love clicking the buttons when my script misses and playing catch up with it.
So as a work around to Selenium not waiting even 1 millisecond when I use explicit wait or implicit wait or fluent wait, I’m guessing maybe I can attach both Chrome Dev Tools Protocol (CDP as ive called it earlier) and selenium to the same browser and maybe I can use CDP to perform a Wait with any degree of success. Selenium will do nothing more than execute vanilla javascript Element.click(); This is the only way I know to even ACTUALLY use selenium beyond the simplest html documents possible. Hell I guess CDP can execute js idk.
I can’t get the new selenium that has CDP but I do have some buggy ass selenium from a few years back. Yeah, I remember reading there was a pretty impactful regression defect in the version I have. Maybe I’m being gaslighted by some shit copy of selenium?
The worst part is that I do seem to be having issues that the rest of the internet’s devs do not seem to be having. People act like browser automation is totally viable and pretty OK. How in the fuck hell is my Selenium Test Suite going to be more reliable my application under test?!!?? I’ll have more fucking bugs in my test suite than in my application. Today, I have less than half a test script and, I. already. fucking. do.
I am still SUPER PISSED at the months of 12 hour days (always 8 hours spent on normal sprint work btw only 4 to automation) I spent trying to automate our regression tests. I got NOWHERE.
I did learn a lot about HTML and JS though like I’m not that mad…but I’m just trying to emphasize my achievement on my task was zero.
The buttons don’t click. There are so many divs and I swear you sometimes need to select a div somewhere in the middle sometimes to get it working. The waits don’t wait. XHR requests are invisible. Java crashes 100 times before I find an xpath and thread.sleep() combo that works. I have no failure modes to use — Sometimes I click the same element 20x in a script because I have no way to know if it clicked the first time! Sometimes you gotta scroll the page to make the click work. So many click methods all broken. So many wait methods all broken. Its not just the elements don’t click! There are so many ways to click that almost work but surely they all fail the same in the end. ok at this point I’m just repeating myself…
there yet even more issues that I can’t remember…and will soon remember as I journey into this project yet again…
thanks for reading I hope I entertained and would love to hear your experience!5 -
`if (boolean)`
Would you tell a colleague that their PR needed to be refactored because they used parenthesis around an if block that didn't need it? I'm all about explicit order of operations and often add brackets and parentheses around things that don't need them. It's cool if you don't want to put them in, but does the PR need to be held up over this?1 -
Possibily the weirdest coincidence I've experienced... I was just searching for, specifically and explicitly, the ebook version of O'Reilly pocket references for a babydev since physical copies, if/when available, are expensive and slow delivery. While googling the PHP one, somehow, 1984 (orwell) in russian was oddly high in the search results.
1984 is my favourite book and I've been meaning to take time to brush up on my russian. Normally I'd blame the result on things like tracking data, but this was via a clean, isolated, never logged into anything, system. The only factors that couldve been skewing results are my explicit locale settings, primary- german/germany, secondary- english/US, additional languages- dutch, russian, arabic, spanish. No other cookies or previous search history and using a static IPv4 that has been allocated, but until a few hours ago, totally unused for ~6mo (part of my /28 block).
It's so serendipitous that I keep mulling over everything trying to figure out wtf I missed... seriously, how the hell does "O'Reilly pocket reference php ebook" return a russian paperback of 1984???
I'm totally gonna find and buy one now too (the actual result is costly, plus would ship from germany so more costly).5 -
"You don't need to put a type annotation here, the type will be inferred by the compiler"
"We don't need to mark this function as async, since we are already returning a promise but not awaiting it yet within this method"
TypeScript codebase. Am I wrong to prefer that things be explicit rather than implicit? Sounds a bit tryhard to try and make things implicit, but maybe the async really changes behavior in the second case? I don't think so, and I prefer to mark an asynchronous operation as such, but I'm still doubtful; that's why I humbly ask you all what makes more sense here.7 -
"Unexpectedly found nil while unwrapping an Optional value"
What dev thought this would be a good idea in Swift? Sometimes I hear the compiler's thoughts as it comes across this:
1. The dev explicitly told me this value would be optional.
2. I have a record from the database, and I see a 'nil' in the column for this value.
3. That's not "None" , Oh my god, I need there to be an explicit "None<CustomType>".
4. Shit shit shit shit. Oh my god.
5. PANIC!4 -
Rant and geniune question:
How can a group of 'devs' make 2 functional(enough unfortunately), many active users, phone apps, not just basic af, over a few years... but apparently not know how to make a working referral link of any kind???
Am i missing something like referral code link logic being extremely hard for typical devs to understand? Or some odd or trending reason for for forcing manual, explicit, referral code binding instead of a simple (imo) link that attributes the new user account to the referring user's? If you dont believe me u can check either/both of their actively running, decent/moderate size user base apps, claw eden (on play store) and/or claw party (possibly only via finding an apk... at least not on google play).
They have legit rewards, relatively very fair/honest policy... etc... i get 60+ items won/delivered a month (i have paranormal crane game skills #AutisticSuperpower) which i donate the vast majority of to charity (1 of 3 reasons the IRS reeeeally dislikes me).
Im just baffled by this apparent inability.2 -
Most of the product managers seem to explicitly mention user metrics with unique. Say # of unique users for the day, # of users ordered and so on. While being explicit is good, I'm wondering is there any metric that doesn't require unique counts?1
-
@SidTheITGuy - please help enlighten me. You claimed 1 was Ignorant of Indians... you may just be right... so im coming straight to you about this specific, foreign topic. Im assuming you have expertise with softcolon, right???
So... Ive had one hell of a day (well... a month and still pretty hell of a yr tbh)...
Due to some work-related reason to look at an associate's LinkedIn, I ended up curiously clicking the profile of a sole respondent to a post...
ROFLOL (near literally-- extremely rare for me).
I read it like 10x... going through every, oftenly plausible rationale for what I was making sure wasn't just dyslexia, thinking in non-english, some typo or even some new trendy crap that i was unaware of.
Do to my tendency to avoid tons of new dev/tech terms...
I even briefly wondered if it was some new term for using whitespace formatting instead of semicolons in js (fyi, i prefer coding in giant unformatted blocks, in notepad.exe... you will never catch me w/o explicit ;'s).
Now i really wanna just contact this guy and ask him how/why he chose this business name.
I cut out his pic/name... but, tbh, as someone who's innately amazing at SEO, i must admit, he's got some seriously impressive SEO.
The entire 1st page of google results (after asking if i meant "softcolor"...idfk what that is), was all his company, even an Insta. My locale is germany/deutsch... technically i do also have Hindi pages as allowed/dont auto-trans... but what i searched on and what i was using for linkedin, barely resolve to the same country, no shared anything.19 -
Is there ever a fucking reason to do a get_attrs call in python when you could just use a fucking explicit dict or just idk use the fucking typing system to implement a fucking interface? Like why the fuck should anyone ever be using get_attrs and strings to diddle objects?2
-
Random learnings/realisations/hypothesis:
i have found a sense of happiness in weird symbiotic environment : being rich in a poor environment and live with a poor-but-secretely-rich lifestyle.
i call it the "sheep-hoodie" lifestyle: being a wolf in a herd of sheeps but not with a sheep's skin glued to your body. rather a hoodie so you can be a friendly wolf , ferocious wolf and a friendly sheep whenever you want to.
my 1 group of friends are in a sheep phase : struggling in their life , crunched on money, not saving a lot or focused on savings and stuff. At least that's what shows up from their discussions. however when we are together, i see that we are always supporting each other, and sharing resources/helping each other while having fun
my another group of friends have a wolf lifestyle:
they are insanely rich, if you want to party/do something with them at 'their' level, you gotta have a lot of cash to burn . they are wolves because they know how to sell their stuff, whom to sell and how to retain the info for success. i don't enjoy much with them as their solutions to life problems end up with something that involves a lot of money than effort.
So my lifestyle is to earn like them, but live like my broke friends. they think that am earning 20% of what i earn now, and am also in lots of debts and family crisis. someday my lie is gonna burst when i buy expensive stuff lol
--------
#2
i have realised that i have an OCD for silence and psychotic reaction to noise . for me ,
Silent Environment >> sex >> any relationship.
I might react so aggressively to noise while trying to focus that i may end up breaking the closest of relations with anyone
--------------
#3
thinking of having 3 twitter accounts just to fix the problem of devrant not saving content of dormant accounts :
- professional : an id where i will share my professionally stupid questions, achievements, debates etc
- personal/partial-anon : an id where i will share my personal thoughts and stuff. it might also include devrant screenshots / embarrising content that i make here
- true-anon : a full anonymous account for my(some) extreme thoughts, trigger content and explicit researches
my current twitter feed is a mix of first 2, but making 2 seperate accounts might give me more freedom(the level of devrant) to express myself than what i do now (as my followers are also interesting people but mostly related to tech)
guess i should move my tech content there than my personal content.
------------------------------
#4
making an early opinion about something should only be done to research for truth/content/conversion/hype . final opinion should always be made after you trust something with a research. for eg, initial opinion of Elon Musk was he being a bad guy, but now after seeing his crazy ideas and approach towards twitter, he looks like someone who can truly make it a money minting machine.
------------------------------
#5
A simple perception towards making money as not being a bad thing does wonders at a management level and life .
liberal opinion of twitter layoff and later changes were emotional and blaming, but thinking from a business approach, his company partners(and whoever he likes) now have special golden badges to feel like VVIP and have an orgasm, while he gave a dummy melon to every person on earth to pay for feeling like a VIP and have an orgasm.
a brilliant tactic to make money without anyone calling the minting of money as BAD. genius
------------------------------
#6
was randomly checkin Insta, saw an ex-collegue share a random deep thought quote, and i realised that i might have known her for just a week or 2 in college, but she had a very nice nature.
However, she was the daughter of a very rich ass dad and had almost everything in life. she gave a bit spoilt(for me) look, like someone who did ciggs or drink, but her talks then and our chats later just on chat gave me a very nice hustler vibe (the type of people i like: hustling and professional)
I indirectly asked her on a date and she agreed. so, this is something very interesting for me, as i am hopelessly single and full of judgemental opinions/ strict rules. share your tips and notes on how to have a successful date, and stuff that one must NOT do . much grateful if you do not come under rule 29 of internet and share your POV -
Grammatical question (loosely programming related) :
I've always thought of the terms implicit and explicit, as words belonging to the same family if not quite exact opposites.
Anyway it seems sensible to me that if you turn implicit into a verb it becomes imply then to be explicit one would exply (as in be explicitly clear).
Does anyone else think there is a language gap here? -
Today I tried: pnpm.
Following up my hateful rant against Isaac Schlueter and his decisions on npm.
I went all the way out and tried so many alternatives, honestly found a developer experience much greater than the "official" one.
What triggers me the most is the explicit statement of "other creative means" in this commit https://github.com/npm/arborist/..., you don't talk like that when all other package managers are making creative workarounds for the design failure of node_modules.
I don't know what it is but I really hate this guy.4 -
!rant
Wondering if we developers should have a more explicit "kudos" system in place where you can send another developer a thanks for their lib, advice, etc. Seems very worthwhile to me. -
Hot take: Rust doesn't go far enough with explicit clone; dropping any type that isn't trivially copiable should also be explicit. I don't mean that it should be leaked if you don't delete it, I mean that the compiler should force you to explicitly say
"I am done with this object, anything that had to know about it has already been notified and either there isn't a single last point of use or it isn't a clone, therefore dropping is justified."
This is the whole meaning of dropping a complex object. I think that this is far too strong a statement to imply in bulk for every value in scope at the end of the function.4 -
Just some figma improvements from the perspective of a new customer:
* Copy/paste is broken. If I want to make a change, I have to create a whole new
component. They recommend cmd+c/v for copypaste but as far as I can see it does nothing
* Needs to be an explicit component drawer button instead of hiding it under assets. Through me for a loop for a couple minutes.
* Empty textboxes shouldn't vanish because you happened to click in the wrong location
while setting your properties.
* Text should start big enough to actually see.
* "send to back/front", "hide item", "change transparency' all need to be prototype actions and more, give us access to object properties both by parent/sibling/child, and by
object id
* create a new frame based on a specified size is non-obvious and if you're creating
a lot of frames, what with copypaste being non-intuitive, it can become laborious.
This is especially so when you're copying frames in order to make minor changes and observe the differences side by side, instead of potentially destructive edits.
* I see no obvious way to manage transitions/animations between frames.
* The difference between frames and groups isn't sufficiently explained. The words
frame, groups, and layers all appear to new users to be used interchangeably, even
if they are distinct things.2 -
Typescript Question
This is something that's been bugging me for a longer time now.
I did couple of React/typescript project (CRA) and it just keeps on happening and I have no idea why and even better - I have no idea how to query google with about problem.
From time to time I open a file that I KNOW was without any errors and suddenly BOOM - Parameter 'XYZ' implicitly has an 'any' type. And now I need to go and add explicit types everywhere it wants me to. TS Server restart doesnt help. Why does this keep happening? Any Typescript guru please?3 -
Why do Python programmers prefer snakes over people?
Because snakes don't require explicit declarations.1 -
Anyone have some good books or websites on different types of resource-fetching (lazy-loading, eager loading, explicit loading, etc...)? I'm refactoring an API wrapper and i cant seem to figure out what i want to do with the API... It's extremely slow and unreliable, however i have to use it.2