<?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; Java Script</title>
	<atom:link href="http://adamczuk.net.pl/kategoria/java-script/feed/" rel="self" type="application/rss+xml" />
	<link>http://adamczuk.net.pl</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Tue, 20 Jul 2010 16:48:52 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>myBlog &#8211; prosta platforma blogowa</title>
		<link>http://adamczuk.net.pl/2010/07/20/myblog-prosta-platforma-blogowa/</link>
		<comments>http://adamczuk.net.pl/2010/07/20/myblog-prosta-platforma-blogowa/#comments</comments>
		<pubDate>Tue, 20 Jul 2010 16:21:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Java Script]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Projekty]]></category>
		<category><![CDATA[XHTML]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[js]]></category>

		<guid isPermaLink="false">http://adamczuk.net.pl/?p=328</guid>
		<description><![CDATA[Nieoficjalne przedstawienie prostej, autorskiej platformy blogowej.]]></description>
			<content:encoded><![CDATA[<p>Istnieje wiele platform blogowych. Część z nich to niezależne silniki jak <a href="http://wordpress.org/">WordPress</a>, czy <a href="http://www.movabletype.org/">MovableType</a>, a inne to produkty zintegrowane z konkretnymi serwisami, jak <a href="http://www.blogger.com/">Blogger</a> czy <a href="http://www.tumblr.com/">Tumblr</a>. Istnieje również wiele polskich serwisów, które pozwalają na szybkie stworzenie dziennika internetowego i bezstresowe blogowanie. Najpopularniejsze to <a href="http://jogger.pl/">Jogger</a> i <a href="http://www.blox.pl/">Blox</a>. Zdarza się, że powyższe rozwiązania nie spełniają naszych oczekiwań, co wówczas prowadzi do wyważania otwartych drzwi.<br />
<span id="more-328"></span></p>
<p>Tworzenie aplikacji internetowych to skomplikowany, czasochłonny i nie zawsze opłacalny proces.</p>
<p><quote>Dlaczego wielu programistów pisze własne aplikacje, frameworki, biblioteki i inne rozwiązania?</quote></p>
<p>Po prostu wychodzą z przekonania, że sami zrobią to lepiej. Czasami zdarza się, że dzięki temu podejściu rodzą się prawdziwe perełki. Często wielkie molochy tracą klientów, użytkownicy znajdują produkty skrojone na miarę ich potrzeb i każdy może być zadowolony.</p>
<p>Pozostałe przypadki to zmarnowany potencjał, czas i zasoby, bo projekt umiera, zanim rozpoczął żywot. Dopóki nie rozpoczniesz tworzenia nowej jakości nie będziesz, miał pewności co do swojej wartości.</p>
<h3>Właściwy wpis</h3>
<p>Często zastanawia mnie kształt moich wypowiedzi formułowanych w stanie, jak najbardziej trzeźwym. Jestem przecież człowiek technicznych, któremu nie obce powinno być prasowanie, ale już bogaty język podczas wszelkich wypowiedzi, co najmniej zadziwia.</p>
<p>Człowiek uczy się przez lata, choć nie zawsze ma na to czas i chęci. Najlepszym przykładem moich osiągnięć jest <a href="http://squarezone.pl/">SquareZone</a>. Prosty, ale funkcjonalny serwis, który przystępnie oferuje informacje użytkownikom. Tym razem przyszedł czas na nowy przykład.</p>
<p><strong>MyBlog</strong> &#8211; nazwa kodowa powinna być bardziej tajemnicza, ale projekt jest w zbyt wczesnym stadium, mimo wielomiesięcznej pracy przy jego tworzeniu. Otóż wspomniana aplikacja oferuje lub będzie oferowała w przyszłości funkcjonalności znane z popularnych systemów blogowych.</p>
<p>Architektura systemu po części czerpała ze znanego Wordpressa, jednak największym atutem omawianej aplikacji jest wydajność i zgodność ze standardami. Wszystkie testy i szczegóły zostaną przedstawione wkrótce. Niedługo postaram się przedstawić kolejne funkcjonalności oraz założenia rozwojowe.</p>
<p>Obecnie nie mam pewności czy kod źródłowy zostanie udostępniony publicznie, jednak wszelkie opinie na temat działania lub architektury są mile widziane.</p>
<p>Wersja demonstracyjna <a href="http://demo.ladamczuk.kei.pl">myBlog</a>dostępna jest w sieci.</p>
]]></content:encoded>
			<wfw:commentRss>http://adamczuk.net.pl/2010/07/20/myblog-prosta-platforma-blogowa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nowe jQuery &#8211; nowe rozwiązania</title>
		<link>http://adamczuk.net.pl/2010/02/05/nowe-jquery-nowe-rozwiazania/</link>
		<comments>http://adamczuk.net.pl/2010/02/05/nowe-jquery-nowe-rozwiazania/#comments</comments>
		<pubDate>Fri, 05 Feb 2010 10:43:28 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Java Script]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[js]]></category>

		<guid isPermaLink="false">http://adamczuk.net.pl/?p=265</guid>
		<description><![CDATA[Krótka notka na temat nowego wydania jQuery 1.4.]]></description>
			<content:encoded><![CDATA[<p><a href="http://adamczuk.net.pl/wp-content/uploads/2010/02/jquery-light.jpg"><img src="http://adamczuk.net.pl/wp-content/uploads/2010/02/jquery-light.jpg" alt="" title="jquery-light" width="200" height="75" class="left" /></a>Na początku roku wydano jQuery 1.4, które wprowadza nowe funkcjonalności i poprawia znane błędy. Wydanie nowej wersji trwało stało się dla twórców powodem do wielkiego świętowania, czemu poświęcili osobną <a href="http://jquery14.com/">stronę</a>.</p>
<p>W ciągu 14 dni twórcy biblioteki opowiadali o zmianach jakie wprowadzili do nowej wersji. Szczególnie interesujący był <a href="http://jquery14.com/day-03/internal-changes-in-jquery-14-2">podcast</a>, w którym John Resig przedstawił zmiany w rdzeniu biblioteki. Zmniejszenie rozmiaru, wzrost wydajności i większa zgodność z przeglądarkami.</p>
]]></content:encoded>
			<wfw:commentRss>http://adamczuk.net.pl/2010/02/05/nowe-jquery-nowe-rozwiazania/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Ajax loading gif generator</title>
		<link>http://adamczuk.net.pl/2009/11/10/ajax-loading-gif-generator/</link>
		<comments>http://adamczuk.net.pl/2009/11/10/ajax-loading-gif-generator/#comments</comments>
		<pubDate>Tue, 10 Nov 2009 19:47:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Java Script]]></category>
		<category><![CDATA[Serwisy]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[generator]]></category>
		<category><![CDATA[image]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[loading]]></category>

		<guid isPermaLink="false">http://adamczuk.net.pl/?p=222</guid>
		<description><![CDATA[W jednym z projektów wykorzystałem skrypt GreyBox w celu otwierania obrazków. Jednak standardowy obrazek ładowania były beznadziejny. Skorzystałem ze znanej wszystkim użytkownikom wyszukiwarki i po kilku sekundach trafiłem na stronę, którą generowała obrazek ładowania strony.

W panelu wybieramy typ naszego obrazka, kolory jego tło i pierwszego planu. Możemy jeszcze włączyć lub nie przezroczystość obrazka. Generowanie obrazka [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://adamczuk.net.pl/wp-content/uploads/2009/11/ajax-loading-generator.jpg" alt="ajax-loading-generator" title="ajax-loading-generator" width="300" height="100" class="left size-full wp-image-223" />W jednym z projektów wykorzystałem skrypt <a href="http://www.orangoo.com/labs/GreyBox/" title="GreyBox">GreyBox</a> w celu otwierania obrazków. Jednak standardowy obrazek ładowania były beznadziejny. Skorzystałem ze znanej wszystkim użytkownikom wyszukiwarki i po kilku sekundach trafiłem na <a href="http://www.ajaxload.info/">stronę</a>, którą generowała obrazek ładowania strony.<br />
<span id="more-222"></span><br />
W panelu wybieramy typ naszego obrazka, kolory jego tło i pierwszego planu. Możemy jeszcze włączyć lub nie przezroczystość obrazka. Generowanie obrazka trwa kilka sekund, a wszystko to za darmo.</p>
<p>Wśród typów obrazka rozpoznamy ten, który ma YouTube, nowy LightBox albo chociaż Lightwindow. Ten wpis jest prawdziwym dopełnieniem artykułu na temat stylowania lightboxa. Po zmianie kolorystki skryptu, możemy spokojnie dostosować do własnych potrzeb również obrazek ładowania.</p>
]]></content:encoded>
			<wfw:commentRss>http://adamczuk.net.pl/2009/11/10/ajax-loading-gif-generator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TinyMCE &#8211; wprowadzenie</title>
		<link>http://adamczuk.net.pl/2009/03/27/tinymce-wprowadzenie/</link>
		<comments>http://adamczuk.net.pl/2009/03/27/tinymce-wprowadzenie/#comments</comments>
		<pubDate>Fri, 27 Mar 2009 09:23:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Java Script]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[tinymce]]></category>
		<category><![CDATA[wysiwyg]]></category>

		<guid isPermaLink="false">http://adamczuk.net.pl/?p=173</guid>
		<description><![CDATA[Podstawowe informacje na temat edytora WYSIWYG - TinyMCE.]]></description>
			<content:encoded><![CDATA[<p>Jako programista i koder jestem zwolennikiem ręcznego pisania kodu. Co innego uzupełnianie składni czy podpowiadanie metod znane z profesjonalnych środowisk programistycznych, np. MS Visual Studio. Tak samo nie mam nic przeciwko wstawianiu gotowych bloków kodu, np. przez plugin QuickText dla edytora <a href="http://notepad-plus.sourceforge.net/">Notepad++</a>.</p>
<p>Jednak korzystanie z edytorów <acronym title="what you see is what you get">WYSIWYG</acronym> podczas tworzenia aplikacji internetowych to jedna z najgorszych praktyk. Edytory te prowadzą często do tworzenia nadmiarowego kodu. Bynajmniej nie chodzi tu tylko o przestarzałe znaczniki i inne wynalazki, które nie przechodzą poprawnie walidacji. Edytory WYSIWYG najzwyczajniej w świecie nie potrafią tworzyć w pełni semantycznego kodu XHTML. Jednak w pewnym stopniu mogą być przydatne.<span id="more-173"></span></p>
<h3>Wprowadzenie</h3>
<p><strong>TinyMCE</strong> to niezależny internetowy edytor WYSIWYG n<acronym title="what you see is what you get"></acronym>apisany w Javascript. TinyMCE jest wydawany przez <a href="http://www.moxiecode.com/">Moxiecode Systems AB</a> jako Open Source na licencji LGPL. Główną zaletą tego produktu jest łatwa integracja z dowolnym systemem zarządzania treścią.</p>
<p>W jednym z projektów klient chciał formatować treść swoich wpisów. Oczywiście rozsądne było założenie, że klient nie zna znaczników HTML, składni BBCode czy Textile. Po krótkim namyśle, postanowiłem skorzystać z gotowego rozwiązania jakim jest TinyMCE.</p>
<h3>Instalacja</h3>
<p>Na początek musimy ściągnąć potrzebny <a href="http://tinymce.moxiecode.com/download.php">TinyMCE</a>, najlepiej w najnowszej wersji. Pozostaje nam wypakowanie archiwum w wybranej lokalizacji i podlinkowanie w kodzie naszej strony.</p>
<pre><code>&lt;script language="javascript" type="text/javascript" src="js/tiny_mce/tiny_mce.js"&gt;&lt;/script&gt;</code></pre>
<p>W moim przypadku był to katalog <code>js/tiny_mce</code>, w którym znajdował się właściwy plik <code>tiny_mce.js</code>. Uruchomienie edytora jest równie proste. Należy jedynie pamiętać o objęciu całości przez <code>{literal}</code> i <code>{/literal}</code>, jeżeli korzystamy z szablonów Smarty, ponieważ przy tworzeniu obiektu tinyMCE stosowane są klamry.</p>
<pre><code>&lt;script language="javascript" type="text/javascript"&gt;
  tinyMCE.init({
    mode : "textareas"
  });
&lt;/script&gt;</code></pre>
<p>Instalacja to dopiero początek. Cała magia skryptu kryje się w mnogości opcji konfiguracyjnych.</p>
<h3>Konfiguracja</h3>
<p>Kilkanaście kluczowych opcji pozwala na praktycznie dowolne ustawienie wyglądu i zachowania naszego edytora. Dokumentacja TinyMCE zawiera <a href="http://wiki.moxiecode.com/index.php/TinyMCE:Configuration">spis</a> wszystkich parametrów konfiguracyjnych.</p>
<p>Opcja <strong>mode</strong> pozwala na ustawienie, jakie elementy naszej aplikacji będą edytorami. Wartość <strong>textareas</strong> powoduje przekształcenie wszystkich znaczników w edytory WYSIWYG.</p>
<pre><code>tinyMCE.init({
  mode : "textareas"
});</code></pre>
<p>Możliwe jest również przekształcenie w edytor dowolnego elementu na naszej stronie. W tym wypadku ustawiamy wartość <strong>exact</strong> oraz podajemy dodatkowy parametr <strong>elements</strong>, w celu powiadomienia, które elementy chcemy zmienić w edytor.</p>
<pre><code>tinyMCE.init({
  mode : "exact",
  elements : "post-text"
});</code></pre>
<p>Jeżeli potrzebujemy polskich podpowiedzi (hints) lub innych elementów to możliwy jest wybór języka. Jednak konieczne jest ściągnięcie odpowiednich plików z serwera TinyMCE i umieszczenie ich w naszych katalogach. Resztę załatwia opcja <strong>language</strong> z wartością danego języka. W naszym przypadku będzie to <strong>pl</strong> dla języka polskiego.</p>
<pre><code>tinyMCE.init({
  ...
  language : "pl"
});</code></pre>
<p>Następnie powinniśmy ustawić <strong>theme</strong>, który odpowiada za ilość funkcji, dostępnych w edytorze. Wartość  <strong>advanced</strong> pozwala na dużą elastyczność, zarówno w doborze funkcji jak i innych ustawieniach. Druga możliwość to <strong>simple</strong>, która udostępnia edytor z podstawowymi funkcjami.</p>
<pre><code>tinyMCE.init({
  ...
  theme : "advanced"
});</code></pre>
<p>Wartość <strong>advanced</strong> jest domyślna, a nasz edytor może zawierać ponad 50 różnych funkcji! Zapewne większości użytkowników niepotrzebne są niektóre funkcje, dlatego możemy skorzystać z kolejnej opcji konfiguracyjnej.</p>
<p>Jeżeli potrzebujemy tylko wybrane funkcje i potrafimy zmieścić je w dwóch lub jednym pasku to wystarczy dodać kolejny fragment kodu.</p>
<pre><code>tinyMCE.init({
  ...
  theme_advanced_buttons1 : "bold,italic,underline,separator,strikethrough",
  theme_advanced_buttons2 : "undo,redo,|,link,unlink",
  theme_advanced_buttons3 : ""
});</code></pre>
<p>W pierwszym pasku mamy Pogrubienie, Pochylenie, Podkreślenie oraz Przekreślenie rozdzielone separatorem pionowym. W kolejnym pasku znajdują się Cofnij i Ponów oraz Dodaj link i Usuń link, także rozdzielone separatorem. Trzeci pasek jest zdefiniowany jako pusty. Dla krótszej notacji można stosować <code>|</code> zamiast <code>separator</code>.</p>
<p>Możemy również wybrać pozycję pasków oraz wyrównanie przycisków. Dopuszczalne wartości dla ustawienia pasków to <strong>top</strong>, <strong>bottom</strong> oraz <strong>external</strong>, przy czym druga jest domyślna, a trzecia  wymaga dodatkowych opcji w celu ustawienia pasków w zewnętrznej warstwie. Jeśli chcemy wyrównać przyciski to możemy skorzystać z wartości <strong>left</strong>, <strong>right</strong> lub <strong>center</strong>, przy czym domyślnie przyciski umieszczone są na środku paska.</p>
<pre><code>tinyMCE.init({
  ...
  theme_advanced_toolbar_location : "top",
  theme_advanced_toolbar_align : "left"
});</code></pre>
<h3>Podsumowanie</h3>
<p>Artykuł przedstawia ogólne informacje na temat TinyMCE. Zdaję sobie sprawę, że omówiłem jedynie podstawowe opcje konfiguracyjne, ale w większości użytkowników jest to wystarczające. Więcej informacji możemy znaleźć w <a href="http://wiki.moxiecode.com/index.php/TinyMCE:Index">dokumentacji</a>.</p>
<p>TinyMCE jest bardzo elastyczne i pozwala na praktycznie dowolną konfigurację. Nie należy jednak przesadzać, ponieważ czasem coś może nie działać tak jak tego oczekujemy.</p>
]]></content:encoded>
			<wfw:commentRss>http://adamczuk.net.pl/2009/03/27/tinymce-wprowadzenie/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
