Native Client: tecnología de Google para ejecutar código nativo en tu navegador

Google está trabajando en una tecnología que permitirá a los desarrolladores web ejecutar código nativo en el propio ordenador del cliente, pudiendo así aprovechar toda la capacidad de la cpu del cliente, la cual está ahora limitada por el navegador. Lógicamente no se trataría de algo permisivo, sino que tendría limitaciones para evitar ejecutar código maligno.
Es necesario instalar un plugin para que funcione el cliente en nuestro navegador (yo lo he hecho para Firefox, ni idea de si funciona para otro navegador). Si tenéis instalado Firefox en otro directorio distinto al “por defecto”, deberéis modificar el archivo firefoxinstall.py e indicar la ruta correcta en la variable PLUGINDIR (línea 203 para Windows).
Los ejemplos que se ven son bastante atractivos: quake, mandelbrot, … Veremos a ver qué éxito tiene esta tecnología, aunque sinceramente, a veces se pretenden hacer muchas cosas vía web. Además, Java ya permite más o menos lo que pretenden, ¿no?, ¿es esto su propia versión de los Java applets y de Adobe Air?
Native Client

Uso correcto de los selectores en jQuery

Quien dice en jQuery dice en cualquier otro framework de javascript o lenguaje de programación, el tema es no malgastar recursos. jQuery permite encontrar elementos mediante la clase, por ejemplo:

$('.boton')

Esto es muy cómodo, pero también tiene mal rendimiento, ya que el script debe buscar en todos los elementos HTML y encontrar aquél que tenga class=”boton”. ¿Cómo deberíamos usar los selectores?.:

  • Si el elemento tiene un ID, hay que usar el ID, pero tampoco es plan de añadir ids a todos los elementos.
  • Indica el tipo de elemento, por ejemplo $(‘input.boton’), así limitaremos la búsqueda a los elementos input. Si no solo hay un tipo de elemento, sino varios, los indicaremos todos: $(‘input.boton, a.boton’)
  • Guía a jQuery por la ruta de elementos que puede seguir: $(‘#formulario .boton’)
  • Usa otro elemento para limitar la búsqueda: $(‘#formulario’).find(‘.boton’)

Avoid Bare Class Selectors In jQuery

Yii: framework PHP

Yii es un framework PHP desarrollado por el creador de Prado que está centrado en el desarrollo de aplicaciones web2.0 (integrando jQuery) y presume de ser una de las más rápidas y con mejor rendimiento (sobre todo usando APC).

Al igual que muchos otros frameworks, viene con las siguientes características:

  • MVC
  • ADO y Active Record
  • Validación de formularios
  • Widgets web2.0
  • Autenticación
  • Themes
  • Web Services
  • Internacionalización
  • Cache
  • Control de errores y logs
  • Seguridad
  • Generacion automática de código
  • OOP

Las pruebas de rendimiento indican que es muy rápido, sobre todo usando APC, pero bueno, las pruebas siempre las tiene que hacer alguien externo.

Yii Framework

Evitar errores de producción debidos a Firebug

Aquellos que usamos Firebug para depurar nuestras aplicaciones, podemos cometer el error de dejar una traza (console.log())y que al subirlo a producción el usuario tenga un error de Javascript. Para evitar esto, podemos incluir en nuestro script lo siguiente:

if(!window.console) {
window.console = {
log: function() {}
}
}

Visto en este ejemplo

SocialHistory.js: conoce los lugares que ha visitado los usuarios de tu web

Interesante script que nos permite saber si un usuario ha visitado alguna página, centrada en sitios sociales tipo Facebook, Digg, … aunque se puede ampliar a cualquier web.
La idea es brillante, se crea un iframe, inserta enlaces a las páginas que deseas saber si ha visitado o no, modifica los estilos para ocultar los enlaces visitados (a:visited {display: none}) y luego pregunta por cada enlace si ha sido visitado o no (el estilo debe ser display: none si ha sido visitado).
No es fiable al 100% pero es bastante efectivo.
Vote! How to Detect the Social Sites Your Visitors Use
Vía / WebAppers

Laboratorio: input password estilo iPhone con jQuery

Una de las cosas que mas me gusta del iPhone/iPod Touch es que cuando estás metiendo una password ves el último carácter que has tecleado.

Por ello he hecho este pequeño plugin para jQuery (inacabado) que realiza la misma función. Muestra la última letra tecleada y oculta el resto. Para conseguirlo lo que he hecho es transformar el input en tipo text y guardar lo que se va tecleando.

$.fn.hidder = function() {
return this.filter(':password').each(function() {
this.config = {
delay: 1,
value: '',
char: '•'
}
this.type = "text";
this.config.value = this.value;
this.value = this.value.replace(/./g, this.config.char);
$(this).bind('keydown', function(evt) {
switch(evt.which) {
case 8:
this.config.value = this.config.value.substring(0, this.config.value.length-1);
this.value = this.value.substring(0, this.value.length-1);
break;
}
});
$(this).bind('keyup', function(evt) {
if (this.value.length > this.config.value.length) {
var last = this.value.substring(this.value.length-1);
this.config.value += last;
this.value = this.value.substring(0, this.value.length-1).replace(/./g, this.config.char)+last;
var elem = this;
setTimeout(function() {elem.value = elem.value.replace(/./g, elem.config.char);}, elem.config.delay*1000);
}
});
});
}

Le faltan muchas cosas por hacer, y fallan otras, por ejemplo tratar el pulsar los cursores, restaurar el valor antes del submit del formulario, ocultar el texto despues del formulario, …

Yo personalmente no lo usaría en mi página ni loco, pero para experimento no está mal.

Devolver valores en includes de PHP

Está claro que cada día aprendo algo nuevo en PHP, quizás esto lo conoce todo el mundo, pero en mi caso lo desconocía. Se trata de que los include, requiere devuelvan un valor (muy útil con ficheros de configuración).

Si tenemos este fichero:

return array(
'hostname' => 'localhost',
'database' => 'test',
'username' => 'test',
'password' => 'test',
);

Al insertarlo en otro script, lo podremos asignar a una variable:

$config = include 'config.php';
var_dump($config);

The return value of include