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 […]
Category: Snippet (Page 2 of 4)
Parę małych przykładów z użyciem kolekcji: Operacje na listach // // Tworzenie listy z tablicy // List<String> list1 = Arrays.asList(new String[]{"Pierwszy", "Drugi", "Trzeci", "Czwarty", "Piąty"}); // // Standartowe tworzenie listy // List<String> 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"); // […]
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 […]
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); }try{ /* Error code */ } catch (yii\base\ErrorException $ex){ […]
Szybkie przejście z svn’a na git’a, bez kopiowania zawartości svn’a tylko aktualna wersja projektu. Na zdalnej maszynie: cd /srv/git_root/ mkdir project.git cd project.git/ git –bare init git update-server-infocd /srv/git_root/ mkdir project.git cd project.git/ git –bare init git update-server-info na lokalnym kompie: cd project git init git add * git commit -m "First commit message" git […]
Fajnie jak wszystko pracuje bez błędów, gorzej jak nie chce … Tutaj walczyłem z unit testami oraz testami systemowymi w Yii2 i … nie chce działać. Wysypuje się aż miło, a wypisuje tylko „Internal Server Error”, w końcu się udało. Ponieważ stosuję inny układ katalogów w projekcie niż domyślny w Yii2, to Codeception nie potrafił […]
Tak na szybko, instalacja w krokach … Codeception jest to jeden z frameworków do testowania skryptów PHP typu BDD (Behavior Driven Development), można w nim również wykonywać testy jednostkowe (posiada wbudowanego PHPUnit’a), czy podążać ścieżką TDD. Ręczna instalacja i używanie pod Windowsom w paru krokach (plik php.exe jest na ścieżce przeszukiwań plików exe): Wchodzimy na […]
Wyszła nowa wersja Yii2, nawiasem mówiąc fajny framework (inni się nie zgodzą, ale każdy używa co mu pasuje), tylko jest nie zgodny z Yii. Dlatego będzie trzeba porobić trochę przykładów kodu: Operacje CRUD w Yii2, założenia i inne przykłady w dokumentacji: Active Record Query Builder Tworzenie (create): Utworzenie i zapisanie wartości modelu: $model = new […]
Przenosiłem serwis na nowy serwer, gdzie był dostęp tylko dla wybranych IP. Po przeniesieniu “zonk” nikt nie ma dostępu, okazało się ze po drodze jest małe proxy :\ … W necie, po małym grzebaniu znalazło się rozwiązanie, wykorzystanie warunku “SetEnvIF” w htaccess’ie Kawałek kodu: order deny,allow deny from all SetEnvIF X-Forwarded-For “3.4.5.6” AllowIP SetEnvIF X-Forwarded-For […]