<?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>deadlime &#187; Firefox</title>
	<atom:link href="http://deadlime.hu/tag/firefox/feed/" rel="self" type="application/rss+xml" />
	<link>http://deadlime.hu</link>
	<description>unexpected terminator</description>
	<lastBuildDate>Mon, 14 May 2012 20:38:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Debuggolás, jól átsütve</title>
		<link>http://deadlime.hu/2008/12/15/debuggolas-jol-atsutve/</link>
		<comments>http://deadlime.hu/2008/12/15/debuggolas-jol-atsutve/#comments</comments>
		<pubDate>Mon, 15 Dec 2008 20:51:06 +0000</pubDate>
		<dc:creator>Nagy Krisztián</dc:creator>
				<category><![CDATA[nincs kategória]]></category>
		<category><![CDATA[debug]]></category>
		<category><![CDATA[Doctrine]]></category>
		<category><![CDATA[Firebug]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[FirePHP]]></category>
		<category><![CDATA[logolás]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://deadlime.hu/?p=137</guid>
		<description><![CDATA[Talán nem túlzás azt állítani, hogy a Firebug a legjobb dolgok közé tartozik, ami manapság egy JavaScript fejlesztővel történhetnek. A több mint 10 millió letöltés, valamint a tény, hogy - bár maga is kiegészítő - kiegészítőket fejlesztenek hozzá elég bizonyítékul is szolgálhat ennek alátámasztására. Egy ilyen kiegészítőbe futottam bele még valamikor a múlt héten, ami [...]]]></description>
			<content:encoded><![CDATA[<p>Talán nem túlzás azt állítani, hogy a Firebug a legjobb dolgok közé tartozik, ami manapság egy JavaScript fejlesztővel történhetnek. A több mint 10 millió letöltés, valamint a tény, hogy - bár maga is kiegészítő - kiegészítőket fejlesztenek hozzá elég bizonyítékul is szolgálhat ennek alátámasztására. Egy ilyen kiegészítőbe futottam bele még valamikor a múlt héten, ami a FirePHP nevet viseli (a nevével ellentétben bármely más szerver oldali nyelvvel használható, ami képes header-öket kiküldeni). Nincs is másra szükségünk csak egy <a href="http://www.mozilla-europe.org/hu/firefox/">Firefox</a>-ra (ez remélhetőleg már mindenkinek van :)), egy <a href="http://getfirebug.com/">Firebug</a>-ra (ez is esélyes lehet, hogy akad a közelben) és a <a href="http://www.firephp.org/">FirePHP</a>-ra. Meg egy kis szerveroldali scriptre, ami szintén a FirePHP oldaláról tölthető le.</p>

<p style="text-align: center;"><img src="http://deadlime.hu/wp-content/uploads/2008/12/firephp.png" alt="FirePHP" title="FirePHP" width="310" height="120" class="size-full wp-image-140" /></p>

<p>A kiterjesztés mögött rejlő ötlet rettentően egyszerű (és talán éppen ezért olyan fantasztikus): küldjünk ki pár speciális fejlécet valamiféle JSON tartalommal, amit kliens oldalon a kiegészítő feldolgoz és a Firebug segítségével szépen meg is jelenít. Ezek lehetnek több prioritásba sorolható egyszerű szöveges üzenetek (hasonlóak a Firebug beépített üzeneteihez), táblázatok, szépen formázott backtrace-ek vagy akár <a href="http://php.net/print_r">print_r()</a>-hez hasonló információk változókról.</p>

<p>Nézzünk is egy példát a felhasználásra: jelenítsük meg az oldal legenerálása során küldött SQL lekérdezéseket, külön kiemelve azokat, amik lassabban futnak, mint szeretnénk (a példához <a href="http://www.doctrine-project.org/">Doctrine</a> van használva):</p>

<pre class="code prettyprint lang-php">class My_Doctrine_Logger extends Doctrine_EventListener {
    private $queryTime;
    public function preQuery(Doctrine_Event $event) {
        $this-&gt;queryTime = microtime(true);
    }
    public function preStmtExecute(Doctrine_Event $event) {
        $this-&gt;queryTime = microtime(true);
    }
    public function postQuery(Doctrine_Event $event) {
        $this-&gt;logQuery($event-&gt;getQuery());
    }
    public function postStmtExecute(Doctrine_Event $event) {
        $this-&gt;logQuery($event-&gt;getQuery());
    }
    private function logQuery($queryString) {
        $t = microtime(true) - $this-&gt;queryTime;
        
        $msg = '['.str_pad(round($t, 5), 7, '0').']: '.$queryString;
        
        if ($t &gt; 0.01) {
            FB::warn('Slow SQL Query: '.$msg);
        }
        else {
            FB::info('SQL Query: '.$msg);
        }
    }
}</pre>

<p>És ehhez még nem árt valami ilyesmit is hozzácsapni, hogy a Doctrine tudjon a mi kis osztályunkról:</p>

<pre class="code prettyprint lang-php">$conn = Doctrine_Manager::connection( $dsn );
$conn-&gt;addListener(new My_Doctrine_Logger());</pre>

<p>Az egészből az <code>FB::</code> kezdetű sorok érdekesek csak. A működésükhöz szükség lehet az output buffering bekapcsolására vagy kellő önuralomra, hogy az utolsó <code>FB::</code>-s hívásig nem nyomunk ki semmit a kimenetre. :)<br/>
Ami még érdekes lehet, hogy Ajax-os kérések és Location fejléccel átirányított oldalak hasonló üzenetei is megjelennek a Firebug ablakában, szépen csoportosítva, ezzel végtelenül egyszerűvé téve az Ajaxos kérések és a rájuk érkező válaszok hibamentesítését, sok-sok órát megspórolva ezzel szegény fejlesztőknek. Mindezt természetesen anélkül, hogy az eredeti tartalmat teleszemetelnénk mindenféle nem odavaló dologgal (csúnyán is nézne ki a JSON válasz közepén egy méretes <a href="http://php.net/var_dump">var_dump()</a> kimenet, arról nem is beszélve, hogy a kliens oldalon se tudna vele túl sokat kezdeni a JavaScript).</p>]]></content:encoded>
			<wfw:commentRss>http://deadlime.hu/2008/12/15/debuggolas-jol-atsutve/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Firefox 3 - Download Day</title>
		<link>http://deadlime.hu/2008/06/17/firefox-3-download-day/</link>
		<comments>http://deadlime.hu/2008/06/17/firefox-3-download-day/#comments</comments>
		<pubDate>Tue, 17 Jun 2008 07:38:42 +0000</pubDate>
		<dc:creator>Nagy Krisztián</dc:creator>
				<category><![CDATA[nincs kategória]]></category>
		<category><![CDATA[Firefox]]></category>

		<guid isPermaLink="false">http://deadlime.hu/?p=112</guid>
		<description><![CDATA[Segítsetek Vuknak Firefoxnak a kis rókának! :)]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://www.spreadfirefox.com/node&#038;id=15940&#038;t=264"><img alt="Download Day" title="Download Day" src="http://deadlime.hu/wp-content/uploads/2008/06/dday_badge_fox.png" style="border: 2px solid #CCC;"/></a></p>

