Wstęp

Długo zastanawiałem się nad napisaniem tego małego „how to”, ale w końcu doszedłem do wniosku, że warto. Z biegiem czasu komputery stają się coraz szybsze i szybsze… Dlatego osiąganie dużej ilości (biliony na sekundę) hashy podczas tzw. brute-force jest normalnością. Ponadto pojemne dyski (1,2,3 tb) stały się codziennością i w zupełności wystarczają, żeby trzymać na swoim HDD tablice tęczowe (ang. rainbow tables), jest to nic innego jak baza danych, przechowująca zahashowane ciągi znaków (np. md5-1-7-mixedalpha-all-space co znaczy, że tablica zawiera w sobie większość możliwych zakodowanych haseł, które zawierają od 1 do 7 znaków, małe i duże litery alfabetu (mixedalpha), znaki specjalne i spację ). Dodatkowo przy próbie „złamania” zakodowanego hasła może nam pomóc tzw. metoda słownikowa.


Programowanie

W tym tutorialu (w kodzie przykładowego programu) będziemy korzystać z funkcji hashującej md5(), ale bez problemu można zastosować tu kodowanie sha1().

Kod PHP jest wyjątkowo prosty i nie ma co go wyjaśniać (:
Wyjaśnię tylko co oznaczają ‚$2$10$’ w funkcji crypt():
$2 – informuję funkcję, że będziemy korzystać z algorytmu blowfish.
$10 – oznacza wykładnik potęgi do, której zostanie podniesiona 2 (10 => 2^10 = 1024)

Operator przypisania

Jak sama nazwa wskazuje operator ten odpowiedzialny jest za przypisanie wartości do zmiennej.

Należy napomnieć, że wartości przypisywane są ze strony prawej do lewej.


Operatory matematyczne

W C++ możemy dodawać, odejmować, mnożyć, dzielić, itp.


Inkrementacja i dekrementacja

Dla wygody programisty c plus plus przygotował dla nas tytułową inkrementację i dekrementację, które to mogą być post (po) lub pre (przed). Dzięki temu nasz kod staje się czytelniejszy i  wolny od niepotrzebnych linijek. Zastosowanie dekrementacji i inkremetacji jest bardzo proste.


Operatory logiczne

Odpowiadają matematycznej koniunkcji (i), alternatywie(lub) i negacji. Zróbmy więc małą powtórkę z liceum i zastanówmy się kiedy koniunkcja jest prawdziwa?

Pamiętasz ? (:

Koniunkcja zwraca prawdziwą wartość tylko wtedy kiedy obydwa argumenty są prawdziwe.

Teraz czas na alternatywę. Alternatywa przyjmuje wartość logiczną kiedy chociaż jeden z argumentów jest prawdziwy.

Negacja natomiast neguje wartość logiczną. Operator ! zamienia wartość true na false a false na true.


Operatory bitowe

Operatory te pozwalają nam na tzw. przesunięcia bitowe, polega ono na tym, że w systemie dwójkowym przesuwamy wszystkie cyfry binarne w lewo lub prawo o n pozycji, a bity, które nie mieszczą się są usuwane. W programowaniu takie przesunięcia wykorzystywane są dzielenia lub mnożenia przez 2.


Podsumowanie

Operatory w językach programowania są bardzo ważne i warto poświęcić kilka godzin(dni) na ich przyswojenie.

Wstęp

Do napisania programu w C Plus Plus wystarczy zwykły notatnik, ale notatnik nie skompiluje nam programu, dlatego potrzebny nam będzie jakiś kompilator. W internecie jest masa kompilatorów C++, warto sobie jakiś wygooglować , pobrać i zainstalować.


Pierwsza aplikacja

Nasz program będzie pytał użytkownika o jego imię a potem je wyświetlał. Najpierw przedstawię kod programu, a potem opiszę poszczególne jego części.


Wyjaśnienie

Na samym początku programu mamy dyrektywy :

Dyrektywa ta pobiera(wczytuje) pomocne nam deklaracje np. <iostream> który, posiada deklaracje wyjścia-wejścia na powłoce (wyświetla dane otrzymane od użytkownika).
Następnie przechodzimy do głównej funkcji naszego programu, funkcji main() :

W środku tej funkcji deklarujemy, że zmienna sImie ma być ciągiem znaków:

Wyświetlamy użytkownikowi komunikat, że chcemy poznać jego imię :

Pobieramy dane i przypisujemy je zmiennej sImie :

Na sam koniec wyświetlamy zdanie z podanym wcześniej imieniem, po czym program czeka na naciśnięcie przycisku enter i się zamyka.


Podsumowanie

C++ to wyjątkowy język programowania, któremu warto poświęcić wiele uwagi. Dzięki niemu, możemy łatwo tworzyć zarówno skomplikowane jak i proste aplikacje na różne dostępne platformy.


Kod źródłowy

Do pobrania pod tym adresem

Czym są cookies ?

Najprościej mówiąc, są to pliki , które są tworzone na naszym komputerze po tym jak nasza przeglądarka zostanie o to poproszona przez serwer. Takie plik zostaje wypełniony przez serwer odpowiednimi danymi i może być przez niego czytany i modyfikowany. Brzmi niebezpiecznie ? Troszkę tak, ale „ciasteczka” obowiązują pewne ograniczenia :

  • dostęp do ciasteczka ma tylko serwer, który je stworzył.
  • limit – liczby ciasteczek utworzonych z danej domeny i limit liczby wszystkich ciasteczek na dysku użytkownika
  • nie może być większe niż 4096 bajtów ( 4 kb ).

„Cookies” mają w sobie zakodowane datę wygaśnięcia, pozwala to przeglądarce usuwanie nie potrzebnych już ciasteczek. Są one transportowane protokołem HTTP. Mają one postać ciągów i są wysyłane przez serwer WWW w następujący sposób:

* – ścieżka domeny do, której ciasteczko jest wysyłane, tzn. jeżeli ustawimy ścieżkę na /admin/ to ciasteczko będzie wysyłane tylko do http://naszadomena.pl/admin/.


Wykorzystanie w PHP

Należy pamiętać, że kiedy tworzymy ciasteczko w php, to musimy wszystko ustawić zanim wyślemy jakiekolwiek dane do przeglądarki ( np. jakimś echo, print czy np. tagiem ).
Ustawianie ciasteczek w PHP wygląda mniej więcej w ten sposób:

Wydaje mi się, że robienie $tylkohttp true jest dobrym zagraniem, ponieważ w ten łatwy sposób ciasteczko nie może zostać odczytane przez wszystkie języki wykonywane po stronie klienta ( np. JavaScript ). Pozwala to zapobiec np. Cross-site-scripting.


Wykorzystywanie ustawionych ciasteczek

Ustawiliśmy cookie i teraz wypadało by wykorzystać jakoś zawarte w nim dane. PHP oferuję nam taką możliwość, jest nią zmienna $_COOKIE[”]. Pobieranie danych z ciasteczka jest proste, wystarczy wpisać nazwę naszego cookie w następujący sposób: [‚nasza nazwa’].


Prosty przykład

Wydaję mi się, że licznik wejść na stronę będzie świetnym przykładem dla początkującego na wykorzystanie ciasteczek w budowie witryny.

Demo licznika


Podsumowanie

Znajomość działania ciasteczek i umiejętność ich wykorzystania na pewno przyda się w przyszłej webmasterce, dlatego polecam wygooglować sobie jakieś artykuły o cookies-ach i poświęcić temu troszkę czasu. Google

Wstęp:

W tym wpisie postaram się przedstawić kilka najprostszych funkcji jQuery, mam nadzieję, że dzięki temu wpisowi, ktoś dołączy do szerokiego grona użytkowników tej biblioteki.

Podstawowe funkcje:

Jedną z podstawowych kategorii funkcji są efekty. Poniżej przedstawię działanie najpopularniejszych i najczęściej wykorzystywanych możliwości.

.animate();

Funkcja animate pozwala nam na stworzenie animacji, wykorzystując metody CSS.

$(„.przycisk”).click(function(){ }) uruchamia funkcję animate po kliknięciu w button oznaczony class-ą „przycisk”. Animate, ze względu na to, że wybrałem opcję „fast”, szybko przesunie o 15px w lewo nasz box.

Cały przykład :

Demo 1

.slideToggle();

Pozwala nam na ukrywanie widocznych elementów i pokazywanie ukrytych. Funkcja jest bardzo prosta w obsłudze. Poniżej przedstawiam bardzo proste wykorzystanie tej metody.

Demo 2

Podsumowanie:

Wszystkie możliwości biblioteki jQuery dostępne są na oficjalnej stronie jQuery. Narzędzie to jest powszechnie wykorzystywane przez webmasterów do poprawy estetyki, funkcjonalności itp. strony wykorzystując np. technologię ajax ( o której będę pisał w części II ). Warto się nim zainteresować

Do jednych z fajniejszych możliwości PHP zdecydowanie należą wyrażenia regularne ( regular expressions ). Pozwalają one na wykonanie bardzo przydatnych operacji np. porównywanie wzorca ze zdobytym ( POSTEM lub GETEM ) ciągiem.

Załóżmy więc, że mamy prosty formularz kontaktowy w którym prosimy potencjalnego użytkownika o wpisanie swojego e-maila:

Mamy nadzieje, że użytkownik wprowadzi swój adres e-mail poprawnie, ale niestety naturą ludzką są błędy, dlatego musimy to jakoś zweryfikować:


Krótkie wyjaśnienie:

  • /^ : znacznik ten oznacza początek ciągu.
  • [a-z : oznacza zakres małych liter.
  • A-Z : oznacza zakres dużych liter.
  • 0-9 : oznacza zakres od 0 do 9.
  • .-_ : oznacza możliwe napotkanie na kropkę, myślnik lub dolny podkreślnik.
  • @ : wystąpienie małpy.
  • . : wystąpienie kropki.
  • [a-z]{2,4} : zakres małych liter + {minimalna_długość, maksymalna_długość}.
  • $/D : $ – oznacza koniec wyrażenia, a /D oznacza bezwzględny koniec wyrażenia.

Lektura do poduszki: Wyrażenia Regularne

Wielu ludzi zaczynających swoją przygodę budową stron internetowych na pewno napotkają na swojej drodze wiele problemów, które dla nich będą wydawać się wyjątkowo trudne, a rozwiązanie ich jest banalnie proste. Jednym z takich problemów jest obrzydliwie wciskające się wiersze naszego tekstu pod potraktowany floatem obrazek. Jak widać nie jest to nic najładniejszego.

Załóżmy sobie taką sytuację:

Używając przepięknej funkcji overflow: hidden sprawiamy,  że tekst brzydko nie wciska się pod nasz thumbnail.