sobota, 11 sierpnia 2012

Wykorzystanie Dynamic Proxy jako narzędzia diagnostycznego

Wstęp.

Dawno nie pisałem. Jest to też trochę podyktowane tym, że ciężko pisać, gdy bije się z myślami: "Niee, ten temat jest za prosty żeby o nim pisać, przecież to żałosne!", ale przypomniałem sobie pewne słowa (a raczej literki napisane na blogu), człowieka, którego uważam za kogoś, kogo warto naśladować. Brzmiało to tak: "Chętnie służę pomocą w razie potrzeby *zmniejszenia* własnych oczekiwań odnośnie zawartości wpisu.". Melduję, że zmniejszam! :).

Nie wiem, czy tylko ja tak mam, ale czasami ciężko się zmotywować do nauki. Dobrym lekarstwem na to okazał się, już kiedyś przeze mnie wspominany, serwis knowledgeblackbelt - jasno określony cel i wymagania pomagają w skutecznym motywowaniu. Właśnie udało mi się zdać egzamin z Java Reflection API, dzięki któremu zdobyłem zielony pas. Z tej okazji pomyślałem, że naskrobię coś w końcu na blogu. Dziś będzie o wykorzystaniu Dynamic Proxy na przykładzie kodu do pomiaru wydajności metody (ile czasu zajmuje jej wykonanie powierzonego zadania). Zapewne istnieją do tego rozbudowane narzędzia, może jakieś pluginy do IDE - ot, to ma być tylko taki przykładzik.

czwartek, 31 maja 2012

Praktyki w Sabre Polska - rekrutacja okiem studenta

Praktyki to niewątpliwie szansa na zdobycie doświadczenia, przeżycie ciekawej przygody zawodowej  i dobry wpis w CV. Moja uczelnia w programie studiów planuje odbywanie praktyk po III roku, ja jestem na II, ale chciałem spróbować swoich sił. Z racji tego, że nie byłem przyparty do muru, a pomysł kandydowania zrodził się niespodziewanie, aplikację złożyłem tylko do jednej firmy, firmy obok której codziennie przejeżdżam w drodze na studia - Sabre Polska i którą uważam za miejsce, w którym warto było by kiedyś pracować.  W poniższym wpisie chciałem się podzielić doświadczeniem po rekrutacji, opisać te etapy troszkę szerzej, podpowiedzieć czego można się spodziewać i przede wszystkim zachęcić Was do próbowania. Myślę, że wpis ten może odpowiedzieć na parę pytań osób, które pierwszy raz wybierają się tutaj na praktyki, a może w innych firmach jest podobnie?

środa, 16 maja 2012

Testowanie z JUnit w Eclipse

Wstęp.
Jeszcze nie pracuję, ale wydaje się, że w dzisiejszych czasach, w codziennej pracy, bez testów ani rusz. Swoją drogą, testowanie też przyda się w naszych amatorskich projektach. W tym wpisie chciałbym pokazać, że tworzenie prostych testów jednostkowych jest bajecznie proste. Zdziwiłem się, że dosłownie znajomość paru instrukcji pozwala tworzyć i uruchamiać nasze testy. Więc, jeśli chodzi o próg wejścia, to wydaje się, że jest niesamowicie niski, ale może to tylko złudne uczucie.

Zaczynamy! - Klasa którą będziemy testować.

Tworzymy javowy projekt w Eclipse i naszą klasę, żadna nowość. Przykład powinien być na tyle prosty, aby nie zaciemnić istoty tego, czego chcemy się nauczyć. Niech to będzie klasa wykonująca proste obliczenia matematyczne.

środa, 25 kwietnia 2012

Projekt pokazał mi, że jakość kodu jest ważna!

Wstęp.
Panel logowania

Od ostatniego wpisu minął ponad miesiąc, ale mniejsza z tym. W tym wpisie mówiłem o realizowaniu projektu w Javie na studia. Niestety z racji skróconego (a zarazem skondensowanego) semestru wykańczanie tego projektu to była nerwówka. Wyszło to średnio. Postanowiłem podzielić się przemyśleniami, które naszły mnie w trakcie ostatniego tygodnia prac nad projektem.

