What's your favorite hardware problem? | One Dev Question with Larry Osterman.
#devcommunity #microsoft #hardware #pc
https://www.youtube.com/watch?v=TB5IFVkMMIw&ab_channel=MicrosoftDeveloper
Long term Microsoftee, dad, singer, software person.
I've been at Microsoft for a REALLY long time, no idea how that happened.
Warning: There may be cat pictures.
Profile Pic from "Not Invented Here" by Bill Barnes and Friends
| Github | https://www.github.com/larryosterman |
| https://www.twitter.com/osterman |
What's your favorite hardware problem? | One Dev Question with Larry Osterman.
#devcommunity #microsoft #hardware #pc
https://www.youtube.com/watch?v=TB5IFVkMMIw&ab_channel=MicrosoftDeveloper
@foone I love how you've managed to compress the past 6 months of my life into a few toots.
Rust is the most actively user hostile language I've ever used.
Btw, "super temporary files" - this is a bit of a "trick" you can do with files on Windows. If you create a file with FILE_FLAG_SEQUENTIAL_SCAN and FILE_ATTRIBUTE_TEMPORARY it's a hint to the filesystem to aggressively avoid hitting the disk when writing or reading the file - essentially it creates a memory backed file, unless there is sufficient memory pressure to force it to disk.
It's a really handy trick if you want to take advantage of functionality like TransmitFile.
Two related stories. When we were designing the Windows Runtime, one of the significant sources of contention was whether WinRT types should follow the COM model of dispatch through a vtable or the C++ model of direct function calls for most function calls
One of the developers on the team prototyped two implementations of the same class, one of which exclusively used direct method calls, the other which indirected through a vtable.
Much to their surprise, the *worst* case for the vtable dispatch code was that it performed at parity with the direct call, even though there was a memory indirection involved in the method call.
Second story: When I built the POP3 and IMAP servers for Exchange back in the mid 90s, the message retrieval code was implemented by writing the contents of the message to a file on disk, then calling TransmitFile to transfer it to the client.
A new dev manager came in, and after I had explained how it worked, he told me that there was no possible way this could be faster than using non-blocking sockets entirely in user mode to get the best performance.
So at their insistence, I built a non-blocking socket implementation, and tested it.
The "more efficient" version was orders of magnitude slower and consumed significantly more CPU time than the original implementation. That result was largely because (a) the files created were "super temporary files" and (b) the TransmitFile was designed to be as efficient as possible.
The moral of the stories: Never trust your assumptions about performance, because they are almost certainly incorrect.
@cellio We similarly have a nest in our rafters, it provides hours of endless entertainment for our cats.
No littles seen yet, but lots of mom and dad getting food.
@eljefedsecurit @JenMsft I feel you. My rules are: no mask outside, when I'm in an area where I know they have improved hvac (in practice, this is the msft campus only), when performing, and at home.
Otherwise, the mask stays on.
And it feels quite lonely sometimes.
Tech question: Does anyone know of a C++ snippet generator, preferably one that integrates with Doxygen and markdown?
I'm more than happy to write my own, but I'd rather find someone else who has solved the problem for me :).