Archiwum kategorii: Materiały naukowe

Darmowy e-book.

Witaj!

Jak codziennie tak i dzisiaj na www.pucktpub.com dostępna jest kolejna darmowa książka w wersji elektronicznej.

Dzisiaj (jeszcze przez ok 2 godziny) można za darmo pobrać PDFa, ePub i Mobi z książką „Effective Python Penetration Testing”. Jeśli ktoś jest zainteresowany to polecam.
Po przeglądnięciu w/w pozycji uważam że warto 🙂

Skrócony spis treści:

Chapter 1: Python Scripting Essentials
Chapter 2: Analyzing Network Traffic with Scapy
Chapter 3: Application Fingerprinting with Python
Chapter 4: Attack Scripting with Python
Chapter 5: Fuzzing and Brute-Forcing
Chapter 6: Debugging and Reverse Engineering
Chapter 7: Crypto, Hash, and Conversion Functions
Chapter 8: Keylogging and Screen Grabbing
Chapter 9: Attack Automation
Chapter 10: Looking Forward

Boli jedynie to, że całość opisana jest w Pythonie 2.7, a nie w którejś kolejnej wersji Pythona 3.x. Cóż – nie można mieć wszystkiego. Jednak dla chcącego nic trudnego (może ciut). Zawsze można samemu opisane techniki i skrypty przełożyć na wersje 3.x, dopisać trochę treści i mieć świetne publikacje 🙂
Jeśli ktoś się spóźni na pobranie z Packt’u a chciałby tą książkę to niech pisze – podeślę.

Pozdrawiam,
Romek

 

Jaki język na początek…?

Witaj!

Też zastanawiasz się jaki język wybrać na początek? Od czego zacząć naukę, co wziąć na warsztat jako pierwsze? Nie, nie Python, nie Java, nie C#, nawet nie Perl… weź po prostu język angielski!

Boli, wiem – nie ma lekko. Sam przez niego cierpię. Młode lata gdzie wiedza i umiejętności językowe przychodzą łatwiej dawno mi odeszły. Obijanie się i lenistwo wygrały. Dziś walczę zacięcie. Mam kibiców który mi w tym pomagają, napędzają, gonią i wspierają – dziękuję wam!

Język angielski w całej strukturze IT jest bardzo ważny. Dokumentacje, tutoriale, opisy, książki itd. Wszyscy wszystko piszą po angielsku – jest to język wiodący i ważny podczas rozwoju kariery, nauki, ale też w życiu codziennym. Wyjazdy w delegacje zagraniczne, rozmowy z kontrahentami, czy chociażby wakacje za granicą. Wszędzie tam on się przydaje, otwiera nam drzwi do poznania innych, nawiązania kontaktu czy zapytania o drogę do najbliższego sklepu z jakimś jedzeniem.

Czego ja używam do nauki?

  • etutor.pl – portal z kursem języka angielskiego – płatny
  • diki.pl – podpięty pod w/w portal słownik języka angielskiego – wg mnie jeden z najlepszych
  • shebang.pl – godny polecenia, rozwijany, angielski dla programistów
  • ang.pl – darmowy serwis z całym mnóstwem słówek i wytłumaczeniem gramatyki
  • British Council – podcasty i gramatyka
  • Podcasty Diki.pl – podcasty z dołączone do słownika
  • Study English Online – kanał na YT wg mnie godny polecenia

Poza tym książką do gramatyki English Grammar in use – granatowa i bordowa – wg mnie jedne z najlepszych.
Ostatnio też przeglądam English 4 IT z wydawnictwa Helion – przystępna i godna polecenia 🙂

A Ty z czego korzystasz podczas nauki języka angielskiego?

Pozdrawiam,
Romek

 

jQuery i Ajax – pobieranie danych z bazy

Witaj!

Czas leci. Szybko. Za szybko. Ledwo tydzień się zaczął, a tu już czwartek… i to wieczór. Padło też pytanie – „A wpis na bloga już zrobiłeś?”. Zrobię…

Dziś o tym jak pobrać dane z bazy przy pomocy jQuery i Ajaxa.

