piątek, 27 listopada 2009

Dawno temu na Wykopie...

Dawno temu (22.06.2007) na Wykopie pojawił się pewien film. Lubię do niego czasami wrócić - za każdym razem muszę się go naszukać. Dlatego dzielę się nim z Wami, a przy okazji będzie mi go łatwiej znaleźć ;)

Lip Dub - Flagpole Sitta by Harvey Danger from amandalynferri on Vimeo.


Przy okazji odkryłem OpenWRT - nie wiedziałem, że z tak małego pudełka Linksysa można wykrzesać tyle możliwości. Polecam!

wtorek, 13 października 2009

Komentowanie kodu

Jestem w trakcie lektury "Clean Code. A Handbook of Agile Software Craftsmanship". Książka zawiera ogrom wiedzy, która mogłoby się wydawać niewiele zmienia w naszym codziennym pisaniu. Jestem dopiero na jej początku (rozdział 4 - Comments), jednak już zauważyłem że na kilka spraw zaczynam spoglądać trochę inaczej.
Wszyscy, zawsze i wszędzie mówią: "komentarze muszą być wszędzie", a tu proszę:

Comments are not like Schindler's List. They are not "pure good." Indeed, comments are, at best, a necessary evil.

I dalej:

The proper use of comments is to compensate for our failure to express ourself in code. Note that I used the word failure. I meant it.


Chyba się zgodzicie, że coś w tym jest? Swoją drogą polecam książkę, a sam jestem ciekaw co dalej.

poniedziałek, 7 września 2009

Spring Security + Tomcat + Kerberos/NTLM

Jakiś czas temu wspominałem o udanym uruchomieniu autoryzacji z wykorzystaniem Kerberosa w aplikacji używającej Spring Security uruchomionej na Apache Tomcat. W tym celu wykorzystałem bibliotekę napisaną przez Dominique Guerin. Dostępna jest na tomcatspnego.codeplex.com. Na tej samej stronie znajdziecie prosty przykład współpracujący właśnie z Spring Security mojego autorstwa. W razie pytań służę pomocą.

niedziela, 6 września 2009

Moje początki z Grails

Od pewnego czasu śledziłem z zainteresowaniem wpisy Jacka Laskowskiego oraz Mateusza Mrozewskiego na temat Grails. W końcu przyszedł czas żeby samemu spojrzeć na nie z bliska :) Książkę "Begining Groovy and Grails" zmieliłem błyskawicznie. Super napisana - czyta się łatwo i przyjemnie. Do tego uwypuklone zaskakujące możliwości Grooviego oraz Grailsów przekonywały mnie, że był to dobry krok.
W końcu przyszedł czas na sprawdzenie w praktyce jak to wszystko działa. Postanowiłem przepisać na Grailsy i trochę rozbudować to co przygotowałem jakiś czas temu w PHP - http://motorowodne.zapisy.net/. Proste, a jednak pozwalające na sprawdzenie kilku rzeczy. Jestem po dłuższej chwili zabawy. Pierwsza rzecz, która mnie zatrzymała to walidator dla numeru PESEL. Skończyło się na chwilę obecną na takim kawałku kodu:


Mam wrażenie, że da się to dość mocno zwinąć. Jakieś podpowiedzi?
Kolejną rzeczą, która mi zabrała chwilę to testy jednostkowe walidatorów. Jeżeli staniecie przed tym problemem to bez lektury na temat mockForConstraintsTests nie posuniecie się dalej. To tyle na dzisiaj :)

czwartek, 6 sierpnia 2009

Kerberos. Nareszcie działa!

Ostatnio dużo czasu poświęciłem Kerberosowi. Dokładnie mówiąc celem moich prac było uruchomienie Tomcata wraz z Kerberosem w łatwy, szybki i przyjemny sposób. Po niezliczonej liczbie prób, załamań, ślepych zaułków udało mi się to uruchomić. Żeby nikt więcej nie musiał przez to przechodzić to krótko o moich doświadczeniach.
Jeżeli Tomcat pracuje na Linuksie w miarę bezproblemowo uruchomiłem Apache + mod_auth_kerb + Apache Tomcat. Mając to skonfigurowane myślałem, że jest po sprawie. Przecież Apache jest też dla Windowsa, więc przeniosę konfigurację 1:1...
Gdybym wtedy wiedział jak mocno się myliłem. Okazało się, że nikomu (albo nikt się nie pochwalił) nie udało się skompilować/uruchomić mod_auth_kerb pod Windowsem. I tu zaczęły się schody.
Na szczęście znalazłem świeżuteńki projekt tomcatspnego (autor: Dominique Guerin). O dziwo zadziało praktycznie od palca, no może z niewielkimi trudnościami.
Podsumowując, uważam że takie rozwiązanie jest (przynajmniej w moim przypadku) najlepsze:
  • serwer na Linuksie: Apache (mod_auth_kerb) + Apache Tomcat
  • serwer na Windowsie: Apache Tomcat + tomcatspnego
Mam przygotowany mały, przykładowy projekt pokazujący wykorzystanie tomcatspnego wraz ze Spring Security. Postaram się wkrótce opisać sposób konfiguracji i załączyć źródła. Będę też musiał odtworzyć procedurę konfiguracji mod_auth_kerb więc ją też z pewnością opisze. Tak więc spodziewajcie się wkrótce jeszcze dwóch postów o kerberosie :)

piątek, 31 lipca 2009

Java, wyrażenia regularne i "\"

