<?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</title>
	<atom:link href="http://adamczuk.net.pl/feed/" rel="self" type="application/rss+xml" />
	<link>http://adamczuk.net.pl</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Sun, 06 May 2012 22:34:15 +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>Prawdziwa dostępność stron internetowych</title>
		<link>http://adamczuk.net.pl/2012/05/06/prawdziwa-dostepnosc-stron-internetowych/</link>
		<comments>http://adamczuk.net.pl/2012/05/06/prawdziwa-dostepnosc-stron-internetowych/#comments</comments>
		<pubDate>Sun, 06 May 2012 22:34:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Przemyślenia]]></category>

		<guid isPermaLink="false">http://adamczuk.net.pl/?p=615</guid>
		<description><![CDATA[Ogólne spostrzeżenia na temat dostępności]]></description>
			<content:encoded><![CDATA[<p>Przeczytałem wiele książek na temat projektowania i tworzenia stron internetowych. Dostępność, użyteczność, standardy sieciowe to wszystko piękne hasła, które słyszeli wszyscy projektanci i programiści. Nie wiem jak wygląda stosowanie tych wszystkich reguł w praktyce, bo to zawsze sprawa indywidualna. Zwróciłem na to szczególną uwagę, podczas pracy nad jedną z aplikacji.<span id="more-615"></span></p>
<p>Kwestie dostępności nie są ignorowane tylko przez początkujących koderów, ale również przez pseudo ekspertów, którzy nieświadomi swojego braku wiedzy przez lata powtarzali te same błędy. Osobiście przyznaję, że w pewnych aspektach sam byłem zupełnym laikiem.</p>
<p>Strony internetowe to medium przeznaczone dla wszystkich. Nie mówię tutaj o grupie docelowej danej aplikacji, ale równości w dostępie poprzez dowolne kanały bez względu na stopień niepełnosprawności. Niestety już na samym początku projekt strony ma spore wady. Nie każda strona internetowa musi spełniać regulacje dostępu, ale świetnie jeśli tak właśnie jest. Ileż to dyrektyw, ustaw i protokołów stworzyły światowe organizacje, państwowe rządu i inne podmioty, a ile stron jest dostępnych, nawet w nikłym stopniu?</p>
<p>Prawdą jest to, że niewidomy nie potrzebuje Facebooka czy YouTube&#8217;a do szczęścia, ale skoro giganci mają gdzieś niepełnosprawnych użytkowników to taki właśnie przykład dają pozostałym twórcom w sieci. Następnie strony internetowe budowane są przy pomocy przestarzałych technik, mają niesemantyczną strukturę, nie przechodzą walidacji, pomijając ułatwienia dostępu, jak kontrast, wielkość czcionki i wiele innych.</p>
<p>Strony internetowe wyświetlane są nie tylko na monitorze, ale czasem drukowane czy czytane na głos. Jak wtedy zachowuje się twoja ultra nowoczesna aplikacja, wspierana przez AJAX i setki linii JavaScriptu? Prawdopodobnie tego nie sprawdziłeś, bo przecież niewidomy, niedowidzący, niesłyszący i inni niepełnosprawni nie skorzystają z twojego serwisu, nawet jeśli chcieliby.</p>
<p>Najgorzej jest ze wszystkimi stronami rządowymi i publicznymi. Żal się robi, kiedy widzisz, jak publiczne pieniądze są marnotrawione na oryginalne, ale jakże niedostępne serwisy ministerstw, urzędów i masy innych podmiotów, których zadaniem jest wsparcie obywateli. Jeśli niepełnosprawny użytkownik nie załatwi sprawy urzędowej przez internet to pewnie ktoś, go przyjmie w przystosowanym do jego inwalidztwa urzędzie. Oczywiście.</p>
<p>Gdyby tylko takie błahe z pozoru sprawy były proste, jak wiele czasy zostałoby na podróże koleją, zakupy online, płatności mobilne czy znalezienie ulubionego programu w telewizji, bo przecież te rzeczy są dostępne w sieci od dawna i dla każdego.</p>
]]></content:encoded>
			<wfw:commentRss>http://adamczuk.net.pl/2012/05/06/prawdziwa-dostepnosc-stron-internetowych/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Diagnostyczne arkusze stylów kaskadowych</title>
		<link>http://adamczuk.net.pl/2012/03/27/diagnostyczne-arkusze-stylow-kaskadowych/</link>
		<comments>http://adamczuk.net.pl/2012/03/27/diagnostyczne-arkusze-stylow-kaskadowych/#comments</comments>
		<pubDate>Tue, 27 Mar 2012 19:51:38 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Porady]]></category>
		<category><![CDATA[diagnostic]]></category>
		<category><![CDATA[eric]]></category>
		<category><![CDATA[meyer]]></category>
		<category><![CDATA[standards]]></category>
		<category><![CDATA[validation]]></category>
		<category><![CDATA[w3c]]></category>

		<guid isPermaLink="false">http://adamczuk.net.pl/?p=613</guid>
		<description><![CDATA[Pomysł na ciekawe wykorzystanie stylów kaskadowych do pracy kodera.]]></description>
			<content:encoded><![CDATA[<p>Znany na pewno ludziom z branży <a href="http://meyerweb.com/" title="Eric Meyer Website">Eric Meyer</a> napisał wiele książek na temat arkuszy stylów kaskadowych. Podczas czytania jego książki na temat tworzenia nowoczesnych układów stron WWW znalazłem ciekawy przykład wykorzystania tej technologii. Jak się okazuje pomysł na diagnostyczne style kaskadowe nie jest żadną nowością, bo Eric Meyer <a href="http://meyerweb.com/eric/thoughts/2007/09/07/diagnostic-styling/" title="diagnostyczne style kaskadowe">poruszał ten temat</a> we wrześniu 2007 roku.<span id="more-613"></span></p>
<h3>Idea</h3>
<p>Pomysł w prosty sposób wykorzystuje nowe selektory CSS3. Dołączenie do strony stylów, które pozwalają na łatwe wykrycie pustych elementów, znaczników z brakującymi lub niewłaściwymi atrybutami jest teraz banalne. </p>
<p>Poprzez kilka reguł CSS dowiesz się, które obrazki mają pusty atrybut <code>alt</code> lub nie mają go wcale. Analogicznie z tabelami i pustymi komórkami albo podsumowaniami zawartości z atrybutów <code>summary</code>.</p>
<p>Sposób na znalezienie w kodzie przestarzałych znaczników typu <code>font</code>, <code>center</code> lub innych rzeczy, które często umykają naszej uwadze. Najlepsze z tego wszystkiego jest to, że w podobny sposób stworzysz style ukierunkowane na twoje kryteria.</p>
<p>Podobnie jak dowolnie tworzysz arkusze stylów resetujące domyślne style przeglądarek, tak teraz stwórz zestaw pomocny przy twojej pracy. Style <a href="http://meyerweb.com/eric/tools/css/diagnostics/diagnostic.css" title="diagonostyczne style kaskadowe"><em>diagnostic.css</em></a> przedstawione przez Erica znajdziesz w przykładach na jego stronie internetowej.</p>
]]></content:encoded>
			<wfw:commentRss>http://adamczuk.net.pl/2012/03/27/diagnostyczne-arkusze-stylow-kaskadowych/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Przezroczysty tekst w kolorze tła</title>
		<link>http://adamczuk.net.pl/2012/03/16/przezroczysty-tekst-w-kolorze-tla/</link>
		<comments>http://adamczuk.net.pl/2012/03/16/przezroczysty-tekst-w-kolorze-tla/#comments</comments>
		<pubDate>Thu, 15 Mar 2012 23:23:53 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[background]]></category>
		<category><![CDATA[color]]></category>
		<category><![CDATA[text]]></category>
		<category><![CDATA[transparent]]></category>

		<guid isPermaLink="false">http://adamczuk.net.pl/?p=607</guid>
		<description><![CDATA[Pomysł i sposób na przezroczysty tekst w strukturze dokumentu]]></description>
			<content:encoded><![CDATA[<p>Podczas jednej z luźnych rozmów w pracy okazało się, że kolega potrzebuje efektu przezroczystego tekstu, przez który przebija obraz tła. Wtedy przypomniałem sobie o pewnej technice, którą dawno temu znalazłem w sieci. Nie pamiętam autorki tego triku, ale w kilku przypadkach sprawdza się przednio.<span id="more-607"></span></p>
<p>Całość sztuczki polega na odpowiednim przygotowaniu tła dla oczekiwanego efektu. Element zawierający formatowany tekst pozycjonujemy relacyjnie, a wewnątrz niego umieszczamy dodatkowy znacznik <code>span</code>. Wszystko po to, aby dodatkowy element pozycjonowany absolutnie przechowywał tło. </p>
<p><a href="http://adamczuk.net.pl/przyklady/transparent-text/transparent-text.zip">Download</a> &middot; <a href="http://adamczuk.net.pl/przyklady/transparent-text/">Live Demo</a></p>
<p>Połączenie tych dwóch technik umożliwia uzyskanie nałożenia tła na tekście i połączenie go z kolorem bazowym tła. Uzyskanie wspomnianego efektu wymaga dodatkowych elementów w strukturze dokumentu. Jest to konieczne, ponieważ tekst zawsze wyświetlany na tle danego elementu.</p>
<p>Innym sposobem osiągnięcia przezroczystego tekstu w kolorze tła jest ustawienie odpowiednich właściwości dla elementu: <code>background: url(kuba.jpg);</code> i <code>color: transparent;</code>. Niestety samo to nie wystarczy, ponieważ zmiana sposobu generowania tekstu i tła wymaga jeszcze ustawienia jednej właściwości. A dokładnie reguły <code>background-clip: text;</code> ze specyfikacji CSS3.</p>
]]></content:encoded>
			<wfw:commentRss>http://adamczuk.net.pl/2012/03/16/przezroczysty-tekst-w-kolorze-tla/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>YAML jako alternatywa dla JSON oraz XML</title>
		<link>http://adamczuk.net.pl/2012/02/28/yaml-jako-alternatywa-dla-json-oraz-xml/</link>
		<comments>http://adamczuk.net.pl/2012/02/28/yaml-jako-alternatywa-dla-json-oraz-xml/#comments</comments>
		<pubDate>Mon, 27 Feb 2012 23:29:24 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Porady]]></category>
		<category><![CDATA[Przemyślenia]]></category>
		<category><![CDATA[config]]></category>
		<category><![CDATA[flexibility]]></category>
		<category><![CDATA[readability]]></category>
		<category><![CDATA[yaml]]></category>

		<guid isPermaLink="false">http://adamczuk.net.pl/?p=603</guid>
		<description><![CDATA[Przemyślenia na temat użyteczności i zastosowań języka YAML.]]></description>
			<content:encoded><![CDATA[<p>Podczas kilku ostatnich projektów potrzebowałem przejrzystego, elastycznego, a przede wszystkim lekkiego sposobu zapisu konfiguracji. Różne ilości danych, wiele kontekstów, a także forma zapisu wymogły na mnie poszukiwania czegoś naprawdę dobrego, ponieważ dotychczasowe sposoby i technologie miały swoje wady.<span id="more-603"></span></p>
<p>Kiedy programista tworzy konfigurację, a w przyszłości analizuje i zmienia ją osoba nietechniczna, najpewniej doprowadzi to do kłopotów. Dlaczego wprowadzanie zmian w plikach konfiguracyjnych jest trudne i mało zrozumiałe dla prostych ludzi? Pewnie dlatego, że same pliki są skomplikowane składniowo.</p>
<p>Najmniej użyteczna forma zapisu konfiguracji to pliki języka, w którym programujesz. Świetnie jeśli używasz PHP albo Pythona, ale handlowiec czy marketingowiec, któremu za rok zlecą zmianę na stronie nie zrozumie zapisów technicznych.</p>
<p>Używanie plików XML jest bardzo ciekawym doświadczeniem, bo przecież każdy rozumie filozofię znaczników otwierających i zamykających, atrybutów i wartości, nie wspominając o prologach i komentarzach. Niestety języki znaczników mają jedną wielką wadę! Ogromny narzut wielkości w stosunku do przesyłanych danych, poza tym, że mała literówka spowoduje błąd parsowania pliku.</p>
<p>Kiedy twoja konfiguracja będzie rozbudowana. Tablice, liczby i słowniki zagnieżdżone wielokrotnie potrzebujesz łatwego i czytelnego zapisu takich danych. Nie znałem języka, który oferowałby użytkownikowi tak wiele, za tak niewiele, dopóki nie poznałem YAML.</p>
<p><a href="http://yaml.org/spec/current.html">YAML</a> jest uniwersalnym językiem przeznaczonym do zapisu danych w strukturalny sposób. Brzmi to skomplikowanie, w rzeczywistości składnia tego języka jest bajecznie prosta. Sposób edycji wymaga od autora zachowania kilku reguł, a daje praktycznie nieograniczone możliwości.</p>
<p>Poszczególne struktury danych pliku oddzielone są znakami nowej linii, a ich wzajemna hierarchia wynika z znaków wcięcia. Dzięki temu możliwy jest zapis list, słowników, a także skalarów. Możliwe są również wskaźniki pomiędzy istniejącymi danymi, co ogranicza nadmiarowość. Niestety używanie znaku tabulatora do tworzenia wcięć jest niezgodne ze specyfikacją języka.</p>
<p>Mimo tego, YAML jest zwięzły i czytelny dla człowieka. W swojej prostocie jest całkowicie przenośny pomiędzy językami programowania i reprezentuje wbudowane struktury danych. Dodatkowo YAML jest rozszerzalny i łatwy w edycji przez narzędzia, przetwarzające tekst. Moim skromnym zdaniem te cechy są ogromnymi atutami języka.</p>
]]></content:encoded>
			<wfw:commentRss>http://adamczuk.net.pl/2012/02/28/yaml-jako-alternatywa-dla-json-oraz-xml/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ColorHexa &#8211; teoria koloru w praktyce</title>
		<link>http://adamczuk.net.pl/2012/02/20/colorhexa-teoria-koloru-w-praktyce/</link>
		<comments>http://adamczuk.net.pl/2012/02/20/colorhexa-teoria-koloru-w-praktyce/#comments</comments>
		<pubDate>Mon, 20 Feb 2012 20:46:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Serwisy]]></category>
		<category><![CDATA[colors]]></category>
		<category><![CDATA[hex]]></category>
		<category><![CDATA[rgb]]></category>
		<category><![CDATA[schemes]]></category>

		<guid isPermaLink="false">http://adamczuk.net.pl/?p=592</guid>
		<description><![CDATA[Opis i możliwości serwisu ColorHexa, generatora gradientów i encyklopedii kolorów]]></description>
			<content:encoded><![CDATA[<p><a href="http://adamczuk.net.pl/wp-content/uploads/2012/02/color-hexa.jpg"><img src="http://adamczuk.net.pl/wp-content/uploads/2012/02/color-hexa.jpg" alt="" title="color-hexa" width="300" height="100" class="align left size-full wp-image-598" /></a>Podczas tworzenia stron internetowych i aplikacji, często zastanawiamy się czy dane kolory do siebie pasują? Czy wybrany kolor i dane tło są wystarczająco kontrastowe? Jeśli tego nie wiemy szukamy pomocy w internecie, a tutaj pomocny okazuje się serwis <a href="http://www.colorhexa.com/" title="ColorHexa">ColorHexa.com</a>, czyli internetowa encyklopedia kolorów.<br />
<span id="more-592"></span><br />
W 2011 roku opisywałem serwis <strong>Colors on the Web</strong>, który posiada wiele przydatnych narzędzi. Graficy i koderzy znajdą tam określone zestawy kolorystyczne dla koloru bazowego. Porównałem wyniki skryptów <strong>ColorHexa</strong> oraz <a href="http://colorsontheweb.com/colorwizard.asp">ColorWizard</a> i były identyczne. W sieci istnieje jeszcze sporo podobnych serwisów, ale to nieistotne, bo w większości oferują zbliżoną funkcjonalność.</p>
<p><strong>ColorHexa</strong> prezentuje szczegółowe informacje na temat szukanego koloru. Prezentuje kolory pośrednie pomiędzy dwoma podanymi kolorami, aż w końcu przedstawia zestawy kolorów dopasowanego do bazy według założonych kryteriów. Wszystko to skromnej, lekko eleganckiej formie.</p>
<p>Niestety dla mnie osobiście mało ważne są wartości składowych koloru zapisane w kilkunastu postaciach. Jako twórca arkuszy stylów kaskadowych korzystam jedynie z zapisu heksadecymalnego, a pewnie każdy ma swoje uzasadnienie do określonego zapisu koloru. Moim naturalnym krokiem naprzód będzie używanie notacji RGBA W przyszłości. Wiem, jak poszczególne składowe wpływają na ostateczny kolor, ale nadal najbardziej interesujący aspekt tego typu narzędzi to algorytm działania, który poznam i praktycznie wykorzystam.</p>
]]></content:encoded>
			<wfw:commentRss>http://adamczuk.net.pl/2012/02/20/colorhexa-teoria-koloru-w-praktyce/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Style kaskadowe zorientowane obiektowo</title>
		<link>http://adamczuk.net.pl/2012/02/15/style-kaskadowe-zorientowane-obiektowo/</link>
		<comments>http://adamczuk.net.pl/2012/02/15/style-kaskadowe-zorientowane-obiektowo/#comments</comments>
		<pubDate>Wed, 15 Feb 2012 17:41:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Przemyślenia]]></category>

		<guid isPermaLink="false">http://adamczuk.net.pl/?p=583</guid>
		<description><![CDATA[Dyskusja i własne spojrzenie na kwestie stylów kaskadowych zorientowanych obiektowo]]></description>
			<content:encoded><![CDATA[<p>W grudniu 2011 roku <a href="http://coding.smashingmagazine.com/author/louis-lazaris/">Louis Lazaris</a> poruszył na łamach Smashing Magazine temat <a title="Style kaskadowe zorientowane obiektowo" href="http://coding.smashingmagazine.com/2011/12/12/an-introduction-to-object-oriented-css-oocss/">stylów kaskadowych zorientowanych obiektowo</a>. Z technicznego punktu widzenia nie istnieje taki sposób zapisu lub definiowania arkuszy stylów kaskadowych. Spójrzmy jednak na tę kwestię nieco szerzej.<span id="more-583"></span></p>
<p>Sztuka tworzenia wydajnych i czytelnych arkuszy stylów to kwestia doświadczenia, ale i odpowiedniego podejścia. Według filozofii zorientowanej obiektowo reguły przygotowywane są pod kątem ponownego wykorzystania. Z tego względu nie powinny być ograniczane poprzez selektory kontekstu czy potomka. Jednak czy grupowanie wspólnych właściwości w klasach jest czymś nadzwyczajnym? Przecież to jedna z podstawowych zasad obowiązujących w CSS.</p>
<h3>Wprowadzenie</h3>
<p>Louis twierdzi, że separowanie wspólnych reguł, takich jak kolory, marginesy, czcionki i wiele innych daje zysk w sytuacji, gdy powtarzają się one w kontekście innych elementów na stronie. Zgadzam się, z tym stwierdzeniem choć określanie atrybutu <code>class</code> wielu elementom bywa zbyteczne. Teraz pojawia się kwestia wydajności i przejrzystości. Czy lepszy jest krótszy kod CSS (jeśli to w ogóle możliwe) czy jednak przejrzysta struktura dokumentu? Oba warianty mają swoje zalety i osobiście obstawałem przy drugim wyborze.</p>
<p>Niestety przy komercyjnych projektach struktura dokumentu i arkusze stylów rozrastają się równie szybko. Istotne jest rozsądne wyważenie podziału między obiema warstwami. Podejście <em>zorientowane obiektowo</em> przynosi korzyści przy naprawdę złożonych projektach. <a href="http://www.stubbornella.org/">Nicole Sullivan</a> jako pierwsza, która zaproponowała taki sposób tworzenia arkuszy stylów.</p>
<h3>Globalne spojrzenie</h3>
<p>Idąc dalej, tym <a title="Prezentacja Nicole Sullivan związana z OOCSS" href="http://www.slideshare.net/stubbornella/object-oriented-css">tropem</a>, uświadamiamy sobie jak wysokie wymagania wiążą się z pisaniem wydajnych stylów kaskadowych przez projektantów i koderów. Kod CSS jest zbyt wrażliwy na zmiany osób trzecich, szczególnie mało doświadczonych. Każda osoba wplata w pisane arkusze swoje wieloletnie nawyki, utarte schematy i osobisty tok rozumowania. Wówczas nasze rozbudowane style są praktycznie nieprzydatne dla innych osób.</p>
<p>Twórcy siatek CSS zrozumieli to wiele lat temu i stworzyli uniwersalne style dla układów wielokolumnowych. Ten kierunek jest zdecydowanie dobry, a zapoczątkował go <a href="http://960.gs/">960 Grid System</a>. Czy przeniesienie podobnego rozumowania na grunt pozostałych właściwości elementów stron internetowych jest możliwe?</p>
<h3>Dobre praktyki</h3>
<ol>
<li>Stwórz reguły, które wykorzystasz ponownie wykorzystasz.</li>
<li>Niech twoje style będą semantyczne i jednolite.</li>
<li>Niech moduły będą przezroczyste od wewnątrz.</li>
<li>Bądź elastyczny.</li>
<li>Pokochaj siatki.</li>
<li>Ograniczaj selektory.</li>
<li>Podziel strukturę i wygląd.</li>
<li>Podziel kontenery i treść.</li>
<li>Niech elementy struktury korzystają z przygotowanych klas.</li>
<li>Używaj resetowania i czcionek ze stylów YUI.</li>
</ol>
<p>Powyższe punkty zawarte w prezentacji Nicole są jasne, a przynajmniej w większości są jasne. Zdecydowanie zgadzam się z niektórymi, z paroma mniej, a kilku nie rozumiem. Podział reguł CSS na uniwersalne moduły skutkuje budowaniem wspólnego wyglądu elementów z mniejszych składników. Dzięki temu kolejne podstrony, właściwie nie potrzebują dodatkowych właściwości. Wspólny wygląd dla nagłówków, list i innych semantycznych elementów powinien być jednolity w obrębie całej strony, a zatem niech zostanie zdefiniowany w jednym miejscu. Rozdzielenie struktury i wyglądu stylów.</p>
<p>Podczas tworzenia stylów kaskadowych, częściej kieruje się rozsądkiem, niż emocjami. Z tego powodu nigdy nie używałem siatek. Mimo tego sformułowanie <em>&#8220;Siatki określają szerokość, a zawartość wysokość elementów&#8221;</em> jest prawdziwe. Rzeczywiście reguły typu <code>.example {...}</code> są bardziej użyteczne niż <code>div.example {...}</code>. Ale dlaczego wskazane jest korzystanie z gotowych stylów YUI? Czyżby były aż tak genialne?</p>
<h3>Możliwe pułapki</h3>
<ol>
<li>Style zależne od lokalizacji.</li>
<li>Unikaj przypisywania klas do konkretnych elementów.</li>
<li>Zapomnij o identyfikatorach dla stylów wewnątrz treści.</li>
<li>Unikaj cieni i zaokrąglonych rogów dla nieregularnych teł</li>
<li>Nie buduj map z wszystkimi obrazami.</li>
<li>Unikaj wyrównania w pionie.</li>
<li>Tekst jako tekst, a nie obraz.</li>
<li>Nadmiarowość.</li>
<li>Unikaj przedwczesnej optymalizacji.</li>
</ol>
<p>Jeśli określone style są mocno zbliżone do siebie w obrębie danej strony to są niepraktyczne również w całym arkuszu stylów. Zdecyduj się na jednej wariant i stosuj go konsekwentnie. Niech jednolite reguły określają wygląd tych samych elementów. Nadpisywanie kolejnych właściwości w zależności o przodka elementu lub innych kryteriów jest kosztowne. Wówczas elementy zachowują się przypadkowo. Połączenie identycznych wspólnych reguł w różnych wariantach pozwala na szerokie zastosowanie.</p>
<h3>Podsumowanie</h3>
<p>Część z wymienionych punktów pokrywa się lub wzajemnie wyklucza w porównaniu z listą dobrych praktyk. Tak czy inaczej, wszystkie zalecenia traktujmy jako sugestie podczas procesu projektowania i tworzenia stylów kaskadowych. Całościowy zarys koncepcji jest nieco ogólny, a stosowanie poszczególnych wytycznych mocno uzależnione od samodyscypliny kodera.</p>
<p>Wszyscy wiemy, że CSS ma pewne braki, a internet rozwija się niezmiernie szybko. Jednak pisanie wydajnych arkuszy nie stanie się łatwiejsze wraz ze wsparciem CSS3 przez przeglądarki. Doświadczenie i sprawdzone schematy wciąż są ważne, co nie zwalnia nas z poszukiwania lepszych i optymalnych rozwiązań.</p>
]]></content:encoded>
			<wfw:commentRss>http://adamczuk.net.pl/2012/02/15/style-kaskadowe-zorientowane-obiektowo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wzorzec projektowy Strategia</title>
		<link>http://adamczuk.net.pl/2012/02/10/wzorzec-projektowy-strategia/</link>
		<comments>http://adamczuk.net.pl/2012/02/10/wzorzec-projektowy-strategia/#comments</comments>
		<pubDate>Fri, 10 Feb 2012 21:19:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Wzorce projektowe]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[pattern]]></category>
		<category><![CDATA[strategy]]></category>

		<guid isPermaLink="false">http://adamczuk.net.pl/?p=578</guid>
		<description><![CDATA[Definicja i opis działania wzorca projektowego Strategia]]></description>
			<content:encoded><![CDATA[<p>Programowanie obiektowe w dużej mierze opiera się na wzorcach projektowych. Często nie zdajemy sobie nawet sprawy, że dany sposób postępowania czy rozwiązanie problemu nosi nazwę takiego wzorca projektowego.<span id="more-578"></span></p>
<p><strong>Strategia</strong> to czynnościowy wzorzec projektowy, który hermetyzuje algorytmy z danej rodziny w postaci klas. Jeśli taka definicja brzmi skomplikowanie to diagram UML wyjaśnie wszelkie wątpliwości.</p>
<p><a href="http://adamczuk.net.pl/wp-content/uploads/2012/02/strategy-design-pattern-pl.png"><img src="http://adamczuk.net.pl/wp-content/uploads/2012/02/strategy-design-pattern-pl.png" alt="Diagram UML wzorca projektowego strategia" title="strategy-design-pattern-pl" width="650" height="536" class="alignnone size-full wp-image-579" /></a></p>
<p>Często okazuje się, że dziedziczenie jest niewystarczającym sposobem tworzenia oprogramowania. Wtedy z pomocy przychodzi inne techniki projektowania aplikacji.</p>
<p>Strategia definiuje wspólny interfejs dla każdego obsługiwanego algorytmu. Wymusza to na nas stworzenie implementacji obsługiwanych funckji w klasach dostarczających konkretne algorytmy. Klasa, która korzysta z tych algorytmów, ustawia referencję do aktualnie używanej strategii poprzez motodę <code>ustawStrategie()</code>. Jeśli klient zmienia algorytm danej strategii, wiąże się to z ustwieniem nowej strategii dla klienta. Analogicznie tworzenie następnych algorytmów nie wymaga ingerencji w klasy klienta, ani interfejsu, a jedynie stworznia nowej strategii implementującej znany interfejs.</p>
<p>Wzorzec strategii opiera swoje działanie na kompozycji i delegacji, a nie dziedziczeniu. Dzięki temu unikamy mało elastycznych instrukcji warunkowych w klasie klienta, który wybiera dany algorytm. Poszczególne strategie mogą być zmieniane w trakcie działania programu, co daje korzyści w postaci różnego zużycia zasobów lub złożoności obliczeniowej. Takie rozwiązanie ma też swoje wady w postaci narzutu komunikacji między klientem i strategią, a także większą liczę utworzonych obiektów. Jednak moim zdaniem to mały koszt w stosunku do przytoczonych zalet.</p>
<p>Przykładowe wykorzytanie tego wzorca w PHP opiszę szerzej w artykule dotyczącym wsparcia generowania tabel XHTML.</p>
]]></content:encoded>
			<wfw:commentRss>http://adamczuk.net.pl/2012/02/10/wzorzec-projektowy-strategia/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Stackoverflow &#8211; sukces pytania i odpowiedzi</title>
		<link>http://adamczuk.net.pl/2012/02/05/stackoverflow-sukces-pytania-i-odpowiedzi/</link>
		<comments>http://adamczuk.net.pl/2012/02/05/stackoverflow-sukces-pytania-i-odpowiedzi/#comments</comments>
		<pubDate>Sun, 05 Feb 2012 21:15:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Serwisy]]></category>
		<category><![CDATA[answer]]></category>
		<category><![CDATA[quaetion]]></category>
		<category><![CDATA[stackoverflow]]></category>
		<category><![CDATA[website]]></category>

		<guid isPermaLink="false">http://adamczuk.net.pl/?p=571</guid>
		<description><![CDATA[Przemyślenia dotyczące stackoverflow, prostego i genialnego serwisu pytań i odpowiedzi]]></description>
			<content:encoded><![CDATA[<p><a href="http://adamczuk.net.pl/wp-content/uploads/2012/02/stackoverflow.png"><img src="http://adamczuk.net.pl/wp-content/uploads/2012/02/stackoverflow.png" alt="stackoverflow logo" title="stackoverflow" width="300" height="100" class="align left size-full wp-image-572" /></a>Od kilku lat obserwuje rozwój branży IT i kierunki w jakich zmierza programowanie. Nowe języki, frameworki, moda na szybkie dostarczenie działającej aplikacji. Gdzie, w tym wszystkim jest tradycyjny programista, znający dobrze techniki tworzenia oprogramowania, będący ekspertem w swojej dziedzinie. Powoli brakuje dla nich miejsca, a rynek oczekuje wszechstronnych specjalistów od wszystkiego.<span id="more-571"></span></p>
<p>Istnieje w sieci mnóstwo serwisów typu <strong>Question &#038; Answer</strong>, z czego pierwszym był prawdopodobnie <a href="http://answers.yahoo.com/">Answers Yahoo</a>. Jednak to zupełnie inna bajka, bardziej ogólna i skierowana do masowego odbiorcy. Kiedy szukam informacji na temat konkretnej biblioteki, danej funkcji czy składni określonego języka używam wyszukiwarki, a wśród pierwszych kilku wyników wyszukiwania, prawie zawsze pojawia się adres do odpowiedzi na <a href="http://stackoverflow.com/">Stackoverflow</a>.</p>
<p>Znalazłem tam mnóstwo odpowiedzi na różne pytania, a mimo to sam nie zadałem ani jednego. Możliwość szukania nie wymaga rejestracji i logowania od użytkowników. System weryfikacji i oceniania odpowiedzi, promuje najlepsze wpisy, aby <strong>pytający</strong> uzykał najlepszą <strong>odpowiedź</strong>. Dodatkowo system tagów wspomaga kategoryzowanie tematów, aby wszystkim było łatwiej. </p>
<p>Niestety, szukanie polskich źródeł, dokumencji i dokładnych opisów, dotyczących programowania jest utrudnione, gdyż takie materiały mają zawsze charakter lokalny. Dlatego, jeśli szukam informacji w sieci, to praktycznie tylko po angielsku. Dzięki temu mam większe szanse, że znajdę to czego szukam. Jeśli jednak, szukasz czegoś na temat programowania w języku polskim to, prawdopodobnie pomocne okażą się <a href="http://devpytania.pl/">devpytania</a>. Udany odpowiednik opisywanego pierwowzoru, który ciągle się rozwija i zdobywa nowych zwolenników.</p>
]]></content:encoded>
			<wfw:commentRss>http://adamczuk.net.pl/2012/02/05/stackoverflow-sukces-pytania-i-odpowiedzi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Najbliższe plany, czyli konkretne wpisy</title>
		<link>http://adamczuk.net.pl/2012/02/03/najblizsze-plany-czyli-konkretne-wpisy/</link>
		<comments>http://adamczuk.net.pl/2012/02/03/najblizsze-plany-czyli-konkretne-wpisy/#comments</comments>
		<pubDate>Fri, 03 Feb 2012 21:58:22 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Przemyślenia]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[plans]]></category>
		<category><![CDATA[projects]]></category>

		<guid isPermaLink="false">http://adamczuk.net.pl/?p=568</guid>
		<description><![CDATA[Dalsze plany i wyzwania.]]></description>
			<content:encoded><![CDATA[<p>Ostanio napisałem o moich planach w 2012 roku. Co dokładnie zrobię to kwestia zaangażowania, ciepliwości i czasu, ale o samego początku systematyczności. Dlatego w ciągu najliższych tygodni i miesięcy na blogu pojawi się więcej wpisów o naprawdę zróżnicowanej tematyce.<span id="more-568"></span></p>
<p>Na początku roku moja domowa biblioteka wzbogaciła się o kilka książek, które z pewnością zrecenzuję. W najbliższym czasie dowiecie się dlatego warto kupić <a href="http://helion.pl/ksiazki/the-smashing-book-2-edycja-polska-matt-ward-alexander-charchar-francisco-inschauste-mike-rundle-janko-jovanovic-christian-heilmann-vivien-anaylan-christoph-kolb-susan-weinschenk-steven-bradley,smash2.htm">Smashing Book #2</a>, bo zdecydowanie warto. Ostanio czytam wiele na temat wzorców projektowych i kwestii projektowania aplikacji. Będzie do dobry czas do dyskusji na temat dziedziczania i architektury systemów klasy enterprise.</p>
<p>Git oraz <a href="http://github.com">GitHub</a>, tak mi się spodobaby, że zamięszcze tam kolejne pomysły i narzędzia, nad którymi pracowałem lub pracuję. W końcu pojawi się kilka wpisów na temat programowania, zarówno Python czy Django, ale także Xhtml i CSS. Tak czy inaczej sporo wyzwań i planów. Byle do przodu.</p>
]]></content:encoded>
			<wfw:commentRss>http://adamczuk.net.pl/2012/02/03/najblizsze-plany-czyli-konkretne-wpisy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Podsumowanie, choć w zasadzie postanowienia</title>
		<link>http://adamczuk.net.pl/2012/01/28/podsumowanie-choc-w-zasadzie-postanowienia/</link>
		<comments>http://adamczuk.net.pl/2012/01/28/podsumowanie-choc-w-zasadzie-postanowienia/#comments</comments>
		<pubDate>Sat, 28 Jan 2012 10:35:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Przemyślenia]]></category>
		<category><![CDATA[2012]]></category>
		<category><![CDATA[life]]></category>

		<guid isPermaLink="false">http://adamczuk.net.pl/?p=562</guid>
		<description><![CDATA[Moje postanowienia na nowy rok, ambitne i realne]]></description>
			<content:encoded><![CDATA[<p>Kolejny rok za nami, zatem wiele osón zbiera się na opisywanie swoich dokonań i osiągnięć. Nie będę rozpisywał się na temat tego, co uczyniłem, bo generalnie nie było wcale tak wiele, a już nie tyle co planowałem w poprzednim roku. Każdy patrzy na swoje życie z własnej perspektywy. Ważne, abyśmy podczas tych obserwacji nie stracili naszych głównych celów z oczy.<span id="more-562"></span></p>
<p>Zobaczymy za rok, co poniższej listy zostanie zrealizowane. Oto moje postanowiena na trwający już 2012 rok.</p>
<p>TOP 10</p>
<ol>
<li>Python, nauka i rozwój</li>
<li>SPINNING STAR 2</li>
<li>Moja własna książka o XHTML i CSS3</li>
<li>Więcej deski niż rok wcześniej</li>
<li>Co najmniej 1 wpis tygodniowo na blogu</li>
<li>Chorwacja w wakacje</li>
<li>Nowe portfolio</li>
<li>Więcej czasu dla bliskich i znajomych</li>
<li>Przybranie 5 kilogramów</li>
<li>Kredyt hipoteczny</li>
</ol>
<p>Plany bardzo ambitne i jak najbardziej realne. Wykonanie przynajmniej pięciu z mojej listy, oznacza dobry rok, ośmiu &#8211; bardzo dobry, a wszystkie &#8211; REWELACYJNY!</p>
]]></content:encoded>
			<wfw:commentRss>http://adamczuk.net.pl/2012/01/28/podsumowanie-choc-w-zasadzie-postanowienia/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

