Cyfrowy nomadyzm #1: podstawowe informacje

digital nomad

Cyfrowy nomadyzm Łączenie pracy zdalnej z podróżami może być uciążliwe, dlatego postanowiłem przygotować poradnik cyfrowego nomada (ang. digital nomad), który pomoże Ci właściwie przygotować Cię do wymarzonych wakacji. Pamiętaj, że poniższe porady są jedynie luźnymi, subiektywnymi spostrzeżeniami, wynikającymi z moich osobistych obserwacji i Ty możesz mieć swoje zupełnie zasady (jeśli tak, proszę Cię, umieść swoje … Dowiedz się więcej

Java 8 #1: metody domyślne i statyczne w interfejsach

java 8 interface

Interfejsy w JDK 7 Zanim zacznę opisywać zmiany jakie zaszły w interfejsach w Javie w wersji ósmej, takie jak np. metody domyślne czy metody statyczne, spójrz na moje małe podsumowanie, jak działały one w poprzedniej wersji. Właściwości interfejsów w JDK 7: interfejs implementujesz w klasie a nie dziedziczysz (jak w przypadku klas abstrakcyjnych) interfejs może … Dowiedz się więcej

SQL #4: Transakcje, ACID i poziomy izolacji

sql transactions

Transakcja Jest to zbiór operacji na bazie danych, które stanowią pewną całość. Powinny zostać wykonane wszystkie albo żadna z nich. Nie ma mowy o częściowym wykonaniu. Warunki jakie powinny spełniać transakcje są dokładniej opisane w zasadach ACID. Przykładem transakcji może być dokonywanie przelewu bankowego. W tym kursie przedstawione zostanie działanie transakcji w PostgreSQL. W tym … Dowiedz się więcej

SQL #3: Group by, having, funkcje agregujące oraz join

sql group by having

GROUP BY i HAVING Aby zrozumieć do czego służą funkcje agregujące, wpierw musisz pojąć założenia grupowania w języku SQL. GROUP BY i HAVING służą do grupowanie danych a potem ustawienie warunku na jego wyniku. Przypomina to bardzo filtrowanie poprzez WHERE. Podstawową różnicą między nimi jest to, że WHERE filtruje wiersze przed grupowaniem i obliczeniami (decyduje, … Dowiedz się więcej

SQL #2: tworzenie schematu, zapytań i edycja danych

sql crud

Język SQL (ang. Structured Query Language) jest rodzajem deklaratywnego języka, który powstał w latach 70-siątych, do obsługi danych w bazach. Język ten w swojej istocie miał być intuicyjny i prosty, tak aby maksymalnie ułatwić programiście pracę na bazie danych. Tworzenie schematu CREATE DATABASE – tworzenie bazy danych CREATE TABLE – tworzy pojedynczą tabelę. W najprostszym … Dowiedz się więcej

SQL #1: schemat bazy danych

sql basics

Historia Koncepcja baz danych jest prawie tak stara jak cała informatyka. Ogólna idea baz danych polega na posiadaniu wyspecjalizowanego programu (silnika bazodanowego), który mógłby wyszukiwać dane przede wszystkim po ich zawartości a nie po linkach do nich. Schemat bazy danych, to inaczej sposób opisania relacji i struktur Twoich danych. Kolejnym problemem było powtarzanie się danych … Dowiedz się więcej

Java #59: struktury danych bezpieczne wątkowo

java threadsafe structures

Na koniec cyku wpisów związanych z wielowątkowością, warto przyjrzeć się, jakie struktury danych bezpieczne wątkowo oferuje programistom Java. Okazuje się, że wiele problemów zostało już dawno przez kogoś rozwiązane (co jest dość częste w programowaniu). Klasy niemodyfikowalne Pierwszym rodzajem struktur przydatnych do pracy z wątkami są klasy niemodyfikowalne. Są one szczególnie przydatne we wszelkich obiektach … Dowiedz się więcej

Java #58: volatile – widoczność zmiennych

java volatile threads

Jednym z wielu problemów obok synchronizacji, jest widoczność zmiennych klasowych dla poszczególnych wątków. Nie jest to problem oczywisty, dlatego rozważę wpierw poniższy kod. Na konsoli powinno wyświetlić się: Wynik nie jest poprawny, zmiana flagi done, nigdy nie została odczytana. Dzieje się tak dlatego, ponieważ słowo kluczowe static pozwala komputerowi na trzymanie tej wartości w pamięci … Dowiedz się więcej