Close Pixelate es un script que convierte una imagen en su correspondiente pixelada haciendo uso de HTML5 y canvas. Se le pueden indicar las siguientes opciones: resolución, forma del pixelado, tamaño, desplazamiento y canal alpha
Su uso es tan sencillo como ejecutar lo siguiente:
Si estás pensando en cambiar el diseño de tu blog, debes tener alguna de estas ideas en cuenta a la hora de ponerte manos a la obra, no basta con saber como hacer un theme.
The author of the fine developer extension Firebug is working on a new version. He needs your help to decide what features to spend time on. Post comments in the link to get your voice heard!
MySpace creará una nueva tienda de música online que se llamará MyStore.com y en la que sus usuarios, hasta 660.000 artistas sin discográfica, podrán vender su música en Internet
Esta es una pequeña recopilación de los mejores artÃculos – tutoriales sobre dibujos vectoriales en español que he encontrado en la web (desde un nivel básico hasta avanzado).
Nos quiere “proteger de Internet”, en el más puro estilo chino o cubano, como antes quiso “proteger” a otros mediante el uso perverso de órganos de censura siguiendo procedimientos sobre los que el Parlamento Europeo se pronunciará dentro de muy poco..
Llevo un par de meses entrando en Second Life para capturar y analizar los datos de usuarios registrados,activos y online que ellos publican cuando te conectas… Ahora, sin ninguna base cientÃfica, voy a tratar de explicar el porque de esta crÃtica a l
Mobile Web Toolkit es una extensión para WordPress que nos permite optimizar un sitio web para que sea visto desde el móvil.Entre las ventajas que se destacan se encuentran las siguientes…
20 principios que apuntan a los errores de usabilidad más comunes y la manera de corregirlos. Si aplicas estos principios en tu sitio web, la usabilidad del mismo y la satisfacción de tus usuarios se verá grandemente mejorada.
The Visio stencils on this page are free for downloading and using. They are designed to aid the work of Information Architects. In short, they are not for everyone, you may want to familiarize yourself with common IA practices before trying to use these
Marc Andreessen es uno de los fundadores de Ning, un servicio que suma mas de 73,650 socialnetworks y crece a ritmo imparable, cuenta sus 11 lecciones aprendidas de ser y hacer blogging. Imperdible
Hoy comentan en Ajaxian esta nueva utilidad javascript que a mi parecer, facilita considerablemente la creación de elementos en nuestro DOM de forma dinámica, mejorando lo visto anteriormente en el fantástico MooTools…
Los que hemos trabajado con Java estamos acostumbrados a tratar y lanzar excepciones para controlar los errores, algo que en Javascript no es muy común, pero en librerías algo elaboradas podría ser muy útil.
// Clases de errores
function DivisionByZeroError() {
this.name = "DivisionByZeroError";
}
function DivisionByStringError() {
this.name = "DivisionByStringError";
}
// Funcion que devuelve un error
function divisionCanFail(a, b) {
if (b == 0) {
throw new DivisionByZeroError();
}
if (typeof b == "string") {
throw new DivisionByStringError();
}
return a / b;
}
// Funcion de test
function decoratedDivision(a, b) {
try {
alert(divisionCanFail(a, b));
} catch (error if (error.name == "DivisionByZeroError")) {
alert("A division by zero...");
alert("Exception class: " + error.name);
} catch (error if (error.name == "DivisionByStringError")) {
alert("Exception class: " + error.name);
}
}
decoratedDivision(5, "isThisANumber?!");
decoratedDivision(5, 0);
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:
20th Century Fox has announced that it will be filming a sequel to 1987 cult classic Wall Street. It’s sad they didn’t make the sequel in the late 90s. Gordon Gekko would have made a killing in Web 1.0 stocks…
Éramos pocos… y Sun anuncia JavaFX, otra tecnologÃa para las Rich Internet Applications que supone una nueva alternativa a desarrollarlas en Flash, Ajax o Silverlight. La idea es que sea totalmente multiplataforma, desde el escritorio (corriendo sobre
Esta entrada se podrÃa haber llamado “ponga un blogger en su evento” o “invite a un blogger a conocer su producto”. De un tiempo a esta parte, ambas prácticas están siendo cada vez más habituales y los departamentos de marketing…
2 Comments
Comments are closed.