Dec
08
2005
Filed under Ogólne by Łukasz Dywicki
Planuję w końcu uporządkować swoje sprawy. Mam już dość spóźniania się do pracy – najpóźniejsza godzina, na którą powinienem się zjawić w pracy to dziesiąta i jeszcze zdarza mi się zaspać..
Dlatego postanawiam wszem i wobec, że od dzisiaj staram się walczyć o to by stać się punktualnym. Postaram się również przestawić swój zegar biologiczny w tryb normalny a nie nocny. Nie mam jeszcze dokładnej koncepcji jak zorganizować sobie popołudnie – to znaczy jak podzielić czas po godzinie siedemnastej.
Małą zmianą w moim życiu była czasowa rezygnacja ze studiów. :)
Na blogu również szykują się zmiany. Będą przenosiny na nowy serwer, będzie nowa domena, będzie nowy design. Mam zamiar postawić również nowy system.
Co z tego wyjdzie? Czas pokaże :)
Dec
08
2005
Filed under Ogólne by Łukasz Dywicki
W zeszłym tygodniu firma, w której pracuję nabyła za moją namową książkę – “Architektura systemów zarządzania przedsiębiorstwem. Wzorce projektowe”[1]. Tłumaczenie – przyznam nienajlepsze. Szczególnie rozbawiło mnie tłumaczenie słowa widgety na widżety – skojarzenia z bajką o podobnym tytule nasuwają się same.
Sama treść zapewne byłaby dzięki dobremu tłumaczeniu bardzo dobra, a tak jest tylko średnia. Na naganę zasługuje też polonizowanie diagramów, na których widnieją kwiatki typu getMiasto, getAdres są też Miksy takie jak nazwa tabeli po polsku (Album), po angielsku druga tabela (Track) i wszystkie kolumny łącznie z danymi. Słowem tłumaczenie, co najwyżej mierne. Drugą i trzecią książkę nabyłem samodzielnie.
Jest to “Podstawowy wykład z systemów baz danych”[2] Wydawnictwa Naukowo Technicznego oraz “Analiza i projektowanie obiektowe”[3] wydawnictwa Helion.
Z obiema nie miałem czasu się dobrze zapoznać, starałem się tylko przeczytać rozdział o projektowaniu bazy w pierwszej, lecz zraziło mnie bardzo matematyczne podejście. Czytałem o normalizacji w innej książce (Java. Najlepsze rozwiązania bazodanowe[4]) i tam było to o wiele przystępniej wyjaśnione. Brakuje w książce również omówienia diagramów encji tworzonych według standardów branżowych w narzędziach takich jak CASE Studio. Owszem E/R jest, ale bardziej to przypomina diagramy przepływu UML niż logiczny schemat bazy danych, z którego można wygenerować strukturę. Autor szeroko się rozwodzi nad ODL, z którym jeszcze ani razu się nie spotkałem.
Z Analizy i projektowania obiektowego przeczytałem tylko rozdział o kryzysie oprogramowania, ale w najbliższym czasie na pewno zapoznam się z tą książką głębiej.
Dec
01
2005
Filed under PHP by Łukasz Dywicki
Wczoraj, bądź przedwczoraj wpadłem na pomysł wykorzystania DOM XML i XSL przy tworzeniu szablonów. Zainspirował mnie PHP TAL (Template Attribute Language).
Z początku szablon miał być stylem XSL, jednak pomysł ten szybko odpadł ze względu na to, że uniemożliwia to tworzenie własnych komponentów, a przynajmniej ja nie wiem jak to zrobić. W tym układzie w pamięci przechowywany byłby obiekt DomDocument z odpowiednią struktórą – odwzorowaniem dodanych zmiennych.
Drugi pomysł wyklucza użycie XSL. Szablon jest parsowany DOM XMLem a następnie rekurencyjnie przeglądany. Na podstawie nazw tagów i zarejestrowanych na początku szablonu rozszeżeń parser tworzy odpowiednie obiekty odpowiadające za komponenty. Ogólnie idea tworzenia własnych rozszeżeń jest rodem z JSP.
Nie wiem co z tego wyjdzie i wogóle czy coś z tego będzie.. ;)
Jedno jest pewne – odpada problem z gromadą wyrażeń regularnych, pozbywam się kompilatora. Zostaje parser i być może cache. Sam jestem ciekaw czy to rozwiązanie będzie szybsze niż np. Smarty.
Poniżej bardzo abstrakcyjne przykłady.
<?xml version="1.0" ?>
<x xmlns:i18n="http://template.splatch.pl/i18n"
xmlns:pst="http://template.splatch.pl/pst"
xmlns:attr="http://template.splatch.pl/attr"
xmlns="http://template.splatch.pl/" >
<i18n:message select="Hello">
<pst:test equals="true" assigned:variable="AssignedVar" assigned:value="OtherVar">
Test 1
</pst:test>
<pst:test identical="true" assigned:variable="AssignedVar" value="TestVar">
Test 2
</pst:test>
</x>
<?php
$tpl = new PST;
$i18 = ConfigParserFactory::get('i18n-test/pl.ini');
$tpl->setI18nDatasource($i18); // ConfigParser
$tpl->assign('AssignedVar',true);
$tpl->assign('OtherVar',false);
$tpl->display('test.xml');
?>
Nov
14
2005
Filed under Ogólne by Łukasz Dywicki
W nieoficjalnych notkach GoF często przwija się wspomniana w tytule proteza, oto co udało mi się wywnioskować ze znalezionych materiałów w sieci:
Zaawansowana technika programowania przeznaczona dla koneserów inżynierii oprogramowania polegająca na zachowaniu rozsądnej granicy pomiędzy warstwą implementacji a logiką biznesową tudzież warstą prezentacyjną. Stosowanie wzorca protezy owocuje znacznym skróceniem czasu implementacji oraz zwiększeniem stopnia powiązań przy jednoczesnym zachwianiu spójności projektu.
Proteza jest wzorcem wymagającym idealnego dopasowania do kontekstu. Przy złym zasosowaniu tego wzorca pojawiają się problemy z elastycznością i skalowalnością. Początkujący projektanci powinni unikać protezy ze względu na problemy z późniejszymi zmianami zaprowadzanymi w innych częściach aplikacji…”
Nov
06
2005
Filed under Sprzęt by Łukasz Dywicki
Nareszcie jest internet w domu. :) Po 4 miesiącach życia na płytach (CD) wreszcie usłyszałem odgłos przychodzącej wiadomości z PSI, odebrałem pocztę. Ten mały sukces będzie spektakularny jeśli uda mi się zbudować sieć lokalną razem z innymi lokatorami, bo póki co internetem cieszę się tylko ja. No, ale mam nadzieję, że się uda skombinować jakiś AP z routerem i czteroportowym switchem. Jedyny mankament to opłata instalacyjna (200 zł) plus koszt AP (kolejne 200 zł). Ale pokrywamy je wspólnie, więc powinno być ok. :) Abonament 89 zł brutto + 25 zł za zewnętrzny IP. Przepustowość 260/130 kbps. Dziwi mnie jedno – dzierżawiona karta, która ma niby kosztować 300 zł, kiedy podobne na komputroniku są za mniej niż 150 zł.
Tak przy okazji nabyłem również “nowy” dysk. Matrox 160 GB 7200 RPM/8MB cache po okazyjnej cenie (jeszcze z roczną gwarancją) za 250 zł.
Nov
03
2005
Filed under PHP by Łukasz Dywicki
Wczoraj podczas rozmowy z Chmolu dowiedziałem się, że podobno są źródła nowego frameworka w CVSie. Nie czekając pobrałem najnowszą wersję (oznaczoną numerkiem 6)
Troszkę to trwało, zanim pobrały się te wszystkie biblioteki, ale w końcu są.. Rozglądam się po źródłach (teoretycznie wersji 6), ale nic specjalnego tam nie ma, jakiś przykład napisany w C do filtrowania globalsów (moduł main?!), który i tak w praktyce na nic się nie zda, bo kto da możliwość dodawania własnych rozszeżeń na serwie… ;), w Zend Engine również zmian brak, nic specjalnego nie ma poza bałaganem. Zdaje się, że poza pracami nad wsparciem unicode nic się tam nie dzieje. Owszem są branche do namespaces, ale nic się nie zmienia w samych plikach. Zmiany w zend_objects.h kończą się 3 sierpnia. Rozglądałem się za jakąś wersją pośredniczącą (5.5), ale takiej gałęzi w CVSie nie ma. Po przejrzeniu ChangeLoga stwierdziłem, że tam nic o PHP6 nie ma, jedyne co się pojawia to PHP 5.1. Dodam, że postępowałem zgodnie z instrukcjami na PHP.net. No, ale nic znalazłem moduł php6, zobaczymy co w nim jest.
Powiem, że poczułem zawód, ale nie tylko przez to, że nie znalazłem źródeł nowego frameworka. Mam wrażenie, że prace nad nowszymi wersjami (pięć i sześć) są opóźniane przez to, że wciąż jest prowadzony support dla czwórki. Przecież piątka była wydana przeszło rok temu, a tutaj cały czas wlecze się 4. PHP.net dostało cięgi za wydanie wersji 4.4, ale powinno coraz bardziej dostawać w kość za wydawanie kolejnych fiksów do 4.4<. Jak ma wejść piątka na stałe, skoro cały czas są poprawiane stare błędy. IMO gdyby pojawiły się jakieś krytyczne bugi, które nie zostałyby usunięte w 4 ale w 5 tak to część hostów zdecydowałaby się na przejście z średniowiecza do renesansu :). Możliwe, że się mylę w tym ostatnim zdaniu, bo nie znam do końca faktów, ale IMO przyjdzie nam jeszcze sporo poczekać za PHP6 jak i PCP, tak długo, że Mojavi 4 z pewnością zdąży wyjść i kolejna wersja tego dobrego frameworka będzie pisana pod PHP 6/PCP.
Przy okazji spójrzcie jakie cuda można zobaczyć z MySQL:
http://splatch.php.org.pl/_img/baza.jpg
Oct
27
2005
Filed under Ogólne by Łukasz Dywicki
Oj tak, mała przerwa. Przez miniony tydzień praktycznie nic nie dopisałem do frameworka, naturalnie z braku czasu. Czasu miałem tylko tyle, żeby zacząć bawić się Strutsem (ebook “Struts in action”), ściągnąć Springa.. Struts spodobał mi się, na prawdę ciekawy. Zainspirował mnie do nowych przemyśleń.
Najprawdopodobniej w przyszłym tygodniu będę miał już internet w domu, więc nie będzie problemów z publikowaniem notek. Koszt instalacji i aktywacji to 200 zł, ale dochodzi jeszcze router i dodatkowe okablowanie (tak, będzie sieć domowa) + 200 zł. Mam nadzieje, że całość zamknie się w tych czterystu złotych. ;)
Do przyszłej soboty mam też skończyć jedno zlecenie, szkoda, że praktycznie za bezcen, ale czego to się nie robi by ratować przyjaciół w potrzebie. Proste zarządzanie kilkoma podstronami + moduł do obsługi produktów i nie powiązanych z nimi dystrybutorów (oni są tylko w województwach). Ciekawie zapowiadają się grupy produktów, bo każdy produkt może być w kilku grupach. Mam zamiar załatwić to drzewkiem + tabelą pośredniczącą pomiędzy product a group.
Przy okazji, jakiś czas temu robiłem fotki – mój pokój:
http://splatch.php.org.pl/dom/1.jpg
i dom w którym obecnie mieszkam:
http://splatch.php.org.pl/dom/20.jpg
i stanowisko pracy:
http://splatch.php.org.pl/biurko.jpg
Oct
06
2005
Filed under Ogólne by Łukasz Dywicki
No.. siedzę właśnie w nowej pracy. Jest super. Ludzie spoko, szef w porządku – słowem pracować i nie odchodzić. Do nowego miejsca pracy mam nieco ponad 10 minut pieszo, więc odchodzi problem z autobusami (ostatnio tyle czasu potrzebowałem na dojście do przystanku). Pojawił się mały problem, bo straciłem hasło do kompa w domu i jak by nie patrzećjestem uziemiony. Prace nad PSF stoją, a ja kwitnę wieczorami przed telewizorem. Ale nie będzie źle … po reinstalacji systemu pewnie będzie troszkę szybciej działać. W sumie, może w grudniu wezmę laptopa w raty …
Co do PSF naszkicowałem diagramy klas dla filtrów i configów. Ten pierwszy nie różni się niczym od tego, który można zobaczyć w Core J2EE patterns przy custom filter strategy.
Wcześniej zarzucano mi definiowanie na sztywno ścieżek do plików konfiguracyjnych. Wpadłem na pomysł jak to rozwiązać:
<module> <name>JakiśMod</name> <default>JakaśAkcja</default> <config>%PSF_DIR%/Modules/%PSF_MODULE_NAME%/Config.xml</config> </module>
Myślę, że rozwiąże to częściowo problem z definiowaniem typu parsera..
Sep
29
2005
Filed under Ogólne by Łukasz Dywicki
Źródła mojego frameworka do pobrania pobierz
Screen z daeronem zobacz
Sep
28
2005
Filed under Ogólne by Łukasz Dywicki
Troszkę mało czasu mam, bo zmieniam pracę, ale za jakiś czas opiszę to i owo.