Java, PHP, C++, OpenGL
Strumienie (te związane z danymi a nie do obsługi plików) w Javie 8 to potężne narzędzie do rzucania danymi w lewo i prawo. Do ich przekształcania, filtracji, itd., dlatego warto je wziąć na tapetę i trochę się nimi pobawić. Najprościej strumień można sobie wyobrazić jako potok danych na których wykonujemy operację w różnych krokach, aż […]
Strumienie (te związane z danymi a nie do obsługi plików) w Javie 8 to potężne narzędzie do rzucania danymi w lewo i prawo. Do ich przekształcania, filtracji, itd., dlatego warto je wziąć na tapetę i trochę się nimi pobawić. Najprościej strumień można sobie wyobrazić jako potok danych na których wykonujemy operację w różnych krokach, aż […]
Implementacje typu TreeSet i TreeMap umożliwiają porządkowanie danych, gdyż są one układane w kolekcji według operacji porównywania. Domyślnie w TreeSet i TreeMap dane są sortowane według porządku naturalnego (w kolejności: A B C D…). Jeżeli chcemy zastosować inny rodzaj sortowania powinniśmy użyć własnego komparatora podczas tworzenia instancji obiektu TreeSet lub TreeMap. Warto zauważyć ze w Javie 8 rozbudowano klasę komparatorów […]
Implementacje typu TreeSet i TreeMap umożliwiają porządkowanie danych, gdyż są one układane w kolekcji według operacji porównywania. Domyślnie w TreeSet i TreeMap dane są sortowane według porządku naturalnego (w kolejności: A B C D…). Jeżeli chcemy zastosować inny rodzaj sortowania powinniśmy użyć własnego komparatora podczas tworzenia instancji obiektu TreeSet lub TreeMap. Warto zauważyć ze w Javie 8 rozbudowano klasę komparatorów […]
Parę małych przykładów z użyciem kolekcji: Operacje na listach // // Tworzenie listy z tablicy // List list1 = Arrays.asList(new String[]{"Pierwszy", "Drugi", "Trzeci", "Czwarty", "Piąty"}); // // Standartowe tworzenie listy // List list2 = new ArrayList(); list2.add("Pozycja 1"); list2.add("Pozycja 2"); list2.add("Pozycja 3"); list2.add("Pozycja 4"); list2.add("Pozycja 5"); // Dodajemy duplikat list2.add("Pozycja 4"); // // Standartowe tworzenie […]
Parę małych przykładów z użyciem kolekcji: Operacje na listach // // Tworzenie listy z tablicy // List list1 = Arrays.asList(new String[]{"Pierwszy", "Drugi", "Trzeci", "Czwarty", "Piąty"}); // // Standartowe tworzenie listy // List list2 = new ArrayList(); list2.add("Pozycja 1"); list2.add("Pozycja 2"); list2.add("Pozycja 3"); list2.add("Pozycja 4"); list2.add("Pozycja 5"); // Dodajemy duplikat list2.add("Pozycja 4"); // // Standartowe tworzenie […]
Kolekcje w Javie oraz klasy narzędziowe z biblioteki java.util.Collections to bardzo potężne narzędzia do operowania na danych. Można stwierdzić za prawidłowe dobranie struktur danych oraz ich sposobów przechowywania, może bardzo zoptymalizować i przyśpieszyć działania programu. Czasami bardziej skutecznie niż „wysublimowane algorytmy i optymalizacje kodu”. Przy używaniu kolekcji należy brać pod uwagę, nie tylko typ i […]
Wielowątkowość w programowaniu to nie jest łatwy temat, źle użyta jest przyczyną bardzo wielu kłopotów. Ten temat będzie podzielony na parę części: Wielowątkowość cz1. – wstęp, theread, synchronizacja Wielowątkowość cz2. – komunikacja międzywątkowa, synchronizacja poprzez kolejkę Wielowątkowość cz3. – egzekutory, pule wątków, Future i Callable Wielowątkowość cz4. – framerwork Fork/Join Wielowątkowość cz5. – klasy wspomagające […]
Dawno nie było pisania technicznego :(, troszkę jest rzeczy na głowie. Dzisiaj na tapetę idzie Java 8 i jej jeden z ficzerów operator Lambda. Co to są Lambdy? Jest to uproszczony sposób zapis metod anonimowych, tylko taki bardziej czytelniejszy. Lambda nawiązuje do języków funkcyjnych, gdzie tak jak w matematyce kładzie się nacisk na obliczanie wartości […]
Małe zwiedzanie podziemnych atrakcji Budapesztu Labirynt na wzgórzu zamkowym – Labirintus – największa atrakcja, po 18 wyłączają oświetlenie. Zapiernicza się wtedy po labiryncie w całkowitych ciemnościach… nie do końca, dają lampę naftową ? Kościół w skale z 12 wieku Jaskinia Pál-völgyi standardowo, aby uchwycić oświetlenie obiektu zdjęcia bez lampy błyskowej na wysokim ISO od 1600 […]
Dawno nie pisałem (a plany były i są dalej ambitne), dlatego dla odświeżenia bloga zamieszczę dzisiaj trochę treści fotograficznej. Budapeszt piękne stare miasto, ale jak wszystko ma dobre i złe strony. Ale spróbuję pokazać go od tej lepszej – dzisiaj nocne zdjęcia, niektóre trochę lekko ruszone, ale na długich czasach naświetlenia bez statywu to stabilizacja […]
W wolnych chwilach tworzę swój theme dla Yii2, inspirowany skórkami z githuba. Dlaczego tworzę swój, a nie używam gotowca? czyste theme bootstrapowe ładują dużą ilość domyślnego kodu JS i CSS są jako przykłady do stosowania różnych FW, ponieważ ostatnio dużo korzystam z Yii2 to myślę o czym konkretnym, ale nie na zasadzie warpera do theme […]
Domyślnie w Yii2 skopanie jest logowanie błędów ErrorException, itd, nie zapisują się do loga, tylko lecą do >/dev/null … rozwiązanie jest trochę na okrętkę, ale działa: try{ /* Error code */ } catch (yii\base\ErrorException $ex){ Yii::error("ErrorException: file: ".$ex->getFile()." line: ".$ex->getLine()."\nPrevious Track: ".$ex->getPrevious()."\n\nStack: ".$ex->getTraceAsString()); throw new yii\base\ErrorException($ex); } oraz modyfikacja konfiguracji logera w przypadku testów realizowanych […]
Multiplatformowość, wszędzie teoretycznie jest bez problemu i zawsze działa … ale w teorii. Mam projekt nad którym pracuję w wolnych chwilach od produkcyjnego kodowania, wykorzystującą libGdx’a, z założenia do wykonywania aplikacji wieloplatformowych Windows, Linux, MacOS, Android, oraz HTML/WebGL oraz dużo rzeczy wspomaga. I któreś to podejście do kompilacji projektu do Weba przy pomocy GWT i […]
Ostatnio wykonałem małe demo na Commodore 64 (dlatego przerwa w pisaniu na temat wzorców projektowych, później coś będzie na temat testowania, tak od innej strony i Value Object), zostało wystawione na LoadError 2015. To był eksperyment polegający na tym czy jestem w stanie: zrobić programik o minimalnej liczbie funkcji (efektów), czy w miarę się przyjmie […]