Technologie i narzędzia: język PHP 5, Java, JavaScript, Python, system Zend Framework, Django, biblioteka jQuery, Smarty, platforma Eclipse, MySQL, SVN, CVS, UML, Firefox.
WebProgramming - wszystko o serwisach internetowych
O serwisach internetowych.
[ant|eclipse] Kopiowanie plików na konta FTP.
Tworząc serwis najczęściej pracujemy na lokalnym serwerze www/mysql - dzięki czemu dużo szybciej możemy zobaczyć rezultat naszej pracy (w 99% przypadków wystarczy odświeżyć stronę ;)). Wcześniej, czy później jednak musimy wrzucić wynik naszej ciężkej pracy na serwer FTP (np klienta) - jeżeli to jest po raz pierwszy to nie ma większego problemu - uruchamiamy klienta FTP i kopiujemy pliki. Problem jednak zaczyna się, gdy musimy wdrażać kolejne poprawki. Jak sobie z tym poradzić?
[php|zend] Biblioteka obsługi plików CSV.
Już ładne kilkanaście miesięcy temu pracowałem nad projektem, w którym ważną częścią był import plików CSV (zapis z plików Excel). Przyznaje się bez bicia, iż wówczas zrobiłem to dość “nieładnie” - pomieszałem logikę importu z samym parsowaniem pliku i walidacją. Postanowiłem, więc że napiszę taki parser jeszcze raz - tym razem wg zasad naszego rzemiosła (standardowo bazuję na języku PHP i systemie Zend Framework).
[eclipse|php] Tworzenie szablonów.
Zapewne nikt nie lubi robić nudnych, często powtarzających się czynności. Do nich niewątpliwie można zaliczyć (i to niezależnie od wykorzystywanego frameworka i języka) tworzenie klas odpowiedzialnych za konkretną rzecz (np klasy modeli, widoku, itp).
Całe szczęście Eclipse (a dokładniej PDT 1.0.3) dostarcza nam mechanizmu szablonów (ang. Templates), które umożliwiają stworzenie szkieletu danej klasy w kilka kliknięć.
[php|zend] Szablony emaili.
Biblioteka wysyłania e-maili w systemie Zend Framework jest bardzo fajnie zaprojektowana i zaimplementowana (patrz Zend_Mail). Niestety brakowało mi w niej obsługi szablonów, które spełniałyby następujące kryteria:
- Treść e-maila jest poza kodem PHP (patrz też pkt 3)
- Sparametryzowanie e-maili, czyli możliwość wysyłania tych samych e-maili różniących się tylko niektórymi wartościami (np e-mail aktywacyjny może różnić się tylko adresem aktywacyjnym)
- Wybór między źródłem treści szablonów (na przykład pliki xml, baza danych)
- Możliwość ustawiania domyślnych wartości dla pól takich jak: temat, adresat, załączniki.
Tak bardzo mi tego brakowało, iż postanowiłem tą ideę przelać na kod.. oto wynik.
Przeglądarki różnych wersji na jednym komputerze.
Jak powszechnie wiadomo web developer jest nijako zmuszony testować swoje dzieła pod różnymi przeglądarkami - standardem są oczywiście testy pod Internet Explorer 6 i 7 (a niebawem zapewne dojdzie do tej listy numerek “osiem”) oraz FireFox - zarówno dla wersji 2.x jak i 3.x (obie wersje różnią się znacznie, w szczególności w implementacji silnika JavaScript). Jak sobie z tym poradzić mając do dyspozycji tylko jeden komputer?
[firebug] Ciekawy plugin dla programistów AJAX - FirePHP.
Szybka notka o bardzo ciekawej wtyczce, na którą natknąłem się jakiś czas temu, ale dopiero najnowsza wersja jest naprawdę godna uwagi. Mowa tutaj o wtyczce FirePHP, która umożliwia wyświetlanie informacji w konsoli Firebug przesyłanych z poziomu serwera (czyli z poziomu PHP).
[sql] Budowa forum - dodatek.
Mała uwaga do idei budowy forum, która została przedstawiona w artykule “Budowa forum“. Chcąc wyświetlić wszystkie komentarze (drzewko) dla danego komentarza (w naszym przypadku dla #1) nie wystarczy posortować wyników po path - możemy wtedy otrzymać listę w złej kolejności, na przykład dla danych:
| id | parent_id | title | …. | path |
| 1 | 0 | Wątek główny | …. | |
| 2 | 1 | Wiadomość pierwsza | …. | 0001| |
| 3 | 2 | Wiadomość pod pierwszą | …. | 0001|0002| |
| 4 | 1 | Wiadomość druga | …. | 0001| |
Sortowanie tylko po path spowoduje, iż pozycja #4 znajdzie się pod #3, a powinna się znaleźć pod #2. Aby tego uniknąć wystarczy posortować według (CONST_SLC to maksymalna liczba cyfr):
-
CONCAT(path, LPAD(id, CONST_SLC, "0"), "|") ASC
Dzięki temu uzyskujemy w łatwy sposób kolejność pozycji jak w drzewku - bez konieczności generowania rekurencyjnego.
[javascript] Tacomini
Nadszedł najwyższy czas na przedstawienie mojego rozwiązania “konkurującego” z Taconite (wpis na moim blogu).
[usability] Skuteczny “Kreator czyszczenia” w Home.pl
Miałem dzisiaj w planach zrobić porządki na poczcie, ponieważ nazbierało się w niej trochę śmieci. Wszedłem więc na webmail, który oferuje mój provider (czyli Home.pl) i ku uciesze moim oczom ukazał się “Kreator czyszczenia”. Mówię sobie “fajnie, ułatwi mi prace”. Początek zapowiadał się więc ciekawie, a jak się skończyło? Sami przeczytajcie.
[javascript|jquery] Labin - Wtyczka obsługująca etykiety w polach typu input.
Dzisiaj mam dla Was prostą wtyczkę jQuery, która obsługuje etykiety opisujące pola tekstowe typu input w środku tego pola, na przykład: ![]()