Angel \”Java\” Lopez on Blog

July 5, 2015

New Month’s Resolutions: July 2015

Filed under: C Sharp, JavaScript, Meteor, NodeJs, Open Source Projects — ajlopez @ 7:11 pm

A new month begins, and it’s time to write my new resolutions and review the previous ones:

– Give a talk about Meteor [complete] see presentation
– Write posts about JavaScript and Artificial Intelligence [pending]
– Improve ClojJS [pending]
– Add NPM support to ClojJS [pending]
– Continue work on SparkSharp [pending]
– Start Message project in C#, a la Apache Camel [complete] see repo 
– Improve Liqueed Project, kudos features [pending]
– Improve Templie, template engine in Java [pending]
– Improve BScript, Basic-like interpreter in C#[pending]
– Continue work on OStore [complete] see repo
– Continue work on SharpMongo [complete] see repo

Additionally, I worked on:

– Started ObjectChannel, object serialization in C# [complete] see repo
– Started Elixir samples [complete] see repo
– Give a talk about Machine Learning [complete] see presentation
– Started Elixir samples [complete] see repo
– Started NRiak, key-value store in JavaScript/NodeJS [complete] see repo

– Started Android samples [complete] see repo

This new month’s resolutions:

– Continue work on SparkSharp
– Continue work on BScript
– Continue work on DynApp
– Give a talk about TDD
– Continue work on SharpMongo
– Continue work on NRiak
– Continue work on Elixir samples
– Continue work on Android samples

Stay tuned!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

July 15, 2014

Meteor: Links And Resources (2)

Filed under: Links, Meteor, NodeJs, Web Development — ajlopez @ 1:54 pm

Previous Post

Bikestorming/lightsaber
https://github.com/Bikestorming/lightsaber

Meteor – YouTube
http://www.youtube.com/user/MeteorVideos/videos

An Introduction to Meteor | Stephen Walther
http://stephenwalther.com/archive/2013/03/18/an-introduction-to-meteor

EventedMind/iron-router
https://github.com/EventedMind/iron-router

sqow/multiple-view-example
https://github.com/sqow/multiple-view-example

javascript – Questions Meteor about changing view and putting array in collection – Stack Overflow
http://stackoverflow.com/questions/15278756/questions-meteor-about-changing-view-and-putting-array-in-collection

Run Meteor Apps Anywhere with Demeteorizer
http://blog.modulus.io/demeteorizer

Hosting a Meteor App on Nodejitsu | Proper
https://properapp.com/meteor/hosting-a-meteor-app-on-nodejitsu-2/#.Uv-mn_ldUms

Setting Up Tests w/ Meteor | Proper
https://properapp.com/meteor/setting-up-tests-w-meteor-2/#.Uv-m-fldUms

Simple Routing in Meteor | Proper
https://properapp.com/meteor/simple-routing-in-meteor-2/#.Uv-nAfldUms

properapp/advanced-routing-start
https://github.com/properapp/advanced-routing-start

javascript – How do I create multi-page applications with Meteor? – Stack Overflow
http://stackoverflow.com/questions/11740368/how-do-i-create-multi-page-applications-with-meteor

Advanced Routing in Meteor: Navigation State w/ Handlebars Helpers and Route Functions | Proper
https://properapp.com/meteor/advanced-routing-in-meteor-navigation-state-w/#.Uv-lvfldUms

meteor – How to install atmosphere packages without meteorite? – Stack Overflow
http://stackoverflow.com/questions/18159924/how-to-install-atmosphere-packages-without-meteorite

python – How do I access Meteor’s mongodb from another client, while meteor is running? – Stack Overflow
http://stackoverflow.com/questions/10293781/how-do-i-access-meteors-mongodb-from-another-client-while-meteor-is-running

My Links
https://delicious.com/ajlopez/meteor

Stay tuned!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

February 16, 2014

Programming Meteor (1) First steps

Filed under: JavaScript, Meteor, Mobile, NodeJs, PhoneGap, Programming, Web Development — ajlopez @ 7:21 pm

Yesterday, I attended to Meteor meetup at Buenos Aires, a half day of talks and coding. Thanks to organizers, sponsors and supporters: @areatreslab, @4residents, @bikestorming, @html5cat (he co-wrote a function analysis paper), @matikalwill (a.k.a. “my life is bikestorming, ‘senio’”).

