Tag Archives: web

Komodo Edit + Prefixr

Zapostowany w Technika | Tagi: , , , , , , | Skomentuj

Każdy kto ma do czynienia z kodowaniem CSS wie, jaki to ból korzystać z tych właściwości CSS3, które w różnych przeglądarkach wymagają różnych „prefixów producenckich” (-moz-, -webkit- etc.). Nie dość tego — na przestrzeni kilku wersji danej przeglądarki potrafiła się całkowicie zmieniać implementacja formatu danej właściwości (jak było np. z linear-gradientem w Webkicie).

Wiąże się to oczywiście z faktem, że póki co wspomniane właściwości CSS nie są jeszcze częścią oficjalnej, ostatecznej specyfikacji, dlatego póki co producenci przeglądarek w taki sposób sobie je „testują”. Ale jeśli ktoś chce z tych możliwości korzystać już dzisiaj, stoi przed nim spore wyzwanie związane z napisaniem kodu kompatybilnego ze wszystkimi aplikacjami. Można oczywiście pomagać sobie „ręcznie” — korzystając chociażby z http://caniuse.com/ .

Na szczęście pojawiła się niedawno webowa aplikacja http://prefixr.com – w której można wkleić fragment kodu sformatowanego tylko wg. oficjalnej propozycji specyfikacji, np:

body
{
  border-radius:5px;
}

A ona wypluje nam kod z wszystkimi wariantami dla popularnych przeglądarek :)

body {
  -webkit-border-radius: 5px;
  -khtml-border-radius: 5px;
  -moz-border-radius: 5px;
  border-radius: 5px;
}

Fajne? Pewnie, że fajne. Ale „fajność” idzie znacznie dalej. Twórcy tej jakże użytecznej aplikacji udostępniają także API oraz przykłady wykorzystania go w różnych edytorach programistycznych. Niestety widać wyraźnie, że preferują Maca — co znaczy, że nie ma np. na liście mojego ulubionego edytora, Komodo Edit. Na szczęście, można wykorzystać ich wskazówki i zrobić to samemu w bardzo prosty sposób.

Otwieramy Toolboxa, klikamy PPM i wybieramy "Add" » "New Command..."

Otwieramy Toolboxa, klikamy PPM i wybieramy "Add" » "New Command..."

W polu "Command" wklejamy:

W polu "Command" wklejamy:

curl -sSd css="%S" http://prefixr.com/api/index.php
Jeśli chcemy mieć przypisany skrót klawiszowy (a chcemy), przechodzimy do zakładki "Key Binding" i wpisujemy wybrany skrót. Ja wybrałem Ctrl+L, R.

Jeśli chcemy mieć przypisany skrót klawiszowy (a chcemy), przechodzimy do zakładki "Key Binding" i wpisujemy wybrany skrót. Ja wybrałem Ctrl+L, R.

Czas na test. Wpisujemy jakąś prostą deklarację w oknie edytora, zaznaczamy…

Czas na test. Wpisujemy jakąś prostą deklarację w oknie edytora, zaznaczamy…

Wciskamy Ctrl+L, a potem R… i voila!

Wciskamy Ctrl+L, a potem R… i voila!

Acha, żeby to zadziałało, w systemie musi być zainstalowany cURL (chociażby stąd: http://curl.haxx.se/ ), a adres jego pliku wykonywalny musi być w zmiennej systemowej PATH (jak mniemam — ja przypadkiem już miałem zainstalowanego cURLa z inną aplikacją, więc u mnie działało „na dotyk”).

I ostatnia sprawa: Prefixr nie radzi sobie niestety z co bardziej specyficznymi deklaracjami. Nie rozwinie nam niestety np:

border-bottom-left-radius: 5px;

Ale po pierwsze, da się samemu ekstrapolować już potrzebne prefixy z rozwinięcia podstawowej wersji deklaracji, a po drugie — mam nadzieję, że będą konsekwentnie usprawniać aplikację.

CSS3 + Flexbox = Koniec z FLOAT’ami (kiedyś)

Zapostowany w Technika | Tagi: , , , , , , , | 5 Komentarzy

Biorąc pod uwagę tempo, z jakim aktualizowane ostatnio są najważniejsze przeglądarki (o zgrozo, nawet IE) wszystko wskazuje na to, że już za chwilę będzie można zacząć stosować większość dobrodziejstw CSS3 nawet w komercyjnych projektach.

Ale w natłoku tych wszystkich wyskakujących po Sieci demówek bajeranckich box-shadow‘ów, text-shadow‘ów, transitions czy nawet interaktywnych obiektów 3D, łatwo było przeoczyć nowość o wiele bardziej, w moim mniemaniu, fundamentalną — nowy rodzaj wyświetlania elementów.

display: box

Na początek małe demo. Koniecznie oglądać w jakimś Webkicie (Chrome, Safari czy nawet Android). Póki co, Opera kompletnie tego nie rozumie, IE aż po wersję 8 też (może M$ doda obsługę w wersji 9). Firefox niby sobie radzi, ale gubi się w wielu miejscach (co ciekawe – włącznie z wersją 4 beta – skutkiem czego w tym demie nie widać np. będzie faktu, że box jest skalowalny – co zasadniczo pozbawia sensu cały temat ;) ).

