Link del día: Arquitectura CSS

La idea me parece fantástica, pero la forma en la que se desarrolló, no tanto. La idea era, Scalable and Modular Architecture for CSS, una organización del código CSS de una aplicación para que fuera dividido en forma modular. De esta forma, habría determinados estilos base, y otros estilos pertenecientes a módulos que especificarían cosas extra, o modificarían detalles (aunque no deberían) de los estilos base.

Ahora, los estilos base se subdividen, a su vez, en estilos que tienen que ver con el layout, y los que no se llaman “base”. Por último, hay una cuarta clasificación que tiene que ver con estilos de estados, es decir, cuando algo está activado, cuando se encuentra deshabilitado, etc.

Si bien la idea está muy interesante, veo algunos puntos grises en cuanto se debe determinar qué estilo pertenece a qué. Hay reglas CSS particulares que van a ser seguramente pertenecientes a una de las anteriores categorías mientras otras no, pero podemos estar hablando de los mismos elementos en pantalla. Para poder lograrlo de forma precisa, debería tenerse demasiado cuidado y una gran cantidad de reglas que aplicarían a un determinado elemento. En ese sentido no se me hace demasiado natural, aparte de la necesidad de marcar de múltiples formas un mismo elemento (un id, varias clases).

Sin embargo, me parece un muy buen comienzo, y quisiera escuchar ideas, porque creo que esta arquitectura es una base muy poderosa para hacer de CSS complejo algo muy ordenado.

Soy un zorrinito estilizado.

(Read more →)

Link del día: Trucos de consola de Chrome

De parte de la gente de HTML5 Rocks! tenemos un pequeño post con dos videos cortos (7 minutos cada uno), llamado 7 minute videos: Javascript Console Protips & newish DOM APIs, en donde Paul Irish nos cuenta sobre determinados truquillos que podemos utilizar para debuggear JavaScript, mayormente en Chrome (aunque dos de los trucos se aplican a Firefox y a Opera).

Personalmente no me encuentro desarrollando mucho JavaScript pero creo que adoptaré alguno de estos trucos, especialmente el $0 que hace las cosas terriblemente más fácil, junto con keys(), console.time() y copy(). A ver si puedo ponerlos en mi navaja suiza diara.

Soy un zorrinito loggeado.

(Read more →)

"Run your own race" (Seth Godin)

Del blog de Seth Godin:

Corre tu propia carrera

El espejo retrovisor es una de las herramientas motivacionales más efectivas jamás creadas.

No hay duda que mucha gente acelera en el rostro de la competencia. Preguntamos “cómo le fue al resto de la clase?” Escuchamos a quién respira en nuestras nucas. Y descubrimos que la competencia a veces saca lo mejor de nosotros.

Pero hay una desventaja. Años atrás, durante mi nado de larga distancia (por Long Island Sound… agua fría, medusas, en todo el trayecto), la competencia estaba bastante dura. Desde el bote hasta la línea de comienzo había cientos de nadadores, estirándose, presumiendo, pavoneándose y calentandosé. Para el momento en donde tocamos el agua, todos estaban corriendo la carrera de los demás. El comienzo fue una explosión de ego y adrenalina. Veinte minutos después, la mitad de los participantes estaban exhaustos, con tres horas faltando.

Si vas a contar con la competencia para sacar tu mejor trabajo, entregaste el control sobre tu objeto más preciado. El verdadero logro viene de correr hacia adelante cuando nadie más ve un camino– y detenerse cuando la aceleración no te llevará a donde quieras ir.

Si eres dependiente de la competencia entonces estás contado con la calidad de esos que se muestran a sí mismo para determinar qué tan bien lo harás tú. Peor aún, te has inscripto para una carrera de empates terribles y falsos como la mejor forma de hacer tu trabajo.

La auto-motivación es y siempre será la forma de motivación más importante. Conducir con tus ojos en el espejo retrovisor es agotador. Es más fácil que nada medir tu performance contra la de los demás, pero si no te está ayudando con tu misión, detente.

