anlumo
Naja, wenn man nur die Leute fragt, die nicht protestieren, ist das Ergebnis ja eigentlich von vornherein ziemlich offensichtlich.
OpenGL is good for learning 3D graphics, but isn’t used in games any more. It’d be better to know DirectX 12 and Vulkan, but those are hard to impossible to learn without experience with some other API first IMO.
Just learning Unreal Engine will keep you from getting hired for a lot of jobs that don’t involve that engine (for example, all Unity projects). Being a general graphics programmer opens a lot of doors.
I’ve been using smarthome stuff for quite a while now, and my conclusion is this:
- You absolutely have to stay local. Home Assistant is the only software I know that can pull that off at the moment, but never ever use commercial devices that have to talk to their servers. Once the servers are down or your internet connection is down, those devices are just bricks, and you don’t want that at home.
- The setup is only really usable by the person who set it up. If you’re living alone that’s fine, but anybody else will have a hard time tapping in your secret code to turn on the lights. All trained behavior like pushing a light switch to turn the lights on and off are violated in a smart home, even if it’s just because the delay between pushing the button and the lights going on is increased by 100ms.
- You have to monitor battery levels of sensors and replace them to keep the system working. There are dozens of coin cells in your home, they are going to run out eventually (after a few months).
- Have a fallback mechanism when the network goes down. It’s not great when you can’t turn on the lights to check why the WiFi router isn’t responding.
My feature request would be iPad support, because right now there isn’t any app for that.
I’ve installed an Aqara wall switch in a public room, and people are complaining that it doesn’t feel as well as a regular light switch. It’s really hard to get it right.
I’m kinda surprised by that, since Java is the one language that actually requires you to declare exceptions your code can throw. Shouldn’t that be semantically be the same as a Result<T, E>
?