Fundamenty języka Java

Niecały miesiąc temu zostałem poproszony przez Strefę Kursów o ocenę ich nowo wydanego materiału dla osób chcących zacząć naukę programowania w Javie: „Fundamenty języka Java„. Przerobiłem go kilka dni temu i dziś zapraszam do przeczytania recenzji.

Spis treści całego kursu jest dostępny tutaj, a trwa on aż ponad 12 godzin.

Czytaj dalej

Bielsko-Biała JUG #4, Jarosław Pałka – JIT me baby one more time.

Wczoraj odbyło się czwarte spotkanie Bielsko-Bialskiej grupy miłośników Javy i programowania (Bielsko-Biała JUG). Tym razem prelekcję przygotował dla nas Jaroslaw Palka – od ponad 15 lat w branży IT, jako administrator baz danych, programista, architekt, manager i „inżynier od spraw katastrof”. Niepokorny wyznawca kościoła JVM, badacz bytecode’u i JIT oraz wszelkiej maści parserów, interpeterów i kompilatorów.
Od czasu do czasu Jarka można wysłuchać na polskich konferencjach. W wolnych chwilach trener w http://symentis.pl i autor bloga nahttp://geekyprimitives.wordpress.com/ oraz samozwańczy dyktator w radach programowych konferencji JDD oraz 4Developers. Obecnie ekspert w Allegro.

jpalka2 Czytaj dalej

Java JNA #2, Total Commander

totalcmdW poprzednim wpisie zrobiłem krótkie wprowadzenie do wykorzystywania biblioteki user32.dll przez Javę do pobierania informacji z innych aplikacji okienkowych. Poniżej rozszerzymy nasze klasy o możliwość pobierania dowolnie zagnieżdżonych komponentów za pomocą funkcji rekurencyjnej przeszukującej całe drzewo elementów. Wszystko na przykładzie Total Commandera.

Czytaj dalej

Java Spring, recenzja kursu wideo z Videopoint.pl

vsprku_smallKażdy, kto zawodowo programuje w obojętnie jakim języku wie, że bez wsparcia frameworków nasze życie byłoby znacznie trudniejsze. Tak jak Python ma swojego Django, PHP – Symfony, czy Ruby Railsa, tak w Javie bez znajomości Springa ciężko będzie znaleźć komukolwiek zatrudnienie. Praktycznie w każdej ofercie pracy dla osób programujących w Javie, wśród wymagań znajdziemy znajomość frameworka Spring.

Poniżej krótko zrecenzuję kurs wideo „Spring. Kurs video. Poziom pierwszy. Prosty sposób na zaawansowane aplikacje w Javie” dostępny na Videopoint.pl, ale na początek kilka słów o samym Springu.

Czytaj dalej

Java i listing wszystkich plików w katalogu

directoryW ostatnim czasie musiałem przerobić jeden z systemów na wersję wielojęzykową. Chodziło dokładnie o to, aby wszystkie Stringi zostały wywołane przez tzw. wrapper ze wstrzyknięciem pewnego kontekstu (Locale, kategoria grupująca, czy parametry).

Np. jeśli w kodzie był fragment:

to został przerobiony na coś takiego:

lub coś takiego:

Typowy przykład Buildera z przeciążoną metodą toString() wykonującą translację. Taki wrapper wykonuje wyszukanie tekstu już zapisanego w systemie (czy to w bazie, czy w plikach), a jeśli nie istnieje – dopisuje go. W ten sposób zostają zdefiniowane szablony tekstów w ustalonym źródłowym języku i w celu dodania nowej wersji językowej, należy przypisać do każdego z nich odpowiednie tłumaczenie. System zaś z kontekstu użytkownika wybierze odpowiednie Locale i przypisze odpowiednią wersję.

Ale w zasadzie nie kwestię samych tłumaczeń chciałem tu poruszyć, a to co wymagało żmudnej pracy po finalnej refaktoryzacji kodu. Należało wyszukać wszystkie szablony i zapisać je. Problem w tym, że zmodyfikowanych plików źródłowych .java było mnóstwo, w różnych podkatalogach. Ze względu na to, że konieczne było wyciąganie dodatkowych zmiennych javy w źródłach (patrz zmienna category), postanowiłem zrobić proste narzędzie napisane również w javie wyszukujące wszystkie pliki z rozszerzeniem .java, a z nich wszystkie wywołania metody I18n.begin.