(Read more →)

Link del día: Cryptico.js

Ya alguna vez había mencionado una librería JavaScript para encriptar datos (jCryption), pero nunca está de más considerar otras alternativas. En este caso se trata de cryptico.js. El proyecto también es de Open Source y nos permite usar AES y RSA (o eso leí, pero la documentación sólo menciona RSA), y con una serie de métodos muy simples, nos permite operar con cadenas que queramos utilizar para transmitir de forma segura.

Lo curioso es que podemos generar claves especificando el tamaño de la misma, pudiendo ir desde una clave de 512 bits hasta 8192… pedazo de clave.

Este tipo de encriptación, por el hecho requerir una clave “insegura” para generar la clave RSA, no es inseguro de por sí. Recordemos que estamos hablando de encriptación asimétrica, de forma que por más que se tenga la clave generada, no hay inseguridad, puesto que es la otra clave (la que se queda con nosotros, la privada) la que se usará para desencriptar los datos.

Soy un zorrinito encriptado.

(Read more →)

Link del día: If This Then That

IfTTT.com es un servicio que me atrevo a calificar de “maravilloso” en donde nos permiten integrar distintas redes sociales o servicios 2.0 en workflows que nosotros definiremos. Dependiendo del uso que le demos, puede sernos más o menos útiles.

Aunque su página de WTF lo explica, les daré un ejemplo de lo que se puede hacer para que lo vean de una forma simple, con unas reglas que uso yo:

  • Cuando alguien me taggea en una foto en Facebook, que me envíe una copia de esa foto a mi email
  • Cuando favoriteo un tweet, que me agregue ese tweet a Instapaper (yo uso los favoritos de Twitter para cosas que quiero leer después)
  • Cuando le pongo una estrella a una entrada de Google Reader, que me la copie a Instapaper (yo uso las estrellas de GReader para cosas que quiero leer después)
  • Cuando agrego un post a este blog, que lo twitee automáticamente

Y este servicio todavía está en Beta, me encantaría que agregaran en el futuro nuevos servicios y nuevas integraciones. La idea está fantástica y su utilidad es impresionante. Por supuesto, también podemos hacer interactuar muchos otros servicios (Craiglist, Evernote, Youtube, feeds, Facebook, Twitter, teléfono y sms!, linked.in, vimeo…).

Como extra, podemos utilizar “recetas” (tareas que ya otra gente ha programado) o crear las nuestras propias.

¿Para qué lo utilizarían ustedes?

Soy un zorrinito automatizado.

(Read more →)

Misceláneos del fin de semana

Por un lado, esto es una excusa para probar IfTTT. Luego hablaré sobre esto.

Por otro lado, sigo avanzando con el libro de Minsky, The Emotion Machine, sin embargo, ya estoy terminando el capítulo 7 y no creo que vaya a hacer un resumen de capítulo por capítulo como estaba haciendo. Siento que pierdo demasiado tiempo en los detalles cuando lo importante lo puedo resumir al terminar. A la vez, detecto ciertas debilidades en la teoría de Minsky pero quiero darle la oportunidad de justificarse antes de terminar. Aún así, no pongo en duda nada. Hablamos de Minsky, lo pensó bastante mejor que yo. También lo hablaremos luego.

Por otro lado más, veré de apresurar los ratings de películas. Ahora también juego con IMDB y su sistema de recomendaciones. Por lo pronto, aquí está la lista de todo lo que encontré para rankear, y la lista de mis películas pendientes para ver. Todo está en proceso de construcción.

También estoy pensando en volver esto más microblogging… necesito hacer un serio trabajo de rediseño aquí.

Hice un pequeño post sobre Cross Domain POST Requests. Aparentemente no hay nada que los detenga de ocurrir. Si bien eso no es noticia, me pregunto por qué hay problema con Cross Site Ajax Requests y no con esto. El post y una pequeña prueba están aquí.

Por último, pronto se vendrá el review de Killer Elite, si es que llego a verla.

