<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Frontend.pl</title>
	
	<link>http://frontend.pl</link>
	<description>Wszystko na wierzchu</description>
	<lastBuildDate>Mon, 29 Aug 2011 19:23:39 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/Frontendpl" /><feedburner:info uri="frontendpl" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Firefox Special Powers – super moce, cross domain xmlhttp i nie tylko</title>
		<link>http://feedproxy.google.com/~r/Frontendpl/~3/g1laUKTKYVY/</link>
		<comments>http://frontend.pl/2011/08/firefox-special-powers-super-moce-cross-domain-http-i-nie-tylko/#comments</comments>
		<pubDate>Mon, 29 Aug 2011 19:22:50 +0000</pubDate>
		<dc:creator>Radoslaw Adamczyk</dc:creator>
				<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://frontend.pl/?p=1161</guid>
		<description><![CDATA[Pracując przy projekcie w którym kod javascriptowy jest docelowo pisany pod platformy mobilne lub np. ma być wykorzystany w QML-u, nie przejmuję sie restrykcjami np. przy tworzeniu komunikacji ajaxowej ze względu na to że aplikacje uruchamiane są na urządzeniach jako &#8216;natywne&#8217; i nie zakłócają &#8216;same origin policy&#8217;. Przy takim dewelopmencie komunikacje czy nawet aplikacje najszybciej [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://frontend.pl/wp-content/uploads/2011/08/151947_3953.jpg"><img class="alignright size-medium wp-image-1162" title="151947_3953" src="http://frontend.pl/wp-content/uploads/2011/08/151947_3953-212x300.jpg" alt="" width="127" height="180" /></a>Pracując przy projekcie w którym kod javascriptowy jest docelowo pisany pod platformy mobilne lub np. ma być wykorzystany w QML-u, nie przejmuję sie restrykcjami np. przy tworzeniu komunikacji ajaxowej ze względu na to że aplikacje uruchamiane są na urządzeniach jako &#8216;natywne&#8217; i nie zakłócają &#8216;same origin policy&#8217;. Przy takim dewelopmencie komunikacje czy nawet aplikacje najszybciej można przetestować było korzystając z Firefoxa włączając do kodu prosty skrypcik</p>
<pre class="brush: jscript; title: ; notranslate">
var xmlHttp = new XMLHttpRequest();
/*
 * ustawiamy uprawnienia zeby mozna bylo odwolywac sie do innej domeny,
 * lub odpalajac komunikacje z lokalnego pliku
 */
netscape.security.PrivilegeManager.enablePrivilege(&quot;UniversalBrowserRead&quot;);
//wazne zeby open byl zaraz po ustawieniu uprawnien
xmlHttp.open('get,'http://dowolnadomena.com');
</pre>
<p>Firefox pyta wtedy urzytkownika o zgodę na połączenie do domeny i można było spokojnie testować aplikacje dopóki&#8230; nie pojawił się Firefox 5 <img src='http://frontend.pl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .<br />
Mozilla począwszy od Firefox-a 5 w górę wyłączyła funkcjonalność &#8216;enablePrivilege&#8217;. W tym momencie jedyną opcją żeby dewelopować czy testować taki scenariusz korzystając z Firefoxa 5+ mozna:<br />
stworzyć własny plugin który dostarcza taką możliwość lub przewertować MDN i bugzille mozilli <img src='http://frontend.pl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  i dotrzeć do tego linku <a href="https://bugzilla.mozilla.org/attachment.cgi?id=545203">https://bugzilla.mozilla.org/attachment.cgi?id=545203</a><br />
(z wątku <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=667312">bug-a</a> zgłoszonego w powyższej sprawie), gdzie znajduje się <strong>Special Powers</strong> w formie pluginu dla Firefoxa.</p>
<p>Special Powers jest to zestaw API który normalnie jest częscią <a href="https://developer.mozilla.org/en/Mochitest">Mochitest</a> &#8211; frameworka do testów automatycznych używanych do testowania build-ów firefox-a oraz potencjalnych zagrożeń związanych z wykorzystaniem javascriptu czyli wszędzie tam gdzie chcemy żeby nasz skrypt mógł robić to czego nie pownien <img src='http://frontend.pl/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> . Po zainstalowaniu plugina zobaczymy że pojawi się globalny obiekt SpecialPowers. Teraz możemy zmodyfikować powyższy przykład:</p>
<pre class="brush: jscript; title: ; notranslate">
//korzystamy z super mocy ^^
var xmlHttp = SpecialPowers.createSystemXHR();
xmlHttp.open('get,'http://dowolnadomena.com');
</pre>
<p>i stworzyć obiek xmlHttpRequest który posiada uprawnienia łączenia się z innymi domenami.</p>
<p>Warto wiedzieć że <strong>Special Powers</strong> to nie tylko komunikacja ajax kompletną liste &#8216;super mocy&#8217; znajdziecie <a title="Special Powers" href="https://developer.mozilla.org/en/SpecialPowers">tutaj</a>.</p>
<img src="http://feeds.feedburner.com/~r/Frontendpl/~4/g1laUKTKYVY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://frontend.pl/2011/08/firefox-special-powers-super-moce-cross-domain-http-i-nie-tylko/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://frontend.pl/2011/08/firefox-special-powers-super-moce-cross-domain-http-i-nie-tylko/</feedburner:origLink></item>
		<item>
		<title>Dziedziczenie w javascripcie – programowanie obiektowe</title>
		<link>http://feedproxy.google.com/~r/Frontendpl/~3/xecENSm1Ptk/</link>
		<comments>http://frontend.pl/2011/07/dziedziczenie-w-javascripcie-programowanie-obiektowe/#comments</comments>
		<pubDate>Mon, 18 Jul 2011 19:01:53 +0000</pubDate>
		<dc:creator>Radoslaw Adamczyk</dc:creator>
				<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://frontend.pl/?p=1095</guid>
		<description><![CDATA[Javascript jest językiem w pełni obiektowym, lecz pomimo tego nie wspiera natywnie mechanizmów dziedziczenia podczas deklaracji klas i obiektów jak robią to pozostałe języki programowania jak np. Java czy C#. Dlatego też w javascripcie mechanizm dziedziczenia trzeba zaimplementować samemu, żeby to zrobić warto znać podstawy tworzenia obiektów. Do tworzenia obiektów/klas w javascripcie wykorzystujemy funkcje: W [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://frontend.pl/wp-content/uploads/2011/07/inherit.png"><img class="alignright size-medium wp-image-1093" title="Dziedziczenie" src="http://frontend.pl/wp-content/uploads/2011/07/inherit-300x260.png" alt="Dziedziczenie" width="300" height="260" /></a>Javascript jest językiem w pełni obiektowym, lecz pomimo tego nie wspiera natywnie mechanizmów dziedziczenia podczas deklaracji klas i obiektów jak robią to pozostałe języki programowania jak np. Java czy C#. Dlatego też w javascripcie mechanizm dziedziczenia trzeba zaimplementować samemu, żeby to zrobić warto znać podstawy tworzenia obiektów.</p>
<p>Do tworzenia obiektów/klas w javascripcie wykorzystujemy funkcje:</p>
<pre class="brush: jscript; title: ; notranslate">
//deklarujemy funkcje jako konstruktor obiektu
function Parent (value) {
    this.value = value;
}
//tworzymy instancje obiektu
var parentInstance = new Parent();
</pre>
<p>W javascripcie każdy obiekt posiada swój <strong>prototyp</strong> oznaczony w języku jako <em>prototype</em>.<br />
Prototyp definiuje zestaw metod, pól które sa tworzone podczas każdej inicjalizacji obiektu przy pomocy słowa kluczowego <em>new</em> tak jak w przykładzie powyżej. Rozwijając powyższy przykład dodamy funkcje <em>getName i getGroup</em> do naszej klasy:</p>
<pre class="brush: jscript; title: ; notranslate">
//deklarujemy funkcje jako konstruktor obiektu
function Parent (value) {
    this.value = value;
}
/*
 * dodajemy do prototypu funkcje getName i getGroup,
 * bedą one dostępne w każdym zainicjalizowanym obiekcie
 */
Parent.prototype.getName = function(){
    return 'I am parent';
};
Parent.prototype.getGroup = function(){
    return 'Parent Group';
};
//tworzymy instancje obiektu
var parentInstance = new Parent();
//wywołujemy funkcje utworzonego obiektu
alert(parentInstance.getName());
alert(parentInstance.getGroup());
</pre>
<p><span id="more-1095"></span>Mamy naszą podstawową klasę razem z dwoma metodami. Teraz chcielibyśmy zdefiniować obiekt/klasę która dziedziczy po naszym podstawowym obiekcie i przykładowo nadpisuje metodę <em>getName</em> aby zwrócić swoją nazwę. Tworzymy funkcje (konstruktor) obiektu <em>Child. </em>Ponieważ chcemy żeby każda instancja obiektu który dziedziczy posiadała wszystkie metody/pola obiektu <em>Parent</em> do prototypu przypisujemy nową instancje obiektu <em>Parent</em> oraz nadpisujemy metodę <em>getName</em>.</p>
<pre class="brush: jscript; title: ; notranslate">
function Child() {
    //konstruktor dla obiektu Child
}
/*
 * Przypisujemy-dziedziczymy metody Parent-a używamy new Parent()
 * żeby do prototypu przypisać nową instancje (kopie) funkcji parenta,
 * w przeciwnym wypadku nadpisując metodę getName nadpisalibyśmy tez
 * metodę getName w prototypie Parenta. Dzięki temu wszystkie funkcje
 * klasy Parent (przy pomocy prototypu) będą dostępne we wszystkich
 * instancjach klasy/obiektu Child.
 */
Child.prototype = new Parent();
//nadpisujemy metode getName
Child.prototype.getName = function () {
    return 'I am Child';
};
//inicjalizujemy obiekt
var childInstance = new Child();
/*
 * Sprawdzamy-wywołujemy funkcje widzimy że Child odziedziczył metodę
 * getGroup oraz że metoda getName została nadpisana.
 */
alert(childInstance.getGroup()); //wyswietli 'Parent Group'
alert(childInstance.getName()); //wyswietli 'I am a Child'
</pre>
<p>Javascript jako język niestety w dziedziczonych obiektach nie wspiera metody <em>super</em> jak robią to inne języki np. Java, gdzie w funkcji którą nadpisujemy możemy wywołać nadpisywaną funkcje parenta. W javascripcie żeby to zrobić musimy wywołać funkcje prototypu w kontekście naszego obiektu:</p>
<pre class="brush: jscript; title: ; notranslate">
Child.prototype.getName = function(){
/*
 * Nie ma metody 'super' wiec wywołujemy metodę z prototypu Parenta
 * w kontekście naszego obiektu poprzez użycie 'call' lub 'apply'
 */
    var superParentName = Parent.prototype.getName.call(this);
    return 'I am Child' + ' my parent said: ' + superParentName;
};
//tworzymy instancje obiektu Child
var childInstance = new Child();
/*
 * sprawdzamy funkcje getName powinna
 * wyswietlić: 'I am Child my parent said: I am Parent'
 */
alert(childInstance.getName());
</pre>
<p>Ta implementacja dziedziczenia ze względu na wykorzystanie prototypów nosi nazwę <em>javascript</em> <em>prototype inheritance</em>, można znaleźć dziesiątki przykładów podobnych to tego powyżej, w praktyce jednak warto ten przykład usprawnić o kilka elementów. Przede wszystkim warto stworzyć funkcje którą będziemy wykorzystywać do dziedziczenia obiektów, oraz poprawić przypisanie nowej instancji parent-a do prototypu naszego obiektu:</p>
<pre class="brush: jscript; title: ; notranslate">
//w momencie wywolanie new Parent() obiekt Child nie posiada definicji funkcji
    Child.prototype = new Parent();
</pre>
<p>dlatego iż takie przypisanie zakłada że obiekt <em>Parent</em> jest klasą abstrakcyjną i jego konstruktor nie przyjmuję argumentów i nie wywołuje metod które mogą lub zależnie od implementacji powinny się pojawić nadpisane w obiekcie <em>Child</em>. Dużo praktyczniejsza implementacja wyglądała by tak:</p>
<pre class="brush: jscript; title: ; notranslate">
/*
 * Ponieważ wszystko w javascripcie jest obiektem i posiada prototyp
 * (funkcje też) zmodyfikujemy prototyp każdej funkcji żeby stworzyć
 * metode do dziedziczenia, w tym przypadku 'this' odwołuje się do
 * naszego obiektu (zamiast Child)
 */
Function.prototype.inherit = function( parentClass, extendWith){
    //tworzymy funkcje tymczasową która wykorzystamy do
    //skopiowania prototypów
    function f(){};
    /*
     * do funkcji przypisujemy prototyp klasy po której dziedziczymy
     * (metody i pola)
     */
    f.prototype = parentClass.prototype;
    /*
     * przypisujemy do naszego obiektu
     * kopie prototypu (nie wywołując konstruktora
     * parenta tylko tymczasowa funkcje)
     */
    this.prototype = new f();
    /*
     * poprawiamy konstruktor (inaczej wskazywałaby na
     * parentClass.prototype.constructor)
     */
    this.prototype.constructor = this;
    /*
     * jeśli jako drugi argument (opcjonalnie) został podany
     * obiekt z funkcjami rozszerzającymi parenta przypisujemy je
     */
    if(extendWith){
        for(var key in extendWith){
            this.prototype[key] = extendWith[key];
        }
    }
};

//deklarujemy obiekt Parent
function Parent (value) {
    this.value = value;
}
/*
 * definiujemy funkcje w prototypie
 * (można zrobić to przy pomocy obiektu jak poniżej)
 */
Parent.prototype = {
    getName: function(){
        return 'Parent';
    },
    getValue: function(){
        return this.value;
    }
};
//Definiujemy konstruktor Child-a
function Child (value) {
    /*
     * wywolujemy konstruktor Parenta w kontekście naszego obiektu
     * zeby przekazac parametry - emulacja 'super'
     */
    Parent.apply(this, arguments);
}
//Wywołujemy metodę inherit którą dodaliśmy do prototypu funkcji (Function)
Child.inherit(Parent, {
    //nadpisujemy metode getName
    getName: function () {
        //ponownie przykład emulacji 'super'
        var parentName = Parent.prototype.getName();
        return 'I am a Child of a ' + parentName;
    }
});
//Tworzymy instancje obiektu Child
var childInstance = new Child('some value');
//sprawdzamy czy wszystko się udało
alert(childInstance.getName());
alert(childInstance.getValue());
</pre>
<p>Do pisania aplikacji obiektowo w javascripcie również można wykorzystać narzędzia udostępniane przez frameworki javascriptowe. Przykładowo MooTools posiada bardzo fajną implementację obiektowości i dziedziczenia przy pomocy funkcji <a title="MooTools Class" href="http://mootools.net/docs/core/Class/Class" target="_blank"><em>Class</em></a>. Ponieważ prawie wszystkie implementacje w dostępnych frameworkach są modyfikacjami powyższego podejścia (<em>prototype inheritance</em>), uważam że warto wiedzieć jak ono działa i jak się je implementuje dlatego że nie zawsze możemy w projekcie skorzystać z MooTools lub innych frameworków.</p>
<img src="http://feeds.feedburner.com/~r/Frontendpl/~4/xecENSm1Ptk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://frontend.pl/2011/07/dziedziczenie-w-javascripcie-programowanie-obiektowe/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://frontend.pl/2011/07/dziedziczenie-w-javascripcie-programowanie-obiektowe/</feedburner:origLink></item>
		<item>
		<title>Devmeetings nie zwalniają – tym razem o detekcji kolizji z JS</title>
		<link>http://feedproxy.google.com/~r/Frontendpl/~3/CKk7GFJespY/</link>
		<comments>http://frontend.pl/2011/07/devmeetings-nie-zwalniaja-tym-razem-o-detekcji-kolizji-z-js/#comments</comments>
		<pubDate>Fri, 08 Jul 2011 10:07:52 +0000</pubDate>
		<dc:creator>Piotr Gawle</dc:creator>
				<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://frontend.pl/?p=1079</guid>
		<description><![CDATA[Zespół Devmeetings.pl przygotował po raz kolejny ciekawy cykl szkoleń.  W Poznaniu, Wrocławiu, Gliwicach i Warszawie zainteresowani będą mogli poznać szczegóły detekcji kolizji. Dla wszystkich którzy chcą się zajmować tworzeniem gier (niekoniecznie w naszym ulubionym języku) jest to zagadnienie pierwszorzędne. Czego między innymi można się spodziewać? Krótkiego i treściwego repetytorium z fizyki Szczegółowego przedstawienia sposobów wykrywania [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://frontend.pl/wp-content/uploads/2011/07/dev2.png"><img class="alignnone size-full wp-image-1083" title="dev2" src="http://frontend.pl/wp-content/uploads/2011/07/dev2.png" alt="" width="488" height="299" /></a></p>
<p>Zespół Devmeetings.pl przygotował po raz kolejny ciekawy cykl szkoleń.  W Poznaniu, Wrocławiu, Gliwicach i Warszawie zainteresowani będą mogli poznać szczegóły detekcji kolizji. Dla wszystkich którzy chcą się zajmować tworzeniem gier (niekoniecznie w naszym ulubionym języku) jest to zagadnienie pierwszorzędne.</p>
<p>Czego między innymi można się spodziewać?</p>
<ul>
<li><strong>Krótkiego i treściwego repetytorium z fizyki</strong></li>
<li><strong>Szczegółowego przedstawienia sposobów wykrywania kolizji</strong></li>
<li><strong>Matematyki wektorów</strong></li>
<li><strong>Omówienia algorytmów optymalizacji wydajności</strong></li>
<li><strong>Obsługi reakcji na kolizje</strong></li>
</ul>
<p>Terminy:</p>
<ul>
<li><strong>Poznań, 9 lipca</strong></li>
<li><strong>Gliwice, 16 lipca</strong></li>
<li><strong>Warszawa, 23 lipca</strong></li>
<li><strong>Wrocław, 30 lipca</strong></li>
</ul>
<p>Szkolenie prowadzi <strong>Marek Pawłowski</strong>.  Miałem przyjemność być, na prowadzonym przez niego,  szkoleniu z tworzenia gier w Javascripcie (wtedy pisaliśmy multiplayerowy Mortal Kombat).</p>
<p>Oczywiście bym zapomniał, szkolenie jest całkowicie za<strong> darmo</strong>.  Polecam!</p>
<p><a href="http://devmeetings.pl/trainings/detekcja-kolizji-w-grach-javascriptowych">Szczegóły i rejestracja na stronie devmeetings.pl</a></p>
<img src="http://feeds.feedburner.com/~r/Frontendpl/~4/CKk7GFJespY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://frontend.pl/2011/07/devmeetings-nie-zwalniaja-tym-razem-o-detekcji-kolizji-z-js/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://frontend.pl/2011/07/devmeetings-nie-zwalniaja-tym-razem-o-detekcji-kolizji-z-js/</feedburner:origLink></item>
		<item>
		<title>Internet Explorer 10 w pogoni za konkurencją</title>
		<link>http://feedproxy.google.com/~r/Frontendpl/~3/-9DrqMWY1UA/</link>
		<comments>http://frontend.pl/2011/07/internet-explorer-10-w-pogoni-za-konkurencja/#comments</comments>
		<pubDate>Mon, 04 Jul 2011 09:42:31 +0000</pubDate>
		<dc:creator>Radoslaw Adamczyk</dc:creator>
				<category><![CDATA[Na szybko]]></category>

		<guid isPermaLink="false">http://frontend.pl/?p=1069</guid>
		<description><![CDATA[Microsoft zaprezentował IE10 platform preview 2 w wersji dla deweloperów na swoim blogu. Installer jest dostępny na blogu Microsoftu (link powyżej). W najnowszej wersji explorera będziemy mieli dostęp do: Asynchronicznego wykonywania skryptów File Reader API HTML5 Drag and Drop Webworkerów Walidacji formularzy (HTML5 Forms) Iframe sandboxing Media Query Listeners oraz w zakresie CSS-a: CSS3 Positioned [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://frontend.pl/wp-content/uploads/2010/03/IE.jpg"><img class="alignright size-full wp-image-103" title="IE" src="http://frontend.pl/wp-content/uploads/2010/03/IE.jpg" alt="" width="300" height="300" /></a>Microsoft zaprezentował <a title="internet explorer 10 platform preview" href="http://blogs.msdn.com/b/ie/archive/2011/06/29/site-ready-html5-second-ie10-platform-preview-available-for-developers.aspx">IE10 platform preview 2</a> w wersji dla deweloperów na swoim blogu. Installer jest dostępny na blogu Microsoftu (link powyżej). W najnowszej wersji explorera będziemy mieli dostęp do:</p>
<ul>
<li>Asynchronicznego wykonywania skryptów</li>
<li>File Reader API</li>
<li>HTML5 Drag and Drop</li>
<li><a title="Webworkers" href="http://frontend.pl/2010/03/web-workers/">Webworkerów</a></li>
<li>Walidacji formularzy (HTML5 Forms)</li>
<li>Iframe sandboxing</li>
<li>Media Query Listeners</li>
</ul>
<p>oraz w zakresie CSS-a:</p>
<ul>
<li>CSS3 Positioned floats</li>
<li>CSS3 Grid</li>
<li>CSS3 multicolumn</li>
<li>CSS3 flexbox</li>
<li>CSS3 Gradients</li>
</ul>
<p>Cieszy mnie to że firma z Redmont poważnie zaczeła inwestować w technologie html5 oraz css3, tworzy przeglądarkę która naprawde bedzie mogła konkurować z Firefoxem czy Google Chromem. Dzięki temu rownież technologie HTML5 będa bardziej używalne w aplikacjach webowych, poniważ przeglądarki z rodziny IE są mimo wszystko najbardziej popularne nie ze względu na ich jakość <img src='http://frontend.pl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ale ze względu na to że są preinstalowane na każdej maszynie z windowsem.  IE9 był milowym krokiem dla explorera IE10 idzie jeszcze dalej.</p>
<p><a title="IE10 preview 2" href="http://blogs.msdn.com/b/scriptjunkie/archive/2011/06/29/ie10-platform-preview-is-out-with-more-html5-and-css3-goodness.aspx">http://blogs.msdn.com/b/scriptjunkie/archive/2011/06/29/ie10-platform-preview-is-out-with-more-html5-and-css3-goodness.aspx</a></p>
<img src="http://feeds.feedburner.com/~r/Frontendpl/~4/-9DrqMWY1UA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://frontend.pl/2011/07/internet-explorer-10-w-pogoni-za-konkurencja/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://frontend.pl/2011/07/internet-explorer-10-w-pogoni-za-konkurencja/</feedburner:origLink></item>
		<item>
		<title>Optymalizacja Aplikacji Webowych</title>
		<link>http://feedproxy.google.com/~r/Frontendpl/~3/lbXvMFpd0TI/</link>
		<comments>http://frontend.pl/2011/06/optymalizacja-aplikacji-webowych/#comments</comments>
		<pubDate>Sat, 18 Jun 2011 13:04:24 +0000</pubDate>
		<dc:creator>Radoslaw Adamczyk</dc:creator>
				<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://frontend.pl/?p=1060</guid>
		<description><![CDATA[Optymalizacja serwisów i aplikacji webowych jest bardzo szerokim tematem, na wiele artykułów, w przyszlości postaram się dogłębniej opisać poszczególne czynniki i metody optymalizacyjne ale póki co chciałbym zamiescić najważniejsze punkty dotyczące optymalizacji frontendowej na sasadzie &#8216;cheat sheet&#8217;-a lub &#8216;check list&#8217;-y którą można stosować przy budowie aplikacji webowych: 1) Minifikacja Javascriptu i Css-a Minifikujemy pliki javascriptu i [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://frontend.pl/wp-content/uploads/2011/06/scredriver.jpg"><img class="alignright size-medium wp-image-1062" title="scredriver" src="http://frontend.pl/wp-content/uploads/2011/06/scredriver-300x281.jpg" alt="" width="300" height="281" /></a>Optymalizacja serwisów i aplikacji webowych jest bardzo szerokim tematem,<br />
na wiele artykułów, w przyszlości postaram się dogłębniej opisać poszczególne<br />
czynniki i metody optymalizacyjne ale póki co chciałbym zamiescić najważniejsze<br />
punkty dotyczące optymalizacji frontendowej na sasadzie &#8216;cheat sheet&#8217;-a<br />
lub &#8216;check list&#8217;-y którą można stosować przy budowie aplikacji webowych:</p>
<p><strong>1) Minifikacja Javascriptu i Css-a</strong></p>
<p>Minifikujemy pliki javascriptu i css-a, po usunięciu białych znaków,<br />
oraz optymalizacji zmiennych, usunięciu komentarzy<br />
w javascripcie możemy zyskać nawet 25% wielkości podstawego pliku.<br />
najpopularniejsze narzędzia to:</p>
<p><a href="http://developer.yahoo.com/yui/compressor/">YUICompressor</a><br />
<a href="http://code.google.com/closure/compiler/">Google Closure Compiler</a></p>
<p><strong>2) Kompresja Gzip</strong></p>
<p>Warto włączyć kompresje Gzip po stronie serwera można zyskać nawet 30%<br />
podstawowej wielkości plików. Warto ją włączyc dla każdego statycznego contentu,<br />
plike HTML (lub wygenerowany HTML przez skrypty na serwerze), CSS i oczywiście<br />
Javascript.</p>
<p><strong>3) Zmniejszenie liczby requestów do serwera</strong></p>
<p>Każdy request do serwera przez przeglądarke kosztuje czas oraz alokacje pamięci i resourców,<br />
warto sprawić aby w naszej aplikacji było jak najmniej requestów po dane do serwera.<br />
Ponieważ jeden request po większą ilość danych zadziała szybciej niż<br />
5 czy 10 requestów po mniejszą ilość danych.</p>
<p><strong>3a) Łączenie plików Javascript i Css</strong></p>
<p>Podczas procesu budowy czy releasowania projektu warto łączyć wszystkie pliki<br />
projektowe javascriptu w jeden to również dotyczy plików css. Zmniejsza to liczbę<br />
requestów do serwera. Nawet jeśli korzystamy z bilbiotek zewnętrznych takij jak<br />
Jquery czy Mootools to również warto przemyślec czy nie umieścić jej &#8216;zbundlowanej&#8217;<br />
w naszym pliku wynikowym. W idealnym świecie dla naszej aplikacji istnieje 1 plik JS i 1 plik css.</p>
<p><strong>3b) Obrazki jako Sprite-y</strong></p>
<p>Zamiast ładować 10 ikon jako osobne pliki, lepiej jest stworzyć jeden plik<br />
graficzny który zawiera wszystkie ikonki i obrazki tła które wykorzystujemy,<br />
i po załadowaniu odpowiednio ustawiając pozycje tła w CSS-sie na danym elemencie<br />
pokazyjemy odpowiednią ikonkę. Dzieki temu np. zamiast 10-ciu requestów po<br />
dane mamy 1. Warto zajrzeć<a href="http://css-tricks.com/css-sprites/"> http://css-tricks.com/css-sprites/</a>.</p>
<p><strong>3c) Cache Forever</strong></p>
<p>Warto ustawiać nagłówki &#8216;Expires&#8217; np na rok albo więcej dla statycznego<br />
contentu. Dzięki temu client przeglądarka bedzie korzystać z lokalnie<br />
zapisanego pliku zamiast wysyłać za każdym razem request po content.<br />
Trzeba wtedy tylko pamiętać żeby przy releasowaniu nowej wersji aplikacji<br />
zmieniać url do pliku, można np. wykorzystać numer aktualnej rewizji w tym celu.</p>
<p><strong>4) Optymalizacja grafiki</strong></p>
<p>Warto korzystać z formatu PNG-8 zamiast PNG-24 możemy zyskać do 50% wielkości<br />
podstawowego pliku. PNG-8 dla IE6 zachowują sie jak pliki GIF (tylko że<br />
nie wspierają animacji) łącznie z przeźzroczystością (zwykłą nie alpha).<br />
Warto zkorzystać z narzędzi takich jak np. <a href="http://psydk.org/PngOptimizer.php ">http://psydk.org/PngOptimizer.php </a><br />
do optymalizacji plików png usuwają one z pliku niepotrzebne informacje.</p>
<p>Pliki JPG można zapisać w formacie &#8216;baseline&#8217; lub &#8216;progressive&#8217; w praktyce<br />
dla plików większych (niż 10kb) warto stosować &#8216;progressive&#8217;, dla miniatur<br />
&#8216;baseline&#8217; można zyskać do 10% bez utraty jakośći.<br />
warto zajrzec: <a href="http://www.smushit.com/ysmush.it/">http://www.smushit.com/ysmush.it/</a></p>
<p><strong>5) Serwery Plików statycznych oraz Content Delivery Network</strong></p>
<p>Przy większych projektach warto korzystać z sewerów pliów statycznych<br />
dla statycznego contentu oraz z tzw. CDN-ów, np Akamai,<br />
czy Amazon CloudFront można uzuskać dużo szybsze ładowanie content-u<br />
w szczególności dla użytkowników którzy są &#8216;fizycznie&#8217; oddaleni od naszego<br />
serwera (np. za oceanem). Niestety dobre serwisy CDN są płatne.</p>
<p>Nie poruszałem dodatkowych kwesti dotyczących backendu ale jesłi uważacie że czegoś brakuje na liście lub o czymś zapomniałem zapraszam do dyskusji z chęcia zrobie update.</p>
<img src="http://feeds.feedburner.com/~r/Frontendpl/~4/lbXvMFpd0TI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://frontend.pl/2011/06/optymalizacja-aplikacji-webowych/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://frontend.pl/2011/06/optymalizacja-aplikacji-webowych/</feedburner:origLink></item>
		<item>
		<title>Microjs – mini biblioteki na każdą okazję</title>
		<link>http://feedproxy.google.com/~r/Frontendpl/~3/SSKvFqAbKz8/</link>
		<comments>http://frontend.pl/2011/05/microjs-mini-biblioteki-na-kazda-okazje/#comments</comments>
		<pubDate>Wed, 18 May 2011 05:06:42 +0000</pubDate>
		<dc:creator>Piotr Gawle</dc:creator>
				<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://frontend.pl/?p=998</guid>
		<description><![CDATA[Podczas tworzenia aplikacji staram się być minimalistą. Tylko funkcjonalności, które są mi teraz potrzebne. Jak najmniej na przyszłość &#8211; wszystko ma działać od zaraz i najważniejsze z jak najmniejszą ilością (czytelnego) kodu. Dlatego zgadzam się z tym z tym co napisał Thomas Fuchs na swoim blogu o bibliotekach takich jak JQuery, Prototype, YUI , MooTools [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_1016" class="wp-caption aligncenter" style="width: 412px"><img class="size-full wp-image-1016 " title="Screen shot 2011-05-14 at 8.09.55 PM" src="http://frontend.pl/wp-content/uploads/2011/05/Screen-shot-2011-05-14-at-8.09.55-PM.png" alt="mircojs" width="402" height="157" /><p class="wp-caption-text">żródło: microjs.com</p></div>
<p style="text-align: left;">Podczas tworzenia aplikacji staram się być minimalistą. Tylko funkcjonalności, które są mi teraz potrzebne. Jak najmniej na przyszłość &#8211; wszystko ma działać od zaraz i najważniejsze z jak najmniejszą ilością (czytelnego) kodu. Dlatego zgadzam się z tym z tym co napisał Thomas Fuchs <a href="http://mir.aculo.us/2011/04/11/i-for-one-welcome-our-new-micro-framework-overlords/" target="_blank">na swoim blogu</a> o bibliotekach takich jak JQuery, Prototype, YUI , MooTools itp.</p>
<ul>
<li style="text-align: left;"><strong>takie biblioteki starają się rozwiązać wszystkie problemy i przy takiej skali trudno osiągnąć w każdym aspekcie perfekcję</strong></li>
<li><strong>takie biblioteki są duże. Być może nie przesadnie wielkie jeżeli mówimy o klasycznych komputerach ale już przy urządzeniach mobilnych ich rozmiar ma znaczenie.</strong></li>
<li><strong>tworząc strony nie potrzebujemy wszystkich z udostępnionych funkcjonalności</strong></li>
</ul>
<p>We wspomnianym wpisie Thomas Fuchs zaprezentował parę specjalistycznych frameworków, które realizowały bardzo konkretne zadania a całkiem niedawno stworzył stronę <a href="http://microjs.com" target="_blank">microjs.com</a> gdzie możemy sobie wybrać z kilkudziesięciu bibiotek(a liczba ich prawdopodobnie będzie rosnąć). Wszystkie poniżej <strong>5kb </strong> i koncetrują się na jednej funckjonalności.</p>
<ul>
<li><strong>wykryciu dostępnych elementów HTML5 i CSS3 (<a href="http://www.modernizr.com/" target="_blank">Modernizer</a>)</strong></li>
<li><strong>obsługi rożnego rodzaju zapisu danych po stronie przeglądarki (<a href="http://westcoastlogic.com/lawnchair/" target="_blank">Lawnchair</a>)</strong></li>
<li><strong>animacji (<a href="https://github.com/madrobby/emile" target="_blank">Emile</a>)</strong></li>
<li><strong>systemie szablonów (<a href="http://mustache.github.com/" target="_blank">Mustache</a>)</strong></li>
<li><strong>obsługę zdarzeń, elemetów DOM, elementu Canvas, Ajaxa i wielu innych</strong></li>
</ul>
<p>Dzięki małemu rozmiarowi biblioteki te można łatwiej debugować a dzięki niezależności &#8220;w kodzie&#8221; łatwo wymienić na inną.  Jako plus dodam, że można nauczyć się kilku fajnych rozwiązań analizując ich kod. Brakuje tylko rankingu albo kogoś kto będzie recenzował te biblioteki bo przy dużym wyborze ciężko stwierdzić która jest najlepsza.</p>
<p>Źródła:<br />
Strona z listą micro bibliotek : <a href="http://microjs.com" target="_blank">micro.js</a><br />
Strona Thomasa Fuchsa: <a href="http://mir.aculo.us/" target="_blank">mir.aculo.us</a></p>
<img src="http://feeds.feedburner.com/~r/Frontendpl/~4/SSKvFqAbKz8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://frontend.pl/2011/05/microjs-mini-biblioteki-na-kazda-okazje/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://frontend.pl/2011/05/microjs-mini-biblioteki-na-kazda-okazje/</feedburner:origLink></item>
		<item>
		<title>Nowa, lepsza Aptana</title>
		<link>http://feedproxy.google.com/~r/Frontendpl/~3/OfVuqeHPwsA/</link>
		<comments>http://frontend.pl/2011/05/nowa-lepsza-aptana/#comments</comments>
		<pubDate>Tue, 10 May 2011 05:06:20 +0000</pubDate>
		<dc:creator>Piotr Gawle</dc:creator>
				<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://frontend.pl/?p=975</guid>
		<description><![CDATA[Kiedy dawno temu zaczynałem swoją przygodę frontendową i wychodziłem ze świadka javowego Aptana (pokłosie Eclipsa) była dla mnie naturalnym wyborem. Wiem, wiem pracując na Macu powinienem skorzystać z czegoś co jest bardziej &#8220;sexy&#8221;, ale szczerze powiedziawszy nie miałem ochoty na przestawianie się i poszukiwania. Dodatkowym plusem było to, że Aptana jest za darmo. Co najbardziej [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-979" title="aptana1" src="http://frontend.pl/wp-content/uploads/2011/05/aptana1.png" alt="" width="263" height="275" />Kiedy dawno temu zaczynałem swoją przygodę frontendową i wychodziłem ze świadka javowego Aptana (pokłosie Eclipsa) była dla mnie naturalnym wyborem. Wiem, wiem pracując na Macu powinienem skorzystać z  czegoś co jest bardziej &#8220;sexy&#8221;, ale szczerze powiedziawszy nie miałem ochoty na przestawianie się i poszukiwania. Dodatkowym plusem było to, że Aptana jest za darmo. Co najbardziej mi doskwierało?  Przede wszystkim szybkość działania samego IDE jak i przeszukiwania projektów, słabe podpowiadanie składni (w porównaniu do Javy z Eclipsem) i brak dobrze przemyślanego UX-a.</p>
<p>W poprzednim tygodniu wyszła wersja 3 wspomnianego IDE i nie omieszkałem jej przetestować.</p>
<h1>Co mi się podoba:</h1>
<ul>
<li>nowa kolorystyka tła i składni. Jest to oczywiście kwestia gustu ale mi bardzo przypadło do gustu. Jeżeli komuś się nie spodoba może zaimportować sobie wybrany wygląd z TextMate.</li>
<li>&#8220;App Explorer&#8221;. Panel z plikami dla tylko jednego projektu. Umożliwia szybkie wyszukanie i zmniejsza bałagan.</li>
<li>prędkość wyszukiwania! To działa i działa naprawdę szybko! Jestem pod wrażeniem jakbym przesiadł się z malucha do, no powiedzmy, nowego forda <img src='http://frontend.pl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
<li>dużo lepszy UX aplikacji. Bezboleśnie znalazłem nowe funkcjonalności i wykorzystałem je podczas pracy. Cały interfejs jest mniej zaśmiecony i przyjazny. Nie jest oczywiście idealny i nie ma co się ścigać z najlepszymi aplikacjami na MAC-a ale jest dużo, dużo lepiej.</li>
<li>zintegrowany Terminal. Czasami mi się przydawał (często musiałem odpalać buildy antowe). Nie konieczny ale przyjemny dodatek.</li>
<li>Aptana 3 jako osobna aplikacja. Wersja 2 i wersja 3 działają zupełnie osobno. Mogłem dzięki temu zainstalować nowy program bez strachu, że w połowie pracy będę musiał walczyć z przywróceniem bardziej stabilnej wersji.</li>
<li> prędkość działania. Bardzo poprawiona. Aplikacja działała bez problemowo i nie zawiesiła się ani na chwile.</li>
<li>podpowiadanie składni w CSS-ach (razem z wyszukiwaniem odpowiednich klas z pliku HTML)</li>
</ul>
<h1>Co mi się nie podoba</h1>
<ul>
<li>UX dalej jest daleko od bycia idealnym. Za dużo opcji, lekko brzydkawy wygląd.</li>
<li>podpowiadanie JS-a. Niby jest i coś podpowiada ale żeby bardzo pomagał to nie powiem. Dodatkowo czasem w ogóle się nie odpalał.</li>
<li>czasami źle były wskazywane miejsca błędów. Raz pokazywał je w miejscach które zostały już poprawione a czasami wychodziły dopiero po odpaleniu programu w przeglądarce.</li>
</ul>
<h1>Co jeszcze obiecują(a czego nie przetestowałem)</h1>
<ul>
<li>możliwość importowania motywów z TextMate</li>
<li>integrację GitHubem</li>
<li>Deployment Wizard. Automatyzacja wystawiania projektów Rail-owych(wbudowane wsparcie dla <a href=" http://www.heroku.com/">Heroku</a> i <a href="http://www.engineyard.com/">Engine yard</a>)</li>
</ul>
<h1>Podsumowanie</h1>
<p>Ogólnie jestem bardzo zadowolony i polecam. Aptana 3 sprawiała mi się szybko i była stabilna. Moim zdaniem jest to dużo lepszy edytor od Aptany 2 i warto go sprawdzić w boju. </p>
<p><a href="http://www.aptana.org/">Strona Aptany</a></p>
<img src="http://feeds.feedburner.com/~r/Frontendpl/~4/OfVuqeHPwsA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://frontend.pl/2011/05/nowa-lepsza-aptana/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://frontend.pl/2011/05/nowa-lepsza-aptana/</feedburner:origLink></item>
		<item>
		<title>HTML5 Boilerplate – to nie jest następny framework JS-owy</title>
		<link>http://feedproxy.google.com/~r/Frontendpl/~3/oW8bbKOFmTM/</link>
		<comments>http://frontend.pl/2011/04/html5-boilerplate-to-nie-jest-nastepny-framework-js-owy/#comments</comments>
		<pubDate>Tue, 26 Apr 2011 05:06:10 +0000</pubDate>
		<dc:creator>Piotr Gawle</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://frontend.pl/?p=910</guid>
		<description><![CDATA[Dzisiaj chciałem przedstawić projekt HTML5 Boilerplate i to w czym może być pomocny w codziennej pracy. Nie dajcie się zwieść &#8211; nie jest to żaden nowy Javascriptowy framework ale przygotowany szkielet &#8220;świeżej&#8221; aplikacji i build system pomocny przy tworzeniu wersji produkcyjnych. Dlaczego jest to pomocne rozwiązanie? Szkielet Czy też przy rozpoczęciu tworzenia nowej strony wyciągacie [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_931" class="wp-caption alignright" style="width: 331px"><a href="http://frontend.pl/wp-content/uploads/2011/04/broiler.png"><img class="size-full wp-image-931  " title="HTML5  BoilerPlate" src="http://frontend.pl/wp-content/uploads/2011/04/broiler.png" alt="" width="321" height="403" /></a><p class="wp-caption-text">żródło : http://html5boilerplate.com/</p></div>
<p>Dzisiaj chciałem przedstawić projekt <a href="http://html5boilerplate.com/"> HTML5 Boilerplate</a> i to w czym może być pomocny w codziennej pracy. Nie dajcie się zwieść &#8211; nie jest to żaden nowy Javascriptowy framework ale przygotowany <strong>szkielet</strong> &#8220;świeżej&#8221; aplikacji i <strong>build system</strong> pomocny przy tworzeniu wersji produkcyjnych.  Dlaczego jest to pomocne rozwiązanie?</p>
<h1>Szkielet</h1>
<p>Czy też przy rozpoczęciu tworzenia nowej strony wyciągacie gdzieś z odmętów dyskowych swoją własną strukturę? Wszystko ułożone tak jak lubicie &#8211; odpowiednie katalogi na obrazki, dokument html z odpowiednim Doctypem i podłączonymi bibliotekami Javascript-owymi itp. To co dostajecie w HTML5BP jest dokładnie czymś takim tylko przygotowanym nie przez jednego człowieka ale przez cały zespół specjalistów frontend-owych. Cały szkielet jest stworzony tak aby działał na wszystkich głównych przeglądarkach (mobilnych także). Ilość zaimplementowanych sztuczek i hacków które zostały tam wrzucone jest naprawdę duża.</p>
<ul>
<li>wsparcie cachowania css i javascript</li>
<li>wparcie mobilnych wersji</li>
<li>odpowiednie radzenie sobie z rożnymi IE (używanie odpowiedniego silnika i wykrycie)</li>
<li><a href="http://www.modernizr.com/">modernizer</a> do wykrycia właściwości przeglądarki (feature detection)</li>
<li>strukturę zgodną z HTML5 i działającą we wszystkich ważnych przeglądarkach</li>
<li>najlepszy sposób pobierania JQuery</li>
<li>style resetujące</li>
<li>zoptymalizowane style przygotowujące stronę do druku</li>
<li>wieele innych <img src='http://frontend.pl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
</ul>
<p>Aż korci żeby rozebrać wszystko na części pierwsze i posprawdzać które z rozwiązań już stosowałem a które powinienem.  Dokumentacja do projektu jest może trochę chaotyczna (np. brak jasnego rozdzielenia instrukcji co do wykorzystania <a href="http://html5boilerplate.com/">HTML5BP</a> i Webowych rozwiązań w nim zastosowanych ) ale za to bardzo bogata!</p>
<h1>Build system</h1>
<p>Tu z kolei coś co pomoże szybciej tworzyć wersje produkcyjne naszej strony. Kilka komend i już mamy wyczyszczoną i zmniejszoną wersję gotową do wrzucenia na produkcję. Wszystko jest oparte o Ant-a więc jeżeli go nie mamy już zainstalowanego (Mac, Linux) to trzeba to zrobić samemu (Windows). Całość oczywiście jest dokładnie rozpisane w dokumentacji HTML5BP.  Co możemy więc zautomatyzować?</p>
<ul>
<li>łączenie i minimalizację Javascriptów i CSS-ów</li>
<li>optymalizację plików JPG i PNG</li>
<li>minimalizację HTML-a</li>
<li>usuwanie instrukcji console i debugger z kodu.</li>
<li>wspomaga i przygotowuje plik .htaccess aby wspierał wydajne cachowanie</li>
<li><a href="http://html5boilerplate.com/docs/#Build-script">kilka innych operacji</a></li>
</ul>
<p>Oczywiście pierwsze co chciałem zrobić ,to zastosować te wszystkie operacje na swoim własnym projekcie. Okazało się jednak, że nie udało się tego zrobić tak bezboleśnie jakbym sobie życzył. Po pierwsze musiałem trochę pogrzebać w skrypcie anta, żeby pozbyć się nie chcianych opcji (.htaccesa) bo inaczej cały proces się wywalał. Po dalszych walkach okazało się, że cały build system działa najlepiej z szkieletem stworzonym przez HTML5BP (ewentualnie lekko modyfikowanym w ramach opcji).  Mimo to uważam, że jest to kawał porządnej roboty a wykorzystanie Anta-a powoduje że przy odrobinie pracy możemy wyciągnąć tylko interesujące nas elementy i stworzyć niezależny build system.</p>
<h1>Na koniec</h1>
<p>Jestem pod wrażeniem ilością wiedzy i przemyślenia wrzuconą w te narzędzia. Moim zdaniem naprawdę może się przydać w codziennej pracy. A nawet jeżeli nie będziecie wykorzystywać wszystkiego co zostało zaoferowane  koniecznie sprawdźcie <a href="http://html5boilerplate.com/docs/#Home">dokumentację zastosowanych rozwiązań webowych</a>.</p>
<p>Jeszcze na koniec prezentacja, którą stworzył Paul Irish na temat wykorzystania <a href="http://html5boilerplate.com/">HTML5BP</a>.<br />
<iframe width="480" height="390" src="http://www.youtube.com/embed/OXpCB3U_4Ig" frameborder="0" allowfullscreen></iframe><br />
<a href="http://html5boilerplate.com/">Strona projektu</a></p>
<p>Strony wykorzystujące HTML5BP:</p>
<p><a href="http://www.c7.nokia.be/contests">Nokia C7 Belgium</a></p>
<p><a href="http://www.nikeskateboarding.com/">Nike Skateboarding</a></p>
<img src="http://feeds.feedburner.com/~r/Frontendpl/~4/oW8bbKOFmTM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://frontend.pl/2011/04/html5-boilerplate-to-nie-jest-nastepny-framework-js-owy/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://frontend.pl/2011/04/html5-boilerplate-to-nie-jest-nastepny-framework-js-owy/</feedburner:origLink></item>
		<item>
		<title>6 świetnych eksperymentów z WebGl-em</title>
		<link>http://feedproxy.google.com/~r/Frontendpl/~3/Q9OYQCL_7EY/</link>
		<comments>http://frontend.pl/2011/04/6-swietnych-eksperymetnow-z-webgl-em/#comments</comments>
		<pubDate>Mon, 18 Apr 2011 05:06:04 +0000</pubDate>
		<dc:creator>Piotr Gawle</dc:creator>
				<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://frontend.pl/?p=841</guid>
		<description><![CDATA[Śledząc rozwój standardów webowych mam wrażenie, że czeka nas jeszcze dużo czasu zanim bezboleśnie będziemy mogli z nich skorzystać i zanim wszyscy gracze dojdą do jakiegoś konsensusu. Dlatego też tak się zdziwiłem kiedy natrafiłem na artykuł z przykładami możliwości WebGl-a. Nie sądziłem, że prace są już tak zaawansowane i wyglądają tak dobrze. Zresztą sprawdźcie sami! [...]]]></description>
			<content:encoded><![CDATA[<p>Śledząc rozwój standardów webowych mam wrażenie, że czeka nas jeszcze dużo czasu zanim bezboleśnie będziemy mogli z nich skorzystać i zanim wszyscy gracze dojdą do jakiegoś konsensusu. Dlatego też tak się zdziwiłem kiedy natrafiłem na artykuł z przykładami możliwości WebGl-a. Nie sądziłem, że prace są już tak zaawansowane i wyglądają tak dobrze. Zresztą sprawdźcie sami!</p>
<h1>1.  <a href="http://www.playtankworld.com/">Tankworld</a></h1>
<p>Prawdziwa gra! Można pojeździć czołgiem się postrzelać. Na chromie i FF dziala plynnie i bezproblemowo.<br />
<a href="http://www.playtankworld.com/"><img src="http://frontend.pl/wp-content/uploads/2011/04/tankworld.png" alt="" title="tankworld" width="400" height="240" class="alignnone size-full wp-image-848" /></a></p>
<h1>2.  <a href="http://helloracer.com/webgl/">HelloRacer™ WebGL</a></h1>
<p>Ruchomy model samochodu F1.<br />
<a href="http://helloracer.com/webgl/"><img src="http://frontend.pl/wp-content/uploads/2011/04/car.png" alt="" title="car" width="400" height="205" class="alignnone size-full wp-image-853" /></a></p>
<h1>3.  <a href="http://webglsamples.googlecode.com/hg/aquarium/aquarium.html">WebGL Aquarium</a></h1>
<p>Akwarium z rybami. Możecie modyfikować liczbę ryb widoczną na ekranie do porównania wydajności.<br />
<a href="http://webglsamples.googlecode.com/hg/aquarium/aquarium.html"><img src="http://frontend.pl/wp-content/uploads/2011/04/akwa.png" alt="" title="akwa" width="400" height="223" class="alignnone size-full wp-image-856" /></a></p>
<h1>4.  <a href="http://fractal.io/">Fractal Lab</a></h1>
<p>Zaawansowany przykład. Obserwujemy blok i w czasie rzeczywistym możemy zmieniać jego właściwości. Twórcy nawet pokazali <a href="http://vimeo.com/20687741">video</a> z prezentacją co jest możliwe.<br />
<a href="http://fractal.io/"><img src="http://frontend.pl/wp-content/uploads/2011/04/fractal.png" alt="" title="fractal" width="400" height="193" class="alignnone size-full wp-image-861" /></a></p>
<h1>5.  <a href="http://chrysaora.com/">Chrysaora</a></h1>
<p>Ocean pełen meduz.<br />
<a href="http://chrysaora.com/"><img src="http://frontend.pl/wp-content/uploads/2011/04/sea.png" alt="" title="sea" width="400" height="196" class="alignnone size-full wp-image-865" /></a></p>
<h1>6.  <a href="http://alteredqualia.com/three/examples/webgl_materials_video.html">Sintel Goes Boom</a></h1>
<p>Trailer filmu wyświetlający się na obracających się kostkach. Super połączenie WebGl-a i Video.  W działaniu przypomina trochę inny eksperyment (<a href="http://craftymind.com/factory/html5video/CanvasVideo.html">HTML5 Video Destruction</a>)<br />
<a href="http://alteredqualia.com/three/examples/webgl_materials_video.html"><img src="http://frontend.pl/wp-content/uploads/2011/04/brick.png" alt="" title="brick" width="400" height="213" class="alignnone size-full wp-image-867" /></a></p>
<p><a href="http://www.queness.com/post/7459/8-stunning-javascript-webgl-demonstrations">Źródło</a></p>
<p>Jak sami chcecie kodować trochę materiałów :<br />
<a href="http://learningwebgl.com/blog/?page_id=1217">Lerning WebGl (ang)</a><br />
<a href="https://developer.mozilla.org/en/WebGL">Dokumentacja Mozilli(ang)</a></p>
<img src="http://feeds.feedburner.com/~r/Frontendpl/~4/Q9OYQCL_7EY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://frontend.pl/2011/04/6-swietnych-eksperymetnow-z-webgl-em/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://frontend.pl/2011/04/6-swietnych-eksperymetnow-z-webgl-em/</feedburner:origLink></item>
		<item>
		<title>Devmeetings  – tym razem po stronie serwera</title>
		<link>http://feedproxy.google.com/~r/Frontendpl/~3/d6xG3ysvBVQ/</link>
		<comments>http://frontend.pl/2011/04/devmeetings-tym-razem-po-stronie-serwera/#comments</comments>
		<pubDate>Sat, 16 Apr 2011 08:16:38 +0000</pubDate>
		<dc:creator>Piotr Gawle</dc:creator>
				<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://frontend.pl/?p=874</guid>
		<description><![CDATA[Własnie dostałem wiadomość o nowym cyklu szkoleń prowadzonych przez zespół devmeetings.pl. Tym razem przez dwa dni będą poruszane tematy wykorzystania Javascriptu po stronie serwera. Najlepiej oddam chłopakom głos: Podczas warsztatów zaimplementujemy rozbudowaną aplikację typu WebBased IDE. Będzie to edytor JavaScript, uzupełniony o obsługę testów jednostkowy dla pisanego kodu, kontrolę wersji (live), zarządzanie plikami projektu oraz obsługę repozytorium [...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-880" title="dev" src="http://frontend.pl/wp-content/uploads/2011/04/dev.png" alt="" width="400" height="196" /><br />Własnie dostałem wiadomość o nowym cyklu szkoleń prowadzonych przez zespół <a href="http://devmeetings.pl/">devmeetings.pl</a>. Tym razem przez dwa dni będą poruszane tematy wykorzystania Javascriptu po stronie serwera. Najlepiej oddam chłopakom głos:</p>
<blockquote><p>Podczas warsztatów <strong>zaimplementujemy rozbudowaną aplikację typu WebBased IDE</strong>. Będzie to edytor JavaScript, uzupełniony o obsługę testów jednostkowy dla pisanego kodu, kontrolę wersji (live), zarządzanie plikami projektu oraz obsługę repozytorium git.</p></blockquote>
<p>&nbsp;</p>
<blockquote><p>Skorzystamy z następujących rozwiązań:</p>
<ul>
<li>NodeJS – najbardziej rozpoznawalna nazwa w świecie serwerowego JavaScriptu, bardzo lekki framework pozwalający na <strong>szybkie tworzenie serwerów HTTP lub socketowych</strong>. Można go zareklamować zdaniem: “kompletny serwer w kilkanaście linii kodu”.</li>
<li>RingoJS – gratka dla programistów Javy, <strong>framework oparty o interpreter Rhino</strong>. Daje możliwość wykorzystania <strong>tysięcy istniejących bibliotek języka Java</strong>, dedykowany interfejs do Hibernate, tworzenie servletów, a wszystko to z poziomu JavaScriptu. Do tego łatwy deployment, możliwość skorzystania z Google App Engine.</li>
<li>V8CGI – lekki serwer webowy (moduł Apache’a), wykorzystuje natywny, obecnie <strong>najszybszy z istniejących interpreter JavaScriptu V8</strong> (stworzony przez Google). Dobry i szybki robotnik, który pozwoli na sprawne połączenie z bazą danych, kompresję ZIP, obsługę XML, dostarczy mechanizmRPC, możliwość generowania obrazów oraz wiele innych operacji typowych dla rozwiązań webowych.</li>
</ul>
</blockquote>
<p>Szkolenia odbędą się</p>
<ul>
<li><strong>Poznań, 14 maja</strong></li>
<li><strong> </strong><strong><strong>Wrocław, 21 maja</strong></strong></li>
<li><strong>Kraków, 18 czerwca </strong></li>
</ul>
<p>Ważna wiadomość: szkolenia są <strong>za darmo!</strong></p>
<p>Po doświadczeniach z poprzednimi szkoleniami (&#8220;gry w JS&#8221;) i znając prowadzącego mogę powiedzieć jedno : Polecam!</p>
<p><a href="http://devmeetings.pl/trainings/javascript-na-serwerze-ringojs-v8cgi-i-nodejs">Pełne informacje o szkoleniu</a></p>
<img src="http://feeds.feedburner.com/~r/Frontendpl/~4/d6xG3ysvBVQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://frontend.pl/2011/04/devmeetings-tym-razem-po-stronie-serwera/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://frontend.pl/2011/04/devmeetings-tym-razem-po-stronie-serwera/</feedburner:origLink></item>
	</channel>
</rss><!-- This Quick Cache file was built for (  frontend.pl/feed/ ) in 0.42762 seconds, on Feb 4th, 2012 at 4:49 am UTC. --><!-- This Quick Cache file will automatically expire ( and be re-built automatically ) on Feb 4th, 2012 at 5:49 am UTC --><!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --><!-- Quick Cache Is Fully Functional :-) ... A Quick Cache file was just served for (  frontend.pl/feed/ ) in 0.00024 seconds, on Feb 4th, 2012 at 4:49 am UTC. -->

