Programista 4/2019 (83)
Programista 4/2019 (83)
W poniższym artykule postaram się udowodnić na podstawie przykładowego kodu, że PowerShell to bardzo praktyczne i potężne narzędzie. Napiszemy wspólnie nowocześnie wyglądającą aplikację graficzną, której zadaniem będzie połączenie się z bazą danych Oracle. Dodatkowo zaimplementujemy możliwość odblokowania lub zmiany hasła dla użytkownika tej bazy.
OPC-UA – kolejny hype, czy już dojrzały protokół Ethernet? Pretendent standardu komunikacji, mogący zażegnać trwającą już niemal 30 lat wojnę Fieldbus i zastąpić obecne własne rozwiązania producentów.
Programowanie reaktywne w ostatnich latach staje się coraz bardziej popularne. Czym jest? Jakie problemy rozwiązuje, a jakie tworzy? Czy to koniec programowania w oparciu o wzorzec MVC? Odpowiedzi można znaleźć w poniższym artykule. Nakreślone zostaną również różnice między programowaniem deklaratywnym a imperatywnym. Dowiemy się też, w jaki sposób programowanie reaktywne może pomóc w utworzeniu kodu, który w lepszy sposób oddaje intencje programisty, przez co jest łatwiejszy w utrzymaniu.
Wielu programistów przywykło już do faktu, że środowiskiem języka JavaScript jest nie tylko przeglądarka. Mimo innego zamiaru twórcy języka sprawdza się on świetnie także w innych miejscach. Tworzenie multiplatformowych aplikacji, działających na serwerach lub naszych desktopach, z użyciem NodeJS nie jest już niczym nowym – wręcz przeciwnie. Coraz więcej firm wykorzystuje to środowisko do wytwarzania nowoczesnych aplikacji sieciowych. Jeżeli my też chcemy zacząć przygodę z aplikacjami internetowymi oraz NodeJS, to naturalnym wyborem staje się najpopularniejszy z frameworków – Express, za pomocą którego programista może stworzyć REST API lub wyrenderować stronę HTML. Ale czy na pewno nie mamy lepszych alternatyw? Celem tego artykułu będzie pokazanie, dlaczego warto zainteresować się nowym frameworkiem: NestJS oraz jak może on nam pomóc w codziennej pracy.
Przetwarzanie równoległe i konieczność synchronizacji wątków nigdy nie była najprostszym zadaniem. Sprawa komplikuje się jeszcze bardziej, gdy konieczność synchronizacji nie dotyczy pojedynczej instancji aplikacji, a całego klastra. W poniższym artykule zaprezentuję, jak produkt pozornie zupełnie innego przeznaczenia może rozwiązać wspomniane zagadnienie.
Internet of Things (IoT) jest jedną z głównych technologii, które mają umożliwić cyfrową rewolucję. Z tego powodu tworzenie takich rozwiązań staje się coraz bardziej popularne. Dlatego najwięksi gracze na rynku IT dostarczają wiele rozwiązań i usług, które umożliwiają stosunkowo szybkie tworzenie bezpiecznych aplikacji Internet of Things. W tym artykule pokażę, w jaki sposób utworzyć rozwiązanie IoT w oparciu o usługi Amazon Web Services IoT Core.
Algorytmy, które omawialiśmy w poprzednich częściach artykułu, operowały na strukturach danych wykazujących się rosnącym stopniem zaawansowania. Pracowaliśmy najpierw na tablicach, potem na listach, drzewach i na końcu na grafach. Tymczasem okazuje się, że struktura wcale nie musi być specjalnie zaawansowana, by można było skonstruować dla niej ciekawe algorytmy. Dziś przyjrzymy się tym z nich, które operują na zwykłych ciągach znaków.
W dzisiejszych czasach użytkownicy bardzo rzadko budują oprogramowanie ze źródeł. Dużo częściej korzystają z systemów do zarządzania pakietami. Takie systemy wykorzystują wcześniej przygotowane artefakty, które są pobierane i rozpakowywane na komputerach użytkowników. To podejście znacząco skraca czas potrzebny do instalacji bądź aktualizacji oprogramowania. Należy jednak zwrócić uwagę na pewną znaczącą kwestię dotyczącą bezpieczeństwa: skąd użytkownik ma pewność, że instalowane przez niego oprogramowanie zostało zbudowane bez żadnych złośliwych modyfikacji?
W jednym z poprzednich numerów opisywaliśmy zadanie Watchmen z CTF na konferencji Confidence, który po roku przerwy odbył się kolejny raz. Tym razem zmienił się organizator – zamiast drużyny Dragon Sector (która zajmuje się organizowaniem Dragon CTF na konferencji PWNing) konkurs został opracowany przez zespół p4. Na zawodników czekało 18 zadań, od bardzo prostych do całkiem trudnych. Jak to zwykle na zawodach organizowanych przez p4 bywa, najwięcej zadań (aż 6) należało do kategorii „reverse engineering”. W tym numerze omówimy dwa zadania opierające się na, odpowiednio zmodowanej, kultowej w Polsce grze Gothic w wersji Demo.
W mojej karierze programisty zdarzyło się kilka epizodów, w czasie których uczyłem programowania. Prowadziłem kółko programistyczne w moim liceum, uczyłem pojedyncze osoby, obecnie prowadzę również serię warsztatów w pracy, w ramach których uczę programowania w C# testerów manualnych. Niestety spośród wszystkich osób, które uczęszczały na moje zajęcia, tylko nielicznym udało się przejść przez cały proces zwycięsko i stali się programistami. Czy to ja byłem takim słabym nauczycielem? A może trzeba mieć jakieś specjalne umiejętności, by zrozumieć tajniki programowania? Gdzie leży problem?