Czytaj dalej

10-letni chłopak zdobył 100% na egzaminie OCPJP z Javy!

ronil-shah-java-exam

W zeszłym roku Ronil Shah zaskoczył prawie wszystkich zdobywając sto procent punktów w egzaminie z Javy OCPJP. Jednak to nie wszystko. Najciekawsze jest to, że egzamin ten przewidziany jest na ponad dwie godziny, podczas gdy on zakończył go już po 18 minutach! Mało kto z doświadczonych, pracujących wiele lat w zawodzie programistów może pochwalić się takim wynikiem, już nie wspominając o tak szybkim poradzeniem sobie z dość podchwytliwymi pytaniami.

Dodam, że na zdanie egzaminu OCPJP (dawniej SCJP) w celu otrzymania certyfikatu, decydują się przeważnie doświadczeni programiści.

Czytaj dalej

Termotransferowa drukarka etykiet Zebra P4T

zebraW ostatnim czasie pracowałem nad systemem dla dużej amerykańskiej firmy, który miał usprawnić zarządzanie zleceniami dla operatorów wózków widłowych w magazynie.
Importujemy dane pochodzące z zewnętrznego systemu ERP, pracownik korzystający ze stanowiska komputerowego na hali magazynowej rozdysponowuje poszczególne zadania, a operatorzy wózków na bieżąco mają podgląd aktualnych kursów do wykonania na przenośnym mini komputerze / czytniku kodów kreskowych Intermec. Po zakończeniu całego procesu dla jednego zlecenia osoba je kompletująca drukuje etykietę za pomocą drukarki Zebra P4T. Główna część systemu po stronie serwera została napisana w Javie i uruchomiona na Tomcacie. Panel dla operatora na magazynie korzysta z AngularaJS i komunikuje się z serwerem za pomocą socket.io, zresztą podobnie jak panele na urządzenia mobilne Intermec.

Czytaj dalej

HTML, CSS 2.1 i dokumenty PDF

pdfW ostatnim czasie realizowałem projekt w którym należało zaprojektować ok. sto dokumentów PDF w postaci różnego rodzaju wniosków, w różnym układzie. Ten, kto kiedykolwiek generował dokumenty za pomocą iTexta wie, że nie jest to trudne, lecz czasochłonne. Programiści z reguły są leniwi, ponieważ zawsze szukają drogi na skróty, tak aby zrobić jak najwięcej i najmniej się przy tym napracować. Ja również, dlatego postanowiłem wykonać generowanie takich dokumentów na podstawie HTML, CSS 2.1 i oddelegować zadanie projektowania takich szablonów innej osobie 🙂
Chodzi oczywiście o projekt realizowany w Javie.

Czytaj dalej

Arduino – zdalne sterowanie oświetleniem

W tym artykule opiszę sposób wykonania zdalnego sterowania jednym urządzeniem wpinanym do gniazdka 230V z wykorzystaniem Arduino. Wykorzystane będzie połączenie przez USB z komputerem, który jednocześnie będzie pełnił rolę serwera WWW. Dzięki temu rozwiązaniu możliwe będzie sterowanie zarówno z tej stacji jak i dzięki WiFi przez laptop, tablet, czy telefon komórkowy.

Efekt końcowy będzie wyglądał tak:

W takim razie zabieramy się do pracy 🙂

Czytaj dalej

Permutacje, cz. 2 – algorytmy

W poprzednim wpisie programistyczne rozwiązanie zagadki polegało na wygenerowaniu wszystkich permutacji zbioru i sprawdzeniu każdej z nich pod względem spełnienia warunku poprawności. Takie podejście może okazać się najrozsądniejsze w przypadku pracy nad problemami NP-trudnymi (poprzez wygenerowanie wszystkich możliwych rozwiązań i wybranie spośród nich najlepszej).

W dalszej części umieszczam przykłady implementacji w Javie różnych algorytmów generowania permutacji.

Czytaj dalej