Wygląda to wszystko niby prosto i przyjemnie. Proste i przyjemne jest na pewno przy dłuższej współpracy, ale zacząć z tym nie jest jakoś specjalnie trudno. Ajax ze zwykłym JavaScriptem przynosił wiele problemów i czytając wątki na forach widziałem jak ludzie rwali sobie włosy z głowy, że coś w jakiś sposób im ruszyło i działało – ale nie, nie chciało i już.
Przy jQuery sprawa wydaje się dużo prostsza.

Przydatny podczas całych manewrów będzie nam PHP (aktualnie już jest w wersji 7) – coś musi obsługiwać zapytania do bazy i zwracać w jakiś sposób pobrane elementy.

Ale do rzeczy. W jQuery mamy kilka metod służących do obsługi ajaxa. Należą do nich: $.get, $.post, $.ajax oraz $.ajax z zastosowaniem typu danych.
Dwie pierwsze, chociaż proste, nie dają pełnej kontroli nad połączeniem. Ustawić w nich możemy w jaki sposób będą przekazywane dane poprzez wybór metody (get, post), skrypt który będziemy wywoływali, dane jakie będziemy przekazywali do skryptu, a także jedną funkcję w której określić możemy co robimy z danymi gdy już do nas wrócą. Wystarczy jednak tylko odwołanie do samego skryptu który chcemy wykonać – pozostałe parametry są opcjonalne. Może to wyglądać na przykład tak:

$.get(
    "pobierz_pierwiastek.php",
    {
        masa_atomowa: "1"
    },
    function(data){
        alert("Pobrałem: " + data);
    }
);

// w przypadku metody POST wystarczy zamienić $.get na $.post - tyle wystarczy.

Metoda $.ajax pozwala nam już troszkę rozwinąć skrzydła. Co prawda podobnie jak dwie powyższe metody wymaga podania jedynie adresu URL do skryptu działającego po stronie serwera, ale mamy do dyspozycji jeszcze kilka innych atrybutów.

Type – wybieramy typ połączenia: POST lub GET. Jako domyślne jest GET.
Data – przekazywane dane w formie klucz: ‚warość’.
DataType – typ danych jaki oczekujemy. Może to być xml, html, script, json, jsnop, text oraz inne „oddzielone spacją zmienne”.
Zdarzenia – zdarzenia związane z połączeniem. Jest ich całe mnóstwo. Podstawowe do wykorzystania to success, complete i error. Więcej funkcji można znaleźć bezpośrednio w dokumentacji http://api.jquery.com/jQuery.ajax/

