Kawałek Kodu

Co tu się odskryptala?! Czyli programistyczne porady na luzie

"Która godzina? Pyta rodzina". Czyli o czasie w MySQL.

Na pewno nie raz budując zapytania w MySQL zetknąłeś się z potrzebą wybierania określonej daty lub godziny, czy to w liście zwracanych pól czy też w klauzuli WHERE. Nie będę dziś opisywać szczegółowo każdej wbudowanej funkcji do operowania na dacie / godzinie. Choć kilka z nich omówimy, to w większości wykorzystamy je oraz inne funkcje do obliczeń, których nie można osiągnąć bezpośrednio z tej grupy funkcji.

Zaczniemy od najprostszych.

Czytaj dalej

"The tag is out there", czyli DOMXPath S01E01.

Jeśli miałeś kiedyś potrzebę przeszukiwania kod HTML pod kątem wyłuskania jakichś informacji, to pewnie korzystałeś z wyrażeń regularnych, a potem trafiłeś na drogę prowadzącą do narzędzi typu PHP Simple HTML Dom Parser.

Wyrażenia regularne mogą być kłopotliwe same w sobie, a powiązanie ich ze strukturą HTML może przyprawić o ból głowy. Wspomniany parser przenosi nas o poziom wyżej pod względem wygody użytkowania, ale i tak nie spełnia wszystkich pokładanych weń nadziei. Wyszukiwanie elementów, których nie znamy dokładnego położenia (może być zmienne) staje się wprost niemożliwe, trafiamy więc w ślepy zaułek.

Którą z dróg wybrać?

Czytaj dalej

Typowo męska logika, czyli fraktal Sierpińskiego.

Może już widziałeś ten piękny graficzny wzór, choć nie wiesz, że miałeś do czynienia z fraktalem. Fraktal to obiekt nieskończenie powtarzalny, albo samopodobny. Oznacza to, że w jego fragmencie jest zawarta całość. Mamy do czynienia z nimi nie tylko w formie komputerowej grafiki, ale również w otaczającym świecie (choć nie są to nieskończenie powtarzalne konstrukcje). Fraktalem jest kalafior czy brokuł, którego kawałek wyglądem przypomina całość. Banknoty niestety nie są fraktalami. Drzewo jest fraktalem. Wygląda na to, że cały wszechświat jest również fraktalem, którego odwzorowanie możemy znaleźć w żywej komórce.

Z fraktalami nieodłącznie wiąże się rekurencja. Dzięki niej powstaje trójkąt Sierpińskiego, kiedy to w duży trójkąt wrysowujemy odwórcony mniejszy, a pozostałe trzy miejsca są zapełniane w ten sam sposób jak duży. I tak dopóki starczy sił albo czasu.
Ale nie zawsze się wiąże. Możemy skorzystać z innej cechy liczb jaką jest możliwość ich reprezentacji binarnej i operacji logicznych na nich. W ten sposób możemy stworzyć fraktal Sierpińskiego oparty na trójkącie prostokątnym.

Czytaj dalej

Wyżymanie HTML, czyli gumowa kostka w CSS.

Kiedy poznawałeś wciągający świat transformacji 3D w CSS pewnie trafiłeś na efekt obracającego się sześcianu. Dziś możliwości CSS trochę spowszedniały, a my aby nie stać w miejscu zrobimy skok jednocześnie w przyszłość i przeszłość. Pokażę Ci odzworowanie retroefektu zwanego rubber vectors, korzystając z aktualnych możliwości transformacji 3D. Przy zderzeniu przeszłości i przyszłości zobaczysz coś niedzisiejszego. Właściwie to już widziałeś na powyższym wideo, ale za chwilę będziesz mógł cieszyć się tym oglądając na żywo.

Jak skręcić kostkę (nie swoją)?

Idea efektu jest dosyć prosta. Polega na rysowaniu kostki w standardowy sposób, natomiast co linię pokazujemy klatkę animacji o jeden (lub więcej) późniejszą. Musimy w tym celu mieć X buforów na poszczególne klatki animacji. Pierwszą klatkę rysujemy na pierwszym buforze, podczas kolejnej kopiujemy go (i wszystkie za nim) o jeden niżej, a klatkę rysujemy znów na pierwszym. Pobierając kolejne linie z coraz to "późniejszych" buforów sprawiają one wrażenie "ciągnięcia się" za tymi powyżej.

Czytaj dalej

Milion pięćset sto dziewięćset, czyli o liczeniu w CSS.

Zdarza się, że stworzyliśmy ekstra formularz ankiety i chcemy poinformować użytkownika korzystającego z niego o ilości zaznaczonych odpowiedzi czy też o ilości prawidłowych odpowiedzi. A to wszystko na bieżąco. Możemy to zrobić bez użycia JavaScript. Nie będzie trzeba dodawać obsługi zdarzeń, liczyć zaznaczonych, ustawiać w jakimś elemencie obliczonej wartości.

Wykorzystamy do tego CSS-owy licznik, a dokładnie zmienną, której wartością możemy sterować przy pomocy kombinacji HTML+CSS.

Zacznijmy od przykładu wykorzystania licznika do numerowania elementów listy. Co prawda można wykorzystać natywną numerację, ale ma on jednak mniejsze możliwości stylowania. Czyli na razie checkbox'y odkładamy na bok.

Czytaj dalej

Einstein w formie, czyli jak "rozbić" formularz na dwa.

Konstruując formularz HTML zawsze mamy do dyspozycji niezliczoną pulę....pól, list, ptaszków, guzików, nawet przycisków. Co jednak z tego, że dodamy kilka przycisków skoro i tak każdy z nich kieruje formularz po zatwierdzeniu na ten sam adres. Adres oczywiście w atrybucie action formularza.

Można kombinować z ustawianiem wartości dla pól hidden podczas klikania w przycisk submit. Można co gorsza próbować ustawiać inny parametr action formularza przed zatwierdzeniem.

Czytaj dalej