Panel administracyjny
Gwoli przypomnienia - w skład projektu wchodzi aplikacja kliencka napisana w Swingu, która umożliwia użytkownikom o różnym stopniu dostępu, rozwiązywanie testów wielokrotnego wyboru, podgląd wyników testów, zarządzanie testami, użytkownikami itp. Aplikacja serwera przyjmuje połączenia od klientów i wykonuje zapytania od nich płynące, przechowuje testy, użytkowników i inne potrzebne dane w bazie danych, z którą się komunikuje przy użyciu JDBC. 

sobota, 3 marca 2012

JDBC + MySQL

Wstęp.

Trochę czasu minęło od ostatniego wpisu. Nie mam nic na swoje usprawiedliwienie. W tym semestrze realizuję projekt z przedmiotu Programowanie Obiektowe. Używamy tam języka Java. Pomyślałem sobie, że zamiast chodzić na laboratoria, wezmę projekt i będę nad tym siedział w domu - jest okazja do nauki nowych rzeczy: obsługa bazy danych  za pomocą JDBC i Sockety Java. Ma to być aplikacja klient-serwer umożliwiająca studentom rozwiązywanie udostępnianych przez nauczyciela testów. Przy tej okazji myślę, że naskrobię parę wpisów. Oto pierwszy z nich.

Przygotowania - czego potrzebujemy.

JDBC zapewnia połączenie pomiędzy Javą a relacyjną bazą danych, umożliwia przesyłanie do niej zapytań SQL. Nie narzuca nam z jakiej bazy musimy korzystać, dlatego oprócz systemu zarządzania bazą danych (DBMS) potrzebujemy sterowników JDBC (JDBC Driver), które możemy pobrać od dostawcy bazy danych.

My będziemy korzystać z systemu zarządzania bazą danych MySQL.

sobota, 31 grudnia 2011

Uruchamianie zewnętrznego programu

Przy okazji chciałbym złożyć wszystkim, którzy czasami zerkają na mojego bloga najserdeczniejsze życzenia noworoczne, żeby wasz kod się kompilował szybko i bezbugowo, żebyśmy w tym nowym roku dalej poszerzali swoje zainteresowania, rozwijali się, ale też znaleźli czas na zabawę w fajnym towarzystwie. Szczęśliwego i udanego Sylwestra.


Święta, święta i po świętach, jeszcze Sylwester-Nowy rok i powrót na studia. Semestr się powoli kończy, a więc studenci informatyki zaczynają pisać projekty na niektóre przedmioty. Jak się okazało, może to czasami być przyczynkiem do rozpoznania jakiegoś zagadnienia.

Moim zdaniem dość ciekawy projekt trafił się nam na Grafice Komputerowej i Multimediach. Mamy napisać własny format pliku graficznego z kompresją - wybór padł na kompresję LZW oraz dwa programy: konwertujący plik BMP na nasz format i drugi, który konwertuje w drugą stronę. Podczas dyskusji z członkami zespołu projektowego, doszliśmy do wniosku, że napiszemy to w C++ jako aplikacje konsolowe. Jeżeli starczy nam czasu, to stworzymy programy - "nakładki graficzne". Będą to programy okienkowe zapewniające przyjazny sposób wyboru paru opcji np. tryb koloru (RGB, CMYK i coś tam jeszcze ma być). Programy te będą uruchamiać programy konsolowe napisane w C++ i wybrane opcje przekazywać poprzez listę argumentów wywołania. Pomyślałem sobie, że fajnie by było takie coś napisać przy użyciu Swinga - dzięki temu usiadłem i zacząłem badać temat: Jak uruchomić z poziomu Javy program napisany w C++?

wtorek, 27 grudnia 2011

AndroidPlay - część 6: Obsługa TouchEventów

Wstęp.

Dziś już ostatnia lekcja przygotowawcza do tworzenia gry. Umiemy wystarczająco dużo, żeby wyświetlać użytkownikowi scenę naszej gry. Teraz każdy z was zapewne powie: ej chłopie, ale przecież gry to rozrywka interakcyjna, komunikacja musi zachodzić w obie strony - my umiemy powiedzieć coś użytkownikowi, ale co z nim?! Tym zajmiemy się teraz, przed nami obsługa ekranu dotykowego.