Mamy ciąg znaków, żeby daleko nie szukać NAZWADOMENY\uzytkownik. Chcemy podzielić go względem "\". Jeżeli się wie jak to jest w miarę prosto :)
Dlaczego aż cztery "\"?
Jak pamiętamy (lub sprawdzimy w Java API) split przyjmuje jako parametr wyrażenie regularne. W wyrażeniach regularnych "\" jest znakiem "specjalnym". Dlatego:
  • \ - w Javie jest to escape character (tłumaczenia na polski nie pasują mi...)
  • \\ - mamy już naszego backslasha w wyrażeniu regularnym, ale w nim jest on właśnie escape character ;) dlatego potrzebujemy jeszcze jednego backslasha
  • \\\\ - w wyrażeniu regularnym będzie to \\ a więc \ :)
Uf...

środa, 29 lipca 2009

Przydatne narzędzia przy tworzeniu stron WWW

Natknąłem się dzisiaj na wykaz wyjątkowo ciekawych narzędzi, które się przydadzą każdemu kto od czasu do czasu musi zrobić coś większego korzystając z HTML i CSS. Te, które wydają się najbardziej przydatne z moojego punktu widzenia to:
  1. Typetester - testowanie różnych krojów i stylów tekstu. Trzy teksty obok siebie pozwalają na łatwy wybór najlepszego rozwiązania.
  2. CSS Type Set - wklejamy tekst i za pomocą wygodnego interfejsu modyfikujemy jego wygląd.
  3. HTML-ipsum - w przeciwieństwie zwykłego generatora Lorem ipsum generuje przykładowe teksty w formie: długich i krótkich akapitów, list itp. Tutaj znajdziecie wykaz innych generatorów Lorem ipsum.
Więcej narzędzi na stronie webdesigner depot. Z pewnością każdy znajdzie coś dla siebie.

niedziela, 26 lipca 2009

Mazury z dzieckiem - po urlopie

Po przerwie wróciłem turystycznie na Mazury. Dwa tygodnie na jachcie Maxus 24, który w tym miejscu chcę polecić: szybki i wygodny. Według danych może nim pływać maksymalnie 8 osób, jednak nie wyobrażam sobie tego. Po raz pierwszy wzięliśmy na pokład syna (2 lata i trochę). Trasa żeglarsko krótka (Węgorzewo - Leśna Keja (j. Boczne) - Węgorzewo), ale tym razem priorytetem była wygoda i zabawa dla dzieci.
Dla osób, które wybierają się z dziećmi chciałbym polecić dwa miejsca, które zrobiły na nas bardzo pozytywne wrażenie.
Pierwszy z nich to Ognisty Ptak. Genialny plac zabaw, tawerna którą koniecznie trzeba zobaczyć, super obsługa i dobre sanitariaty. Co najważniejsze w tym miejscu nie ma się żadnych obaw żeby dziecko biegało na bosaka, co chyba w dzisiejszych czasach jest rzadkością. Ponadto świetne zejście do wody, ratownik, oznaczone kąpielisko. Cena postoju: 15zł/jacht + 15zł/osoba dorosła. W cenie sanitariaty bez ograniczeń + 1 prysznic.


Drugie miejsce to ośrodek Stranda na wejściu do kanału Giżyckiego od strony jeziora Kisajno. Bardzo dobre jedzenie, wzorcowe sanitariaty, przyjemny plac zabaw. Koszt cumowania 20zł/jacht + 6zł/osoba dorosła. W cenie korzystanie z sanitariatów bez ograniczeń (prysznice płatne dodatkowo).


Poza tym place zabaw znaleźliśmy w Sztynorcie. W Wilkasach (AZS Wilkasy) dobre zejście do wody ale niestety śmieci, szkło, puszki na plaży nie zachęcają do zabawy. Całkowite rozczarowanie to Węgorzewo bez jakichkolwiek atrakcji dla najmłodszych oraz sanitariatami, które wyglądają tak samo jak je widziałem z 10 lat temu. Mamerki ten sam obraz, żadnego postępu. Wierzę, że kiedyś się to jednak zmieni...
Niestety urlop się skończył i czas wrócić do Javy... Przy okazji czy ma ktoś pod ręką skonfigurowane rozwiązanie Windows + Tomcat + Kerberos? Problem rozwiązałem pod Linuksem wykorzystując Apache (mod_auth_kerb) + Tomcat.

czwartek, 25 czerwca 2009

Tomcat - unieważnianie sesji podczas restartu

Unieważnianie sesji podczas restartu Tomcata mogłoby wydawać się mało istotne, ale w pewnych okolicznościach jego brak może prowadzić do zaskakujących i niechcianych efektów. Przykład?
  1. Odpalamy Tomcata,
  2. Logujemy się do aplikacji,
  3. Zatrzymujemy Tomcata,
  4. Przepinamy się na inną bazę,
  5. Odpalamy Tomcata,
  6. Otwieramy aplikację,
  7. Oooops jesteśmy zalogowani i do tego jako inny użytkownik.
Tak więc w takim przypadku dobrze jest automatycznie unieważnić wszystkie sesje podczas zatrzymywania Tomcata. Jak?

<Context docBase="...">
<Manager className="org.apache.catalina.session.StandardManager" pathname="">
</Manager>
</Context>

wtorek, 9 czerwca 2009

Kursy motorowodne - lato, jesień

Dziś trochę inaczej. Jeżeli chcecie oderwać się od komputera, zdobyć nowe uprawnienia to zapraszam na kursy na patent sternika motorowodnego oraz starszego sternika motorowodnego. Plan kursu, informacje oraz możliwość zapisania się na http://motorowodne.zapisy.net/