Szkolenie i wychowanie psa - polecam książkę

Dobrych dziesięć lat temu, gdy w moje ręce trafił owczarek niemiecki, zakupiłem książkę Antoniego Brzezichy - Twó przyjaciel pies. Wychowanie i szkolenie uzytkowo-obronne
Książka genialna, bo zawiera mnóstwo przykładów szkolenia, począwszy od tych najprostszych jak siad, waruj, łapa, po wykrywanie śladów i zachowanie obronne. Antoni Brzezicha to były wieloletni Przewodniczący Głównej Komisji Szkolenia Psów oraz międzynarodowy sędzia kynologiczny[[1]. Jeśli masz młodego psa i chcesz go nauczyć i wychować, ta książka Ci w tym pomoże.

Ja mojego psa nauczyłem m.in. skrętu w lewo lub prawo na polecenie :).

SeleniumTestCase

Yesterday, when I wanted to use phunit on my kubuntu machine, I got problems.

This is what I learned from yesterday:
If you get an error about SeleniumTestCase.php file, check if this file is already in
/usr/share/php/PHPUnit/Extensions (my case kubuntu 11.04).
If not, try following:

pear uninstall phpunit/PHPUnit
pear uninstall phpunit/PHPUnitSelenium
pear install phpunit/PHPUnit
pear install phpunit/PHPUnit
Selenium

This solution has been posted by farinspace on stackoverflow.com

Kopia gmaila na własnym dysku

Jeśli chcesz zrobić kopię gmaila na własnym dysku, polecam wpis na:
http://www.mattcutts.com/blog/backup-gmail-in-linux-with-getmail/

Polski dvorak z niemieckimi i hiszpańskimi literami


xkbsymbols "dvorakmod" {
include "us(dvorak)"

name[Group1] = "Poland - Dvorak, with German characters";

key { [ 1, exclam, onesuperior, exclamdown ] };

key <AD02> { [      comma,  less, adiaeresis, Adiaeresis  ] };
key <AD03> { [      period, greater, odiaeresis, Odiaeresis  ]  };
key <AD08> { [      c,  C,  cacute, Cacute    ] };
key <AD10> { [      l,  L,     lstroke, Lstroke   ] };
key <AD11> { [      slash,  question, questiondown, questiondown        ]       };
key <AC01> { [      a,  A,     aogonek, Aogonek   ] };
key <AC02> { [      o,  O,      oacute, Oacute    ] };
key <AC03> { [      e,  E,     eogonek, Eogonek   ] };
key <AC04> { [      u,  U,  udiaeresis, Udiaeresis  ] };
key <AC05> { [      i,  I,  ssharp, EuroSign  ] };
key <AC09> { [      n,  N,      nacute, ntilde    ] };
key <AC10> { [      s,  S,      sacute, Sacute    ] };
key <AB09> { [      v,  V,      zacute, Zacute    ] };
key <AB10> { [      z,  Z,   zabovedot, Zabovedot ] };

include "kpdl(comma)"

// this to allow writing ALL CAPS with a Shift key
include "level3(ralt_switch)"

// use one of compose:* options to choose Multi_key, if you will,
// or layout +level3(ralt_switch_multikey) to revert standard behaviour

};

W Kubuntu dodajemy ten kod do pliku
/usr/share/X11/xkb/symbols/pl
a informację o nazwie layoutu także do pliku
/usr/share/X11/xkb/rules/evdev.xml

Czy jest szansa na nowy wykop w Polsce?

W Internecie słychać wiele głosów niezadowolenia z nowego wykopu.
Jego użytkownicy uskarżają się na wady funkcjonalne.
Wielu osobom nie odpowiada też nowy layout strony, w porównaniu do starego
jest on mniej wyraźny.

Czy wobec tego nie jest to dobra okazja na uruchomienie konkurencyjnego serwisu,
ze starym layoutem?

Czytaj dalej...

Nawigacja po kartach w Firefoksie kuleje.

Gdy korzystam z Firefoksa, to nie kontroluję, ile kart mam otwartych. W tej chwili jest ich ponad 70. Firefox działa stabilnie przy takiej ilości otwartych kart.

Co mnie irytuje, to zarządzanie taką ilością kart.
Dostępne skróty do nawigacji po kartach Alt+[1..8] i Alt+9, Ctrl+PageUpCtrl+PageDown przydają mi się jedynie, gdy mam otwartych do 10 kart, a nie ponad 70.
Istnieje jeszcze opcja "Pokaż wszystkie karty". Niestety nie ma skrótu klawiszowego, który by ją aktywował. Tak więc przyzwyczajony do klawiatury muszę ruszyć mysz, by wyświetlić listę wszystkich kart. Dlaczego?

Wygodniej gdyby istniał skrót, który pokazuję tę listę. Najprostszą możliwością nawigacji po byłyby klawisze góra, dół i klawisze przewijania strony . Ulepszeniem jest oznaczenie każdej kolejnej karty na liście następną liczbą naturalną i wybór karty poprzez wytypowanie jej numeru i potwierdzenie enterem. A gdybym mógł ograniczyć wyświetlanie kart do tylko tych, które w tytule strony zawierają podaną przeze mnie frazę - analogicznie do rozwiązania z klippera - to byłoby wspaniale.

A czy Wam obecnie dostępne rozwiązania odpowiadają? Gdyby istniało rozszerzenie spełniające powyższe sugestie, to korzystalibyście z niego? A może znacie inne sposoby na nawigację po kartach w Firefoksie? Zapraszam do podzielenia się sugestiami w komentarzach.

Dysk twardy "na żądanie"

