sobota, sierpnia 24, 2013

Radio Maryja






























piątek, sierpnia 23, 2013

Niebo nad morzem

20 procent

O ile w Sejmie Gowina popiera ze 2%, to wśród szeregowych członków aż 20%. Co to oznacza? Że Tusk nie rozumie dołów, establishment u władzy rozmija się z regionami. 20% to wygrana Gowina, nikt chyba nie spodziewał się poparcia na takim poziomie. Tusk zobaczył, że za Gowinem jest sporo więcej ludzi niż pojedyncze niedobitki i nie da się go tak łatwo usunąć z PO, bez strat dla partii.

środa, sierpnia 21, 2013

Białogóra

Nasze morze

Na koloniach

Proszę pana, a ja się nauczyłem robić dobrze dziewczynie portfelem.

wtorek, sierpnia 20, 2013

Najsmaczniejszy halibut w Helu

Między Karwią a Władysławowem

Jezioro Żarnowieckie

Telefonia komórkowa nad morzem

W praktyce należałoby mieć komórkę dual-sim (Play + roaming, T-Mobile). W wielu miejscach brakuje zasięgu bądź liczba turystów przekracza pojemność BSS (wymiarowanie robi się w cyklach półrocznych i jeśli decyzje podejmuje się patrząc na średnie długoterminowe a nie piki to turyści na tym ucierpią). Stacje bazowe ulokowane są często przy radiolatarniach. HSPA różowych odłącza klienta po ok. 100MB. Przy swapach sieci nowy sprzęt musi dobrze obsługiwać 3.5G a starsze standardy może tak sobie, więc realne pokrycie 2G może maleć w kolejnych latach.

Starter T-Mobile trzeba przycinać nożyczkami, żeby sim zmieścił się w S3.

Odcienie szarości

Karą jaką ponosi mędrzec odrzucający uczestnictwo w rządach, to życie pod rządami gorszych od siebie - Platon [sentencja z opakowania cukru].

Monika Olejnik [przepytując jednokrotnego posła]: Panie profesorze, po co to panu było?
Prof. Paweł Śpiewak: Nie wiem. Naprawdę nie wiem.

czwartek, sierpnia 15, 2013

XML digest in a few lines

com.sun.org.apache.xml.internal.security.c14n.implementations.Canonicalizer11_OmitComments c =
new com.sun.org.apache.xml.internal.security.c14n.implementations.Canonicalizer11_OmitComments();
java.security.MessageDigest md = java.security.MessageDigest.getInstance("SHA1");
md.reset();
md.update(c.engineCanonicalize(xml.getBytes()));
StringBuilder sb = new StringBuilder();
for (byte b : md.digest())
sb.append( String.format("%02x", b) );
digest = sb.toString();

wtorek, sierpnia 13, 2013

Tibco EMS is a real Enterprise solution

EMS 8.0 was tested on RHEL 6.4 using 80 Java concurrent clients sending messages to queue non-stop with time measurement after 1000 messages. Hardware platform was HP ProLiant BL460c Gen8 enterprise class server with 32 Intel Xeon E5-2650 cores clocked at 2GHz with 256KB cache L2 per core and 20MB cache L3 total per 8 cores (64 threads), 64 GB RAM DDR3 1333 MHz, Smart Array P220i Storage Controller with Flash Backed Write Cache (with battery backup), 10Gbps Ethernet.

EMS was tested using locally installed Oracle 12c database as a db storage and local GFS2 volume replicated over DRBD to another node - used as a file storage. Test were performed from host of passive node against active node with TCP/IP packet Round Trip Time 0.1/3ms and 0/10ms for DRBD inter-DC setup.

Test results resemble 0-1 digital signal what can be explained by allocation of new extents for Oracle DB tablespace.

Added RTT 3ms doesn't have visible influence on results so it can be understood that DB operations are major time component.

Visible jitter can be explained as internal overhead of GFS2.


Visible outlier is a result of changing RTT to default (0.1/0.1 ms) and then back to 3 / 10 ms.

EMS FS results can be improved via tuning deadline I/O scheduler and disabling storage flushes and barriers (FBWC has a battery!).

HornetQ 2.3 results have hardly visible sin^2 trend - probably thanks to JNI and kernel AIO.

Results may contain "grow and cut" GC pattern.

HornetQ results heavily depend on network performance so there is a room for ACK protocol optimization.

poniedziałek, sierpnia 12, 2013

Ciekawe aranżacje mieszkania

