NFsec Logo

Allen B. Downey – Myśl w Pythonie

12/05/2014 w Administracja Możliwość komentowania Allen B. Downey – Myśl w Pythonie została wyłączona

T

ink Python – jest wprowadzeniem do programowania w języku Python dla początkujących. Książka zaczyna się od podstawowych koncepcji programowania oraz w logicznej kolejności stara się wyjaśnić wszystkie pojęcia z nim związane. Głębsze zagadnienia, jak rekursja oraz programowanie obiektowe podzielone są na kilka mniejszych etapów i przedstawione w ciągu kilku rozdziałów. Niektóre przykłady i ćwiczenia oparte są o napisany przez autora pakiet swampy w celu demonstracji aspektów projektowania oprogramowania oraz dania czytelnikom szansy poeksperymentowania z prostą grafiką i animacją. Książka jest darmowa i wydana na licencji CC BY-NC 3.0. Wersję PDF opartą na Pythonie 2.0 można pobrać stąd. Michael Kart z St. Edward’s University zaadoptował również ją do Pythona w wersji 3.0.

Więcej informacji: Free books from Green Tea Press

Ostrożnie z parent pidami

11/04/2014 w Administracja Możliwość komentowania Ostrożnie z parent pidami została wyłączona

Jednym z sposobów uzyskania parent pid na przykład dla serwera nginx może być proste polecenie: ps -p `pidof -s nginx` -o ppid=. Zwróci ono nam parent PID serwera nginx, który możemy dalej wykorzystać do przesłania sygnałów typu USR1, QUIT i innych… Do pewnego momentu jest to bezpieczne. Ponieważ wystarczy, że serwer nginx dostanie sygnał SIGHUP, a jego PPIDem według wymienionego polecenia nagle stanie się /sbin/init aka PID 1. Dalsze operowanie na wyniku tego polecenia (np. w skrypcie) może doprowadzić do dość drastycznych skutków: kill -INT 1 – restart systemu, kill -SEGV 1, kill -ABRT 1 – kernel panic.

Diagnostyka przepustowości łącza

03/04/2014 w Administracja Możliwość komentowania Diagnostyka przepustowości łącza została wyłączona

P

oniższe narzędzia pozwalają na pomiar maksymalnej przepustowości łącza poprzez testowanie protokołów TCP oraz UDP – funkcjonując w oparciu o architekturę klient-serwer. Podczas testów umożliwiają zmianę wielu parametrów m.in. MTU, MSS, rozmiar okna itp., jak i raportowanie różnych danych. Ze względu na architekturę wymagane jest zainstalowane programu na systemach pomiędzy, którymi ma być przeprowadzony test transmisji. Przykład użycia:
[ czytaj całość… ]

Średnie obciążenie procesora

27/03/2014 w Administracja Możliwość komentowania Średnie obciążenie procesora została wyłączona

W

iększość ludzi nie ma pojęcia, co oznacza średnie obciążenie procesora. Dla większości są to liczby reprezentujące trzy średnie wartości dla stopniowo dłuższego okresu czasu (jedna, pięć i piętnaście minut). Im niższe wartości tym lepiej. Wyższe mogą oznaczać problem lub przeciążenie maszyny. Pytanie nasuwa się samo. Jaki jest próg równowagi? Jakie są dobre, a jakie złe wartości? Kiedy powinniśmy być zaniepokojeni średnim procesora systemu, a kiedy natychmiast zająć się jego stanem?
[ czytaj całość… ]

Szczegółowe informacje dotyczące procesora

11/02/2014 w Administracja Możliwość komentowania Szczegółowe informacje dotyczące procesora została wyłączona

D

ave Jones napisał fajny program – x86info, który potrafi wyciągnąć szczegółowe informacje dotyczące procesora (TLB, rozmiar pamięci cache, rejestry, zestawy instrukcji, informacje z BIOSu). Proste wywołanie:

x86info -a 2>&1 | tee x86info.txt

Zrzuci nam wszystkie informacje do pliku x86info.txt

Więcej informacji man x86info

Zredukowanie ilości połączeń do serwerów memcache

30/01/2014 w Administracja 1 komentarz.

T

wemproxy (wymawiane “two-em-proxy”) lub nutcracker jest szybkim i lekkim proxy dla protokołów memcached (ascii) oraz redis. Został zbudowany przez programistów z firmy Twitter w celu zredukowania ilości połączeń do serwerów cache znajdujących się w backendzie. Przy dużej ilości serwerów frontowych łączność z warstwą cache lub systemem sesji za pomocą normalnej komunikacji może być bardzo kosztowny.
[ czytaj całość… ]

Kiedy URI hash load balancing zawodzi

27/01/2014 w Administracja, Debug Możliwość komentowania Kiedy URI hash load balancing zawodzi została wyłączona

Z

ałóżmy, że chcemy na naszą aplikację webową nałożyć warstwę cache w celu przyśpieszenia jej działania, zredukowania serwerów front-endowych i odciążenia back-endu. W zależności od skali ruchu sieciowego i wielkości naszej aplikacji – jeden serwer typu proxy cache czasami nie wystarczy. Przyjmijmy, że skala wymaga pięciu serwerów typu cache (wykorzystajmy Varnish’a). Bez sensu jest postawienie przed tymi serwerami urządzenia lub aplikacji do wykonywania load balancingu w trybie round robin, ponieważ spowoduje to powielanie obiektów w pamięci cache serwerów i nieoptymalne ich wykorzystanie.
[ czytaj całość… ]

Ograniczanie dostępu do MongoDB w środowisku chmury

23/12/2013 w Administracja, Bezpieczeństwo Możliwość komentowania Ograniczanie dostępu do MongoDB w środowisku chmury została wyłączona

A

ktualnie baza MongoDB (v2.4.8) nie posiada możliwości ograniczenia dostępu do wybranych adresów IP na poziomie warstwy aplikacji. Mechanizmem, który można szybko do tego wykorzystać jest netfilter. Daje się on szybko dostosować szczególnie w środowisku wirtualizacji, w którym maszyna wirtualna posiada zmienny, wewnętrzny adres IP na interfejsie eth0 – a jej zewnętrzny adres przechodzi przez mechanizm NAT.
[ czytaj całość… ]

Najszybsza metoda usunięcia 1000000 plików z katalogu

03/06/2013 w Administracja, Debug Możliwość komentowania Najszybsza metoda usunięcia 1000000 plików z katalogu została wyłączona

J

aki sposób usunięcia 1.000.000 plików (o wielkości 0 bajtów każdy) z pojedynczego katalogu jest najszybszy? Ostatnio wątek ten został poruszony na serwisie Quora. Zamiast używać popularnych poleceń typu rm + find + xargs – użytkownik Zhenyu Lee zaproponował użycie polecenia rsync z pustym katalogiem jako źródłowym.
[ czytaj całość… ]

Sprawdzanie ilości rekordów w tabeli przy pomocy information_schema

21/05/2013 w Administracja 1 komentarz.

J

eśli chcemy sprawdzić ilość rekordów w danej tabeli, a nie katować bazy (przy bardzo dużej ilości wpisów) kolejnym zapytaniem w stylu: select count(*) – możemy wykorzystać information_schema:

mysql> use information_schema;
mysql> select table_rows from tables where table_name = 'tabela';

Więcej informacji: INFORMATION_SCHEMA