Ya hablamos en su dÃa de FireBug, una extensión que nos permite depurar nuestras aplicaciones web. La nueva versión tiene una gran novedad, “debuguear” Javascript. Ahora es posible poner puntos de ruptura, ejecutar el código paso a paso, inspeccionar variables, comprobar código, … Si antes ya era indispensable, ahora es totalmente obligatorio para cualquier desarrollador (vale, quizás me he pasado). A parte de el debugger hay otra serie de cambios que no dejan de tener importancia. FireBug
VÃa / SitePoint
Es cierto que Google Analytics está muy bien, pero hay alternativas y puede que nos den lo que buscamos.
Ofrece privacidad para los usuarios, estadÃsticas básicas, páginas más populares, sitios que nos referencian, información sobre el navegador y el sistema operativo del usuario, posibilidad de excluir de las estadÃsticas visitas según caracterÃsticas (IP, agente, …), importar estadÃsticas de Counterize y facilidades para la migración, interfaz AJAX y otras caracterÃsticas más.
Otra funcionalidad que hay que destacar es la posibilidad de integrarlo con plataformas del estilo de WordPress, Drupal, trac, … FireStats
VÃa / dzone
Como ya dije, esta aplicación estará basada en Mongodb, y usaremos mongoose como ODM.
El primer paso es instalar mongoose:
npm i mongoose
Una vez instalado crearemos un controlador que nos permita usar la BD en toda la aplicación Hapi.js. Para ello haremos uso de los decorate del servidor. Los decorations permite extender objectos ofrecidos por Hapi.js, en nuestro caso server y request. Usando un plugin nos conectaremos a mongodb usando mongoose y añadiremos ese objecto con los decorate.
Creamos el fichero /plugins/db.js con el siguiente código:
/**
* DB controller
*
* It uses Mongoose and "stores" it in the server and the request using `decorate`
*/const mongoose = require( 'mongoose' );
exports.plugin = {
name: 'db',
register: asyncfunction( server, options ) {
mongoose.connect( options.url, { useNewUrlParser: true } );
const db = mongoose.connection;
// eslint-disable-next-line
db.on( 'error', console.error.bind( console, 'connection error:' ) );
db.once( 'open', function() {
server.decorate( 'server', 'db', mongoose );
server.decorate( 'request', 'db', mongoose );
// eslint-disable-next-lineconsole.log( 'DB connected' );
} );
},
};
Para configurar la conectividad a mongodb tendremos que añadir los datos a la /config/index.js
Ya tenemos casi todo configurado, ahora vamos a empezar con un ejemplo creando un esquema de moongose que nos permite acceder a colecciones de mongodb.
Lo más común es tener una colección de usuarios, que tendrá los siguientes campos:
userName: de tipo String,
firstName: de tipo String,
lastName: de tipo String,
email: de tipo String,
role: que referencia a otro elemento de otra colección,
isEnabled: de tipo Boolean,
password: de tipo String,
resetPassword: un objeto representado por:
hash: de tipo String,
active: de tipo Boolean,
También crearemos un método estático que devuelva todos los elementos de la colección users para realizar pruebas:
/**
* User model based on Mongoose
*/const mongoose = require( 'mongoose' );
const Schema = mongoose.Schema;
// Mongoose schemaconst userSchema = new mongoose.Schema( {
userName: String,
firstName: String,
lastName: String,
email: String,
role: Schema.Types.ObjectId,
isEnabled: Boolean,
password: String,
resetPassword: {
hash: String,
active: Boolean,
},
} );
/**
* User static model findAll
*
* @returns {array}
*/
userSchema.static( 'findAll', asyncfunction() {
const result = awaitnewPromise( ( resolve, reject ) => {
this.model( 'User' ).find( {} ).exec( ( error, data ) => {
if ( error ) {
reject( error );
}
resolve( data );
} );
} );
return result;
} );
const User = mongoose.model( 'User', userSchema );
module.exports = User;
Ya está todo, ahora solo modificamos el handler de la ruta home.js para mostrar los valores de findAll:
Una colección interesante de código Javascript, sin tener que usar frameworks de Javascript, teniendo en cuenta, que a mi parecer es conveniente antes saber Javascript y luego aprender un framework.
De los scrips que nos muestran, me gustarÃa destacar:
Tus feeds desplazándose por debajo de la barra de favoritos o la de estado de Firefox como los titulares de la CNN y las cotizaciones de Bolsa.
Entre las opciones de la extensión: la frecuencia de actualización de los feeds, la longitud del ticker y la velocidad de recorrido (nosotros la hemos puesto a 4).
Solo funciona con los marcadores vivos del navegador, es decir suscribiéndote clickando al botón naranja que aparece en la barra de dirección, por lo que recomendamos crear una carpeta para agruparlos todos si es que aún no lo has hecho.
El .xpi, a diferencia de otras extensiones ya que aún no ha sido aceptado por Mozilla, se te bajará al escritorio. Ábrelo desde el abrir archivo de Firefox o haz un drag & drop y se te instalará la extensión.
Una vez probado, seguimos prefiriendo nuestro lector RSS. Después de unos minutos puede llegar a molestar, aunque la extensión es muy útil si solo incluyes unos pocos feeds que te interesen especialmente. RSS Ticker
Vía / Download Squad & Digg