Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
Get a devDuck
Rubber duck debugging has never been so cute! Get your favorite coding language devDuckBuy Now
Search - "guid"
tldr; UEFI is not for assembly programmers.
So, I just found an old UEFI include file on my disk from when I was writing assembly for UEFI at some point in the last 2 years.
I almost fainted when I realised that the file I wrote (from scratch) weighs 120 kB, and has a shit load of TODOs at the end of it for parts of the spec I haven't dealt with yet. I wasn't planning on using all of it, but I thought I'd make it for anyone else who does need those things.
It's currently just over 4000 lines.
Having written code for bootloaders using both BIOS and UEFI, I can say UEFI is the most unnecessarily bloated piece of shit I've worked with.
Does UEFI really need to support Bluetooth? Fonts?
BIOS: Want output? int 0x10, ah=0x0E, al is the character. Here's your output. Put it in a 5 instruction loop.
UEFI: Output? Sure. It's got to be UTF-16 though. Because we know how you all use that. Right? You'll find a pointer to the console output protocol in the system table. In that, you'll find a pointer to the output string function. It's pointers all the way down!
BIOS: You want to load from disk? int 0x13, ah=0x42. I'll take a disk address packet from memory. Here you go, disk data.
UEFI: Disk data? Nah, we're not gonna make that easy for you. In the system table, you'll find a pointer to the boot services table.
... In that, you'll find a pointer to the 'open protocol' function.
... Give that function a GUID and we'll give you a pointer to the disk IO protocol.
... In there, you'll find a pointer to the read disk function.
... Oh, and we have 2 disk IO protocols, so you need to get the right one.
BIOS: I'll load the first 512 bytes from disk and run it at address 0x7C00.
UEFI: I'll load a portable executable (old Windows format) from a FAT (old Windows format) partition.
NASM (the assembler I use): I can't output portable executables.
Me: Fine, I'll write the headers by hand so you don't have to NASM.
Why do I do this to myself?10
Me: ya hi, we integrated with your API and I'm receiving error x
Provider: ok we'll disable validation, plz check
Me: ya it works, what's the problem? I used a GUID for id and I'm sure it's unique, here is URL and request body
Provider: you have something wrong in your implementation. Fix it and it will work
Me: aaand what's the wrong part of my implementation?
Provider: id is not unique, fix it. *Hangs up*
I sometimes sit and wonder, how and why does this kind of people get hired, FOR FUCK SAKE YOU ARE THE PROVIDER AND YOU DONT KNOW WHAT THE FUCK IS WRONG!
fucking useless ...7
This is probably dumb, but I felt genuinely let down when there were no options for facial hair for my female avatar.
I actually waited for a moment, thinking maybe it was just taking a minute to load, but then it hit me :'(6
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.10
I hate it when you actually buy a template and it turns out things only align when your images and text are a certain length.
Dear designer no, my images are not all 200 x 200. Screw you :)4
We're looking to change the domain provider we use to register new client's domains to one that has an API.
So far it looks like it'll either be namecheap or AWS's Route 53.
We're also looking for the same thing with mail inboxes.
Do you have any recommendations / experience with either of these?
I was hoping to find a solution that would provide both the domain registration and the mailboxes with no hosting and accessible via API but I've had no such luck.
(Except for maybe two, but neither looked up to date)10
After 30 minutes of trying to figure out why a guid is empty, I realize it's because it is initialized, but not assigned.
I'm not ready for Monday.
I like the idea of it but for tech support this won’t work. Ugh I just wish they could make a GUID for every NVR model.