Archivo de la categoría ‘Javascript’

qrcode link
3 de marzo de 2012

JS QuasicrystalsJS Cuasicristales

Los cuasicristales se definen como estructuras geométricas ordenadas, pero no periódicas. Es decir, un patrón cuasicristalino puede utilizarse para llenar un espacio por completo, dando sensación de repetición, aunque ésta no existe porque no presenta una simetría de traslación.

Alicatado asimétrico en la Alhambra de Granada

Este tipo de patrones se lleva utilizando desde la antiguedad para la decoración en el  arte islámico, pero se suponía que en la naturaleza no se podían encontrar formando cristales minerales. En 2011 el profesor Daniel Sechtman se llevó el premio Nobel de Química por demostrar la existencia de estos patrones (le costó casi 30 años convencer al resto de científicos). Podéis encontrar en YouTube un vídeo en el que el propio profesor Sechtman cuenta cómo sucedió todo. Merece la pena verlo

Los patrones cuasicristalinos se pueden generar de manera automática utilizando algoritmos, como el que explica Eric Weeks en su artículo ‘How to make a Quasicrystal‘. Es relativamente sencillo programar una aplicación que genere estos patrones basándose en el algoritmo descrito en el artículo. De hecho el propio Eric Weeks escribió en 1995 un pequeño programa en C que generaba ficheros PostScript con los patrones.

JS Quasicrystal

Aquí os presento un experimento HTML5 que permite generar cuasicristales directamente en el navegador, utilizando el algoritmo explicado por Eric Weeks.

JS Quasicrystals

Lo que he hecho ha sido migrar la lógica del programa Quasi.c a JavaScript, ajustar los parámetros de entrada y generar el resultado del patrón con HTML5 usando un elemento <canvas>.

Afortunadamente el conjunto de instrucciones de dibujo en PostScript de C es similar al de HTML5, con lo cual el proceso se ha simplificado bastante.

Podéis descargaros el código fuente del ejemplo, o acceder al mismo en Gitorious

qrcode link
21 de enero de 2012

JavaScript Design Patterns (I) : AbstractFactoryJavaScript Design Patterns (I) : AbstractFactory

Vamos a hacer un pequeño compendio de ejemplos en JavaScript, recogiendo los patrones de diseño más populares o que nos parezcan más útiles. Iremos colgando el código de los ejemplos en un repositorio en Gitorious/jspatterns.

En la medida de lo posible todo serán ejemplos reales y funcionales, aplicados en alguno de nuestros desarrollos, así que no verás por aquí Pizzas, Tomates, Coches, o Garajes (a no ser que así esté en el proyecto). Además los ejemplos tendrá algo más de chicha en cuanto al código.  Se incluirán algunas bibliotecas que utilizamos en nuestros proyectos, como simple-inheritance o zepto. El código está comentado siguiendo las reglas de JSDoc.

(más…)

qrcode link
4 de abril de 2011

Ajax Google URL Shortener

Although it is very simple, I haven’t found any example out there. This is a little JS class to call Google URL Shortener API from your widget.

It requires jQuery. Notice that it won’t work on your Web site, it is only for widgets.

/**
 * @author Julio Rabadán (@ somms.net)
 */
var UrlShortener = function (_ApiKey)
{
	this._apiKey = _ApiKey;
};

UrlShortener.prototype.getShortURL = function (_URL, _callback){
    _URL = $.trim(_URL);
    if(_URL){
      var api_url = "https://www.googleapis.com/urlshortener/v1/url";
      var data_POST = '{ "longUrl" : "' + _URL + '", "key" : "' + this._apiKey + '"}';
      $.ajax({
        url : api_url,
        dataType : "json",
        data : data_POST,
		contentType : "application/json",
		processData : false,
        success : function(response){
          _callback(response);
        },
        cache : true,
        error : function(XMLHttpRequest, textStatus, errorThrown){
          console.log(XMLHttpRequest, textStatus, errorThrown);
		  _callback({"status": "network_error"});
        },
		type : "POST"
      });
    }else{
      return false;
    }
}
qrcode link
28 de mayo de 2010

Native messages for Android PhoneGap

Recently I needed some modal and waiting messages in a PhoneGap app. My first approach was to use a javascript solution, based in jQuery, but the performance and quality of native modal messages are unquestionable. So I decided to program it, and here you have the result.
(más…)

  • qrcode link