Powinno być widać coś takiego:

Na co warto zwrócić uwagę:

  • Nie ma tutaj żadnych floatów (!)
  • Równa wysokość niebieskich boxów jest dana „z automatu” – nie ma żadnych tricków CSS2.1 czy JS.
  • 3 niebieskie boxy są wyrównane w zielonym boksie do dołu — zielony box nie ma paddingu na górze!
  • Kolejność niebieskich boxów ustawiona jest w CSSie. W kodzie następują kolejno „child 1″, „child 2″ i „child 3″.
  • „child 1″ ma stałą szerokość, a „child 3″ i „child 2″ okupują pozostałą szerokość zielonego boxa w stosunku 3:1 (wszystko ustawione via CSS). Widać to dokładnie, kiedy ogląda sie demo w jakimś Webkicie i skaluje się okno przeglądarki.
  • Zielony box wycentrowany jest w przeglądarce w pionie i w poziomie – beż żadnych „margin:auto”, „position:absolute”, „left:50%;top:50%” czy ujemnych marginesów.

Ale jak?

Z wykorzystaniem kilku nowych, proponowanych w draftach (póki co, niestety) CSS3 atrybutów.

Zielony box (rodzic)

display:box
Nowa wartość display, która włącza model flexbox na elemencie, na którym jest ustawiona, i jego bezpośrednich dzieciach.
box-orient
Możliwe wartości: horizontal | vertical | inherit — definiuje jak wyświetlane są niebieskie boxy: horyzontalnie (tak jest ustawione w demie) czy wertykalnie.
box-pack
Możliwe wartości: start | end | center | justify — ustawia wyrównanie niebieskich boxów (dzieci) na osi zdefiniowanej przez wartość box-orient. Czyli jeśli w tym przypadku box-orient: horizontal, to chodzi o wyrówanie horyzontalne. Gdyby było box-orient: vertical, box-pack ustawiało by wyrównanie niebieskich boxów w pionie. Mała uwaga: na demie nie widać, że niebieskie boxy wyrównane tak naprawdę są do prawej, bo ze względu na ustawienie na dwóch z nich wartości box-flex — w sumie zajmują całą szerokość zielonego boxa.
box-align
Możliwe wartości: start | end | center | baseline | stretch. Odwrotność atrybutu box-pack — jeśli box-pack definiował wyrównanie horyzontalne, box-align będzie ustawiał wyrównanie wertykalne — i vice versa.

Niebieskie boxy (dzieci)

box-flex
Możliwe wartości: 0 | jakakolwiek liczba całkowita – ta wartość robi dwie rzeczy: włącza skalowalność boxa-dziecka i ustawia proporcje, w jakich dzieci (niebieskie boxy, w tym przypadku) będą wykorzystywały wolną przestrzeń w „rodzicu” (zielonym boksie). W demie 2 niebieskie boxy mają włączoną tą wartość: „child 3″ ma box-flex: 3, a „child 2″ ma box-flex: 1 — co oznacza, że oba będą skalowalne i będą wypełniały wolą przestrzeń w zielonym boksie (pozostałą po odjęciu szerokości „child 1″) w stosunku 3:1.
box-ordinal-group
Możliwe wartości: jakakolwiek liczba całkowita. Atrybut ten pozwala na zmianę kolejności wyświetlania boxów-dzieci (niebieskich) w stosunku do kolejności, jaką mają w kodzie. W demie boxy te mają kolejno: „child 1″ — box-ordinal-group: 3, „child 2″ — box-ordinal-group: 1 i „child 3″ — box-ordinal-group: 2

Co jeszcze

To oczywiście nie wszystkie wartości (polecam poczytać źródła), jakie składają się na flexbox. Ale to już wystarcza, żeby w pełni zastąpić floaty, a nawet dodać developerom wiele nowych możliwości bez konieczności uciekania się do hacków. Kiedy tylko wszystkie podstawowe przeglądarki zaczną spójnie to obsługiwać, rzecz jasna (patrzę głównie na Ciebie, Firefoksie). Na razie za wesoło nie jest. IMHO zaznaczenie tam Firefoxa na zielono też jest nieco na zasadzie „wishful thinking”.

Źródła

Update

Zapomniałem dodać, że wszystkie te właściwości są obecnie w fazie eksperymentalnej, w zw. z czym trzeba stosować „przedrostki producenckie”, czyli:

display: box;

display: -moz-box;
display: -khtml-box;

box-align: center;

-moz-box-align: center;
-khtml-box-align: center;

box-pack: center;

-moz-box-pack: center;
-khtml-box-pack: center;

…i tak dalej.

PHP 5.3.1 + Apache 2.2 + MySQL 5 = problem

Zapostowany w Technika | Tagi: , , , , , , , | 3 Komentarzy

