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

Mapowanie XML obiektów Java – JAXB

http://www.iconarchive.com/show/senary-icons-by-arrioch/Internet-xml-icon.html

Podczas tworzenia oprogramowania na każdym kroku mamy kontakt z danymi w formacie XML. Opiszę tutaj jeden ze sposobów konwersji danych w obie strony Java <-> XML.

Ale na początek przyjrzyjmy się źródłom słynnego już kalkulatora wyborczego. Twórcy oprogramowania wykazali się dość ciekawym podejściem w generowaniu dokumentów XML, a dokładnie wykorzystali zwykłą konkatenację „stringów”:

Nietrudno można sobie wyobrazić co byłoby w przypadku bardziej skomplikowanej struktury zawierającej wiele węzłów podrzędnych i atrybutów. Programista prawdopodobnie niejednokrotnie pomylił się podczas zamykania znaczników (choćby przez „literówki”). Taki kod jest bardzo ciężki w utrzymaniu. Poza tym dokument będzie niemożliwy do odczytu, jeśli np. zmienna this.currentLwyb.Text zawierałaby jeden ze znaków predefiniowanych w XML encji: &, <, >, „, ‚.

Jest to przykład nierzadko spotykanych złych praktyk, a poniżej przestawię bardziej eleganckie rozwiązanie w Javie.

Czytaj dalej

Wybory samorządowe 2014 – dane osób z komisji wyborczych

Pod tym adresem umieszczone  były dane pochodzące ze wszystkich obwodów wyborczych.

Wykonałem w Javie program, który pobrał informacje na temat wszystkich osób pracujących w komisjach wyborczych. Pobieranie wykonałem przeznaczając jeden wątek dla każdego województwa z krótkimi opóźnieniami dla każdego żądania http. Pobrało się ok. 30MB danych (tylko pliki xml z danymi członków komisji).

Czytaj dalej