Weirdest thing I've used it for is comparing io throughput on various disks.
551 karma · joined November 4, 2018
This account is accelbred because I lost the password to accelbread...
Weirdest thing I've used it for is comparing io throughput on various disks.
Its a C89 MQTT library intended for embedded devices.
If you want blocking code to run asynchronously, just run it on another task. I can write an api that queues up the action for the other thread to take, and some functions to check current state. Its easy.
To build a blocking API on top of an async one, I now need a lot of cross thread synchronization. For example, nimBLE provides an async bluetooth interface, but I needed a sync one. I ended up having my API calls block waiting for a series of FreeRTOS task notifications from the code executing asynchronously in nimBLE's bluetooth task. This was a mess of thousands of lines of BLE handling code that involved messaging between the threads. Each error condition needed to be manually verified that it sends an error notification. If a later step does not execute, either through library bug or us missing an error condition, then we are deadlocked. If the main thread continues because we expect no more async work but one of the async functions are called, we will be accessing invalid memory, causing who knows what to happen, and maybe corrupting the other task's stack. If any notification sending point is missed in the code, we deadlock.
#embed would be much nicer
The C library headers for libraries I write often include C11/C99 stuff that is invalid in C++.
Even when they are in C89, they are often incorrect to include without the include being in an `extern "C"`.
KDE, Cinnamon, XFCE, and others drove me to hacking together something with i3 or bspwm. At that point, I hadn't tried modern Gnome myself due to what others said about it, and having last used Gnome 2. I ended up using it at work though, and I shortly converted all of my machines over. Its been great.
I am glad that Gnome doesn't fall in line with other desktop environments; I don't like the others. Gnome breaking old conventions and making something new is what makes it good. I don't like KDE, and I don't want Gnome to copy it.
I also dont get the issue with the top bar. It wastes a lot less space than the taskbars in other desktop envionments. I also do want the time and wifi status somewhere, and Id rather not have some notch.
I also only use Gnome on desktops/laptops, but I find the settings menus nice to navigate and aethetically pleasing.
The author mentions dragging to top as awkward for maximizing but thats what I use on other DEs as well. And if I want to see a window behind the current one, I bring that window to front, not minimise the front window. Gnome's hot-corner to window selection screen is a huge usability improvement over minimizing a bunch of windows to get to the one I want.
You can use right mouse to resize if preferred; its an available setting.
I only really use the file manager for moving around files or unpacking zips. Most stuff I'll do from shell or Emacs. I haven't missed any features from the file manager, and I wouldn't want something with more complexity for my usecase. If I wanted a more powerful file manager, I'd install one.
A lot of customization is available through extensions, though I've ended up preferring the stock experience plus an exension that adds a button to keep laptop from going to sleep.
Another huge reason I would not use KDE is that its difficult to declaratively configure. The DE should not depend on persisted state. This is trivial on Gnome because everything is configured with dconf, and my declarative system configuration (using NixOS) has all my changed dconf settings. I only persist data and minimal state between reboots, and Gnome needs nothing persisted for me to always boot into my clean, configured as I want, Gnome DE.
If I had not, then I would not sign up with a phone number to access some chatroom.
I've recently switched from Discord to Matrix and its been a breath of fresh air.
I switched to Gentoo and it fixed all the issues I was encountering with Arch, and was more stable. Now I'm on NixOS, which is far more stable than Arch or Gentoo were.
Now, that said, the way SteamOS uses it, I don't see any issues. With an immutable system, A/B updates, and tested images, the compatibility and update issues are solved. Using flatpak for user applications solves the rest of the noted issues. Would be ideal if I could install with Nix instead of Flatpak, but ran into some trouble there.
If it gets support for ollama or the llama-cpp server, I'll give it a go.
In fact a lot of things are easier. On windows, you need a third party tool to install an iso onto a disk. On Gnome, you open disk manager, right click disk, click restore from image.