Przyznam, że już dawno nie miałem takiej zagwozdki, jak ta, która spotkała mnie przez ostatnie 3 dni.
Zaczął mnie - delikatnie mówiąc - irytować fakt, iż na maila lecą czasem załączniki 40 MiB, więc postanowiłem napisać na potrzeby teamu małą aplikację, która miała:
- zautoryzować użytkownika (to nie *share, że wszyscy mają mieć dostęp)
- ułatwić wybór i upload
- przyjąć pliki na serwerze i dać znać, komu trzeba
Coś podobnego już działa, jednak to wybitna prowizorka - najprostszy formularz i jedno pole. Ot, filozofia. Ale potrzebne jest coś, co działa trochę lepiej i nie zraża interfejsem.
Teoria fajna?
więcej
Jak pewnie niektórzy zdążyli się dowiedzieć, miałem okazję gościć na konferencji PHPCon 2010. Minął ponad tydzień od zakończenia, pora podzielić się subiektywnymi wrażeniami.
Oficjalną relację opublikuję na łamach Wortalu PHP.pl niebawem, tymczasem zapraszam do lektury notki.
Tekst będzie raczej należał do tych dłuższych, zostałeś ostrzeżony(a).
więcej
Ostatnio musiałem się zmierzyć z pewnym algorytmem, który wymieniał dane z aplikacją kliencką pisaną we Flashu pomiędzy PHP. Niby nic skomplikowanego, przesyłanie znaków z kodami ASCII uzyskiwanych flashowym odpowiednikiem metody urlencode(). Jednak pomimo prawidłowej realizacji algorytmu, nadal uzyskiwałem dziwne wyniki.
Jakież było moje zdziwienie, gdy odkryłem, co było grane.
więcej
Ostatnio o Nginksie pisałem już jakiś czas temu. Pozmieniało się sporo, sam rozwój tego demona był dla mnie sporym zaskoczeniem. Kiedyś niszowy projekt - dzisiaj - zdobywający popularność w szalonym tempie.
Jednak nie ma co się temu dziwić - wydajność jest znacznie wyższa niż najpopularniejszej kobyły (czyt: Apache). No i fakt, że jest produkcji rosyjskiej - już któryś raz z kolei o tym wspominam, a jest to kolejny program potwierdzający regułę.
więcej
PHP (zresztą nie tylko ten język) jako server-side do nauczenia trudny nie jest. Po jakim czasie seito twierdzi, że potrafi pisać całkiem niezłe skrypty, CMS, czy aplikacje. Ale nawet i wielu sensei często miewa problemy, gdy chodzi o mocno obciążone serwisy, w których stopniowo zaczynają pojawiać się wąskie gardła - strony wczytują się coraz wolniej, aż do momentu, gdy baza danych odmawia posłuszeństwa z powodu przeciążenia.
Na domiar złego, użytkownicy odświeżają wielokrotnie te same strony - albo z powodu wielu prób otwarcia, albo w celu aktualizacji często zmieniających się treści. I tak mamy pewien procent żądań, które tylko niepotrzebnie obciążają serwer, nieraz będące błędnym kołem - skrypt oczekuje na połączenie z bazą, a zniecierpliwiony gość albo opuści stronę, albo będzie wciskał CTRL+R do oporu…
Owszem, można postawić farmę serwerów z load-balancingiem/proxy-cache, ale nieraz jest to strzelaniem do muchy z armaty, poza tym - w przypadku mniejszych serwisów jest to poza ich zasięgiem finansowym. Jednak są sposoby… ;]
więcej
Nie da się temu zaprzeczyć - Erlang ma dość dziwną składnię, momentami naprawdę się ciężko połapać po siedzeniu w językach typowo klamerkowych (vide: C, PHP, JS, etc), ale możliwości napisanych w nim aplikacji naprawdę poraża.
I jak by tu nie próbować czegoś nowego? Ejabberd (demon Jabbera) świetnie się sprawuje, przez samą konstrukcję języka, w którym został napisany, koder ma dostęp do potężnego środowiska, które poradzi sobie w naprawdę trudnych warunkach. Dla przykładu - ktoś się pofatygował, aby przetestować Apache w porównaniu do YAWS. Wyniki - szczerze mówiąc - mnie zszokowały…
więcej
mod_rewrite, rewriting, przyjazne URL-e/adresy, maskowanie, przepisywanie, nazw jest sporo. Zresztą, najpopularniejsza pochodzi od swojego protoplasty - czyli mod_rewrite powstałego pod skrzydłami Apache’a jako moduł. Teraz właściwie standard, jeśli chodzi o nowoczesne strony www - nie tylko ze względu na wygląd, ale i (jak ptaszki ćwierkają, choć jest to wątpliwe wobec oficjalnych źródeł) SEO.
Jak zwał, tak zwał, adres http://example.org/kawalek/adresu wygląda dużo estetyczniej i jest łatwiejszy do zapamiętania niż potworki typu http://example.org/?kawalek=adresu&i=jeszcze&inny=fin
Niby nie jest to takie skomplikowane, ale niektóre sytuacje wydają się nie do rozwiązania.
Uwaga, notka tasiemcowata, więc jest spis treści. Polecam się również uzbroić w odpowiednią ilość czasu. ;]
więcej
W trakcie rozważań z ^kwiateuszem nad jakimiś usprawnieniami dla Forum PHP.pl (IPBoard) przyszedł mi do głowy pomysł, który zauważyłem kiedyś na Polskim Forum Jabbera. Stworzono do niego mod, który umożliwia powiadamianie użytkowników o nowych postach właśnie przez Jabbera.
Pisałem już o module powiadomień opartym o klasę Jabbera dla PHP, ale co w sytuacji, gdy serwer jest bardziej obciążony? Dla małych forów wcześniej omówione rozwiązanie - jak znalazł. Natomiast w przypadku większych aplikacji będzie stanowiło pewien problem - od wydajności po gubienie powiadomień, czy inne nieprzewidziane sytuacje.
Dlatego wykorzystamy w tym celu popularnego klienta IM pod shella, mianowicie ekg2. Umożliwi on również skorzystanie z powiadomień do innych sieci, m.in. Gadu-gadu, czy Tlen.
więcej
Jakiś czas temu Mateusz poprosił o parę słów na temat stanowiska do webdeveloperki na maszynie pracującej pod kontrolą Windows. Zagadnienie nie jest takie banalne, na jakie się wydaje, gdyż pierwotnie to systemy Unixowe były projektowane bardziej dla developerów, potem zaczęto myśleć o ZU. Natomiast w przypadku Windows można powiedzieć, że sytuacja była odwrotna.
Sam pracuję pod Windows (z wyboru, nie z przymusu), niektórzy pewnie też próbują; postaram się udowodnić, że wbrew obiegowym opiniom i pod Oknami da się wygodnie kodzić.
Grunt, to odpowiednio przygotowane środowisko, bo łyżeczką jeziora nie wykopie. [;
więcej
Jak wygląda życie zwykłego użytkownika Wordpressa…? Otwarcie przeglądarki, logowanie, napisanie notki, publikacja. Zaraz, a gdyby np. skorzystać w tym celu z jakiejś zewnętrznej aplikacji? Owszem, jest tego w pęczki, nie ma sensu wynajdywanie koła na nowo. Jednak protokół, z którego korzystają zewnętrzne aplikacje, może być wykorzystany także w naszych bibliotekach oraz z poziomu samego PHP.
Pomysł na dzisiejszy wpis podsunął mi ^lukjarz. ;]
więcej