Miałem dziś wątpliwą przyjemność reinstalowania Windowsa po 2 latach nieprzerwanej pracy na jednej instalacji Visty (sic!). Jak zwykle, nie obyło się bez problemów. Zwykle w takich przypadkach zaskakują mnie coraz to nowe problemy wynikające z łączenia nowych wersji Apache’a, PHP i MySQLa.

Tym razem efekt był dość ciekawy. Po bezproblemowym odpaleniu wszystkiego i próbie uruchomienia w przeglądarce PhpMyAdmina – zawiecha. Strona ładuje się w nieskończoność. Log w Apache’u nie pokazuje żadnych sensowych wskazówek. Czytaj dalej »

Simple Tags 1.6.6 + WordPress 2.9

Zapostowany w Technika | Tagi: , , , , , , , , , | Skomentuj

Przed momentem zaktualizowałem sobie WordPressa do wersji 2.9 i okazało się, ze wystrzeliłem w kosmos jedną z ważniejszych wtyczek — Simple Tags 1.6.6. Okazuje się, że wcale nie jest ona niekompatybilna — po prostu autor zastosował cokolwiek dziwny sposób detekcji wersji WP. Beż żadnego fallbacka do nowszych wydań. Czytaj dalej »

Rekursywny CHMOD plików i folderów

Zapostowany w Technika | Tagi: , , , , , , , | 4 Komentarzy

Ani to moje odkrycie, ani — przynajmniej dla niektórych — nic specjalnie odkrywczego w ogóle, ale mi jako webdeveloperowi i windowsowcowi (dziwne słowo…) nieraz już zaoszczędziło spoooooro czasu. Dlatego też postanowiłem wrzucić to, głównie dla samego siebie jako memo na przyszłość.

Czasem potrzeba szybko rekursywnie zmienić uprawnienia plików bądź katalogów tak, aby były zapisywalne dla wszystkich użytkowników. Można zrobić to młotkiem – przez FTP, plik po pliku, katalog po katalogu. I stracić w najlepszym razie wiele, wiele minut. Ale jeśli jest dostęp przez SSH, wystarczy wydać polecenie: Czytaj dalej »

Phishing

Zapostowany w Inne | Tagi: , , , , , | 2 Komentarzy

Dzisiaj rano dostałem takie coś. Fakt, że z phishingiem szary użytkownik Internetu styka się niemal codziennie, ale muszę przyznać, że polską próbę osobiście widzę chyba po raz pierwszy. Bardzo wiarygodne, szczególnie, że „reply-to” ustawione jest na jakiś adres @poczta.neostrada.pl :bandit:

Ciekawe, kiedy będzie o tym na TVN24 :)

Phishing

Phishing

Update: Długo czekać nie musiałem :). Właśnie powiedzieli o tej akcji na TVN24 (13/10/2009).

Gmail vs. Thunderbird

Zapostowany w Technika | Tagi: , , , , , , , , , , , , | 4 Komentarzy

Od kiedy w ogóle korzystam z poczty elektronicznej (a będzie to już ładnych parę lat) wypróbowałem chyba większość co popularniejszych programów klienckich — Outlook, Outlook Express, The Bat, Thunderbird — żeby na ostatnie kilka lat zatrzymać się na tym ostatnim. TB ma właściwie wszystko, co potrzeba — z jednym wyjątkiem, różniącym go od siostrzanego Firefoxa — aktywnego developmentu. Czytaj dalej »

Problem z logowaniem w WordPress 2.7.1

Zapostowany w Technika | Tagi: , , , , , , , , , | 4 Komentarzy

Kiedy zalogowałem się dzisiaj do panelu administracyjnego zobaczyłem, ze WP domaga się aktualizacji do wersji 2.7.1 (miałem 2.7). Dla bezpieczeństwa zrobiłem więc rutynowy backup bazy (korzystając ze świetnej wtyczki WordPress Database Backup) i kliknąłem autoaktualizację WordPressa. Wszystko trwało kilka sekund i przebiegło (jak mi się początkowo zdawało) bez żadnych problemów. Jakże wielkie było moje zdziwienie, kiedy chciałem się zalogować do panelu administracyjnego i zamiast Dashboarda zobaczyłem komunikat mówiący, ze nie mam wystarczających uprawnień do oglądania tej strony (!). Czytaj dalej »

FileHippo Updater

Zapostowany w Technika | Tagi: , , , , , , , , , | 3 Komentarzy

Jakiś czas temu wspominałem o Appupdater’ze. Od tamtego czasu (grudnia 2007) niestety zarządzanie aktualizacjami aplikacji na Windows nie zmieniło się wiele. Co znaczy tyle, że wciąz trzeba dbać o to we własnym zakresie. M$ nie ułatwia nijak użytkownikom życia. Na szczęście konsekwentnie pojawiają się programy, które pozwalają proces ten jeśli nie zupełnie zautomatyzować, to chociaż uczynić mniej bolesnym.

Jedną z lepszych tego typu aplikacji, na jakie trafiłem, jest FileHippo Updater. Dla odmiany ma własny interfejs graficzny, a do tego szukając aktualizacji, opiera się na bogatej bibliotece oprogramowania hostowanej przez FileHippo.com. Czytaj dalej »