Czym jest Promise? Jest to obiekt zwracany z metody, dzięki któremu możemy w łatwy sposób obsługiwać asynchroniczne funkcje i ich rezultaty (tak te wynikające z pełnego sukcesu, jak i z błędów, które mogą się zdarzyć w trakcie wykonania).

Przykłady w tym wpisie będą w TypeScript. Aby móc je prawidłowo uruchamiać zapoznaj się z artykułem: TypeScript: Szybki start.

Jak działa Promise?

Promise (ang. obietnica) ma 2 zasadnicze stany:

  • pending – oczekiwanie
  • settled – rozstrzygnięty
    • resolved – rozwiązany (choć spotykałem też określenie “fulfilled”)
    • rejected – odrzucony

Promise’ów używa się w funkcjach asynchronicznych (np. komunikacji ajaksem z serwerem). Dopóki nie mamy odpowiedzi (promise nie jest rozstrzygnięty) uznajemy, że jest w stanie pending (ang. w oczekiwaniu).

Kiedy już mamy wynik działania funkcji może ona być albo zakończona pozytywnie albo nie.Continue reading

Wpis ten ma za zadanie dać Ci błyskawicznie opcję serwera w node.js statycznych plików w node.js.

Czego potrzebujesz

  • co to node.js
  • 5 minut (lub 30 sekund – patrz TLDR;)

TLDR;

Możesz czytać całość, albo wykonać te polecania:

git clone git@github.com:yarpo/simpleNodeServer.git
cd simpleNodeServer
npm install
npm start
# w przeglądarce http://localhost:3010 

Miłej lektury (dla ciekawskich 😉 )

Continue reading

Gdyby tylko mieć JavaScript, w który można dodać typy… Jak pomyśleli, tak zrobili. Dzięki temu KAŻDY działający do tej pory kod JavaScript nadal może być używany, ale nowy kod piszesz już “po bożemu”. A to wszystko dzięki językowi, który rozszerza możliwości starego dobrego JavaScriptu. Zobacz przykłady TypeScript. Naprawdę szybkie wprowadzenie do tematu.

Continue reading

Wraz z wielkim wzrostem dwóch podejść RESTful Web Services oraz mikroserwisów warto jest mieć łatwy sposób na stworzenie odpowiedniej klasy wspomagającej komunikacje miedzy serwisami. W tym wpisie pokażę, jak zrobić to REST-owe żądania w Java Spring z wykorzystaniem klasy RestTemplate.

Na początek

  • bardzo podstawowa wiedza o Javie
  • 5 minut

RestTemplate

RestTemplate (implementujace interface RestOperations) to wedlug dokumentacji Springa centralna klasa dla synchronicznego dostępu HTTP. Trochę bardziej ludzkim językiem – w oparciu o tę klasę można łatwo z poziomu kodu Javy wykonywać żądania HTTP. Stwórzmy więc zręby pod własny klient Rest HTTP 🙂
Continue reading

TLDR; gotowce: mapa Bieszczad dla GPS Garmin, mapa Tatr dla GPS Garmin, mapa Gruzji dla GPS Garmin.

Mimo, że temat ten nie do końca jest związany z programowaniem uznałem, że wiedza o tym jak połączyć kilka map dla nawigacji GPS może się przydać nie tylko mi.

Co więcej po tym, jak sam musiałem drugi raz się tego nauczyć (rzadko potrzebuję łączyć mapy) stwierdziłem, że nawet jeśli nikt inny tego nie będzie nigdy potrzebował, to mi bardzo ułatwi taki wpis życie :D.

Łączenie map dla nawigacji GPS: Czego potrzebujesz?

  • odpowiednich plików z mapami (garmin.openstreetmap.nl)
  • specjalnego programu (dla MacOS uruchamianego z lini poleceń) (gmaptool.eu)
  • nawigacji obsługującej stworzony plik (np. Garmin eTrex 30x)
  • 5 minut (na przeczytanie i dużo więcej czasu na pobranie plików z mapami)

Continue reading

Node.js zagoscil juz w swiecie programistycznym na dobre i czesto nawet jesli nie tworzysz produktu w JavaScript, to nadal jakas czesc projektu wymaga node’a.

Czasem tez wymagana jest konkretna wersja node.js. Istnieje kilka sposob na zainstalowanie wlasciwej wersji, ja pokaze tu jedna z prostszych, wykorzystujaca nvm (Node Version Manager).

Na poczatek

  • zainstalowany node.js
  • umiejetnosc korzystania z wiersza polecen
  • 3 minuty

Wpis ten dotyczy nvm i node na MacOS, ale roznice dla Linuksa czy Windowsa nie powinny byc duze.

Continue reading