Szybki i lekki kurs dla początkujących pod tytułem: AJAX w jQuery. Innymi słowy, jak przy pomocy tej biblioteki załadować dynamiczną treść bez przeładowania strony.
Wszystko czego będziemy potrzebować to biblioteka jQuery, dobre chęci oraz szczypta zapału. Przechodzimy na stronę jquery.com i pobieramy najnowszą wersję skryptu.
Ja na potrzeby tego wpisu stworzyłem sobie dwa pliki, pierwszy będący główną stroną która będzie korzystać z techniki AJAX, oraz drugą zawierającą ładowane treści – obie jako skrypty PHP, aby nie było zbyt nudno. Ok, przechodzimy do działania.
Czytaj więcej…
Dlaczego klasyka? Gdyż to chyba jeden z najpopularniejszych skryptów o jakich myśli każdy początkujący programista PHP. Fakt faktem, że przy dzisiejszych usługach typu Google Analytics jest to mało komfortowe rozwiązanie i nie dostarcza wielu informacji, nie mniej na pewno dużo satysfakcji
.
Bez zbędnego przedłużania przechodzimy do sedna sprawy. Nasz licznik będzie maksymalnie uproszczony – będzie zliczał każde przeładowanie strony. Aby zbytnio się nie napracować skorzystamy z funkcji file_get_contents oraz file_put_contents do przechowania aktualnego stanu licznika w pliku.
Czytaj więcej…
Turbo Delphi Explorer to świetne środowisko dla obiektowego Pascala, niestety jako darmowa edycja ma zablokowaną możliwość instalowania dodatkowych komponentów. Postaram się pokazać jak mimo tego ograniczenia skorzystać z zewnętrznego kawałka kodu.
Metoda opiera się na dynamicznym tworzeniu instancji komponentu, zatem jest ona zgodna z licencją i nie narusza jej w żaden sposób. Oczywiście niesie to za sobą pewne niedogodności i nie zawsze może być stosowane, jednak w znakomitej większości przypadków tak.
Czytaj więcej…
Trudno wymyślić sensowny tytuł dla zagadnienia które chcę opisać. Zawsze zastanawiało mnie czy pisząc w PHP funkcję która początkowo przeprowadza walidację przekazanych argumentów, stosować konstrukcję typu:
function nazwa($argument)
{
if (warunek)
{
return FALSE;
}
... ciało funkcji
}
…czy też:
function nazwa($argument)
{
if (warunek)
{
return FALSE;
}
else
{
... ciało funkcji
}
}
Intuicyjnie może się wydawać że pierwszy metoda będzie działać szybciej, gdyż po spełnieniu warunku wychodzimy od razu z funkcji – parser nie musi przetwarzać reszty kodu. Z kolei w drugiej, mimo iż to co znajduje się w bloku else się nie wykona i tak musi zostać przeczytane przez PHP. Jak jest w rzeczywistości? Sprawdźmy to!
Czytaj więcej…
To pytanie często widuję na różnorakich forach internetowych poświęconych programowaniu. Osoby, które dopiero zaczynają przygodę z programowaniem, zastanawiają się od jakiego języka zacząć.
Moim skromnym zdaniem sam język nie jest tutaj najważniejszy. To co czyni z kogoś programistę to umiejętność twórczego myślenia i przekształcania problemu do postaci algorytmu. Innymi słowy, jeśli chcemy napisać program rozwiązujący pewne zagadnienie, to już po jego usłyszeniu powinny nam w głowie powstawać myśli typu „tam wstawię pętle, tam warunek, tutaj użyję tablicy…” itd. Miałem okazję uczyć kilka początkujących osób i zawsze z tym osoby te miały największy problem. O ile składnia języka była dla nich jasna, to trudności nastarczał właśnie ten typowo programistyczny tok myślenia.
Zatem czy początkowy język programowania nie ma w ogóle znaczenia?
Czytaj więcej…
Podczas tworzenia kilku z moich niedawnych projektów, wykorzystujących Allegro WebAPI, mogę śmiało powiedzieć że jest to najgorsze API jakie przyszło mi wykorzystywać.
Co to jest WebAPI? Jest to system pozwalający, przy pomocy protokołu SOAP, na integrację naszej aplikacji z serwisem Allegro. Może wyszukiwać aukcje, wystawiać nowe, sprawdzać stan konta oraz dziesiątki innych rzeczy które wykonuje użytkownik tego serwisu.
W czym więc problem? Zapraszam do dalszej części wpisu wyjaśniającej dlaczego każde zetknięcie z tym tworem Allegro kończy się białą gorączką.
Czytaj więcej…
Weźmy pod lupę prostą pętle foreach w PHP, która zamienia we wszystkich elementach tablicy litery na duże:
$words = array('system', 'baza', 'telefon');
foreach ($words as &$item)
{
$item = strtoupper($item);
}
Jak widać, kolejne elementy tablicy pobierane są po przez referencję, tj. tworzony jest wskaźnik na konkretny element a nie jego kopia w pamięci. Dlatego też, zmieniając w pętli zawartość zmiennej $item modyfikujemy pierwotną tablicę. W czym zatem tkwi problem?
Czytaj więcej…
Czy zdarzyło się Wam wybierać wiersze z bazy MySQL, które różnią się od zadanego warunku wielkością znaków? Zapewne wielu początkujących programistów miało do czynienia z tą sytuacją. Przyczyną tego zjawiska jest ustalona metoda porównywania napisów, która z reguły nie uwzględnia wielkości liter (końcówka „ci” – case insensitive).

Mając przykładowo w bazie danych dwa rekordy gruszka oraz Gruszka, zapytanie pokroju:
SELECT * FROM `test` WHERE `data` = 'Gruszka'
…zwróci nam oba te rekordy. Co jeśli jednak zależy nam na porównaniu uwzględniającym wielkość liter?
Czytaj więcej…
Swego czasu, gdy publikowałem jeden ze swoich projektów, w celu odciążenia serwera głównego (limit transferu) wysyłałem plik jeszcze na kilka innych. Jako iż jego rozmiar osiągał 30MB, a łącze jakim dysponowałem nie było demonem prędkości, powstał problem – jak przyspieszyć ten proces?
W tym momencie natknąłem się na możliwość kopiowania plików między serwerami przy pomocy skryptu PHP. Serwery dostawców usług hostingowych są wyposażone w bardzo szybkie łącza (z reguły), a co za tym idzie, ściągnięcie pliku z innej lokalizacji trwa sekundy zamiast długich minut jakie ja poświęcałem na wrzucenie pliku na każdy FTP z osobna.
Wszystko co musimy zrobić to napisać prosty skrypt PHP i umieścić go w lokalizacji docelowej – a ten, wykona za nas cała czarną robotę.
Czytaj więcej…
Wymyśliłem/przyjąłem sobie jakiś czas temu termin taki jak „projekt jednego dnia”. Określam nim programy których działający prototyp da się wykonać w jeden dzień. Oczywiście musi to być coś bardziej ambitnego niż „Hello World” – innymi słowy, użytecznego.

Całkiem niedawno postanowiłem zrobić malutkie narzędzie on-line do liczenia sum kontrolnych. Ktoś powie że pełno już takich narzędzi zrobiono. I faktycznie, ale jeśli bliżej się przyjrzeć, to te działające on-line z reguł ograniczają się tylko do md5 lub bardziej popularnych. Ja poszedłem o krok dalej – poznajcie checksum.me!
Czytaj więcej…