<?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>Fri, 03 Feb 2012 21:59:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Ubuntu 11.10 bardzo subiektywnie</title>
		<link>http://adamczuk.net.pl/2011/11/22/ubuntu-11-10-bardzo-subiektywnie/</link>
		<comments>http://adamczuk.net.pl/2011/11/22/ubuntu-11-10-bardzo-subiektywnie/#comments</comments>
		<pubDate>Tue, 22 Nov 2011 20:50:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Ocelot]]></category>
		<category><![CDATA[Oneiric]]></category>
		<category><![CDATA[opinion]]></category>

		<guid isPermaLink="false">http://adamczuk.net.pl/?p=549</guid>
		<description><![CDATA[Krótki wpis na temat pierwszych wrażeń dotyczących Ubuntu 11.10]]></description>
			<content:encoded><![CDATA[<p>Nie jestem doświadczonym użytkownikiem systemów uniksowych, ale z drugiej strony trudno określić mnie absolutnym nowicjuszem. Prawdą jest, że używam systemu <a href="http://www.ubuntu.com/">Ubuntu</a> od ponad 4 lat i to, że większość czasu spędzam w trybie graficznym. Faktycznie konsola nie jest moim największym przyjacielem, ale często ratowała mi życie i pomagała w codziennym życiu. Doceniam znaczenie skryptów, kompatybilności sprzętowej i wielu innych zagadnień programowych, ale system powinien być użyteczny. Moja opinia o nowym Ubuntu 11.10, czyli Oneiric Ocelot jest zupełnie inna.<span id="more-549"></span></p>
<p>Od początku mojej przygody z Ubuntu towarzyszy mi stary wysłużony HP Pavilion dv6376ea. Wiem, ładny, błyszczący, z zaokrąglonymi krawędziami, ale to moja kobieta wybierała, bo wtedy nie miałem do tego głowy. Blisko 4 lata system sprawował się idealnie, bez zbędnych re-instalacji i zmian sprzętowych. Nawet 1GB pamięci pozwalał na wydajną pracę z wieloma aplikacjami i włączonymi opcjami Compiza. Mimo tego rozszerzyłem pamięć fizyczną do 4GB i zainstalowałem Ubuntu 10.10, który był ostatnią wersją systemu bez rewolucyjnych zmian.</p>
<h3>Początek złego</h3>
<p>Po niepochlebnych opiniach znajomych, równie subiektywnych jak moje, zdecydowałem o pozostaniu przy starej wersji sprawdzonego systemu. Poczekałem 6 miesięcy i pomyślałem, że może warto. I to był chyba największy błąd dotyczący używanego systemu operacyjnego. O ile rezygnacja z Windows Vista była starzałem w dziesiątkę to już instalacja Ubuntu 11.10 wywróciła moje dotychczasowe życie do góry nogami.</p>
<p>Już wersja 11.04 sugerowała używanie Unity jako domyślnego środowiska graficznego. Szczerze, nie jestem zwolennikiem rewolucyjnych zmian i dotychczasowy, tradycyjny model okienkowy zupełnie mnie satysfakcjonował. Szczególnie jeśli działanie nowego środowiska graficznego nie było całkowicie stabilne i wydajne z poziomu użytkownika.</p>
<p>Przypuszczałem, że pół roku pozwoliło ludziom z Canonical na wyciągnięcie wniosków wprowadzenie koniecznych zmian. Jak się okazało moje nadzieje były płonne. Rewolucyjne zmiany wywołały u mnie tylko początkowy zachwyt, który szybko przerodził się w nieustanną frustrację. Czy możliwe jest, że tylko ja mam takie problemy?</p>
<h3>Złożona analiza</h3>
<p>Domyślny, boczny pasek przejął częściowo role dolnego i górnego paska, które informowały użytkownika o uruchomionych aplikacjach i prezentowały skróty aplikacji. I wszytko byłoby super, gdyby konfiguracja bocznego paska była łatwiejsza. Ikony ogromne, masa efektów rozwijania, migania i zbędnych animacji, które zupełnie zaburzają płynność działania to nie to czego oczekiwałem. Przypuszczalnie wszystko o czym napisałem zmienia się łatwo i bezboleśnie, ale ja tego jeszcze nie dokonałem.</p>
<p>Rhythmbox nawet przy skromnej kolekcji kilkunastu tysięcy piosenek dławi się podczas wyszukiwania na ponad 10 sekund. Jeśli już posłucham kilku utworów to dalej nie mam gwarancji, że aplikacja nie <a href="https://bugzilla.redhat.com/show_bug.cgi?id=702778">wysypie się</a> przed końcem piosenki. Podobnie Eclipse. Napisanie kilku znaków tekstu sprowadza się do odczekania kilkunastu sekund zanim wróci kontrola nad aplikacją. I tak co chwilę.</p>
<p>Praca z dwoma monitorami również bywa problematyczna. Podczas korzystania z drugiego ekranu poprzez kabel D-Sub zdarza się, że główny ekran zamiera, a wówczas pozostaje tylko restart systemu.</p>
<h3>Podsumowanie</h3>
<p>W tej chwili nie przychodzą mi do głowy inne braki systemu Ubuntu 11.10, ale pewnie takie istnieją. Przykro mi, ale mówię to z pełną świadomością. Nie podoba mi się nowy trend i kierunek rozwoju systemu, hipotetyczna innowacyjność, mizerna wydajność i brak stabilności. Niedopracowany produkt zostaje w laboratorium, a nie dostarcza się go klientom, ponieważ użytkownicy to nie darmowa baza testerów, co staje się ogromnie popularne w ostatnim czasie. Ostatecznie życzę powodzenia i cierpliwości wszystkim, którzy zdecydują się na aktualizację systemu.</p>
]]></content:encoded>
			<wfw:commentRss>http://adamczuk.net.pl/2011/11/22/ubuntu-11-10-bardzo-subiektywnie/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Thunderbird dokleja pliki XML do treści wiadomości</title>
		<link>http://adamczuk.net.pl/2011/01/31/thunderbird-dokleja-pliki-xml-do-tresci-wiadomosci/</link>
		<comments>http://adamczuk.net.pl/2011/01/31/thunderbird-dokleja-pliki-xml-do-tresci-wiadomosci/#comments</comments>
		<pubDate>Mon, 31 Jan 2011 10:21:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[attachment]]></category>
		<category><![CDATA[inline]]></category>
		<category><![CDATA[settings]]></category>
		<category><![CDATA[thunderbird]]></category>

		<guid isPermaLink="false">http://adamczuk.net.pl/?p=461</guid>
		<description><![CDATA[Rozwiązanie problemu blokowania Thunderbirda przy automatycznym otwieraniu załączników.]]></description>
			<content:encoded><![CDATA[<p>Jakże irytujące jest korzystanie z klienta pocztowego, który automatycznie otwiera lub próbuje otworzyć załączniki. Mozilla Thunderbird, która domyślnie dokleja treść załączników do treści wiadomości blokuje się wówczas na określony czas, w zależności od wielkości załącznika.</p>
<p>Rozwiązanie tego problemu to zmiana odpowiedniej opcji w ustawieniach programu. Szukamy <strong>Narzędzia</strong> -> <strong>Opcje&#8230;</strong> -> <strong>Zaawansowane</strong> -> <strong>Ogólne</strong> -> <strong>Edytor ustawień&#8230;</strong> po czym zmieniamy<br />
<strong>mail.inline_attachments</strong> na <strong>false</strong>. Wersja angielska, a może dla systemu GNU/Linux to odpowiednio <strong>Edit</strong> -> <strong>Preferences</strong> -> <strong>Advanced</strong> -> <strong>General</strong> -> <strong>Config Editor&#8230;</strong> gdzie szukamy wspomnianej zmiennej konfiguracyjnej.</p>
]]></content:encoded>
			<wfw:commentRss>http://adamczuk.net.pl/2011/01/31/thunderbird-dokleja-pliki-xml-do-tresci-wiadomosci/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Comarch Optima, MS Excel i kontrahenci</title>
		<link>http://adamczuk.net.pl/2010/12/14/comarch-optima-ms-excel-i-kontrahenci/</link>
		<comments>http://adamczuk.net.pl/2010/12/14/comarch-optima-ms-excel-i-kontrahenci/#comments</comments>
		<pubDate>Tue, 14 Dec 2010 16:07:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[clients]]></category>
		<category><![CDATA[comarch]]></category>
		<category><![CDATA[excel]]></category>
		<category><![CDATA[export]]></category>
		<category><![CDATA[import]]></category>
		<category><![CDATA[optima]]></category>
		<category><![CDATA[phpexcel]]></category>

		<guid isPermaLink="false">http://adamczuk.net.pl/?p=447</guid>
		<description><![CDATA[Przemyślenia na temat importu kontrahentów w postaci pliku xls do Comarch Optima.]]></description>
			<content:encoded><![CDATA[<p><a href="http://adamczuk.net.pl/wp-content/uploads/2010/12/optima.png"><img src="http://adamczuk.net.pl/wp-content/uploads/2010/12/optima.png" alt="Comarch Optima Logo" title="Comarch Optima" width="200" height="100" class="left size-full wp-image-448" /></a><a href="http://www.comarch.pl/erp/oferta/produkty/comarch-optima">Optima</a> to znany produkt krakowskiej firmy <a href="http://www.comarch.pl/">Comarch</a>, który wspomaga zarządzanie przedsiębiorstwem. Jak wygląda jednak sprawa integracji danych z innych programów, importu i eksportu plików różnych plików?<br />
<span id="more-447"></span><br />
Program <strong>Comarch Optima</strong> składa się z wielu modułów. W przypadku klientów naszego przedsiębiorstwa są to profesjonalnie mówiąc &#8211; Kontrahenci. Wprowadzanie danych nowych kontrahentów, jak i edycja istniejących nie powoduje w większości błędów. Co jednak jeśli chcemy dane naszych kontrahentów eksportować w jakimkolwiek celu?</p>
<p>Z pomocą przychodzi nam opcja <strong>Eksport do MS Excel</strong>. Wspaniale, istnieje eksport, możliwość ustalenia nazwy pliku, ale dlaczego właśnie plik xls? Identycznie wygląda kwestia importu danych kontrahentów. Tu również nie ma możliwości wyboru, poza plikiem xls. Wprawdzie znalazłem informacje o możliwości importu plików z innych programów rachunkowych, jak Subiekt czy WFMag, ale przypuszczam, że one również eksportują dane w formacie Excela.</p>
<p>Moje pytanie do twórców oprogramowania Comarch Optima. Czy nie przyszło Wam nigdy do głowy, że przydatna byłaby opcja do jakiegoś otwartego standardu dokumentów, przykładowo pliki xml? Domyślam się, że to dodatkowe koszty, ale korzyści moim zdaniem nie do przecenienia.</p>
<p>Rozwiązanie tego problemu jest jedno, a przynajmniej tak myślałem na początku. Samodzielne stworzenie pliku w Excelu i import po kilku próbach zakończył się sukcesem. Kolejny etap to próba wygenerowania pliku xls z danymi klientów przez PHP. Akurat istnieje świetna klasa do generowania tego typu dokumentów. <a href="http://phpexcel.codeplex.com/">PHPExcel</a> pozwala łatwe tworzenie dokumentów Excela i wypełnienie ich danymi klientów z bazy danych. Wygenerowany plik wygląda prawidłowo, przynajmniej bez błędów otwiera się w OpenOffice.</p>
<p>Co jednak z importem takich danych w programie Comarch Optima? Arkusz kalkulacyjny musi zawierać kolumnę NIP. Jak to, przecież zawiera. O co chodzi, zapisz jako inny plik po otwarciu w Open Office i działa. Zero zmian w pliku, ale coś jednak musiało ulec zmianie.</p>
<p>Wiem jedno. Komputer nie myli się nigdy, programista dużo częściej. Czy błąd leży po mojej stronie, czy twórców Comarch Optima?</p>
]]></content:encoded>
			<wfw:commentRss>http://adamczuk.net.pl/2010/12/14/comarch-optima-ms-excel-i-kontrahenci/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IT Giants 2010</title>
		<link>http://adamczuk.net.pl/2010/11/16/it-giants-2010/</link>
		<comments>http://adamczuk.net.pl/2010/11/16/it-giants-2010/#comments</comments>
		<pubDate>Mon, 15 Nov 2010 23:51:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Wydarzenia]]></category>
		<category><![CDATA[giants]]></category>
		<category><![CDATA[it]]></category>

		<guid isPermaLink="false">http://adamczuk.net.pl/?p=426</guid>
		<description><![CDATA[Zapowiedź konferencji informatycznej IT Giants 2010.]]></description>
			<content:encoded><![CDATA[<p>Kolejna edycja krakowskiej konferencji <a href="http://itgiants.org/">IT Giants</a> zbliża się wielkimi krokami. Uczestniczyłem w poprzedniej konferencji, której gościem specjalnym był między innymi Richard Stallman, prezes <a href="http://www.gnu.org/">Free Software Foundation</a>. Agenda tegorocznej edycji Gigantów IT nie zawiera wprawdzie zagranicznych gości, może poza konsulem USA i prezesem Sabre Holdings.</p>
<p>Mimo tego, lista proponowanych tematów zapowiada się ciekawie, więc każdy z uczestników znajdzie coś dla siebie. Konferencja odbędzie się 18 listopada w Krakowie. Osobiście, ze względu na pracę nie znajdę czasu na pojawienie się podczas tego wydarzenia. Może następnym razem będzie to możliwe.</p>
]]></content:encoded>
			<wfw:commentRss>http://adamczuk.net.pl/2010/11/16/it-giants-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nie przepisuj aplikacji</title>
		<link>http://adamczuk.net.pl/2010/11/14/nie-przepisuj-aplikacji/</link>
		<comments>http://adamczuk.net.pl/2010/11/14/nie-przepisuj-aplikacji/#comments</comments>
		<pubDate>Sun, 14 Nov 2010 16:35:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Przemyślenia]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[apps]]></category>
		<category><![CDATA[niew]]></category>
		<category><![CDATA[oop]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[project]]></category>
		<category><![CDATA[refactoring]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://adamczuk.net.pl/?p=415</guid>
		<description><![CDATA[Osobiste przemyślenia na temat tworzenia i przepisywania aplikacji.]]></description>
			<content:encoded><![CDATA[<p>Podstawowa wada programistów to błędne przeświadczenie, że szybko i lepiej napiszą nową wersję działającej aplikacji. Jak mylne może być takie rozumowanie przeczytamy chociażby w <a href="http://www.devblogi.pl/2010/07/rzeczy-ktorych-nigdy-nie-powinienes.html">tłumaczeniu</a> zagranicznego artykułu, który napisał <a href="http://joelonsoftware.com/AboutMe.html">Joel Spolsky</a>. Dalsza część wpisu to moje własne przemyślenia na temat tworzenia oprogramowania.<br />
<span id="more-415"></span><br />
Z własnego doświadczenia wiem jak silna dla programisty jest motywacja do rozpoczęcia nowego projektu. Nowe plany stworzenia czegoś oryginalnego, lepszego, innowacyjnego, wydajniejszego, ładniejszego. Jak zwodnicze potrafi być nasze myślenie kiedy po krótkim czasie płomienny zapał wygasa, a miejsce podniecenia zajmuje stopniowe rozczarowanie i przygnębienie. Programista sądzi, że napisze dany kod w określonym czasie. Szybko przekonamy się, że tak nie będzie po czasie jaki przydziela kierownik projektu. Dlatego, praktycznie zawsze przepisanie aplikacji od zera kończy się porażką. Przewidywany czas pracy programisty mnożymy dwukrotnie, a ten czas kierownik projektu ponownie podwaja. Dopiero taki okres bywa rzeczywistym czasem tworzenia danego projektu. Twierdzę tak na podstawie własnych doświadczeń, choć w różnych firmach bywają inne przeliczniki. Oczywiście nie ma tutaj żadnych wyników ankiet, ani badań, ale każdy w głębie serca, może sam zadać sobie pytanie.</p>
<p><quote>Czy warto przepisać dany produkt od zera?</quote></p>
<p>Pytanie to jest bardzo skomplikowane, bo istnieje wiele powodów, które skłaniają programistów do próby przepisania oprogramowania. Jednak zmieniony interfejs użytkownika, funkcjonalności aplikacji czy poprawa wydajności nie zawsze są warte przepisywania oprogramowania. Czas i zasoby poświęcone na tworzenie nowej wersji, zwykle przerastają wstępnie zaplanowane, co jeszcze bardziej pogłębia frustrację zespołu. A odpowiedź jest bardzo prosta &#8211; jaki jest sens w przepisywaniu czegoś co działa. Może nie wygląda pięknie od strony wizualnej, może wewnątrz kodu kryją się absurdalne rozwiązania programistyczne, ale przecież to działa. Wielu ludzi poświęciło swój czas, testowało, pisało poprawki, aby to oprogramowanie działało, a próba przepisania wszystkiego od nowa to najprawdopodobniej, przekreślenie ich trudu i wpędzenie siebie w wielkie bagno. Ponownie napotkamy problemy, które rozwiązywali nasi poprzednicy.</p>
<p>Zupełnie podobnie wygląda sytuacja, w której rozpoczynamy prace nad istniejącym projektem. Nie możemy wyzerować konta, poprzez nowe plany, rozwiązania i koncepcje. Musimy wspierać przestarzały, nieaktualny kod, dźwigać na plecach ciężar poprzednich wersji oprogramowania, kompatybilności oraz błędów swoich poprzedników. Tutaj również pojawia się przytoczone wyżej pytanie.</p>
<p><quote>Czy warto przepisać dany produkt od zera?</quote></p>
<p>W wielu przypadkach to indywidualna decyzja, ale przeważnie odpowiedz jest jedna &#8211; nie warto. Może efekt będzie zadowalający, oprogramowanie wydajniejsze, a kod klarowny. Jednak czas i zasoby wykorzystane przy danym projekcie, można przenieść na zupełnie nowy, niezależny produkt.</p>
]]></content:encoded>
			<wfw:commentRss>http://adamczuk.net.pl/2010/11/14/nie-przepisuj-aplikacji/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<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 [...]]]></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>