Ciekawie zaprojektowane szafki otwarte z grubym blatem, który może występować niejako samodzielnie (łączy ćwiartki modułów).  Ciepłe i delikatne kolory oraz wysoka funkcjonalność sprawiają, że kuchnia staje się miejscem przytulnym, w którym chce się przebywać.

Różne wysokości modułów pozwalają zerwać z monolityczną formą i wizualnie uatrakcyjnić kuchnię.

Dobrze wkomponowany piekarnik i okap. Ten ostatni wygląda jak podniesiona srebrna szafka i wprowadza przerywnik w liniowości tej kuchni. Poziome uchwyty od frontów dolnych szafek współgrają z pionowymi od szafek górnych. Srebrny kolor dobrze komponuje się z bielą i odcieniami szarości. Bordowa linia subtelnie ożywania kuchnię. Gdyby wszystkie szafki miały szerokość 60 cm dałoby się ich zmieścić 4, dzięki zastosowaniu trzech szafek 45 cm mamy nadal 4 szafki i jeszcze okap (razem 255 cm).

Szklane panele do kuchni. Ładny obrazek pokryty hartowanym szkłem jest łatwy w utrzymaniu czystości.

Szuflady i poziomo umieszczone szafki mają sprawić, że ten fragment kuchni ma się wydawać krótszy niż jest w rzeczywistości. W szerokich szufladach da się łatwiej znajdować przedmioty, bo takie proporcje zniechęcają do wielowarstwowego układania. Mocny zielony kolor ściany wyrywa kuchnię z szarego letargu. Na wprost układ mebli ma 220 cm.

Dwukolorowe fronty sprawiają, że mimo dużej powierzchni użytkowej szafek wizualnie nie jest nudno, zwłaszcza w słupku z piekarnikiem lub lodówką - dobrze że oba sprzęty zostały maksymalnie od siebie odsunięte. Dodatkowo jest elegancko, także dzięki połyskowi. Biały kolor stołu sprawia, że w tej kuchni jest na niego miejsce. Na wprost układ mebli ma 255 cm.

Bardzo delikatna w odbiorze kuchnia. Drewnopodobna okładzina blatu pasuje do paneli. Agresywnie spożytkowane 225 cm, bo składają się na nie lodówka i kuchenka oraz delikatny w formie okap. Szafki otwarte pozwalają uniknąć wizualnego przytłoczenia meblami. Zakręcający blat pozwala na stworzenie miejsca do spożywania posiłków dla dwóch osób, jest także wygodnym miejscem do pracy.

Barowy stołek to małe miejsce dowodzenia - blisko do zlewu, szuflad, górnych szafek a do tego spora i wygodna powierzchnia blatu - tu można pokroić warzywa i zrobić pierogi.

Rysunek na panelu kuchennym bardzo dobrze współgra z blatem i zlewozmywakiem.

Najczęściej używane w kuchni są kubki i szklanki -  mogą najzwyczajniej w świecie stać na wierzchu, a nie zamknięte w szafce.

Dwukolorowa kuchnia. Mocny kolor z powodzeniem ukrywa lodówkę. Mały pasek koloru na froncie poziomej szafki to jest to - kuchnia jest elegancka, ale nie taka zupełnie grzeczna. Poza tym dzięki temu zabiegowi front może być jasny.

Kuchnia urzeka minimalistyczną formą. Elegancki połyskliwy fiolet jest obramowany jasnym matowym drewnem. Daliśmy się na tyle oczarować, że prawie zapomnieliśmy o tym, że w kuchni potrzebne są kuchenka i okap.

Nowoczesne meble bez oddzielnych uchwytów szafek i z matowym szkłem. Biały zlew sprawia wrażenie ekskluzywności - to nie jest zwykła kuchnia. Okap jest jednak zbyt rozbudowany, a przez to toporny.

Poziome przetłoczenia na meblach sprawiają wrażenie uporządkowania.

Piekarnik wcale nie musi być ulokowany w pionowym słupku sięgającym sufitu. Tutaj ucięcie mebli może stanowić funkcjonalną półkę.

Sympatyczna łazienka dla młodych duchem z ciekawym lustrem-szafką oraz funkcjonalną szufladą pod umywalką.

Maksymalne wykorzystanie powierzchni łazienki. Żółty pomarańczowy otula a zielony trochę ożywia.

Panel podłogowy Classen Dąb Hartley i blat piaskowiec - są w podobnej tonacji kolorystycznej, dzięki czemu salon i aneks kuchenny mają szansę stanowić subtelną harmonijną całość.

Płyta kuchenna z cytryną pasuje do blatu udającego piaskowiec - połączenie ma być delikatne.

