<?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>adamczuk.net.pl &#187; Software</title>
	<atom:link href="http://adamczuk.net.pl/kategoria/software/feed/" rel="self" type="application/rss+xml" />
	<link>http://adamczuk.net.pl</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Tue, 20 Jul 2010 16:48:52 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Google Chrome jako alternatywa dla Firefoxa</title>
		<link>http://adamczuk.net.pl/2010/05/09/google-chrome-jako-alternatywa-dla-firefoxa/</link>
		<comments>http://adamczuk.net.pl/2010/05/09/google-chrome-jako-alternatywa-dla-firefoxa/#comments</comments>
		<pubDate>Sun, 09 May 2010 20:30:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Przeglądarki]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[browsers]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[opera]]></category>
		<category><![CDATA[safari]]></category>

		<guid isPermaLink="false">http://adamczuk.net.pl/?p=273</guid>
		<description><![CDATA[Subiektywne porównanie nowoczesnych przeglądarek. Osobiście wybieram Google Chrome.]]></description>
			<content:encoded><![CDATA[<p><a href="http://adamczuk.net.pl/wp-content/uploads/2010/05/chrome.png"><img src="http://adamczuk.net.pl/wp-content/uploads/2010/05/chrome.png" alt="Google Chrome logo" title="Google Chrome" width="100" height="100" class="left size-full wp-image-277" /></a>Korzystanie z internetu przed laty było ograniczane przez istnienie tylko dwóch przeglądarek. Internet Explorer i Netscape Navigator, toczyły wojnę o dominację na rynku przeglądarek. Ówczesna wojna została ostatecznie wygrana przez produkt Microsoftu, jednak późniejsze lata zostały praktycznie zmarnowane. Jaka przeglądarka dzisiaj jest najlepsza?<span id="more-273"></span></p>
<h3>Krótka historia</h3>
<p>Błąd giganta z Redmond wykorzystali inni producenci. Najpierw Mozilla, która wypuściła Firefoxa, pierwszego konkurenta dla IE, powstałego z popiołów Netscape Navigatora. Dalej było już tylko lepiej. Microsoft czując na plecach oddech konkurentów ponownie rozpoczął prace nad ulepszaniem przeglądarki. Opera, Safari, a w końcu Chrome dołączyły do grona nowoczesnych przeglądarek, z których każda jest lepsza od Internet Explorera.</p>
<p>Osoby pracujące przy tworzeniu aplikacji internetowych zdają sobie sprawę, że nie ma najlepszej przeglądarki. Mimo, tego wiedzą, że istnieją przeglądarki nowocześniejsze, bezpieczniejsze i wygodniejsze w użyciu niż Internet Explorer. Te osoby korzystają codziennie z Firefoxa, Opery, Safari lub Chrome. Pozostali używają zapewne Internet Explorera. Nieważne czy robią to z własnej woli, niewiedzy czy zupełnie innego powodu. Ważne jest jednak to, że istotnie hamują rozwój internetu, choć to temat na odrębny wpis.</p>
<h3>Osobisty wybór</h3>
<p>Praktycznie od początku pracy jako programista aplikacji internetowych korzystałem z <a href="www.mozilla.com/firefox/">Firefoxa</a>. Głównym powodem wyboru tej przeglądarki była bardzo dobra obsługa CSS, szereg rozszerzeń i możliwości personalizacji. Miliony osób na świecie ma podobne zdanie, ponieważ Firefox to druga po IE przeglądarka. Podstawowe dwa dodatki, które ułatwiały mi przeglądanie sieci i programowanie to AdBlock oraz Firebug. Największym minusem przeglądarki jest średnia wydajność.</p>
<p><a href="http://www.opera.com/">Opera</a> przez wielu jest uznawana za najlepszą przeglądarkę. Sam nigdy nie przekonałem się do tego produktu. Mimo sporej ilości dodatków i poprawnej obsługi CSS, zawiodły mnie autorskie narzędzia dla programistów. Opera Dragonfly to najzwyczajniej w świecie średni klon Firebuga.</p>
<p>Jeszcze mniej mogę powiedzieć na temat <a href="http://www.apple.com/safari/">Safari</a>. To przeglądarka o tyle specyficzna, że nie istnieje jej wersja dla systemu Linux. Pomimo, że jest tworzona przez Apple to powstała wersja dla Windows. Jeśli chodzi o kwestie standardów sieciowych to Safari dość gładko przechodzi różne testy Acid. Niestety dla mnie to za mało.</p>
<p>Ostatnia omawiana przeglądarka, zarazem najmłodsza, w tym wyśmienitym gronie to Google <a href="http://www.google.com/chrome">Chrome</a>. Nowoczesna, szybka, zgodna ze standardami, a do tego dostępna pod Windows, Mac OS oraz Linuxa. Jakby tego było mało Chrome posiada analogiczny zestaw narzędzi dla programistów. Developer Tool to idealna alternatywa dla Firebuga. Prostota, ograniczenia pewnych opcji i funkcji przeglądarki mogą niektórym przeszkadzać. Jednak szybkość generowania stron i działania JavaScript jest bezkonkurencyjna.</p>
<p>Osobiście przesiadłem się już na Google Chrome. Przeglądarka od początku sukcesywnie zdobywa rynek. Jeśli tak dalej pójdzie szybko stanie się równym przeciwnikiem dla Internet Explorera oraz Firefoxa.</p>
]]></content:encoded>
			<wfw:commentRss>http://adamczuk.net.pl/2010/05/09/google-chrome-jako-alternatywa-dla-firefoxa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LAMP i WAMP</title>
		<link>http://adamczuk.net.pl/2010/02/08/lamp-i-wamp/</link>
		<comments>http://adamczuk.net.pl/2010/02/08/lamp-i-wamp/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 20:01:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[lamp]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[wamp]]></category>

		<guid isPermaLink="false">http://adamczuk.net.pl/?p=268</guid>
		<description><![CDATA[Krótki przegląd pakietów LAMP i WAMP.]]></description>
			<content:encoded><![CDATA[<p>Od razu zaznaczam, że nie będę przekonywał nikogo o wyższości jednego rozwiązania na drugim. Osoby znające te skróty zapewne znają ich pochodzenie i wiedzą do czego służą. Dalsza część artykułu przedstawia najpopularniejsze pakiety wolnego oprogramowania do obsługi witryn internetowych, sposoby instalacji i konfiguracji.<span id="more-268"></span></p>
<p>Podstawowe składniki takich platform to serwer Apache, baza danych MySQL oraz interpreter PHP, które przydają się podczas programowania i testowania aplikacji internetowych na lokalnym komputerze. Poszczególne elementy powstały niezależnie, ale razem tworzą znakomity zestaw, którego koszt jest niski w porównaniu z komercyjnymi rozwiązaniami.</p>
<p>Istnieje jeszcze kilka zalet takiego rozwiązania. Serwer lokalny jest darmowy, możliwa jest zmiana jego ustawień i działa nawet przy braku połączenia z internetem. Konta hostingowe często są płatne, ale nie zawsze. Tak samo jest z ustawieniami, które ze względów bezpieczeństwa często są niedostępne dla użytkowników. Ostatnim minusem jest połączenie z internetem, niezbędne dla dostępu do strony.</p>
<h3>LAMP</h3>
<p>W przypadku GNU/Linux sprawa jest bardzo prosta, ponieważ wymienione komponenty są dostępne dla większości dystrybucji. Mimo, tego zawsze możliwe jest ściągnięcie aktualnej wersji z internetu lub repozytorium. Najpewniej będą to poniższe polecenia.</p>
<pre><code>sudo apt-get install apache2</code></pre>
<pre><code>sudo apt-get install php5</code></pre>
<pre><code>sudo apt-get install mysql</code></pre>
<h3>WAMP</h3>
<p>W przypadku Windowsa istnieją paczki, które po instalacji pozwalają na korzystanie ze wszystkich elementów. Cały proces sprowadza się często do wyboru miejsca instalacji oprogramowania. Większość elementów zostanie od razu poprawnie skonfugurowana.</p>
<h4>Krasnal Serv</h4>
<p><a href="http://www.olesno.pl/~pablo/krasnal/">Krasnal Serv</a> to darmowe oprogramowanie, które umożliwia uruchomienie własnego serwera typu WAMP. Możliwe jest uruchomienie serwera WWW bez potrzeby konfigurowania Apache&#8217;a i innych elementów w systemie Microsoft Windows. Najnowsza wersja (2.7) pozwala na przełączanie się w locie między PHP4 i PHP5. Serwer działa niestabilnie w przypadku systemów Windows 9.x/ME.</p>
<p>Skład serwera w wersji 2.7 stanowi:</p>
<ul>
<li>Apache 1.3.31</li>
<li>PHP 4.3.9 + SQLite</li>
<li>PHP 5.0.2</li>
<li>MySQL 3.23.58</li>
<li>ActivePerl 5.6.1.628</li>
<li>phpMyAdmin 2.6.2 pl2</li>
<li>Zend Optimizer 2.0.3</li>
<li>CesarFTP 0.99g</li>
<li>Webalizer 2.1</li>
<li>Free SMTP Server</li>
<li>SQLiteManager 1.0.1</li>
</ul>
<h4>VertrigoServ</h4>
<p><a href="http://vertrigo.sourceforge.net/">VertrigoServ</a> to serwer, którego używałem przez długi czas. Poprzednio stosowałem KrasnalServ, który jednak zbyt wolno się rozwija, jeśli w ogóle. Składniki tego serwera są o wiele aktualniejsze.</p>
<p>Serwer w wersji 2.21 zawiera:</p>
<ul>
<li>Apache 2.0.63</li>
<li>PHP 5.2.6</li>
<li>MySQL 5.0.51b</li>
<li>SQLite 3.5.9</li>
<li>Smarty 2.6.19</li>
<li>PhpMyAdmin 2.11.7</li>
<li>ZendOptimizer 3.3.3</li>
<li>SQLiteManager 1.2.0</li>
</ul>
<h4>WampServer</h4>
<p><a href="http://www.wampserver.com/">WampServer 2</a> to darmowy pakiet typu WAMP. Umożliwia instalację, uruchamianie oraz obsługę w systemie MS Windows serwera WWW opartego na serwerze Apache, interpretera skryptów PHP oraz serwera baz danych MySQL.</p>
<p>WampServer 2 nazywany wcześniej WAMP5 jest platformą opartą na licencji GPL. Jej głównym twórcą jest Francuz Romain Bourdon, którego wspiera społeczność portalu <a href="http://www.phpteam.net/">phpteam.net</a>.</p>
<p>WampServer w wersji 2.0 zawiera:</p>
<ul>
<li>Apache 2.2.11</li>
<li>PHP 5.3.0</li>
<li>MySQL 5.1.36</li>
<li>PhpMyAdmin 3.2.01</li>
</ul>
<h4>XAMPP</h4>
<p><a href="http://www.apachefriends.org/en/xampp.html">XAMPP</a> jest darmowym wieloplatformowym pakietem opartym na licencji GNU General Public License. Składa się głównie z serwera Apache, bazy danych MySQL i interpreterów dla skryptów napisanych w PHP i Perlu. XAMPP działa między innymi na systemach MS Windows, Linux, Solaris i MacOS X.</p>
<h3>Podsumowanie</h3>
<p>Większość platform WAMP zawiera dodatkowe oprogramowanie przydatne podczas tworzenia i testowania aplikacji internetowych. Sam proces instalacji takiego oprogramowania jest łatwy. Pewne trudności zdarzają się przy konfiguracji niestandardowych opcji. Poza tym jest to idealne rozwiązanie na początku przygody z tworzeniem aplikacji internetowych.</p>
<p>Często spotykany PhpMyAdmin jest stosowany do zarządzania bazami danych. Nierzadko udostępniane są inne silniki baz danych, np. SQLite. Warto włączyć niektóre przydatne moduły serwera Apache, które domyślnie bywają wyłączone, jak choćby mod_rewrite, czy mod_userdir.</p>
]]></content:encoded>
			<wfw:commentRss>http://adamczuk.net.pl/2010/02/08/lamp-i-wamp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zend Framework 1.7</title>
		<link>http://adamczuk.net.pl/2009/01/19/zend-framework-17/</link>
		<comments>http://adamczuk.net.pl/2009/01/19/zend-framework-17/#comments</comments>
		<pubDate>Mon, 19 Jan 2009 14:15:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[oop]]></category>
		<category><![CDATA[zend]]></category>
		<category><![CDATA[zendframework]]></category>

		<guid isPermaLink="false">http://adamczuk.net.pl/?p=101</guid>
		<description><![CDATA[Krótki przegląd usprawnień jakie wprowadzono w Zend Framework 1.7.]]></description>
			<content:encoded><![CDATA[<p><img src="http://adamczuk.net.pl/wp-content/uploads/2009/01/zf.jpg" alt="zend framework 1.7" title="Zend Framework 1.7" width="200" height="100" class="left" />Wprawdzie informacja na temat nowej wersji Zend Framework pojawiła się dość dawno, ale nie miałem jeszcze okazji sprawdzić jego funkcjonalności. Zend Framework jest zestawem klas ułatwiających tworzenie aplikacji internetowych. Może pod względem wydajności i bezpieczeństwa <abbr title="Zend Framework">ZF</abbr> nie jest liderem, ale na pewno jest powszechnie używanym frameworkiem dla <abbr title="Hypertext Preprocessor">PHP</abbr>. Najnowsza wersja Zend Framework znaduje się <a href="http://framework.zend.com/download/latest">tutaj</a>.<br />
<span id="more-101"></span><br />
<strong>Zend Framework 1.7</strong> rozwinął się w dużym stopniu w porównaniu do poprzednich wersji. Wiele wprowadzonych zmian daje szerokie wsparcie dla nowoczesnych technologii internetowych, a także tworzenia usług sieciowych (WebSerivces). Poniżej znajduje się częściowa lista zmian jakie wprowadzono w nowym Zend Framwork 1.7.</p>
<ul>
<li>Zend_Amf i wsparcie dla protokołów AMF0 i AMF3</li>
<li>Dojo Toolkit 1.2.1</li>
<li>Wsparcie dla edytora dijit, dostępnego w Dojo Toolkit</li>
<li>Zend_Service_Twitter</li>
<li>ZendX_JQuery w dodatkowych bibliotekach</li>
<li>Zwiększenie wydajności w Zend_Loader, Zend_Controller i komponentach serwerowych</li>
<li>Poprawione dostarczanie poczty dla Zend_Mail_Storage_Writable_Maildir</li>
<li>Zend_Text_Table dla formatowania tabel</li>
<li>Zend_ProgressBar</li>
<li>Zend_Config_Writer</li>
<li>ZendX_Console_Unix_Process w dodatkowych bibliotekach</li>
<li>Usprawnienia i18N</li>
<li>Polepszenie przesyłania plików</li>
<li>Adapter Zend_Db_Table_Select dla Zend_Paginator</li>
<li>Bardziej elastyczna obsługa typów złożonych w Zend_Soap</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://adamczuk.net.pl/2009/01/19/zend-framework-17/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Obsługa selektorów CSS 3 przez przeglądarki</title>
		<link>http://adamczuk.net.pl/2009/01/08/obsluga-selektorow-css3-przez-przegladarki/</link>
		<comments>http://adamczuk.net.pl/2009/01/08/obsluga-selektorow-css3-przez-przegladarki/#comments</comments>
		<pubDate>Wed, 07 Jan 2009 23:31:24 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[browsers]]></category>
		<category><![CDATA[selectors]]></category>
		<category><![CDATA[webstandards]]></category>

		<guid isPermaLink="false">http://adamczuk.net.pl/?p=66</guid>
		<description><![CDATA[Porównanie najpopulaniejszych przeglądarek pod względem obsługi selektorów CSS 3.]]></description>
			<content:encoded><![CDATA[<p>Tworzenie aplikacji internetowych wymaga dziś od programistów znajomości <abbr title="eXtensible HyperText Markup Language">XHTML</abbr>, <abbr title="Cascading Style Sheet">CSS</abbr>, a także przestrzegania zasad dostępności i użyteczności. Jeżeli współczesne strony internetowe mają być zgodne ze standardami sieciowymi, a do tego iść w parze z trendem Web 2.0 to sytuacja musi ulec zmianie. Szczególnie, jeśli chodzi o obsługę selektorów CSS 3 w przeglądarkach<span id="more-66"></span></p>
<p>Nowoczesne przeglądarki, takie jak Opera, Safari czy Firefox bardzo sumiennie podchodzą do standardów sieciowych rekomendowanych przez <abbr title="World Wide Web Consorcium">W3C</abbr>. Rownież najmłodszy Google Chrome nie pozostaje w tyle za liderami przeglądarek.</p>
<p>Jedyną czarną owcą wśród tego dojrzałego towarzystwa jest Internet Explorer, który pod żadnym pozorem nie chce dostosować się do nowej sytuacji. Wprawdzie kolejne wersje przeglądarki Microsoftu dają nadzieję na przyszłość. Jednak zmiany następują zbyt wolno, aby wizja zrównania się z nowoczesnymi przeglądarkami była realna.</p>
<p>Nowe selektory CSS 3 dają programistom dużo więcej możliwości podczas tworzenia aplikacji internetowych. Zaawansowane selektory atrybutów, strukturalne pseudo-klasy czy wsparcie dla zawartości generowanej to standard. Jednak nie wszyscy dostrzegają plusy tego standardu.</p>
<p>Poniższa tabela przedstawia selektory CSS 3 i stopień ich obsługi przez najpopularniejsze przeglądarki internetowe. Jak można było się spodziewać IE w każdej wersji odstaje od całości. Wyniki testu zostały opracowane na podstawie <a href="http://www.css3.info/selectors-test/">testu</a> selektorów CSS 3.</p>
<table cellpadding="0" cellspacing="0">
<caption>Porównanie przeglądarek pod względem obsługi selektorów CSS 3</caption>
<thead>
<tr>
<th scope="col" width="12%">Selektor</th>
<th scope="col" width="12%" class="center">IE6</th>
<th scope="col" width="12%" class="center">IE7</th>
<th scope="col" width="12%" class="center">IE8</th>
<th scope="col" width="12%" class="center">Firefox3</th>
<th scope="col" width="12%" class="center">Opera9</th>
<th scope="col" width="12%" class="center">Safari</th>
<th scope="col" width="12%" class="center">Chrome</th>
</tr>
</thead>
<tbody>
<tr>
<td>*</td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
</tr>
<tr>
<td>E</td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
</tr>
<tr>
<td>.class</td>
<td class="buggy"><span>buggy</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
</tr>
<tr>
<td>#id</td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
</tr>
<tr>
<td>E F</td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
</tr>
<tr>
<td>E > F</td>
<td class="failed"><span>failed</span></td>
<td class="passed"><span>passed</span></td>
<td class="failed"><span>failed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
</tr>
<tr>
<td>E + F</td>
<td class="failed"><span>failed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
</tr>
<tr>
<td>E[attribute]</td>
<td class="failed"><span>failed</span></td>
<td class="buggy"><span>buggy</span></td>
<td class="buggy"><span>buggy</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
</tr>
<tr>
<td>E[attribute=value]</td>
<td class="failed"><span>failed</span></td>
<td class="failed"><span>failed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
</tr>
<tr>
<td>E[attribute~=value]</td>
<td class="failed"><span>failed</span></td>
<td class="buggy"><span>buggy</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
</tr>
<tr>
<td>E[attribute|=value]</td>
<td class="failed"><span>failed</span></td>
<td class="buggy"><span>buggy</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
</tr>
<tr>
<td>:first-child</td>
<td class="failed"><span>failed</span></td>
<td class="buggy"><span>buggy</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
</tr>
<tr>
<td>:link</td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
</tr>
<tr>
<td>:visited</td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
</tr>
<tr>
<td>:lang()</td>
<td class="failed"><span>failed</span></td>
<td class="failed"><span>failed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
</tr>
<tr>
<td>:before</td>
<td class="failed"><span>failed</span></td>
<td class="failed"><span>failed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
</tr>
<tr>
<td>::before</td>
<td class="failed"><span>failed</span></td>
<td class="failed"><span>failed</span></td>
<td class="failed"><span>failed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
</tr>
<tr>
<td>:after</td>
<td class="failed"><span>failed</span></td>
<td class="failed"><span>failed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
</tr>
<tr>
<td>::after</td>
<td class="failed"><span>failed</span></td>
<td class="failed"><span>failed</span></td>
<td class="failed"><span>failed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
</tr>
<tr>
<td>:first-letter</td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
</tr>
<tr>
<td>::first-letter</td>
<td class="passed"><span>passed</span></td>
<td class="failed"><span>failed</span></td>
<td class="failed"><span>failed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
</tr>
<tr>
<td>:first-line</td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
</tr>
<tr>
<td>::first-line</td>
<td class="passed"><span>passed</span></td>
<td class="failed"><span>failed</span></td>
<td class="failed"><span>failed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
</tr>
<tr>
<td>E[attribute^=value]</td>
<td class="failed"><span>failed</span></td>
<td class="failed"><span>failed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
</tr>
<tr>
<td>E[attribute$=value]</td>
<td class="failed"><span>failed</span></td>
<td class="failed"><span>failed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
</tr>
<tr>
<td>E[attribute*=value]</td>
<td class="failed"><span>failed</span></td>
<td class="failed"><span>failed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
</tr>
<tr>
<td>E ~ F</td>
<td class="failed"><span>failed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
</tr>
<tr>
<td>:root</td>
<td class="failed"><span>failed</span></td>
<td class="failed"><span>failed</span></td>
<td class="failed"><span>failed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
</tr>
<tr>
<td>:last-child</td>
<td class="failed"><span>failed</span></td>
<td class="failed"><span>failed</span></td>
<td class="failed"><span>failed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
</tr>
<tr>
<td>:only-child</td>
<td class="failed"><span>failed</span></td>
<td class="failed"><span>failed</span></td>
<td class="failed"><span>failed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
</tr>
<tr>
<td>:nth-child()</td>
<td class="failed"><span>failed</span></td>
<td class="failed"><span>failed</span></td>
<td class="failed"><span>failed</span></td>
<td class="failed"><span>failed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
</tr>
<tr>
<td>:nth-last-child()</td>
<td class="failed"><span>failed</span></td>
<td class="failed"><span>failed</span></td>
<td class="failed"><span>failed</span></td>
<td class="failed"><span>failed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
</tr>
<tr>
<td>:first-of-type</td>
<td class="failed"><span>failed</span></td>
<td class="failed"><span>failed</span></td>
<td class="failed"><span>failed</span></td>
<td class="failed"><span>failed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
</tr>
<tr>
<td>:last-of-type</td>
<td class="failed"><span>failed</span></td>
<td class="failed"><span>failed</span></td>
<td class="failed"><span>failed</span></td>
<td class="failed"><span>failed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
</tr>
<tr>
<td>:only-of-type</td>
<td class="failed"><span>failed</span></td>
<td class="failed"><span>failed</span></td>
<td class="failed"><span>failed</span></td>
<td class="failed"><span>failed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
</tr>
<tr>
<td>:nth-of-type</td>
<td class="failed"><span>failed</span></td>
<td class="failed"><span>failed</span></td>
<td class="failed"><span>failed</span></td>
<td class="failed"><span>failed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
</tr>
<tr>
<td>:nth-last-of-type</td>
<td class="failed"><span>failed</span></td>
<td class="failed"><span>failed</span></td>
<td class="failed"><span>failed</span></td>
<td class="failed"><span>failed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
</tr>
<tr>
<td>:empty</td>
<td class="failed"><span>failed</span></td>
<td class="failed"><span>failed</span></td>
<td class="failed"><span>failed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
</tr>
<tr>
<td>:not()</td>
<td class="failed"><span>failed</span></td>
<td class="failed"><span>failed</span></td>
<td class="failed"><span>failed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
</tr>
<tr>
<td>:target</td>
<td class="failed"><span>failed</span></td>
<td class="failed"><span>failed</span></td>
<td class="failed"><span>failed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
</tr>
<tr>
<td>:enabled</td>
<td class="failed"><span>failed</span></td>
<td class="failed"><span>failed</span></td>
<td class="failed"><span>failed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
</tr>
<tr>
<td>:disabled</td>
<td class="failed"><span>failed</span></td>
<td class="failed"><span>failed</span></td>
<td class="failed"><span>failed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
</tr>
<tr>
<td>:checked</td>
<td class="failed"><span>failed</span></td>
<td class="failed"><span>failed</span></td>
<td class="failed"><span>failed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
<td class="passed"><span>passed</span></td>
</tr>
</tbody>
</table>
<ul class="legend">
<li class="passed">Selektor obsługiwany</li>
<li class="buggy">Selektor częściowo obsługiwany</li>
<li class="failed">Selektor nieobsługiwany</li>
</ul>
<p>Bezapelacyjnie widać, że Internet Explorer nie radzi sobie z selektorami CSS3. IE8 obsługuje prawidłowo tylko 22 selektory. Mimo, że są wśród nich selektory złożone i selektory atrybutu to nadal jest kropla w morzu potrzeb. Firefox radzi są dużo lepiej w kwestii obsługi selektorów, ponieważ do pełni szczęścia brakuje tylko ośmiu strukturalnych pseudo-klas. Najlepiej wypadają przeglądarki z silnikiem KHTML/Webkit, a także Presto. Zarówno Opera9, Safari3, jak i Google Chrome w pełni obsługują selektory CSS 3.</p>
<p>Internet Explorer dalej pozostaje na szarym końcu, bez większych perspektyw na zmianę. W tej sytuacji najwięcej tracą użytkownicy, którzy nieświadomi każdego dnia używają przestarzałej przeglądarki, tym samym hamując rozwój internetu.</p>
<p>Pora, aby zmienić przeglądarkę na lepszą. Pora, aby programiści zaczęli wykorzystywać selektory CSS, ponieważ dają większe możliwości. W końcu pora, aby twórcy Internet Explorera zrozumieli, że użytkownicy oczekują lepszego produktu niż do tej pory.</p>
]]></content:encoded>
			<wfw:commentRss>http://adamczuk.net.pl/2009/01/08/obsluga-selektorow-css3-przez-przegladarki/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Opera 10 przechodzi Acid 3</title>
		<link>http://adamczuk.net.pl/2008/12/13/opera-10-przechodzi-acid-3/</link>
		<comments>http://adamczuk.net.pl/2008/12/13/opera-10-przechodzi-acid-3/#comments</comments>
		<pubDate>Sat, 13 Dec 2008 20:48:24 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[acid3]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[opera]]></category>
		<category><![CDATA[webstandards]]></category>

		<guid isPermaLink="false">http://adamczuk.net.pl/?p=43</guid>
		<description><![CDATA[Na temat zgodności przeglądarek ze standarami sieciowymi powstało wiele artykułów. Programiści i użytkownicy mają swoje opinie na temat wyższości jednego produktu nad drugim. Z kolei poducenci nowoczesnych przeglądarek traktują standardy sieciowe w ten sposób, że ich obsługę traktują wybiórczo. Opera 10 osiągnęła maksymalna ilość punktów w teście Acid 3. Jak powinniśmy traktować taki wynik.
Acid 3 [...]]]></description>
			<content:encoded><![CDATA[<p>Na temat zgodności przeglądarek ze standarami sieciowymi powstało wiele artykułów. Programiści i użytkownicy mają swoje opinie na temat wyższości jednego produktu nad drugim. Z kolei poducenci nowoczesnych przeglądarek traktują standardy sieciowe w ten sposób, że ich obsługę traktują wybiórczo. Opera 10 osiągnęła maksymalna ilość punktów w teście <a href="http://acid3.acidtests.org/">Acid 3</a>. Jak powinniśmy traktować taki wynik.<span id="more-43"></span></p>
<p>Acid 3 jest rozszerzeniem poprzednich testów, które sprawdzają poprawność renderowania kodu HTML w różnych przeglądarkach. Generalnie testy te pokazują w jakim stopniu przeględarki są zgodne ze standardami sieciowymi.</p>
<p>Inna sprawa, że wyniki w takich testów należy traktować z dozą ostrożności. Trudno powiedzieć, że nowa Opera 10 jest najlepszą przeglądarką na rynku, tylko na podstawie wyników Acid 3. Zapewne producent sumiennie podchodzi do oprogramowania, które chce dostarczyć użytkownikom. Wierząc w dalsze zapewnienia programistów, możemy być pewnie, że nie spoczną na laurach i będą udoskonalać swój produkt.</p>
<p>Kolejnym krokiem w tworzeniu lepszego internetu niech będą nowocześniejsze przeglądarki, które będą poprawnie wyświetlać strony zgodne ze standardami sieciowymi.</p>
]]></content:encoded>
			<wfw:commentRss>http://adamczuk.net.pl/2008/12/13/opera-10-przechodzi-acid-3/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
