<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>dev.cervino.pl</title>
	<atom:link href="http://dev.cervino.pl/feed/" rel="self" type="application/rss+xml" />
	<link>http://dev.cervino.pl</link>
	<description>Blog developerski</description>
	<lastBuildDate>Mon, 27 Apr 2009 12:39:57 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Zephyr 0.2</title>
		<link>http://dev.cervino.pl/2009/04/zephyr-02/</link>
		<comments>http://dev.cervino.pl/2009/04/zephyr-02/#comments</comments>
		<pubDate>Mon, 27 Apr 2009 12:39:57 +0000</pubDate>
		<dc:creator>Bartek Leśniak</dc:creator>
				<category><![CDATA[Biblioteki]]></category>
		<category><![CDATA[SVN]]></category>
		<category><![CDATA[Zephyr]]></category>

		<guid isPermaLink="false">http://dev.cervino.pl/?p=15</guid>
		<description><![CDATA[Zamieściłem dzisiaj nową wersję mojej biblioteki do obsługi szablonów XHTML &#8211; Zephyr 0.2. Jest to w dalszym ciągu wersja beta, jednak jeśli chodzi o obsługę to zbyt dużo się już nie zmieni. W stosunku do wersji 0.1 zmienił się sposób obsługi systemu z poziomu PHP, natomiast same szablony zachowały zgodność z poprzednią wersją.
Do systemu brakuje [...]]]></description>
			<content:encoded><![CDATA[<p>Zamieściłem dzisiaj nową wersję mojej biblioteki do obsługi szablonów XHTML &#8211; Zephyr 0.2. Jest to w dalszym ciągu wersja beta, jednak jeśli chodzi o obsługę to zbyt dużo się już nie zmieni. W stosunku do wersji 0.1 zmienił się sposób obsługi systemu z poziomu PHP, natomiast same szablony zachowały zgodność z poprzednią wersją.</p>
<p>Do systemu brakuje jeszcze dokumentacji, jednak z tym jest jeszcze trochę roboty (zamierzam także napisać dokumentacje dla autorów wtyczek).</p>
<p>Jako, że nie jest jeszcze gotowa &#8216;oficjalna&#8217; wersja (różniąca się tylko dokumentacją), to biblioteka ta jest dostępna na razie jedynie poprzez svn: <a title="http://svn.cervino.pl/zephyr/branches/0.2/" href="http://svn.cervino.pl/zephyr/branches/0.2/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/svn.cervino.pl/zephyr/branches/0.2/?referer=');">http://svn.cervino.pl/zephyr/branches/0.2/</a></p>
<p>Do SVN można także uzyskać dostęp za pomocą interfejsu WWW dostępnego tutaj: <a title="http://svn.cervino.pl" href="http://svn.cervino.pl" target="_self" onclick="pageTracker._trackPageview('/outgoing/svn.cervino.pl?referer=');">http://svn.cervino.pl</a> (można także kliknąć na odnośnik na górze bloga).</p>
<p>Prosiłbym także o opinie i sugestie, szczególnie jeśli zostaną wykryte jakieś błędy :)</p>
]]></content:encoded>
			<wfw:commentRss>http://dev.cervino.pl/2009/04/zephyr-02/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reorganizacja</title>
		<link>http://dev.cervino.pl/2009/04/reorganizacja/</link>
		<comments>http://dev.cervino.pl/2009/04/reorganizacja/#comments</comments>
		<pubDate>Wed, 08 Apr 2009 14:36:56 +0000</pubDate>
		<dc:creator>Bartek Leśniak</dc:creator>
				<category><![CDATA[Ogólne]]></category>
		<category><![CDATA[SVN]]></category>

		<guid isPermaLink="false">http://dev.cervino.pl/?p=8</guid>
		<description><![CDATA[Cześć!
Jak widać, na blogu ostatnio trochę się zmieniło :) Przez parę dni blog był niedostępny ze względu na reorganizację struktury katalogów na serwerze. W chwili obecnej już praktycznie wszystko działa (z wyjątkiem upload.cervino.pl, który na dniach powinien też się pojawić). Poza tym &#8211; nowy design, mam nadzieję, że bardziej czytelny :)
A co niedługo? Dostęp do [...]]]></description>
			<content:encoded><![CDATA[<p>Cześć!</p>
<p>Jak widać, na blogu ostatnio trochę się zmieniło :) Przez parę dni blog był niedostępny ze względu na reorganizację struktury katalogów na serwerze. W chwili obecnej już praktycznie wszystko działa<span style="text-decoration: line-through;"> (z wyjątkiem <a title="upload.cervino.pl" href="http://upload.cervino.pl" onclick="pageTracker._trackPageview('/outgoing/upload.cervino.pl?referer=');">upload.cervino.pl</a>, który na dniach powinien też się pojawić)</span>. Poza tym &#8211; nowy design, mam nadzieję, że bardziej czytelny :)</p>
<p>A co niedługo? Dostęp do SVN z działającym Zephyr&#8217;em 0.2</p>
]]></content:encoded>
			<wfw:commentRss>http://dev.cervino.pl/2009/04/reorganizacja/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Zephyr 0.1</title>
		<link>http://dev.cervino.pl/2008/11/zephyr-01/</link>
		<comments>http://dev.cervino.pl/2008/11/zephyr-01/#comments</comments>
		<pubDate>Mon, 10 Nov 2008 23:03:04 +0000</pubDate>
		<dc:creator>Bartek Leśniak</dc:creator>
				<category><![CDATA[Biblioteki]]></category>
		<category><![CDATA[Zephyr]]></category>

		<guid isPermaLink="false">http://dev.cervino.pl/?p=7</guid>
		<description><![CDATA[Z dniem dzisiejszym wychodzi pierwsza wersja biblioteki Zephyr. Jak na razie jest to wersja testowa, dlatego nie udostępniam jej dla wszystkich. Jeżeli jednak ktoś chciałby zostać beta-testerem, to proszę o kontakt. :) Po zakończeniu testów, czyli w ciągu najbliższych 2-3 tygodni, udostępnię bibliotekę na licencji GPL. O wszystkich szczegółach będzie można dowiedzieć się z tej [...]]]></description>
			<content:encoded><![CDATA[<p>Z dniem dzisiejszym wychodzi pierwsza wersja biblioteki Zephyr. Jak na razie jest to wersja testowa, dlatego nie udostępniam jej dla wszystkich. Jeżeli jednak ktoś chciałby zostać beta-testerem, to proszę o kontakt. :) Po zakończeniu testów, czyli w ciągu najbliższych 2-3 tygodni, udostępnię bibliotekę na licencji GPL. O wszystkich szczegółach będzie można dowiedzieć się z tej strony.</p>
]]></content:encoded>
			<wfw:commentRss>http://dev.cervino.pl/2008/11/zephyr-01/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cerberus</title>
		<link>http://dev.cervino.pl/2008/08/cerberus/</link>
		<comments>http://dev.cervino.pl/2008/08/cerberus/#comments</comments>
		<pubDate>Sun, 24 Aug 2008 09:57:15 +0000</pubDate>
		<dc:creator>Bartek Leśniak</dc:creator>
				<category><![CDATA[Biblioteki]]></category>
		<category><![CDATA[Cerberus]]></category>

		<guid isPermaLink="false">http://dev.cervino.pl/?p=4</guid>
		<description><![CDATA[Czyli co trzy głowy to nie jedna :) Cerber to kolejna biblioteka, którą chciałbym przedstawić. Do wydania stabilnej wersji jeszcze długa droga i pojawi się ona nie wcześniej niż Zephyr. Biblioteka ta będzie służyła do komunikacji z bazą danych. Główne założenia to: ORM, ActiveRecord, obsługa cache&#8217;owania. Całość będzie oparta o PHP Data Objects, ale o [...]]]></description>
			<content:encoded><![CDATA[<p>Czyli co trzy głowy to nie jedna :) Cerber to kolejna biblioteka, którą chciałbym przedstawić. Do wydania stabilnej wersji jeszcze długa droga i pojawi się ona nie wcześniej niż <em>Zephyr</em>. Biblioteka ta będzie służyła do komunikacji z bazą danych. Główne założenia to: ORM, ActiveRecord, obsługa cache&#8217;owania. Całość będzie oparta o PHP Data Objects, ale o całkiem innym interfejsie.</p>
<p>Przykładowy interfejs (pobieranie danych) prezentuję poniżej. Jak na razie jest to tylko sama idea (nic nie zostało jeszcze zaimplementowane), dlatego też prosiłbym o komentarze &#8211; co poprawić, usunąć, a może podejść do tego z zupełnie innej strony :)</p>
<div class="codecolorer-container php " style="overflow:auto;white-space:nowrap;width:600px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br /></div></td><td><div class="php codecolorer" style="font-family:Monaco,Lucida Console,monospace"><span class="co1">// wygenerowane zapytanie:</span><br />
<span class="co1">// select `id`,`nazwisko` from `users` where `imie` = 'Bartek' and `wiek` &lt; 25 order by `wiek` desc limit 5,10</span><br />
<br />
<span class="co1">// przykład 1</span><br />
<span class="re0">$result</span> <span class="sy0">=</span> <span class="re0">$db</span> <span class="sy0">-&gt;</span> <span class="me1">get</span><span class="br0">&#40;</span><span class="st_h">'users'</span><span class="sy0">,</span> <span class="kw3">array</span><span class="br0">&#40;</span><span class="st_h">'id'</span><span class="sy0">,</span> <span class="st_h">'nazwisko'</span><span class="br0">&#41;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">-&gt;</span> <span class="me1">where</span><span class="br0">&#40;</span><span class="kw2">new</span> CerCond<span class="br0">&#40;</span><span class="st_h">'imie'</span><span class="sy0">,</span> CerCond<span class="sy0">::</span><span class="me2">EQ</span><span class="sy0">,</span> <span class="st_h">'Bartek'</span><span class="br0">&#41;</span><span class="sy0">,</span> CerCond<span class="sy0">::</span><span class="me2">COND_AND</span><span class="sy0">,</span> <span class="kw2">new</span> CerCond<span class="br0">&#40;</span><span class="st_h">'wiek'</span><span class="sy0">,</span> CerCond<span class="sy0">::</span><span class="me2">LT</span><span class="sy0">,</span> <span class="nu0">25</span><span class="br0">&#41;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">-&gt;</span> <span class="me1">orderBy</span><span class="br0">&#40;</span><span class="st_h">'wiek'</span><span class="sy0">,</span> CerQuery<span class="sy0">::</span><span class="me2">DESC</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">-&gt;</span> <span class="me1">limit</span><span class="br0">&#40;</span><span class="nu0">5</span><span class="sy0">,</span> <span class="nu0">10</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">-&gt;</span> <span class="me1">execute</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<br />
<span class="co1">// przykład 2 (inna budowa zapytania + dodatkowo sprecyzowane typy zmiennych)</span><br />
<span class="re0">$cond</span> &nbsp;<span class="sy0">=</span> <span class="kw2">new</span> CerCond<span class="br0">&#40;</span> <span class="kw2">new</span> CerCond<span class="br0">&#40;</span><span class="st_h">'imie'</span><span class="sy0">,</span> CerCond<span class="sy0">::</span><span class="me2">EQ</span><span class="sy0">,</span> <span class="st_h">'Bartek'</span><span class="sy0">,</span> CerCond<span class="sy0">::</span><span class="me2">PARAM_STR</span><span class="br0">&#41;</span><span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CerCond<span class="sy0">::</span><span class="me2">COND_AND</span><span class="sy0">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">new</span> CerCond<span class="br0">&#40;</span><span class="st_h">'wiek'</span><span class="sy0">,</span> CerCond<span class="sy0">::</span><span class="me2">LT</span><span class="sy0">,</span> <span class="nu0">25</span><span class="sy0">,</span> CerCond<span class="sy0">::</span><span class="me2">PARAM_INT</span><span class="br0">&#41;</span> <span class="br0">&#41;</span><span class="sy0">;</span><br />
<br />
<span class="re0">$query</span> <span class="sy0">=</span> <span class="re0">$db</span> <span class="sy0">-&gt;</span> <span class="me1">get</span><span class="br0">&#40;</span><span class="st_h">'users'</span><span class="sy0">,</span> <span class="kw3">array</span><span class="br0">&#40;</span><span class="st_h">'id'</span><span class="sy0">,</span> <span class="st_h">'nazwisko'</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="re0">$query</span> <span class="sy0">-&gt;</span> <span class="me1">where</span><span class="br0">&#40;</span><span class="re0">$cond</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="re0">$query</span> <span class="sy0">-&gt;</span> <span class="me1">orderBy</span><span class="br0">&#40;</span><span class="st_h">'wiek'</span><span class="sy0">,</span> CerQuery<span class="sy0">::</span><span class="me2">DESC</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="re0">$query</span> <span class="sy0">-&gt;</span> <span class="me1">limit</span><span class="br0">&#40;</span><span class="nu0">5</span><span class="sy0">,</span> <span class="nu0">10</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<br />
<span class="re0">$result</span> <span class="sy0">=</span> <span class="re0">$query</span> <span class="sy0">-&gt;</span> <span class="me1">execute</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<br />
<span class="co1">// wynikiem działania metody execute() będzie tablica obiektów CerResult</span></div></td></tr></tbody></table></div>
<p>P.S. <strike>Wie ktoś może jak zrobić w WordPressie, żeby kolorował składnię PHP?</strike> <a href="http://downloads.wordpress.org/plugin/codecolorer.0.6.0.zip" onclick="pageTracker._trackPageview('/outgoing/downloads.wordpress.org/plugin/codecolorer.0.6.0.zip?referer=');">CodeColorer</a> :)</p>
]]></content:encoded>
			<wfw:commentRss>http://dev.cervino.pl/2008/08/cerberus/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Zephyr</title>
		<link>http://dev.cervino.pl/2008/08/zephyr/</link>
		<comments>http://dev.cervino.pl/2008/08/zephyr/#comments</comments>
		<pubDate>Sat, 23 Aug 2008 14:45:18 +0000</pubDate>
		<dc:creator>Bartek Leśniak</dc:creator>
				<category><![CDATA[Biblioteki]]></category>
		<category><![CDATA[Zephyr]]></category>

		<guid isPermaLink="false">http://dev.cervino.pl/?p=3</guid>
		<description><![CDATA[Tak, wiem że jestem strasznie leniwy i że miałem już to dawno napisać, ale cóż :P Jak widać po tytule wpis ten będzie o Zefirze &#8211; moim systemie szablonów. Ale najpierw krótka historia:

O pierwszej wersji w ogóle nie wspomnę, bo była strasznie prymitywna, napisana w 2003 roku.
6 kwietnia 2004 &#8211; Vboard Templates &#8211; wersja napisana [...]]]></description>
			<content:encoded><![CDATA[<p>Tak, wiem że jestem strasznie leniwy i że miałem już to dawno napisać, ale cóż :P Jak widać po tytule wpis ten będzie o Zefirze &#8211; moim systemie szablonów. Ale najpierw krótka historia:</p>
<ol>
<li>O pierwszej wersji w ogóle nie wspomnę, bo była strasznie prymitywna, napisana w 2003 roku.</li>
<li><strong>6 kwietnia 2004</strong> &#8211; <em>Vboard Templates</em> &#8211; wersja napisana obiektowo. Zawierała już nie tylko wstawianie zmiennych, ale także podział na bloki. Używana była w 3 wersji mojego forum dyskusyjnego &#8211; <em>Vboard</em>. Forum niestety nie zostało nigdy dokończone i pozostało jedynie wersją beta.</li>
<li><strong>12 maja 2005</strong> &#8211; <em>TPL</em> &#8211; klasa będąca rozbudową wersji drugiej, dodanych zostało parę usprawnień (głównie możliwość pisania kodu PHP wewnątrz plików szablonów &#8211; co nie było i tak zbyt często później wykorzystywane). Klasa używana w panelu administracyjnym <em>NGS</em>.</li>
<li><strong>7 marca 2006</strong> &#8211; <em>Template System</em> &#8211; przepisanie systemu od nowa na PHP5, a także znaczące zmiany w porównaniu z poprzednimi wersjami (dodana obsługa błędów i tworzenie raportów; dodanie obsługi instrukcji warunkowych IF oraz NOT; dodanie obsługi zmiennych, które są tablicami). Ostatnia wersja tego systemu to 4.4 (5 września 2006). Na tym systemie działał m.in. skrypt <a title="gallery" href="http://www.cervino.pl/portfolio/gallery/" onclick="pageTracker._trackPageview('/outgoing/www.cervino.pl/portfolio/gallery/?referer=');">gallery</a>.</li>
<li><strong>25 luty 2007</strong> &#8211; <em>Everest Template System</em> &#8211; przepisanie od nowa obsługi szablonów (zachowana kompatybilność plików szablonów z wersją 4), dodanie obsługi dokumentów XML oraz XHTML (wysyłanie odpowiednich nagłówków). Od wersji 5.3 zmiana kodowania skryptu na UTF8. Ostatnia wersja tego systemu to 5.6 (16 października 2007). Była to najdłużej wykorzystywana wersja, zrobione zostało na jej podstawie m.in. <a title="cervino.pl" href="http://www.cervino.pl" onclick="pageTracker._trackPageview('/outgoing/www.cervino.pl?referer=');">moje portfolio</a> (które do dziś działa na wersji 5.5), skrypt <a title="du4" href="http://upload.cervino.pl" onclick="pageTracker._trackPageview('/outgoing/upload.cervino.pl?referer=');">du4</a> (wersja 5.3), <a title="monviso" href="http://www.cervino.pl/portfolio/monviso/" onclick="pageTracker._trackPageview('/outgoing/www.cervino.pl/portfolio/monviso/?referer=');">monviso</a> (wersja 5.2) oraz sporo innych stron.</li>
<li><strong>1 luty 2008</strong> -  <em>Everest Template System 6</em> &#8211; całkiem nowe podejście do obsługi szablonów. Pliki szablonów mają nową strukturę i są zapisywane jako dokumenty XML. Znaczniki zapisywane są jako atrybuty tagów HTML. Podobnie jak Smarty, system kompiluje szablony do kodu PHP, dzięki czemu jest bardzo szybki. Na podstawie tej wersji jest tworzony <em>Zephyr</em>.</li>
</ol>
<p>Zephyr to tak właściwie to samo co szósta wersja systemu szablonów (który jest jeszcze w wersji beta). Zmiany są jedynie kosmetyczne. W związku z tym, że szósta wersja tak bardzo różni się od pozostałych postanowiłem zmienić jej nazwę i rozpocząć numerację od początku. Stabilna wersja powinna pojawić się jeszcze we wrześniu tego roku.</p>
]]></content:encoded>
			<wfw:commentRss>http://dev.cervino.pl/2008/08/zephyr/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Hello world!</title>
		<link>http://dev.cervino.pl/2008/08/hello-world/</link>
		<comments>http://dev.cervino.pl/2008/08/hello-world/#comments</comments>
		<pubDate>Tue, 12 Aug 2008 19:16:04 +0000</pubDate>
		<dc:creator>Bartek Leśniak</dc:creator>
				<category><![CDATA[Ogólne]]></category>

		<guid isPermaLink="false">http://cervino.pl/devblog/?p=1</guid>
		<description><![CDATA[Witaj na moim blogu deweloperskim! Postanowiłem go założyć, aby informować o postępach prac nad moimi projektami, oraz aby wreszcie przerwać ten zastój w programowaniu i zacząć pisać coś konkretnego ;)
Tak więc najpierw zajmę się opisaniem projektu którym zajmuję się ostatnio i mam nadzieję skończyć go niebawem &#8211; systemem szablonów Zephyr. Ale to już temat na [...]]]></description>
			<content:encoded><![CDATA[<p>Witaj na moim blogu deweloperskim! Postanowiłem go założyć, aby informować o postępach prac nad moimi projektami, oraz aby wreszcie przerwać ten zastój w programowaniu i zacząć pisać coś konkretnego ;)</p>
<p>Tak więc najpierw zajmę się opisaniem projektu którym zajmuję się ostatnio i mam nadzieję skończyć go niebawem &#8211; systemem szablonów Zephyr. Ale to już temat na kolejny wpis :)</p>
]]></content:encoded>
			<wfw:commentRss>http://dev.cervino.pl/2008/08/hello-world/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

