Alpha's Manifesto

A black and white figure's thought-hive

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.

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.

Link del día: Google como fuente de información

Hay una serie de chistes que provienen de XKCD (perdón, pero no tengo un link directo a esos chistes en particular) en donde el chiste se basa sobre una gráfica X-Y de la cantidad de resultados que Google devuelve para una combinación de palabras. (Por ejemplo: <X> Girls <Y> Cups.)

Resulta que, para los que no lo sabían, los datos sobre estos chistes no son inventados, sino que muy generalmente provienen de datos reales de búsquedas sobre Google. ¿Pero de qué forma se hacen? No con la búsqueda normal, y el autor nos explica por qué en su entrada Trochee Chart.

Él cuenta cómo Google realmente aproxima los resultados (seguro que a muchos les ha ocurrido ver una disparidad entre los números) para luego refinarlos, y cómo distintas fuentes de búsqueda de Google mismo puede dar distintos resultados. Él nos introduce a la API de búsqueda de Google (que actualmente está obsoleta pero funcional) y una herramienta que todavía funciona para esos propósitos.

¿Ustedes creen que los resultados de una búsqueda en Google pueda ser un indicador de algo?

Soy un zorrinito googlero.

Link del día: AngularJS

Hace poquito apareció en mi feed de Youtube una charla de Google Tech Talks llamada How to Write Clean and Testable Code. Para ser sinceros, el video dura más de una hora así que no lo ví, pero en lugar de eso busqué las diapositivas que se habían usado en él y las encontré aquí: How to write Clean and Testable Code Slides. Las diapositivas no me resultaron demasiado reveladoras tampoco pero sí resaltan algunos conceptos claves que es bueno siempre tener en mente.

Más allá de eso, en las diapositivas (y muy seguramente en la charla) se menciona a AngularJS, así que lo fui a buscar. Parece que AngularJS es un sistema de templating a través de JavaScript, pero mucho mayor que simplemente templating. Digamos que más que estar orientado en generar HTML a partir de datos, también se preocupa de la forma en que esos datos deben interactuar, de forma que, podríamos decir, también genera algo de código dinámicamente para que estos datos funcionen correctamente.

No lo he probado, pero ellos dicen que es la forma en la que debería haber sido HTML si es que hubiera sido pensado desde un principio para aplicaciones web.

¿Alguien lo probó? ¿Cuáles son sus experiencias?

Soy un zorrinito javascript.

Link del día: BigQuery

Gracias a un tweet de Woork me enteré de un proyecto que actualmente forma parte de Google Labs llamado BigQuery.

BigQuery es la posibilidad que nos ofrece Google de utilizar su capacidad de tratamiento de grandes cantidades de información de una manera similar a cómo haríamos con tablas SQL. El problema en este caso es que no se trata realmente de una base de datos relacional, con lo que tenemos que tener cierto tratamiento especial con los datos. La entrada y la salida del mismo por ahora será a través de texto (CSV para importar datos, JSON para obtenerlos), y el lenguaje utilizado es muy similar a SQL, con algunas pequeñas modificaciones y limitaciones.

Tenemos también la posibilidad de integrar la API de BigQuery a nuestros sistemas, si es que podemos sacar provecho de eso, y sin duda utilizarlo de forma programática. Así tendremos la posibilidad de analizar gigabytes o terabytes de data con el poder de Google, instantáneo. No dudo que en el futuro esto logrará mayor funcionalidad y características que puedan llegar a convertirlo en un sistema de datamining muy poderoso. Aún no, pero no creo que estemos lejos.

Soy un zorrinito con muchos datos.

Link del día: Escribir JavaScript, al estilo Google

Dejando de lado a Google Closure, una herramienta de la que hablamos hace tiempo, hay algo que a muchos otros nos interesa al momento de programar: la forma en la que el código se ve. Por supuesto, más allá de ese extraño gusto por un código artísticamente elaborado, hay ciertas líneas que podemos seguir para que no sólo sea más bonito, sino más fácil de leer, interpretar y más eficaz.