Czy masz więcej niż jeden dysk twardy?
Czy potrzebujesz korzystać ze wszystkich jednocześnie?
Jeśli nie, lub się wahasz - czytaj dalej.

Moja idea jest następująca:

Dysk powinien pracować tylko wtedy, gdy chcemy z niego korzystać.

Dyski się psują, psują się tym częściej im dłużej się ich używa.

Edycja
To nie jest prawda. Zużycie dysku powoduje także parkowanie głowic, wykonywane przy włączaniu/wyłączaniu dysku. Warto zapoznać się z raportem Google, o którym wspomina _noname w komentarzu 7. Raport Google (pdf) Dzięki komentarzom uzmysłowiłem sobie, że to rozwiązanie nie byłoby tak dobre, jak początkowo przypuszczałem. /Edycja

Czytaj dalej...

Korespondencje mailowe - Reply to all - kiedy i jak stosować

Podczas pracy zespołowej często adresujemy jednego maila to kilku odbiorców jednocześnie. Następnie inni poprzez "Reply to all" odpowiadają.

Irytuje mnie, gdy jeden z odbiorców w wątku używanym dla całej grupy, gdzie używane jest "Reply to all" adresuje wiadomość tylko do mnie.

Ostatni przykład: pytam użytkowników - studentów, którzy będą ze wspólnie pracować nad projektem, by podali swoje loginy na pewnym hoście. I każdy adresuje odpowiedź z loginem tylko do mnie. Hm, czyżby login był aż tak poufną informacją, że nikt inni nie może go znać? A dlaczego warto by był wysyłany do wszystkich.

  • Niektórzy użytkownicy, widząc, że nikt nie jeszcze nie dał odpowiedzi, zwlekają. Gdy zobaczą, że inni zaczęli odpowiadać, to oni też się pofatygują
  • W przyszłości inni użytkownik będzie potrzebować loginu, informacje wtedy może sobie znaleźć w historii korespondencji
  • Bo ja nie mam syfu w korespondencji i nie muszę się zastanawiać, które wiadomości były adresowane tylko do mnie, a które do wszystkich


Jeśli ktoś chce rozdzielić korespondencję z wątku przeznaczonego do wszystkich, do chyba najlepszym rozwiązaniem jest rozpoczęcie nowej korespondencji.

obiekty java.util.HashSet zapisane w kolumnach mysql - jak to zrobić?

Chcę zapisać obiekty będące instancjami java.util.HashSet do jednej kolumny i później je odczytać.

To co znalazłem w Inernecie z http://blog.tremend.ro/2007/02/15/untitledserializable-java-objects-in-mysql/
opiera się na zapisie wartości do bazy danych:
Edit: znalazłem problem, dlaczego poniższy kod nie działał prawidłowo. Z kodu wziętego z podanej strony pominąłem zamknięcie strumienia out przed transformacją obiektu do postaci tablicy bajtów. Pogrubionym krojem wskazane są skrawki kodu, które pominąłem. Teraz wszystko śmiga tak jak powinno :D
ByteArrayOutputStream baos;
ObjectOutputStream out;
baos = new ByteArrayOutputStream();

    try {

    out = new ObjectOutputStream(baos);

    out.writeObject(hashSetObject);
    out.close();
    byte [] hashSetObjectAsBytes = baos.toByteArray();

    stmt.setBytes(2, hashSetObjectAsBytes);
    stmt.executeUpdate();
    }


i ich ponownym odczytaniu:

result.next();
ByteArrayInputStream bais;
ObjectInputStream in;

        bais = new ByteArrayInputStream(result.getBytes(columnIndex));
        in = new ObjectInputStream(bais);

        Set<SpecificObject> set = (HashSet<RevisionLabel>) in.readObject();

Przy wykonywaniu programu, gdzie wartości najpierw są dodawane do bazy mysql a później odczytywane, dostaję jednak błąd:
Caused by: java.io.StreamCorruptedException: invalid stream header: 73720011
at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:783)
at java.io.ObjectInputStream.(ObjectInputStream.java:280)

dla lini in = new ObjectInputStream(bais);

Czy ktoś z Was wie jaka jest tego przyczyna?
Dodam, że kolumna w bazie danych mysql, w której zapisywane są obiekty jest typu longblob, a klasa obiektów, które zawiera HashSet nie implementuje interfejsu Serializable. a klasa bazowa klasy obiektów, które zawiera HashSet implementuje interfejs Serializable

Nie bójcie się zaproponować zupełnie innego rozwiązania :)

Mysql - show profiling i information_schema.profiles - zadanie

Droga społeczności joggera,

możesz przejść od razu do ostatniego akapitu, tam pogrubiony stoi moje pytanie, lub też przeczytać wstęp.

mam takie zadanie do wykonania: W programie napisanym w javie jest kilka preparedStatements, które są egzekutowane określoną ilość razy.

Chcemy znać średni czas i sumę czasu egzekucji dla każdego preparedStatement. W tym celu przed i po każdym Statement umieściłem licznik używający ThreadMXBean.getCurrentThreadCpuTime() i różnicę w wartościach przyjmuję jako czas wykonywania jednego preparedStatement.

OK. To mamy. Ale nadal nie wiem jaka część wykonania zapytania jest przeznaczona na przesył do bazy danych, a jaka to koszt operacji wykonywanej po stronie bazy danych (mysql).
Teraz sobie uzmysłowiłem, że ThreadMXBean.getCurrentThreadCpuTime() chyba nawet nie weźmie pod uwagę czasu procesora z procesu serwera mysql.
Dlatego chcę skorzystać z innego rozwiązania, a jest nim opcja 'profiling' dostępna od którejś wersji mysql5.0.

Czytaj dalej...