<?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>Athlan • Piotr Pelczar • blog programisty &#187; Projects</title>
	<atom:link href="http://athlan.pl/kategoria/projects/feed/" rel="self" type="application/rss+xml" />
	<link>http://athlan.pl</link>
	<description>Napisać kod zrozumiały dla komputera potrafi byle głupek. Dobrzy programiści tworzą kod zrozumiały dla człowieka...</description>
	<lastBuildDate>Sat, 17 Jul 2010 18:54:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Zintegrowane logowanie cms z forum</title>
		<link>http://athlan.pl/zintegrowane-logowanie-forum/</link>
		<comments>http://athlan.pl/zintegrowane-logowanie-forum/#comments</comments>
		<pubDate>Fri, 06 Feb 2009 09:42:35 +0000</pubDate>
		<dc:creator>Athlan</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Planeta]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Solutions]]></category>
		<category><![CDATA[autoryzacja]]></category>
		<category><![CDATA[cms]]></category>
		<category><![CDATA[forum]]></category>
		<category><![CDATA[logowanie]]></category>
		<category><![CDATA[phpBB]]></category>

		<guid isPermaLink="false">http://athlan.pl/?p=214</guid>
		<description><![CDATA[Projektowałem wiele serwisów, które miały zintegrowane z forum komponenty takie jak: rejestracja, przypomnienie hasła, zmiana hasła, nicku lub adresu email, usunięcie konta. Wówczas nie było żadnego problemu &#8211; wystarczyło wszystkie te akcje z forum przekierować na URL&#8217;e obsługiwane przez CMS, który zajmował się zmianami  tabelach forum. Dlaczego przekierować? Jeżeli ktoś rejestruje się w serwisie, jest [...]]]></description>
			<content:encoded><![CDATA[<p>Projektowałem wiele serwisów, które miały zintegrowane z forum komponenty takie jak:</p>
<ul>
<li>rejestracja,</li>
<li>przypomnienie hasła,</li>
<li>zmiana hasła, nicku lub adresu email,</li>
<li>usunięcie konta.</li>
</ul>
<p>Wówczas nie było żadnego problemu &#8211; wystarczyło wszystkie te akcje z forum przekierować na URL&#8217;e obsługiwane przez CMS, który zajmował się zmianami  tabelach forum. Dlaczego przekierować? Jeżeli ktoś rejestruje się w serwisie, jest zarejestrowany na forum, natomiast, gdy rejestruje się na forum, nie jest rejestrowany w serwisie. To CMS integrujemy z forum, a nie forum z CMS&#8217;em (chyba, że zamierzamy inaczej, wtedy na odwrót).</p>
<p>Ostatnio klient zażyczył sobie, żeby zintegrowane było również logowanie. Nie najlepiej widzi mi się implementacja systemu autoryzacji z forum w CMS&#8217;ie, więc poszedłem &#8220;na łatwiznę&#8221;, bowiem miałem do czynienia z <a href="http://przemo.org/phpBB2/">phpBB</a>. Do osiągnięcia celu postanowiłem wykonać dwa kroki:</p>
<ol>
<li>wysłać żądanie POST do forum na adres logowania z wypełnionymi polami POST z formularza logowania w CMS&#8217;ie,</li>
<li>przechwycić wysłane przez forum ciasteczka i przekazać je użytkownikowi.</li>
</ol>
<p>Do połączenia się z forum via http użyłem <a href="http://pl.php.net/HttpRequest">HttpRequest</a>. Wyszło z tego <a href="http://athlan.pl/code/ForumAuth">parę linijek kodu</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://athlan.pl/zintegrowane-logowanie-forum/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Upload filmów z Zend_Gdata_YouTube</title>
		<link>http://athlan.pl/upload-filmow-zend_gdata_youtube/</link>
		<comments>http://athlan.pl/upload-filmow-zend_gdata_youtube/#comments</comments>
		<pubDate>Sat, 20 Dec 2008 14:00:56 +0000</pubDate>
		<dc:creator>Athlan</dc:creator>
				<category><![CDATA[Planeta]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Przemyślenia]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[Zend framework]]></category>
		<category><![CDATA[gdata]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[youtube]]></category>
		<category><![CDATA[zend]]></category>

		<guid isPermaLink="false">http://athlan.pl/?p=148</guid>
		<description><![CDATA[Pisząc nowy projekt natknąłem na problem z procesem uploadu filmiku do serwisu YouTube. Sam upload jest bardzo łatwy do napisania z Zend_Gdata_YouTube &#8211; przykład można znaleźć w manualu. Myślę, że zainteresowani przeczytają manual i wszystko będzie jasne. Więc jeżeli to takie proste, to w czym problem? Zakładamy, że userzy uloadują filmiki bezpośrednio na nasz serwis. [...]]]></description>
			<content:encoded><![CDATA[<p>Pisząc <a href="http://athlan.pl/videoblog/">nowy projekt</a> natknąłem na problem z procesem uploadu filmiku do serwisu YouTube. Sam upload jest bardzo łatwy do napisania z <a href="http://framework.zend.com/apidoc/core/Zend_Gdata/App/Zend_Gdata_YouTube.html">Zend_Gdata_YouTube</a> &#8211; <a href="http://framework.zend.com/manual/en/zend.gdata.youtube.html#zend.gdata.youtube.uploads.example">przykład</a> można znaleźć w manualu. Myślę, że zainteresowani przeczytają manual i wszystko będzie jasne. Więc jeżeli to takie proste, to w czym problem?</p>
<p>Zakładamy, że userzy uloadują filmiki bezpośrednio na nasz serwis. Nasz serwer ma za zadanie:</p>
<ol>
<li>Skompresować video i zapisać go w formacie flv.</li>
<li>Nałożyć watermark.</li>
<li>Wysłać obrobiony film do serwisu Youtube logując się na zdefiniowane przez użytkownika konto lub założone przez administratora strony.</li>
</ol>
<p>Pierwsze 2 kroki wykonają się błyskawicznie w porównaniu do trzeciego. Kompresja i nałożenie watermarku na 30 megowy plik z wykorzystaniem FFMPEG to nic nadzwyczajnego. Natomiast wysyłka pliku na serwery Youtube&#8217;a może zawiesić apache&#8217;a, gdy jest ich kilka.</p>
<p>Rozwiązanie? Wpadłem na pomysł, aby upload filmików ustawiony był w pewnego rodzaju kolejce, która uruchamiana by była co minutę (cron), a czas jednego wysłania elemntu nie mógłby przekroczyć 50 sekund. Oczywiście takie działanie uruchamiałoby swój osobny proces apache&#8217;a. Ten sposób jest ograniczony dwoma limitami: wielkością pliku oraz czasem jego uploadu na serwer (jednocześniem interwałem uruchamiania kolejki).</p>
]]></content:encoded>
			<wfw:commentRss>http://athlan.pl/upload-filmow-zend_gdata_youtube/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Videoblog?</title>
		<link>http://athlan.pl/videoblog/</link>
		<comments>http://athlan.pl/videoblog/#comments</comments>
		<pubDate>Sun, 14 Dec 2008 10:49:59 +0000</pubDate>
		<dc:creator>Athlan</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Przemyślenia]]></category>

		<guid isPermaLink="false">http://athlan.pl/?p=144</guid>
		<description><![CDATA[Ostatnio przeglądając sieć, natknąłem się na parę osób prowadzących videobloga. Wobec tego szukam serwisu, który oferuje założenie wideobloga za darmo. O dziwo &#8211; w Polsce nie ma takiego czegoś. Wpadł mi do głowy pomysł, że możnaby spróbować wykonać i wypromować coś takiego. Idąc dalej&#8230; nie posiadam serwera, który mógłby pozwolić sobie na hostowanie plików video. [...]]]></description>
			<content:encoded><![CDATA[<p>Ostatnio przeglądając sieć, natknąłem się na parę osób prowadzących <a href="http://www.blogvideo.pl">videoblog</a>a. Wobec tego szukam serwisu, który oferuje założenie <a href="http://www.blogvideo.pl">wideoblog</a>a za darmo. O dziwo &#8211; w Polsce nie ma takiego czegoś. Wpadł mi do głowy pomysł, że możnaby spróbować wykonać i wypromować coś takiego.</p>
<p>Idąc dalej&#8230; nie posiadam serwera, który mógłby pozwolić sobie na hostowanie plików video. Nie posiadam również pieniędzy na taki serwer. Mogłoby się wydawać, że nici z mojego pomysłu, ale przypomniałem sobie, że można do tego wykorzystać YouTube&#8217;a. Sami oferują API share&#8217;owania plików video. Z pomocą przychodzi również <a href="http://framework.zend.com/">Zend Framework</a> z komponentem <a href="http://framework.zend.com/manual/en/zend.gdata.youtube.html">Zend_Gdata_Youtube</a>. Dlaczego by nie wykorzystać tego API? Użytkownicy mogliby podawać loginy i hasła do swoich kont youtube/google accounts, żeby notki w formie klipów video lądowały w ich profilu.</p>
<p>Tylko czy taki serwis się przyjmie? Nie mam pojęcia, ale wiem jedno &#8211; warto zaryzykować. Póki nie przyjdzie firma, która ma więcej pieniędzy i zrobi to lepiej, spróbują małymi kroczkami zbudować serwis.</p>
<p>Święta nadchodzą, mase wolnego czasu&#8230; działamy :)</p>
]]></content:encoded>
			<wfw:commentRss>http://athlan.pl/videoblog/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Milion na StartUp</title>
		<link>http://athlan.pl/milion-na-startup/</link>
		<comments>http://athlan.pl/milion-na-startup/#comments</comments>
		<pubDate>Tue, 09 Sep 2008 17:34:41 +0000</pubDate>
		<dc:creator>Athlan</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Wykop]]></category>

		<guid isPermaLink="false">http://athlan.pl/?p=140</guid>
		<description><![CDATA[Portal Money.pl wyznaczył swoja nową akcję nad akcją Milion na StartUp (milion-na-startup.pl) widząc, co się dzieje w Internecie. W ostatnich latach w Polsce powstały dziesiątki nowych, obiecujących przedsięwzięć internetowych. Ta branża staje się szansą dla młodych ludzi na uruchomienie własnego biznesu. Internet kreuje nowe potrzeby, nowe usługi, nowe trendy. Money.pl &#8211; portal finansowy nr 1 [...]]]></description>
			<content:encoded><![CDATA[<p>Portal <a href="http://money.pl">Money.pl</a> wyznaczył swoja nową akcję nad akcją <a href="http://milion-na-startup.pl/">Milion na StartUp</a> (<a href="http://milion-na-startup.pl/">milion-na-startup.pl</a>) widząc, co się dzieje w Internecie.</p>
<blockquote><p>W ostatnich latach w Polsce powstały dziesiątki nowych,          obiecujących przedsięwzięć internetowych. Ta branża staje się szansą dla młodych ludzi na uruchomienie własnego          biznesu. Internet kreuje nowe potrzeby, nowe usługi, nowe trendy. Money.pl &#8211; portal finansowy nr 1 &#8211; ogłasza akcję na najlepszy biznesplan.          Oferujemy milion złotych z naszej puli inwestycyjnej na realizację pomysłu          na serwis lub usługę internetową. Na projekty czekamy do 30 listopada 2008 r. Zapoznaj się z <a href="http://milion-na-startup.pl/idea/">ideą</a> i <a href="http://milion-na-startup.pl/zasady/">zasadami</a> naszej akcji.</p></blockquote>
<p>Podobną akcję ogłosił TVN24.pl, tym razem pod tytułem <a href="http://nowybiznes.tvn24.pl">Nowy Biznes</a> (<a href="http://nowybiznes.tvn24.pl">nowybiznes.tvn24.pl</a>).</p>
<p>Razem z ekipą mamy zamiar zgłosić nasz projekt Ocenpizze.pl (oraz subprojekty), który ma na celu zrzeszyć <a href="http://www.ocenpizze.pl">pizzerie</a> w całej Polsce.</p>
<p style="text-align: center;"><img class="aligncenter" style="border: 1px solid black;" src="http://img222.imageshack.us/img222/5402/milionnastartupzo4.jpg" alt="" width="593" height="315" /></p>
]]></content:encoded>
			<wfw:commentRss>http://athlan.pl/milion-na-startup/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Gokart</title>
		<link>http://athlan.pl/gokar/</link>
		<comments>http://athlan.pl/gokar/#comments</comments>
		<pubDate>Mon, 01 Sep 2008 08:00:08 +0000</pubDate>
		<dc:creator>Athlan</dc:creator>
				<category><![CDATA[Private]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://athlan.pl/?p=138</guid>
		<description><![CDATA[Dziś o 9:02am wydano na mnie wyrok chodzenia do szkoły. W związku z tym mam nowe postanowienia i zrealizuje moje marzenie z dzieciństwa. Razem z dwoma moimi kolegami z osiedla budujemy gokarta. Jednymi z trudności jego budowy jest to, że: kompletnie się na tym nie znamy, w życiu nie mieliśmy styczności ze strukturą samochodów itp; [...]]]></description>
			<content:encoded><![CDATA[<p>Dziś o 9:02am wydano na mnie wyrok chodzenia do szkoły. W związku z tym mam nowe postanowienia i zrealizuje moje marzenie z dzieciństwa. Razem z dwoma moimi kolegami z osiedla budujemy gokarta.</p>
<p>Jednymi z trudności jego budowy jest to, że:</p>
<ul>
<li>kompletnie się na tym nie znamy, w życiu nie mieliśmy styczności ze strukturą samochodów itp;</li>
<li>projekt będzie wykonany samodzielnie, w grę nie wchodzą żadne gotowe <a href="http://gokart.yeap.pl">plany i projekty gokarta</a>,</li>
<li>trudne jest skompletowanie <a href="http://gokart.yeap.pl">części do gokarta</a>,</li>
<li>mieszkamy w mieście, nie na wsi &#8211; trudno o wolny warsztat pracy wraz z narzędziami.</li>
</ul>
<p>Projekt posiada witrynę internetową, gdzie będziemy publikować postęp prac i szczegółowe (jak na nasze oko) plany techniczne, które zostaną oddane w ręce specjalistów (spawaczy, ślusarzy) aby zmontowali ramę i wykonali precyzyjne otwory. Strona internetowa powstała po to, żeby ułatwić pracę innym pasjonatom, mało w sieci bardzo szczegółowych planów i prostego przekazu <a href="http://gokart.yeap.pl">jak zbudować gokarta</a>. Dlatego też postaramy się wypozycjonować stronę, czemu służy m.in. ten wpis.</p>
<p>Wstępnie <a href="http://gokart.yeap.pl">gokart</a>:</p>
<ul>
<li>ma rozpędzać się do Vmax ~50-70 km/h,</li>
<li>wszystkie jego elementy muszą być maksymalnie wymienialne (części układu sterowania, układu napędowego &#8211; w tym i samego wała, części składowe ramy, tj. zwrotnice, siedzenie, zderzaki),</li>
<li>powinien być bezpieczny.</li>
</ul>
<p>No nic&#8230; zabieramy się do pracy. Na blogu gokarta na bieżąco będą widniały informacje o ostępie prac.</p>
]]></content:encoded>
			<wfw:commentRss>http://athlan.pl/gokar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Weryfikacja właściciela strony</title>
		<link>http://athlan.pl/weryfikacja-wlasciciela-strony/</link>
		<comments>http://athlan.pl/weryfikacja-wlasciciela-strony/#comments</comments>
		<pubDate>Sun, 17 Aug 2008 09:48:58 +0000</pubDate>
		<dc:creator>Athlan</dc:creator>
				<category><![CDATA[Framework]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Publikacje]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Solutions]]></category>

		<guid isPermaLink="false">http://athlan.pl/?p=133</guid>
		<description><![CDATA[Niedługo być może zaimplementuje w jeden z moich nowych projektów weryfikację właściciela strony. Pomysł pozwoliłem zrobię zaczerpnąć z Google Webmaster Tool. Natomiast troszeczkę zmieniłem jeden ze sposobów, aby mniej się napracować. Zweryfikowanie właściciela witryny odbywa się po wywołaniu jednej z poniższych metod. Oto one: Weryfikacja poprzez upload pliku na serwer. Chwilowe dodanie meta-tagu do sekcji [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" style="margin-left: 10px; margin-right: 10px; float: right;" src="http://img232.imageshack.us/img232/194/bannerwebsitedesignbx2.jpg" alt="" width="352" height="352" />Niedługo być może zaimplementuje w jeden z moich nowych projektów weryfikację właściciela strony. Pomysł pozwoliłem zrobię zaczerpnąć z Google Webmaster Tool. Natomiast troszeczkę zmieniłem jeden ze sposobów, aby mniej się napracować. Zweryfikowanie właściciela witryny odbywa się po wywołaniu jednej z poniższych metod. Oto one:</p>
<ul>
<li>Weryfikacja poprzez upload pliku na serwer.</li>
<li>Chwilowe dodanie meta-tagu do sekcji HEAD.</li>
</ul>
<p>W stosunku do google, zmianie uległa u mnie weryfikacja pierwsza.</p>
<p>Sposób Google: Upload pliku bez zawartości (lub z dowolną) o nazwie jako hash aktywacyjny, np: <code>&lt;?php md5( secret-salt ) . '.html'; ?&gt;</code></p>
<p>Mój sposób: Upload pliku ze stałą lub hashowaną nazwą o zawartości 32 znakowego hashu md5.</p>
<p>Zmienia się tylko zawartość pliku. Dlaczego? Niektóre strony zamiast zwracać kod 404 dla nieistniejących plików/podstron zwracają kod 200 (sukces). Wówczas trudno stwierdzić, czy jest to oczekiwany plik. Google dodatkowo sprawdza, czy strona zawsze zwraca kod 200, ale po co się babrać i wykonywać więcej requestów, jak można zrobić to trochę prościej. Jeżeli plik nie będzie fizycznie istniał na serwerze, a strona zwróci kod 200, skrypt musi oczekiwać w odpowiedzi tylko i wyłącznie hashu strony. Nazwa pliku na serwerze może być stała, ale niekoniecznie (dla większego bezpieczeństwa zalecane jest logiczne hashowanie nazwy pliku).</p>
<p>Przygotujmy zatem zarys klasy (od tego zawsze zaczynam):</p>
<ul>
<li><code>public function CheckFile($sUrl, $sFilename)</code> funkcja sprawdzająca hash w pliku na serwerze.</li>
<li><code>public function CheckMetatag($sUrl, $sTagName)</code> funkcja sprawdzająca hash w metatagu.</li>
<li><code>public static function Hash($sUrl)</code> funkcja budująca hash na postawie adresu URL (jako że podajemy go jako parametr obu metod sprawdzających, zmienna jest łatwo dostępna dla systemu).</li>
<li><code>public static function Metatag($sHash, $sTagName)</code> generowanie kodu XHTML dla metatagu &#8211; metoda potrzebna nam przy podaniu użytkownikowi meta tagu oraz do prega w metodzie CheckMetatag();</li>
<li><code>protected static function _Request($sUrl)</code> tworzenie requestu za pomocą HttpRequest i zwracanie treści metodą getResponseBody() wspomnianej klasy.</li>
</ul>
<p>Jako że komponent jest niejako zewnętrzną biblioteką, nie mogłem go wcisnąć w komponentu frameworka. Otrzymał status biblioteki: VframeLib_WebVeryfication.</p>
<p>Oczekiwane API:</p>
<p><code>var_dump(VframeLib_WebVeryfication::CheckFile('http://example.com/', 'Veryfication.txt')); // bool result<br />
var_dump(VframeLib_WebVeryfication::CheckMetatag('http://example.com/', 'Veryfication'));</code><code> // bool result</code></p>
<p>Gotowy kod:</p>
<p><a href="http://athlan.pl/code/VframeLib_WebVeryfication">http://athlan.pl/code/VframeLib_WebVeryfication</a></p>
<p><em style="color: red">Uwaga. Kod jest w fazie testowej. Wszelkie Wasze komentarze będą uwzględniane przy poprawkach.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://athlan.pl/weryfikacja-wlasciciela-strony/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Google Analytics for WordPress</title>
		<link>http://athlan.pl/google-analytics-for-wordpress/</link>
		<comments>http://athlan.pl/google-analytics-for-wordpress/#comments</comments>
		<pubDate>Wed, 13 Aug 2008 14:25:56 +0000</pubDate>
		<dc:creator>Athlan</dc:creator>
				<category><![CDATA[Google]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://athlan.pl/?p=130</guid>
		<description><![CDATA[Od niedawna na moim blogu można dostrzec nową zakładkę: GoogleAnalytics plugin. Wtyczkę stworzyłem dla siebie, ma ona na celu dodanie kodu Javascript generowanego przez Google Analytics do kodu HTML, bezpośrednio przed tagiem &#60;/body&#62;. Po aktywacji pluginu w dziale ustawień pojawi się nowa podstrona umożliwiająca wpisanie ID statystyk. I wszystko sprowadza się do prostoty. Szczerze powiedziawszy [...]]]></description>
			<content:encoded><![CDATA[<p>Od niedawna na moim blogu można dostrzec nową zakładkę: <strong><a href="http://athlan.pl/googleanalytics/">GoogleAnalytics plugin</a></strong>.</p>
<p>Wtyczkę stworzyłem dla siebie, ma ona na celu dodanie kodu Javascript generowanego przez Google Analytics do kodu HTML, bezpośrednio przed tagiem &lt;/body&gt;. Po aktywacji pluginu w dziale ustawień pojawi się nowa podstrona umożliwiająca wpisanie ID statystyk. I wszystko sprowadza się do prostoty.</p>
<p>Szczerze powiedziawszy wtyczkę napisałem z lenistwa (paradoks) &#8211; nie chciało mi się szukać gotowego rozwiązania (których istnieje zapewne milion), a przy zmianie szablonu umknął mi fakt, że kod JS został wklejony &#8220;na sztywno&#8221; do pliku szablonu footer.php. Gdy chciałem sprawdzić statystyki, wyświetlił mi się pusty wykres.</p>
<p>Napisanie jej zajęło mi 10 minut (sic! z zegarkiem w ręku) i dużą satysfakcję z wykorzystania API wordpressa. <a href="http://athlan.pl/googleanalytics/">GoogleAnalytics plugin</a> został dodany do oficjalnego katalogu pluginów oraz otrzymał repozytorium SVN (które jest puste &#8211; wtyczka nie będzie dalej rozwiaja, bo ma być taka prosta, jak jest teraz).<strong><br />
</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://athlan.pl/google-analytics-for-wordpress/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Ocenpizze.pl</title>
		<link>http://athlan.pl/ocenpizze/</link>
		<comments>http://athlan.pl/ocenpizze/#comments</comments>
		<pubDate>Thu, 24 Jul 2008 14:29:41 +0000</pubDate>
		<dc:creator>Athlan</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[JS/Ajax]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Solutions]]></category>
		<category><![CDATA[Wykop]]></category>

		<guid isPermaLink="false">http://athlan.pl/?p=126</guid>
		<description><![CDATA[22 lipca oficjalnie wystartował mój nowy projekt: ocenpizze.pl. Każdy użytkownik może m.in.: oceniać pizzerie wg 3 kategorii: wystrój, obsługa oraz jakość podawanego jedzenia wraz z dodaniem osobistego komentarza, wyszukiwać pizzerie w swoim mieście/województwie, uzyskiwać informacje o aktualnie otwartych lokalach w danej lokalizacji w danym czasie (innowacyjny pomysł na polskiej scenie gastronomicznej), proponować nowe lokale. Właściciele [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" style="border: 1px solid black; margin-left: 10px; margin-right: 10px; float: right;" src="http://img168.imageshack.us/img168/786/brooklynstylepizza712way8.jpg" alt="" width="300" height="150" />22 lipca oficjalnie wystartował mój nowy projekt: <a href="http://www.ocenpizze.pl">ocenpizze.pl</a>. Każdy użytkownik może m.in.:</p>
<ul>
<li><a href="http://www.ocenpizze.pl/">oceniać</a> pizzerie wg 3 kategorii: wystrój, obsługa oraz jakość podawanego jedzenia wraz z dodaniem osobistego komentarza,</li>
<li><a href="http://www.ocenpizze.pl/szukaj.html">wyszukiwać</a> pizzerie w swoim mieście/województwie,</li>
<li>uzyskiwać informacje o <a href="http://www.ocenpizze.pl/aktualnie-otwarte.html">aktualnie otwartych lokalach</a> w danej lokalizacji w danym czasie (innowacyjny pomysł na polskiej scenie gastronomicznej),</li>
<li><a href="http://www.ocenpizze.pl/panel/dodaj.html">proponować nowe lokale</a>.</li>
</ul>
<p>Właściciele lokali mogą:</p>
<ul>
<li>uzyskać dostęp do panelu administracyjnego,</li>
<li>uzupełniać godziny otwarcia swojego lokalu,</li>
<li>dodawać fotografie i logo lokalu,</li>
<li>tworzyć prezentację swojej firmy na zasadzie tworzenia zakładek.</li>
</ul>
<p>Serwis po dwudniowej pracy zyskał sympatię wielu użytkowników. Tych, którym podoba się serwis, zapraszam na <a href="http://www.wykop.pl/link/80447/ocen-swoja-pizzerie-szukaj-ktore-lokale-w-twoim-miescie-sa-otwarte">wykop</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://athlan.pl/ocenpizze/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Mam firmę</title>
		<link>http://athlan.pl/mam-firme/</link>
		<comments>http://athlan.pl/mam-firme/#comments</comments>
		<pubDate>Fri, 18 Jul 2008 00:49:02 +0000</pubDate>
		<dc:creator>Athlan</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Przemyślenia]]></category>
		<category><![CDATA[Real live]]></category>

		<guid isPermaLink="false">http://athlan.pl/?p=124</guid>
		<description><![CDATA[Cieszyć się czy nie&#8230; dopiero co 17 lat na karku i już dorobiłem się firmy. Troszkę biurokracji. Wkroczyłem w kolejny etap w moim życiu. Czasem jak tak sobie myślę&#8230; czy to nie za wcześnie. W końcu w Unii Europejskiej otwarto możliwość dla nastolatków i studentów z pomysłami. Inkubatory.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.inkubatory.pl/"><img class="alignleft" style="border: 1px solid black; margin: 0 10px; float: left;" src="http://img224.imageshack.us/img224/2410/inkubatorer0.jpg" alt="" width="246" height="80" /></a></p>
<p>Cieszyć się czy nie&#8230; dopiero co 17 lat na karku i już dorobiłem się <a href="http://www.vgroup.pl">firmy</a>. Troszkę biurokracji. Wkroczyłem w kolejny etap w moim życiu. Czasem jak tak sobie myślę&#8230; czy to nie za wcześnie.</p>
<p>W końcu w Unii Europejskiej otwarto możliwość dla nastolatków i studentów z pomysłami. <a href="http://www.inkubatory.pl/">Inkubatory</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://athlan.pl/mam-firme/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>WordPress SpamDefense &#8211; zapowiedź</title>
		<link>http://athlan.pl/wordpress-spam-defense-zapowiedz/</link>
		<comments>http://athlan.pl/wordpress-spam-defense-zapowiedz/#comments</comments>
		<pubDate>Mon, 16 Jun 2008 10:23:19 +0000</pubDate>
		<dc:creator>Athlan</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Przemyślenia]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://athlan.pl/?p=117</guid>
		<description><![CDATA[Czytając temat na forum.php.pl na temat spamerów, który był już wałkowany na blogach i forach dyskusyjnych złapałem się za głowę i pomyślałem, czego to jeszcze ludzie nie wymyślą, aby nie używać captchy. Rozwiązania przedstawione w temacie można podzielić na: Bardzo dobre, skuteczne. Zupełnie mijające się z celem. Pomieszanie obu, co daje miks idiotycznie błędnego koła. [...]]]></description>
			<content:encoded><![CDATA[<p>Czytając temat na forum.php.pl na <a href="http://forum.php.pl/spamery_t94213.html">temat spamerów</a>, który był już wałkowany na blogach i forach dyskusyjnych złapałem się za głowę i pomyślałem, czego to jeszcze ludzie nie wymyślą, aby nie używać captchy. Rozwiązania przedstawione w temacie można podzielić na:</p>
<ul>
<li>Bardzo dobre, skuteczne.</li>
<li>Zupełnie mijające się z celem.</li>
<li>Pomieszanie obu, co daje miks idiotycznie błędnego koła.</li>
</ul>
<p>W związku z ostatnimi zmianami szablonu na moim blogu, zaatakowały mnie spamboty, ponieważ nie mam już ukrytych pól formularza, które boty naiwnie wypełniały. Przejrzałem <a href="http://wordpress.org/extend/plugins/">listę wtyczek wordpressa</a>, w poszukiwaniu <a href="http://wordpress.org/extend/plugins/search.php?q=spam">ochrony przed SPAM&#8217;em</a>. W niektórych wypadkach nawet Akismet nie dawał sobie rady, a patrząc na sztywnie zastosowane rozwiązania, odechciało mi się instalować którejkolwiek.</p>
<p>Postanowiłem napisać własny plugin (<strong>SpamDefense</strong>) używając <a href="http://codex.wordpress.org/Function_Reference/add_action">add_action()</a>, który będzie w pełni modularny (tj. będzie używał sposobów obrony przed spamem na zasadzie pluginów, <a href="http://pl.wikipedia.org/wiki/Wzorzec_fabryki_abstrakcyjnej">wzorca fabryki</a>). Podstawową ideą będzie:</p>
<ul>
<li>losowe wybieranie jednego (bądź N) sposobów obrony przed spamem,</li>
<li>użycie wszystkich dostępnych metod obrony przed spamem.</li>
</ul>
<p>Planowane domyślne pluginy (sposoby zwalczania komentarzy) we wtyczce:</p>
<ul>
<li>dodawanie ukrytego pola,</li>
<li>zamienianiediv&#8217;ów w inputy za pomocą JavaScript,</li>
<li><a href="http://athlan.pl/obrona-przed-spamem/">zamiana adresu postowania komentarzy</a> za pomocą JavaScript.</li>
</ul>
<p>Każda wtyczka będzie generowała własne statystyki zapisując liczbę zablokowanych komentarzy. Dodawanie pluginów będzie dziecinnie proste, dlatego każdy będzie mógł dodać sobie swoje rozwiązania i (za pomocą wtyczki) łączyć z innymi.</p>
]]></content:encoded>
			<wfw:commentRss>http://athlan.pl/wordpress-spam-defense-zapowiedz/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Style życia na life-styles.pl</title>
		<link>http://athlan.pl/life-stylespl/</link>
		<comments>http://athlan.pl/life-stylespl/#comments</comments>
		<pubDate>Tue, 20 May 2008 06:00:58 +0000</pubDate>
		<dc:creator>Athlan</dc:creator>
				<category><![CDATA[Framework]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Private]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Real live]]></category>
		<category><![CDATA[Vframe 2.x]]></category>

		<guid isPermaLink="false">http://athlan.pl/?p=113</guid>
		<description><![CDATA[Od niedawna w sieci istnieje nasza strona na konkurs Diversity organizowany przez Motorolę o którym pisałem. Witryna w dostępna pod adresem life-styles.pl prezentuje style życia z podziałem na kategorie: muzyka, sport, religie, moda, jedzenie. Wykorzystuje komponent Vframe_Language i nie wymaga bazy danych. Jest to pierwsza (prosta) aplikacja oparta na Vframe 2.x z otwartym kodem źródłowym.]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img style="border: 1px solid black; margin: 5px;" src="http://img80.imageshack.us/img80/2415/lsym3.jpg" alt="" width="441" height="196" /></p>
<p>Od niedawna w sieci istnieje nasza strona na konkurs <a href="http://diversity.pl">Diversity</a> organizowany przez <a href="http://www.motorola.com/pl/">Motorolę</a> o którym <a href="http://athlan.pl/diversity-2008/">pisałem</a>.</p>
<p>Witryna w dostępna pod adresem <a href="http://www.life-styles.pl">life-styles.pl</a> prezentuje <a href="http://www.life-styles.pl">style życia</a> z podziałem na kategorie:</p>
<ul>
<li>muzyka,</li>
<li>sport,</li>
<li>religie,</li>
<li>moda,</li>
<li>jedzenie.</li>
</ul>
<p>Wykorzystuje komponent Vframe_Language i nie wymaga bazy danych. Jest to pierwsza (prosta) aplikacja oparta na <a href="http://framework.vgroup.pl">Vframe</a> 2.x z <a href="http://www.life-styles.pl/sources/">otwartym kodem źródłowym</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://athlan.pl/life-stylespl/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Ligipolskie.pl</title>
		<link>http://athlan.pl/ligipolskiepl/</link>
		<comments>http://athlan.pl/ligipolskiepl/#comments</comments>
		<pubDate>Fri, 09 May 2008 17:34:36 +0000</pubDate>
		<dc:creator>Athlan</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Vframe 2.x]]></category>

		<guid isPermaLink="false">http://athlan.pl/?p=109</guid>
		<description><![CDATA[Niedawno ukończyłem projekt Ligipolskie.pl (oraz sieć lig: europejska, hiszpańska, niemiecka, włoska, angielska) &#8211; każda w innej domenie. Jest to pierwsza oficjalna aplikacja wydana na frameworku Vframe 2 w pierwszej wersji stable (2.1.1). W chwili obecnej trwają prace nad serwisem Pilka24.com, który ma na celu zebranie wszystkich materiałów ligowych (newsów, felietonów, tabel, itd.) w jedną całość.]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://ligipolskie.pl"><img style="border: 1px solid black;" src="http://images24.fotosik.pl/211/be5ad446e2b90137.jpg" alt="" width="662" height="107" /></a></p>
<p>Niedawno ukończyłem projekt <a href="http://ligipolskie.pl">Ligipolskie.pl</a> (oraz sieć lig: europejska, hiszpańska, niemiecka, włoska, angielska) &#8211; każda w innej domenie. Jest to pierwsza oficjalna aplikacja wydana na frameworku <a href="http://framework.vgroup.pl">Vframe</a> 2 w pierwszej <a href="http://framework.vgroup.pl/repository/entry-db6e51c1dbc46b87d66d6ac2510d080d.htm">wersji stable (2.1.1)</a>.</p>
<p>W chwili obecnej trwają prace nad serwisem Pilka24.com, który ma na celu zebranie wszystkich materiałów ligowych (newsów, felietonów, tabel, itd.) w jedną całość.</p>
]]></content:encoded>
			<wfw:commentRss>http://athlan.pl/ligipolskiepl/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Diversity 2008</title>
		<link>http://athlan.pl/diversity-2008/</link>
		<comments>http://athlan.pl/diversity-2008/#comments</comments>
		<pubDate>Sat, 12 Apr 2008 19:12:13 +0000</pubDate>
		<dc:creator>Athlan</dc:creator>
				<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://athlan.vgroup.pl/diversity-2008/</guid>
		<description><![CDATA[Nasza ekipa (Ja, Marcin Maksymowicz, Karolina Pater i Ola Dziki) zgłosiła się do konkursu Diversity 2008 pod patronatem Motoroli. Naszym opiekunem jest Marek Sienczak. Tematem tegorocznej edycji są style życia. Temat szeroki, jak to ujmiemy &#8211; whatever. Grafiką zajmuje się Marcin, ja mam za zadanie napisanie elastycznego systemu CMS z możliwością lokalizacji go na dowolną [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center"><img src="http://img86.imageshack.us/img86/6360/diversitydr9.jpg" border="1" /></p>
<p>Nasza ekipa (Ja, Marcin Maksymowicz, Karolina Pater i Ola Dziki) zgłosiła się do konkursu <a href="http://diversity.pl">Diversity 2008</a> pod patronatem <a href="http://www.motorola.com/pl/">Motoroli</a>. Naszym opiekunem jest <a href="http://ms.netmark.pl/">Marek Sienczak</a>. Tematem tegorocznej edycji są <strong>style życia</strong>. Temat szeroki, jak to ujmiemy &#8211; whatever.</p>
<p style="text-align: center"><img src="http://img134.imageshack.us/img134/7801/motorolahei2afs2.gif" align="right" border="1" height="105" width="150" /></p>
<p>Grafiką zajmuje się Marcin, ja mam za zadanie napisanie elastycznego systemu CMS z możliwością lokalizacji go na dowolną ilość języków, a samym tłumaczeniem i zawartością merytoryczną zajmą się nasze dziewczyny Ola i Karolina. Technicznie rzecz ujmując, CMS będzie oparty na <a href="http://framework.vgroup.pl">Vframe 2</a> (2.1.2)  i aplikacji VframeApp w wersji deweloperskiej.</p>
<p>W diversity brał niegdyś udział <a href="http://zyxist.com/">Tomasz &#8216;zyx&#8217; Jędrzejewski</a>  i <a href="http://wooki.pl/">Darkspirit</a>. Zainteresowanych relacjami <a href="http://www.google.pl/search?hl=pl&amp;q=site%3Azyxist.com+diversity">zapraszam tutaj</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://athlan.pl/diversity-2008/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vframe 2.0 relased</title>
		<link>http://athlan.pl/vframe-20-relased/</link>
		<comments>http://athlan.pl/vframe-20-relased/#comments</comments>
		<pubDate>Thu, 14 Feb 2008 21:05:38 +0000</pubDate>
		<dc:creator>Athlan</dc:creator>
				<category><![CDATA[Framework]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://athlan.vgroup.pl/vframe-20-relased/</guid>
		<description><![CDATA[Dziś światło dzienne ujrzał Vframe 2.0, poprzednia wersja nie jest już rozwijana. http://framework.vgroup.pl/repository/ Zobacz/Pobierz wydanie Vframe2 Narazie dostępny kod frameworka oraz prosta aplikacja (splash), niedługo pojawi się przykład CMS oparty na Vframe 2.0. W sferze planów przygotowywany jest VframeAdminGenerator tworzący panel administracyjny na podstawie plików konfiguracyjnych panel administracyjny.]]></description>
			<content:encoded><![CDATA[<p style="text-align: center"><img src="http://img228.imageshack.us/img228/3333/fw2wg9.jpg" border="1" height="196" width="450" /></p>
<p>Dziś światło dzienne ujrzał <a href="http://framework.vgroup.pl/">Vframe 2.0</a>, poprzednia wersja nie jest już rozwijana.</p>
<p><a href="http://framework.vgroup.pl/repository/">http://framework.vgroup.pl/repository/</a></p>
<p><a href="http://framework.vgroup.pl/repository/entry-db6e51c1dbc46b87d66d6ac2510d080d.htm">Zobacz/Pobierz</a> wydanie Vframe2</p>
<p>Narazie dostępny kod frameworka oraz prosta aplikacja (splash), niedługo pojawi się przykład CMS oparty na Vframe 2.0. W sferze planów przygotowywany jest VframeAdminGenerator tworzący panel administracyjny na podstawie plików konfiguracyjnych panel administracyjny.</p>
]]></content:encoded>
			<wfw:commentRss>http://athlan.pl/vframe-20-relased/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>After server relocation</title>
		<link>http://athlan.pl/after-server-relocation/</link>
		<comments>http://athlan.pl/after-server-relocation/#comments</comments>
		<pubDate>Wed, 30 Jan 2008 14:53:16 +0000</pubDate>
		<dc:creator>Athlan</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[Recenzje]]></category>
		<category><![CDATA[Server]]></category>

		<guid isPermaLink="false">http://athlan.vgroup.pl/after-server-relocation/</guid>
		<description><![CDATA[Od kilku dni moje serwisy stoją już na nowym serwerze Active w nazwa.pl. Jak zarazie pozytywne wrażenia, co więcej &#8211; zdziwiło mnie że kilka naprawdę dużych serwisów jest w stanie działać na zwykłym (niededykowanym) serwerze. Plusy serwera Active: Stabilność. Powiadomienia o planowanych pracach konserwacyjnych. Krótkie prace konserwatywne. Błyskawiczna odpowiedź od administratora drogą elektroniczną. Analiza obciążenia [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center"><a href="http://nazwa.pl"><img src="http://img100.imageshack.us/img100/1415/hlogonazwaplyg0.gif" border="1" height="32" width="155" /></a></p>
<p>Od kilku dni moje serwisy stoją już na nowym serwerze <strong><a href="http://nazwa.pl/serwery-serwery-active.html"><font color="#ff6600">Active</font></a></strong> w <a href="http://nazwa.pl"><strong>nazwa</strong>.pl</a>. Jak zarazie pozytywne wrażenia, co więcej &#8211; zdziwiło mnie że kilka naprawdę dużych serwisów jest w stanie działać na zwykłym (niededykowanym) serwerze.</p>
<p><strong>Plusy</strong> serwera Active:</p>
<ul>
<li>Stabilność.</li>
<li>Powiadomienia o planowanych pracach konserwacyjnych.</li>
<li>Krótkie prace konserwatywne.</li>
<li>Błyskawiczna odpowiedź od administratora drogą elektroniczną.</li>
<li>Analiza obciążenia powodowanych przez poszczególne komponenty serwisu.</li>
</ul>
<p><strong>Minusy</strong>:</p>
<ul>
<li>Sabie rozbudowane drzewo dostępu do domen, trzeba sobie samemu tworzyć struktury: <code>/domains/domena/public/</code> oraz <code>/domains/domena/subdomains/subdomena/public/</code></li>
<li>Bardzo ubogie możliwości zakładania skrzynek pocztowych &#8211; każdy login działa w każdej domenie jaka istnieje na serwerze, przykładowo konto example będzie działało tak samo dla example@domena-pierwsza.pl i example@domena-druga.pl</li>
<li>Transfer 1Tb/6mc &#8211; kiedy wykorzystuję około 600 Mb dziennie. Chyba niedługo czas przejść na wyższy pakiet : ).</li>
</ul>
<p><strong>Neutralne</strong>:</p>
<ul>
<li>Za wpisy DNS na serwer odpowiedzialny jest administrator, trzeba mu wysłać listę domen na serwerze, aby dodał je ręcznie do configu (brak automatyzacji). Usprawiedliwiającym jest fakt, że oczekiwanie na nową domenę trwa od 5 &#8211; 20 minut w godzinach roboczych.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://athlan.pl/after-server-relocation/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
