<?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>Tomasz Marszał Blog &#187; usability</title>
	<atom:link href="http://bymarszal.pl/blog/tag/usability/feed/" rel="self" type="application/rss+xml" />
	<link>http://bymarszal.pl/blog</link>
	<description>WebDevelopment. Informatyka. Ciekawe projekty.</description>
	<lastBuildDate>Fri, 16 Sep 2011 19:25:19 +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>The Yellow Fade Technique</title>
		<link>http://bymarszal.pl/blog/2011/02/27/the-yellow-fade-technique/</link>
		<comments>http://bymarszal.pl/blog/2011/02/27/the-yellow-fade-technique/#comments</comments>
		<pubDate>Sun, 27 Feb 2011 21:33:04 +0000</pubDate>
		<dc:creator>Tomek</dc:creator>
				<category><![CDATA[informatyka]]></category>
		<category><![CDATA[37signals]]></category>
		<category><![CDATA[myśli]]></category>
		<category><![CDATA[usability]]></category>

		<guid isPermaLink="false">http://bymarszal.pl/blog/?p=1086</guid>
		<description><![CDATA[Web Interface Design Tip: The Yellow Fade Technique “Because something is happening here / But you don’t know what it is / Do you, Mister Jones?” - Bob Dylan A lot of web sites &#38; applications make you feel a bit like Mr. Jones. That’s why we’ve pioneered the Yellow Fade Technique (YFT) in Basecamp. [...]]]></description>
			<content:encoded><![CDATA[<h2><a href="http://37signals.com/svn/archives/000558.php">Web Interface Design Tip: The Yellow Fade Technique</a></h2>
<blockquote>
<p>“Because something is happening here / But you don’t know what it is / Do you, Mister Jones?” -	<a href="http://www.bobdylan.com/songs/thinman.html">Bob Dylan</a></p>
<p>A lot of web sites &amp; applications make you feel a bit like Mr. Jones.</p>
<p>That’s why we’ve pioneered the Yellow Fade Technique (YFT) in <a class="external" href="http://www.basecampHQ.com">Basecamp</a>. It’s a nifty way to subtly spotlight a recently changed area on a page.</p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://bymarszal.pl/blog/2011/02/27/the-yellow-fade-technique/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Interface First &amp; Three State Solution</title>
		<link>http://bymarszal.pl/blog/2011/02/27/interface-first/</link>
		<comments>http://bymarszal.pl/blog/2011/02/27/interface-first/#comments</comments>
		<pubDate>Sun, 27 Feb 2011 09:21:37 +0000</pubDate>
		<dc:creator>Tomek</dc:creator>
				<category><![CDATA[informatyka]]></category>
		<category><![CDATA[37signals]]></category>
		<category><![CDATA[myśli]]></category>
		<category><![CDATA[usability]]></category>

		<guid isPermaLink="false">http://bymarszal.pl/blog/?p=1070</guid>
		<description><![CDATA[Jak widać, ostatnio jestem pod dużym wpływem 37signals :) Interface First Design the interface before you start programming Too many apps start with a program-first mentality. That&#8217;s a bad idea. Programming is the heaviest component of building an app, meaning it&#8217;s the most expensive and hardest to change. Instead, start by designing first. Three State [...]]]></description>
			<content:encoded><![CDATA[<p><em>Jak widać, ostatnio jestem pod dużym wpływem 37signals :)</em></p>
<h2><a href="http://gettingreal.37signals.com/ch09_Interface_First.php">Interface First</a></h2>
<blockquote><h3>Design the interface before you start programming</h3>
<p>Too many apps start with a program-first mentality. That&#8217;s a bad idea. Programming is the heaviest component of building an app, meaning it&#8217;s the most expensive and hardest to change. Instead, start by designing first.</p></blockquote>
<h2><a href="http://gettingreal.37signals.com/ch09_Three_State_Solution.php">Three State Solution</a></h2>
<blockquote><p>For each screen, you need to consider three possible states:</p>
<ul>
<li><strong>Regular</strong><br />(&hellip;)</li>
<li><strong>Blank</strong><br />(&hellip;)</li>
<li><strong>Error</strong><br />(&hellip;)</li>
</ul>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://bymarszal.pl/blog/2011/02/27/interface-first/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cool storage designs</title>
		<link>http://bymarszal.pl/blog/2010/12/18/cool-storage-designs/</link>
		<comments>http://bymarszal.pl/blog/2010/12/18/cool-storage-designs/#comments</comments>
		<pubDate>Sat, 18 Dec 2010 13:57:57 +0000</pubDate>
		<dc:creator>Tomek</dc:creator>
				<category><![CDATA[inne]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[linki]]></category>
		<category><![CDATA[usability]]></category>

		<guid isPermaLink="false">http://bymarszal.pl/blog/?p=1009</guid>
		<description><![CDATA[Nowoczesny magazyn Cool storage designs, part 1: EasiFile for large docs, blueprints, photos Cool storage designs, part 2: Vertical carousels for office and commercial environments Cool storage designs, part 3: Trio of vertical carousels for super-industrial, automated storage Cool storage designs, part 4: StorageMotion&#8217;s in-home systems for clothes, shoes, food, and more]]></description>
			<content:encoded><![CDATA[<h2><a href="http://plutecki.net/2010/11/nowoczesny-magazyn/">Nowoczesny magazyn</a></h2>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="640" height="390" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://www.youtube.com/v/6zXOW6v0c8s&amp;hl=pl_PL&amp;feature=player_embedded&amp;version=3" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="640" height="390" src="http://www.youtube.com/v/6zXOW6v0c8s&amp;hl=pl_PL&amp;feature=player_embedded&amp;version=3" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<h2><a href="http://www.core77.com/blog/object_culture/cool_storage_designs_part_1_easifile_for_large_docs_blueprints_photos_17988.asp">Cool storage designs, part 1: EasiFile for large docs, blueprints, photos</a></h2>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="640" height="390" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://www.youtube.com/v/R2en_-lAkqI&amp;hl=en_US&amp;feature=player_embedded&amp;version=3" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="640" height="390" src="http://www.youtube.com/v/R2en_-lAkqI&amp;hl=en_US&amp;feature=player_embedded&amp;version=3" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<h2><a href="http://www.core77.com/blog/object_culture/cool_storage_designs_part_2_vertical_carousels_for_office_and_commercial_environments_17989.asp">Cool storage designs, part 2: Vertical carousels for office and commercial environments</a></h2>
<p><a href="http://bymarszal.pl/blog/wp-content/uploads/2010/12/0kardex.jpg"><img src="http://bymarszal.pl/blog/wp-content/uploads/2010/12/0kardex.jpg" alt="" title="0kardex" width="468" height="266" class="aligncenter size-full wp-image-1044" /></a></p>
<h2><a href="http://www.core77.com/blog/object_culture/cool_storage_designs_part_3_trio_of_vertical_carousels_for_super-industrial_automated_storage_17990.asp">Cool storage designs, part 3: Trio of vertical carousels for super-industrial, automated storage</a></h2>
<p><object width="640" height="390"><param name="movie" value="http://www.youtube.com/v/aXIZNNbO66E&#038;hl=en_US&#038;feature=player_embedded&#038;version=3"></param><param name="allowFullScreen" value="true"></param><param name="allowScriptAccess" value="always"></param><embed src="http://www.youtube.com/v/aXIZNNbO66E&#038;hl=en_US&#038;feature=player_embedded&#038;version=3" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="390"></embed></object></p>
<h2><a href="http://www.core77.com/blog/object_culture/cool_storage_designs_part_4_storagemotions_in-home_systems_for_clothes_shoes_food_and_more_17991.asp">Cool storage designs, part 4: StorageMotion&#8217;s in-home systems for clothes, shoes, food, and more</a></h2>
<p><object width="640" height="390"><param name="movie" value="http://www.youtube.com/v/IyBSJLl4P-g&#038;hl=en_US&#038;feature=player_embedded&#038;version=3"></param><param name="allowFullScreen" value="true"></param><param name="allowScriptAccess" value="always"></param><embed src="http://www.youtube.com/v/IyBSJLl4P-g&#038;hl=en_US&#038;feature=player_embedded&#038;version=3" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="390"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://bymarszal.pl/blog/2010/12/18/cool-storage-designs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Asthmapolis</title>
		<link>http://bymarszal.pl/blog/2010/10/22/asthmapolis/</link>
		<comments>http://bymarszal.pl/blog/2010/10/22/asthmapolis/#comments</comments>
		<pubDate>Fri, 22 Oct 2010 11:38:00 +0000</pubDate>
		<dc:creator>Tomek</dc:creator>
				<category><![CDATA[informatyka]]></category>
		<category><![CDATA[informatyka w medycynie]]></category>
		<category><![CDATA[usability]]></category>

		<guid isPermaLink="false">http://bymarszal.pl/blog/?p=842</guid>
		<description><![CDATA[<a href="http://bymarszal.pl/blog/?attachment_id=845" rel="attachment wp-att-845"><img src="http://bymarszal.pl/blog/wp-content/uploads/2010/10/spiroscout2-155x300.gif" alt="" title="spiroscout2" width="155" height="300" class="alignleft size-medium wp-image-845" /></a>Asthmapolis to usługa dla osób chorujących na astmę (jak można się domyślić z nazwy). Istotą usługi jest małe urządzenie, które dołącza się do inhalatora z lekiem. Podczas aplikacji leku, urządzenie za pomocą wbudowanego odbiornika GPS i zegarka, zapamiętuje miejsce i czas ataku astmy. Po podłączeniu do komputera, dane wysyłane są na serwer, a za pomocą przygotowanej strony internetowej, można śledzić, gdzie występowały ataki astmy i w jakich godzinach.]]></description>
			<content:encoded><![CDATA[<p><a href="http://bymarszal.pl/blog/wp-content/uploads/2010/10/spiroscout2.gif"><img src="http://bymarszal.pl/blog/wp-content/uploads/2010/10/spiroscout2-155x300.gif" alt="" title="spiroscout2" width="155" height="300" class="alignleft size-medium wp-image-845" /></a>Asthmapolis to usługa dla osób chorujących na astmę (jak można się domyślić z nazwy). Istotą usługi jest małe urządzenie, które dołącza się do inhalatora z lekiem. Podczas aplikacji leku, urządzenie za pomocą wbudowanego odbiornika GPS i zegarka, zapamiętuje miejsce i czas ataku astmy. Po podłączeniu do komputera, dane wysyłane są na serwer, a za pomocą przygotowanej strony internetowej, można śledzić, gdzie występowały ataki astmy i w jakich godzinach.</p>
<p><a href="http://bymarszal.pl/blog/wp-content/uploads/2010/10/howitworksfull.gif"><img src="http://bymarszal.pl/blog/wp-content/uploads/2010/10/howitworksfull.gif" alt="" title="howitworksfull" width="640" height="480" class="aligncenter size-full wp-image-846" style="clear:both;" /></a></p>
<p>Myślę, że może to być przydatna rzecz dla chorych na astmę dla identyfikacji i unikania czynników nasilających chorobę. Po zebraniu większej ilości danych może to być też źródło danych do naukowej analizy przyczyn ataków na szerszą skalę niż dla pojedynczej osoby.</p>
<h2>Źródła</h2>
<p><a href="http://www.ted.com/talks/gary_wolf_the_quantified_self.html">TED Talks</a><br />
<a href="http://asthmapolis.com/how-it-works/">Asthmapolis</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bymarszal.pl/blog/2010/10/22/asthmapolis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Esencja golfa</title>
		<link>http://bymarszal.pl/blog/2010/10/20/esencja-golfa/</link>
		<comments>http://bymarszal.pl/blog/2010/10/20/esencja-golfa/#comments</comments>
		<pubDate>Wed, 20 Oct 2010 11:10:05 +0000</pubDate>
		<dc:creator>Tomek</dc:creator>
				<category><![CDATA[inne]]></category>
		<category><![CDATA[usability]]></category>

		<guid isPermaLink="false">http://bymarszal.pl/blog/?p=808</guid>
		<description><![CDATA[Natrafiłem ostatnio na historię, będącą ciekawym aspektem problemu przystosowania współczesnego świata do potrzeb osób niepełnosprawnych. Sprawa Jest to historia sprawy wytoczonej przez Casey&#8217;a Martina organizacji Professional Golfers&#8217; Association, która organizuje profesjonalne turnieje golfowe. Casey cierpi na schorzenie żył, które uniemożliwia mu chodzenie (w tym chodzenie po polu golfowym między dołkami), jednak nie przeszkadza mu to [...]]]></description>
			<content:encoded><![CDATA[<p>Natrafiłem ostatnio na historię, będącą ciekawym aspektem problemu przystosowania współczesnego świata do potrzeb osób niepełnosprawnych.</p>
<h2>Sprawa</h2>
<p>Jest to historia sprawy wytoczonej przez Casey&#8217;a Martina organizacji Professional Golfers&#8217; Association, która organizuje profesjonalne turnieje golfowe. Casey cierpi na schorzenie żył, które uniemożliwia mu chodzenie (w tym chodzenie po polu golfowym między dołkami), jednak nie przeszkadza mu to w samej grze i chciał uczestniczyć w profesjonalnych turniejach, przemieszczając się między dołkami za pomocą wózka golfowego. PGA odmówiła twierdząc, że naruszyłoby to uczciwość konkurencji.</p>
<p>Golfista powoływał się na amerykańską ustawę pozwalającą na wprowadzenie w życiu publicznym rozsądnych modyfikacji pomagających osobom niepełnosprawnym, pod warunkiem, że modyfikacje te nie wprowadzają zmian w istocie wykonywanej czynności. PGA argumentowała, opierając się na zamówionych ekspertyzach, że istotną częścią golfa jest chodzenie między dołkami. Następnie oparła się na tym, że ustawa odnosi się jedynie do klientów, a uczestnicy turnieju nie są klientami. Ostatnim elementem obrony było twierdzenie, że chodzenie po polu golfowym wprowadza do gry element zmęczenia, a pozbawienie tego elementu Casey&#8217;a byłoby równoznaczne z daniem mu nieuczciwej przewagi nad innymi konkurentami.</p>
<p>Argumenty te zostały po kolei obalone najpierw poprzez uzasadnienie, że golfiści wnoszą opłaty startowe przed turniejem, a więc są klientami, następnie poprzez opinie biegłych, stwierdzające, że zmęczenie podczas spacerów po polu golfowym jest bez znaczenia dla przebiegu gry. Dodatkowym argumentem było to, że na turniejach niższego poziomu dopuszczalne jest użycie wózka, a i tak większość graczy z niego nie korzysta, co robiliby, gdyby mogło to dać im przewagę nad konkurencją.</p>
<p>Sprawa zakończyła się wygraną Casey&#8217;a i pozwoleniem mu na starty w profesjonalnych zawodach z użyciem wózka golfowego.</p>
<h2>Ciekawostki</h2>
<p>Przy okazji czytania o tej sprawie, natrafiłem na ciekawe urządzenie dla ludzi z niedowładem nóg, chcących grać w golfa (ciekawe, czy i to zostanie kiedyś dopuszczone na profesjonalnych turniejach golfowych). <a href="http://paragolfer.eu/1.html">Paragolfer</a> pozwala osobom niepełnosprawnym na normalną grę w golfa &#8211; <a href="http://golf.pasje.net/2010/golf-sport-dla-ludzi-niepelnosprawnych.html">http://golf.pasje.net/2010/golf-sport-dla-ludzi-niepelnosprawnych.html</a>.</p>
<h2>Źródła</h2>
<p>Pierwotna inspiracja dla posta: zapomniałem ;)<br />
<a href="http://library.findlaw.com/1998/Apr/1/129434.html">http://library.findlaw.com/1998/Apr/1/129434.html</a><br />
<a href="http://www.allbusiness.com/legal/litigation/1111501-1.html">http://www.allbusiness.com/legal/litigation/1111501-1.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bymarszal.pl/blog/2010/10/20/esencja-golfa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linki na stronach</title>
		<link>http://bymarszal.pl/blog/2010/04/02/linki-na-stronach/</link>
		<comments>http://bymarszal.pl/blog/2010/04/02/linki-na-stronach/#comments</comments>
		<pubDate>Fri, 02 Apr 2010 19:21:30 +0000</pubDate>
		<dc:creator>Tomek</dc:creator>
				<category><![CDATA[informatyka]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[usability]]></category>

		<guid isPermaLink="false">http://bymarszal.pl/blog/?p=518</guid>
		<description><![CDATA[<a href="http://bymarszal.pl/blog/2010/04/02/linki-na-stronach/"><img src="http://bymarszal.pl/blog/wp-content/uploads/2010/04/link.png" alt="" title="link" width="165" height="59" class="alignleft size-full wp-image-581" /></a>Co zrobić, aby linki na stronach były widoczne i, przede wszystkim, pomocne dla użytkownika.

Już na samym początku można wyróżnić dwa rodzaje linków: wewnętrzne i zewnętrzne. Wewnętrzne to najczęściej nagłówek, menu, stopka, czyli elementy najczęściej identyczne na wszystkich podstronach, do których użytkownik może w każdej chwili się odwołać. Linki zewnętrzne to z kolei te, prowadzące użytkownika poza stronę, na której się znajduje. Najczęściej występują one w zasadniczej treści strony.]]></description>
			<content:encoded><![CDATA[<p><a href="http://bymarszal.pl/blog/wp-content/uploads/2010/04/link.png"><img src="http://bymarszal.pl/blog/wp-content/uploads/2010/04/link.png" alt="" title="link" width="165" height="59" class="alignleft size-full wp-image-581" /></a>Co zrobić, aby linki na stronach były widoczne i, przede wszystkim, pomocne dla użytkownika.</p>
<p>Już na samym początku można wyróżnić dwa rodzaje linków: wewnętrzne i zewnętrzne. Wewnętrzne to najczęściej nagłówek, menu, stopka, czyli elementy najczęściej identyczne na wszystkich podstronach, do których użytkownik może w każdej chwili się odwołać. Linki zewnętrzne to z kolei te, prowadzące użytkownika poza stronę, na której się znajduje. Najczęściej występują one w zasadniczej treści strony.</p>
<h2>Wygląd linków</h2>
<p>Ważne jest, aby linki różniły się od otaczającego je tekstu. Użytkownik powinien wiedzieć, że w tym miejscu znajduje się link i może w niego kliknąć. Powszechnie przyjętą metodą oznaczania linków jest używanie podkreślonego tekstu. W rzadkich przypadkach używa się linków pisanych pogrubioną czcionką.</p>
<p>Często stosowane są pseudoklasy CSS, aby oznaczyć linki znajdujące się w trakcie interakcji z użytkownikiem. Odpowiednio można oznaczyć linki po najechaniu na nie kursorem (:hover), kliknięciu (:active) i odwiedzione już wcześniej (:visited). Najczęściej przyjmowanymi zmianami wyglądu linka w odpowiedzi na którąś z akcji jest zmiana koloru czcionki i ewentualnie usunięcie podkreślenia (w pseudoklasach :hover lub :active).</p>
<h2>Co się stanie?</h2>
<p>Ważną rzeczą jest poinformowanie użytkownika o tym, co stanie się po kliknięciu przez niego w dany link. Oczywiście, nie chodzi o dodanie do każdego linka opisu &#8220;jeśli tu klikniesz, zostaniesz przeniesiony na stronę&#8230;&#8221;, ale o odpowiednie opisanie treści, do której dany link prowadzi. Często stosowaną praktyką jest umieszczenie na stronie odnośnika w taki sposób:</p>
<blockquote><p>Kliknij <a href="http://www.lolcats.com/">tutaj</a>, aby przejść na stronę z kotkami.
</p></blockquote>
<p>Przez co użytkownik chcący szybko znaleźć informację, gdzie prowadzi dany link, musi przeczytać całe zdanie. Dużo lepszym sposobem jest zrobienie tego w ten sposób:</p>
<blockquote><p><a href="http://www.lolcats.com/">Strona z kotkami</a></p></blockquote>
<p>Użytkownik od razu wie, co go czeka :)</p>
<h2>Tytuły</h2>
<p>W wielu dokumentach dotyczących użyteczności w sieci, jest mowa o używaniu atrybutu title do opisywania linków na stronie. Moim zdaniem jest to przydatne, jeżeli treść linku, z powodu kontekstu w jakim jest umieszczona, nie może powiedzieć użytkownikowi zbyt wiele o samej stronie za odnośnikiem. Na przykład, kiedy powołujemy się w tekście na jakieś źródło:</p>
<blockquote><p><a title="Wielbłąd a sprawa polska" href="http://www.zrodla.pl">Źródła</a> mówią, że udział zwierząt parzystokopytnych w tej sprawie jest marginalny.</p></blockquote>
<p>Ważną rzeczą jest to, że podany w atrybucie title tekst pojawia się użytkownikowi po najechaniu kursorem na link, a także jest odczytywany przez przeglądarki głosowe, używane przez użytkowników niewidomych.</p>
<p>Jednak użycie tego atrybutu nie zawsze jest korzystne. Kiedy na przykład treść odnośnika mówi nam wszystko i nie mamy pomysłu dodania żadnego nowego opisu, nie ma sensu powielać treści tylko po to, aby mieć atrybut title.</p>
<h2>Ikony</h2>
<p><a href="http://bymarszal.pl/blog/wp-content/uploads/2010/04/external_link.png"><img class="alignleft size-full wp-image-568" title="external_link" src="http://bymarszal.pl/blog/wp-content/uploads/2010/04/external_link.png" alt="" width="131" height="39" /></a>Kolejną rzeczą ułatwiającą użytkownikowi zrozumienie linku są ikony. Na przykład widoczne na screenie po lewej stronie, informują w systemie DokuWiki o linku zewnętrznym. Można ich również użyć do oznaczenia linków prowadzących do określonych typów plików np. zip, odt, doc, pdf. Stworzenie takich linków jest bardzo proste przy użyciu CSS3 &#8211; na przykład dla dokumentów pdf:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">a<span class="br0">&#91;</span>href$=<span class="st0">&quot;.pdf&quot;</span><span class="br0">&#93;</span> <span class="br0">&#123;</span> <span class="kw1">background</span>: <span class="kw2">url</span><span class="br0">&#40;</span><span class="re4">pdf<span class="re1">.png</span></span><span class="br0">&#41;</span> <span class="kw2">no-repeat</span> <span class="kw1">left</span> <span class="kw2">center</span>; <span class="kw1">padding-left</span>: <span class="re3">20px</span>; <span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>Nawiasy kwadratowe [] oznaczają, że wewnątrz nich znajduje się warunek odnoszący się do atrybutów danego tagu, $= oznacza, że wartość danego atrybutu ma się kończyć podanym po nim ciągiem znaków.</p>
<p>Z kolei linki zewnętrzne możemy oznaczyć w taki sposób:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">a<span class="br0">&#91;</span>href^=<span class="st0">&quot;http://&quot;</span><span class="br0">&#93;</span> <span class="br0">&#123;</span> <span class="kw1">background</span>: <span class="kw2">url</span><span class="br0">&#40;</span><span class="re4">external<span class="re1">.png</span></span><span class="br0">&#41;</span> <span class="kw2">no-repeat</span> <span class="kw1">left</span> <span class="kw2">center</span>; <span class="kw1">padding-left</span>: <span class="re3">20px</span>; <span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>Tutaj ^= działa podobnie, jak $= w poprzednim przykładzie i oznacza, że wartość atrybutu ma się zaczynać podanym ciągiem znaków.</p>
<h2>Otwieranie linków zewnętrznych</h2>
<p>Istnieją tutaj dwie szkoły. Pierwsza z nich, nakierowana na użytkowników mniej biegłych w obsłudze komputera, mówi że linki zewnętrzne powinny być otwierane w nowym oknie (atrybut target=&#8221;blank&#8221;), tak aby użytkownik nie był zaskoczony trafiając nagle na zupełnie inną stronę niż był przed chwilą. Druga szkoła opowiada się za otwieraniem wszystkich linków w ten sam sposób, ponieważ otwieranie ich domyślnie w nowym oknie blokuje możliwość otwarcia ich w tym samym oknie, co zawęża użytkownikowi możliwość wyboru.</p>
<p>Wybór pomiędzy jedną z dwóch szkół zależy tutaj od tego, czego oczekują nasi użytkownicy. Powinniśmy przeanalizować ich sposób korzystania z komputera (chociażby przewidywany) i dostosować do niego zachowanie strony.</p>
<h2>Linki wewnętrzne</h2>
<p>Jeśli znajdują się one wewnątrz treści strony, tak jak większość linków zewnętrznych, to stosują się do nich te same zasady. Szczególnym rodzajem linków wewnętrznych, który wyłamuje się większości reguł, są linki znajdujące się w nagłówku, menu i stopce strony. Ich wygląd jest ściśle uzależniony od grafiki strony. Bardzo często same w sobie są one specjalnie zaprojektowanymi elementami graficznymi strony. Z tego powodu nie jest przy nich konieczne podkreślenie, ani inne elementy wyróżniające je spośród tekstu strony. Regułą, od której nie ma wyjątków, jest aby użytkownik wiedział, że są to linki i że może z nich skorzystać (inaczej stają się tylko tłem, bez wpływu na interakcję użytkownika ze stroną).</p>
<p>Często spotykaną w menu wersją pośrednią pomiędzy w pełni rysowanymi linkami, a linkami tekstowymi, są linki tekstowe z ikonami opisującymi w sposób symboliczny, gdzie one prowadzą. Może być to na przykład dom przy linku do strony głównej lub ikona telefonu przy linku do strony z informacjami kontaktowymi.</p>
<p>Przykłady takich rozwiązań:<br />
<a href="http://bymarszal.pl/blog/wp-content/uploads/2010/04/menu1.png"><img class="aligncenter size-full wp-image-573" title="menu1" src="http://bymarszal.pl/blog/wp-content/uploads/2010/04/menu1.png" alt="" width="393" height="42" /></a><br />
<a href="http://bymarszal.pl/blog/wp-content/uploads/2010/04/menu2.png"><img class="aligncenter size-full wp-image-574" title="menu2" src="http://bymarszal.pl/blog/wp-content/uploads/2010/04/menu2.png" alt="" width="476" height="65" /></a><br />
<a href="http://bymarszal.pl/blog/wp-content/uploads/2010/04/menu4.png"><img class="aligncenter size-full wp-image-576" title="menu4" src="http://bymarszal.pl/blog/wp-content/uploads/2010/04/menu4.png" alt="" width="544" height="201" /></a></p>
<h2>O czym warto pamiętać</h2>
<p>Przede wszystkim linki na stronie, nieważne czy mówimy o linkach wewnętrznych czy zewnętrznych, powinny być dla użytkowników pomocą w nawigacji. Użytkownik nie powinien zastanawiać się, co robi dany link, powinien wiedzieć to już po pierwszym rzucie oka.</p>
]]></content:encoded>
			<wfw:commentRss>http://bymarszal.pl/blog/2010/04/02/linki-na-stronach/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Case study z blogu WebAudit</title>
		<link>http://bymarszal.pl/blog/2009/12/19/case-study-ze-blogu-webaudit/</link>
		<comments>http://bymarszal.pl/blog/2009/12/19/case-study-ze-blogu-webaudit/#comments</comments>
		<pubDate>Sat, 19 Dec 2009 21:57:11 +0000</pubDate>
		<dc:creator>Tomek</dc:creator>
				<category><![CDATA[informatyka]]></category>
		<category><![CDATA[case study]]></category>
		<category><![CDATA[nauka]]></category>
		<category><![CDATA[usability]]></category>

		<guid isPermaLink="false">http://bymarszal.pl/blog/?p=427</guid>
		<description><![CDATA[W ramach mojej najnowszej teorii, że pewnych zagadnień najlepiej uczy się na przykładach, znalazłem ciekawy <a href="http://www.webaudit.pl/blog/2009/usabilla-w-praktyce-nokaut-pl/">przykład użycia serwisu Usabilla</a>. Poniżej pokaz slajdów umieszczony w tym poście.

<a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/3camp/nie-dotykaj-usera" title="Nie dotykaj usera">Nie dotykaj usera</a><object style="margin:0px" width="652" height="545"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=niedotykajuseraa-091130042604-phpapp02&#038;stripped_title=nie-dotykaj-usera" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=niedotykajuseraa-091130042604-phpapp02&#038;stripped_title=nie-dotykaj-usera" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="652" height="545"></embed></object>]]></description>
			<content:encoded><![CDATA[<p>W ramach mojej najnowszej teorii, że pewnych zagadnień najlepiej uczy się na przykładach, znalazłem ciekawy <a href="http://www.webaudit.pl/blog/2009/usabilla-w-praktyce-nokaut-pl/">przykład użycia serwisu Usabilla</a>. Poniżej pokaz slajdów umieszczony w tym poście.</p>
<p><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/3camp/nie-dotykaj-usera" title="Nie dotykaj usera">Nie dotykaj usera</a><object style="margin:0px" width="652" height="545"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=niedotykajuseraa-091130042604-phpapp02&#038;stripped_title=nie-dotykaj-usera" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=niedotykajuseraa-091130042604-phpapp02&#038;stripped_title=nie-dotykaj-usera" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="652" height="545"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://bymarszal.pl/blog/2009/12/19/case-study-ze-blogu-webaudit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nowy Thunderbird 3.0</title>
		<link>http://bymarszal.pl/blog/2009/12/10/nowy-thunderbird-3-0/</link>
		<comments>http://bymarszal.pl/blog/2009/12/10/nowy-thunderbird-3-0/#comments</comments>
		<pubDate>Thu, 10 Dec 2009 16:06:22 +0000</pubDate>
		<dc:creator>Tomek</dc:creator>
				<category><![CDATA[informatyka]]></category>
		<category><![CDATA[mozilla]]></category>
		<category><![CDATA[thunderbird]]></category>
		<category><![CDATA[usability]]></category>

		<guid isPermaLink="false">http://bymarszal.pl/blog/?p=366</guid>
		<description><![CDATA[<a href="http://bymarszal.pl/blog/?attachment_id=390" rel="attachment wp-att-390"><img src="http://bymarszal.pl/blog/wp-content/uploads/2009/12/thunderbird3.png" alt="thunderbird3" title="thunderbird3" width="509" height="115" class="aligncenter size-full wp-image-390" /></a>
Przeczytałem wczoraj o pojawieniu się nowej wersji mojego klienta poczty, więc postanowiłem od razu przystąpić do testów i opisać moje pierwsze wrażenia.

Nie wiem, jak ma się sprawa z automatycznym włączeniem aktualizacji ze starej wersji, ponieważ prawdopodobnie moja niecierpliwość nie pozwoliła jej wykryć zmian :)

<h3>Instalacja</h3>
Po wybraniu w menu Pomoc opcji &#8222;Sprawdź dostępność aktualizacji&#8230;&#8221; program szybko ściągnął sobie 12MB najnowszej wersji w języku polskim i przystąpił do instalacji. Obawiałem się trochę przygód, jakie do niedawna miałem z aktualizacjami Firefoxa &#8212; w trakcie ponownego uruchomienia pokazywał się pasek postępu instalacji, który następnie znikał i otrzymywałem komunikat, że wystąpił błąd instalacji. Całość kończyła się koniecznością użycia innej przeglądarki do ściągnięcia instalatora najnowszej wersji FF i ręcznej instalacji (na szczęście zakładkom i innym danym nie działa się krzywda). W Thunderbirdzie nic takiego nie miało miejsca. Program w kilka minut zainstalował się i uruchomił. Kolejnych kilka minut zabrała indeksacja wszystkich moich wiadomości (jeśli dobrze zrozumiałem, na potrzeby wyszukiwania).]]></description>
			<content:encoded><![CDATA[<p><a href="http://bymarszal.pl/blog/wp-content/uploads/2009/12/thunderbird3.png"><img src="http://bymarszal.pl/blog/wp-content/uploads/2009/12/thunderbird3.png" alt="thunderbird3" title="thunderbird3" width="509" height="115" class="aligncenter size-full wp-image-390" /></a><br />
Przeczytałem wczoraj o pojawieniu się nowej wersji mojego klienta poczty, więc postanowiłem od razu przystąpić do testów i opisać moje pierwsze wrażenia.</p>
<p>Nie wiem, jak ma się sprawa z automatycznym włączeniem aktualizacji ze starej wersji, ponieważ prawdopodobnie moja niecierpliwość nie pozwoliła jej wykryć zmian :)</p>
<h3>Instalacja</h3>
<p>Po wybraniu w menu Pomoc opcji &bdquo;Sprawdź dostępność aktualizacji&hellip;&rdquo; program szybko ściągnął sobie 12MB najnowszej wersji w języku polskim i przystąpił do instalacji. Obawiałem się trochę przygód, jakie do niedawna miałem z aktualizacjami Firefoxa &mdash; w trakcie ponownego uruchomienia pokazywał się pasek postępu instalacji, który następnie znikał i otrzymywałem komunikat, że wystąpił błąd instalacji. Całość kończyła się koniecznością użycia innej przeglądarki do ściągnięcia instalatora najnowszej wersji FF i ręcznej instalacji (na szczęście zakładkom i innym danym nie działa się krzywda). W Thunderbirdzie nic takiego nie miało miejsca. Program w kilka minut zainstalował się i uruchomił. Kolejnych kilka minut zabrała indeksacja wszystkich moich wiadomości (jeśli dobrze zrozumiałem, na potrzeby wyszukiwania).</p>
<h3>Wygląd</h3>
<p>Czyli to, co pierwsze rzuciło mi się w oczy. Podkolorowano trochę ikonki, a nowe okna zamieniono na zakładki. Nowy pasek z ikonami jest węższy i zawiera tylko cztery przyciski: Pobierz, Napisz, Adresy, Etykieta (więcej o tym napiszę dalej). Generalnie całość wygląda dużo przyjemniej. Jedyne, co do mnie nie przemawia, to przyciski przy otwartej wiadomości i wybór rodzaju adresata przy tworzeniu nowej wiadomości (wydają mi się trochę toporne w porównaniu z resztą interfejsu).</p>
<h3>Nowości</h3>
<p>Z nowych funkcji warto zauważyć to, co wita nas przy instalacji, czyli asystent migracji. Wymienia on cztery najważniejsze zmiany: synchronizacja kont IMAP, nowy pasek narzędzi, pogrupowane foldery i nagłówki wiadomości. Dwie z nich (pasek narzędzi i grupowanie folderów) możemy od razu zostawić w nowej wersji, lub jednym kliknięciem wrócić do ustawień znanych nam z Thunderbirda 2. Uważam, że to bardzo miły gest ze strony twórców, szczególnie że w obu przypadkach z tej możliwości skorzystałem.</p>
<h3>Inne poprawki</h3>
<p>Przeklikując się przez program znalazłem kilka innych smaczków, które moim zdaniem są zmianami jak najbardziej na plus. Między innymi w wyszukiwaniu postów zmieniono domyślne zaznaczenie z &bdquo;spełniony dowolny z warunków&rdquo; na &bdquo;wszystkie warunki spełnione&rdquo; &mdash; często musiałem przez to powtarzać wyszukiwanie, a chyba nigdy nie skorzystałem z ówczesnego domyślnego wyboru.</p>
<h3>Dodatki</h3>
<p>Jak przy każdym upgradzie programu pozwalającego na instalowanie dodatków, także tu wystąpiły problemy z kompatybilnością nie których z nich. Spośród czterech, z których korzystam dwa przestały działać i czekają na aktualizację do zgodnej z nową wersją programu.</p>
<h3>Na koniec</h3>
<p>Mnie osobiście nowa wersja Thunderbirda przypadła do gustu. Mimo kilku rzeczy, które nie do końca mi się podobają i jednej, która mi się podoba, ale do której będę się musiał przyzwyczaić (zakładki &mdash; już kilka razy próbowałem zamknąć całego Thunderbirda chcąc zamknąć e-mail), uważam że została dobrze przygotowana i można tylko z niecierpliwością czekać na v4.0 ;)</p>
<h3>Dodatek po jednodniowych testach</h3>
<p>Po całym dniu korzystania z nowej wersji znalazłem w niej pewną niekonsekwencję &mdash; nie wszystko zostało przeniesione do zakładek. Tworzenie nowej wiadomości, książka adresowa, a także tradycyjne wyszukiwanie po kliknięciu prawym przyciskiem myszy na folder i wybraniu opcji wyszukaj, dalej pojawiają się w nowym oknie. Sprawdziłem, że sprawa została zgłoszona developerom jeszcze na etapie wersji beta, ale nie było czasu na zaimplementowanie tego i przetestowanie. Można mieć tylko nadzieję, że sprawa zostanie załatwiona przed wydaniem wersji 4.0 (lub że ta wersja będzie wcześniej niż 2.5 roku, które mijały dotychczas między kolejnymi wersjami ;)). Może będzie 4.1?</p>
<p><strong>Jeśli chcecie zwiększyć presję na twórcach, zapraszam do poparcia:</strong></p>
<ul>
<li><a href="http://getsatisfaction.com/mozilla_messaging/topics/compose_reply_in_a_new_tab-knj0">Compose reply in a new tab</a></li>
<li><a href="http://getsatisfaction.com/mozilla_messaging/topics/new_message_and_address_book_in_new_tab">New Message and address book in new tab</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://bymarszal.pl/blog/2009/12/10/nowy-thunderbird-3-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Znikający kursor za pomocą CSS</title>
		<link>http://bymarszal.pl/blog/2009/07/20/znikajacy-kursor-za-pomoca-css/</link>
		<comments>http://bymarszal.pl/blog/2009/07/20/znikajacy-kursor-za-pomoca-css/#comments</comments>
		<pubDate>Mon, 20 Jul 2009 14:43:11 +0000</pubDate>
		<dc:creator>Tomek</dc:creator>
				<category><![CDATA[informatyka]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[usability]]></category>

		<guid isPermaLink="false">http://wp.bymarszal.pl/?p=222</guid>
		<description><![CDATA[<a href="http://bymarszal.pl/blog/2009/07/20/znikajacy-kursor-za-pomoca-css/"><img src="http://bymarszal.pl/blog/wp-content/uploads/2009/07/cursor.png" alt="cursor" title="cursor" width="104" height="103" class="alignleft size-full wp-image-227" /></a><p>Dzisiaj przedstawiam sposób na ukrycie kursora na naszej stronie za pomocą CSS.</p>

<p>Specyfikacja CSS2 podaje dla własności cursor następujące możliwe wartości (po najechaniu na wartość, pojawi się przypisany jej w Twojej przeglądarce kursor):
	<ul>
		<li>URL &#8212; oddzielona przecinkami lista URL-i do plików z kursorami, najlepiej zakończona którąś z poniższych wartości</li>
		<li>auto &#8212; domyślna wartość &#8212; przeglądarka sama ustawia kursor</li>
</ul></p>]]></description>
			<content:encoded><![CDATA[<p><a href="http://bymarszal.pl/blog/wp-content/uploads/2009/07/cursor.png"><img src="http://bymarszal.pl/blog/wp-content/uploads/2009/07/cursor.png" alt="cursor" title="cursor" width="104" height="103" class="alignleft size-full wp-image-227" /></a>
<p>Dzisiaj przedstawiam sposób na ukrycie kursora na naszej stronie za pomocą CSS.</p>
<p>Specyfikacja CSS2 podaje dla własności cursor następujące możliwe wartości (po najechaniu na wartość, pojawi się przypisany jej w Twojej przeglądarce kursor):</p>
<ul>
<li>URL &mdash; oddzielona przecinkami lista URL-i do plików z kursorami, najlepiej zakończona którąś z poniższych wartości</li>
<li>auto &mdash; domyślna wartość &mdash; przeglądarka sama ustawia kursor</li>
<li><span style="cursor:crosshair;">crosshair</span></li>
<li><span style="cursor:default;">default</span></li>
<li><span style="cursor:e-resize;">e-resize</span></li>
<li><span style="cursor:help;">help</span></li>
<li><span style="cursor:move;">move</span></li>
<li><span style="cursor:n-resize;">n-resize</span></li>
<li><span style="cursor:ne-resize;">ne-resize</span></li>
<li><span style="cursor:nw-resize;">nw-resize</span></li>
<li><span style="cursor:pointer;">pointer</span></li>
<li><span style="cursor:progress;">progress</span></li>
<li><span style="cursor:s-resize;">s-resize</span></li>
<li><span style="cursor:se-resize;">se-resize</span></li>
<li><span style="cursor:sw-resize;">sw-resize</span></li>
<li><span style="cursor:text;">text</span></li>
<li><span style="cursor:w-resize;">w-resize</span></li>
<li><span style="cursor:wait;">wait</span></li>
<li><span style="cursor:inherit;">inherit</span> &mdash; wygląd dziedziczony po elemencie nadrzędnym</li>
</ul>
<p>Niestety, nie ma tu interesującego nas parametru braku kursora.</p>
<p>W propozycjach do specyfikacji CSS3 dodano kolejnych kilka kursorów:</p>
<ul>
<li><span style="cursor:alias;">alias</span></li>
<li><span style="cursor:all-scroll;">all-scroll</span></li>
<li><span style="cursor:cell;">cell</span></li>
<li><span style="cursor:copy;">copy</span></li>
<li><span style="cursor:context-menu;">context-menu</span></li>
<li><span style="cursor:no-drop;">no-drop</span></li>
<li><span style="cursor:none;">none</span></li>
<li><span style="cursor:not-allowed;">not-allowed</span></li>
<li><span style="cursor:nwse-resize;">nwse-resize</span></li>
<li><span style="cursor:col-resize;">col-resize</span></li>
<li><span style="cursor:row-resize;">row-resize</span></li>
<li><span style="cursor:vertical-text;">vertical-text</span></li>
</ul>
<p>Jak widać, tu już występuje interesujący nas parametr <i>none</i>. Problem w tym, że z przeglądarek, na których przeprowadziłem testy (Internet Explorer 6, 7 i 8, Chrome, Safari 4, Opera 9.64, Firefox 3.0.11), tylko FF obsługuje tę opcję. Obejściem tego problemu jest wykorzystanie specjalnie stworzonego pliku kursora <a href='http://bymarszal.pl/blog/wp-content/uploads/2009/07/blank.cur'>blank.cur</a> będącego jednopikselowym, przeźroczystym plikiem. Aby uzyskać niewidoczny kursor w jak największej liczbie przeglądarek, używamy w CSS stylu:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">element</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">cursor</span>: <span class="kw2">url</span><span class="br0">&#40;</span><span class="re4">blank<span class="re1">.cur</span></span><span class="br0">&#41;</span>, <span class="kw2">none</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>Pierwsza wartość pozwoli nam na ustawienie przeźroczystego kursora w przeglądarkach nie obsługujących wartości <i>none</i>, a <i>none</i> schowa kursor w Firefoxie. Rozwiązanie to nie działa, niestety, w Operze (która nie obsługuje żadnej z tych wartości), a tylko częściowo działa w Chromie (zamiast przeźroczystości wyświetlana jest czerń &mdash; z tego względu stworzyłem 1&times;1px obraz kursora, aby jego widoczność w Chromie była jak najmniejsza).</p>
<p>Kiedy (jeżeli) CSS3 wejdzie w życie, wszystkie przeglądarki powinny obsługiwać już atrybut none i będzie on wystarczający do działania.</p>
]]></content:encoded>
			<wfw:commentRss>http://bymarszal.pl/blog/2009/07/20/znikajacy-kursor-za-pomoca-css/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Tworzenie projektów w NetBeans w formie pojedynczego pliku JAR</title>
		<link>http://bymarszal.pl/blog/2009/05/27/tworzenie-projektow-w-netbeans-w-formie-pojedynczego-pliku-jar/</link>
		<comments>http://bymarszal.pl/blog/2009/05/27/tworzenie-projektow-w-netbeans-w-formie-pojedynczego-pliku-jar/#comments</comments>
		<pubDate>Wed, 27 May 2009 16:09:47 +0000</pubDate>
		<dc:creator>Tomek</dc:creator>
				<category><![CDATA[informatyka]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[netbeans]]></category>
		<category><![CDATA[usability]]></category>

		<guid isPermaLink="false">http://wp.bymarszal.pl/?p=112</guid>
		<description><![CDATA[<a href="http://bymarszal.pl/blog/2009/05/27/tworzenie-projektow-w-netbeans-w-formie-pojedynczego-pliku-jar/"><img src="http://bymarszal.pl/blog/wp-content/uploads/2009/09/netbeans.gif" alt="netbeans" title="netbeans" width="204" height="35" class="alignleft size-full wp-image-113" /></a><p>Jedną z niewielu wad NetBeansa, jaką na razie odkryłem jest to, że przy budowaniu projektów z zewnętrznymi bibliotekami, wrzuca je do katalogu <i>/lib</i>, który potem trzeba przenosić razem z plikiem .jar programu. Jest to lekko kłopotliwe.</p>
<p>Istnieje możliwość wygenerowania pliku .jar zawierającego w sobie wszystkie biblioteki, ale z poziomu NetBeansa bezpośrednio nie da się tego zrobić. Poniżej przedstawiam rozwiązanie znalezione na <a href="http://wiki.netbeans.org/">NetBeans Wiki</a>.</p>]]></description>
			<content:encoded><![CDATA[<p><a href="http://bymarszal.pl/blog/wp-content/uploads/2009/09/netbeans.gif"><img src="http://bymarszal.pl/blog/wp-content/uploads/2009/09/netbeans.gif" alt="netbeans" title="netbeans" width="204" height="35" class="alignleft size-full wp-image-113" /></a>
<p>Jedną z niewielu wad NetBeansa, jaką na razie odkryłem jest to, że przy budowaniu projektów z zewnętrznymi bibliotekami, wrzuca je do katalogu <i>/lib</i>, który potem trzeba przenosić razem z plikiem .jar programu. Jest to lekko kłopotliwe.</p>
<p>Istnieje możliwość wygenerowania pliku .jar zawierającego w sobie wszystkie biblioteki, ale z poziomu NetBeansa bezpośrednio nie da się tego zrobić. Poniżej przedstawiam rozwiązanie znalezione na <a href="http://wiki.netbeans.org/">NetBeans Wiki</a>.</p>
<p>W katalogu projektu otwieramy plik <i>build.xml</i> i wewnątrz znaczników <i>&lt;project&gt;&lt;/project&gt;</i> wprowadzamy następujący fragment:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"> &nbsp; &nbsp;<span class="sc3"><span class="re1">&lt;target</span> <span class="re0">name</span>=<span class="st0">&quot;-post-jar&quot;</span><span class="re2">&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;jar</span> <span class="re0">update</span>=<span class="st0">&quot;true&quot;</span> <span class="re0">destfile</span>=<span class="st0">&quot;${dist.jar}&quot;</span><span class="re2">&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;zipfileset</span> <span class="re0">src</span>=<span class="st0">&quot;[sciezka_do_pliku_biblioteki]&quot;</span><span class="re2">/&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;/jar<span class="re2">&gt;</span></span></span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;/target<span class="re2">&gt;</span></span></span></div>
</li>
</ol>
</div>
<p>Zamieniając ciąg <i>[sciezka_do_pliku_biblioteki]</i> ścieżką do pliku biblioteki ;-)</p>
<p>Jeśli potrzebujemy dołączyć większą ilość plików .jar, powielamy linię</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="sc3"><span class="re1">&lt;zipfileset</span> <span class="re0">src</span>=<span class="st0">&quot;[sciezka_do_pliku_biblioteki]&quot;</span><span class="re2">/&gt;</span></span></div>
</li>
</ol>
</div>
<p>tyle razy, ile plików nam potrzeba.</p>
<p>Na koniec zapisujemy zmieniony plik i możemy już budować projekt tak, jak zwykle.<br />Folder <i>/lib</i> z naszymi bibliotekami dalej jest tworzony, ale są już nam one niepotrzebne, więc nie musimy ich ruszać, kiedy chcemy wysłać komuś nasz program.</p>
<p><a href="http://bymarszal.pl/problem-istnienia-k-kliki">Przykład projektu stworzonego w ten sposób</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bymarszal.pl/blog/2009/05/27/tworzenie-projektow-w-netbeans-w-formie-pojedynczego-pliku-jar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

