Walka z wersją JDK w bashu – mały trik

Projekt używa kilku wersji Javy. Tak mniej więcej czterech, czyli od 6 do 9. Nic nadzwyczajnego, ale czasami mavenowi trzeba podstawić inne JDK. I tu zaczyna się robić ciekawie… Listing 1. Domyślna konfiguracja JDK $ echo $JAVA_HOME /usr/lib/jvm/java-9-oracle To nas nie zadowala z kilku różnych powodów. Maven co prawda ruszy, ale Java 9 poprzerzucała kilka […]

Gdzie trenować swoje umiejętności?

Ta naprawdę to nie jest post, a jedynie zaproszenie na stronę, na której zbieram linki do serwisów, gdzie można trenować kodowanie. Forma strony jest lepsza, bo aktualizacja jest prostsza w porównaniu z aktualizacją posta 😀 Gdzie trenować swoje umiejętności? Kod jest dostępny na licencji MIT. Jednak niektóre rozwiązania mogą być objęte inną licencją. W takim […]

Kiedy wypakować Optional

Odpowiedź brzmi najlepiej nigdy. Pandora już raz rozpakowała Optionala i do dziś dzieci się o tym uczą w szkole. Zresztą można sobie, to opisać w następujący sposób. Tygrys w klatce Wyobraźmy sobie, że mamy do dyspozycji Tygrysa. Niech ma na imię Bonawentura. Listing 1. Nasz tygrys public class Tiger { private final String name; private […]

Patatajam na Confiturę po raz wtóry

W zeszłym roku zaufaliście mi i mogłem wystąpić na scenie Confitury. Skończyło się to jak się skończyło 🙂 W tym roku spotkamy się raz jeszcze. Tym razem będę mówić o JUnit 5 🙂 Dziękuję za zaufanie i wiarę, że dam radę. Kod jest dostępny na licencji MIT. Jednak niektóre rozwiązania mogą być objęte inną licencją. […]

A na plażę którędy? DevCrowd 2017

Za nami dziewiąta już edycja DevCrowd (Java4People). Dla mnie była to edycja numer siedem 🙂 Pojechałem, posłuchałem, pogadałem i oto wnioski. Stylowy frontend w praktyce, czyli zderzenie z Angularem i SCSSem – Katarzyna Koszur Pierwszy raz na scenie i całkiem fajnie wyszło. Brakowało mi trochę efektu łał, ale całkiem fajnie. Na pierwszy ogień poszedł Angular […]

Praktyczne zastosowanie strażników w Elixirze

Trwa przerwa od JUnita. Wybaczcie, ale muszę odpocząć kilka dni od tego tematu. W zamian trochę Elixira i mały praktyczny przykładzik jak można zastosować strażników. Z samym mechanizmem strażników zapoznaliśmy się już wcześniej. Dziś coś, co robiłem przy okazji peselxa, a co finalnie zostało „ostrażnikowane”. Problem Z numeru PESEL możemy wyciągnąć informacje o dacie urodzenia. […]

Monolit kontra mikroserwisy – obrazkowo

Monolit Mikroserwisy Kod jest dostępny na licencji MIT. Jednak niektóre rozwiązania mogą być objęte inną licencją. W takim przypadku jest, to zaznaczone. Artykuły są dostępne na licencji CC-BY. Jeżeli spodobał ci się ten wpis, to podziel się nim z innymi lub wesprzyj autora.

Iterator filtrujący, czyli kontrakt iteratora w dwóch odsłonach

Dziś o tym, że kontrakt zawarty w dokumentacji można interpretować na wiele sposobów oraz dlaczego SRP jest istotne. Na 4p padło pytanie, jak ogarnąć problem iteratora, który będzie przy okazji filtrował kolekcję. Sama implementacja jest stosunkowo prosta: Listing 1. Iterator filrtujący public class FilteringIterator<T> implements Iterator<Optional<T>> { private final Iterator<T> iter; private final Predicate<T> predicate; […]

Zachłannie, leniwie, współbieżnie – czego nauczyłem się od Jose Valima

Warto jeździć na konferencje i słuchać mądrzejszych do siebie. Warto, ponieważ często nie dowiemy się nic nowego, ale sposób przekazania wiedzy pozwoli na uporządkowanie kilku rzeczy. Jose na tegorocznych LambdaDays opowiadał o GenStage i Flow. Jednak nie to jest najważniejsze. Jakby przy okazji omówił trzy różne podejścia do pracy z danymi. Podejście zachłanne Jest najprostsze. […]

Trochę o mierzeniu kodu z jmh

jmh jest leciwym narzędziem. Jakoś w marcu stuknie mu już 4 lata. Ostatnio zwróciłem na nie uwagę przy okazji rozwiązywania problemu „czyj kod powinniśmy użyć, nasz czy hindusów”. Wiadomo, że do rozwiązywania tego typu problemów najlepiej sprawdzają się jakieś w miarę niezależne od nas narzędzia. Jako że pisanie mikro benchmarków jest sztuką, narzędzie powinno ładnie […]