Hands-on Nodejs




Introduction to paradigm shift.




                            Borja A. Espejo García
Key points

●   Introduction to Nodejs
●   Nodejs Lab
●   Introduction to NoSQL technologies
●   Nodejs + MongoDB Lab
●   Introduction to Twitter Bootstrap
●   Nodejs + GUI using Twitter Bootstrap & Jade
Introduction to Nodejs (I)

●   Framework
●   Server-side software (client too)
●   Programs are written in Javascript
●   Scalability
●   Efficenty
●   Community
Introduction to Nodejs (II)

●   Events are a key point
●   Javascript V8 → Google Chrome
●   Less footprint in memory
●   Linkedin, Microsoft...
●   http://nodeknockout.com (Hackaton)
●   Frameworks based on Nodejs .. ¿Platform?
    –   Meteor JS
    –   Grunt
    –   Yeoman
    –   ....
NodejsLab

●   HelloWorld!!
●   Let's build a client – server application....
    ….............in only 2 minutes, why more?


    (Sources and steps to build the application are
    in etherpad).
NoSQL technologies (I)

●   Born because of new necesities. (Big Data)
●   Relational databases are not a good solution
    in many cases.
●   Efficency.
●   Twitter, Facebook use it ….and you?
●   Different implementations with a common
    basis.
NoSQL technologies (II)

●   Document strore
    –   MongoDB, CouchDB...
●   Graph
    –   Neo4j....
●   Key-value store
    –   Voldemort, Riak,..
●   Big Table
    –   Cassandra, Hadoop...
MongoDB

●   Document-oriented storage. (JSON)
    –   Document VS Row
    –   Collection VS Table
●   Replication & High Avaliability
●   SubCollections
●   Querying
●   Map/Reduce
●   Dynamic schemas
CRUD Application

●   CREATE
    - db.collection.insert( <document> )

●   READ
    –   db.collection.find( <query>, <projection> )
●   UPDATE
    –   db.collection.update( <query>, <update>, <options> )
●   DELETE
    –   db.collection.remove( <query>, <justOne> )
Nodejs + MongoDB Lab

●   Let's build a Music Service....in only 5 minutes!!
●   Rest design is a good choice!
●   The persistance layer is gonna be managed with
    MongoDB and Mongoose.
●   We are gonna use Internet Explorer...just joking!


    (Sources are steps to build the application are
    on etherpad)
Bootstrap Twitter

●   Framweork to speed up the web application building.
●   Web design toolkit, css framework, grid system.
●   You
    –   Don't know css
    –   know css but you don't know about design
●   Jade is a template engine.
●   Jade is cleaner than HTML
●   Jade comes by default with express framework
My next hands-on

●   Hadoop




●   Apache Mahout
Let's make knowledge!

●   Opinions?

●   Future?

●   Help you?
Links to Knowledge

●   http://www.couchbase.com/why-nosql/nosql-d
    atabase
●   http://en.wikipedia.org/wiki/MapReduce
●   http://nodejs.org
●   http://expressjs.com
●   http://www.mongodb.org
●   https://npmjs.org

New paradigms

  • 1.
    Hands-on Nodejs Introduction toparadigm shift. Borja A. Espejo García
  • 2.
    Key points ● Introduction to Nodejs ● Nodejs Lab ● Introduction to NoSQL technologies ● Nodejs + MongoDB Lab ● Introduction to Twitter Bootstrap ● Nodejs + GUI using Twitter Bootstrap & Jade
  • 3.
    Introduction to Nodejs(I) ● Framework ● Server-side software (client too) ● Programs are written in Javascript ● Scalability ● Efficenty ● Community
  • 4.
    Introduction to Nodejs(II) ● Events are a key point ● Javascript V8 → Google Chrome ● Less footprint in memory ● Linkedin, Microsoft... ● http://nodeknockout.com (Hackaton) ● Frameworks based on Nodejs .. ¿Platform? – Meteor JS – Grunt – Yeoman – ....
  • 5.
    NodejsLab ● HelloWorld!! ● Let's build a client – server application.... ….............in only 2 minutes, why more? (Sources and steps to build the application are in etherpad).
  • 6.
    NoSQL technologies (I) ● Born because of new necesities. (Big Data) ● Relational databases are not a good solution in many cases. ● Efficency. ● Twitter, Facebook use it ….and you? ● Different implementations with a common basis.
  • 7.
    NoSQL technologies (II) ● Document strore – MongoDB, CouchDB... ● Graph – Neo4j.... ● Key-value store – Voldemort, Riak,.. ● Big Table – Cassandra, Hadoop...
  • 8.
    MongoDB ● Document-oriented storage. (JSON) – Document VS Row – Collection VS Table ● Replication & High Avaliability ● SubCollections ● Querying ● Map/Reduce ● Dynamic schemas
  • 9.
    CRUD Application ● CREATE - db.collection.insert( <document> ) ● READ – db.collection.find( <query>, <projection> ) ● UPDATE – db.collection.update( <query>, <update>, <options> ) ● DELETE – db.collection.remove( <query>, <justOne> )
  • 10.
    Nodejs + MongoDBLab ● Let's build a Music Service....in only 5 minutes!! ● Rest design is a good choice! ● The persistance layer is gonna be managed with MongoDB and Mongoose. ● We are gonna use Internet Explorer...just joking! (Sources are steps to build the application are on etherpad)
  • 11.
    Bootstrap Twitter ● Framweork to speed up the web application building. ● Web design toolkit, css framework, grid system. ● You – Don't know css – know css but you don't know about design ● Jade is a template engine. ● Jade is cleaner than HTML ● Jade comes by default with express framework
  • 12.
    My next hands-on ● Hadoop ● Apache Mahout
  • 13.
    Let's make knowledge! ● Opinions? ● Future? ● Help you?
  • 14.
    Links to Knowledge ● http://www.couchbase.com/why-nosql/nosql-d atabase ● http://en.wikipedia.org/wiki/MapReduce ● http://nodejs.org ● http://expressjs.com ● http://www.mongodb.org ● https://npmjs.org