<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.2" -->
<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/"
	>

<channel>
	<title>DeBlog</title>
	<link>http://blog.desmart.com</link>
	<description></description>
	<pubDate>Wed, 27 Aug 2008 10:40:29 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.2</generator>
	<language>en</language>
			<item>
		<title>VirtualBox - wirtualny komputer</title>
		<link>http://blog.desmart.com/2008/08/27/virtualbox-wirtualny-komputer/</link>
		<comments>http://blog.desmart.com/2008/08/27/virtualbox-wirtualny-komputer/#comments</comments>
		<pubDate>Wed, 27 Aug 2008 10:40:29 +0000</pubDate>
		<dc:creator>dooshek</dc:creator>
		
		<category><![CDATA[Programy]]></category>

		<guid isPermaLink="false">http://blog.desmart.com/2008/08/27/virtualbox-wirtualny-komputer/</guid>
		<description><![CDATA[Zapewne większość zna
Vmware. Znalazłem ostatnio odpowiednik darmowy
VirtualBox wspierany bodajże przez Sun&#8217;a. Nie sprawdzałem w działaniu ale warto chyba go obadać.
]]></description>
			<content:encoded><![CDATA[<p>Zapewne większość zna<br />
<a  href="http://vmware.com" onclick="javascript:pageTracker._trackPageview('/external/vmware.com');" >Vmware</a>. Znalazłem ostatnio odpowiednik darmowy<br />
<a  href="http://www.virtualbox.org/" onclick="javascript:pageTracker._trackPageview('/external/www.virtualbox.org/');" >VirtualBox</a> wspierany bodajże przez Sun&#8217;a. Nie sprawdzałem w działaniu ale warto chyba go obadać.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.desmart.com/2008/08/27/virtualbox-wirtualny-komputer/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Małe a cieszy - czyli do czego może się przydać COUNT(DISTINCT &#8230;)</title>
		<link>http://blog.desmart.com/2008/08/20/male-a-cieszy-czyli-do-czego-moze-sie-przydac-countdistinct/</link>
		<comments>http://blog.desmart.com/2008/08/20/male-a-cieszy-czyli-do-czego-moze-sie-przydac-countdistinct/#comments</comments>
		<pubDate>Wed, 20 Aug 2008 12:14:37 +0000</pubDate>
		<dc:creator>birkin</dc:creator>
		
		<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://blog.desmart.com/2008/08/20/male-a-cieszy-czyli-do-czego-moze-sie-przydac-countdistinct/</guid>
		<description><![CDATA[O rety.. Przeszedłem długą drogę, JOIN.. GROUP BY.. FROM (SELECT &#8230;) i oczywiście i tak nie chciało działać.. A potrzebowałem pewnej prostej rzeczy, którą opiszę na prostym przykładzie: w bazie trzymam n-zamówień, zaś każde zamówienie może być podzielone na x-części, przy czym każda ta część ma swój status (np.: zgłoszone, zapłacone, wysłane&#8230;). Problem: w jaki [...]]]></description>
			<content:encoded><![CDATA[<p>O rety.. Przeszedłem długą drogę, JOIN.. GROUP BY.. FROM (SELECT &#8230;) i oczywiście i tak nie chciało działać.. A potrzebowałem pewnej prostej rzeczy, którą opiszę na prostym przykładzie: w bazie trzymam n-zamówień, zaś każde zamówienie może być podzielone na x-części, przy czym każda ta część ma swój status (np.: zgłoszone, zapłacone, wysłane&#8230;). Problem: w jaki sposób wyciągnąć jednym zapytaniem wszystkie zamówienia, przy czym chce również wiedzieć czy poszczególne zamówienia posiadają części o różnych statusach. Nic nie działało i tak o to trafiłem w tajemnicze COUNT(DISTINCT), i okazało się, że właśnie ta funkcja robi wszystkie skomplikowane rzeczy, które ja próbowałem tworzyć w ciągu pół godziny :)</p>
<p>Przykład zastosowania:</p>
<textarea name="code" class="sql:nogutter" cols="60" rows="10">SELECT
...
(
SELECT
IF(COUNT(DISTINCT internal_status), 'Różne statusy', op.internal_status)
FROM
order_parts
WHERE
id_iorder = op.id_order
) as order_part_status
FROM
orders
JOIN
order_parts AS op USING(id_order)
</textarea>
]]></content:encoded>
			<wfw:commentRss>http://blog.desmart.com/2008/08/20/male-a-cieszy-czyli-do-czego-moze-sie-przydac-countdistinct/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Alternatywa dla sIFRa?</title>
		<link>http://blog.desmart.com/2008/08/07/alternatywa-dla-sifra/</link>
		<comments>http://blog.desmart.com/2008/08/07/alternatywa-dla-sifra/#comments</comments>
		<pubDate>Thu, 07 Aug 2008 09:46:49 +0000</pubDate>
		<dc:creator>dooshek</dc:creator>
		
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://blog.desmart.com/2008/08/07/alternatywa-dla-sifra/</guid>
		<description><![CDATA[Znamy już w miarę dobrze
sIFRa używaliśmy go przy okazji np. strony
GetZZZ. Dzisiaj znalazłem podobne
rozwiązanie które nazywa się FaceLift.
Generuje on obrazki z różnymi czcionkami w locie po stronie serwera czyli PHP + GD a nie jak sIFR po stronie przeglądarki (Flash). Na pewno jest łatwiejszy w implementacji jednak nigdzie nie doczytałem informacji o obsłudze UTFa. Jakiś [...]]]></description>
			<content:encoded><![CDATA[<p>Znamy już w miarę dobrze<br />
<a  href="http://wiki.novemberborn.net/sifr" onclick="javascript:pageTracker._trackPageview('/external/wiki.novemberborn.net/sifr');" >sIFRa</a> używaliśmy go przy okazji np. strony<br />
<a  href="http://getzzz.pl" onclick="javascript:pageTracker._trackPageview('/external/getzzz.pl');" >GetZZZ</a>. Dzisiaj znalazłem podobne<br />
<a  href="http://facelift.mawhorter.net/" onclick="javascript:pageTracker._trackPageview('/external/facelift.mawhorter.net/');" >rozwiązanie</a> które nazywa się FaceLift.</p>
<p>Generuje on obrazki z różnymi czcionkami w locie po stronie serwera czyli PHP + GD a nie jak sIFR po stronie przeglądarki (Flash). Na pewno jest łatwiejszy w implementacji jednak nigdzie nie doczytałem informacji o obsłudze UTFa. Jakiś czas temu próbowałem za pomocą GD zrobić parę polskich &#8220;krzaków&#8221; ale niestety nie wyszło mi to :(</p>
<p>Być może było to winą niepoprawnej czcionki (która nie miała w sobie znaków z puli UTF8) -  nie badałem tego tak dokładnie. Innym problemem z generowaniem obrazków po stronie serwera jest jego obciążenie. Oczywiście wygenerowany obrazek jest cachowany po stronie serwera (a więc napis jest generowany tylko raz) pozostaje jednak problem, że nadal wszystkie takie obrazki są przetwarzane przez PHP.</p>
<p>W przypadku &#8220;zwykłego&#8221; pobierania obrazków jest on serwowany bezpośrednio przez Apache&#8217;a, w przypadku generowanego niestety zawsze uruchamiany jest PHP co dodatkowo obciąża serwer (niewiele ale jednak). Rozwiązaniem jest nasz pomysł z wcześniejszym sprawdzaniem (przed wygenerowaniem strony) czy dany obrazek znajduje sie w cache&#8217;u i wygenerowanie URLa bezpośrednio do obrazka zanjdującego sie w cacheu.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.desmart.com/2008/08/07/alternatywa-dla-sifra/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Zagrożenia związane z używaniem UTFa w PHP</title>
		<link>http://blog.desmart.com/2008/08/07/zagrozenia-zwiazane-z-uzywaniem-utfa-w-php/</link>
		<comments>http://blog.desmart.com/2008/08/07/zagrozenia-zwiazane-z-uzywaniem-utfa-w-php/#comments</comments>
		<pubDate>Thu, 07 Aug 2008 09:33:24 +0000</pubDate>
		<dc:creator>dooshek</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blog.desmart.com/2008/08/07/zagrozenia-zwiazane-z-uzywaniem-utfa-w-php/</guid>
		<description><![CDATA[Natknąłem się na fajną
stronkę która opisuje problemy i ryzyka związane z używaniem UTFa w PHP - wyszczególnione są różne phpowe funkcje - moim zdaniem &#8220;must have&#8221; dla każdego programisty PHP.
]]></description>
			<content:encoded><![CDATA[<p>Natknąłem się na fajną<br />
<a  href="http://www.phpwact.org/php/i18n/utf-8" onclick="javascript:pageTracker._trackPageview('/external/www.phpwact.org/php/i18n/utf-8');" >stronkę</a> która opisuje problemy i ryzyka związane z używaniem UTFa w PHP - wyszczególnione są różne phpowe funkcje - moim zdaniem &#8220;must have&#8221; dla każdego programisty PHP.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.desmart.com/2008/08/07/zagrozenia-zwiazane-z-uzywaniem-utfa-w-php/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Presja czasu czyli złośliwości timestampa w MySQL</title>
		<link>http://blog.desmart.com/2008/07/10/presja-czasu-czyli-zlosliwosci-timestampa-w-mysql/</link>
		<comments>http://blog.desmart.com/2008/07/10/presja-czasu-czyli-zlosliwosci-timestampa-w-mysql/#comments</comments>
		<pubDate>Thu, 10 Jul 2008 08:07:17 +0000</pubDate>
		<dc:creator>myszaq</dc:creator>
		
		<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://blog.desmart.com/2008/07/10/presja-czasu-czyli-zlosliwosci-timestampa-w-mysql/</guid>
		<description><![CDATA[Niedawno natrafiłem na dosyć osobliwy problem podczas definiowania kolumn w jednej z tabeli. Okazuje się, że wszystkim dobrze znany (mam taką nadzieję:)) typ TIMESTAMP rządzi się swoimi własnymi prawami i potrafi w pewnych sytuacjach namieszać dość konkretnie. O co chodzi? Wyobraźmy sobie, że chcemy stworzyć w tabeli &#8216;czasy&#8217; 2 pola:
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
edited_at [...]]]></description>
			<content:encoded><![CDATA[<p>Niedawno natrafiłem na dosyć osobliwy problem podczas definiowania kolumn w jednej z tabeli. Okazuje się, że wszystkim dobrze znany (mam taką nadzieję:)) typ <strong>TIMESTAMP</strong> rządzi się swoimi własnymi prawami i potrafi w pewnych sytuacjach namieszać dość konkretnie. O co chodzi? Wyobraźmy sobie, że chcemy stworzyć w tabeli &#8216;czasy&#8217; 2 pola:<code></code></p>
<p><code>updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP</code><br />
<code>edited_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP</code></p>
<p>Niby wszystko jest w porządku, jednak pojawia się komunikat:</p>
<p><code>Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause.</code></p>
<p>Niestety twórcy MySQL, chociaż opisali taką sytuację, nie raczyli napisać dlaczego tak się dzieje. Próba zastąpienia<strong> CURRENT_TIMESTAMP</strong> przez <em>NOW</em>() tudzież <em>LOCALTIME</em>() też nic nie daje, jako że są to wartości równoznaczne tej pierwszej. Warto przy tym wspomnieć, że typ TIMESTAMP daje dość duże możliwości, jeżeli chcemy dać polu wartość domyślną i/lub automatycznie uaktualniać przy użyciu nieszczęsnego CURRENT_TIMESTAMP. Możemy użyć go np. do czegoś takiego:<br />
<code>updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP</code><br />
lub<br />
<code>updated_at TIMESTAMP DEFAULT 0 ON UPDATE CURRENT_TIMESTAMP.</code></p>
<p>Wspaniale, tylko że dotyczy to pierwszej kolumny. Próba użycia CURRENT_TIMESTAMP w kolejnej kolumnie zakończy się powyższym błędem.<br />
Co więc zrobić, gdy chcemy koniecznie mieć możliwość zdefiniowania defaultowej wartości dla obu takich pól czasowych (o aktualizacji nie wspominając)? Możemy zdefiniować pola następująco:<br />
<code><br />
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP<br />
edited_at TIMESTAMP NOT NULL DEFAULT '2008-01-01 00:00:00'<br />
</code></p>
<p>Zamiast jakiejś daty w polu DEFAULT możemy umieścić 0 lub nawet NULL, ale w tym ostatnim przypadku trzeba również pamiętać o zadeklarowaniu pola jako NULL. Takie pośrednie rozwiązania zapewne jednak nas nie satysfakcjonują - data w drugim polu stanie się szybko przestarzała a wartość zerowa do niczego się raczej nie przyda. Niestety tylko takie wyjście proponuje<br />
<a  href="http://dev.mysql.com/doc/refman/5.1/en/timestamp.html" onclick="javascript:pageTracker._trackPageview('/external/dev.mysql.com/doc/refman/5.1/en/timestamp.html');" >manual</a>.<br />
Najlepiej jest zatem zapewnić samemu wstawianie odpowiednich wartości. I tu można się bardzo zdziwić - nie trzeba bowiem pisać<br />
<code>INSERT INTO czasy VALUES (NOW(), CURRENT_TIMESTAMP);</code></p>
<p>Jak to? Definiujemy tabelę &#8216;czasy&#8217; w ten sposób:<br />
<code>create table czasy (<br />
created_at timestamp NOT NULL default '0000-00-00 00:00:00',<br />
updated_at timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP<br />
);</code></p>
<p>Następnie wykonujemy zapytanie<br />
<code>INSERT INTO czasy(created_at,updated_at) VALUES (NULL,NULL);</code></p>
<p>Jaki będzie efekt? Obie kolumny będą zawierać tą samą wartość - CURRENT_TIMESTAMP :) Dzieje się tak dlatego, że przypisanie kolumnie zdefiniowanej jako NOT NULL wartości NULL zamieni ją na aktualny czas.<br />
A powiadają, że szczęśliwi czasu nie liczą&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.desmart.com/2008/07/10/presja-czasu-czyli-zlosliwosci-timestampa-w-mysql/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Nowy Fireshot</title>
		<link>http://blog.desmart.com/2008/07/09/nowy-fireshot/</link>
		<comments>http://blog.desmart.com/2008/07/09/nowy-fireshot/#comments</comments>
		<pubDate>Wed, 09 Jul 2008 07:41:34 +0000</pubDate>
		<dc:creator>radmen</dc:creator>
		
		<category><![CDATA[Programy]]></category>

		<category><![CDATA[Przeglądarki]]></category>

		<guid isPermaLink="false">http://blog.desmart.com/2008/07/09/nowy-fireshot/</guid>
		<description><![CDATA[

Niedawno ukazała się nowa wersja rozszerzenia
FireShot. FireShot służy do robienia zrzutów ekranu przeglądanej strony. Rozszerzenie udostępnia sporo możliwości. Poza dodawaniem tekstu, możemy oznaczyć jakiś element strzałką, lub nawet zaznaczyć cały blok i go opisać. Jeśli tego nam mało to możemy pobawić się prostymi efektami graficznymi.
Dawniej FireShot był rozszerzeniem tylko dla
Firefoksa. Wraz z nową wersją mamy [...]]]></description>
			<content:encoded><![CDATA[<div>
<a  href="http://blog.desmart.com/wp-content/uploads/2008/07/fireshot.png" title="fireshot.png" onclick="javascript:pageTracker._trackPageview('/downloads/wp-content/uploads/2008/07/fireshot.png');" ><img src="http://blog.desmart.com/wp-content/uploads/2008/07/fireshot.png" alt="fireshot.png" /></a></div>
<p>Niedawno ukazała się nowa wersja rozszerzenia<br />
<a  href="http://screenshot-program.com/fireshot/" title="FireShot homepage" onclick="javascript:pageTracker._trackPageview('/external/screenshot-program.com/fireshot/');" >FireShot</a>. FireShot służy do robienia zrzutów ekranu przeglądanej strony. Rozszerzenie udostępnia sporo możliwości. Poza dodawaniem tekstu, możemy oznaczyć jakiś element strzałką, lub nawet zaznaczyć cały blok i go opisać. Jeśli tego nam mało to możemy pobawić się prostymi efektami graficznymi.</p>
<p>Dawniej FireShot był rozszerzeniem tylko dla<br />
<a  href="http://firefox.pl" title="Firefox" onclick="javascript:pageTracker._trackPageview('/external/firefox.pl');" >Firefoksa</a>. Wraz z nową wersją mamy możliwość korzystać z tego programu jako rozszerzenie dla IE. Jest to o tyle przydatne, że nie musimy się bawić w robienie zrzutu, wrzucanie go do edytora i zapisywanie. Teraz, dzięki FireShot, możemy bez problemu zaznaczyć to co się krzaczy pod IE, szybko i bezboleśnie :)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.desmart.com/2008/07/09/nowy-fireshot/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Mały ficzer FireBuga</title>
		<link>http://blog.desmart.com/2008/06/30/maly-ficzer-firebuga/</link>
		<comments>http://blog.desmart.com/2008/06/30/maly-ficzer-firebuga/#comments</comments>
		<pubDate>Mon, 30 Jun 2008 13:25:21 +0000</pubDate>
		<dc:creator>buka</dc:creator>
		
		<category><![CDATA[Przeglądarki]]></category>

		<category><![CDATA[HTML]]></category>

		<category><![CDATA[PHP]]></category>

		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://blog.desmart.com/2008/06/30/maly-ficzer-firebuga/</guid>
		<description><![CDATA[Podejrzewam, że nie wszyscy wiedzą, że Firebug ma małą pomocną funkcjonalność &#8220;poboczną&#8221;, którą niedawno przypadkiem odkryłem. Jak wiadomo, gdyby nie Firebug to debugowanie zapytań ajaxowych byłoby w ogóle masakrą. Dzięki FB jakoś dajemy radę. Można sobie w funkcji zrobić var_dump&#8217;a, albo print_r&#8217;a i w konsoli FB wyłuskać wynik. Ale ze względu na wyświetlenie w konsoli [...]]]></description>
			<content:encoded><![CDATA[<p>Podejrzewam, że nie wszyscy wiedzą, że Firebug ma małą pomocną funkcjonalność &#8220;poboczną&#8221;, którą niedawno przypadkiem odkryłem. Jak wiadomo, gdyby nie Firebug to debugowanie zapytań ajaxowych byłoby w ogóle masakrą. Dzięki FB jakoś dajemy radę. Można sobie w funkcji zrobić var_dump&#8217;a, albo print_r&#8217;a i w konsoli FB wyłuskać wynik. Ale ze względu na wyświetlenie w konsoli html&#8217;a jako tekstu, var_dump praktycznie odpadał. Ale jeżeli ktoś czuje się bardziej związany emocjonalnie z var_dump&#8217;em ;) to w końcu dochodzimy do tego co znalazłem - jeżeli w odpowiedzi na zapytanie w konsoli FB mamy wysyp kodu html, można na nim kliknąć MMB/wałkiem, a Firefox otworzy nam go w nowej karcie, zinterpretowanego i pokolorowanego :)<img src="http://blog.desmart.com/wp-content/uploads/2008/06/firebug_mmb.png" alt="firebug_mmb.png" /></p>
<p>That&#8217;s all, folks :) Mała rzecz, a cieszy ;)</p>
<p>ps. Tylko że nie zawsze to działa&#8230; ;P</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.desmart.com/2008/06/30/maly-ficzer-firebuga/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Wykorzystanie ceny brutto w rachunkach aplikacji</title>
		<link>http://blog.desmart.com/2008/06/19/wykorzystanie-ceny-brutto-w-rachunkach-aplikacji/</link>
		<comments>http://blog.desmart.com/2008/06/19/wykorzystanie-ceny-brutto-w-rachunkach-aplikacji/#comments</comments>
		<pubDate>Thu, 19 Jun 2008 12:24:08 +0000</pubDate>
		<dc:creator>birkin</dc:creator>
		
		<category><![CDATA[MySQL]]></category>

		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://blog.desmart.com/2008/06/19/wykorzystanie-ceny-brutto-w-rachunkach-aplikacji/</guid>
		<description><![CDATA[W naszych serwisach bardzo często pojawia się zarządzanie cenami różnych produktów (wyliczanie cen, stawek VAT oraz innych skomplikowanych obliczeń). W większości przypadków podstawą jest cena netto, natomiast problem pojawia się, kiedy klient zażyczy aby podstawą była cena brutto!
]]></description>
			<content:encoded><![CDATA[<p>W naszych serwisach bardzo często pojawia się zarządzanie cenami różnych produktów (wyliczanie cen, stawek VAT oraz innych skomplikowanych obliczeń). W większości przypadków podstawą jest cena netto, natomiast problem pojawia się, kiedy klient zażyczy aby podstawą była cena brutto!<br />
<a  href="http://blog.desmart.com/2008/06/19/wykorzystanie-ceny-brutto-w-rachunkach-aplikacji/#more-52" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.desmart.com/2008/06/19/wykorzystanie-ceny-brutto-w-rachunkach-aplikacji/feed/</wfw:commentRss>
		</item>
		<item>
		<title>FirePHP</title>
		<link>http://blog.desmart.com/2008/06/18/firephp/</link>
		<comments>http://blog.desmart.com/2008/06/18/firephp/#comments</comments>
		<pubDate>Wed, 18 Jun 2008 08:11:08 +0000</pubDate>
		<dc:creator>skowron</dc:creator>
		
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://blog.desmart.com/2008/06/18/firephp/</guid>
		<description><![CDATA[Dzisiaj z rana znaleźliśmy fajny sposób na debugowanie kodu w php. Instaluje się jako dodatek do firebuga, dzięki czemu można wyświetlić zawartość zmiennej czy tablicy bez ingerencji w układ strony i otwierania popupów. Bibliotekę można znaleźć na
http://www.firephp.org.
Składa się ona z 2 modułów:

wtyczki do firefoxa, integrującej się z
firebugiem,
funkcji / klasy napisanej w php którą trzeba podłączyć [...]]]></description>
			<content:encoded><![CDATA[<p>Dzisiaj z rana znaleźliśmy fajny sposób na debugowanie kodu w php. Instaluje się jako dodatek do firebuga, dzięki czemu można wyświetlić zawartość zmiennej czy tablicy bez ingerencji w układ strony i otwierania popupów. Bibliotekę można znaleźć na<br />
<a  href="http://www.firephp.org/" title="firephp" onclick="javascript:pageTracker._trackPageview('/external/www.firephp.org/');" >http://www.firephp.org.</a></p>
<p>Składa się ona z 2 modułów:</p>
<ul>
<li>wtyczki do firefoxa, integrującej się z<br />
<a  href="http://getfirebug.com" title="firebug" onclick="javascript:pageTracker._trackPageview('/external/getfirebug.com');" >firebugiem</a>,</li>
<li>funkcji / klasy napisanej w php którą trzeba podłączyć do swojego kodu php</li>
</ul>
<p>potem wystarczy już tylko:</p>
<textarea name="code" class="php:nogutter" cols="60" rows="10">
<?php
fb('Hello World');
?>
</textarea>
<p>i już w zakładce console wyświetli się odpowiedni string :)</p>
<p>dokładny opis i możliwości znajdziecie bezpośrednio na<br />
<a  href="http://www.firephp.org/Wiki/Main/QuickStart" onclick="javascript:pageTracker._trackPageview('/external/www.firephp.org/Wiki/Main/QuickStart');" >stronie wtyczki</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.desmart.com/2008/06/18/firephp/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Adobe onAIR</title>
		<link>http://blog.desmart.com/2008/06/16/adobe-onair/</link>
		<comments>http://blog.desmart.com/2008/06/16/adobe-onair/#comments</comments>
		<pubDate>Mon, 16 Jun 2008 06:55:40 +0000</pubDate>
		<dc:creator>skowron</dc:creator>
		
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://blog.desmart.com/2008/06/16/adobe-onair/</guid>
		<description><![CDATA[Ponad tydzień temu 6 czerwca w stolicy gościliśmy pracowników Adobe, którzy przybyli do Nas szerzyć swoją &#8220;nową, rewolucyjną&#8221; technologię. Miałem przyjemność uczestniczenia w tej konferencji, którą oceniam jako na prawdę udaną!
Przede wszystkim należy docenić Ewangelistów z Adobe, którzy wkładają w to co robią bardzo dużo serca. Byli świetnie przygotowani, potrafili przedstawić prezentowany temat w bardzo [...]]]></description>
			<content:encoded><![CDATA[<p><a  href="http://onair.adobe.com/" onclick="javascript:pageTracker._trackPageview('/external/onair.adobe.com/');" ><img src="http://blog.desmart.com/wp-content/uploads/2008/06/onair_logo_europe.png" alt="onAir logo" class="LeftPhoto" /></a>Ponad tydzień temu 6 czerwca w stolicy gościliśmy pracowników Adobe, którzy przybyli do Nas szerzyć swoją &#8220;nową, rewolucyjną&#8221; technologię. Miałem przyjemność uczestniczenia w tej konferencji, którą oceniam jako na prawdę udaną!</p>
<p>Przede wszystkim należy docenić Ewangelistów z Adobe, którzy wkładają w to co robią bardzo dużo serca. Byli świetnie przygotowani, potrafili przedstawić prezentowany temat w bardzo przystępny, nie rzadko zabawny sposób. Po każdej z 2 - 3 prezentacji odbywała się krótka przerwa podczas której można było wrzucić coś do żołądka, wchłonąć trochę kofeiny z redbulla, pograć na Xboxie lub Wii, czy też co uważam za najcenniejsze porozmawiać z prelegentami z Adobe na osobności.</p>
<p>I tak dzięki temu udało mi się wyciągnąć nieco informacji:</p>
<ul>
<li>jeszcze w tym roku powinniśmy spodziewać się wersji stabilnej środowiska w wersji dla Linuxa,</li>
<li>podobnie możemy oczekiwać aktualizacji używanej w środowisku wersji Webkita,</li>
<li>developerzy usilnie myślą nad możliwością uruchamiania innych programów z poziomu aplikacji AIR</li>
</ul>
<p>Każdy do którego się zwróciłem starał się pomóc. Jeżeli nie znał odpowiedzi na zadane pytanie, wskazywał odpowiednią osobę do której mogłem się zwrócić.</p>
<p>Osobiście najbardziej zainteresował mnie sam Flex. Postanowiłem sobie że poznam go bliżej, co powinno być łatwiejsze dzięki gadżetom który otrzymał każdy z przybyłych. W których znalazła się między innymi ściągawka z API Flexowego. Każdy miał również możliwość wygrania Flex Builder 3 Professional i innych cennych fantów. Mi niestety zabrakło szczęścia :)</p>
<p>Każdy z ewangelistów posiada swojego bloga. Myślę że warto je na bieżąco śledzić. Ich adresy można znaleźć na stronach<br />
<a  href="http://onair.adobe.com/tour/" onclick="javascript:pageTracker._trackPageview('/external/onair.adobe.com/tour/');" >onAIR</a>. Dokładny zapis wideo, ma być dostępny na<br />
<a  href="http://onair.adobe.com/" onclick="javascript:pageTracker._trackPageview('/external/onair.adobe.com/');" >http://onair.adobe.com/</a> w ciągu 2 tygodni. Za to już teraz można oglądać<br />
<a  href="http://www.flickr.com/groups/onairbustour/pool/" onclick="javascript:pageTracker._trackPageview('/external/www.flickr.com/groups/onairbustour/pool/');" >zdjęcia umieszczone przez Mike&#8217;a Chambersa</a>.</p>
<p>dokładną relację z konferencji można przeczytać na blogu<br />
<a  href="http://adobers.org/spotkania/adobe-on-air-tour-warsaw-2008" onclick="javascript:pageTracker._trackPageview('/external/adobers.org/spotkania/adobe-on-air-tour-warsaw-2008');" >http://adobers.org/spotkania/adobe-on-air-tour-warsaw-2008</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.desmart.com/2008/06/16/adobe-onair/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
