środa, maja 26, 2010

Słońce moje

czwartek, maja 20, 2010

Workaround na alteona

Alteon to sprzętowy balancer. Źle działający (źle skonfigurowany) powoduje objawy w postaci SocketException: Connection reset. Workaround to napisanie proxy poprzedzającego alteona (po ServerSocket.accept() tworzymy wątek do obsługi klienta):
BufferedInputStream bis = new BufferedInputStream(cli.getInputStream());
dst = new Socket();
dst.setKeepAlive(true);
dst.setReceiveBufferSize(1024);
dst.setSendBufferSize(1024);
dst.setReuseAddress(true);
dst.setSoLinger(true, 3000);
dst.setTcpNoDelay(true);
dst.setSoTimeout(30000);
int n = bis.read(buff);
System.out.println("---- outgoing ----");
System.out.println(new String(buff, 0, n));
dst.connect(new InetSocketAddress(dstHost, dstPort), 10000);
OutputStream os = dst.getOutputStream();
InputStream is = dst.getInputStream();
os.write(buff, 0, n);
os.flush();
Thread.sleep(10000);
int m = is.read(buff);
System.out.println("---- incoming ----");
System.out.println(new String(buff, 0, m));
cli.getOutputStream().write(buff, 0, m);
cli.close();
dst.close();
Co jest tutaj ważne? Keep-alive. Ponadto po zapisaniu całej wiadomości wychodzącej nie zamykamy strumienia wyjściowego, a przed czytaniem ze strumienia od alteona, śpimy przez kilka sekund.

Z dokumentacji: Preventing Denial of Service: Alteon Web Switches can thwart Denial of Service (DoS) attacks or TCP SYN attacks without blocking valid session requests. Through “delayed binding” Alteon Web OS intercepts client SYN requests before they reach the server. The Web Switch then responds to the client with a SYN ACK that contains embedded client information and does not allocate a session until a valid SYN ACK is received from the client or the three-way handshake is complete. By temporarily terminating each TCP connection until content has been received, Alteon Web Switches prevent the server from being inundated with SYN requests. Half-open sessions are a result of an incomplete three-way handshake between the server and client. To detect SYN attacks, Alteon Web OS enables tracking of the number of new half-open sessions over a set period of time. If the value exceeds a specified threshold, then the Alteon Web Switch triggers a trap to notify the administrator.

Oracle VirtualBox 3.2 wirtualizuje Mac OS X

Nikt do tej pory się tego nie odważył, bojąc się Apple-a (VMware próbował...). Oracle jest na tyle duży, że może sobie pozwolić na coś takiego. Chętnych na wirtualizację OS X będzie pewno wielu.



wtorek, maja 18, 2010

Jak stworzyć dobrego antywirusa



Niech dane będą zdarzenie niezależne A i B oznaczające odpowiednio prawdopodobieństwo wykrycia wirusa przez silnik A i przez silnik B. P(A+B) = P(A)+P(B)-P(A*B). Jeśli założymy wykrywalność na poziomie 90% dla każdego silnika, łącznie dostaniemy 99%. Dla wykrywalności pojedynczego silnika na poziomie 80% i 70% mamy łącznie odpowiednio 96% i 91%. Przy założeniu, że silniki są odpowiednio różne.

Patrząc wstecz na wyniki wykrywalności produktów F-Secure (silniki Kaspersky + F-Prot) i obecnie na G-Data (rumuński BitDefender + czeski Avast) oraz TrustPort (BitDefender + amerykańsko-czeski AVG) należy przyznać, że łączenie silników antywirusowych ma sens.

Dodając analizę behawioralną i bieżące monitorowanie zagrożeń przez producenta (collective intelligence/cloud computing/odsyłanie podejrzanych plików) można uzyskać wykrywalność na poziomie 99,9%.

niedziela, maja 16, 2010

Samouczek OpenUP


Samouczek Open Unified Process dla uczestników projektu.


Za pomocą narzędzia Eclipse Process Framework Composer możemy wyedytować bibliotekę metodyki, a następnie opublikować jako stronę WWW. Oprócz darmowego odpowiednika RUP-a mamy do dyspozycji eXtreme Programming i Scrum-a.

czwartek, maja 06, 2010

Volkswagen mija się z prawdą



Toyota ma lepszy kredyt: 50/50 z oprocentowaniem 0%. Jeździłem dzisiaj nowym Volkswagenem Polo VI ze starym silnikiem benzynowym 1.4 85 KM. Silnik 1.33 w Yarisie jest bardziej zrywny i cichszy. Najciekawszej wersji Polo 1.2 105 KM TSI do jazdy próbnej nie ma nigdzie w środkowo-wschodniej Polsce.

Wracając do Yarisa - można już nim wyrywać spod świateł: skrzynia w zakresie biegów 1-5 jest lepiej zestopniowana, po zmianie biegu na wyższy szybciej zaczynamy czuć przyśpieszenie w porównaniu ze starym silnikiem. Na 6-tym biegu możemy jechać z prędkością 100km/h przy 2000 obr./min i jest przyjemnie cicho (w Yarisie 1.3 robi się głośno od 3500 obr./min). W wersji wyposażeniowej 2010 razi analogowy obrotomierz i prędkościomierz - poprzedni wyświetlacz z soczewką nie wymagał zmiany akomodacji oka przy zerkaniu z drogi na prędkościomierz. Całe szczęście w standardowych wersjach Terra, Luna, Sol jest po staremu.

sobota, maja 01, 2010

HDMI rulez



Acer Aspire Timeline + Sony Bravia via HDMI. Najfajniejsze jest to, że w kablu ze złączem wielkości tego w USB, mamy razem sygnał wideo i audio.

Mazda 2 ciemna śliwka


Ciekawy kolor, fajnie wygląda w promieniach słońca. Silnik 1.3 ma 86 KM i moment obrotowy 122 Nm przy 3500 obr./min.