Przykładowy wygląd zapytania typu $.ajax wraz z ustawionym typem danych json:
(Jeśli chcemy użyć bez konkretnego typowania danych wystarczy usunąć linijkę z dataType i odpowiednio typować dane w PHP.

$.ajax({
    type : "POST",
    url : "pobierz_pierwiastek.php",
    dataType : 'json',
    data : {
        masa_atomowa : 1,
        nazwa_pierwiastka: 'Hel'
    },
    success: function(ret) {
        // Funkcja, która ma zostać wywołana, jeśli żądanie się powiedzie. 
        // Funkcja przeszukuje trzy argumenty: 
        // Dane zwrócone z serwera, sformatowane zgodnie z parametrem dataType; 
        // Ciąg opisujący status; 
        // Obiekt jqXHR (w jQuery 1.4.x, XMLHttpRequest).
    },
    complete: function() {
        // Funkcja, która ma być wywołana, gdy żądanie zostanie zakończone (po wykonaniu pomyślnego i wywołania zwrotnego błędu).
        // Funkcja pobiera dwa argumenty: obiekt jqXHR oraz ciąg klasyfikujący stan żądania ("sukces", "niezmodyfikowany", "błąd", "czas oczekiwania", "przerwanie" lub "Parsererror").
    },
    error: function(jqXHR, errorText, errorThrown) {
        // Funkcja, która ma zostać wywołana, jeśli żądanie nie powiedzie się. 
        // Funkcja odbiera trzy argumenty: obiekt jqXHR, ciąg opisujący typ błędu, który wystąpił i opcjonalny obiekt wyjątku, jeśli wystąpił. 
        // Możliwe wartości drugiego argumentu (oprócz null) to "timeout", "error", "abort" i "parsererror". 
        // Po wystąpieniu błędu HTTP errorThrown odbiera tekstową część stanu protokołu HTTP, na przykład "Nie znaleziono" lub "Błąd serwera wewnętrznego".
    }
});

Po wywołaniu powyższego zostaną do skryptu PHP przesłane metodą POST dwie zmienne, które będą dostępne odpowiednio jako:

$_POST['masa_atomowa']

$_POST['nazwa_pierwiastka']

Następnie aby dane zwracane zostały przesłane do skryptu w postaci json musimy je umieścić w tablicy i zwrócić poprzez:

<?php
    $masa_atomowa = (int)$_POST['masa_atomowa'];
    $nazwa_pierwiastka = (string)$_POST['nazwa_pierwiastka'];

    $data = array();
    $data['wynik_1'] = 'Moja masa atomowa to: ' + $masa_atomowa; //przykładowe działanie na zmiennej
    $data['wynik_2'] = 'Nazywam się: ' + $nazwa_pierwiastka;

    return json_encode($data);
?>

Aby wyciągnąć powyższe dane które zostaną przesłane przez serwer i coś z nimi zrobić, posłużymy się obsługą zdarzenia success.

success: function(json) {
    jQuery.each(json, function(i, val) {
        console.log(i, val);
    });
}

Tym oto sposobem, dane trafią do naszej konsoli, gdzie zostaną wyświetlone.

Na dzisiaj to tyle.

Pozdrawiam,
Romek

Różne źródła wiedzy. #1

Darmowa wiedza… czy istnieje?

Różne istnieją na ten temat zdania. Jedni powiedzą, że oczywiście że istnieje i wszystko w sieci można mieć za darmo, inni że absolutnie nie, za wszystko w jakiś sposób płacimy.
Można zgadzać się z jedną, drugą lub obiema grupami na raz, ale ważne jest to jak my sami do tego podchodzimy.
Ja osobiście lubię kupić coś co mogę poczytać lub obejrzeć i przynosi jakąś wartość daną, ale trafia mnie jeśli np książka którą nabyłem okazuje się pomimo dobrych ocen totalnym niewypałem. Wtedy przychodzi zastanowienie – kto wystawiał te opinie i dlaczego nie kupiłem pizzy i piwa za to… no cóż. Czasami dobrze coś zobaczyć wcześniej w sklepie i dopiero kupić lub jeśli jest dostępne za darmo, bądź prawie za darmo to z tego skorzystać.

Tym wpisem chciałbym otworzyć cykl dotyczący różnych źródeł wiedzy z których korzystam i które są darmowe, dostępne po zarejestrowaniu się, dostępne za symboliczną opłatą lub opłacane cyklicznym abonamentem, ale wg mojego uznania warte uwagi.

Darmowa lektura

Na początku zacznijmy od tego co tygryski lubią najbardziej, czyli coś co jest prawie że zupełnie za darmo (wymagana rejestracja). Packt Publishing na swojej stronie każdego dnia udostępnia inną pozycję w postaci ebooka dotyczącą przeróżnych technologi. Wchodząc na ten adres każdego dnia możemy dodać do swojej kolekcji darmowego ebooka, a następnie pobrać go do siebie w różnych dostępnych formatach. Są to dokumenty PDF, MOBI, ePUB czy wersje na czytniki Kindle.
Jedyne wymaganie jakie jest to darmowa rejestracja na stronie celem posiadania konta na którym odkładamy zdobyte przez nas publikacje celem późniejszego dostępu do nich.

Puckt Publishing nie kończy na tym niespodzianek jakie oferuje. Codziennie (przynajmniej dotychczas) na swoim fan page na FB publikuje dodatkowego posta z jeszcze jedna darmowa pozycją którą można dodać do swoich zbiorów – dlatego warto ich zalajkować i dodać do obserwowanych.
Pozycje wybierane są spośród wszystkich dostępnych w serwisie książek i muszę przyznać, że są dość interesujące i każdy znajdzie coś dla siebie. Warto chociażby co jakiś czas spojrzeć i sprawdzić czy nie jest udostępniona książka, która interesuje akurat nas lub jest z dziedziny, którą chcielibyśmy poznać a zawsze brakowało na na to czasu.

Dzisiaj dostępna „Android 5 Programming by Example”.

Polecam w/w źródło – może się komuś przydać i zachęci go do poznania czegoś nowe.

Romek