<p>Segítsetek <del>Vuknak</del> Firefoxnak a kis rókának! :)</p>]]></content:encoded>
			<wfw:commentRss>http://deadlime.hu/2008/06/17/firefox-3-download-day/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>A hetedik és a második</title>
		<link>http://deadlime.hu/2006/10/25/a-hetedik-es-a-masodik/</link>
		<comments>http://deadlime.hu/2006/10/25/a-hetedik-es-a-masodik/#comments</comments>
		<pubDate>Wed, 25 Oct 2006 12:32:50 +0000</pubDate>
		<dc:creator>Nagy Krisztián</dc:creator>
				<category><![CDATA[nincs kategória]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Internet Explorer]]></category>

		<guid isPermaLink="false">http://deadlime.hu/2006/10/25/a-hetedik-es-a-masodik/</guid>
		<description><![CDATA[Ma frissítés napot tartottam, minek keretén belül szert tettem a hétpontnullás Internet Explorerre és a második Firefox böngészőre (az előbbinél a "böngésző" jelző lehagyása nem biztos, hogy véletlen volt). Na de kezdjük az elején. Az első áldozat a Firefox volt, telepítés után kellemetlenül csalódtam, hogy megváltozott az alapértelmezett téma. Sose szerettem ezeket a home-made, update [...]]]></description>
			<content:encoded><![CDATA[<p>Ma frissítés napot tartottam, minek keretén belül szert tettem a hétpontnullás Internet Explorerre és a második Firefox <em>böngészőre</em> (az előbbinél a "böngésző" jelző lehagyása nem biztos, hogy véletlen volt). Na de kezdjük az elején. Az első áldozat a Firefox volt, telepítés után kellemetlenül csalódtam, hogy megváltozott az alapértelmezett téma. Sose szerettem ezeket a home-made, update oldalról letölthető témákat, párszor kipróbáltam ezt-azt, de aztán mindig visszatértem az alapértelmezetthez. Erre most mi van? Valami ocsmánysággal akarják az ember szemét kiszúrni (már elnézést a téma készítőjétől, de nem igazán nyerte el a tetszésem). Szerencsére az előbb említett update oldalon <a href="https://addons.mozilla.org/firefox/3479/">megtalálható az 1.5-ös verzió témája</a>, ami használható 2.0 alatt is (úgy látszik nem én vagyok az egyedüli, akinek nem tetszett ez a váltás). Mást nagyon nem tudnék elmondani, a böngészési szokásaimat egyéb módon nem érte sérelem, az Acid tesztet még mindig nem teljesíti, de azért még mindig jobban szerepel rajta, mint második résztvevőnk.</p>

<p>Á igen, a régóta várt IE7, ami talán megváltás lehet a HTML és CSS buheráló társadalom számára. Vagyis hát megváltás lehetett volna. Nem panaszkodom, az eddigi 39 soros külön az IE számára fenntartott CSS fájlom mérete 9 sorra csökkent (vagyis, az eddigi 39 soros mellé még egy 9 sorosat is kellett gyártanom, csak az IE7 számára, de az a 9 sor a 39 sorosban is szerepel), viszont cserébe most olyan dolgok nem működnek, amik eddig mentek rendesen (mint például a főoldalon a három oszlopos listának nincs háttere IE7 alatt, vagy a hozzászólásokban a szöveg ugyanolyan széles marad miután az avatar doboz már nincs ott). Gyanítom, hogy csak azért csinálják ezt, hogy ne unatkozzunk. A kinézet helyenként nem rossz, a fülek mondjuk kifejezetten nem tetszenek, de az Alt-ra előjövő menü viszont ötletes megoldás.</p>]]></content:encoded>
			<wfw:commentRss>http://deadlime.hu/2006/10/25/a-hetedik-es-a-masodik/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

