Archiwum
- Październik 2008 (1)
- Wrzesień 2008 (4)
- Sierpień 2008 (3)
- Lipiec 2008 (2)
- Czerwiec 2008 (4)
- Maj 2008 (5)
- Kwiecień 2008 (9)
- Marzec 2008 (11)
- Luty 2008 (22)
- Styczeń 2008 (9)
- Grudzień 2007 (12)
- Listopad 2007 (4)
- Październik 2007 (8)
- Wrzesień 2007 (25)
- Sierpień 2007 (19)
- Lipiec 2007 (17)
- Czerwiec 2007 (9)
- Maj 2007 (10)
- Kwiecień 2007 (5)
- Marzec 2007 (8)
- Luty 2007 (12)
- Styczeń 2007 (9)
- Grudzień 2006 (10)
- Listopad 2006 (9)
- Październik 2006 (7)
- Wrzesień 2006 (3)
- Sierpień 2006 (16)
- Lipiec 2006 (26)
- Czerwiec 2006 (29)
- Maj 2006 (12)
- Kwiecień 2006 (18)
- Marzec 2006 (18)
- Luty 2006 (14)
- Styczeń 2006 (15)
- Grudzień 2005 (8)
- Listopad 2005 (18)
- Październik 2005 (14)
- Wrzesień 2005 (14)
- Sierpień 2005 (26)
- Lipiec 2005 (15)
- Czerwiec 2005 (10)
Apple News
Czytuje
- Ajk's jogger
- Arab's blog
- Blog Dawida Gatti
- Blog narzeczonej programisty
- Pixel's Blog
- RedHand's jogger
- Rozie's jogger
- Spider's jogger
- Wawrzek's jogger
- XyC jogger
Playstation 3
Znajdź mnie
Kategorie
- Codzienność (18)
- Cytaty (5)
- Filmy (35)
- Fotografia (2)
- Gry (6)
- Internet (3)
- Linux (41)
- Maczek (45)
- Muza (17)
- Myśli (6)
- O niczym (244)
- PDA/palmtop (4)
- Playstation 3 (11)
- Praca. (7)
- Programowanie (9)
- Propaganda/akcje (16)
- Software (35)
- Techblog (3)
- Teledyski (6)
- Telewizja (1)
- WebDesign/WebDeveloping (51)
MyBlogLog
Wordpress - głos na nie.
Kategoria: Techblog . WebDesign/WebDeveloping .
Jestem webdeveloperem od dwóch lat. Zajmuję się mniejszymi lub większymi projektami. Używam głównie php i pythona. Przy php używam Zend Frameworka (od wersji 0.2 bodajże). W pythonie piszę inne aplikacje związane z webdevelopingiem, obecnie zbieram się do zabawy z django (tylko chęci brak).
Od pewnego czasu zajmuję się także mocno zagadnieniami związanymi z SEO.
To taki mały wstęp i jednocześnie moja jedyna obrona na te wszelkie złe myśli osób które zapewne stwierdzą że kolejny bredzący wpis o gównianości wordpressa.
Jednocześnie chciałbym napisać że ten wpis, ta opinia nie może zabrać wordpressowi jednego argumentu. Jakiego ? Oczywistego. Wordpress działa. Działa jakoś, ale swoje zadanie jakoś spełnia.
Ale zaczynając powoli i od początku.
Wiele osób stwierdza że wordpress jest fajny i cudny ponieważ ma wiele opcji. Można zrobić wiele praktycznie nie znając się na tym. Chcemy nowy piękny template robimy mały upload plików i już możemy sie cieszyć nowym wyglądem swojej strony. Wszystko super, jednak ja mam kilka achów i ochów.
Zaczynają od instalacji wordpressa. Przebiega ona łatwo i bezboleśnie w sumie. W sumie nie ma przecież się czego doczepić. Ja jednak sądzę że już przy instalacji można się doczepić. Doczepić można się banału. Wpisywanie hasła do bazy. Pole takie jest zwykłym polem typu input (screen).
Jest to przecież jedna z podstawowych zasad do złamania. Wystarczy że więcej niż jedna osoba ma dostęp do tego komputera, wystarczy odpalić podobny instalator i już możemy poznać hasło, które zapewne jest często używane.
Już nie wspomnę że ktoś może stać za plecami i sobie zwyczajnie i legalnie przeczytać wasze hasło.
No ale dobrze. Powiedzmy że wyczyściliśmy wszelkie prywatne dane w przeglądarce i jesteśmy cholernie bezpieczni. Ok. Przejdźmy więc do tych super łatwo instalowalnych templatów. I tak oto tu się czepiam kolejnej części super userfriendly. Czepię się dodanych w którejś wersji widgetów i zmiany koloru i obrazku nagłówka (screen #1 i screen #2).
No tak wszystko śliczne, konfigurowalne i piękne. Czego można się tu doczepić ?
Właśnie tej konfigurowalności. Przejrzałem kilka tematów dla wordpressa i muszę powiedzieć że opcję zmiany obrazka i/lub koloru loga znalazłem tylko w oryginalnym temacie, dostarczanym razem z wordpressem. Ale w tym temacie wszystko pięknie działa.
Niestety problem się pojawia gdy bierzemy nam super hiper pasujący temat z innej strony. Wchodzimy, zmieniamy i się nagle okazuje że trzeba grzebać w kodzie plików, bo temat jest w żaden sposób nieprzystosowany do tego co chcieli osiągnąć deweloperzy zajmujący się worpdressem. (screen)
No i szukamy czegoś kolejnego z nadzieją że będzie działać. I tak do skutku.
W końcu znaleźliśmy wymarzony działający templejt i zabieramy się do upragnionego blogowania.
I tak oto naszego bloga zindeksował pięknie wujek google, cieszymy się odwiedzalnością i bum. Kolejny problem się pojawia: boty spamerskie. Zalewają naszego bloga tonami reklam. Co robimy ? Szukamy wtyczki.
Zapewne znajdziemy re-captcha i na szybko wstawiamy do naszego bloga i nagle kolejny problem. Nasza wtyczka nie działa z tematem. Więc znów szukamy super tematu, bo przecież zmiany są potrzebne. Ok. Znaleźliśmy, działa wszystko.
Tylko nam coś nagle zjada transfer na naszym cennym i ciężko opłacanym serwerze. Część to boty, które się odbijają od captchy a część do google. I tak oto kombinuje się i kombinuje, żeby działało i żeby nam dało spokój.
No i jeszcze ludzie narzekający na captche której nie da się odczytać. Na co to komu ?
Tyle odemnie takiego podejścia od strony użytkownika. Teraz troszkę bełkotu z oczu programisty.
W pewnym momencie myślałem że wordpress to zbiór plików z funkcjami.
Niestety moja wiedza została jakoś niedawno zweryfikowana.
Okazało się że wordpress to większy śmietnik niż się tego spodziewałem. Połączenie klas, funkcji, czystego php łączonego z htmlem i mieszanego jak się da i ile się da.
W sumie to nawet nie wiem jak deweloperzy trzymają ten projekt w ryzach i jak się w nim odnajdują. Brak jakiegokolwiek systemu szablonów (nawet własnego, logicznie ułożonego) tworzy taki rozpiździaj że masakra.
Ale w sumie to chyba najlżejszy zarzut jaki mam do wordpressa.
Lecim po kolei.
1. Zapytanie SQL == żenada, przykład:
$request = " SELECT $found_rows $distinct $fields FROM $wpdb->posts $join WHERE 1=1 $where $groupby $orderby $limits";
Moje pytanie brzmi: Co to kurwa za zapis 1=1 ? Że co, że zapytanie ma zwrócić zawsze wynik ? Nawet nie chcę wnikać w logikę tego...
2. Mieszanie php z htmlem itd, itp, przykład:
<?php
$editable_ids = get_editable_user_ids( $user_ID );
if ( $editable_ids && count( $editable_ids ) > 1 ) :
?>
<fieldset><legend><?php _e('Author…'); ?></legend>
<?php wp_dropdown_users( array('include' => $editable_ids, 'show_option_all' => __('Any'), 'name' => 'author', 'selected' => isset($_GET['author']) ? $_GET['author'] : 0) );
?>
</fieldset>
<?php
endif;
Tak to ja kodowałem jak się uczyłem składni.
3. Zmienne globalne i ich magiczna tablica. Brak dbania w jakikolwiek sposób o pamięć, proces, brak optymalizacji kodu, przykład:
echo count($GLOBALS); daje wynik 153 :|
oraz
function get_out_now() { exit; }
add_action( 'shutdown', 'get_out_now', -1 );
Obstawiam że to działa tak: wpisując "shutdown; " wykonywany jest exit();
Podobnie obstawiam z "endif;" i "endforeach;", aczkolwiek nie umiem dotrzeć do miejsca gdzie to jest tworzone. Chyba brak nerwów i chęci babrania się w gówienku.
Nie chce mi się szukać kolejnych absurdów i głupot związanych.
Aptana.
Kategoria: Techblog . WebDesign/WebDeveloping .
http://www.aptana.com/
Powyżej podałem link do najlepszego jaki do tej pory znalazłem edytora HTML i JavaScript.
Na co dzień jestem deweloperem w pewnej małej firmie o nazwie red-sky. W pracy, jak i na co dzień używam edytora Zend Studio. Niestety edytor ten nie ma zaimplementowanej składni JS'a i nie ma jak działać w nim. Aptana ma za to pełne wsparcie dla JS'a oraz dla HTML'a. IDE jest oparte na wielu osobom znane środowisku eclipse. Dużą zaletą jest to że istnieje na wszelkie platformy, które używam (windows, linux) i będę użytkował (mac os). Ogólnie zapraszam do zapoznania się z tym IDE ponieważ uważam że stanowi ono świetne uzupełnienie narzędzi. Może być także świetnym uzupełnieniem dla web designerów, którzy tworzą templaty i walczą często z CSS i IE, ponieważ ma także podpowiadanie składni CSS. Ogólnie polecam i zapraszam do zapoznania się z projektem.
Zend Framework 0.8
Kategoria: Techblog . WebDesign/WebDeveloping .
Na ostatnich dniach Zend wydał kolejną wersję Frameworka. Trzeba przyznać że od wersji 0.7 sporo się zmieniło. Z inkubatora przeniesiono następujące moduły:
Zend_Auth, Zend_Console_Getopt, Zend_Filter, Zend_Mail_Read, Zend_Rest_Client, Zend_Rest_Server, Zend_Validate
Trzeba także wspomnieć o zmianie Zend_Input_Filter i przeniesieniu metod tego modułu do Zend_Filter. Zend_Filter umożliwia także "łańcuchy sprawdzeń". Polega to na prostym utworzeniu obiektów kolejnych klas które mają zostać sprawdzone.
Prosty przykładzik wzięty z manuala:
// Zapewnia możliwość łańcuchowego wywoływania filtrów
require_once 'Zend/Filter.php';
// Filtry użyte w przykładzie
require_once 'Zend/Filter/Alpha.php';
require_once 'Zend/Filter/StringToLower.php';
// Tworzymy łańcuch filtrów i dodajemy filtry do łańcucha
$filterChain = new Zend_Filter();
$filterChain->addFilter(new Zend_Filter_Alpha())
->addFilter(new Zend_Filter_StringToLower());
// Filtrujemy nazwę użytkownika
$username = $filterChain->filter($_POST['username']);
Ogólnie proste i miłe w użyciu. Ciekawi mnie tylko czy w końcu dodali klasę/metodę do walidacji mejla, ponieważ w 0.7 jeszcze nie było to uzupełnione.