<?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>Blog4Java &#187; Node.js</title>
	<atom:link href="http://malsolo.com/blog4java/?feed=rss2&#038;tag=node-js" rel="self" type="application/rss+xml" />
	<link>http://malsolo.com/blog4java</link>
	<description>A personal and Java blog, likely only for me</description>
	<lastBuildDate>Tue, 31 Mar 2015 15:52:42 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=4.1.1</generator>
	<item>
		<title>Moday&#8217;s programming buzzwords &#8211; July 21th, 2014</title>
		<link>http://malsolo.com/blog4java/?p=195</link>
		<comments>http://malsolo.com/blog4java/?p=195#comments</comments>
		<pubDate>Wed, 23 Jul 2014 11:02:35 +0000</pubDate>
		<dc:creator><![CDATA[Javier (@jbbarquero)]]></dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[C10K problem]]></category>
		<category><![CDATA[MongoDB]]></category>
		<category><![CDATA[Node.js]]></category>
		<category><![CDATA[Vert.x]]></category>

		<guid isPermaLink="false">http://malsolo.com/blog4java/?p=195</guid>
		<description><![CDATA[Vert.x, C10k problem, Node.js, MongoDB. Vert.x is a application platform, that claims to be lightweight and high performance, and it&#8217;s for the JVM. To summarize, is a Java (and JavaScript, CoffeeScript, Ruby, Python or Groovy) Async I/O platform. Node.js is &#8230; <a href="http://malsolo.com/blog4java/?p=195">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><strong>Vert.x</strong>, <strong>C10k problem</strong>, <strong>Node.js</strong>, <strong>MongoDB</strong>.</p>
<p><a href="http://vertx.io/" title="Vert.x" target="_blank">Vert.x</a> is a application platform, that claims to be lightweight and high performance, and it&#8217;s for the JVM. To summarize, is a Java (and JavaScript, CoffeeScript, Ruby, Python or Groovy) <a href="http://en.wikipedia.org/wiki/Asynchronous_I/O" title="Asynchronous I/O" target="_blank">Async I/O</a> platform.</p>
<p><a href="http://nodejs.org/" title="Node.js" target="_blank">Node.js</a> is a platform built on Chrome&#8217;s JavaScript runtime. Once again, event-driven, non-blocking I/O model.</p>
<p>Both of them are intended for solving the <a href="http://www.kegel.com/c10k.html" title="The C10K problem" target="_blank">C10k problem</a>.</p>
<p>For doing so, they follow the <a href="http://en.wikipedia.org/wiki/Reactor_pattern" title="Reactor pattern" target="_blank">Reactor Pattern</a>. It consists in an event loop that waits for Events that are handle concurrently by delivering these events to the appropriate service handler.</p>
<p>The main differences between <a href="http://vertx.io/" title="Vert.x" target="_blank">Vert.x</a> and <a href="http://nodejs.org/" title="Node.js" target="_blank">Node.js</a> is that the former has several threads as event loops (one per core) and the latter has one thread only, besides, <a href="http://vertx.io/" title="Vert.x" target="_blank">Vert.x</a> has special components (called <a href="http://vertx.io/manual.html#writing-blocking-code-introducing-worker-verticles" title="Writing blocking code - introducing Worker Verticles" target="_blank">Worker Verticles</a>) for writing blocking code (long-lived computationally intensive operation, calling third party components, as JDBC queries), so that you can avoid to block the event loop.</p>
<p><a href="http://en.wikipedia.org/wiki/C10k_problem" title="C10k problem" target="_blank">C10K problem</a> is the problem of having to handle suddenly a thousand of clients at the same time with a server that has to handle only several requests as its normal task (I mean, it&#8217;s a huge waste to configure this server for an average of thousands of connections only for occasional peaks)</p>
<p><a href="http://www.mongodb.org/" title="MongoDB" target="_blank">MongoDB</a> is an open-source document database, NoSQL database. <a href="http://www.mongodb.org/about/introduction/" title="Introduction to MongoDB" target="_blank">It claims</a> to provide high performanc (fast reads and writes), high availability (with replicated servers), and easy scalability (with automatic <a href="http://docs.mongodb.org/manual/core/sharding/" title="Sharding Concepts" target="_blank">sharding</a> among the servers).</p>
]]></content:encoded>
			<wfw:commentRss>http://malsolo.com/blog4java/?feed=rss2&#038;p=195</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Website updated: at last</title>
		<link>http://malsolo.com/blog4java/?p=30</link>
		<comments>http://malsolo.com/blog4java/?p=30#comments</comments>
		<pubDate>Mon, 07 Jul 2014 12:52:12 +0000</pubDate>
		<dc:creator><![CDATA[Javier (@jbbarquero)]]></dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Grunt]]></category>
		<category><![CDATA[Javier]]></category>
		<category><![CDATA[Node.js]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Yeoman]]></category>

		<guid isPermaLink="false">http://malsolo.com/blog4java/?p=30</guid>
		<description><![CDATA[I always wanted to have my own website but I don&#8217;t have enough skills as web developer to create one from scratch. I&#8217;m a Java EE developer, so I have to work with HTML/CSS/JavaScript/JQuery on a regular basis. But I&#8217;m &#8230; <a href="http://malsolo.com/blog4java/?p=30">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>I always wanted to have my own website but I don&#8217;t have enough skills as web developer to create one from scratch.</p>
<p>I&#8217;m a Java EE developer, so I have to work with HTML/CSS/JavaScript/JQuery on a regular basis. But I&#8217;m not a web designer. Actually, I&#8217;m really bad at designing.</p>
<p>But I love programming and one day I discovered <a href="http://yeoman.io/" title="Yeoman" target="_blank">Yeoman</a> (the web&#8217;s scaffolding tool for modern webapps, as they claim)</p>
<p>The problem here is the usual when you discover a new tool, suddenly you need to know a lot of related stuff. That is, <a href="http://nodejs.org/" title="Node.js" target="_blank">Node.js</a>, <a href="https://www.npmjs.org/" title="NPM" target="_blank">NPM</a>, <a href="http://gruntjs.com/" title="Grunt" target="_blank">Grunt</a>, <a href="http://bower.io/" title="Bower" target="_blank">Bower</a>, and a lot of intimidating names.</p>
<p>Youtube to the rescue. Find this video <a href="https://www.youtube.com/watch?v=gKiaLSJW5xI" title="&quot;Yeoman tutorial - Master Front-End Workflow with Yeomaman, Grunt and Bower&quot;" target="_blank">&#8220;Yeoman tutorial &#8211; Master Front-End Workflow with Yeomaman, Grunt and Bower&#8221;</a> and you will have your website up and running in a few minutes.</p>
<p>That&#8217;s not totally true. I&#8217;ve had to download <a href="https://www.npmjs.org/package/jpegtran-bin" title="jpegtran-bin" target="_blank">jpegtran-bin</a> and I&#8217;ve spent a lot of time with minor details with some layouts.</p>
<p>Well, it&#8217;s been funny to work as web developer by editing my HTML files, testing them locally (with the server created by <strong><em>grunt server</em></strong>) and then uploading the files to the server (after creating a minified site with <strong><em>grunt build</em></strong>)</p>
<p>And here it is: <a href="http://malsolo.com" title="Malsolo website" target="_blank">Malsolo website</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://malsolo.com/blog4java/?feed=rss2&#038;p=30</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
