723 karma · joined April 22, 2024
Can someone point to where the standard states this?
And I as a user absolutely hate programs that do this. Put an "updated" message with a timestamp if you want, but don't pointlessly waste my time.
UIs back then were dense, didn't waste large amounts of space in a misguided attempt to be "minimalist", and had affordances for ease of use. There was no scrollbar hiding, no animations that made the user wait for no reason other than the designer's ego, very visible borders on windows and buttons that made finding/resizing them easier, large bars at the top of windows that let you move them around, and actual text for most buttons instead of icons that are anyone's guess what they mean. Thankfully some of this can be dialed back in the Windows 11 accessibility settings, at least for missing scrollbars and getting rid of time wasting animations, but a lot of programs don't respect those.
That's right there is a good indicator for which programs care about their users. I'm using your program because I want to actually do something, not waste time watching your designers show off.
I've disabled animations on my Android phone too, and it gives an extremely noticable speedup. Menus appear right when I click them, instead of a second later as they slide into existence. Too bad iPhones just replace the slide with a fade of equal duration; disrespect for the user's time like that is yet another reason I will never buy one.
Those older GUIs didn't try to hide the filesystem hierarchy either. It infuriates me to no end when I use a new OS and have to hunt down the way to show the disk root, or filename extensions, or hidden files. MacOS was especially bad; I had to look up a freaking keyboard shortcut that I never would have found on my own. The common reason is so "normal people" can use the interfaces, but I think that's infantilizing and is why tons of Gen Z don't know what files or folders are. Most people can learn .docx means a Word document, and C:\Users\TheirName is where their files are.
(Notable shoutout, the GNOME open/save dialogs are the absolute worst. I wish distros wouldn't default to it. People will just go right back to Windows 11 because it's somehow better.)
There's some improvements possible, for sure. I'd like to see some programs put hint letters over buttons when you press a modifier like Ctrl so you can easily see what the shortcuts are. I don't know of any that do, but it'd be very useful for more complex software like drawing programs or word processors.
edit: typo
Not a webdev, but can't you just use CSS on the <button> element for that?
https://pip-assets.raspberrypi.com/categories/1214-rp2350/do...
https://documentation.espressif.com/esp32_technical_referenc...
Since when? To me, anything not webview-based is native, though you have varying degrees of integration into the platform.
>Getting any example application to work is so incredibly ridiculous, that every second I program on Wayland, I yarn for the times I did Win32 programming.
And that comes from the core of how Wayland is designed.
In Win32, the stable interface / ABI is the set of C functions provided by the operating system through DLLs. These are always dynamically loaded, so Microsoft is free to change the internal interface used for controlling windows at any time. Because of this, decades-old .exes still run fine on Windows 11.
In Wayland, the stable interface is the binary protocol to the compositor, in addition to the libwayland-client library plus extensions. Instead of that socket being an "implementation detail", it's now something that all programs that just want to make a window have to deal with. You also can't just use the socket and ignore the libwayland libraries, because mesa uses libwayland-client and you probably want hardware acceleration.
The other big issue is the core Wayland protocol is useless; you have to use a bunch of protocol extensions to do anything, and different compositors may implement different versions of them. On Win32, Microsoft can just add another C function to user32.dll and you don't have to think about protocol how that gets transformed into messages on the socket layer, or compatibility issues with different sets of extensions being supported by different compositors.
https://github.com/FFmpeg/FFmpeg/blob/master/libavformat/udp...
https://github.com/search?q=IPPROTO_UDPLITE&type=code
https://github.com/tormol/udplite
https://github.com/nplab/packetdrill
https://github.com/python/cpython/blob/4e96282ee42ab51cf325b...
https://github.com/search?q=repo%3Aviveris%2Frohc%20udplite&...
It does indeed, but they are not compatible and at least the C atomics cannot be used from C++.
>C++ also has it's own designated initializer like syntax.
One that is far more limited. This is valid C, but not C++.
struct bar {
int a;
int b;
};
struct bar tmp = {
.b = 0,
.a = 0,
};