Follow along as I build a custom weather display using Cloudflare Workers and a popular e-paper display. While the embedded electronics I used have their limitations, Workers provided an elegant solution to overcome these challenges and bring the project to life.
Zastanawiam się czy to rodzaj konfliktu pokoleń, czy konfliktu platform, czy konfliktu inżynierów?
Też mnie zaskoczyla wypowiedź o parsowaniu JSONa.
Dwurdzeniowy procesor 240 MHz ma z tym niby jakiś problem?
Czemu zamiast HTMLa nie użyć po prostu jakiegoś prostego frameworku UI do embedded (LVGL i Slint obsługują ESP32).
Prawdę mówiąc domyślam się, jaka jest odpowiedź (podobnie jak ludzie w komentarzach na lobste.rs).
W tamtejszych komentarzach są też komentarze autora.
Tyle, że autor wyraża jakieś zapotrzebowanie. Sądząc po projektach w których uczestniczyłem w Europie, to zapotrzebowanie jest szersze. Ludzie raczej nie chcą się dostosowywać do wymogów kontrolerów. Chcą by to one się dostosowały do nich. Sam JSON nie był dużym problemem. Bardziej dynamiczna manipulacja stringami w RAM. Tego się nie da osiągnąć bez MMU i defragmentacji pamięci. Może nie miałem wtedy tyle charyzmy. Ale wszelkie próby przekonywania i wymyślania jak to pogodzić na różne sposoby, kończyły się ignorowaniem.
Dla mnie walka z ograniczeniami to najlepsza część pracy w IT.
Gdyby ktoś mi powiedział, że każdy problem mam rozwiązać jakimś API Cloudflare’a czy Amazona, to pewnie szybko by mnie to znudziło.
Alokacji pamięci podczas parsowania można uniknąć używająć interfejsu SAX zamiast DOM.
Żeby uniknąć fragmentacji pamięci pewnie zrobiłbym alokator zwracający uchwyty zamiast wskaźników. Pozwoliłoby to przenosić swobodnie dane, które nie są w danej chwili używane. Prawdziwy adres dostawałoby się dopiero po zalockowaniu handle’a. Gdyby pamięci było relatywnie mało, próbowałbym to optymalizować interningiem.
Ja bym nie powiedział, że to walka z ograniczeniami. Nazwałbym to stworzeniem czegoś dobrego. Takie rzeczy wymagają włożenia więcej pracy, poświęcenia uwagi.
Są też ludzie, którzy wolą zrealizować zadanie. Móc je łatwo utrzymywać i rozwijać. Chcą żeby większość pracochłonności była już rozwiązana tak jak na platformie, którą znają i lubią.
Myślę, że dla takich są kontrolery z Linuksem. Z jakiegoś powodu ich nie wybierają. Podejrzewam, że wtedy ma się inne kłopoty.
Na szczęście jestem w innym świecie, gdzie rozumie się wymagania platformy.
Parsowanie to był najmniejszy problem. Oni chcieli cały czas dane trzymać w JSON. W wielkim dynamicznym stringu.