Projekty: Wpisy dotyczące prowadzonych przeze mnie rozmaitych projektów programistycznych (tak w PHP, jak i w innych językach programowania).
Projekty: Wpisy dotyczące prowadzonych przeze mnie rozmaitych projektów programistycznych (tak w PHP, jak i w innych językach programowania).
Scenka z życia projektanta dużej biblioteki. Dzień pierwszy: padła propozycja, by bardziej uobiektowić API dla użytkownika końcowego, gdyż póki co przypomina ono rozwiązania z początku tysiąclecia i konkurencję, a na dokładkę średnio pasuje do istniejących obecnie frameworków. Dzień drugi: sprawa została przemyślana.
Robię właśnie pewien projekcik na bazie Zend Frameworka, w którym postanowiłem zrobić rzeczywiste testy Open Power Template'a 2 (przy okazji - do ściągnięcia jest już dev7). Niestety, z nowymi wersjami nie idzie już tak łatwo, jak ongiś z 1.1. Problem sprawia Zend_Layout, którego projektanci wyszli z założenia, że systemy szablonów są za głupie, by potrafić takie zaawansowane rzeczy.
Kilka dni temu w Internecie ukazała się pierwsza wersja skryptu TypeFriendly służącego do generowania dokumentacji. Napisałem ją, zniechęcony efektami pracy w DocBooku. W przeciwieństwie do narzędzi typu phpDocumentor, wszystkie rozdziały pisze się tutaj (jeszcze) ręcznie, natomiast skrypt dba o ich poprawne przetworzenie na XHTML, utworzenie nawigacji itd. Natomiast dzisiaj na Zyxist.com pojawił się samouczek pokazujący, jak rozpocząć pracę nad własną dokumentacją w tym systemie.
Flyspray to chyba najlepszy bugtracker napisany w PHP. Używałem go od dawna i zawsze spełniał swoje zadanie, jednak najnowsza wersja zachowywała się... dziwnie. Nie było żadnych przeciwwskazań, by nie użyć tego jako oficjalnego błędospisu w Invenzzii, wobec czego zainstalowany został tam na serwerze. Bardzo szybko zaczęły się jaja polegające na problemach z dostępem, chociaż początkowo myślałem, że to coś Dreamhost sknocił.
Od kiedy wysłałem wpisy dotyczące Open Powerów na inny blog, informacje o tym nie pojawiają się już tutaj, ale myślę, że to wydarzenie warto uwiecznić. Dziś puściłem w świat OPT 1.1.4, ostatnią wersję z tej gałęzi. Doszło parę nowych rzeczy, o które byłem proszony, dodatkowo poprawiłem parę błędów. Wydarzenie to jest o tyle istotne, że z tym kodem się już żegnamy, gdyż ta gałąź nie będzie już dalej rozwijana (aczkolwiek gdyby ktoś tam znalazł problem utrudniający mu pracę, to po zgłoszeniu na forum powinienem znaleźć czas, by mu to poprawić). Następny w planie wydawniczym jest OPT 2.0.0, gotowy już w około 80%.
W poprzednim wpisie pisałem o konieczności wspólnego rozwoju oprogramowania. Wpis ten w zasadzie mógł się pojawić już wiele dni temu, ponieważ już od pewnego czasu prowadziłem prace przygotowawcze do uruchomienia zespołu programistycznego. Ze znalezieniem niedużej grupy zaufanych ludzi, z którymi mam dobry kontakt, nie było specjalnych trudności. Niestety było to tuż przed początkiem sesji i dlatego nie było specjalnie kiedy się za to wziąć. Jednak sesja powoli mija i dnia dzisiejszego ruszyły pierwsze sekcje strony internetowej grupy Invenzzia.
Choć sesja w pełni, OPT nie jest do końca martwy. W tramwaju czy w autobusie jest nieco wolnego czasu akurat by pomyśleć nad kształtem projektu. Ostatnio rozmawiałem z bratem na temat dwóch nowych rzeczy; jedną zaproponował on i niezbyt mi się spodobała, drugą zaproponowałem ja i nie spodobała się jemu. Postanowiłem więc poddać obie rzeczy pod publiczną dyskusję.
Przygotowałem właśnie pierwszą paczkę z wersją rozwojową OPT 2.0.0. Nie jest ona przeznaczona do użytku produkcyjnego, gdyż nie jest zaimplementowane jeszcze całe mnóstwo opcji i funkcjonalności, ale mniej więcej pokazuje już, jak to wszystko będzie wyglądać po zmontowaniu. Do paczki, oprócz biblioteki, dołączyłem też dwa gotowe unitTesty (wyrażenia oraz API), ukończoną część polskiej dokumentacji i kilka skryptów developerskich do testowania różnych elementów. W tym wypadku mowa tu o sekcjach, instrukcjach warunkowych, kompilacji prologu oraz obsłudze błędów.
Wieści z frontu, czyli prac nad OPT2 ciąg dalszy. Projekt dużymi krokami zbliża się do pierwszego publicznego pokazania. Dziś z grubsza ukończyłem parser wyrażeń, tj. wszystko, co powinno być, jest na swoim miejscu i trzeba tylko sprawdzić, czy jest prawidłowo poustawiane. Niestety nie mogę tego dokładnie w tej chwili zrobić, ponieważ nie mam przy sobie zestawu testów napisanych na tę okazję. Niemniej jednak dziś opowiem więcej o obsłudze OOP po stronie szablonów, wyrażeniach oraz zaprezentuję pierwszą z gotowych instrukcji: ifa.
Po kilku dniach kodowania kompilator nowego systemu szablonów Open Power Template 2 przetworzył do końca swój pierwszy szablon. Z rezultatów oraz potencjału jestem więcej, niż zadowolony. W porównaniu z dotychczasową wersją będzie to naprawdę duży skok jakościowy, lecz droga do ukończenia jeszcze daleka. Jakieś wydanie podglądowe będzie dostępne, gdy tylko ukończone zostaną najbardziej podstawowe elementy.