5 ms·
HATEOAS for Haunted Houses
- jimmy6677 1y agoNever thought about a haunted houses tech stack!
- eternityforest 1y agoI have spent over ten years (Mostly a few hours a week or less, it's pretty much done except when I want a new feature) developing a haunted house and room escape tech stack... It's mostly the same as general home automation, except with a lot more need for audio, digital signage, DMX lighting, and media features. And things have to be reliable on a budget. A raspi on an SD card is what you get, anything more takes away from much more important things. Plus, live programmability, observability and diagnostics, and things like that are critical. Stuff might go wrong and you only have five minutes to fix it. This might involve actually changing game logic. It shouldn't, but it might anyway. If you can't, you need to at least be able to take manual override control. And you have to be able to show others how to use it extremely quickly, possibly over the phone. Nobody dies if it goes wrong, so you can afford more complexity than industrial SCADA, but you still want much higher reliability than people expect from consumer tech. There's a lot of automated testing, and thinking about edge cases, but not as much low level first principles work, although the firmware on remote embedded controllers has a bit more of that. You can live with the 99.9999% (or whatever the case may be, I highly doubt anyone has real numbers for a lot of this stuff) reliability of an average complex framework, but something that can't handle a USB getting unplugged and replugged in a different port is unacceptable. https://github.com/EternityForest/KaithemAutomation/tree/master/kaithem https://github.com/EternityForest/KaithemAutomation/tree/mas...
- someothherguyy 1y agocan't tell if this is supposed to be a joke
- b_e_n_t_o_n 1y agoIt's quite cool honestly, well done to the developer. It works, so it's de facto a good solution. > The hard parts weren’t the architectural pattern - they were embedded systems constraints. Tuning buffer sizes and designing components shallow enough to fit in 512 bytes required iteration. I am a bit confused by the choice to use HATEOAS for this. Given the hardware constraints of the controllers I wouldn't have figured that doing handlebars style html templating is a good use of resources, rather than just sending raw data to the client and having it handle the presentation. I probably would have returned a blob of data from the servers and handled everything on the client, but I also am a UI guy first and foremost...
- einrealist 1y agoThat's the assumption and motivation: > I wanted to create an architecture that minimized future work on both the admin app and the controller network layer. That way, the business could lean on its in-house development experience to make changes after the project. From your perspective as a UI developer, you would need to update all clients (in the building) if something on the server changes, e.g. if a new button or game state is added. HATEOAS is a good architectural choice if you want to minimise the likelihood of having to change the client implementation. I use HATEOAS as much as possible in my daily work. It is a good way to think about state, state transitions and what capabilities a client must have. That's the actual part of the author's motivation. It provides the "in-house development" with paradigms how to make changes.
- b_e_n_t_o_n 1y agoIt sounds like there is one client and multiple servers, so I assumed that it would be easier to change the single client versus multiple servers. I guess it also depends on what the in-house developers are experienced with. But I'm not so sure that it really minimises future work. Like if they decided they want a button that toggles both the sound and lights in a room, that's trivially implemented on the client. Or if they want to reposition a button from the top of a stack to the bottom. My assumption rests on the idea that changing the client is easier though.
- protocolture 1y agoI just use Webdis for my haunts/rooms.
- flufluflufluffy 1y agoI can’t stand this acronym. Why would you ever create an acronym where the first 4 letters are “HATE”? All I ever hear in my head when I read that is “HateOS” edit: ALSO, whoever made went particularly out of their way to make it so — typically words like “as” and “the” aren’t included in acronyms. Arrgghh it grinds my gears so much!
- dangsecondalt 1y ago[dead]
- sunaookami 1y agoEveryone at my workplace always pronounced it "HateOS", yeah... at least it's memorable.
- san4d 1y agoI actually can't find a source for the acronym's origin. The full phrase comes from Roy Fielding's PhD Thesis, "Architectural Styles and the Design of Network-based Software Architectures": https://ics.uci.edu/~fielding/pubs/dissertation/fielding_dissertation.pdf https://ics.uci.edu/~fielding/pubs/dissertation/fielding_dis... I'd love a source on the acronym if someone has it.
- lunias 1y agoI think HATEOAS doesn't get enough love. It's really convenient if you can stomach the extra data in your responses.