Link del día: Script Src

Sacando esto del cajón de_ las aplicaciones que no hacen nada pero son útiles_, me encontré a ScriptSrc, una aplicación que mantiene las últimas versiones a varios frameworks y librerías comunes, como jQuery, mooTools, extJS, YUI, etc. Por supuesto, los scripts no están alojados en este propio servidor, sino que ellos nos dan el link al CDN correspondiente que lo aloja, permitiéndonos linkearlo directamente.

Y aunque hay un poco de discusión sobre si realmente conviene usar CDNs o mejor archivos pequeños en nuestro propio host, hay ciertas ventajas y desventajas. Las ventajas son ineludibles, las desventajas no lo son tanto.

Soy un zorrinito distribuido.

(Read more →)

Link del día: Algoritmos genéticos juegan al Tetris

Ni más ni menos que como lo dice el título, este es el caso de alguien que con un poco de tiempo libre (bueno, mucho) y algo de ingenio (bueno, mucho) logró hacer un algoritmo genético que aprendiera a jugar al Tetris. Podemos ver tanto la teoría como la práctica en videos en el artículo de su blog. Allí se explican los detalles al respecto, que serán muy útiles para todos lo que estén interesados en dotar de inteligencia compleja a algún sistema y no sepan muy bien por dónde comenzar.

Soy un zorrinito genético.

(Read more →)

Link del día: Google Swify

De la gama de productos Google que todavía están en beta y en laboratorios (una buena cantidad), ahora tenemos a Google Swify, cuya funcionalidad es tomar archivos de Flash para convertirlos a HTML5.

No lo he probado, pero supongo que hará un uso excesivo de los elementos de Canvas y animación via JavaScript. Tampoco he sabido cuál sea la performance general de los resultados. Pero, sí podemos saber, que gracias a esta conversión, podremos fácilmente estar disponibles en cualquier tipo de plataforma.

Via i.MicroSiervos.

Soy un zorrinito HTML5.

(Read more →)

Link del día: Minify

Tratando de retomar la periodicidad de los links del día, hoy quiero hablar de Minify. Minify es una librería PHP de código abierto autocontenida que podemos utilizar para minimizar, unificar, cachear y definir nombres propios para recursos que queremos utilizar y mejorar la performance de nuestro sitio.

La librería no sólo soporta el trabajo con CSS, JS y HTML, minimizándolo completamente, sino que además puede ser utilizado para minimizar recursos bajo un solo nombre, y mejor aún, también es extensible para que podamos servir cualquier tipo de contenido de cualquier otra fuente. De hecho, lo probé cacheando y sirviendo recursos desde un sitio propio cuando los recursos en realidad son leídos de un lugar ajeno. Las ventajas de eso son el poder servir todo el JavaScript/CSS junto incluso aunque no nos pertenezcan, y ahorramos pedidos, y evitamos que el cliente deba acceder a múltiples dominios.

Y lo mejor, ni siquiera tenemos que andar haciendo referencia a los nombres de los archivos (aunque es la forma más fácil), ya que podemos definir grupos con nombres y utilizarlos. Eso nos brinda la ventaja de poder jugar mucho con eso y con el dinamismo de nuestra aplicación.

Pero en fin, lo interesante es la forma en la que minimiza, y lo simple que es de usar. ¡Dénle un intento!

Soy un zorrinito minimizado.

(Read more →)

Link del día: Spine.js y cómo utilizarlo

Building JavaScript Web Apps with MVC and Spine.js es un artículo muy explicativo de cómo debe ser la estructura de una aplicación MVC junto con herramientas de Spine.js que nos permitirán hacer más sólidas nuestras aplicaciones. Para aquellos que no sepan qué es MVC, aquí tienen una corta y buena explicación, y para los que no sepan cómo se usa Spine.js, también tienen un buen ejemplo.

Personalmente me gusta que la aproximación presentada es bastante limpia y lo suficientemente simple como para ser entendible sin confundir distintos conceptos. Recordemos que, aunque poco funcional, es un ejemplo para aprender de qué se trata.

Como extra, y para los más interesados, el artículo incluye una entrevista con uno de los desarrolladores de Spine y varios otros ejemplos.

Soy un zorrinito MVC.

(Read more →)

Link del día: HTML5 Front End Framework

Para todos aquellos que necesitábamos una forma de fácilmente comenzar con trabajos en HTML5, tenemos la opción de comenzar con algo ya estructurado sobre lo que podemos hacer nuestras modificaciones a gusto.

Me he encontrado principalmente con dos opciones muy interesantes. La primera de ellas es HTML5 BoilerPlate, del cual habíamos hablado algún momento en el pasado. Básicamente es un template que podemos utilizar para arrancar rápidamente con la configuración básica de una aplicación HTML5. Ya incluye un poco de configuraciones para cacheo, optimizaciones para mobile, un framework de testing y varias cosas más.

La segunda opción es G5 Framework, que bajo el mismo concepto tiene también varios elementos sobre los que podemos pararnos para impulsar nuestro proyecto. Este además ya tiene una buena cantidad de librerías incluidas con lo que podemos inmediatamente comenzar a constriur sobre ellas, y sobre un framework CSS, útil como siempre.

