Archiwum dla maj, 2007

19
maj

Sesja

Dzisiaj zjarzyłem, że został równo miesiąc do sesji… to jest bad news ogólnie bo ostatnio zajmowałem się głównie programowaniem w PHP i dorabianiem do stypendium naukowego zamiast pogłębianiem regularnie wiedzy :)

Cóż - trzeba dokończyć zlecenia i wziąść się do nauki…

16
maj

GPW

GPW ma się wahająco ostatnio, mimo to nieco zaryzykowałem i sprzedałem SEB4 po minimalnym plusie a zostawiłem PZU MiSS, który radzi sobie zdecydowanie lepiej. Część gotówki wrzuciłem też w DWS rynku pieniężnego.

Zobaczymy co się święci, korekta szykuje się długo i coś nie może nastać..

13
maj

Framework ?

Nastała ostatnimi czasy moda na frameworki - każdy pisze własny. Myślałem o frameworku jakieś pół roku temu i uznałem, że jeszcze nie czas na niego, że być może nie dojrzałem do pisania własnego frameworka ;]

Jak pisałem w jednej z notatek “(…)każdy programista PHP musi napisać framework(…)”. No cóż. Teraz zastanawiam się nad tym dużo poważniej, ale ze względu na zlecenia i zbliżającą się sesje chyba odłożę ten pomysł na wakacje. Chociaż nie chciałbym pisać go tak do końca samemu. Może znajdę jakiś innych samobójców do wspólnej zabawy i kodowania w PHP5…

Wcześniej czeka mnie pewnie lepsze zrozumienie wzorców projektowych i poznanie ich w większej ilości niż te kilka, które opanowałem.

13
maj

cURL masowo

Muszę pobrać mnóstwo danych z innego serwera ( dane nie chronione prawem autorskim ). Na początku na myśl mi przyszło fsockopen i męczenie się z headerami. Nie była to optymistyczna myśl, ale szybko przypomniałem sobie o cURL. Natychmiast sprawdziłem czy mój server provider udostępnia tą bibliotekę w PHP5 - udostępnia :)

Zaczęło się pisanie, szło bez większych problemów. Jak zwykle schody zaczęły się przy testowaniu. Zonkiem był czas działania skryptu i jego nie zawsze pełne wykonanie. Pomijam, że czekałem ponad 1h aby skrypt dodał do mojej bazy niecałe 8000 rekordów. Gorsze było to, że tych rekordów powinno być ponad 13000….

Wymyśliłem mały podział mianowicie po uruchomieniu pliku pobierał on do tymczasowej tabeli wszystkie URL’e jakie musiałem odwiedzić aby pobrać dane ( oczywiście za pomocą cURL i preg_match_all się to odbywało ). Potem wyświetlałem formularz z informacją, że skrypt może się długo wykonywać i przycisk DALEJ. Teraz już tylko odwiedzanie stron, pobieranie ich zawartości, filtrowanie i zapis w bazie. Całość trwa teraz mniej niż 40min i działa bezawaryjnie :)

12
maj

Problem z kodowaniem - krzaczki

Dostałem plik XML w kodowaniu UTF-8 i miałem go przetworzyć w celu zapisania tych samych danych w bazie MySQL. No cóż, na pierwszy rzut oka - no problem ;]

I tak było, napisałem skrypt, który bez problemu przetwarzał cały plik XML, korzystając z simpleXML w PHP5. Problemy zaczęły się przy wcale z kodowaniem. Pamiętny poprzednich bojów z tym podczas przenoszenia forum na inny serwer, wykonałem zapytanie:
mysql_query( 'SET CHARSET utf-8' );
Zadowolony odpalam skrypt i widzę… krzaki :|

Walczyłem z tym długo, zmieniając kodowanie w bazie danych, metody porółnywania napisów etc. Aż zauważyłem, że powinno być:
mysql_query( 'SET CHARSET utf8' );
I działa.

05
maj

PHP na serwerze

Dzisiaj zostałem mile zaskoczony. Marudziłem adminom serwera, że mod_rewrite się sypie i od 2 dni tego nie naprawili. Natomiast po tym jak zadziałało ujrzałem coś wspaniałego w wyniku działania funkcji phpinfo().

PHP5.2.1

Czyli najnowsza wersja stable :)

Doinstalowali mi też wreszcie sterownik do MySQL’a dla PDO. Jest git ;]

04
maj

Programista? A co to… ?

Przeczytałem dzisiaj dość intrygującą i sceptyczno-pesymistyczną dyskusję na temat programistów w Polsce. Generalnie pracodawcy postrzegają takich jako nieudolnych absolwencików albo nic nie wartych leni. Chcieliby od razu geniuszy, którzy najlepiej żeby pracowali za 2000 zł. Marudzą, że po studiach ludzie nic umieją, że ciężko znaleść dobrych pracowników etc. A nie pomyślą nawet, żeby dać im szansę się wykazać. Przyjąć na miesiąc ( z małą pensją albo z żadną ), dać określone zadanie i zobaczyć jak sobie z nim radzi dany kandydat. Można też dać to jako zadanie domowe…

Bo przecież gdzie taki student ma się wykazać, jak wszędzie chcą absolwenta z 3-4 letnim stażem. No to jest prawdziwy LOL. Ja wiem, że niektórzy na studiach są ‘po papierek’, ale nie każdy.

Kończę tym pesymistycznym akcentem. Niestety pesymistycznym.

03
maj

Przeglądarka klas

Od zawsze borykam się z problemem znalezienia na dysku klasy, którą już kiedyś pisałem. Postanowiłem zrobić prościutki serwis, który będzie listował wszystkie klasy z konkretnego katalogu i wyświetlał mi tą, którą potrzebuję. Przy okazji zyskam miejsce, gdzie będę gromadził swoje klasy na serwerze.

KONIEC z POSZUKIWANIAMI na ślepo!

02
maj

PHPowcy

Przeczytałem dzisiaj ciekawy tekst na temat programistów PHP:

PHPowcy mają podejście, że każdy powinien zasadzić drzewo, zbudować dom, spłodzić syna, napisac CMS i napisać framework

Po prostu padłem…

02
maj

Registry czyli Rejestr

Ostatnio przyspieszyłem poznawanie wzorców projektowych i co ciekawe jakoś łatwiej mi to przychodzi niż przed kilkoma miesiącami. Może dojrzałem do tego? ;]

Kolejny wzorzec jakim się zainteresowałem ( co prawda przez przypadek, ale to nie zmiania faktu ) to wzorzec rejestru. Do czego służy? Ano, do rejestrowania różnych zmiennych, aby mieć do nich globalny dostęp. Oczywiście globalny nie w pełni tego słowa znaczeniu. Rejestrując zmienne posiadamy coś w rodzaju pojemnika na nie. Mało tego, możemy również zabronić używania dwóch zmiennych jakiegoś lub wszystkich typów. Możliwości jest wiele, wszystko jak zwykle zależy od inwencji twórczej programisty.

Wadą tego wzorca jest to, że albo musimy instancję naszej klasy rejestrującej przekazywać jako paramatr np do metod w klasach, albo uczynić z niego wzorzec mieszany Singleton Registry. Każda opcja ma swoje wady i zalety. A co za tym idzie zawsze trzeba się zdecydować, które rozwiązanie będzie dla nas wygodniejsze.

Niestety jeszcze nie implementowałem tego samodzielnie w PHP ( oczywiście dzięki google łatwo zapewne znaleść gotowce, ale nie pomaga to w dobrym zrozumieniu tematu )