REKLAMA

Programista 5/2015 (36) – Anatomia języka Go – spis treści

Zapraszamy do zamówienia magazynu w prenumeracie. Miesięcznik jest dostępny w formie papierowej, PDF, EPUB i MOBI.

36_okladka emp

Magazyn też jest dostępny w salonach prasowych Empik do 19 lipca.

BIBLIOTEKI I NARZĘDZIA

Hazelcast – rozproszone struktury danych i przetwarzanie

Hazelcast jest ciekawą biblioteką dla języka Java, umożliwiającą niemal przezroczyste poziome skalowanie aplikacji. Zasada działania biblioteki jest zadziwiająco prosta: Hazelcast sprawia, że zmiany w wybranych kolekcjach (mapach, kolejkach) dokonane w jednej instancji naszej aplikacji są automatycznie widoczne w pozostałych instancjach tej samej aplikacji. Dzięki temu implementacja rozproszonego cachowania czy wzorca producent-konsument staje się dziecinnie prosta.

Tomasz Nurkiewicz

Boost.Corner: biblioteka Date_Time

Dziś na łamach „Programisty” inauguruje nowa stała kolumna: Boost.Corner. W kolejnych artykułach wchodzących w skład tego cyklu przedstawiać będziemy najciekawsze biblioteki wchodzące w skład pakietu Boost: tym razem na warsztat trafi Boost.Date_Time. Wszystkich czytelników zainteresowanych nowoczesnymi technikami programowania w języku C++ serdecznie zapraszamy do lektury!

Rafał Kocisz

Biicode: zarządca zależności dla języków C/C++

Drogi programisto C++, czy nie zdarza Ci się z zazdrością spoglądać na kolegów programujących w Javie, Perlu, Pythonie, Rubym (i w wielu innych językach), którzy mają do dyspozycji szereg wygodnych narzędzi wspomagających zarządzanie zewnętrznymi bibliotekami, modułami czy pakietami oprogramowania? Czy zgrzytasz zębami, tracąc czas na zbudowanie tudzież konfigurację potrzebnej Ci biblioteki 3rd party? Jeśli tak, to mam dobrą wiadomość: biicode przybywa na ratunek! Jeśli chcesz dowiedzieć się więcej o tym, co oferuje to pożyteczne narzędzie, zapraszam do lektury poniższego artykułu.

Rafał Kocisz

Specflow – testowanie aplikacji webowych na platformie .NET

Tworząc aplikacje internetowe, jakość na poziomie klas weryfikujemy za pomocą testów jednostkowych. Jednak aby przetestować interfejs użytkownika i zapewnić prawidłowe działanie systemu na wielu przeglądarkach, potrzebujemy testów funkcjonalnych. W niniejszym artykule zapoznamy się z możliwościami biblioteki Specflow, która pozwala na tworzenie automatycznych testów funkcjonalnych z wykorzystaniem języka C#.

Dariusz Kacban

JĘZYKI PROGRAMOWANIA

Anatomia języka Go >>3 strony tego artykułu do pobrania w .pdf<<

Go jest kompilowanym, współbieżnym, statycznie typowanym językiem programowania z automatycznym odśmiecaniem pamięci. Powstał pod szyldem firmy Google. Autorzy projektu są między innymi odpowiedzialni za powstanie UTF-8, systemu Unix, plan9 oraz wielu narzędzi, z których większość z nas korzysta do dzisiaj.

Adam Wołk

Więcej o tym artykule: >>tutaj<<

Co każdy programista Java powinien wiedzieć o JVM: monitorowanie

W dwóch poprzednich artykułach z niniejszego cyklu omówiliśmy budowę i mechanizmy działania Wirtualnej Maszyny Javy. Dzięki temu wiemy, czego teoretycznie możemy się spodziewać w poszczególnych fazach uruchamiania naszych aplikacji. Ostatnia rzecz, jakiej nam brakuje, to narzędzia, które pozwolą praktycznie zastosować zdobytą wiedzę. Tu bardzo często pojawia się wymówka o braku dostępu do (bardzo drogich) narzędzi, które są przecież niezbędne do analizy wydajności JVM. W tym artykule zobaczymy przegląd narzędzi, które wykorzystuję w swojej codziennej pracy i które mają dwie bardzo istotne zalety. Po pierwsze, są całkowicie bezpłatne, a po drugie, każdy z nas ma je już zainstalowane na swoich serwerach
i stacjach roboczych.

Jakub Kubryński

PROGRAMOWANIE URZĄDZEŃ MOBILNYCH

Programowanie inteligentnych zegarków Apple Watch >>Pobierz fragment tego artykułu<<

W poprzednim artykule (Programista 3/2015) omówiłem technologię Xamarin.Forms, która umożliwia programowanie uniwersalnych aplikacji mobilnych z wykorzystaniem zunifikowanego interfejsu programistycznego oraz jednolitego zestawu komponentów wizualnych. W tym artykule zaprezentuję możliwości bibliotek WatchKit z Xamarin. iOS w kontekście tworzenia aplikacji dla Apple Watch.

Dawid Borycki

Więcej o tym artykule: >>tutaj<<

PROGRAMOWANIE SYSTEMOWE

Moduły dynamiczne w kernelu NetBSD

