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 - "scratching-head"
-
Replaced semi colons (;) with a greek question mark (;) in my colleague's c# code.. He's now scratching his head... :D27
-
Scratching my head for an hour because a function wasn't being called. Checked my backend server and all the logs.
Then I realised I commented out the function call. 😠😭😭😞4 -
OMFG
Waking up in the middle of the night to a strange feeling in my ear and noises. Started shaking the head, which did nothing except panicking because of intensifying scratch noises in my head.
Getting the fear to be eaten inside out.
Get the phone and call sister to get me to the doc but her phone is powered off. Starting to Google "consequences of an cockroach in your ear", reading this is not as bad as I thought and that some people do not even realize it !??
Laying down for 3 minutes in the dark, *heating up and feeling my pulse* hoping it will crawl out. Which obviously did not fucking happened, this sucker just squatted my ear.
So I go to the bathroom and start filling up the tub. While it is filling up, I Google "how to get cockroach out of your ear". Finding an article that you should pour oil in your ear to suffocate the squatter. So I go to the kitchen, grab my sunflower oil, go to the mirror and start pouring. I am starting to shine like a bodybuilder and hear the noises again. After what felt like an eternity, I hear even more scratching in my head, this is the moment I do half a headbang and *wush* *flap* something hit the ground. I look down in the hope it wasn't just the sunflower oil and see this little thing which is clearly a cockroach. I am fucking relieved, not hearing any noises anymore.26 -
I was given a work to refactor one of my colleagues code and found that there was a variable named 'anal'. I was quite surprised seeing it as the colleague was a soft spoken and well behaved guy in office. After scratching my head for 15mins I came to know that he was storing analytics data in that variable. Hence the name! :-D8
-
I hate having moments where you realize the bug was caused by a bug in the framework after scratching your head for hours......2
-
Recently I got into contact with the supplier of that 500W power supply that I've been servicing earlier, as I lost my pictures of the disassembly process with that craptacular Nexus 6P (didn't back them up.. terrible sysadmin, am I not?) and wanted to get the circuit diagrams of this thing in order to repair it. Sales girl wanted to give it to me but she'd have to ask the factory people.. and of course those people denied. As if I wanted to use this for anything but to repair my own bloody unit.. pieces of shit.
So I started considering buying a second one, in order to repair my current supply that I've already spent half a week on to document its components, desolder it, clean it up and resolder it (and replace some resistors here and there with better ones from my own assortment). And the project had to be paused because I lost the stupid pictures and couldn't for the love of God figure out how there's supposed to be a jumper near BD2.
Just now going through my notifs..
"Someone ++'d your rant!"
*clicks notif*
A rant that I completely forgot about.. https://devrant.com/rants/1757297. It's a perfect picture of the supposed jumper near BD2 that I was scratching my head about for so long. Turns out that it's just a dupe of the LF2 lines that I erroneously wrote down twice. DevRant, it's good for more than just venting, haha! Time to restore from a cloud backup XD3 -
Well, after two hours of scratching my head, I found that angular.isNumber () returns true when you pass in a NaN. Brilliant.2
-
If you are sick...
STAY THE FUCK HOME!
It has nothing to do with how YOU are feeling. It’s about RESPECT for those around you.
Especially if you work in an open office. Coming into an open office when sick is like coughing right on someone’s face repeatedly, it shows that same level of (lack of) respect.
Almost every company I have seen fucks this up so bad. It’s the same shit every year....
People are afraid to take days and stay home. They go in and make everyone sick, then everyone is taking days off and we are “short” on people. Then the incompetent CEO is scratching his head as to why this toxic work environment could produce such a toxic result.
And one more fucking thing.
If you got a cold/flu on Monday and your in the office on Wednesday because you are “feeling a bit better” then your a fucking idiot. At day 3 you are just starting to expel germs while still being highly contagious.
If you come into an open office while sick then I would say...
“Smarten the fuck up! And start showing some respect for the people you work with!”
If you have created (or are creating) a culture that encourages this then I would say...
“Fuck you! You should be fucking smarter than that.”
————
If your still sitting there thinking something like...
“Well I have to attend the meeting” or some other shit. Then let me add this to the pile.
Not everyone has had a rosy fucking life.
You may be working next to someone who has a lowered immune system due to past medical problems. What may be a week of sickness for you could end up being a month in the hospital for them.
You may be working next to a person who has a family member dying of cancer. If you make them sick then they can’t visit that family member (colds can kill cancer patients) and you may be stopping that person from seeing their loved ones one last time before they die.
Don’t be a fucking asshole.
STAY THE FUCK HOME!6 -
We have an API available for our customers to integrate our software with their Webshop.
A client and their developer complained because not all of the products came through. I checked the products, the validation, the parameters, the database .. everything looked fine and I was scratching my head why these articles wouldn't come through (but it did work at my end).
After some time, I checked the request logs..
Apparently it wasn't quite clear for them that a loop is required with the 'skip' and 'take' parameters to create an offset for pagination.They only synchronised the first 500 products.. everytime..
We have a limit of 500 products per batch (take) for performance reasons.
They asked if we could increase this limit, because they have "a large range of products" (not really, only 800 or so and we have clients with more than 2mil. products..) Oh pls.. I've sent them a link to the PHP manual for a basic 'while' loop..2 -
So this one made me create an account on here...
At work, there's a feature of our application that allows the user to design something (keeping it vague on purpose) and to request a 3D render of their creation.
Working with dynamically positioned objects, textures and such, errors are bound to happen. That's why we implemented a bug report feature.
We have a small team tasked with monitoring the bug reports and taking action upon it, either by fixing a 3D scene, or raising the issue to the dev team.
The other day, a member of that team told me (since I'm part of the dev team) he had received a complain that the image a user received was empty. Strange, we didn't update the code in a while.
So I check the server, all the docker containers are running fine, the code is fine, no errors anywhere.
Then, as I'm scratching my head, that guy comes back to me and says "I don't know if it can help you, but it's been doing it for a week and a half now".
"And we're only hearing about it now?!", I replied.
"Well, I have bug reports going back to the 15th, but we haven't been checking the reports for a while now since everything was fine", he says as if it was actually a normal thing to say.
"How can you know everything is fine if you're not looking at the thing that says if there's an issue?!", I replied with a face filled with despair.
"Well we didn't receive any new reports in a while, so we just stopped looking. And now the report tool window is actually closed on my machine", he says with a smile and a little laugh in his tone.
In the end, I got to fix the server issue quite easily. But still, the feature wasn't working for 1.5 weeks and more that 330 images weren't sent properly...
So yeah, Doctor, the patient's heart is beating again! Let's unplug the monitor, it should be fine.
Welcome to my little piece of hell :)7 -
Looking through our gitlog today and see 3 PR's from our "lead developer". 2 of these were removing a single blank line from a class, and the 3rd was adding one back in. None of these had any title or commit messages on the PR's. This is a guy that talks down to everyone and deliberately makes other devs feel insignificant, saying he's too busy to write documentation and it's not needed because his uncommented code is self documenting. But hang on he's not too busy to waste time with pointless non-functional PR's that only remove a couple of blank lines? Scratching my head in disbelief that some devs think they can get away with shit like this. How about you drop the ego and actually try and work in collaboration with the other devs.undefined arrogance self documenting code waste of time lead dev no comments pull request bad design2
-
So I was changing some CSS, but the changes weren't showing.
Was it being cached? Nope
Was the selector wrong? Nope
Well it was the right file yeah? Yup
So after like 10min of scratching my head, restarting the server, etc it turns out I was checking prod instead of dev.
This isn't even the first time this has happened 😑
Guys just remember to keep your dev tab and your prod tab away from each other, like way away.8 -
Feel free to make fun of me on this one.
> be me.
> Write a function that calls a second function to get a returned value and continue work.
> That second function always returns null no matter what changes are made.
> Spend half hour scratching head.
> That second function has this written at the end
return null;
//return $returnVal;
> fml.13 -
Does anyone else have a major problem with over thinking debugging or like the code to write in general?
I spent 10 minutes the other day reading over 6 lines of code only to realize 2 words were capitalized when they shouldn't have been.
Wednesday night, i was doing my CS homework. The question wanted me to swap variable values using a third variable. I stared at it for 30 minutes scratching my head. (I did Google it and read the notes I took.) And when I saw the solution, it was so simple that I face palmed really hard.2 -
How is coupling backend + frontend as a single nextjs app a good idea? What the fuck is this?
What if you have to create new replica sets of a backend because of high load pressure? What about load balancers?? What if i want my backend to be a microservice? How do i unit test the backend if its cluttered with frontend? WTF IS THIS
WHY DID NEXTJS THINK THIS IS A GOOD IDEA AND WHY DO SO MANY DEVS LOVE THIS IDEA AND GLORIFY NEXTJS?
Nextjs seems like the type of framework that was built by a frontend web developer who just refuses to learn backend technology at all costs.
---
its been a few hours and the concept of nextjs is bending my mind rn. I thought nextjs is just another frontend framework. A react killer. Only to find out its both a backend + frontend framework.
Cluttering backend stuff into frontend is gonna get messy no matter how much you try to modularize the code. Am i lost or am i right???
---
Scratching my head over nextjs. Looks like a great framework for small-mid project but definitely not large project. The more shit the project needs the more messy shit become. Angular has modularized all of this in separate folders -- components services guards interceptors (now new stuff coming called Signals) etc. All of it is separated in individual folders and kept frontend-only. Simple enough. No backend clutter
---
Can i even use nextjs strictly as a frontend framework while it uses my custom backend built in java spring boot? For example use nextjs /api/ folder to handle custom routes built outside of nextjs framework?
Am i insane here21 -
I spent 2 hours googling and scratching my head trying to implement asyc Tast<ActionResult> on asp.net MVC. I even copy and paste the exact sample code and still didn't work. It turns out that "Visual studio for Mac" doesn't support asynchronous calls.6
-
I am scratching my head since 2 days cause a rather large Dockerfile doesn't work as expected.
CMD Execution just leads to "File not found".
Thanks, that's as useless as one ply toilet paper...
Whoever wrote the Dockerfile (not me…) should get an oscar...
Even in diarrhea after eating the good one day old extra hot china takeout from dubious sources I couldn't produce such a dumpster fire of bullshit.
The worst: The author thought layering helps - except it doesn't really, as it's a giant file with roughly 14 layers If I count correctly.
I just found out the problem...
The author thought it would be great to add the source files of the node project that should be built as a volume to docker... Which would work I guess....
Except that the author is a clueless chimp who thought at the same time seemingly that folder organization means to just pour everything into one folder....
Yeah. That fucker just shoved everything into one folder.
Yeeeeeesssssssss.
It looks like this:
source
docker-compose.mounts.yml
docker-compose.services.yml
docker-compose.yml
Dockerfile-development
Dockerfile-production
Dockerfile
several bash scripts
several TS / JS / config files
...
If you read the above.... Yes.
He went so far to copy the large Dockerfile 3 times to add development and production specific overrides.
I can only repeat what I said many times before: If you don't like doing stuff, ask for fucking help you moron.
-.-
*gooozfraba*
Anyways...
He directly mounts this source directory as a volume.
And then executes a shell script from this directory...
And before that shit was copied in the large gooozfraba Dockerfile into the volume.
Yeeeaaah.
We copy stuff inside the container, then we just mount on start the whole folder and overwrite the copied stuff.
*rolls eyes* which is completely obvious in this pit latrine of YML fuckery called Dockerfile.
As soon as I moved the start script outside the folder and don't have it running inside the folder that is mounted via volume, everything works.
Yeah.... Maybe one should seperate deployment from source files, runtime related stuff from build stuff.
*rolls eyes*
I really hate Docker sometimes. This is stuff that breaks easily for reasons, but you cannot see it unless you really grind your teeth and start manually tracing and debugging what the frigging fuck the maniac called author produced.1 -
int count = getCount();
txtCount.setText(count);
> Could not find resource ID #0x00
Couple hours of head scratching later
"You idiot. You forgot to use String.valueOf(), didn't you?" -
I am new to open source, so i was trying to solve some issues on an organisation. At first it seemed like what the hack is happening, i was not able to understand the codebase that well but slowly and eventually i get to learn some stuff.
Now, i got stuck at a small problem and to solve that problem it took me a whole complete week. During that phase, i realized some things that i want to share.
As a beginner it was too hectic to find the solution to that problem so i entered that problem on every platform from where there is some chances for reply, and i realized that no one is going to help you out completely and this is the best part, i mean if someone is going to spoon feed you than you won't learn anything. I know that feeling when you are scratching your head and you just want to get out of that mess but you are stuck and there is no one to help you out, believe me just hang in there, there will be some moments when you will realize that there is no more options left and you are done than for sure you will find something which you can try.
So you should also not ask for spoon feed, if you want to learn than fall into many problems as you can.
Best of luck.5 -
I feel like an idiot... I just realized why my builds were failing.
My entrypoint was setup as to not overwrite a specific file if it was already there. The problem is, the said file is auto-generated, and I need a different configuration for it to work properly in docker. But I forgot this, and the result was a failing build, plus me scratching my head for a few hours. :(3 -
I don't know what's wrong with me this morning. I started refactoring, and I know I'm overdoing it. I can't stop myself. I'm stuck fiddling over it like a meth head scratching his skin.
Please stop me. I'm hurting the code.2 -
that moment when you forget to initialize sum variable by zero..and u get random answers.... scratching ur head..what just happend1
-
Being a full stack developer has been an amazing journey. Looking at a project and understanding how the entire stack work starting from the mobile apps, APIs and DB is a total bless.
Nevertheless, lately switching context between modern languages has been extremely frustrating.
Swift looks like kotlin, elixir looks like ruby. Hell even swift and ruby are very similar.
Writing ruby in Xcode and wondering why the fuck Xcode complaining. Well no shit, swift is not ruby. Took me 5 mins of head scratching to notice it 😢
Hell I am now writing down the latest language I am working with on my hand to keep track 😂5 -
The most painful thing about job application rejection is the canned response. You would be left scratching your head as to why you were rejected.2
-
Help. I work with a guy who really wants to learn programming (he’s sales/support rn) and is even taking some courses on it. He seems eager enough to learn, the problem is he is just so fucking stupid I don’t know whether to encourage him or level with him.
He somehow managed to pass a course on Java (which I still don’t believe since I had to help him put his lines of code in the right order ffs), but now he’s signed up for C++ and data structures and I honestly don’t know how he’s going to do it.
This is the type of guy who loves “coding” but thinks debugging is a waste of time.
Normally I encourage anyone who wants to learn programming do so, but let’s be honest it does take a modicum of intelligence and this guy has zero common sense at all. We’re talking about a guy who sent me a *screenshot* of an Excel file that I needed to copy some activation codes from. And then had absolutely no idea what was wrong when I replied “are you fucking with me right now?”
*sigh*
And that’s not even scratching the surface. I sent him a zip file containing some updated code and walked him through how to update them on Slack (really basic, copy/replace files stuff). Then the VERY next day when I sent him a second update he asks “is there something you want me to do with this?”
The instructions were literally the last thing we talked about in the chat log.
I actually fear the stuff this guy would unleash upon the world if someone were actually able to teach him how to write a whole program.
What should I do? Right now my plan is to be vaguely supportive but secretly hope he will realize he’s in over his head and drop out before any damage is done. But my worry is he may just be SO dumb that he actually thinks he can do it. At that point I guess I just have to put my faith in his school and pray that they aren’t just giving degrees away to whoever can afford them. Because fear the day this guy ever gets a degree in programming.9 -
Mobvoi just launched the new Ticwatch S2/E2. Currently have the S1.
This FAQ page has me scratching my head. Guess their documentation team wrote part of this before they decided to pull the NFC feature?
Maybe?
If so, that's something in common with my company 🤣1 -
Heres some research into a new LLM architecture I recently built and have had actual success with.
The idea is simple, you do the standard thing of generating random vectors for your dictionary of tokens, we'll call these numbers your 'weights'. Then, for whatever sentence you want to use as input, you generate a context embedding by looking up those tokens, and putting them into a list.
Next, you do the same for the output you want to map to, lets call it the decoder embedding.
You then loop, and generate a 'noise embedding', for each vector or individual token in the context embedding, you then subtract that token's noise value from that token's embedding value or specific weight.
You find the weight index in the weight dictionary (one entry per word or token in your token dictionary) thats closest to this embedding. You use a version of cuckoo hashing where similar values are stored near each other, and the canonical weight values are actually the key of each key:value pair in your token dictionary. When doing this you align all random numbered keys in the dictionary (a uniform sample from 0 to 1), and look at hamming distance between the context embedding+noise embedding (called the encoder embedding) versus the canonical keys, with each digit from left to right being penalized by some factor f (because numbers further left are larger magnitudes), and then penalize or reward based on the numeric closeness of any given individual digit of the encoder embedding at the same index of any given weight i.
You then substitute the canonical weight in place of this encoder embedding, look up that weights index in my earliest version, and then use that index to lookup the word|token in the token dictionary and compare it to the word at the current index of the training output to match against.
Of course by switching to the hash version the lookup is significantly faster, but I digress.
That introduces a problem.
If each input token matches one output token how do we get variable length outputs, how do we do n-to-m mappings of input and output?
One of the things I explored was using pseudo-markovian processes, where theres one node, A, with two links to itself, B, and C.
B is a transition matrix, and A holds its own state. At any given timestep, A may use either the default transition matrix (training data encoder embeddings) with B, or it may generate new ones, using C and a context window of A's prior states.
C can be used to modify A, or it can be used to as a noise embedding to modify B.
A can take on the state of both A and C or A and B. In fact we do both, and measure which is closest to the correct output during training.
What this *doesn't* do is give us variable length encodings or decodings.
So I thought a while and said, if we're using noise embeddings, why can't we use multiple?
And if we're doing multiple, what if we used a middle layer, lets call it the 'key', and took its mean
over *many* training examples, and used it to map from the variance of an input (query) to the variance and mean of
a training or inference output (value).
But how does that tell us when to stop or continue generating tokens for the output?
Posted on pastebin if you want to read the whole thing (DR wouldn't post for some reason).
In any case I wasn't sure if I was dreaming or if I was off in left field, so I went and built the damn thing, the autoencoder part, wasn't even sure I could, but I did, and it just works. I'm still scratching my head.
https://pastebin.com/xAHRhmfH33 -
Spot what's wrong with this command!
It took me 10 minutes scratching head to find it out. This is why we still need to use our brain when copy paste-ing code.
😕11 -
Trying to debug an app for twenty minutes, and wondering why it was crashing and not logging anything strange.
Realising only after some compulsive head scratching that logcat has been filtered the whole time -
Ok, I need to vent a little bit about myself. Just got back from my 2 weeks vacations. Met with everyone, caught up on everything that has happened, booted my lap top and tried to ssh into the servers to see log files if anything out of the ordinary has happened.
Well, I was having "Permission denied (publickey)." . Well fuck. Tried on other servers and same thing.
I got panicked, thinking how the fuck did we get hacked? The ssh key is only on my laptop, and an encrypted backup exists only in Bitwarden account. If yes, why are the systems intact and working well? Kept scratching my head for hours. Well, I was trying to log in with user "root" instead of "admin". I always mistake these two names. Rusty brain ._.1 -
Android Studio upgrade
Over the weekend I upgraded my android studio and the project files of my current project and all went smoothly (as far as I thought).
I did not touch the project till today as was implementing some few features only for some few unexpected bugs to creap in.Been implementing that feature for some time and thought would be done in a flash only to my disappointment.
Turns after upgrading my SDK they were some conflicting dependencies that had no idea of.
To make it worse my fall to branch was way behind the active one and had to create a new project from scratch and copy paste files.
All this after spending hours in Stack
Overflow and scratching my head.
Lesson learnt to commit more frequently.1 -
On the newer side of web development. Using CSS Grid with some flexbox. Any idea on why my 768px media query styles are overwriting my 320px styles?
I was breaking into modules but moved everything to a single css file until I figure out what causes the issue. The mobile styles are at top and I started the medium breakpoint below the initial styles.
Designed it mobile first if that makes a difference. Should the media queries be nested?13 -
When you add console.log above your buggy code, but after 15 changes you forget to update the real code and you spend 15 minutes scratching your head because you can't fathom why your last change didn't fix the problem...
-
Sometimes I find solutions so ridiculous, I can't help but laugh at the hours that I put into finding them.
I tried to find a way to put space between items in a flexbox while they were in a row, but without leaving uneven space on either side of the elements when they wrap. After scratching my head for longer than I'd like to admit, giving the parent a negative margin and the children the same positive value allowed me to achieve this. (I would have saved a lot of time googling this, I know.) -
Today I deployed my first website with Wordpress’ second wpdb object. After scratching my head and frantically googling for 2 hours why it works on my machine but not the deployment server, I realised that I’d set the username and password to DB_USER and DB_USER...
So root root works but anything else doesn’t....1 -
So I'm using a using statement to utilize a streamwriter in C#. I'm missing a parenthesis but Visual Studio doesn't highlight that.
Nope.
Instead it highlights "Console.WriteLine" and claims it "doesn't exist in this context."
So I'm scratching my head, trying to see what's wrong, checking the target framework (net framework 4.6.1) and I've got "using System;" and I'm going through stack overflow problems.
All because Visual Studio decided to underline console.writeline, rather than the METHOD WITH THE MISSING PARENTHESIS.3 -
That very moment when you start to visualize your workflow after hours of head scratching, and realize how simply it could be implemented with so much lesser lines of code in comparison to what you thought previously.
-
Has anyone else used the Decimal module in python?
And if so do you know why it returns
"AttributeError: type object 'decimal.Decimal' has no attribute 'power'"?
According to the documentation
https://docs.python.org/3/library/...
...theres a power() function.
Doing
decimal.power()
Decimal.power()
power(x, y)
No matter how I call it, it always returns an error indicating power() doesn't exist and I'm scratching my head.4 -
I have been working on a long time, low progress project of mine that keeps on giving and giving.
Let's begin like two years ago where I dipped my toes into "more then gigabit" networking thanks to a Linus Techtips video about infiniband.
I had the dream of booting my Workstation from my NAS, a so called diskless setup.
Well, since I run FreeNAS on my Nas , a very nice Freebsd based Nas OS, everything's gonna be good.
In the beginning, there was no infiniband support.
Turns out, you don't need it, since the mellanox CX2 nics can do ETH too.
Yay.
Just took me a few weeks of anger.
So, to be able to boot something over the network, you need firmware that finds the bookable stuff and loads it.
That protocol and firmware is called PXE.
PXE needs a DHCP telling it what to do, and what is where and etc.
Freenas here I come! Installing dnsmasq on the actual freenas install turned out to be not that great of an idea because freenas thinks of itself as being an "appliance" that you don't fiddle with. So things work, until you update/ upgrade when everything will basically be wiped, except what you have done through the ui.
Ok. So I gona use a jail, a container like thing for that.
Everything is great, jail has internet, everything Installs fine, what could go wrong?
Dnsmasq can launch and work, but not as dhcp server. Some thing about permissions.
Turns out, jails have permission like things.
A few days of head scratching later, it has ALL the permissions.
Dnsmasq still can't work as DHCP server though, why you ask?
Because it needs a specific kernelmodule that isn't contained in the jail. Since jails are kind of like a docker container, they run on the same OS kernel, who does not have this module, I'd need to patch the freenas, which is an appliance, so fuck that.
Like a year later, freenas has finally added good VM support, so why not make a VM for the dhcpserver?
Well, about a year ago, I didn't know that the virtual Intel nic is a fucken unstable piece of garbage, crashing nearly any OS at some point.
So that was it for a while again.
Now to the last few weeks.
Finally dnsmasq is running in a freebsd VM with a good and working configuration which is rather simple, if those tutorial fuckers out there would explain shit instead of just telling you to copy, paste and replace X.
Now back to the PXE side.
I'm using iPXE because I have no clue how to boot anything over tftp so iSCSi it is, since that is what I can relate too.
The idea behind iscsi is to fake a SCSI disk over the network. Attached devices appear as if they are actually directly connected to the machine instead of over the network.
iPXE gets a lease from the server, can connect to it, everything is fucken great. Finally.
Except that if it "sanBoots" the iscsi drive, it can't find anything to boot.
Well fuck.
If I attach a Linux live USB over iscsi, it boots, finds grub, and crashes because the live iso isn't configured for network-boot.
But it boots.
So what's so different?
Well iPXE is booted in legacy mode, where as the content of the target is windows 10 in efi mode.
Ffff.
Ok. Can I get iPXE to boot in EFI mode?
Well yes, after like 3 days fiddling with it.
But it only finds the onboard Intel nic instead of the new Mellanox CX3 cards, and can't even connect to the target....
Sooo, I guess my options are as follows.
Either, get PXE efi to work on the network cards directly, its called flexboot and might be able to since I just found some firmware options for that.
Or give up on efi and install windows in legacy mode.
Which isn't that easy when it has to end up on a drive on my nas.