<?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>Ferrante.pl - simplicity of web programming &#187; Software</title>
	<atom:link href="http://ferrante.pl/category/tech/software/feed/" rel="self" type="application/rss+xml" />
	<link>http://ferrante.pl</link>
	<description>Technologie internetowe, PHP5, Python, Javascript. Publicystyka i kursy w najlepszym wydaniu.</description>
	<lastBuildDate>Tue, 01 May 2012 18:21:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Wyszedł Firefox 4</title>
		<link>http://ferrante.pl/frontend/javascript/wyszedl-firefox-4/</link>
		<comments>http://ferrante.pl/frontend/javascript/wyszedl-firefox-4/#comments</comments>
		<pubDate>Tue, 22 Mar 2011 14:49:46 +0000</pubDate>
		<dc:creator>ferrante</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://ferrante.pl/?p=1202</guid>
		<description><![CDATA[Nowy, o wiele szybszy, bardziej bezpieczny. Jest już nowy Firefox 4, do pobrania którego gorąco zapraszam. Nowe ficzery HTML5 teraz w zasięgu ręki dla o wiele szerszej publiczności! Yay! Tutaj dowiesz się, co nowego w czwartej wersji. M.in. o wiele szybszy JavaScript, zmodyfikowany interfejs i wiele innych! Polecam też zobaczyć jak szybko i w jakich [...]]]></description>
			<content:encoded><![CDATA[<p>Nowy, o wiele szybszy, bardziej bezpieczny. Jest już nowy <strong>Firefox 4</strong>, <a href="http://firefox.com">do pobrania którego gorąco zapraszam</a>. Nowe ficzery HTML5 teraz w zasięgu ręki dla o wiele szerszej publiczności! Yay!</p>
<p>Tutaj dowiesz się, <a href="https://www.mozilla.com/en-US/firefox/video/?video=fx4-whatsnew">co nowego w czwartej wersji</a>. M.in. o wiele szybszy JavaScript, zmodyfikowany interfejs i wiele innych!</p>
<p>Polecam też zobaczyć <a href="http://glow.mozilla.org/">jak szybko i w jakich ilościach jest pobierana</a> nowa wersja Firefoksa. Jest też bardzo ciekawe <a href="http://twitterparty.mozilla.org/pl">Twitter Party</a> &#8211; efekt &#8222;wow&#8221; murowany.</p>
]]></content:encoded>
			<wfw:commentRss>http://ferrante.pl/frontend/javascript/wyszedl-firefox-4/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Dataview.js demo</title>
		<link>http://ferrante.pl/frontend/javascript/dataview-js-demo/</link>
		<comments>http://ferrante.pl/frontend/javascript/dataview-js-demo/#comments</comments>
		<pubDate>Thu, 25 Nov 2010 19:33:56 +0000</pubDate>
		<dc:creator>ferrante</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://ferrante.pl/?p=924</guid>
		<description><![CDATA[Dodałem właśnie pierwsze demo Dataview.js. Biblioteka jest generalnie skierowana do trochę większych projektów, ale jakoś dało się zmieścić cały koncept w czymś dość prostym. Liczę, że uświadomi Wam to trochę, czym tak naprawdę jest Dataview.js.]]></description>
			<content:encoded><![CDATA[<p style="font-weight: normal !important;">Dodałem właśnie <a href="http://dataviewjs.com/demo/">pierwsze demo Dataview.js</a>.</p>
<p>Biblioteka jest generalnie skierowana do trochę większych projektów, ale jakoś dało się zmieścić cały koncept w czymś dość prostym. Liczę, że uświadomi Wam to trochę, czym tak naprawdę jest Dataview.js.</p>
]]></content:encoded>
			<wfw:commentRss>http://ferrante.pl/frontend/javascript/dataview-js-demo/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Dataview.js</title>
		<link>http://ferrante.pl/frontend/javascript/dataview-js/</link>
		<comments>http://ferrante.pl/frontend/javascript/dataview-js/#comments</comments>
		<pubDate>Tue, 23 Nov 2010 20:02:44 +0000</pubDate>
		<dc:creator>ferrante</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://ferrante.pl/?p=888</guid>
		<description><![CDATA[Kilka moich ostatnich tygodni to praca nad nową biblioteką open-source &#8211; Dataview.js. Pomaga ona zachować porządek w naszych aplikacjach, które silnie korzystają z danych przesyłanych via JSON. Wszystko dzięki temu, że możemy zdefiniować metody, które jako jedyne w aplikacji mogą zmieniać wartości w modelu danych. Jak to działa? Przyjmijmy, że mamy taki obiekt z danymi: [...]]]></description>
			<content:encoded><![CDATA[<p>Kilka moich ostatnich tygodni to praca nad nową biblioteką open-source &#8211; <a href="http://dataviewjs.com">Dataview.js</a>. Pomaga ona zachować porządek w naszych aplikacjach, które silnie korzystają z danych przesyłanych via JSON. Wszystko dzięki temu, że możemy zdefiniować metody, które jako jedyne w aplikacji mogą zmieniać wartości w modelu danych. Jak to działa?</p>
<p><a href="http://ferrante.pl/wp-content/uploads/2010/11/dataview.png"><img src="http://ferrante.pl/wp-content/uploads/2010/11/dataview.png" alt="" title="dataview" width="704" height="363" class="alignnone size-full wp-image-889" /></a></p>
<p><span id="more-888"></span></p>
<p>Przyjmijmy, że mamy taki obiekt z danymi:</p>
<pre><code>{
	name: "John Doe",
	arr: [1, 2, 3],
	obj: {
		foo: "bar"
	}
}</code></pre>
<p>Modyfikują go w naszym systemie różne zdarzenia i moduły, na przykład takie:</p>
<pre><code>$("#foo").click(function() {
	data.name = "Jan Kowalski;
});
$("#bar").pick(function(name) {
	data.name = name;
});</code></pre>
<p>Można zaradzić takiemu swobodnemu dostępowi do danych przy użyciu <span class="f">Dataview.js</span>.</p>
<p>Tworzymy najpierw obiekt Dataview:</p>
<pre><code>var data = dataview({
	name: "John Doe",
	arr: [1, 2, 3],
	obj: {
		foo: "bar"
	}
});</code></pre>
<p>Następnie musimy mieć odpowiedni widok, który będzie o tyle uprzywilejowany, że będzie zawierał metody, które jako jedyne będą mogły zmieniać cokolwiek w <span class="f">data</span>:</p>
<pre><code>var view = {
	updateName: function () {
		// [...]
		/this.update("Leonardo da Vinci"); // zaktualizuje imię i nazwisko
	},
	removeFromArr: function () {
		// [...]
		this.remove(1); // usunie element z pierwszego indeksu tablicy
	},
	addToObj: function () {
		// [...]
		this.add("key", "value"); // doda element "key" o wartości "value" do obiektu
	}
};</code></pre>
<p>Musimy teraz spoić całość tak, by metody widoku rzeczywiście mogły korzystać z <span class="f">this.update/add/remove</span>. Wszystko odbywa się poprzez specjalne połączenie widoku z danymi i funkcje <strong>connect</strong> oraz <strong>on</strong>. Pierwsza odpowiada za połączenie z widokiem, w drugiej definiujemy, które metody mają modyfikować wybrane przez nas własności:</p>
<pre><code>data.connect(view).on({
	name: "updateName", // view.updateName zmodyfikuje 'name'
	arr: "removeFromArr", // view.removeFromArr zmodyfikuje 'arr'
	obj: "addToObj" // view.addToObj zmodyfikuje 'obj'
});</code></pre>
<p>Można też to zrobić w ten sposób, Dataview jest bardzo elastyczny:</p>
<pre><code>data.connect(view).on("name", "updateName").on("arr", "removeFromArr").on("obj", "addToObj");</code></pre>
<p>Jeśli już połączyliśmy metody z odpowiednimi własnościami obiektu danych, pora używać metod widoku gdziekolwiek. I tak analogicznie może to wyglądać w ten sposób:</p>
<pre><code>$("#foo").click(function() {
	view.updateName();
	view.removeFromArr();
	view.addToObj();
});
$("#bar").pick(function(name) {
	view.updateName(name);
});</code></pre>
<p>Nasze dane wyglądać będą teraz tak:</p>
<pre><code>{
	name: "Leonardo da Vinci",
	arr: [1, 3],
	obj: {
		foo: "bar",
		key: "value"
	}
}</code></pre>
<p>Oczywiście możemy używać callbacków, by śledzić zmiany danych w obrębie aplikacji:</p>
<pre><code>data.onRemove({
	arr: function (index) {
		console.log("Usunięto element z tablicy o indeksie:", index)
	}
});</code></pre>
<pre><code>view.removeFromArr();
// Usunięto element z tablicy o indeksie: 1</code></pre>
<p>Do dyspozycji mamy też inne ich rodzaje: <span class="f">onAdd</span> i <span class="f">onUpdate</span>.</p>
<p>Największą jednak siłą Dataview jest to, że możemy łatwo sprawić, że zdefiniowane wyżej własności, jak wspomniałem, mogą być modyfikowane tylko i wyłącznie przez wybrane metody. Jak to zrobić? Z pomocą przychodzi funkcja <span class="f">lock()</span>:</p>
<pre><code>data.connect(view).on({
	name: "updateName",
	arr: "removeFromArr",
	obj: "addToObj"
}).lock();</code></pre>
<p>Pamiętaj, by zawrzeć ją zawsze na końcu &#8222;połączenia&#8221;.</p>
<p>W ten sposób nie możemy już dodawać nowych widoków do danych:</p>
<pre><code>data.connect(view).on({
	name: "somethingElse"
});
// "Couldn't connect new methods. Locked property: name"</code></pre>
<p>Ani też zmienić danych poza metodami, które zdefiniowaliśmy:</p>
<pre><code>data.update("arr", 1, "new value");</code></pre>
<p>Wartość tablicy <span class="f">arr</span> na pozycji 1 <strong>nie zmieni się</strong> na <span class="f">new value</span>.</p>
<p>O Dataview.js możecie poczytać na stronie biblioteki &#8211; <a href="http://dataviewjs.com">Dataviewjs.com</a>. Jest ona napisana zgodnie z duchem TDD, więc na <a href="https://github.com/ferrante/Dataview.js">GitHubie</a> znajdziecie również testy jednostkowe.</p>
]]></content:encoded>
			<wfw:commentRss>http://ferrante.pl/frontend/javascript/dataview-js/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Front-Trends 2010 &#8211; decydująca faza</title>
		<link>http://ferrante.pl/frontend/javascript/front-trends-2010-decydujaca-faza/</link>
		<comments>http://ferrante.pl/frontend/javascript/front-trends-2010-decydujaca-faza/#comments</comments>
		<pubDate>Sat, 09 Oct 2010 11:39:52 +0000</pubDate>
		<dc:creator>ferrante</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[ferrante.pl]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[W sieci...]]></category>

		<guid isPermaLink="false">http://ferrante.pl/?p=855</guid>
		<description><![CDATA[Zostały niecałe dwa tygodnie do konferencji Front-Trends 2010. Line-up wreszcie wygląda na ustabilizowany i wynika na to, że w stolicy Polski spotka się około 300 zwolenników dobrego front-endu. Została więc ostatnia prosta do tego wydarzenia. Nie ukrywam, że jestem dumny z listy prelegentów, którą udało nam się stworzyć. Nie chcieliśmy, by prezentacje były odgrzewanymi kotletami, [...]]]></description>
			<content:encoded><![CDATA[<p>Zostały niecałe dwa tygodnie do konferencji <a href="http://front-trends.com">Front-Trends 2010</a>. Line-up wreszcie wygląda na ustabilizowany i wynika na to, że w stolicy Polski spotka się około 300 zwolenników dobrego front-endu. Została więc ostatnia prosta do tego wydarzenia.</p>
<p>Nie ukrywam, że jestem dumny z listy prelegentów, którą udało nam się stworzyć. Nie chcieliśmy, by prezentacje były odgrzewanymi kotletami, dlatego tematyka eventu jest bardzo różnorodna. Na pewno postawiliśmy na urządzenia mobilne. Będzie o tym jak projektować dla nich UX, o webOS, PhoneGapie, wydajności JavaScriptu i tak dalej. Opowiedzą o tym ludzie, związani z Nokią, Vodafone czy Palmem. Czy potrzeba do tego większej rekomendacji?</p>
<p>Ponadto, nie mogło obyć się bez nowości, jeśli chodzi o web development jako taki. Usłyszymy o HTML5, a także o CSS3 w dwugodzinnej sesji, omawiającej większość <em>ficzerów</em> tej wersji.</p>
<p>Całość dopełni panel dyskusyjny, który postara się odpowiedzieć na pytanie o przyszłość standardów sieciowych, a także JavaScriptu. W związku z tym prośba do Was. Jeśli chcecie zadać jakieś pytanie Douglasowi Crockfordowi, Tantekowi Çelikowi lub PPK, proszę zostawcie je w komentarzu pod postem. Prowadzimy ostateczne rozmowy, by panel był streamowany na żywo, a także dostępny w postaci video po konferencji.</p>
<p>Jeśli chodzi o inne, ważne informacje, wsparła nas <a href="http://mozilla.org">Mozilla</a>, która została oficjalnym partnerem Front-Trends. Jesteśmy z tego faktu dumni, tym bardziej, że organizacja ta wyznaje podobne wartości i przekonania do naszych. Oprócz tego, <a href="http://diary.braniecki.net/">Zbigniew Braniecki</a> i koledzy postarają się przygotować kilka niespodzianek dla uczestników. Nie mogę się doczekać!</p>
<p>Cały czas pracujemy nad nagrodami. Jeśli wszystko pójdzie po naszej myśli, trochę tego będzie, a mianowicie książki, telefony, sprzęt komputerowy oraz masa innych gadgetów. Trzymajcie kciuki, by wszystkie rozmowy poszły wzorowo.</p>
<p>Podsumowując, zapowiadają się bardzo ciekawe dwa dni. Jako organizator nie ukrywam, że jestem wyjątkowo podekscytowany, ponieważ będzie to zdecydowanie pionierskie przedsięwzięcie, jeśli chodzi o jego skalę. Wierzę, że Front-Trends zapoczątkują coś bardzo fajnego w polskim front-endzie. Szkoda tylko, że nie mam czasu, by blogować o bardziej technicznych sprawach. Jak zawsze mam nadzieję, że to się zmieni. Być może nie tutaj, a na innym blogu.</p>
<p>PS Zostało jeszcze trochę biletów &#8211; <a href="http://front-trends.com/registration">http://front-trends.com/registration</a></p>
]]></content:encoded>
			<wfw:commentRss>http://ferrante.pl/frontend/javascript/front-trends-2010-decydujaca-faza/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Jak (prawie) wynalazłem Zen Coding</title>
		<link>http://ferrante.pl/frontend/w-sieci/jak-prawie-wynalazlem-zen-coding/</link>
		<comments>http://ferrante.pl/frontend/w-sieci/jak-prawie-wynalazlem-zen-coding/#comments</comments>
		<pubDate>Fri, 27 Aug 2010 10:22:41 +0000</pubDate>
		<dc:creator>ferrante</dc:creator>
				<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[W sieci...]]></category>

		<guid isPermaLink="false">http://ferrante.pl/?p=816</guid>
		<description><![CDATA[Ostatnio przez przypadek dokopałem się do mojego wpisu sprzed trzech lat, gdzie snułem frywolne wizje, jakby tutaj jeszcze usprawnić kodowanie HTML. Post nazwany został HTML futuro?, a koncepcje w nim zawarte, okazuje się, przypominają bardzo ideę Zen Coding. O co chodzi w Zen Coding? Popatrzcie na film instruktażowy. W skrócie jest to plugin, który pozwala [...]]]></description>
			<content:encoded><![CDATA[<p>Ostatnio przez przypadek dokopałem się do mojego wpisu sprzed trzech lat, gdzie snułem frywolne wizje, jakby tutaj jeszcze usprawnić kodowanie HTML. Post nazwany został <a href="http://ferrante.pl/2007/03/11/html-futuro/">HTML futuro?</a>, a koncepcje w nim zawarte, okazuje się, przypominają bardzo ideę Zen Coding.<span id="more-816"></span></p>
<p>O co chodzi w Zen Coding? Popatrzcie na <a href="http://vimeo.com/7405114">film instruktażowy</a>. W skrócie jest to plugin, który pozwala w naszym edytorze napisać np. tak:</p>
<pre><code>div#container&gt;p.article</code></pre>
<p>Po czym dostaniemy następujący kod:</p>
<pre><code>&lt;div id="container"&gt;
     &lt;p class="article"&gt;&lt;/p&gt;
&lt;/div&gt;</code></pre>
<p>Ja z kolei zaproponowałem coś takiego:</p>
<pre><code>&lt;div#container:p.article&gt;&lt;/p:div&gt;</code></pre>
<p>Niestety wyobraźni starczyło tylko na to, ale mogę być dumny, że byłem naprawdę blisko ;-). Przy okazji bardzo polecam koncept Zen Coding, który pozwala zaoszczędzić mnóstwo czasu!</p>
]]></content:encoded>
			<wfw:commentRss>http://ferrante.pl/frontend/w-sieci/jak-prawie-wynalazlem-zen-coding/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Dlaczego Mac?</title>
		<link>http://ferrante.pl/frontend/software/dlaczego-mac/</link>
		<comments>http://ferrante.pl/frontend/software/dlaczego-mac/#comments</comments>
		<pubDate>Thu, 26 Aug 2010 16:22:01 +0000</pubDate>
		<dc:creator>ferrante</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://ferrante.pl/?p=798</guid>
		<description><![CDATA[Po prowokującej notce na temat zakupu Maka, czas na kilka zdań wyjaśnienia, co, jak i dlaczego. Faktem jest, że nie miałem zbyt dużo czasu, by napisać więcej, w dodatku ręce automatycznie chciały ozdobić jakkolwiek tekst i wyszli z tego &#8222;szanowani front-endowcy z Makami&#8221;. Wierzę, że przebaczyliście mi to, bo to ja sam głównie się nie [...]]]></description>
			<content:encoded><![CDATA[<p>Po prowokującej notce na temat zakupu Maka, czas na kilka zdań wyjaśnienia, co, jak i dlaczego.<span id="more-798"></span></p>
<p>Faktem jest, że nie miałem zbyt dużo czasu, by napisać więcej, w dodatku ręce automatycznie chciały ozdobić jakkolwiek tekst i wyszli z tego &#8222;szanowani front-endowcy z Makami&#8221;. Wierzę, że przebaczyliście mi to, bo to ja sam głównie się nie szanowałem, nie kupując wcześniej maszyny z kompletnie inną filozofią, bo naturalnie nic nie mam do ludzi posiadających inne komputery. Mimo że na Windowsa przeklinałem prawie codziennie. Ale do rzeczy. Uprzednio proszę też o to, by nie tłumaczyć mi w komentarzach, że jest inaczej, skoro coś mi się podoba i podpisuje się pod czymś obiema rękoma. Natomiast fajnie byłoby, gdyby wynikła rzetelna dyskusja na temat pewnych rozwiązań dla konkretnej grupy osób. Poza tym, ten post nie ma zamiaru nikogo przekonywać, spisuje tutaj moje spostrzeżenia na temat nowej maszyny, o której swego czasu mówiłem różne, niepoparte argumentami rzeczy, wynikające głównie z tego, ze chciałem, a nie miałem pieniędzy.</p>
<p>Stan wyjściowy do kupna Maka wyglądał następująco. Windows (przeplatany Linuxami). Bodaj od 98 do Visty. Brzydki interfejs, toporność przy instalacji softu deweloperskiego, choćby Perla, SVNa (np. grzebanie w zmiennych systemowych), wkurzający menu start, gdzie musisz przejechać nieskończenie wiele poziomów, by dostać się do interesującego Cię punktu (tak tak, Launchy), słaba typografia (polecam tutaj <a href="http://paweltkaczyk.midea.pl/">wykłady Tkaczyka</a>), toporna konsola i ogólna niechęć. Czułem po prostu, że robię zbyt wiele, choć teoretycznie nie musiałbym. To tylko kilka z powodów, a jest ich więcej. Ważne jednak, że jest jeden główny &#8211; czułem się po prostu zmęczony. Tak, jak czujecie się zmęczeni przebywaniem non-stop z daną osobą, tak, jak nudzi Was kolejny sezon ulubionego, choć odgrzewanego serialu, czy kolejne wybory, gdzie startują ludzie, którzy kręcą się wokół pojęcia zwanego władzą już od 20 lat. Po prostu. Użeranie się z tym, co znam od kilkunastu lat i nie jest dla mnie idealne doprowadzało mnie wręcz do szewskiej pasji. Oczywiście, większość problemów mógłbym pewnie załatwić odpowiednią konfiguracją, instalacją kolejnego softu, grzebaniem, zmienianiem (&#8222;<em>no, no, to teraz tę .dll&#8217;kę to wrzuć do /Windows/, a tamto .ini do System32.. aaa REJESTR człowieku, rejestr, 10 linijek do zmiany!</em>&#8222;). Mógłbym też analogicznie zrobić sobie przerwę od serialu, od osoby, z którą przebywam np. w pracy, wyemigrować, ale nie o to chodzi, bo rodzi to zupełnie inne owoce, niż zamierzone. Powiedziałem sobie raz na zawsze &#8211; dość tego, szukam alternatywy!</p>
<p>Taką okazał się MacBook Pro. Wielokrotnie podpatrywałem różne sztuczki u znajomych koderów, używałem go też wcześniej przez krótki czas i byłem po prostu ciekawy, jak zadziała on na codziennym polu bitwy. Finalne wrażenia są bardzo dobre. Zarówno system, jak i wykonanie komputera utwierdzają mnie w przekonaniu, że dokonałem prawidłowego wyboru.</p>
<p>Co takiego jest w Maku, co sobie cenię? Zacznijmy od Mac OS X, czyli systemu operacyjnego. Jest bezproblemowy w użytkowaniu. Po prostu. Nie będę tutaj dołączał tekstów o niezawieszaniu się, <em>blue screenach</em> i podobnych. Nigdy nie lubiłem tego typu porównań z Windows. Zacząłem jednak używać OS X i po kilku godzinach zapomniałem o wszelkich uciążliwościach, związanych z produktem Microsoftu, których doświadczyłem lub które opisywali inni. Nie przeszkadza umieszczenie przycisku zamknij po lewej stronie &#8211; przyzwyczaiłem się do tego naprawdę bardzo szybko. Poza tym urzekł mnie Dock, choć to nic rewolucyjnego, to tak powinno wyglądać menu start. Przede wszystkim jednak Mac OS X to świetny wygląd, w większości bardzo przemyślany UX oraz przepiękne wygładzanie fontów (Helvetica Neue, powstań!). Nie wiem też dlaczego, ale dzięki Mac OS X człowiek czuję większą kontrolę nad tym, co instaluje na swoim komputerze. Administracja programami jest dziecinnie prosta, instalacja jeszcze bardziej (przerzucasz ikonkę do folderu &#8222;aplikacje&#8221; i już!). Do tego świetny Spotlight, który jeszcze nigdy mnie nie zawiódł w wyszukiwaniu tego, czego szukałem. Nie rozstaje się już ze skrótem <span class="f">⌘+SPACJA</span>. Oczywiście należy też wspomnieć o świetnym <em>dashboardzie</em>, wirtualnych pulpitach &#8211; <em>spaces</em>, świetnym Keynocie do prezentacji (przewyższającym znacznie PowerPointa). Bardzo zadowolony jestem również z TextMate&#8217;a &#8211; Bundles i kilka innych rozwiązań bije na głowę wszystko inne, co miałem okazję do tej pory spotkać. Wielkim plusem tego systemu jest to, że nie narzuca się użytkownikowi, a przynajmniej mam takie wrażenie. Chcesz udostępnić sieć? Jeden klik tam, gdzie trzeba. Maksimum dwa ekrany do ustawienia, wszystko przejrzyste, bez dodatkowych czynności. To samo domyślne aplikacje, takie jak Mail czy iCal. Są dobrze wykonane, świetnie wyglądają i miałem nawet przez chwilę wrażenie, że są płatne i ktoś przez przypadek mi je zainstalował. Nie mogę niestety tego powiedzieć o Outlooku. Fajny jest też iPhoto z integracją z Facebookiem. Konsola linuxowa to coś, co jest wisienką na torcie. Moja ulubiona komenda to <span class="f">mate .</span> &#8211; uruchomiona w określonym folderze stworzy nowy projekt w TextMate&#8217;cie z umieszczonych tam folderów i plików. Uwielbiam też aplikację Snippets, która fajnie przechowuje nasze kawałki kodu, pozwalając je świetnie otagować i mieć do nich dostęp z każdego miejsca w systemie. Przyjemną sprawą jest również domyślnie zainstalowany SVN, Python, czy Ruby. Czy wymieniłem już szybkie uruchomienie komputera i wręcz ekspresowe wybudzanie się? Takich smaczków jest naprawdę bardzo dużo i musiałbym pisać ten tekst jeszcze co najmniej miesiąc, by przypomnieć sobie i wymienić je wszystkie.</p>
<p>Co do samego wykonania Maka &#8211; jest świetne. Urządzenie jest zrobione solidnie, bardzo ładnie wygląda, a LCD jest po prostu wybornej jakości. Na uwagę zasługuje gładzik &#8211; dzięki specjalnym gestom (np. dwa palce do scrollowania) wręcz uzależniłem się od niego i rzadko używam myszki. Wadą dla mnie są natomiast tylko dwa sloty USB oraz Mini Display Port, przez który musisz zaopatrzyć się dodatkowo w tonę przejściówek, które tanie nie są.</p>
<p>Oczywiście, nie jestem ślepy i dostrzegam również wady urządzeń, które posiadam. W przypadku Maka będzie to zaskakująca niestabilność w działaniu Firefoxa, który potrafi się wykrzaczyć przy niepozornych czynnościach oraz współpraca z Flashem (choć Linuxy też mają z tym problem), kiedy oglądając na przykład YT wiatraczek potrafi zagłuszyć wszystko inne.</p>
<p>Co do testowania Internet Explorera &#8211; nie czułem jeszcze takiej potrzeby, aczkolwiek będzie do tego służył mój stary komputer. Jeśli zaś chodzi o wszelakiego rodzaju pliki Excela i Worda &#8211; nie miałem jeszcze z tym większych problemów, wszystko da załatwić się przy użyciu Numbers, Pages bądź Open Office&#8217;a. Z drugiej strony, nie używam zaawansowanych arkuszy czy dokumentów.</p>
<p>Kończąc tego posta mam świadomość, ze nie wymieniłem wielu zalet tego komputera, jak i systemu (mnóstwo świetnych skrótów klawiszowych, rozwiązań w TextMate&#8217;cie i konsoli), a także pewnie zapomniałem o jakichś drobnych wadach. W każdym razie to, co mówi wszystko o tym komputerze to prostota i piękno. Jestem estetą, lubię mądre i ładne rozwiązania. Mak oferuje wszystko to, a nawet więcej. Wcześniej, mimo że jako tako <em>siedzę</em> w tej branży, nie miałem nawet pojęcia o połowie jego funkcji. Ten komputer wiele zyskuje dopiero wtedy, kiedy zaczniesz go używać i poznawać różne zakamarki. Inaczej nie ma sensu się o nim wypowiadać.</p>
]]></content:encoded>
			<wfw:commentRss>http://ferrante.pl/frontend/software/dlaczego-mac/feed/</wfw:commentRss>
		<slash:comments>31</slash:comments>
		</item>
		<item>
		<title>Żegnaj Windows PC&#8230;</title>
		<link>http://ferrante.pl/frontend/software/zegnaj-windows-pc/</link>
		<comments>http://ferrante.pl/frontend/software/zegnaj-windows-pc/#comments</comments>
		<pubDate>Sun, 18 Jul 2010 15:02:46 +0000</pubDate>
		<dc:creator>ferrante</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://ferrante.pl/?p=792</guid>
		<description><![CDATA[Tak, zrobiłem to, co każdy szanowany front-end developer powinien zrobić na początku &#8211; wreszcie kupiłem MacBooka Pro i pragnę jak najszybciej zapomnieć o istnieniu czegoś takiego jak Windows/Linux w kontekście webdevelopmentu. Moja frustracja kumulowała się od jakichś dwóch lat. Irytowało mnie swoją topornością prawie wszystko, w dodatku z zazdrością spoglądałem na przepiękny interfejs Mac OS [...]]]></description>
			<content:encoded><![CDATA[<p>Tak, zrobiłem to, co każdy szanowany front-end developer powinien zrobić na początku &#8211; wreszcie kupiłem MacBooka Pro i pragnę jak najszybciej zapomnieć o istnieniu czegoś takiego jak Windows/Linux w kontekście webdevelopmentu.<span id="more-792"></span></p>
<p>Moja frustracja kumulowała się od jakichś dwóch lat. Irytowało mnie swoją topornością prawie wszystko, w dodatku z zazdrością spoglądałem na przepiękny interfejs Mac OS X. Dziś z zachwytem rozpracowuję kolejne zakamarki tego systemu (Expose, Spotlight, gesty, dock, dashboard, mrr!), będąc też pod wrażeniem jakości wykonania całego laptopa. Na razie szukam dobrych aplikacji umilających życie zwykłego użytkownika, jak i developera, także wszelkie porady mocno wskazane!</p>
<p>Wkrótce dam tutaj jakąś szerszą relację i zdjęcia, ponieważ rozwiązałem też problem dużego monitora pod postacią Della 3008 WFP.</p>
]]></content:encoded>
			<wfw:commentRss>http://ferrante.pl/frontend/software/zegnaj-windows-pc/feed/</wfw:commentRss>
		<slash:comments>55</slash:comments>
		</item>
		<item>
		<title>tools.mozilla.com</title>
		<link>http://ferrante.pl/frontend/javascript/tools-mozilla-com/</link>
		<comments>http://ferrante.pl/frontend/javascript/tools-mozilla-com/#comments</comments>
		<pubDate>Tue, 07 Jul 2009 16:31:56 +0000</pubDate>
		<dc:creator>ferrante</dc:creator>
				<category><![CDATA[Drawter]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[W sieci...]]></category>

		<guid isPermaLink="false">http://ferrante.pl/?p=538</guid>
		<description><![CDATA[Chłopaki z labs.mozilla.com uruchomili ostatnio tools.mozilla.com &#8211; stronę, która skupia najfajniejsze i najbardziej przydatne programy, frameworki, skrypty i widgety dla webdeveloperów. Na początek wyselekcjonowano kilkadziesiąt produktów &#8211; między innymi jQuery, Firebug, czy mootools. W tym doborowym towarzystwie znalazło się miejsce dla Drawtera, który jako jedyny, jak na razie, reprezentuje Polskę. To jednak tylko początek &#8211; [...]]]></description>
			<content:encoded><![CDATA[<p>Chłopaki z <a href="http://labs.mozilla.com">labs.mozilla.com</a> uruchomili ostatnio <a href="http://tools.mozilla.com">tools.mozilla.com</a> &#8211; stronę, która skupia najfajniejsze i najbardziej przydatne programy, frameworki, skrypty i widgety dla webdeveloperów. Na początek wyselekcjonowano kilkadziesiąt produktów &#8211; między innymi jQuery, Firebug, czy mootools. W tym doborowym towarzystwie znalazło się miejsce dla <a href="http://drawter.com">Drawtera</a>, który jako jedyny, jak na razie, reprezentuje Polskę.</p>
<p>To jednak tylko początek &#8211; twórcy zapowiadają ambitne plany, a to czy się powiodą zależy tylko od Was. Otóż udostępniono <a href="http://spreadsheets.google.com/viewform?formkey=cjJTMzFrOGUtcXRYRm9rcUQtTDd4UkE6MA..">specjalny formularz</a>, w którym możecie nadsyłać swoje propozycje ciekawych narzędzi. Zostaną one rozpatrzone i &#8211; w razie akceptacji &#8211; umieszczone obok takich &#8222;sław&#8221; jak Dojo czy Selenium.</p>
<p>A co u Drawtera? Nie ukrywam, że zarzuciłem na jakiś czas development z powodu braku czasu, jednak tego typu wydarzenia dają mi motywację, by skończyć nową wersję, bo jest tego warta.</p>
]]></content:encoded>
			<wfw:commentRss>http://ferrante.pl/frontend/javascript/tools-mozilla-com/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Zostań lepszym programistą front-endu &#8211; fakty i mity</title>
		<link>http://ferrante.pl/frontend/javascript/zostan-lepszym-programista-front-endu-fakty-i-mity/</link>
		<comments>http://ferrante.pl/frontend/javascript/zostan-lepszym-programista-front-endu-fakty-i-mity/#comments</comments>
		<pubDate>Tue, 17 Mar 2009 19:52:46 +0000</pubDate>
		<dc:creator>ferrante</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Publicystyka]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[W sieci...]]></category>

		<guid isPermaLink="false">http://ferrante.pl/?p=215</guid>
		<description><![CDATA[Zastanawiałem się ostatnio, co tak naprawdę czyni nas dobrymi programistami front-endu. Abstrahując od tego, że cały czas uczę się i nigdy nie będę mógł powiedzieć o sobie, że jestem w czymś doskonały, postanowiłem zebrać do kupy kilka wskazówek, które wywarły ogromny wpływ na moją karierę. Pokora to jedna z największych cnót Szafowanie szeroką gamą branżowych [...]]]></description>
			<content:encoded><![CDATA[<p>Zastanawiałem się ostatnio, co tak naprawdę czyni nas dobrymi programistami front-endu. Abstrahując od tego, że cały czas uczę się i nigdy nie będę mógł powiedzieć o sobie, że jestem w czymś doskonały, postanowiłem zebrać do kupy kilka wskazówek, które wywarły ogromny wpływ na moją karierę.<span id="more-215"></span></p>
<h3>Pokora to jedna z największych cnót</h3>
<p>Szafowanie szeroką gamą branżowych terminów nie czyni z Ciebie specjalisty. Spotykałem osoby, które twierdziły, że wiedzą, co to dostępność, użyteczność i inne takie&#8230; No, zresztą, sami dobrze wiecie&#8230; Większość z nich, zapytana o szczegóły, rzucała jednak podstawowymi określeniami, które można bez trudu znaleźć po 30 sekundach wyszukiwania w sieci.</p>
<p>Bardzo często ktoś, coś tam słyszał, jednak nie przypomina sobie szczegółów. <a href="http://www.useit.com/">Nielsen</a>, <a href="http://www.sensible.com/">Don&#8217;t let me think</a>. A! I o niepełnosprawnych coś było! Prawie jak na lekcji biologii&#8230; Problem w tym, że tak jak lekarz podczas operacji nie sięga po podręczniki, by dowiedzieć się, gdzie mieści się serce, tak programista front-end nie myśli dwie godziny nad tym, jak działa, dajmy na to, hierarchia nagłówków.</p>
<p>Dlatego też o wiele bardziej cenię ludzi pokornych, którzy owszem, w trakcie boomu na użyteczność słyszeli kilka podstawowych haseł, aczkolwiek otwarcie przyznają, że nie wiedzą zbyt wiele i chcieliby poszerzyć horyzonty.</p>
<p>Poza tym, gro osób spod znaku <span class="f">doskonała znajomość HTML, XHTML, CSS oraz standardów W3C, WAI</span> tak naprawdę, co komiczne, ma w swoim portfolio strony, które przeczą współczesnym standardom. Co więcej, pewnikiem wszyscy zrobiliśmy kiedyś jakiegoś potworka. W związku z tym, sto razy bardziej docenię osobę, która jest świadoma tego faktu, niż tę, która stwierdzi, że wszystko jest w porządku, a jej kwalifikacjami powinna zająć się najlepiej komisja złożona ze <a href="http://www.joelonsoftware.com/">Spolsky&#8217;ego</a>, <a href="http://meyerweb.com/">Meyer&#8217;a</a>, <a href="http://www.zeldman.com/">Zeldmana</a> i innych.</p>
<h3>To nadal jest programowanie!</h3>
<p>Jeśli chodzi o JavaScript, zważ, że to nie tylko <a href="http://jquery.com">jQuery</a>. Wielu programistów uważa czysty JavaScript za zupełnie zbędny, kiedy jest to podejście pozbawione sensu. Chciałbym wiedzieć, ile do powiedzenia na temat optymalizacji, closures czy programowania obiektowego mają osoby, które w swoim portfolio oceniają JavaScript na &#8222;doskonały&#8221;. Sam łapałem się na tym wielokrotnie &#8211; udało mi się napisać to i owo, dlatego myślałem, że jestem w danej dziedzinie ekspertem. Nic bardziej mylnego, języki programowania to żywy twór, który z każdym dniem odsłania nowe obszary.</p>
<p>Kiedyś o eventach w JavaScript wiedziałem tylko tyle, że trzeba pobrać odnośnik do <a href="https://developer.mozilla.org/en/DOM">DOM</a> i przypiąć stosowną funkcję. Dziś o ból głowy (z zachwytu nad rozwiązaniami) przyprawiają mnie problemy wycieków pamięci lub zdarzeń bąbelkowych. </p>
<p>A gdzie mi tu Panie do zaawansowanego użycia <a href="https://developer.mozilla.org/En/Drawing_Graphics_with_Canvas">Canvas</a>, w którym zrobiłem bardzo mało rzeczy, aczkolwiek mam świadomość, jak to działa i wiem, że gdybym poświęcił swój czas na konkretny projekt, na pewno bym go zrobił. O ile z czystym sumieniem mogę więc stwierdzić, że nie jestem specjalistą z tej dziedziny, tak wiele osób napisałoby na <a href="http://goldenline.pl">Goldenline</a> czy gdziekolwiek indziej, że Canvas wciąga uchem, kiedy tak naprawdę używała jedynie jakiegoś widgetu z <a href="http://ajaxian.com">Ajaxian.com</a>.</p>
<p>Poznawanie zagadnień od podstaw jest bardzo ważne. Prędzej czy później trafimy na problem, któremu nie będziemy mogli podołać przez nasze zaniedbania. Pierwszy przykład z brzegu &#8211; miałem swego czasu zoptymalizować system walidacji formularzy faktur. Pozycji było ponad 30, każda z nich miała po pięć sprawdzanych informacji. Pętli były dziesiątki (setki?) tysięcy, a czas wykonywania skryptu oscylował wokół 15 sekund. Wszystko oparte było o jQuery i <a href="http://docs.jquery.com/Plugins/Validation">jQuery Validation</a>. Dla każdego walidowanego pola frywolnie używano selektorów jak poniżej:</p>
<pre><code>$('input[name^=xxx][name$=xxx]');</code></pre>
<p>Przyjmując, że jQuery musi sprytnie przefiltrować wszystkie inputy, dopasowując je do podanych dwóch wyrażeń regularnych, mamy 30*5*2*600 iteracji (w dokumencie było około 600 inputów). Ciekaw jestem, co powiedziałaby osoba bez jakiejkolwiek wiedzy analityczno-algorytmicznej (choćby jak działają selektory w jQuery). Że o podstawach JavaScript nie wspomnę.</p>
<p>Pomyśl też, co stałoby się, gdybyś musiał napisać coś w <a href="http://mootools.net/">MooTools</a> lub <a href="http://www.prototypejs.org/">Prototype</a>?</p>
<h3>Staranność</h3>
<p>Nie rób w kodzie bałaganu, pod żadnym pozorem. Nieważne, czy zaczynasz duży czy mały projekt. Nazywaj klasy i identyfikatory zgodnie z przyjętą przez Ciebie konwencją. Żadnych <em>test3</em>, <em>somethingExampleHehe</em> i innych potworków. Nie pisz skryptów na szybko, bez dobrego formatowania i logicznego nazewnictwa zmiennych. Utrzymuj porządek w sekcji <em>head</em> dokumentów, jak i w folderach z plikami źródłowymi. Przyjmij konwencje nazw katalogów, w których trzymasz pliki css, js i obrazki.</p>
<p>Otaczaj skrypty JS anonimowymi funkcjami, tak, by nikt nie nadpisał Twojego kodu:</p>
<pre><code>(function() {
// Twoj kod...
})();</code></pre>
<p>Niestety, programowanie stron niesie ze sobą wiele pułapek, a jedną z nich jest skłonność do powstawania bałaganu. Wielokrotnie widziałem zdublowany kod, puste deklaracje w CSSach i wiele innych niedoróbek. Znając życie, większość pochodzi z czystego pośpiechu. Osobiście, często robiłem coś na szybko, dodawałem style inline, by sprawdzić, jak coś się zachowa, mimo że miałem do dyspozycji debugger. CSS i JS są bardzo czułe na fuszerkę, dlatego unikaj kompromitacji, nawet, gdyby praca miała potrwać 10 minut dłużej.</p>
<p>Zdarza się również, że mozolnie szukamy rozwiązania, dajmy na to pod IE, dopisując coś i skreślając w kodzie, a także pisząc na szybko różne nazwy zmiennych, typu <em>some</em>, <em>x</em>, <em>aaa</em> itd. Gdy dochodzimy do celu, zapominamy o sprawie, skoro &#8222;<em>jest zrobione</em>&#8222;. W efekcie w kodzie pozostaje bubel, który będzie nielogiczny dla programistów edytujących kod w przyszłości. Zmusi ich to prawdopodobnie do kontynuowania złej konwencji i dalszego brudzenia, bo <em>przecież nie będę się doczytywał, o co temu kolesiowi chodziło.</em>. Nie zostawiaj po sobie kodu, którego sam nie zrozumiesz za miesiąc.</p>
<p>Debugger i dobre narzędzia wspomagające to świętość! Dowiedz się, co to Firebug, WebDeveloper, Live Headers, Pixel Perfect, IE Tab, HTML Validator, czy Firecookie. Przeglądaj często <a href="https://addons.mozilla.org/en-US/firefox/browse/type:1/cat:4">stronę z rozszerzeniami do Firefoxa</a>. A nuż wyjdzie coś interesującego!</p>
<p>Frameworki CSS to nie do końca trafiony pomysł, jednak przydatny w pewnych okolicznościach. Przeanalizuj dokładnie wady i zalety takiego rozwiązania, zainteresuj się <a href="http://meyerweb.com/eric/tools/css/reset/">resetami CSS</a> czy też projektami typu <a href="http://960.gs">960 grid system</a>.</p>
<p>Typografia <a href="http://www.webtypography.net/">potrafi być ciekawa</a>, a <a href="http://ferrante.pl/2008/05/17/uzywanie-html4-a-profesjonalizm/">XHTML ma wady</a>, więc bądź ostrożny.</p>
<h3>Rozwój osobisty</h3>
<p>Nikt nie jest alfą i omegą. Nie zniechęcaj się tym, że wielokrotnie podczas pracy używasz Google. Zapamiętywanie hacków, czy też bugów przeglądarek jest pomocne, lecz nie jest to najważniejsze. Wystarczy, że znasz i kojarzysz problem. Rozwiązanie to tylko kwestia doboru środków.</p>
<p>Czytaj książki. O sieci pisze się tyle ciekawych rzeczy! Nie przeczytasz ich na żadnej stronie internetowej. Luke Wroblewski, Joel Spolsky, Eric Meyer, Jakob Nielsen, Louis Rosenfeld, Dean Clarke to tylko czubek góry lodowej nazwisk, które szanujący się developer powinien znać. Czytanie zagranicznych pozycji to nie moda, lans czy cokolwiek innego &#8211; to polepszanie swoich kwalifikacji. Biorąc pod uwagę, że w sieci są prawdopodobnie tysiące koderów z szablonu (CSS, HTML, JS), zatrudniłbym kogoś, kto po prostu wie więcej.</p>
<p>Jeśli nie znasz z kolei jakiejś pozycji, przyznaj to otwarcie, zamiast szukać okrężnej drogi w swoich tłumaczeniach. Nie znać &#8222;X&#8221; czy &#8222;Y&#8221; to nie wstyd, acz argument do dalszej nauki i sztuki poznania. Osobę, która próbuje podjąć dyskusję na temat, o którym nie ma żadnego pojęcia, z reguły można rozpoznać po kilku sekundach. Pamiętaj o tym.</p>
<p>Staraj się czytać blogi, choć zważ na to, że nie jest to żaden wyznacznik Twojej wiedzy, o czym nieliczni próbują przekonywać. Jeśli blogi, to nie tylko polskie (tym bardziej, że bardzo mało jest tych wartościowych). O JavaScript absolutnie fantastyczne rzeczy tworzy <a href="http://ejohn.org">John Resig</a> (twórca jQuery), jest genialny <a href="http://dean.edwards.name/weblog/">Dean Edwards</a>, <a href="http://paulbakaus.com/">Paul Bakaus</a>, <a href="http://mootools.net/blog/">Valerio Proietti</a>. To tylko kilka nazwisk, bo o JS i CSS piszą tysiące osób. Bardzo pomocne są też serwisy typu <a href="http://alistapart.com">A List Apart</a> czy też <a href="http://ajaxian.com">Ajaxian.com</a>, gdzie zgromadzone są najnowsze wiadomości i projekty z branży.</p>
<p>Zauważ, że posiadanie sprzętu Apple lub pisanie Twittera/Blipa nie czyni Cię specjalistą. Wiedz, że na Macu nie zobaczysz 64-bitowej palety kolorów, a to że Zeldman twitteruje nie robi Cię jego kumplem od wódki. Jeśli mimo wszystko stawiasz powyższy fakt za swoje ewidentne zalety, powinieneś zaznajomić się ze znaczeniami ekshibicjonizmu i jego pochodnymi.</p>
<p>Ucz się języka obcego, najlepiej angielskiego. Większość ważnych rzeczy mówi się tutaj w języku Szekspira. W prestiżowych firmach komunikacja z klientem bardzo często odbywa się po angielsku. Z kolei, jeśli Twoje aspiracje sięgają naprawdę wysoko, raczej nie dosięgniesz nieba w Polsce. Niestety, pierwsza liga front-endu gra za granicą. Sam fakt, jak mało mają tam do powiedzenia Polacy, świadczy o tym, że możemy traktować nasz kraj jako branżowy zaścianek.</p>
<p>Bądź krytyczny i szczery w swoich osądach, nie bój się wyrażać własnych opinii. Jeśli projekt dyskutowany jest pod kątem dziedziny, w której jesteś ekspertem, narzuć swoje zdanie i przede wszystkim przedstaw stosowne argumenty. Broń swojej wiedzy! Kto ma wiedzieć cokolwiek o dostępności, jak nie specjalista front-end? Oczywiście, sugestie innych osób są cenne, jednak ostateczne zdanie powinno należeć do Ciebie. </p>
<p>Fajne rzeczy o rozwoju osobistym <a href="http://alexba.eu/">pisze Alex Barszczewski</a>.</p>
<h3>Użyteczność</h3>
<p>Sądzę też przekornie, że <a href="http://pl.wikipedia.org/wiki/Użyteczność_(web-usability)">użyteczność</a> to jedna z największych pułapek, jakie wyprodukował webdevelopment w ostatnich latach. Podstawowe terminy użyteczności stron www są jak najbardziej zasadne, jednak im dalej w las, tym więcej drzew. Tak naprawdę, wiele aspektów użyteczności jest sprawą dyskusyjną i to, dlaczego, przyjmijmy umownie, link jest czerwony, a nie niebieski, w gruncie rzeczy determinuje kontekst, zamierzony cel i dziesięć innych czynników, których nie znajdziemy w szablonowych książkach o usability.</p>
<p>Jest to działka, w której najwięcej mają do powiedzenia krzykacze. Ubzdurało im się, że znają się na użyteczności, bo przeczytali kilka mądrych książek. Większość sporów o usability danego elementu na stronie można podważyć &#8222;pierwszą lepszą&#8221; publikacją książkową. Dlatego też najgorsze argumenty, jakie możesz użyć w dyskusji o usability, tyczą się fanatycznego powoływania na konkretnego autora i rzekomego specjalisty od użyteczności. Nikt jeszcze nie wymyślił złotego środka, a książki o usability wskazują jedynie na najpopularniejsze problemy!</p>
<p>Przede wszystkim radzę myśleć! Użyteczność to nie proste regułki. To nie wersety z książek, które często powielają banały lub które są po prostu słabe (vide publikacje Kasperskiego). Nie idź na łatwiznę. Dopatruj się kontekstu, przeprowadzaj testy z użytkownikami, dyskutuj z kolegami po fachu! Nie ma nic bardziej zbawiennego, niż solidna burza mózgów, poparta konkretnymi argumentami merytorycznymi. Wiele publikacji aspiruje do bycia tak uniwersalnym, jak tylko sie da. Nie daj się nabrać, tym bardziej, że jest to ostatnio niezwykle chwytliwy temat. Specjalistów od użyteczności przybywa niczym cinkciarzy pod Pewexem, dlatego powtórzę jeszcze raz &#8211; myśl!</p>
<h3>Prototypowanie</h3>
<p>Doceń prototypy i testy z użytkownikami. Muszę stwierdzić, że wcześniej rzadko korzystałem z papierowych bądź elektronicznych prototypów. Designy od początku do końca projektował dla mnie grafik, zgodnie ze słownymi wytycznymi. Jakież to amatorskie podejście! Profesjonalny projekt powstaje stopniowo. Najpierw pracuje się nad wymaganiami, potem wkracza front-endowiec, który ma za zadanie przedstawić prototyp funkcjonalności strony. Nie projektuje on designu, ale ustala layout, rozmieszczenie buttonów, warstw, menu i wszystkiego, co tyczy się www. Przy okazji projektuje on większość aspektów użyteczności strony. Prototyp ułatwia pracę wszystkim &#8211; klientowi, designerowi, back-endowi i Tobie oczywiście. To na etapie prototypu powinny być wyjaśniane wszystkie wątpliwości. Tutaj ustalany jest ostateczny, podkreślmy to, kształt aplikacji. Wszystko po to, by potem zająć się tylko i wyłącznie kodowaniem oraz testowaniem.</p>
<p>Profesjonalne prototypy można tworzyć np. w <a href="http://axure.com">Axure</a>.</p>
<p>Prawdopodobnie to nie wszystko, co można by napisać na ten temat. Uczymy się jednak na błędach, a kolejne akapity dopisze życie, z pewnością&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://ferrante.pl/frontend/javascript/zostan-lepszym-programista-front-endu-fakty-i-mity/feed/</wfw:commentRss>
		<slash:comments>24</slash:comments>
		</item>
		<item>
		<title>EditPlus</title>
		<link>http://ferrante.pl/frontend/javascript/27/</link>
		<comments>http://ferrante.pl/frontend/javascript/27/#comments</comments>
		<pubDate>Sun, 11 Mar 2007 16:03:20 +0000</pubDate>
		<dc:creator>ferrante</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://ferrante.pl/2007/03/11/27/</guid>
		<description><![CDATA[Jak powiadają, są gusta i guściki. Prawda ta objawia się szczególnie, kiedy przychodzi do wskazania najlepszego edytora plików HTML, PHP i innych. Każdy z developerów posiada własne przyzwyczajenia i tym samym naprawdę trudno wyróżnić absolutnie najlepszy program z tej kategorii. Osobiście również nie zamierzam zachwalać w niebiosa produktu wymienionego w tytule, aczkolwiek spróbuje go zarekomendować [...]]]></description>
			<content:encoded><![CDATA[<p>Jak powiadają, są <em>gusta i guściki</em>. Prawda ta objawia się szczególnie, kiedy przychodzi do wskazania najlepszego edytora plików HTML, PHP i innych. Każdy z developerów posiada własne przyzwyczajenia i tym samym naprawdę trudno wyróżnić absolutnie najlepszy program z tej kategorii. Osobiście również nie zamierzam zachwalać w niebiosa produktu wymienionego w tytule, aczkolwiek spróbuje go zarekomendować w sposób, na jaki według mnie zasługuje. Lata obustronnej współpracy zobowiązują.<span id="more-27"></span></p>
<p>EditPlus, to, trzeba powiedzieć jasno, program dla bardziej zaawansowanych koderów. Nie znajdziecie w nim wielu gotowych snippetów, tak, jak to miało miejsce w <a href="http://ferrante.pl/2007/03/03/coreeditor/">CoreEditor</a>. Dostępne są za to absolutnie podstawowe, takie jak wstawianie szablonów &lt;script&gt; i tym podobnych. Dobrą wiadomością jest to, że takowe można dodać własnoręcznie. Warto też wspomnieć, że EP nie oferuje edytora WYSIWYG pozwalającego <em>rysować</em> nasze strony.</p>
<p>Biorąc pod uwagę inne edytory, EP wygląda przy nich, jak biedny krewny z Kazachstanu. I, myślę, że o to właśnie tutaj chodzi. EditPlus jest szybki i wydajny. Pozwala zapisać dokumenty w UTF, również z nagłówkiem. EditPlus to fajne formatowanie tekstu &#8211; można zmieniać wielkości liter, zmieniać spacje na tabulatory i odwrotnie. Także kolorowanie składni jest w pełni edytowalne. Można zwijać prosto kod, dzięki <em>code folding</em>. Łatwo odróżnimy taby od spacji, a skróty klawiszowe pozwolą nam szybciej poruszać się po dokumencie i dostępnych opcjach.</p>
<p>Kiedy mówisz <span class="f">szybka edycja kodu</span>, myślisz <span class="f">EditPlus</span>! Program pozwala kompleksowo i błyskawicznie dostać się do konkretnych linii kodu, a jego przejrzystość i, paradoksalnie, archaiczny wygląd stawiają go obok NotePada+ na piedestale prostych i bardzo funkcjonalnych edytorów HTML, CSS, JS, a nawet, używając lekkiego nadużycia, PHP.</p>
<p>EditPlus jest programem płatnym, aczkolwiek warto wypróbować jego 30dniową wersję próbną.</p>
<p>&#8211;> <a href="http://editplus.com">EditPlus</a></p>
]]></content:encoded>
			<wfw:commentRss>http://ferrante.pl/frontend/javascript/27/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
	</channel>
</rss>

