Link del día: Qué debería saber todo programador JavaScript

Aquellos que están en el mundo web, y más que nada en el mundo de las RIA (Rich Internet Applications), no dudarán en decirme que JavaScript es sin duda una de las herramientas más potentes que tenemos disponibles. Otros sabrán de muchas de las mejoras que se vienen en este área, pero no es lo que quería comentar hoy.

Lo que quería contar es sobre una pregunta en StackOverflow llamada What should every JavaScript programmer know?, con puntos muy interesantes, referencias muy completas y hasta un quiz, y yo creía que sabía y no respondí correctamente ni la mitad de las preguntas.

Leer esas respuestas llaman la atención y sacan a la luz muchos puntos curiosos que quizá no habíamos considerado.

Soy un zorrinito JavaScript.

(Read more →)

Link del día: Programando con el sombrero rosa

La gente de Babcock y Jenkins escribió un artículo sobre una actividad que ellos denominan “Coybow coding”, que como lo pueden imaginar, tiene que ver con la codificación temeraria. En este caso, se trata sobre la programación o remediación de defectos directa en servidores de producción. Su artículo se titula Cowboy Coding and the Pink Sombrero.

La metodología de ellos es realmente hacer llamar la atención a alguien cuando se están haciendo cambios en producción. Es muy común que ciertas empresas muestren un mensaje cuando se accede a un servidor de producción, o que muchas acciones estén restringidas, o que se necesite usar passwords a cada rato. En defnitiva, es la importancia de recordarle al programador / administrador de sistemas que se encuentra trabajando en un sistema que está en vivo.

Ahora, otra forma de lograr este efecto es “haciendo pensar” al programador si realmente se justifica estar haciendo estos cambios en producción, y para eso, nada más llamativo de la atención que un sombrero rosa. Lo llamativo del sombrero hace que todos sepan que hay alguien trabajando en producción, y cuando se acercan a preguntar, la persona haciendo los cambios comienza a dudar si realmente lo mejor era hacer eso.

Buena técnica, curiosa implementación. Me gusta como se juega con la psicología para que de a poco se vayan castigando estos comportamientos. Sin embargo, creo que si alguien debe de hacer un cambio en producción, dudo que el ambiente sea tan animado como para andar poniéndose sombreros.

Soy un zorrinito sin sombrero.

(Read more →)

Link del día: BuiltWith

BuiltWith es un servicio web que nos proporciona información sobre las tecnologías que soportan un determinado sitio. Más allá de sólo describir los módulos básicos de Apache y el tipo de servidor sobre el que se encuentre dicho sitio, nos comenta sobre varios tipos de utilización de contenido, como CDN, codificación, qué tipo de frameworks se están utilizando, qué tipo de CMS si se puede reconocer, librerías JavaScript, información sobre HTML si se encuentra disponible, y un poco más.

Nos dejan investigar también sobre otros sitios que usen la misma tecnología, pero no lo veo realmente útil a menos que queramos comparar determinados sitios que usen plataformas algo raras. Por ejempo, una búsqueda entre qué sitios usan Wordpress no aportará nada interesante, una búsqueda entre qué sitios utilizan codificación UTF8 creo que no sirve de mucho. De todos modos, este tipo de reportes son pagos, pero la información general no lo es.

Soy un zorrinito curioso.

(Read more →)

Link del día: Notificon

La gente de Github no me deja de sorprender, parece que siempre tuvieran algo nuevo. En este caso, me crucé con algo que no es demasiado funcional, pero sí muy interesante para lograr buenas interfaces de usuario.

Han notado cómo GMail utiliza el título de la página/tab para avisarnos de cuando tenemos un mail nuevo, incluso si estamos en otro tab? Bueno, algo muy parecido se puede hacer con los favicons, cambiandolos para dar una notificación al usuario. Algo parecido hace Google Calendar, poniendo un favicon distinto cada día con la fecha actual.

El código fuente de este proyecto se puede encontrar en este sitio de Github: Notificon.

Recuerdo haber leído unas pruebas cross-browser del soporte de favicons y su posible utilización. El único caso en donde no funcionaban era en Safari, ya que en lugar de mostrarse los iconos, se mostraba un ícono propio de Safari, y dependiendo de la cantidad de tabs, directamente no se mostraba nada. Desafortunadamente, olvidé en dónde leí eso (y mis búsquedas no dieron resultados). El estudio concluía que Safari debería ponerse al tanto con el resto de los navegadores.

Soy un zorrinito visible.

(Read more →)

Link del día: Documentación jQuery extra-oficial

Me encontré con dos fuentes de documentación extra-oficial de jQuery, con lo cual, por supuesto, pueden estar desactualizados y hasta incorrectos. Pero lo interesante de ellos es que nos ofrecen una navegación un poco distinta que la que la documentación original nos ofrece.

Es el caso, por ejemplo, de Visual jQuery (actualmente en 1.2.6), que nos permite navegar la documentación de forma jerárquica, sin perder el nivel de dónde estábamos. Además, encontré que es muy orientado a ejemplos, con lo que es fácil llegar al punto de lo que hace cada cosa y cómo se utiliza.