Quisiera ver qué trabajos se logran con estos frameworks.

Soy un zorrinito HTML5.

(Read more →)

Link del día: Computadoras cuánticas, a la venta

Quería dejar pasar un poco más de tiempo para poder indagar en detalle sobre esto, pero aparentemente no hay demasiada información, o al menos no más allá de lo que los fabricantes disponen para el público.

Aparentemente, hemos llegado al punto en donde la computación cuántica entró al mundo de los negocios, y hay empresas que ya disponen de estos bebés para la venta en general. Por supuesto, están un poco caros (según MicroSiervos, de donde me enteré, hablamos de unos 10 millones de dólares), y más todavía si consideramos que no son demasiado potentes todavía (128 qubits). Ah, no es para cualquier ambiente tampoco, la instalación toma algo así como un mes, en donde la mitad del tiempo son testeos de entorno para ver si nuestro cuarto (?) es lo suficientemente estable para la computación cuántica.

Sin embargo, son algo totalmente novedoso y por eso interesante, muy seguramente en poco tiempo ya tendremos modelos que sean más alcanzables y más estables para el resto del mundo, para nosotros, los no-ricos.

Si les interesa la tecnología detrás de esto, pueden visitar la misma página del producto, D-Wave One, en donde tienen varios documentos de distinto nivel técnico explicando cuál es la ciencia detrás del telón. Aparentemente, hasta hay varios papers de reconocimiento oficial por ahí.

Soy un zorrinito pobre.

(Read more →)

Link del día: Interrelacionando datos

Para quienes es sólo una palabra difícil, interpolación significa en el ámbito de funciones matemáticas, calcular valores aproximados de datos que no tenemos realmente. Esto se lleva al punto en donde para interpolar, podemos calcular una fórmula que rige los valores con los que estamos trabajando. Cuando estas funciones realmente predicen los datos con los que estamos trabajando, logramos obtener la “regla” por la que estos valores se guían.

Y esto es interesante cuando tenemos un conjunto de valores y luego tenemos que predecir su comportamiento en el futuro. Más que nada, en casos de la vida cotidiana. ¿A qué hora estará peor el tránsito? ¿Cuántas llamadas voy a recibir en cada momento del día?

Eureqa es un software que nos permite hacer este trabajo. Tomando un conjunto de datos y permitiéndonos cierto margen de error (muchos algoritmos de interpolación los permiten) nos permite identificar con cierta exactitud una fórmula que describa el comportamiento de nuestros datos. Se hace generando distintos bloques de operaciones aritméticas que den lugar a un resultado más o menos cercano a nuestro conjunto de datos. Personalmente no reconozco si este es un algoritmo de interpolación en particular, o sólo se trata de un algoritmo de búsqueda (en pocas palabras: prueba y error).

Muy relacionado, quiero dejar un link a Google Correlate, uno de los productos de Google que ahora se encuentran en sus laboratorios, que básicamente nos devuelve cuáles son las búsquedas más íntimamente relacionadas en cuanto a números con una búsqueda que a nosotros nos interese. Como extra, nos permite loggearnos y relacionar nuestro propio conjunto de datos con los que ellos tienen de sus búsqueda. O mejor aún, podemos dibujar nuestro propio gráfico y saber qué búsquedas tuvieron esa característica de interés (por ejemplo, una curva creciente y luego decreciente, algo que a la gente ya le aburrió).

Soy un zorrinito de datos relacionados.

(Read more →)

Link del día: Normalize CSS

A pesar de lo que parece, Normalize CSS no es lo mismo que reset CSS. El reset común vuelve todos los valores que los navegadores por defecto tienen distinto a 0, para que cualquier cambio que hagamos tenga el valor que nosotros asignemos.

Sin embargo, hay quienes realmente defienden la diferencia de estilos que cada navegador utiliza por defecto, para dar una experiencia del usuario distinta (y todavía me falta crear un post sobre el tema para exponerlo en detalle). Para ellos, Normalize CSS tiene mucho más sentido, porque no se fuerzan las propiedades a tener determinados valores, sino que sólo se normaliza todo a un estado consistente, desde el cual cada navegador utiliza sus valores por defecto.

Como extra, esta librería en cuestión también corrije varios errores comunes, o bugs que los navegadores pueden tener, y agrega ciertas mejoras de las que podemos aprovecharnos.

Soy un zorrinito normalizado.

(Read more →)

Link del día: CSS Crush

Siguiendo con la seguidilla de links sobre CSS, hoy les traigo CSS Crush. En este caso en particular, se trata de una librería php que muy gentilmente se encarga de extender nuestras capacidades sobre CSS para evitar la repetición de código, mientras que la información que se envía al cliente es totalmente distinta.

El artículo que lo explica lo compara con otros pre-procesadores CSS que se han probado, y aparentemente CSS Crush sería el más completo de todos ellos. Debe ser server-side, debe tener la posibilidad de cachear, de utilizar variables a gusto, y CSS Crush provee todo eso y un poco más, permitiendo una generación de código muy consistente.

Soy un zorrinito preprocesado.

(Read more →)