Zapoznając się z programowaniem w jądrze systemu operacyjnego, dobrze jest zacząć od łagodnego wprowadzenia w kolejne podsystemy, bez zaczynania od inwazyjnego konfigurowania opcji i przeładowywania systemu operacyjnego w oczekiwaniu, czy całość wstanie czy nie. Taką możliwość dają moduły dynamiczne, którym to jest poświęcony niniejszy artykuł.

Kamil Rytarowski

ALGORYTMIKA

Analiza skupień w eksploracji danych

Epoka informacyjna każdego dnia generuje niezliczone ilości informacji gromadzonych w ogromnych zbiorach danych, tzw. Big Data. Skala tego zjawiska sprawia, że uzyskanie użytecznej wiedzy z tak powstałych zbiorów wymaga znajdowania zależności w wielowymiarowych przestrzeniach danych. Z pomocą ku temu przychodzi narzędzie nazywane eksploracją danych (z ang. data mining), którego podstawowym celem jest badanie charakteru i składu zbiorów danych. Analiza skupień zaś należy do jej podstawowych technik.

Konrad Stanik

INŻYNIERIA OPROGRAMOWANIA

Prosty polimorfizm – utrudnienie przy tworzeniu złożonych systemów >>Pobierz fragment tego artykułu<<

Wiele publikacji dotyczących programowania obiektowego posługuje się przykładem „edytora figur geometrycznych”, w którym polimorfizm wykorzystywany jest do rysowania w specyficzny sposób różnego rodzaju figur. Prosty polimorfizm pojawiający się w powyższym przykładzie zdaje się mieć dużą siłę oddziaływania na rzeczywiste systemy informatyczne. Artykuł omawia problemy związane ze zbyt dosłownym naśladowaniem opisanego rozwiązania oraz przedstawia propozycje przełamania niektórych trudności.

Marcin Krasny

Więcej o tym artykule: >>tutaj<<

PYTHON HAS POWER

Sterowanie Arduino przy pomocy Pythona. Część 2

Artykuł ten jest drugą i ostatnią częścią minicyklu poświęconego sposobom sterowania platformą Arduino przy pomocy języka Python. W niniejszym tekście omówione zostaną trochę bardziej zaawansowane przypadki użycia owej platformy.

Michał Janiszewski

LABORATORIUM BOTTEGA

Wzorce silników zdarzeń w C++. Część VI: Testowanie modułowe vs jednostkowe

W kolejnych artykułach przedstawiałem kolejne wzorce, które znacznie porządkują i upraszczają implementację silników obsługi zdarzeń, a w ostatnim przedstawiłem rozwiązanie integrujące wszystkie wcześniej omawiane wzorce w jedną konfigurowalną aplikację. Dotychczas temat testowania przewijał się jedynie w ocenie poszczególnych rozwiązań. W tej części te proste sformułowania nabiorą głębszego sensu, a przy tym przedstawię jeden z ciekawszych frameworków dedykowany do tego typu testów w języku C++.

Roman Ulan

BEZPIECZEŃSTWO

Mechanizm HTTP Public Key Pinning

Bezpieczne połączenia przy użyciu protokołu HTTPS stanowią jeden z podstawowych budulców dzisiejszego Internetu. HTTPS zapewnia poufność, integralność oraz autentyczność komunikacji. Ten ostatni cel jest realizowany dzięki standardowi X.509, który definiuje infrastrukturę klucza publicznego. Model zaufania oparty na X.509 ma jednak pewną fundamentalną wadę, której rozwiązaniem ma być mechanizm HTTP Public Key Pinning (HPKP).

Michał Bentkowski

FELIETON

Styl kodowania

Każdy program można napisać w niemal nieskończonej liczbie wariantów. Jak często przekonujemy się tworząc oprogramowanie, różnorodność w projekcie może stać się poważnym problemem. Potrzebny jest zbiór ścisłych zasad definiujących sposoby pisania programów: styl kodowania. Z jednej strony jest on specyficzny dla danego developera, z drugiej zaś bywa zdefiniowany przez organizację na potrzeby konkretnego projektu. Jak pogodzić te dwie perspektywy?

Grzegorz Kokot

PRAWO

Niezamówiona informacja handlowa, czyli SPAM w prawie polskim

Praktycznie każdy z użytkowników poczty elektronicznej chociaż raz spotkał się w swoim życiu z niechcianą korespondencją e-mailową pochodzącą od nieznanego adresata. Zazwyczaj są to wiadomości zawierające oferty handlowe, zaproszenia do udziału w badaniu, wypełnienia ankiety bądź też zaproszenie na określone wydarzenie.

Kamil Stolarski, Łukasz Kania

STREFA CTF

CONFidence CTF 2015 – PHP Core

CONFidence CTF 2015 to już druga edycja offline’owych zawodów typu Capture The Flag organizowanych przez polski zespół Dragon Sector. Zadania przygotowane przez mistrzów świata (wg rankingu ctftime.org) były wymagające, a niektóre z nich pozostały nierozwiązane mimo obecności nawet najbardziej doświadczonych drużyn. Warto wspomnieć, że w tegorocznej edycji po raz pierwszy pojawiły się nagrody pieniężne, o które pod koniec maja do Krakowa na konferencję Confidence przyjechało walczyć kilkanaście zespołów z całej Europy.

Jarosław "msm" Jedynak, Mateusz "Rev" Szymaniec

KLUB DOBREJ KSIĄŻKI

Python. Programuj szybko i wydajnie

Rafał Kocisz