Podłączenie ESP8266 do internetu

Artykuł o sterowaniu diodą oraz odczycie stanu przycisku pokazały w jaki sposób kod może sterować urządzeniami, oraz badać ich stan. Żaden z projektów nie wykorzystywał jednak połączenia z internetem, więc ciężko mówić że były to przykłady implementacji internetu rzeczy. Czas to poprawić. Kolejny projekt będzie polegał na sterowaniu przełączaniu diody w jednym ESP po naciśnięciu przycisku podpiętego do drugiego.

Czytaj dalej Podłączenie ESP8266 do internetu

IoT z wykorzystaniem ESP8266

IoT (ang. Internet of Things – Internet rzeczy ) jest koncepcją w której otaczające nas urządzenia będą wykorzystywać internet aby komunikować się między sobą, żeby lepiej spełniać swoje zadania.

Każde urządzenie musi zawierać podłączony do internetu komputer z zestawem wejść i wyjść aby móc to urządzenie monitorować i nim sterować. Komputer ten musi być tani, mały, pobierać niewiele energii i być programowalny.

Raspberry Pi oraz Arduino spełniają te wymagania, jest jednak układ który spełnia je bardziej: ESP8266 – chiński programowalny mikrokontroler wspierający TCP IP, WiFi, posiadający porty wejścia i wyjścia, niski pobór mocy. Jest on też naprawdę tani: od $0.50 w hurcie do $1 w detalu. Dodatkowo układ ten jest częściowo kompatybilny z Arduino dzięki czemu narzędzia stworzone dla tej popularnej płytki.

Czytaj dalej IoT z wykorzystaniem ESP8266

Niezmienny obiekt i budowniczy

Niespodziewana zmiana stanu obiektu jest jedną z częstszych przyczyn błędów programistów. Dwoma, moim zdaniem, najczęstszymi przypadkami, w których zmiana może być zaskoczeniem są:

  • Zmiana stanu obiektu gdy jest on przekazany do metody, zwłaszcza funkcji, której nazwa sugeruje że jest to bezpieczne
  • Zmiana stanu w wyniku współbieżnego dostępu do jednego obiektu
Czytaj dalej Niezmienny obiekt i budowniczy

Immutable Map – modyfikowanie wielu pól

Klasa Map z pakietu immutable jest obecnie popularnie wybierana jako kontener dla globalnego stanu w aplikacjach wykorzystujących redux.

Zauważyłem też że powszechną, ale błędną, praktyką jest modyfikowanie wielu pól przy pomocy łańcucha poleceń set.

const newState = oldState
    .set('field1', 'value1')
    .set('field2', 'value2')
    .set('field3', 'value3');
Czytaj dalej Immutable Map – modyfikowanie wielu pól

Auth-0 aplikacja do odpalania rakiet – frontend

Interfejs użytkownika jest ważnym elementem bzpieczeństwa aplikacji, musi on być łatwy w obsłudze, jednocześnie nie może on być wektorem ataku, np. nie powinien używać mechanizmów mogących ujawnić login i hasło podmiotom trzecim.

Dostawcy tożsamości, w tym Auth0, upraszają to zadanie, dając swoim klientom gotowe ekrany logowania i rejestracji, które sprawiają, że aplikacja kliencka nie ma dostępu do loginu i hasła, a co za tym idzie nie może go ujawnić.

Klientem, którego proces tworzenia opiszę jest aplikacja SPA (single page application), napisana z wykorzystaniem frameworka aurelia w języku typescript,
ale wybór frameworka i języka nie ma szczególnego znaczenia.

Czytaj dalej Auth-0 aplikacja do odpalania rakiet – frontend

Auth0 – Delegowanie zarządzania tożsamością

Zarządzanie tożsamością użytkowników i prawami dostępu jest podstawą bezpieczeństwa większości aplikacji. We wszystkich aplikacjach daje się wykryć powtarzalne wzorce rozwiązań, pozwalające określić czy użytkownik rzeczywiście jest tym za kogo się podaje. Standardem jest opieranie się o login i hasło, często wzmocnione innymi mechanizmami takimi jak kody jednorazowe wysyłane sms-em.

Jednocześnie jest to zagadnienie zasobochłonne, o ile sama implementacja ekranu logowania i rejestracji użytkownika zgodnie z bieżącymi standardami jest dość szybka: zajmuje od kilku godzin do kilkunastu dni, to co jakiś czas okazuje się, że stare praktyki przestają gwarantować bezpieczeństwo, oraz pojawiają się nowe rozwiązania adresujące problemy występujące w starych. Wymaga to ciągłego śledzenia informacji związanych z szeroko rozumianym bezpieczeństwem i adaptacji swojego systemu.

Niestety bezpieczeństwo w oprogramowaniu nie zarabia, z tego powodu w wielu systemach jest traktowane po macoszemu, menadżerowie znacznie chętniej poświęcą miesiąc na zbudowanie nowych ścieżek sprzedażowych niż tydzień, na zmianę sposobu szyfrowania haseł.

Powszechność i złożoność problemu oraz brak biznesowych przesłanek do inwestycji w zabezpieczenie aplikacji czyni ten aspekt idealnym kandydatem do wydelegowania do innej organizacji.

Auth0 jest jednym z dostawców, na których warto zwrócić uwagę, w tym artykule postram się przybliżyć kilka aspektów związanych z integracją z tym dostawcą.

Czytaj dalej Auth0 – Delegowanie zarządzania tożsamością