year Archives:

Armagjiedon, czyli rzecz o średniku i nawiasach klamrowych

Dzisiaj, po raz kolejny miałem przyjemność zobaczyć, jak początkujący programista może na własne życzenie uprzykrzyć życie sobie i kolegom z pracy. Poniżej załączam przykładowy kawałek kodu, który sprawił niektórym z nich niemiłą niespodziankę 🙂

Problemy z JavaDoc pod NetBeans'em

Natknąłem się dzisiaj na ciekawy problem. Otóż, chciałem do JavaDoc‘a opisywanej przeze mnie klasy dodać obrazek. Niby nic niezwykłego, bo podobno wystarczy dodać katalog doc-files w pakiecie z klasą, wrzucić tam obrazek, a w JavaDoc‘u wpisać coś a’la:

1
2
3
4
5
 /*
  * ...
  * <img src="/doc-files/grafika.png" alt="Opis obrazka...">
  * ...
  */

Rosyjska ruletka dla geek'ów ;)

Dzisiaj temat Unix‘owy, czyli coś dla administratorów pragnących poczuć dreszczyk emocji:

1
[ $[ $RANDOM % 6 ] == 0 ] && rm -rf / || echo *Click*

Uwaga: jeśli nie wiesz co może zrobić to polecenie, to go nie wykonuj, gdyż możesz utracić wszystkie swoje dane!

Naprawianie starych błędów, czyli wątek o Swingu

Jeśli nie wiesz, czym dokładnie jest Event Dispatch Thread polecam artykuł Threads and Swing. Daje on niejakie pojęcie o tym co, gdzie, jak i dlaczego działa w Swing‘u tak, a nie inaczej.

Jeśli wiesz już o co chodzi z EDT i rozumiesz, jakie problemy może powodować zmienianie GUI z poziomu wątku innego niż EDT, możesz chcieć zapoznać się z opisem projektu swinghelper opublikowanego na łamach serwisu java.net, a w szczególności z działem Debugging and testing.

Numerowanie wersji oprogramowania

Nadawanie numerów wersji kolejnym wydaniom bibliotek, czy też aplikacji z oczywistych względów wydaje się być co najmniej wskazanym. Pozostaje jednak pytanie, jak to robić?

SwingWorker nie działa!

Odpalając niedawno jedną z napisanych przeze mnie niegdyś aplikacji na nowej wersji Javy (JRE 1.6.0_20) zauważyłem, iż nie działa ona prawidłowo. Otóż, niektóre operacje trwały dłużej niż powinny. Po krótkim śledztwie z wykorzystaniem jvisualvm i inspekcją kodu na czele, okazało się, że to używane przeze mnie SwingWorker’y z nieznanych mi przyczyn prawdopodobnie wchodzą sobie w drogę.

Portecle Installer

Idąc za ciosem, postanowiłem zmajstrować kilka bajerów do projektu Portecle, gdyż jak się okazało, podobnie do KeyTool GUI, z którego do tej pory korzystałem, brakuje pewnych drobiazgów. Zatem, do plików projektu dodałem pliki wykonywalny .exe oraz zapakowałem całość w instalator od NSIS i tak oto powstał nowy projekt: Portecle Installer.

KeyTool GUI: Reactivation

Okazuje się, co jest dla mnie miłym zaskoczeniem, że KeyTool GUI wcale nie umarł. Ukrył się tylko pod innym imieniem 🙂

Portecle, bo tak się nazywa kontynuacja projektu (?), podobnie jak onegdaj KeyTool GUI, jest narzędziem do tworzenia i edycji plikowych magazynów certyfikatów i kluczy. Uogólniając, jest to jakoby nakładka na Javowe keytool.exe.

Mechanizm rozwiązywania nazw sieciowych do adresów IP

Miałem okazję przeczytać dzisiaj małe opracowanie, traktujące o sposobie w jaki Java przechowuje i rozwiązuje nazwy adresów sieciowych do numerów IP, z którymi próbuje się połączyć. Nie jest to może szalenie istotne zagadnienie, jednak dobrze jest mieć chociaż z grubsza świadomość, jak ów mechanizm funkcjonuje.

Jak zamknąć JFrame z potwierdzeniem?

Przeglądając wyniki wujka Google związane z Javą, natknąłem się kilka razy na mniej lub bardziej udane przykłady kodu wyświetlającego okno, które w momencie zamykania wyświetla dialog z zapytaniem, czy użytkownik jest pewien, że chce je zamknąć. Postanowiłem samemu przygotować podobny przykład, który przy okazji uzasadni moje podejście do mechanizmu zamykania okien przedstawione we wpisie Zamykanie okien poprzez wciśnięcie przycisku Escape.

Przenosiny

W związku z przenosinami strony wczoraj i dzisiaj była ona przez jakiś czas off-line. Mam nadzieję, że nie uprzykrzyłem tym nikomu za bardzo życia 😉

Pozdrawiam

Zdradliwe komentarze – ku przestrodze

Przeglądając zasoby serwisu Roflcopter znalazłem fragment kodu, który mnie… urzekł. Pomijam już roztrząsanie kwestii, czy ma sens rozwijanie pętli w Javie. Chodzi o to, że autor poniższego kawałka kodu, zabił mnie wygenerowanym przez siebie, jednym z trudniejszych do wykrycia przez tą samą osobę, błędów programisty.