piątek, sierpnia 02, 2013

Tweaked DRBD

resource ems-store-01 {
    startup {
      become-primary-on both;
    }
    net {
      protocol C;
      allow-two-primaries yes;
      verify-alg sha1;
      data-integrity-alg sha1;
      csums-alg md5;

      connect-int 20;
      ping-int 15;
      timeout 100;
      cram-hmac-alg sha1;
      shared-secret passw0rd;

      max-buffers 8000;
      max-epoch-size 8000;

      after-sb-0pri discard-zero-changes;
      after-sb-1pri consensus;
      after-sb-2pri disconnect;
    }
    disk {
      on-io-error pass_on;
      fencing dont-care;
      al-extents 6000;
    }
    ...
}

scheduler = deadline, front_merges = 0, read_expire = 150, write_expire = 1500

środa, lipca 31, 2013

No protocol specified, Could not initialize class sun.awt.X11.XToolkit [Oracle install via VNC]

Do not run vncserver as a root, a don't do 'su oracle'. Start VNC sever as a plain user, start runInstaller within his VNC session.

wtorek, lipca 30, 2013

Simulate long distance data center connection

[root@eai-node-01 ~]# modprobe sch_netem; tc qdisc add dev bond0 root netem delay 10ms  5ms 25%
[root@eai-node-01 ~]# ping eai-node-02.local
PING eai-node-02.local (192.168.100.202) 56(84) bytes of data.
64 bytes from eai-node-02.local (192.168.100.202): icmp_seq=1 ttl=64 time=14.5 ms
64 bytes from eai-node-02.local (192.168.100.202): icmp_seq=2 ttl=64 time=11.6 ms
64 bytes from eai-node-02.local (192.168.100.202): icmp_seq=3 ttl=64 time=9.37 ms
64 bytes from eai-node-02.local (192.168.100.202): icmp_seq=4 ttl=64 time=14.5 ms
64 bytes from eai-node-02.local (192.168.100.202): icmp_seq=5 ttl=64 time=14.8 ms
64 bytes from eai-node-02.local (192.168.100.202): icmp_seq=6 ttl=64 time=14.0 ms
64 bytes from eai-node-02.local (192.168.100.202): icmp_seq=7 ttl=64 time=13.9 ms
64 bytes from eai-node-02.local (192.168.100.202): icmp_seq=8 ttl=64 time=11.7 ms
64 bytes from eai-node-02.local (192.168.100.202): icmp_seq=9 ttl=64 time=11.3 ms
64 bytes from eai-node-02.local (192.168.100.202): icmp_seq=10 ttl=64 time=10.1 ms
64 bytes from eai-node-02.local (192.168.100.202): icmp_seq=11 ttl=64 time=7.36 ms
64 bytes from eai-node-02.local (192.168.100.202): icmp_seq=12 ttl=64 time=6.50 ms
64 bytes from eai-node-02.local (192.168.100.202): icmp_seq=13 ttl=64 time=7.04 ms
64 bytes from eai-node-02.local (192.168.100.202): icmp_seq=14 ttl=64 time=9.13 ms
64 bytes from eai-node-02.local (192.168.100.202): icmp_seq=15 ttl=64 time=14.0 ms
64 bytes from eai-node-02.local (192.168.100.202): icmp_seq=16 ttl=64 time=9.01 ms
64 bytes from eai-node-02.local (192.168.100.202): icmp_seq=17 ttl=64 time=6.72 ms
64 bytes from eai-node-02.local (192.168.100.202): icmp_seq=18 ttl=64 time=9.01 ms
64 bytes from eai-node-02.local (192.168.100.202): icmp_seq=19 ttl=64 time=9.53 ms
^C
--- eai-node-02.local ping statistics ---
53 packets transmitted, 53 received, 0% packet loss, time 52133ms
rtt min/avg/max/mdev = 5.188/10.388/14.837/2.724 ms
[root@eai-node-01 ~]# tc qdisc del root dev bond0
[root@eai-node-01 ~]# tc qdisc
qdisc mq 0: dev eth0 root
qdisc mq 0: dev eth1 root
[root@eai-node-01 ~]# ping eai-node-02.local
PING eai-node-02.local (192.168.100.202) 56(84) bytes of data.
64 bytes from eai-node-02.local (192.168.100.202): icmp_seq=1 ttl=64 time=0.161 ms
64 bytes from eai-node-02.local (192.168.100.202): icmp_seq=2 ttl=64 time=0.172 ms
64 bytes from eai-node-02.local (192.168.100.202): icmp_seq=3 ttl=64 time=0.139 ms
64 bytes from eai-node-02.local (192.168.100.202): icmp_seq=4 ttl=64 time=0.145 ms
64 bytes from eai-node-02.local (192.168.100.202): icmp_seq=5 ttl=64 time=0.162 ms
64 bytes from eai-node-02.local (192.168.100.202): icmp_seq=6 ttl=64 time=0.133 ms
^C
--- eai-node-02.local ping statistics ---
6 packets transmitted, 6 received, 0% packet loss, time 5983ms
rtt min/avg/max/mdev = 0.133/0.152/0.172/0.013 ms