Meteor is a framework to build web applications. And it can be used to build mobile applications, too. A meteor application, in general, is a single page application (SPA). The server is based on Node.js. But Meteor is not like another Node.js applications. Visit:

https://www.meteor.com/

The main difference: the programming language is JavaScript, AND CAN BE EXECUTED at server side or at client side. Yes, the same code. Or you can write code specifically created for client OR server side.

Meteor is based on seven principles:

http://docs.meteor.com/#sevenprinciples

  • Data on the Wire. Don’t send HTML over the network. Send data and let the client decide how to render it.
  • One Language. Write both the client and the server parts of your interface in JavaScript.
  • Database Everywhere. Use the same transparent API to access your database from the client or the server.
  • Latency Compensation. On the client, use prefetching and model simulation to make it look like you have a zero-latency connection to the database.
  • Full Stack Reactivity. Make realtime the default. All layers, from database to template, should make an event-driven interface available.
  • Embrace the Ecosystem. Meteor is open source and integrates, rather than replaces, existing open source tools and frameworks.
  • Simplicity Equals Productivity. The best way to make something seem simple is to have it actually be simple. Accomplish this through clean, classically beautiful APIs.

Notable, database state is shared by all clients at realtime. If your current view is a list of customer, and somebody adds a new customer to the MongoDB database (the supported database) all the clients are notified, and each view involving customers are automatically refreshed. All this without adding special code, simply using the code that lists customers in a page (using Handlebar as the template engine).

Although based on Node.js, Meteor is not an NPM package. It should be installed manually, read:

http://docs.meteor.com/#quickstart

It can installed in Linux/Unix and Mac boxes. Supported platforms at:

https://github.com/meteor/meteor/wiki/Supported-Platforms

But if you have Windows (I used Windows in the meetup) you should use another approach:

http://win.meteor.com/

There are Vagrant –based solutions, too. I installed using the LaunchMeteor.exe without problems, in two Windows machines.

I read:

http://docs.meteor.com/#structuringyourapp

A Meteor application is a mix of JavaScript that runs inside a client web browser, JavaScript that runs on the Meteor server inside a Node.js container, and all the supporting HTML fragments, CSS rules, and static assets. Meteor automates the packaging and transmission of these different components. And, it is quite flexible about how you choose to structure those components in your file tree.

The only server assets are JavaScript and files in the private subdirectory. Meteor gathers all your JavaScript files, excluding anything under the client, public, and private subdirectories, and loads them into a Node.js server instance inside a fiber. In Meteor, your server code runs in a single thread per request, not in the asynchronous callback style typical of Node. We find the linear execution model a better fit for the typical server code in a Meteor application.

My emphasis. This is a sensitive issue: I’m not sure about the implications of such run strategy. Check my links

https://delicious.com/ajlopez/meteor,scalability

Meteor has an unofficial package manager, called Meteorite:

http://oortcloud.github.io/meteorite/

and “smart packages”

https://atmosphere.meteor.com/

I read:

http://docs.meteor.com/#usingpackages

In addition to the packages in the official Meteor release being used by your app, meteor list and meteor add also search the packages directory at the top of your app. If you’ve downloaded an unofficial package from Atmosphere you should unpack it into that directory (the unofficial Meteorite tool streamlines this process). You can also use the packages directory to break your app into subpackages for your convenience — if you are willing to brave the fact that the Meteor package format is not documented yet and will change significantly before Meteor 1.0…

Meteorite is not running on Windows, so you should use only the builtin packages or use a manual install.

There are many resources to learn Meteor:

https://www.meteor.com/learn-meteor

For example, there are easy ready to use examples:

https://www.meteor.com/learn-meteor

During yesterday meetup, I tried some examples, modify and simplify the leaderboard example, add a Bootstrap 2.x top bar, and started to write a new one using many pages and MongoBD (using Backbone routing):

https://github.com/ajlopez/MeteorSamples

Many links with tutorials, videos, examples at:

https://github.com/ajlopez/MeteorSamples#references

The CRUD sample (work in progress) at:

https://github.com/ajlopez/MeteorSamples/tree/master/mycompany

It uses only builtin packages so you can run it as is from Windows.