(Read more →)

Link del día: Chirpy

Ayer hablé un ratito más con JH y siendo que no hay una sola charla que pueda tener con él en donde no aprenda algo, me comentó de su más reciente descubrimiento: Chirpy.

Chirpy es un proyecto open source de un plugin para Visual Studio que nos permite trabajar con archivos js, css, .less y T4 de forma casi nativa. Además, nos genera minimizaciones, hojas de estilo y transformaciones a medida que vamos guardando los archivos, casi “real time” a como estamos trabajando. Básicamente, nos permite extender la cantidad de herramientas que disponemos en tiempo de diseño.

No lo he probado personalmente, y no sé si es que introduzca algo de lentitud al entorno pero parece realmente convenir para tener una más variedad de posibilidades al momento de desarrollar, ahorrándonos tiempos de pruebas e integración.

Soy un zorrinito integrado.

(Read more →)

Link del día: Combres, optimización ASP.NET

Justo ayer, rondando la medianoche, JH me envió por email un link a este proyecto llamado Combres 2.0, una librería para optimización de sitios ASP.NET. Recuerdan el caso de Minify para PHP o mod_pagespeed para Apache, este es el turno de ASP.NET.

Esta librería nos permite incluir recursos haciendo uso de ella, de forma que al momento de generar los links también se hacen referentes a una dirección que esta librería manejará, y se encarga del cacheo, compresión y minimizado de los documentos. La reducción de HTTP requests es, por lejos, una de las ganancias más útiles y menos costosas de lograr que nos ofrece.

En el sitio de CodeProject (en donde se encuentra alojado) se pueden ver varias de las aplicaciones y usos que tiene. Veré si prontamente puedo comenzar a utilizarla.

Soy un zorrinito optimizado.

(Read more →)

Link del día: 100 formas de hacer que las cosas se hagan

Me encontré en Del.icio.us este interesante artículo (de agradable estética, dicho sea de paso), titulado 100 ways to get more done, que es un buen listado de muchos consejos. Aunque no me encuentro de acuerdo con todos ellos, una gran mayoría son realmente útiles e interesantes para investigar.

Leer estos me volvió a llevar al método de Inbox Zero de Merlin Mann, una técnica muy interesante de concentrarse para hacer lo que uno tiene que hacer cuando el email se convierte en una distracción constante. Creo que los consejos no aplican realmente a todo tipo de situación pero tiene un par de técnicas interesantes. Yo estoy comenzando a aplicarlo, con algunas variantes para que sea menos drástico al principio, pero todavía no puedo hablar de los resultados… aunque de comienzo sí puedo decir que ver el inbox vacío genera una satisfacción muy particular.

Soy un zorrinito productivo.

(Read more →)

Link del día: Reportando bugs de browsers: qué, cómo y por qué

Este artículo de Smashing Magazine habla muy en detalle sobre la comunidad de desarrolladores de navegadores (una buena gran mayoría de ellos) y cómo es bienvenido el feedback de los usuarios para mejorar los navegadores mismos.

Explica un poco de qué forma se puede encontrar o aislar algo que creemos que es un bug, que también sirve para método de solución de problemas: una vez aislado el comportamiento no deseado siempre podemos idear un workaround (que es, de hecho, como surgieron muchos de los hacks vigentes para hacer las cosas funcionar cuando no funcionan como deberían). El resto del artículo nos explica cómo reportar este comportamiento, bajo las líneas básicas de: ver si realmente es inesperado lo que ocurre, ver si no fue reportado antes, y cómo hacer un buen reporte de bug.

Allí están también los links a los bugtrackers de los navegadores más importantes: Internet Explorer, Firefox, Opera, Webkit (Safari/Chrome) y Chrome. (Chrome también tiene otro para el sistema de Javascript, V8).

Para los investigadores, también es interesante poder revisar esos links para ver el estado de avance y noticias de implementaciones de cada navegador.

Soy un zorrinito buggeado.

(Read more →)