Google vuelve al rescate como más de una vez lo hace, compilando públicamente su manual de estilo para codificación JavaScript. Este manual, llamado Google JavaScript Style Guide, nos provee de información extra sobre cada punto. Por ejemplo, sabían que además de ser más difícil, si  una variable no está declarada con var, es puesta en el scope global? [link] Yo no. O cómo utilizar la clausuras de funciones para evitar memory leaks.

Está lleno de información interesante para el programador web.

PD: Como extra, pueden checkear el proyecto en Google Code sobre estilos de Google, para distintos lenguajes.

Soy un zorrinito JavaScript.

Link del día: Laboratorio de Seguridad

Jarlsberg (un tipo de queso) es el nombre de una aplicación hosteada en Google App Spot dedicada al entrenamiento informático. Esta herramienta nos provee de una plataforma libre en donde podemos probar ataques de seguridad y no romper nada. Al mismo tiempo, los tutoriales también nos irán explicando los distintos conceptos y la forma en que deben de ser aplicados en este caso en particular. Es decir, tenemos tanto teoría como práctica.

Por supuesto que esta aplicación también forma parte de Google Code University, el cual se encuentra repleto de distintos cursos relacionados (y no tanto también) al desarrollo.

Pero si es que quieren trabajar con entornos hackeables para experimentar / jugar / aprender, siempre tienen a WebGoat, las aplicaciones “Hacme” de Foundstone, y otras varias más linkeadas desde IronGeek (BadStore, Damn Vulnerable Web App, Moth, Mutillidae, Standford Security Bench, Vicnum y WebMaven).

Soy un zorrinito seguro.

Link del día: Performance Web

A pedido de JF que está luchando con la performance de algunas aplicaciones web, hago un compilado de ciertos links que fui encontrando hace tiempo, y que de seguro serán útiles a más de una persona para mejorar la velocidad con la que funciona una web application. Especialmente ahora que es tenido en cuenta para su Page Ranking.

Comenzamos!

Eso es todo por hoy, pero seguramente tengo más por ahí guardado que hoy no logré encontrar. A apurar los websites!

UPDATE 21/05/2010:

Agrego los siguientes links que me mandó El Hombre Gris, para optimización de PNGs, parte I y parte II, de la misma idea que el de la optimización de JPEG que vimos antes.

Soy un zorrinito rápido.

Link of the day: Google Security

Well… sort of. It’s not anything new these days, but a while ago, Google published it’s own security testing tool for website security testing, called Skipfish. Of course, this is not the first tool that Google releases for this purposes, as many related are already out there (like ratproxy, the Browser Security Handbook, and so on…). However, the new thing today is skipfish.

Skipfish is an active website scanner that will test the web applications for XSS, SQL Injection, Shell injection, XML Injection (that one’s new for me), SSL, insecure cookies, correct MIME headers, server errors, invalid links… etc. The complete list is enormous, and one of the main things is that this tool is being developed on C for high performance. It claims to be able to run with 2000 requests per second on remote servers (of course, if the servers answers in time).

I haven’t had the chance yet to give it a try but I probably will these days. These are the kind of reports that you may see from it, see a skipfish screenshot.

This all came from Google’s Online Security Blog. It is worth a reading, updates are not too much common nor too much big, so you can keep easily up to date with your favorite RSS reader.

I’m a secure little skunk.

Link del día: Queries comunes

A aquellos que programamos SQL nos encontramos muchas veces con lo que se encuentra cualquiera que programa cualquier otra cosa: tener que resolver un problema que seguro ya alguien resolvió. Para esto están los fotos, Google, sitios de soporte, StackOverflow, ExpertSexChange (a drede) y tantos otros lugares.

Hoy dejaré otro lugar que es de buena referencia para varios problemas comunes en SQL, algo que a muchos puede costarnos porque seguramente todos aprendimos a programar imperativamente y el álgebra relacional puede que no sea nuestro fuerte. El link en cuestión se trata de Common Queries Tree, que dice ser una extensión de Common MySQL Queries, y de los manuales de referencia de Artful Software.

A mi me ha ahorrado varias horas y dolores de cabeza, espero que a ustedes también.

Soy un zorrinito relacional.