<?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>NodeBlog</title>
	<atom:link href="http://weblog.ronnieweb.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://weblog.ronnieweb.net</link>
	<description>Node.js, ExpressJS, nosql, MongoDB, HTML5</description>
	<lastBuildDate>Wed, 18 Jan 2012 22:05:33 +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>Screencast: Node Package Manager</title>
		<link>http://weblog.ronnieweb.net/2012/01/screencast-node-package-manager/</link>
		<comments>http://weblog.ronnieweb.net/2012/01/screencast-node-package-manager/#comments</comments>
		<pubDate>Wed, 11 Jan 2012 13:16:29 +0000</pubDate>
		<dc:creator>Ronnie</dc:creator>
				<category><![CDATA[Nezařazené]]></category>

		<guid isPermaLink="false">http://weblog.ronnieweb.net/?p=107</guid>
		<description><![CDATA[Další screencast se věnuje nástroji NPM, který umožňuje snadno instalovat moduly přes příkazový řádek. Chcete udělat nějakou krásnou aplikaci, která by uměla pracovat třeba s API od GitHub. Jak to uděláte? Pokud váš oblíbený framework zrovna tohle API nepodporuje, vygooglite &#8230; <a href="http://weblog.ronnieweb.net/2012/01/screencast-node-package-manager/">Celý příspěvek <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Další screencast se věnuje nástroji NPM, který umožňuje snadno instalovat moduly přes příkazový řádek.</p>
<p>Chcete udělat nějakou krásnou aplikaci, která by uměla pracovat třeba s API od GitHub. Jak to uděláte? Pokud váš oblíbený framework zrovna tohle API nepodporuje, vygooglite &#8222;github api {váš jazyk}&#8220;, vyberete si některý z výsledků. Projdete si zdrojáky, usoudíte, že tohle by mohlo být to, co hledáte. Super. Zkusíte najít odkaz pro stažení, stáhnete to, zipku rozbalíte, otevřete složku s vaším projektem, překopírujete skripty do vašeho projektu mezi ostatní knihovny. Teď je procházíte a snažíte se přijít na to, jak je zahrnout do vlastního projektu. Narazíte na nějakou konstantu,  přidáte do ní cestu k vlastnímu projektu, spustíte a &#8230; nefunguje. Fatal Error! Chvíli tu hlášku zkoumáte, pak se podíváte do zdrojáků, snažíte se přijít, jak to rozjet &#8230; nakonec usoudíte, že to nemá cenu a podíváte se po dalších knihovnách. Pokud budete mít štěstí, najdete něco, co funguje. Nebo ztratíte nervy a začnete to psát sami.</p>
<p>OK a co tohle? V příkazovém řádku: </p>
<ol>
<li>zadáte npm search xyz API a vyberete si, kterou knihovnu budete chtít,</li>
<li>zadáte npm install {vybraná knihovna},</li>
<li>v projektu v libovoném místě napíšete require({vybraná knihovna}).</li>
</ol>
<p>Tak o tomhle bude dnešní screencast.</p>
<p>Nechcete-li sledovat video, pod screencastem najdete přepis. Pokud by vám nefungovaly příkazy node a npm, na konci článku najdete návod, jak je pro Windows zprovoznit.</p>
<p>    <iframe src="http://player.vimeo.com/video/34893483" width="640" height="480" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe></p>
<div>
<div>
<ul>
<li>NPM je správce modulů, přes který si můžete instalovat nové balíčky do aplikace.</li>
<li>Seznam všech dostupných modulů je možné nalézt na <a href="http://search.npmjs.org./">search.npmjs.org.</a> Alternativně je možné použít <a href="http://eirikb.github.com/nipster/">Nipster</a>!, kde lze řadit moduly třeba podle toho, jak jsou moduly sledovány uživateli na Github.com.</li>
<li>Zkusme najít nějaký generátor náhodných čísel, zadáme tedy frázi “rand” a získáte několik knihoven, které umožňují náhodná čísla generovat.</li>
<li>Velmi důležité je verzování, především první číslo. Pokud má balíček jako první číslo 0, znamená to, že ještě není doporučen k produkčnímu nasazení a jeho použití je na vlastní riziko.</li>
<li>Balíčky lze instalovat přes příkazový řádek zadáním příkazu “npm install {jméno balíčku}”, např. “npm install mersenne” nainstaluje generátor náhodných čísel.</li>
<li>Do projektu se pak přidá balíček přes require({jméno balíčku}).</li>
</ul>
<pre><code>
var http = require('http');
var mersenne = require('mersenne');
http.createServer(function (req, res) {
    res.end(mersenne.rand(6).toString());
}).listen(8000);
</code></pre>
<ul>
<li>Zbývá spustit skript přes node hello.js a otevřít v prohlížeči adresu <a href="http://localhost:8000">http://localhost:8000</a>.</li>
</ul>
<ul>
<li>Chcete-li vyhledat nějaký balíček, můžete to udělat přímo přes příkazový řádek přes frázi &#8222;npm search {fráze}&#8220;, např. přes “npm search mvc” najdete všechny MVC frameworky.</li>
<li>Podrobnější informace o balíčku lze získat přes příkaz &#8222;npm info {jméno balíčku}&#8220;, např. &#8222;npm info ejs&#8220; zobrazí podrobné informace o šablonovacím systému EJS, dozvíte se jeho podrobnější popis, poslední verzi, kdo je autorem, balíčky, na kterých závisí vývoj (mocha je testovací framework) atd.</li>
<li>Pokud chcete zobrazit dokumentaci k vybranému balíčku, zadáte příkaz &#8222;npm docs {jméno balíčku}&#8220;, např. &#8222;npm docs mersenne&#8220;. Předtím je ale potřeba nastavit výchozí prohlížeč, příkazem &#8222;npm config set browser firefox&#8220; nastavíte výchozí prohlížeč Firefox. Ten se pak spouští přes příkaz “firefox URL”, takže je potřeba nastavit promměnou prostředí PATH pro daný prohlížeč.</li>
<li>Přes příkaz &#8222;npm list&#8220; je možné zobrazit seznam všech balíčků vč. jejich závislostí na jiných balíčcích.</li>
<li>Pokud chcete zjistit, zda nevyšla již nová verze balíčku, zadáte příkaz &#8222;npm outdated&#8220;, jako volitelný třetí parametr je možné přidat název balíčku, který nás zajímá. Zkusme třeba zjistit, zda mám aktuální framework express: &#8222;npm outdated express&#8220;.</li>
<li>Mnoho dalších užitečných příkazů pro práci s NPM najdete v dokumentaci, pokud jste instalovali node podle předchozího návodu, najdete dokumentaci v C:/Program Files/nodejs/node_modules/npm/html/doc/index.html.</li>
</ul>
</div>
</div>
<p><em>Pokud by se náhodou stalo, že vám příkaz npm nebo node nefunguje, nastavte si v příkazovém řádku proměnnou PATH takto:</em></p>
<pre><code>Pro node: SET PATH=C:\Program Files\Nodejs;%PATH%</code></pre>
<pre><code>Pro npm: SET PATH=C:\Program Files\Nodejs\node_modules\npm\;%PATH% </code></pre>
]]></content:encoded>
			<wfw:commentRss>http://weblog.ronnieweb.net/2012/01/screencast-node-package-manager/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Screencast: První Hello World! s Node.js</title>
		<link>http://weblog.ronnieweb.net/2012/01/screencast-prvni-hello-world-s-node-js/</link>
		<comments>http://weblog.ronnieweb.net/2012/01/screencast-prvni-hello-world-s-node-js/#comments</comments>
		<pubDate>Sun, 08 Jan 2012 15:18:45 +0000</pubDate>
		<dc:creator>Ronnie</dc:creator>
				<category><![CDATA[Nezařazené]]></category>

		<guid isPermaLink="false">http://weblog.ronnieweb.net/?p=87</guid>
		<description><![CDATA[První screencast ukazuje krok po kroku instalaci a vytvoření prvního skriptu Hello World! ve Windows. Je určen těm, kteří s Node.js nikdy nepracovali. Video je dlouhé přibližně 3 a půl minuty. Poznámka: Tutoriál předpokládá znalost JavaScriptu, pokud jste náhodou nikdy &#8230; <a href="http://weblog.ronnieweb.net/2012/01/screencast-prvni-hello-world-s-node-js/">Celý příspěvek <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>První screencast ukazuje krok po kroku instalaci a vytvoření prvního skriptu Hello World! ve Windows. Je určen těm, kteří s Node.js nikdy nepracovali. Video je dlouhé přibližně 3 a půl minuty.</p>
<p><em>Poznámka: Tutoriál předpokládá znalost JavaScriptu, pokud jste náhodou nikdy s JavaScriptem nepracovali, základní informace můžete získat třeba  na webu <a href="http://www.jakpsatweb.cz/javascript/">JakPsátWeb.cz</a>, pokud už s programováním nějaké zkušenosti máte, pak doporučuji výborný <a href="http://www.augi.cz/programovani/javascript-ocima-programatora-v2/">Augiho článek</a>.</em></p>
<p>Pokud zrovna nemůžete sledovat video, pod videem najdete přepis.</p>
<p><iframe src="http://player.vimeo.com/video/34737033" width="640" height="480" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe></p>
<p>&nbsp;</p>
<div>
<ul>
<li>Aktuální verzi node.js stáhnete na stránkách nodejs.org. V dřívějších verzích bylo nutné používat Cygwin, nyní je už dostupný klasický instalátor pro Windows.</li>
<li>Node.js se instaluje do složky C:\Program Files\nodejs. Kromě node.js automaticky získáte i Node Package Manager, tedy správce balíčku inspirovaný gem v Ruby.</li>
<li>Pro první projekt si vytvořte adresář C:\www. Do něj pak vytvořte soubor hello.js, který si otevřete třeba v PSPadu.</li>
</ul>
<pre><code>var http = require('http');
http.createServer(function (req, res) {
res.end('Hello World!');
}).listen(8000);
</code></pre>
<ul>
<li>Nejprve je potřeba načíst modul “http” přes příkaz require a aby s ním bylo možné dále pracovat, přiřadíme ho do proměnné http.</li>
<li>V druhé části vytvořím objekt, který reprezentuje server a zavolám na něm metodu listen(), která serveru říká, na jakém portu má server poslouchat.</li>
<li>Dále je potřeba vytvořit anonymní funkci, která přebírá dva parametry req a res. První parametr req je objekt, který reprezentuje požadavek uživatele, tedy to, co uživatel zadal do prohlížeče. Druhý parametr je objekt reprezentující odpověď uživateli, tedy to, co bude odesláno do prohlížeče.</li>
<li>Posledním příkazem pak zavoláme na objektu odpovědi metodu end(), která odešle nějaký text do prohlížeče.</li>
<li>Dále bude potřeba skript spustit. Otevřete si příkazový řádek a přejděte do složky projektu zadáním příkazu “cd C:\www” a program spusťte příkazem node hello.js.</li>
<li>Pak už stačí spustit prohlížeč a zadat adresu <a href="http://localhost:8000/">http://localhost:8000</a> (localhost + port, který byl zadán metodě listen()).</li>
<li>Pokud nechcete zadávat port do URL, můžete do metody listen() nastavit port 80. Pro spuštění je potřeba nejprve server zastavit příkazem CTRL + C a znova spustit. Když teď zadám adresu bez portu, bude vše fungovat. Pokud programujete v PHP, pozor na spuštěný Apache, který pracuje s portem 80, nejprve ho bude potřeba vypnout.</li>
</ul>
<p>Další screencast by měl být o zprovoznění aplikace na Heroku.com a představení frameworku ExpressJS.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://weblog.ronnieweb.net/2012/01/screencast-prvni-hello-world-s-node-js/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Proč se zajímat o Node.js</title>
		<link>http://weblog.ronnieweb.net/2012/01/proc-nodejs/</link>
		<comments>http://weblog.ronnieweb.net/2012/01/proc-nodejs/#comments</comments>
		<pubDate>Thu, 05 Jan 2012 21:24:16 +0000</pubDate>
		<dc:creator>Ronnie</dc:creator>
				<category><![CDATA[Nezařazené]]></category>
		<category><![CDATA[Node.js]]></category>

		<guid isPermaLink="false">http://weblog.ronnieweb.net/?p=66</guid>
		<description><![CDATA[Node.js je platforma postavená na JavaScript enginu V8, který je používán v Google Chrome. Díky Node.js je možné JavaScript používat i na serveru a stavět aplikace podobně jako třeba v PHP či v Javě. V Česku je pojem Node.js téměř &#8230; <a href="http://weblog.ronnieweb.net/2012/01/proc-nodejs/">Celý příspěvek <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a title="Node.js" href="http://nodejs.org/">Node.js</a> je platforma postavená na JavaScript enginu V8, který je používán v Google Chrome. Díky Node.js je možné JavaScript používat i na serveru a stavět aplikace podobně jako třeba v PHP či v Javě.</p>
<p>V Česku je pojem Node.js téměř neznámý, ve světě se ale jedná o jedno z nejdiskutovanějších témat poslední doby. Na Node.js staví některé aplikace Yahoo, je v něm vytvořena kompletní mobilní verze LinkedIn, část webu GitHub.com je v Node.js, podporován je ze strany Microsoftu v cloud platformě Windows Azure. Přestože je Node.js velmi mladý (před 2 roky ještě neexistoval, aktuální verze je 0.6.6), jsou na něm vystavěny aplikace, které <a href="https://twitter.com/#!/mranney/status/145778414165569536">obsluhují</a> miliony návštěvníků denně.</p>
<p><strong>Proč mě Node.js zaujal?</strong></p>
<ol>
<li>Můžete používat své oblíbené JavaScriptové knihovny i na serveru. Pracuje se vám špatně ve vašem jazyce s XML či HTML? Chcete používat JQuery i na serveru? Žádný problém.</li>
<li>S Node.js se nemusíte učit nový programovací jazyk, používáte pouze JavaScript jak pro tvorbu skriptů na straně klienta, tak na straně serveru. Pokud používáte nosql databázi, např. MongoDb, používáte JavaScript i v příkazech databázi. S daty se v nosql pracuje navíc ve formátu JSON (= JavaScript object notation), JavaScript tedy stačí úplně na všechno.</li>
<li>S JavaScriptem se setkal každý, kdo pracoval někdy s webem. Na webu lze nalézt tisíce kvalitních JavaScriptových knihoven, které nyní můžete používat i na serveru.</li>
<li>V Node.js se JavaScript kompiluje do C++, je tedy velmi rychlý (i když funguje pouze v jednom vláknu).</li>
<li>Node.js podporuje asynchronní architekturu, umožňuje spouštět více operací najednou. Pokud např. v PHP chcete zpracovat tři příkazy v jednom skriptu a každý z nich zabere 2 vteřiny, celý skript nedoběhne dříve než za 6 vteřin. V Node.js lze spustit všechny 3 příkazy najednou.</li>
<li>Node.js lze velmi snadno nainstalovat i ve Windows. Dříve bylo nutné používat Cygwin, nyní je už dostupný klasický Windows instalátor. Jedním kliknutím nainstalujete vše, co potřebujete.</li>
<li>V Node.js je NPM (Node Package Manager), což je balíčkovací systém podobný gems v Ruby. Když chcete přidat novou knihovnu, děláte to podobně jako v Linuxu. Stačí zadat např. npm install express a nainstaluje se vám ExpressJS framework vč. všech závislostí. Uvnitř skriptu pak  stačí knihovnu načíst přes příkaz require(&#8222;express&#8220;), nic víc. NPM sám stáhne všechny další knihovny, které třeba zmíněný ExpressJS potřebuje. Všechny knihovny jsou dostupné zde: <a href="http://search.npmjs.org/">http://search.npmjs.org/</a>.</li>
<li>Kolem Node.js vzniká velká komunita. Před rokem bylo k dispozici 2 tis. knihoven, v listopadu jich bylo již 5 tisíc, dnes je jich více než 6 tis. Najdete mnoho frameworků, ORM, cokoliv potřebujete si stáhnete přes NPM. Existují různé stránky, kde lze najít knihovny podle kvality (kolik lidí je sleduje/používá).</li>
<li>Pro psaní knihovny existují jednotné konvence. Všechny je najdete na GitHub.com, mají jednotnou strukturu, všechny jsou otestované (vydat veřejně nějakou knihovnu bez testů je ostuda).</li>
<li>Knihovny v jádru Node.js mají jasné konvence pro pojmenování i pořadí parametrů. Nestane se vám, že jedna metoda používá podtržítka a jiná cammelcase. Node.js má už v jádru knihovny pro jednotkové testování či debugování.</li>
<li>Téměř všechny knihovny Node.js jsou napsány v JavaScriptu, v C++ jsou napsány pouze skripty, které umožňují pracovat s OS asynchronním způsobem. Chcete-li tedy vědět, jak něco funguje, podíváte se přímo do zdrojáků Node.js na Github.com a stačí vám znalost JavaScriptu.</li>
</ol>
<p>Máte-li nějaké připomínky, piště prosím na jakub.mrozek@gmail.com.</p>
<p>Připravuji první screencast, klasickou Hello World aplikaci. Stay tuned!</p>
]]></content:encoded>
			<wfw:commentRss>http://weblog.ronnieweb.net/2012/01/proc-nodejs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

