<?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>serialize($this-&#62;title)</title>
	<atom:link href="http://otsoft.pl/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://otsoft.pl/blog</link>
	<description>or die();</description>
	<lastBuildDate>Mon, 19 Jul 2010 17:06:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Otsoft.pl &#8211; wystawiony na aukcję.</title>
		<link>http://otsoft.pl/blog/2010/07/19/otsoft-pl-wystawiony-na-aukcje/</link>
		<comments>http://otsoft.pl/blog/2010/07/19/otsoft-pl-wystawiony-na-aukcje/#comments</comments>
		<pubDate>Mon, 19 Jul 2010 16:58:18 +0000</pubDate>
		<dc:creator>pavlus</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Open Tibia]]></category>
		<category><![CDATA[Życie]]></category>
		<category><![CDATA[allegro]]></category>
		<category><![CDATA[otsoft]]></category>
		<category><![CDATA[pożegnanie]]></category>

		<guid isPermaLink="false">http://otsoft.pl/blog/?p=184</guid>
		<description><![CDATA[Kiedyś w końcu musiał nastąpić ten dzień. Bez większych wstępów chcę zaprosić wszystkich zainteresowanych na AUKCJĘ. Powód sprzedaży jest bardzo prosty &#8211; brak czasu. Praca zawodowa, spore plany na przyszłość z nią związane jak i życie osobiste, które w przyszłym roku bardzo ale to bardzo się zmieni (nazywają to ślubem podobno), a więc sami widzicie [...]]]></description>
			<content:encoded><![CDATA[<p>Kiedyś w końcu musiał nastąpić ten dzień.</p>
<p>Bez większych wstępów chcę zaprosić wszystkich zainteresowanych na</p>
<p style="text-align: center;"><a href="http://allegro.pl/item1156148546_otsoft_pl_polski_support_open_tibia.html"><strong>AUKCJĘ</strong></a><strong>.</strong></p>
<p>Powód sprzedaży jest bardzo prosty &#8211; brak czasu. Praca zawodowa, spore plany na przyszłość z nią związane jak i życie osobiste, które w przyszłym roku bardzo ale to bardzo się zmieni (nazywają to ślubem podobno), a więc sami widzicie &#8211; powiązać to ciężko, a czasu trzeba mieć dość aby prowadzić i rozwijać taki serwis jak Otsoft.</p>
<p>W tym momencie chciałbym się z Wami pożegnać i życzyć przyszłemu właścicielowi samych sukcesów. Było mi niezmiernie miło współpracować z Wami i tworzyć razem historię Open Tibii w Polsce,  nawet nie wiecie jak ciężko było mi kliknąć zatwierdź podczas tworzenia aukcji na Allegro&#8230; Z tą stroną wiąże się mnóstwo mojego życia, znajomych, wrogów <img src='http://otsoft.pl/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  chwil szczęścia, dumy, złości i wszystkich innych doznań, które towarzyszą komuś, kto wkłada całe swoje serce w rozwój tego tworu. Mam nadzieję, że zrozumiecie i uszanujecie moją decyzję.</p>
<p>Z pozdrowieniami,</p>
<p>Wasz Admin.</p>
]]></content:encoded>
			<wfw:commentRss>http://otsoft.pl/blog/2010/07/19/otsoft-pl-wystawiony-na-aukcje/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Praca, dom, praca, dom, praca, piwo, rów obok domu</title>
		<link>http://otsoft.pl/blog/2010/03/08/praca-dom-praca-dom-praca-piwo-row-obok-domu/</link>
		<comments>http://otsoft.pl/blog/2010/03/08/praca-dom-praca-dom-praca-piwo-row-obok-domu/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 20:36:13 +0000</pubDate>
		<dc:creator>pavlus</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Open Tibia]]></category>
		<category><![CDATA[Życie]]></category>

		<guid isPermaLink="false">http://otsoft.pl/blog/?p=181</guid>
		<description><![CDATA[Swoja wiadomosc zaczne od tego, ze zaczalem prace w swoim zawodzie, od dwoch tygodni pracuje jako inzynier przygotowania produkcji w firmie pod nazwa VOSS Automotive. Niestety, do tej pory nie mialem zbyt wiele czasu, ale w tym przypadku tego czasu praktycznie nie mam juz wogole. Zostaja weekendy w ktore nadrabiam zycie prywatne i rodzinne. Oczywiscie [...]]]></description>
			<content:encoded><![CDATA[<p>Swoja wiadomosc zaczne od tego, ze zaczalem prace w swoim zawodzie, od dwoch tygodni pracuje jako inzynier przygotowania produkcji w firmie pod nazwa <a href="http://voss.de/">VOSS Automotive</a>.</p>
<p>Niestety, do tej pory nie mialem zbyt wiele czasu, ale w tym przypadku tego czasu praktycznie nie mam juz wogole. Zostaja weekendy w ktore nadrabiam zycie prywatne i rodzinne. Oczywiscie nie zamierzam calkowicie rzucic wszystko wpizdziec <img src='http://otsoft.pl/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Ale nie bedzie latwo, zeby dodac jeszcze do pieca to powiem ze oprocz codziennej pracy musze tez napisac prace mgr i ja obronic, wiec mam co robic.</p>
<p>I to na tyle, jak sie zaklimatyzuje w pracy &#8211; bede mial wiecej czasu dla siebie i dla serwera jak i dla Otsoftu, mam nadzieje.</p>
]]></content:encoded>
			<wfw:commentRss>http://otsoft.pl/blog/2010/03/08/praca-dom-praca-dom-praca-piwo-row-obok-domu/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Dalej niż sięga myśl&#8230;</title>
		<link>http://otsoft.pl/blog/2010/03/03/dalej-niz-siega-mysl/</link>
		<comments>http://otsoft.pl/blog/2010/03/03/dalej-niz-siega-mysl/#comments</comments>
		<pubDate>Wed, 03 Mar 2010 20:04:33 +0000</pubDate>
		<dc:creator>pavlus</dc:creator>
				<category><![CDATA[Życie]]></category>

		<guid isPermaLink="false">http://otsoft.pl/blog/?p=179</guid>
		<description><![CDATA[Wiodą w przód ślady stóp.]]></description>
			<content:encoded><![CDATA[<p>Wiodą w przód ślady stóp.</p>
<p><script type="text/javascript" src="http://www.wrzuta.pl/embed_audio.js?key=15eqGHp7t8X&#038;login=w590&#038;width=450&#038;bg=ffffff"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://otsoft.pl/blog/2010/03/03/dalej-niz-siega-mysl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ziroł.ziroł.siks czyli kolejny nowy Apinstall ;)</title>
		<link>http://otsoft.pl/blog/2010/02/15/zirol-zirol-siks-czyli-kolejny-nowy-apinstall/</link>
		<comments>http://otsoft.pl/blog/2010/02/15/zirol-zirol-siks-czyli-kolejny-nowy-apinstall/#comments</comments>
		<pubDate>Mon, 15 Feb 2010 14:31:59 +0000</pubDate>
		<dc:creator>pavlus</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[apinstall]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[narty]]></category>
		<category><![CDATA[xhr]]></category>
		<category><![CDATA[zieleniec]]></category>

		<guid isPermaLink="false">http://otsoft.pl/blog/?p=175</guid>
		<description><![CDATA[Wciagajce to jest, jak sie zacznie cos robic i z kazdym dniem sie to ulepsza, poprawia i dodaje nowe funkcjinalnosci. W tej wersji nowych funkcjinalnosci nie ma Za to nie uswiadczycie meczacego spamu przez XmlHttpRequest przed i po wykonaniu skryptu. Jako ze caly apinstall opiera sie na funckji setInterval(); (poki co) wiec innego rozwiazania nie [...]]]></description>
			<content:encoded><![CDATA[<p>Wciagajce to jest, jak sie zacznie cos robic i z kazdym dniem sie to ulepsza, poprawia i dodaje nowe funkcjinalnosci.</p>
<p>W tej wersji nowych funkcjinalnosci nie ma <img src='http://otsoft.pl/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  Za to nie uswiadczycie meczacego spamu przez <strong>XmlHttpRequest</strong> przed i po wykonaniu skryptu.</p>
<p>Jako ze caly apinstall opiera sie na funckji setInterval(); (poki co) wiec innego rozwiazania nie ma <img src='http://otsoft.pl/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>A oto caly jQuerowy javascript ktory odpowiada za dzialanie:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">function refresh<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">&#8216;#apisubmit&#8217;</span><span class="br0">&#41;</span>.<span class="me1">fadeOut</span><span class="br0">&#40;</span><span class="st0">&#8216;slow&#8217;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var intID = setInterval<span class="br0">&#40;</span>function<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $.<span class="me1">ajax</span><span class="br0">&#40;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; type: <span class="st0">&#8216;GET&#8217;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; url: <span class="st0">&#8216;cb41cdc0b660bf6d1a39d24d9a4c7f3ca9702db4.php&#8217;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; cache: <span class="kw2">false</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; success: function<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">&#8216;#apinstall&#8217;</span><span class="br0">&#41;</span>.<span class="me1">load</span><span class="br0">&#40;</span><span class="st0">&#8216;cb41cdc0b660bf6d1a39d24d9a4c7f3ca9702db4.php?randval=&#8217;</span>+ <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3AMath+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span class="kw3">Math</span></a>.<span class="me1">random</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; error : function <span class="br0">&#40;</span>xhr, d, e<span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>xhr.<span class="me1">status</span> == <span class="nu0">404</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; clearInterval<span class="br0">&#40;</span>intID<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">&#8216;#apinstall&#8217;</span><span class="br0">&#41;</span>.<span class="me1">fadeOut</span><span class="br0">&#40;</span><span class="st0">&#8216;slow&#8217;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp;<span class="br0">&#125;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span>, <span class="nu0">200</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span>document<span class="br0">&#41;</span>.<span class="me1">ready</span><span class="br0">&#40;</span>function<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; $<span class="br0">&#40;</span><span class="st0">&#8216;#apiform&#8217;</span><span class="br0">&#41;</span>.<span class="me1">submit</span><span class="br0">&#40;</span>function<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; refresh<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span><span class="br0">&#41;</span>;</div>
</li>
</ol>
</div>
<p>Zasada dzialania jest prosta jak budowa cepa, co 200 milisekund ajax wysyla zapytanie do tymczasowo stworzonego pliku php, jesli jest uruchamia funkcje ladowania zawartosci w div, jesli jednak otrzymuje 404 &#8211; czysci setInterval oraz usuwa div z prgoress barem.</p>
<p>To byloby na tyle, znow nowa instrukcja na stronie projektu i nowe demo jak zwykle dostepne:</p>
<h1 style="text-align: center;"><a href="http://otsoft.pl/blog/ap_demo/install.php">TUTAJ </a></h1>
<p>A ja zawijam wrotki i szykuje sie do wyjazdu na narty do Zielenca, trzeba jakos z tych ferii skorzystac.</p>
<p><img class="aligncenter" src="http://www.foxsports.com.au/common/imagedata/0,5001,5356896,00.jpg" alt="" width="350" height="240" /></p>
]]></content:encoded>
			<wfw:commentRss>http://otsoft.pl/blog/2010/02/15/zirol-zirol-siks-czyli-kolejny-nowy-apinstall/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apinstall &#8211; dostepne na Chrome, Safari oraz IE</title>
		<link>http://otsoft.pl/blog/2010/02/15/apinstall-dostepne-na-chrome-safari-oraz-ie/</link>
		<comments>http://otsoft.pl/blog/2010/02/15/apinstall-dostepne-na-chrome-safari-oraz-ie/#comments</comments>
		<pubDate>Mon, 15 Feb 2010 01:33:50 +0000</pubDate>
		<dc:creator>pavlus</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[apinstall]]></category>
		<category><![CDATA[iframe]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[progress bar]]></category>
		<category><![CDATA[webkit]]></category>

		<guid isPermaLink="false">http://otsoft.pl/blog/?p=173</guid>
		<description><![CDATA[Troche czasu mi zajelo szukanie dlaczego Apinstall nie wyswietla progress baru w przegladarkach opartych na Web Kit oraz na IE. W tym wypadku google nie chcialo mi zbyt wiele pomoc, moze tylko ja mialem taki dziwny problem, chociaz watpie&#8230; W kazdym razie rozwiazanie problemu znalazlem w czyims kodzie javascript, byl to skrypt na upload plikow [...]]]></description>
			<content:encoded><![CDATA[<p>Troche czasu mi zajelo szukanie dlaczego Apinstall <strong>nie wyswietla</strong> progress baru w przegladarkach opartych na Web Kit oraz na IE.</p>
<p>W tym wypadku google nie chcialo mi zbyt wiele pomoc, moze tylko ja mialem taki dziwny problem, chociaz watpie&#8230; W kazdym razie rozwiazanie problemu znalazlem w czyims kodzie javascript, byl to skrypt na upload plikow i na szczescie gosc zamiescil komentarz:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&lt;!&#8211; Ok, you so need this iframe for Safari and Chrome to work, the webkit engine doesnt allow ajax calls to be made after a form begins submission &#8211;&gt;</div>
</li>
</ol>
</div>
<p>Chwala mu za to, bo inaczej nadal przeszukiwalbym czelusci internetu w poszukiwaniu odpowiedzi.</p>
<p>A wiec zadzialawszy na Chrome i Safari sprobowalem rowniez na IE, jakie bylo moje zdziwienie ze i tu dziala &#8211; tego sie nie da opisac <img src='http://otsoft.pl/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Moze to zasluga wersji 8, a moze nie. W kazdym razie Apinstall sprawuje sie bardzo dobrze, gdyby nie jeden szczegol <img src='http://otsoft.pl/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Mianowicie po zakonczeniu wykonywania procesu, XHR nadal probuje ladowac plik z danymi, latwo to obejsc wpisujac header(&#8216;Location:&#8230;.&#8217;); po zakonczeniu procesu, ale to byloby za proste. Wiec bede musial przy kazdym wyslaniu load przez jQuery sprawdzic czy plik tymczasowy istnieje lub znalezc jakis inny sposob.</p>
<p>Nowe demo oraz nowa instrukcja (bardziej uproszczona) dostepna jest na stronie projektu: <a href="http://code.google.com/p/apinstall/">http://code.google.com/p/apinstall/</a>.</p>
<p>Zapraszam do przetestowania. A juz niedlugo napisze jak za pomoca tej klasy zrobic innego niz wszedzie preloadera <img src='http://otsoft.pl/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://otsoft.pl/blog/2010/02/15/apinstall-dostepne-na-chrome-safari-oraz-ie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP + jQuery czyli Apinstall progress bar</title>
		<link>http://otsoft.pl/blog/2010/02/11/php-jquery-czyli-apinstall-progress-bar/</link>
		<comments>http://otsoft.pl/blog/2010/02/11/php-jquery-czyli-apinstall-progress-bar/#comments</comments>
		<pubDate>Thu, 11 Feb 2010 00:11:52 +0000</pubDate>
		<dc:creator>pavlus</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[loading]]></category>
		<category><![CDATA[pasek postepu]]></category>
		<category><![CDATA[progress bar]]></category>

		<guid isPermaLink="false">http://otsoft.pl/blog/?p=168</guid>
		<description><![CDATA[Niewiele mialem dzis czasu dla siebie, ale w przerwach wpadl mi do glowy calkiem ciekawy pomysl&#8230; Nie pamietam ile to razy jakis skrypt w php wyswietlal dla mnie biala strone, a ja czekalem az ukonczy swoje dzielo. Jesli to byl krotki skrypt to ok, ale jesli chodzilo o cos co zabiera mnostwo czasu aby to [...]]]></description>
			<content:encoded><![CDATA[<p>Niewiele mialem dzis czasu dla siebie, ale w przerwach wpadl mi do glowy calkiem ciekawy pomysl&#8230;</p>
<p>Nie pamietam ile to razy jakis skrypt w php wyswietlal dla mnie biala strone, a ja czekalem az ukonczy swoje dzielo. Jesli to byl krotki skrypt to ok, ale jesli chodzilo o cos co zabiera mnostwo czasu aby to przemielic nigdy nie wiadomo kiedy zakonczy sie skrypt i co aktualnie sobie przelicza.</p>
<p>To dalo mi duzo do myslenia, a wynikiem tego jest klasa Apinstall, ktora przed chwila skonczylem w wersji <strong>0.0.4 </strong></p>
<p>A wiec, co to takiego i co potrafi?</p>
<p>Ta klasa, wazaca niewiele ponad 3kb moze sluzyc jako skrypt do:</p>
<ul>
<li>skryptu instalacyjnego<strong> </strong></li>
<li>czasochlonnych skryptow PHP</li>
<li>zabawy w CSI super mega wypas loader ktory pokaze wszystko co zechcesz <img src='http://otsoft.pl/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </li>
</ul>
<p>Tak to wyglada w praktyce:</p>
<p><a href="http://otsoft.pl/blog/wp-content/uploads/2010/02/apinstall.jpg"><img class="aligncenter size-full wp-image-169" title="apinstall" src="http://otsoft.pl/blog/wp-content/uploads/2010/02/apinstall.jpg" alt="" width="300" height="127" /></a></p>
<p>Nie jestem zbyt zadowolony z samego progress baru, wiec pewnikiem zostanie zmieniony, w kazdym razie obecnie mozna konfigurowac kolor paska w klasie, oraz backgroundu w css.</p>
<p>Jak widac na screenie to nie tylko sam progress bar, pod nim wyswietlane sa aktualne czynnosci wykonywane przez skrypt, programista sam je definiuje a klasa poiera i wyswietla wraz z postepem.</p>
<p>A skoro sam definiuje, mzoe to byc np:</p>
<ol>
<li>Otwieranie puszki browara</li>
<li>Chlanie do dna</li>
<li>Glosne bekniecie</li>
<li>Proba pozbycia sie czkawki</li>
<li>Wyrzucenie puszki</li>
<li>Proba pozbycia sie czkawki, podejscie drugie <img src='http://otsoft.pl/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </li>
</ol>
<p>Wszystko zalezy wiec od Waszej inwencji.</p>
<p>Jak to sobie zainstalowac? Nic prostszego, najpierw sciagamy sobie klase:</p>
<p><a href="http://code.google.com/p/apinstall/downloads/list">http://code.google.com/p/apinstall/downloads/list</a></p>
<p>Nastepnie w &lt;header&gt; naszej strony includujemy klase i ja inicjujemy:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="kw1">require_once</span><span class="br0">&#40;</span><span class="st0">&#8216;class/class.install.php&#8217;</span><span class="br0">&#41;</span>; <span class="co1">//inlude apinstall class</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$install</span> = <span class="kw2">new</span> Installer<span class="br0">&#40;</span><span class="br0">&#41;</span>; <span class="co1">//initialize it</span></div>
</li>
</ol>
</div>
<p>Nastepnie zaciagamy CSS, ustalamy sciezke do tymczasowego pliku logowania, definiujemy ile krokow bedzie mial nasz proces, i inicjujemy funckje generowania + opcjonalnie wybieramy kolor naszego progress bara:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="re0">$install</span>-&gt;<span class="me1">includeCSS</span><span class="br0">&#40;</span><span class="br0">&#41;</span>; <span class="co1">//include CSS file</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$install</span>-&gt;<span class="me1">setLogPath</span><span class="br0">&#40;</span><span class="st0">&#8216;/home/user/public_html/apinstall&#8217;</span><span class="br0">&#41;</span>; <span class="co1">//path to logfile</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//no trailing slash!</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$install</span>-&gt;<span class="me1">setSteps</span><span class="br0">&#40;</span><span class="nu0">3</span><span class="br0">&#41;</span>; <span class="co1">//set how many steps there will be (3 in this example)</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$install</span>-&gt;<span class="me1">generate</span><span class="br0">&#40;</span><span class="st0">&#8216;#84AEBE&#8217;</span><span class="br0">&#41;</span>; <span class="co1">//generate temporary files and choose colour of your bar.</span></div>
</li>
</ol>
</div>
<p>Kolejny krokiem jest umieszczenie diva, w miejscu gdzie chcemy aby nasz progress bar sie pojawil:</p>
<p>No i najwazniejsza czesc, czyli definiujemy kroki:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="co2">#1 step</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$output</span> = <span class="st0">&#8216;Sending mails&#8217;</span>; <span class="co1">//title of this process</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$install</span>-&gt;<span class="me1">save</span><span class="br0">&#40;</span><span class="re0">$output</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">/*</span></div>
</li>
<li class="li2">
<div class="de2"><span class="coMULTI">Process itself (f.e sending mails)</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">*/</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co2">#2 step</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$output</span> = <span class="st0">&#8216;Optimizing database&#8217;</span>;</div>
</li>
<li class="li2">
<div class="de2"><span class="re0">$install</span>-&gt;<span class="me1">save</span><span class="br0">&#40;</span><span class="re0">$output</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">/*</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">Optimizing database code</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">*/</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2"><span class="co1">//Inform user that script has finished</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co2">#3 step</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$output</span> = <span class="st0">&#8216;Completed&#8217;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$install</span>-&gt;<span class="me1">save</span><span class="br0">&#40;</span><span class="re0">$output</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2"><span class="re0">$install</span>-&gt;<span class="me1">delay</span><span class="br0">&#40;</span><span class="nu0">5</span><span class="br0">&#41;</span>; <span class="co1">//make delay in seconds to show finished state longer.</span></div>
</li>
</ol>
</div>
<p>Jak widac najpierw jest $output, czyli definiujemy co sie pojawi pod preress barem w tym kroku, nastepnie save, ktory wprowadza te dane do tymczasowego pliku, po tym nastepuje to co chcecie robic, moze byc to mailing, polacznie z baza, wgrywanie schematu SQL czy cokolwiek innego.</p>
<p>Opcjonalnie mozna dodac delay, czyli opoznienie w zakonczeniu procesu, to mimo wszystko dosc wazny punkt, bowiem niektore operacje php wykonuje tak szybko, ze skrypt nie zdarzy zareagowac, oczywiscie jesli zalezy Wam na szybkosci &#8211; nie ma sensu wrzucania delaya &#8211; ale jesli chcecie zobaczyc krok po kroku co sie dzieje ze skryptem, mozna dac mu niewielki czas na to aby nam pokazal aktualnie co robi.</p>
<p>Na przyklad taki oto kroczek:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="re0">$output</span> = <span class="st0">&#8216;Wyswietlanie wartosci zmiennej&#8217;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$install</span>-&gt;<span class="me1">save</span><span class="br0">&#40;</span><span class="re0">$output</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">&#8216;$zmienna&#8217;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$install</span>-&gt;<span class="me1">delay</span><span class="br0">&#40;</span><span class="nu0">0.20</span><span class="br0">&#41;</span>; <span class="co1">//0.2 sekundy na to zeby wyswietlic zmienna</span></div>
</li>
</ol>
</div>
<p>Oczywiscie nie ma sensu robic tak z calym skryptem, bo czas wykonania wydluzyl by sie kilkukrotnie, ale przy wysylaniu mailingu, czy pobieraniu bardzo zagniezdzonych danych w olbrzymich plikach jest to bardzo dobre rozwiazanie.</p>
<p>W klasie ktora mozecie pobrac jest plik install.php jako przyklad, trzeba tylko ustalic w nim sciezke i mozna sobie sprobowac jak to dziala.</p>
<p>Pare linkow na koniec:</p>
<p><a href="http://otsoft.pl/blog/ap_demo/install.php">Demo</a></p>
<p><a href="http://code.google.com/p/apinstall/">Google Projekt dla Apinstall </a></p>
<p>Milego testowania <img src='http://otsoft.pl/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://otsoft.pl/blog/2010/02/11/php-jquery-czyli-apinstall-progress-bar/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Apinstall</title>
		<link>http://otsoft.pl/blog/apinstall/</link>
		<comments>http://otsoft.pl/blog/apinstall/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 23:27:31 +0000</pubDate>
		<dc:creator>pavlus</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://otsoft.pl/blog/?page_id=163</guid>
		<description><![CDATA[Apinstall to klasa php wzmocniona biblioteka jQuery pozwalajaca na wyswietlenie uztkownikowi co aktualnie wykonuje skrypt podczas jego dzialania. Dodatkowo wyswietlany jest graficzny progres bar. Strona projektu dostepna tutaj: http://code.google.com/p/apinstall/ Demo dostepne tutaj: http://otsoft.pl/blog/ap_demo/install.php]]></description>
			<content:encoded><![CDATA[<p><strong>Apinstall</strong> to klasa php wzmocniona biblioteka jQuery pozwalajaca na wyswietlenie uztkownikowi co aktualnie wykonuje skrypt podczas jego dzialania.  Dodatkowo wyswietlany jest graficzny progres bar.</p>
<p>Strona projektu dostepna tutaj: <a href="http://code.google.com/p/apinstall/ ">http://code.google.com/p/apinstall/ </a></p>
<p>Demo dostepne tutaj: <a href="http://otsoft.pl/blog/ap_demo/install.php ">http://otsoft.pl/blog/ap_demo/install.php </a></p>
]]></content:encoded>
			<wfw:commentRss>http://otsoft.pl/blog/apinstall/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jQuery na Otsoftcie i schemat elektryczny ;)</title>
		<link>http://otsoft.pl/blog/2010/02/07/jquery-na-otsoftcie-i-schemat-elektryczny/</link>
		<comments>http://otsoft.pl/blog/2010/02/07/jquery-na-otsoftcie-i-schemat-elektryczny/#comments</comments>
		<pubDate>Sun, 07 Feb 2010 00:53:59 +0000</pubDate>
		<dc:creator>pavlus</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Open Tibia]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Życie]]></category>
		<category><![CDATA[download]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[otsoft]]></category>
		<category><![CDATA[piec]]></category>
		<category><![CDATA[preloader]]></category>
		<category><![CDATA[schemat]]></category>

		<guid isPermaLink="false">http://otsoft.pl/blog/?p=156</guid>
		<description><![CDATA[Z raportu Azora wynika, ze wiekszosc userow odwiedzajacych nasz Otsoftowy download nie potrafi znalezc odnosnika do sciagniecia pliku, tym samym spamujac panel admina wiadomosciami ze plik nie istnieje. Nie wiem jak mozna nie dostrzec tej sporej ikonki, nad ktora widnieje (zazwyczaj) rozmiar pliku do pobrania, ale pal licho, statystyk co do wielkosci wady wzroku uzytkownikow [...]]]></description>
			<content:encoded><![CDATA[<p>Z raportu Azora wynika, ze wiekszosc userow odwiedzajacych nasz Otsoftowy download nie potrafi znalezc odnosnika do sciagniecia pliku, tym samym spamujac panel admina wiadomosciami ze plik nie istnieje.</p>
<p>Nie wiem jak mozna nie dostrzec tej sporej ikonki, nad ktora widnieje (zazwyczaj) rozmiar pliku do pobrania, ale pal licho, statystyk co do wielkosci wady wzroku uzytkownikow google mi nie zbiera, a szkoda :/</p>
<p>Tak czy siak pomysl z napisem<strong> DOWNLOAD </strong>bylby troche za prosty <img src='http://otsoft.pl/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  A po co uzytkownikom ulatwiac zycie? <img src='http://otsoft.pl/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Szperajac po sieci znalazlem ciekawy javascript wykorzystujacy jQuery.</p>
<p>Link -&gt; <a href="http://www.gayadesign.com/scripts/sNotify/ ">http://www.gayadesign.com/scripts/sNotify/ </a></p>
<p>Banalnie latwy do zastosowania. Efekt jest widoczny po wejsciu na jakikolwiek link prowadzacy do pliku na otsofcie.</p>
<p style="text-align: center;">
<p style="text-align: center;"><a href="http://otsoft.pl/blog/wp-content/uploads/2010/02/discicon.jpg"><img class="size-full wp-image-157 aligncenter" title="discicon" src="http://otsoft.pl/blog/wp-content/uploads/2010/02/discicon.jpg" alt="" width="358" height="162" /></a></p>
<p>Teraz kwestia czy lud to zobaczy i sie zastosuje.</p>
<p>Kolejna kwestia, ktora dreczyla  mnie juz jakis czas &#8211; ladowanie strony glownej Otsoftu. Mimo iz strona laduje sie szybko, srednio w <strong>0.086 </strong>sekundy, to czasami przez bledy/restart apache lub wolne ladowanie sie multimediow (grafika, flv) zabiera to troche wiecej czasu a na ekranie mozna zobaczyc kolejne etapy lamania sie layoutu, przechodzenie przez kolejne divy, rozciaganie i inne akcje ktore psuja ogolne wrazenie.</p>
<p>Rozwiazaniem byl <strong>preloader</strong>, skrypt ktory zaladuje cala zawartosc strony zanim ja wyswietli i znow pomocne zdalo sie byc jQuery.</p>
<p>Caly algorytm wyglada tak:</p>
<ol>
<li>Zaladowanie diva preloadera (minimalistycznie: czarne tlo, maly progress bar, tekst)</li>
<li>Div &#8222;przykrywa&#8221; soba caly lay strony do czasu az zostanie zaladowany ostatni tag html.</li>
<li>Nastepuje zwolnienie blokady <img src='http://otsoft.pl/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  i jQuery usuwa div preloadera.</li>
</ol>
<p>To co ujrzycie przed wyswietleniem sie strony wyglada tak:</p>
<p style="text-align: center;"><a href="http://otsoft.pl/blog/wp-content/uploads/2010/02/preloader.jpg"><img class="size-full wp-image-158 aligncenter" title="preloader" src="http://otsoft.pl/blog/wp-content/uploads/2010/02/preloader.jpg" alt="" width="380" height="189" /></a></p>
<p style="text-align: left;">Postanowilem to wykorzystac tylko i wylacznie dla strony glownej, podstrony beda sie ladowac tak jak poprzednio.</p>
<p style="text-align: left;">jQuery znalazlo tez zastosowanie na Akademickim, od teraz moge sobie podgladac to co sie dzieje w konsoli na biezaco przez strone z auto odswiezaniem co 3 sekundy, fajny bajer jak komus sie nie siedziec na ssh <img src='http://otsoft.pl/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Linka z oczywistych wzgledow nie podam <img src='http://otsoft.pl/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p style="text-align: left;">A na koniec cos z zycia domowego ;D Coby nie bylo ze gnije przed kompem 24h (kogo ty chce oszukac? <img src='http://otsoft.pl/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ).</p>
<p style="text-align: left;">A wiec postanowilem zrobic mojemu tacie dokumentacje techniczna pieca opalowego, ktory ostatnio podlaczylismy &#8211; jak wiadomo gaz tani nie jest, a  mysl o tym ze na drugim koncu europy siedzi taki Sasza z Miszą i sobie kreca kurkami, pala w piecu bankotami 100 dolarowymi i smieja sie z Polaczkow jakos nas nie cieszy,  wiec czas byl zadzialac.</p>
<p style="text-align: left;">Piecor smiga az milo, dodatkowo pelna automatyka domowej roboty na zasadzie przekaznikow i czujnikow temperatury, a co!</p>
<p style="text-align: left;">Jakby ktos byl zainteresowany rozwiazaniem jak polaczyc ze soba piec gazowy i opalowy (plus wymiennik ciepla) to zapraszam do zajrzenia do tego schemaciku: <a href="http://i50.tinypic.com/9ban39.jpg">LINK</a></p>
<p style="text-align: left;">Z tego miejsca poklony dla mojego taty projektanta i wykonawcy projektu.</p>
<p style="text-align: left;">Ok, dzien uwazam za bardoz udany, czas spac, salute!</p>
]]></content:encoded>
			<wfw:commentRss>http://otsoft.pl/blog/2010/02/07/jquery-na-otsoftcie-i-schemat-elektryczny/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