jQAPI es un caso parecido, y parecería que la navegación es aún más fácil en este caso, incluyendo búsqueda HTML5 y todo. Me pareció que este tiene explicaciones más detalladas y ejemplos más completos.

Soy un zorrinito javascript.

(Read more →)

Link del día: Aprendan estadística o los mato a todos

Este link que me llegó del nuevo Delicious trata de un rant de Zed Shaw titulado Programmers need to learn statistics or I will kill them all. Trata de las frustraciones que él encuentra al momento de discutir resultados de tests y generalizaciones con determinados programadores con los que ha trabajado.

Si bien no deja de ser un rant y por eso no es realmente informativo, es un buen punto de partida para entender por qué el conocimiento básico que tenemos de estadística (si no todos, probablemente una gran mayoría). Creo que muchos hemos pecado de cometer las mismas acciones que él cuenta en su artículo, como dar un número grande de pruebas, sacar un promedio y entender que ese es el promedio de los casos, cuando hay muchos otros factores que afectan y muchos otros datos que aportan información y nunca se tienen en cuenta. Para sacar una frasecita de su artículo: “El punto es que si ustedes dan un promedio sin mostrar la desviación estándar, perdieron completamente el punto de siquiera intentar medir algo”.

Soy un zorrinito promedio.

(Read more →)

Link del día: Sinfonías algorítmicas

Me crucé de casualidad (y ya ni recuerdo cómo) con un artículo de un blog llamado Algoritmic symphonies from one line of code – how and why?, en donde el autor mostraba un viejo experimento que había hecho: hacer iterar una variable sobre valores incrementales, y que una función de esa variable fuera enviada a la salida de audio.

Resulta que experimentando con distintas fórmulas pudo crear sonidos y hasta “canciones” bastante avanzados. Por supuesto, no podremos compararlos con obras musicales actuales (excepto que hablemos de dubstep o industrial experimental – encajarían bien ahí), pero aún así es increíble la complejidad que estos pueden adquirir con esas simples pruebas. Allí es en donde el autor encuentra esa belleza escondida de las fórmulas.

Por si fuera poco, alguien hizo una versión en JavaScript, que pueden probar y divertirse creando música (o ruido) desde fórmulas, y hasta estéreo (acompañamiento!).

Soy un zorrinito musical.

(Read more →)

Link del día: Lineamientos de seguridad

Desde los geniales posts que nuestro amigo Alan Pasho ha escrito para el blog de CommonSense, en la serie de Is Your Website or App Secure? (recomiendo la lectura de todos ellos), me encontré ayer con los lieamientos que Mozilla impone a sus desarrolladores como medidas de seguridad al momento de desarrollar aplicaciones.

Cabe destacar que estos lineamientos, WebAppSec/Secure Coding Guidelines, no son nada cortos, pero sí detallados, y se cubren tópicos desde manejo de sesiones a (lo más básico) validación y autenticación. Si alguien está pensando en armar un checklist, este es muy buen comienzo, y si alguien quiere una guía completa de qué cubrir, puede leer esto o, por supueto, todo el contenido de OWASP y los libros relacionados.

Sabemos que la seguridad es todo un mundo, pero cuando se trata de hacer verificaciones o checkeos, siempre necesitamos una lista rápida,y tanto los posts de Alan como la guía de Mozilla son un buen lugar para hacer esa checklist de items.

Soy un zorrinito asegurado.

(Read more →)

Link del día: HackArmoury

Como de costumbre, la gente de DragonJar postea cosas muy útiles e informativas en el ámbito de la seguridad. En este caso se trata de dar a conocer HackArmoury, un sitio dedicado a ser un repositorio de herramientas lo más accesible posible, de forma que estemos en donde estemos, con las restricciones que tengamos, siempre podamos acceder a las herramientas útiles en el ámbito de la seguridad.

Cabe destacar que este sitio ha innovado en cuanto a las formas que se tiene de acceder a él. No sólo están el típico HTTP y FTP, sino que también podemos entrar a través de Samba (SMB), rsync, IPv6, TFTP, SVN.. por supuesto, lo estarán expandiendo en el futuro. (Por qué no, por ejemplo… email?)

Soy un zorrinito armado.

(Read more →)

Link del día: El bug tracker más simple

Cuando exponemos a los usuarios la posibilidad de agregar bugs para revisar, es muy importante que este proceso no sea ni complicado ni difícil de lograr. Debe ser algo que cualquiera pueda entender, y que no sea una interrupción al flujo de la aplicación para que los usuarios puedan reportar también detalles que necesiten ser arreglados.

Si han visto la forma en la que Google Plus permite dar feedback, habrán notado que, aunque es una forma simple, involucra varios pasos que hacen del proceso algo “pesado”.

BugHerd se encarga de ambas cosas. En cuanto a la interfaz, sólo se trata de señalar algo en la pantalla y un texto para decir qué está mal al respecto. En cuanto al proceso, solo se trata de una interfaz con un botón y un campo de texto. Bastante simple, bastante claro.

Está de más aclarar que con un proceso tan simple el feedback de los usuarios será mucho. No hagan esto si no están dispuestos a prestar atención a lo que los usuarios quieren.

Por otro lado, BugHerd es pago, pero los precios no son altos para nada.

Soy un zorrinito buggeado.

(Read more →)