Programista 3/2018 (70)
Programista 3/2018 (70)
Mamy szczęście programować w czasach, w których dostęp do wielkich zbiorów danych jest łatwiejszy niż kiedykolwiek wcześniej. A bardzo duże ilości danych otwierają wiele ścieżek, czy to indywidualnej, naukowej kariery, czy biznesowych możliwości. Wśród zbiorów dostępnych dla początkujących analityków danych wyróżniają się dane z sieci społecznościowych, z akcji użytkowników na stronach internetowych albo z systemów Internetu rzeczy, czyli sieci sensorów. Istnieją jednak jeszcze inne źródła informacji, które są godne uwagi. Są ogólnodostępne, darmowe, mają wysoką jakość i na ich podstawie startupy rosną jak grzyby po deszczu. Mowa tutaj o danych z satelitów obserwacji Ziemi.
Java Platform Module System, znany wcześniej jako Project Jigsaw, znacząco wpłynął na organizację maszyny wirtualnej, zaś wdrożenie w bibliotekach i aplikacjach staje się faktem. W tym artykule opisuję, jakie problemy stały przed systemem JPMS i jak je rozwiązano, oddając w nasze ręce kompletny system modularnego środowiska Javy.
Pamięć jest jednym z ważniejszych zasobów każdego programu komputerowego. Reprezentacja danych programu i ich układ w pamięci ma znaczący wpływ na szybkość wykonywania obliczeń [0].
CafeOBJ to specjalny język programowania przeznaczony do tworzenia formalnych i zarazem matematycznych specyfikacji modeli opisujących różnego typu systemy z otaczającego nas świata. Zarówno tego prawdziwego, ale także wirtualnego. A w szczególności za pomocą CafeOBJ możemy opisywać tworzone przez nas programy. O CafeOBJ można też powiedzieć, iż jest to system wspomagający przeprowadzanie dowodów matematycznych dla systemów formalnych. Inaczej mówiąc, możemy przeprowadzić weryfikację, czy badany system spełnia postawione przez nas założenia. Lecz zamiast pracować z kartką i ołówkiem, CafeOBJ przeprowadzi dowód matematyczny za nas.
Apache Cassandra® to uznana baza danych NoSQL, która jest bardzo popularna wśród firm przechowujących i przetwarzających duże ilości danych (Apple, Netflix), głównie z powodu jej liniowej skalowalności horyzontalnej. Projekt powstał 10 lat temu w firmie Facebook i po pewnym czasie został opublikowany na licencji open-source i przekazany pod kontrolę Apache Foundation®. Decyzje projektowe zaczerpnięte z Amazon Dynamo (model rozproszenia) i Google Big Table (sposób zapisu danych na dysku) są na tyle dobre, że pozwalają skalować klastry Cassandry nawet do kilku tysięcy serwerów.
Każdy pracujący w świecie IT zetknął się z terminem testowania bezpieczeństwa. Ale tak naprawdę co to znaczy przeprowadzić testy bezpieczeństwa? Czy jest to tym samym co testy oprogramowania albo testy penetracyjne? Jeśli nie, czym więc te czynności się różnią? W końcu kto powinien takie testy przeprowadzać? Spróbujmy odpowiedzieć na te pytania i przybliżyć pułapki, w które możemy wpaść, jeśli nie będziemy dokładnie rozróżniać wspomnianych zagadnień.
18-19 września to ważne daty dla wszystkich pracujących w technologii .NET! Właśnie wtedy w Halach EXPO XXI odbędzie się piąta edycja słynnej międzynarodowej konferencji .NET DeveloperDays.
JWT (JSON Web Token) to mechanizm, który jest często wykorzystywany w kontekście API webowych, ale również szerzej – z powodzeniem używany jest w aplikacjach webowych czy mobilnych. JWT możemy znaleźć w popularnych standardach, jak np. OpenID Connect, spotkamy go również czasem, korzystając z OAuth2. Znajduje on zastosowanie zarówno w dużych firmach, jak i mniejszych organizacjach. Dostępnych jest wiele bibliotek obsługujących JWT, a sam standard posiada „bogate wsparcie dla mechanizmów kryptograficznych”. Czy to wszystko oznacza, że JWT jest mechanizmem z natury bezpiecznym? Na tą wątpliwość postaram się odpowiedzieć w dalszej części tekstu.
Ten cykl artykułów ma na celu dokonać przeglądu różnych trendów architektonicznych, które pojawiły się w ciągu ostatnich kilku lat, po to aby je uporządkować, zestawić ze sobą, wskazać główne powody zastosowania, jednocześnie układając je w ewolucyjną ścieżkę, którą może podążać system na tle zmian architektonicznych. Przyjrzymy się klasycznej architekturze warstwowej, Domain-Driven Design, Ports and Adapters, microservices, architekturze reaktywnej i serverless.
Twórcy serwisów nieustannie poprawiają customer experience, czyli ścieżkę swojego potencjalnego klienta. Dzięki usprawnieniom sprzedaż wzrasta, gdyż coraz więcej osób nie tylko przegląda ofertę, ale ją finalizuje udaną płatnością. Organizacja wymarzonych wakacji to nie jest prosty temat, w związku z tym presja – by strona działała jak najlepiej, a cały proces był prosty – jest olbrzymia. Nie tylko zresztą presja, potencjalne zyski są też spore i warto o nie zawalczyć. Dlatego tak wiele różnego rodzaju ciekawostek UX-owych można znaleźć na stronach związanych z podróżowaniem, a konkretnie z rezerwacją hoteli i pensjonatów.
Java 8 była jedną z najcieplej przyjętych wersji tego języka wydanych w ciągu ostatnich kilkunastu lat, jednakże nie była pozbawiona wad, miejsc, w których z łatwością dało się poprawić funkcjonalność, czy najzwyklejszych w świecie wpadek.
Wyobraź sobie, że mając 64 lata, ciągle pracujesz w korporacji, a do upragnionej emerytury został Ci już tylko rok. Managerowie ciągle wymyślają nowe metody produkcji oprogramowania, spotkania wloką się tak długo, że twój pęcherz już tego nie wytrzymuje. Dodatkowo musisz każdego dnia uczyć się nowych narzędzi, procedur i procesów. Odliczasz dni, by wreszcie udać się na zasłużony odpoczynek. Czy tak wyobrażasz sobie swoją przyszłość? Zapewne nie. I nie jesteś w tym osamotniony.
Jak znaleźć czas na kodowanie, będąc młodym rodzicem
Czy podjęlibyście się wyzwania w postaci projektu, który trwa co najmniej kilkanaście lat? Praca nad nim będzie trwać 24 godziny na dobę, 7 dni w tygodniu. Nie ma możliwości zmiany tego projektu na inny. Stawka godzinowa wynosi 0 zł na godzinę. Jedynym wynagrodzeniem jest radość życia. Jeżeli warunki Was zachęcają, to tak właśnie rozpoczęliście projekt pod nazwą „rodzic”. Gratulacje! Co dalej? Jak pogodzić ten najważniejszy projekt w naszym życiu z całą resztą naszych zainteresowań, w tym z programowaniem?