Skocz do zawartości

Elvis

Nowy
  • Zawartość

    2694
  • Rejestracja

  • Ostatnio

  • Wygrane dni

    198

Posty napisane przez Elvis

  1. Ciężko jest zgadywać co może być źle nie mając przed sobą płytki, ani nawet nie widząc programu bo "nie tak" może być właściwie wszystko.

    Chociaż proponowałbym zacząć od programu - jak wysyłasz dane przez ten UART?

  2. W przypadku plików w sumie jest łatwo, chociaż moim zdaniem temat linków niekoniecznie pasuje do ogólnej tematyki (poziomu) tego kursu... natomiast jak chodzi o katalogi to jest jeszcze gorzej. Chyba najlepsze wytłumaczenie znalazłem tutaj: https://bertvv.github.io/notes-to-self/2015/10/18/the-number-of-hard-links-in-ls--l/

    Ale to też nie jest liczba zawartych elementów... chyba najlepiej po prostu nie czytać tej wartości 😄

  3. Ja tylko dodam, że przykład na linkowanej grafice dotyczył zwykłego pliku, a nie katalogu.

    Cytat

    Spróbujmy zrozumieć wyświetlone dane na przykładzie naszego pliku drzewko.txt.

    I faktycznie opis nie jest najlepszy, chociaż nie mam pomysłu jak wyjaśnić znaczenie tej wartości nie wchodząc w sztywne dowiązania (hard links) i szczegóły systemu ext4 😞 Ale wszelkie sugestie na pewno będą mile widziane 🙂

    • Pomogłeś! 1
  4. Obawiam się, że możliwości PIO są jednak nieco zbyt ograniczone jak na "niezłą bibliotekę wspierającą masę protokołów i innych funkcji" - z tego co widziałem w dokumentacji mamy do dyspozycji pamięć na 32 instrukcje "asemblera", w dodatku ta pamięć jest dzielona przez 4 maszyny stanowe. Nie zmienia to jednak faktu, że nawet przy tak małych zasobach na pewno uda się ciekawe zastosowania dla PIO znaleźć.

    Taka elastyczność PIO może być też interesująca dla osób chcących nieco dokładniej poznać działanie protokołów - więc do nauki to może być super rozwiązanie.

    • Lubię! 2
  5. Moim zdaniem to bez szans, chociaż wybierając odpowiedni model Arduino można byłoby spróbować. Arduino UNO ma za mało pamięci i zbyt wolny procesor, ale nowe MKR mogłyby coś podobnego wygenerować - w sumie zawsze można użyć MKR Vidor 4000 i zrobić to na FPGA.

    Ale prawdopodobnie najłatwiejszym rozwiązaniem byłoby użyć Raspberry (lub inny SBC) i wyświetlacz z interfejsem HDMI.

    Edit: Zapomniałem o Arduino Porenta H7 🙂 Więc odpowiedź jest: tak da się to zrobić na arduino. Ale czy to ma sens to już inna sprawa.

    • Lubię! 1
  6. Co kto lubi, mi się CM 400 bardzo podoba, aż dziwne że tak długo Rpi się zeszło żeby wymyślić tak oczywiste rozwiązanie jak integracja SBC z klawiaturą 🙂

    Jak dla mnie Rpi4 nie zastąpi laptopa, ale pozwala na eksperymentowanie z komputerem, podłączanie własnych modułów, grzebanie w systemie itd. I tutaj zastosowanie karty SD ma jak najbardziej sens - a czy użycie m.2 z ARM ma w ogóle sens to pytanie mocno filozoficzne. Testowałem na RockPi4 i muszę powiedzieć że wydajność była bardzo rozczarowująca. Natomiast USB3.0 używam jako zewnętrzny dysk podłączony do stacjonarnego PC podczas kompilacji yocto i jest bardzo pozytywnie zaskoczony wydajnością. Więc gdyby tak szybko działał zewnętrzny dysk podłączony do malinki to byłoby aż za dużo jak dla mnie.

    • Lubię! 1
  7. Do zegarka to prędzej stm32l4r9, jest nawet zestaw ewaluyacyjny z wyświetlaczem "zegarkowym" https://www.st.com/en/evaluation-tools/32l4r9idiscovery.html

    Na stronie ST jest bardzo ładna wyszukiwarka, wystarczy w niej wpisać co dokładnie poszukujesz, zaznaczyć MIPI i gotowe https://www.st.com/en/microcontrollers-microprocessors/stm32-ultra-low-power-mcus.html#products

    Można też użyć CubeIDE do wyszukiwania układu z konkretnymi peryferiami.

    • Lubię! 2
  8. Nie jestem pentestem i nie robiłem testów forbota, to był znowu przykład i chyba ponownie nie zadziałał. W każdym razie mając izolowana sieć można użyć czegokolwiek, ale ogólnie bezpośredni dostęp do MySQL to proszenie się o kłopoty i raczej niezbyt dobre świadectwo o znajomości zagadnień bezpieczeństwa sieci. Ale nie twierdzę że tak się nie da - to jak z pracą jako root, też można

  9. Możliwe że przykłady z ODBC nie były dobrze dobrane, ale nie chodziło o konkretną technologię - to się zmienia i w każdej są błędy.

    Na czym polega różnica między wystawieniem łącza do MySQL, a własną aplikacją, najlepiej zrozumieć na przykładzie Forbota. Nie wiem, na czym działa forum, ale przez te 10+ lat mogło dziłać na różnych wersjach MySQL-a, Postrgres-a, czy czegokolwiek innego. Loguję się przez przeglądarkę, piszę posty i nadal działa. Ja nie muszę wiedzieć co jest "pod spodem". Zmiana bazy nie jest zagadnieniem teoretycznym. Może się z tym nie spotkałeś, ale na pewno na forum znajdziemy osoby z takim doświadczeniem.

    A jak chodzi o ataki, to mamy XXI wiek, mało kto robi je ręcznie. Są od tego gotowe skrypty - i jeśli będziesz miał dziurawy MySQL serwer, automat włamie się na Twój serwer i wykorzysta według uznania. Natomiast mając nawet prostą aplikację - jak chociażby to forum, wymaga to pewnego wysiłku. Na tym polega zmniejszewnie wektora ataku - będzie to wymagało więcej pracy, a jeśli tej pracy będzie więcej niż warte są dane, to mamy bezpieczny system.

     

  10. Łączenie się bezpośrednio z bazą danych będzie oczywiście działać - jest to nazywane architekturą 2-warstwową, gdzie mamy aplikację oraz serwer bazy danych. Takie rozwiązanie od dawna nie jest zalecane, chociaż nadal czasem używane.

    O ile rozumiem z backendem chodziło o dodatkową warstwę, czyli architekturę 3 lub więcej warstwową, gdzie mamy klienta, aplikację sieciową i bazę danych. Takie rozwiązanie jest o wiele popularniejsze i ma mnóstwo zalet, chociaż oczywiście też pewne wady.

    Pierwsza zaleta to niezależność od technologii, czyli wybranego typu i wersji bazy danych. W rozwiązaniu 2-warstwowym, gdzie aplikacja bezpośrednio łączy się z bazą nie można zmienić bazy bez modyfikacji aplikacji. Co więcej aktualizacje bazy mogą pociągać konieczność aktualizacji aplikacji. Z własnego doświadczenia wiem, że w przypadku MySQL serwera wystarczyło zmienić procesor z 32-bitowego na 64-bitowy żeby sterowniki ODBC nie chciały się poprawnie łączyć. To już prehistoria, ale nadal aktualna nauczka jest taka, że lepiej nie wiązać się z konkretnymi wersjami oprogramowania, czy też sprzętu.

    Druga zaleta to łatwa możliwość zwiększenia poziomu zabezpieczeń, albo jak kto woli zmniejszenie wektora ataku. Jeśli bazujemy tylko na bezpieczeństwie bazy to mamy co najmniej dwa poważne wyzwania. Pierwszy to luki w zabezpieczeniach - co jakiś czas pojawia się informacja o krytycznym błędzie w każdej bazie danych, niezależnie od profesjonalizmu jej twórców. Jeśli wystawiliśmy interfejs do takiej bazy publicznie, to do momentu załatania luki jesteśmy w pełni podatni na atak. Natomiast mając dodatkową warstwę jest chociaż szansa, że ten błąd nie będzie dla atakującego dostępny - udostępniamy tylko niezbędne w naszej aplikacji funkcje, więc wektor ataku jest mniejszy. Tym bardziej, że często błędy dotyczą dość egzotycznych i mało popularnych funkcjonalności.

    Następna różnica to możliwość zwiększenia bezpieczeństwa dodając logikę charakterystyczną dla aplikacji. W przypadku bazy danych możemy oczywiście dodać możliwość odczytu tylko dla zalogowanych użytkowników, albo zapisu tylko dla nich. Ale jak ograniczyć zapis danego wierszta tylko do wybranego użytkownika (np. zmiana hasła)? Albo jak pozwolić odczytać niektóre dane tylko użytkownikom z działu kadr (bo inaczej złamiemy RODO)? Jest na to metoda, czyli wyzwalacze - ale to o wiele bardziej skomplikowane, niż podstawowy kurs SQL-a, może zawierać błędy, ale co najważniejsze jest bardzo silnie zależne od bazy, czyli wracamy do pkt.1, zmiana bazy może wymagać przepisania wszystkiego od nowa.

    Dlatego obecnie popularniejsze są rozwiązania wielowarstwowe, gdzie klient, czyli w tym przypadku esp8266 wysyła dane używając MQTT lub innego protokołu i jest zupełnie niezależny od typu, czy wersji bazy danych. Czujnik ma wiedzieć gdzie dane wysłać, a nie czy na serwerze ktoś nie zmienił płyty głównej.

  11. Opóźnienie to nie problem, kondensator załatwi sprawę. Myślałem że problemem jest opóźnienie reakcji - tutaj w ekstremalnym przypadku konieczna może być modyfikacja lub pozbycie się bootloadera.

    Chciałem tylko podpowiedzieć że takie rozwiązanie istnieje, działa całkiem dobrze i czasem może być łatwiejsze do użycia niż usypianie mikrokontrolera.

  12. Edit: tak dla wyjaśnienia o co mi chodziło podsyłam linka https://electronics.stackexchange.com/questions/367456/arduino-self-power-circuit - nawet jeśli w tym przypadku się nie przyda, to chyba ogólnie warto pamiętać, że tak można "obejść" problem z zasilaniem. Użycie tranzystora mos daje pobór prądu rzędu kilku mikroamper, zamiast włącznika można dać czujnik PIR, kontraktron, czy co tam potrzebujemy.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.