[root@eai-node-01 ~]# tc qdisc add dev bond0 root netem loss 30% 25%
[root@eai-node-01 ~]# ping eai-node-02.local
PING eai-node-02.local (192.168.100.202) 56(84) bytes of data.
64 bytes from eai-node-02.local (192.168.100.202): icmp_seq=1 ttl=64 time=0.157 ms
64 bytes from eai-node-02.local (192.168.100.202): icmp_seq=2 ttl=64 time=0.138 ms
64 bytes from eai-node-02.local (192.168.100.202): icmp_seq=3 ttl=64 time=0.204 ms
64 bytes from eai-node-02.local (192.168.100.202): icmp_seq=4 ttl=64 time=0.174 ms

[root@eai-node-01 ~]# tc qdisc del root dev bond0
[root@eai-node-01 ~]# tc qdisc add dev bond0 root netem delay 10ms reorder 25% 50%
[root@eai-node-01 ~]# ping eai-node-02.local
PING eai-node-02.local (192.168.100.202) 56(84) bytes of data.
64 bytes from eai-node-02.local (192.168.100.202): icmp_seq=1 ttl=64 time=10.2 ms
64 bytes from eai-node-02.local (192.168.100.202): icmp_seq=2 ttl=64 time=10.2 ms
64 bytes from eai-node-02.local (192.168.100.202): icmp_seq=3 ttl=64 time=0.153 ms
64 bytes from eai-node-02.local (192.168.100.202): icmp_seq=4 ttl=64 time=10.1 ms
64 bytes from eai-node-02.local (192.168.100.202): icmp_seq=5 ttl=64 time=7.88 ms
64 bytes from eai-node-02.local (192.168.100.202): icmp_seq=6 ttl=64 time=10.1 ms
64 bytes from eai-node-02.local (192.168.100.202): icmp_seq=7 ttl=64 time=10.2 ms

[root@eai-node-02 ~]# modprobe ifb
[root@eai-node-02 ~]# ip link set dev ifb0 up
[root@eai-node-02 ~]# tc qdisc add dev bond0 ingress
[root@eai-node-02 ~]# tc filter add dev bond0 parent ffff: protocol ip u32 match ip dport 7789 0xffff flowid 1:1 action mirred egress redirect dev ifb0
Action 4 device ifb0 ifindex 5
[root@eai-node-02 ~]# tc qdisc add dev ifb0 root netem delay 7ms

poniedziałek, lipca 29, 2013

Tune OS for GlusterFS


Jak na RHEL6 zainstalować Btrfs od Oracle-a

#[root@eai-node-02 /]# cd /etc/yum.repos.d
#[root@eai-node-02 /]# wget https://public-yum.oracle.com/public-yum-ol6.repo
#[root@eai-node-02 yum.repos.d]# yum --nogpgcheck --disablerepo=* --enablerepo=ol6_UEK_latest install kernel-uek
#[root@eai-node-02 yum.repos.d]# yum --nogpgcheck --disablerepo=* --enablerepo=ol6_UEK_latest install btrfs-progs

piątek, lipca 19, 2013

Skuteczny monitoring EAI

  • logi błędów przetwarzane są automatycznie i na ich podstawie generowane są alerty (mail, sms)
  • alert zawiera link do dokumentacji komponentowej (jeśli w bazie reguł nie ma poprawnego linku, problem 'za karę' obsługuje przełożony utrzymania)
  • dokumentacja komponentowa to jeden dokument MS Word/Open Document, w którym można zrobić Ctrl+F po znaczącej frazie z alertu i w ten sposób zobaczyć znane problemy i obejścia
  • dokumentacja komponentowa zawiera miesięczny grafik wsparcia: osoba obsługująca + osoba zapasowa (jeśli wpisy nie są poprawne, problem 'za karę' obsługuje przełożony utrzymania)
  • monitoring i wsparcie powinno opierać się na wyuczonych, ustandaryzowanych, procesowych procedurach postępowania