Yesterday, I published some Meteor-related links. More links at:

https://delicious.com/ajlopez/meteor
https://delicious.com/ajlopez/meteor,tutorial

Ah! Meteor can run in PhoneGap, to have a multi-device mobile experience:

https://delicious.com/ajlopez/meteor,phonegap

My plan: after finishing the mycompany sample, use the base code to generate an AjGenesis module for Node.js. So, I will have code generation of web sites, using a free defined model, tasks and templates. Then, add phonegap support, and maybe, software as a service, using Node.js access to PhoneGap Build API.

More fun is coming.

Keep tuned!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

February 15, 2014

Meteor: Links and Resources (1)

Filed under: JavaScript, Links, Meteor, NodeJs, Web Development — ajlopez @ 11:28 am

Next Post

Today I’m going to Meteor Meetup at Buenos Aires. Some links I collected about this framework.

meteor is now on npm by substack · Pull Request #516 · meteor/meteor
https://github.com/meteor/meteor/pull/516#issuecomment-12919473

(362) Node.js: Why does Meteor use its own package system rather than NPM? – Quora
http://www.quora.com/Node-js/Why-does-Meteor-use-its-own-package-system-rather-than-NPM

meteor-npm requirements cannot be found (rimraf, mkdirp) · Issue #12 · arunoda/meteor-npm
https://github.com/arunoda/meteor-npm/issues/12

Complete NPM integration for Meteor | MeteorHacks
http://meteorhacks.com/complete-npm-integration-for-meteor.html

javascript – it possible use a nodejs package inside meteor app? – Stack Overflow
http://stackoverflow.com/questions/11691513/it-possible-use-a-nodejs-package-inside-meteor-app

How Meteor Uses NodeJS | MeteorHacks
http://meteorhacks.com/how-meteor-uses-node.html

Aprendiendo MeteorJs
http://experienciasmeteorjs.blogspot.com.ar/

aplicaciones en tiempo real con meteor by edsadr
http://slid.es/edsadr/aplicaciones-en-tiempo-real-con-meteor/

Atmosphere | Beer. Wings. Smart Packages.
https://atmosphere.meteor.com/

Structuring your app
http://docs.meteor.com/#structuringyourapp

The Meteor blog – Introducing DDP
https://www.meteor.com/blog/2012/03/21/introducing-ddp

Derby
http://derbyjs.com/
MVC framework making it easy to write realtime, collaborative applications that run in both Node.js and browsers.

Why Meteor will kill Ruby on Rails | Differential
http://differential.io/blog/meteor-killin-rails

ArunRocks – Real-time Applications and will Django adapt to it?
http://arunrocks.com/real-time-applications-and-will-django-adapt-to-it/

David Glasser: Making Mongo realtime – oplog tailing in Meteor — Devshop 10 Tech Talk – YouTube
https://www.youtube.com/watch?v=_dzX_LEbZyI

Isomorphic JavaScript: The Future of Web Apps – Airbnb Engineering
http://nerds.airbnb.com/isomorphic-javascript-future-web-apps/

Meteor
http://www.meteor.com/

Best Learning Resources for Meteor.js • yet another useless homepage
http://yauh.de/articles/376/best-learning-resources-for-meteorjs

Building An App In 45 Minutes With Meteor | Smashing Magazine
http://www.smashingmagazine.com/2013/06/13/build-app-45-minutes-meteor/

Telescope, an open-source social news app built with Meteor
http://telesc.pe/

6 months with Meteor: Why the future of the web is real-time – The Changelog
http://thechangelog.com/why-meteor/

Meteor Authentication
http://meteor.com/authcast

Overview of Derby.js and Meteor.js (for 7/10 NoVa Node.js Meetup)
http://www.slideshare.net/studgeek/an-overview-of-derbyjs-and-meteorjs-for-the-nova-nodejs-meetup

Meteor License
http://meteor.com/faq/how-is-meteor-licensed

First chunk of Meteor auth now in GitHub – Google Groups
https://groups.google.com/forum/?fromgroups#!topic/meteor-core/g4Bsm3yFTe4

Meteor
http://meteor.com/

Meteor
http://meteor.com/screencast

My Links
https://delicious.com/ajlopez/meteor

Keep tuned!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

Blog at WordPress.com.