Link del día: Hacker Books
Imagino que ustedes se habrán emocionado tanto como yo al leer el título. Hacker Books contiene, entre otros, libros para hacker, y eso es verdad. Se supone que diseñado muy estilo a web 2.0, esta librería virtual nos permite acceso a cierta cantidad de libros que suelen ser de los mejores recomendados en el ámbito. Esperemos que con el tiempo ese criterio no cambie, ya que de verdad he visto muy buenos libros por ahí.
Como decía, no son los únicos libros. También hay muchos libros muy buenos sobre desarrollo, sobre entrepeneurship, sobre lenguajes específicos, sobre negocios. Están categorizados en distintos niveles, y están en distintos formatos, algunos digitales, otros en audio, otros en libros físicos para leer.
Disfruten su lectura!
Soy un zorrinito lector.
Link del día: JavaScript IDE para iPhone
De parte de un pequeño artículo de web.desktop.life me enteré de un pequeño proyecto llamado jscoder, el cual es un pequeño IDE (no tan pequeño si lo vemos desde el iPhone) en donde podemos codificar JavaScript y ejecutarlo allí mismo. Por si fuera poco, también disponemos de la función de autocompletar código, por ahora solo palabras clave, pero en el futuro también habrán snippets de código para utilizar.
De ocurrir errores en la ejecución del código, el teléfono nos devolverá un mensajito de error explicando qué ocurrió, y por supuesto, el código está adaptado para que este “ambiente” funcione en este dispositivo, teniendo en cuenta la orientación, el click con los dedos (“tap”) y tantas otras cosas que, claro, podemos utilizar para aprender.
Personalmente no considero demasiado productivo el hecho de programar en un dispositivo móvil (ya sabemos que escribir es difícil, encima quieren programar?), pero no deja de ser algo novedoso y que en cierta moda está demostrando las capacidades de estos dispositivos.
Soy un zorrinito móvil.
Link del día: Optimización web vs. desarrollo prolijo
Hace tiempo ya estaba comentando con un colega sobre la enorme cantidad de medidas que pueden tomarse para mejorar la performance de una aplicación web. Existen miles de factores involucrados, entre los cuales hay muchas configuraciones y tweaks que pueden hacerse al servidor, pero muchos otros tienen que ver con el código en sí mismo. Sí señores, estamos hablando de HTML, CSS y JS.
El problema en este punto es que un HTML mínimo puede no ser el HTML que nuestro generador de contenidos genera. Puede que el CSS sea automatizado también, o que nuestro diseñador o desarrollador HTML no esté pensando en hacer las cosas de la forma “más mínima posible”, sino realmente trabajando en hacer que algo se vea bien y esté bien codificado. No está entre sus prioridades escribir
background: url("image.jpg") repeat top left scroll;
en lugar de
background: url(image.jpg);
Ambos son equivalentes, pero la segunda es más corta y por tanto más eficiente. Pero nuestro desarrollador debe realmente preocuparse porque el desarrollo sea correcto, que la visualización sea consistente y que sea acorde entre navegadores.
Ni hablar de JavaScript, en donde la cantidad de optimizaciones, minimizaciones y mejoras puede ser realmente importante. Alguno quiere trabajar sobre JavaScrpt minimizado? Sin duda: no.
La alternativa a la que llegamos era la de tener dos versiones de la aplicación. La de desarrollo con código normal y la de producción. Una vez que desde la de desarrollo se hicieran pruebas y quisiera hacerse un release, solo teníamos que correr una serie de herramientas que nos permitieran tener una versión minimizada y optimizada del código, bajo el riesgo de que algo se rompiera en el proceso.
Pero ahora Google acaba de publicar un módulo que han desarrollado para Apache 2.2, llamado mod_pagespeed, el cual hace optimizaciones y cache en el momento de los pedidos, para optimizar los sitios web sin tener que modificar los archivos reales. Por supuesto, es altamente configurable, y podemos ver la gran cantidad de mejoras que puede realizar en el poco tiempo que tiene.
Google nos cuenta que ya está trabajando con GoDaddy para que todos sus clientes puedan utilizarlo, y con Cotendo para que esté disponible en su CDN también. Si ustedes no tienen la suerte de estar entre ellos, pueden bajarlo por cuenta propia desde la página del proyecto de PageSpeed, e instalarlo en sus propios servidores.
Soy un zorrinito acelerado.
Link of the day: Mouse trace your visitors
We’ve already presented some tools ([1], [2], [3]) that allows you to easily have some feedback of what the users do at your site or web application, or how do you need to improve it to make it better for their user experience.
So, here is another tool that will help us measure that bit of the user that’s not so easy to see: MouseTrace is a tool that being installed on our website will track exactly what the user does with it’s mouse. Even if they don’t click, it is a good idea to keep track of it so that we can find out if our layout is somehow confusing the users.
I haven’t tried this myself. Have you? Are you going to? Please share your experiences.
I’m a tracked little skunk.
Link del día: Feedback 2.0, volumen 2
Alguna vez hablamos de dos sistemas (Uservoice y Votebox) que nos permitían obtener información de parte del usuario como ideas o propuestas para continuar con el desarrollo de nuestro sistema y entender sus necesidades. Sin embargo, quizá no sea del todo buena idea utilizar estos mismos para el reporte de problemas o para un feedback algo negativo sobre lo que los usuarios están encontrando. Ese tipo de cosas que “son como no deberían ser”.
GetSatisfaction es un sistema del mismo tipo, integrable desde su propio website, en donde los usuarios pueden loggearse de distintas formas (perfil de Google, Facebook, Twitter, etc.) para reportar problemas que estén encontrando en la aplicación. Más allá, podemos darles un feedback al respecto y que ellos continúen esa discusión basándose en nuestras respuestas. No hace falta que se dupliquen las respuestas innecesariamente, ya que un usuario distinto puede elegir la opción “Estoy teniendo el mismo problema” y automáticamente podremos ver cuántos son los usuarios afectados que están involucrados en este problema en particular.
No relacionado a la funcionalidad, quiero destacar lo novedoso de la presentación en la página principal de GetSatisfaction. Podrán ver que en la parte superior de la página hay una especie de rueda de la fortuna (Wheel of satisfaction, como ellos la llaman) con logos de distintas empresas que tienen historias de éxito. Podemos hacerla girar y cambiar la historia que estamos viendo.
Soy un zorrinito orientado a los usuarios.
Link del día: CSS3 para navegadores viejos
Todos sabemos que cuando queremos avanzar en las tendencias tecnológicas, muchas veces debemos dejar atrás a una serie de usuarios que no quieren o no pueden actualizar sus plataformas. Para muchos desarrolladores web, Internet Explorer es hoy el problema de dar soporte a todos los posibles usuarios, más específicamente en las versiones antiguas de este navegador. (Según parece, todavía hay gente que utiliza la versión 5.)
Gracias a un tweet de @jmma me enteré de un script llamado Selectivizr (nombres 2.0 si los hay) que simula los selectores CSS3 para IE6, IE7 e IE8. Por supuesto, ya luego podemos utilizar CSS3 y librerías JavaScript con selectores CSS3 sin problemas.
En el fondo, sabemos que no es perfecto (vean la sección “You need to know”), pero está mucho más cerca de ayudarnos a avanzar sin dejar a muchos usuarios de lado.
Soy un zorrinito compatible.
Link del día: Framework de Ingeniería Social
Muchos de nosotros debemos pensar que la ingeniería social tiene mucho de talento innato, mucho de arte y mucho de particular. Por la forma en que muchas cosas se desarrollan en este área de la seguridad, creemos que hay realmente poco de reutilizable, exceptuando ciertos detalles técnicos, ciertas acciones que pueden desarrollarse a través del ámbito virtual.
Estas cosas son, por supuesto, fácilmente reproducibles y reutilizables, y deben de serlo cuando se trata de la utilización de ciertos exploits o de ciertas técnicas que necesitamos utilizar para que el usuario nos brinde información propia (por ejemplo, phishing, tab-nabbing, click-jacking, etc.).
Social-Engineer.org tiene muchísima información sobre este tema, sobre distintas aproximaciones y técnicas, y, lo más curioso, un framework de ingeniería social llamado de forma muy creativa Social Engineering Framework. Pero no sólo eso, sino que para asistir a la sección de computer-based social engineering hay herramientas muy conocidas, las cuales son:
- Maltego
- Maltego Mesh
- Social Engineer Toolkit
- Common User Passwords Profiler
- Who’s Your Daddy Password Profiler
Yo diría que todo esto es un must-read para un aspirante a testeador de seguridad.
Soy un zorrinito social.
Link del día: HTML Instant
Gracias a la gente de BreakingDev me enteré de una aplicación web llamada HTML Instant, en donde podemos comenzar a maquetear HTML instantáneo, viendo los resultados ahí mismo en donde estamos trabajando.
Lo bueno es que podemos ver los resultados de forma instantánea y sin mucho trabajo, podemos codificar al mismo tiempo que vemos nuestros errores para fácilmente corregirlos. No hay siquiera por qué cambiar de ventana. La aplicación de una sola página consta también de ciertos snippets pre-armados sobre los cuales podemos trabajar más fácilmente.
Por supuesto, también acepta CSS y JavaScript.
Soy un zorrinito web.
Link del día: Evercookie
Hace un tiempo me crucé con un artículo que hablaba sobre HTML5 y la privacidad en internet. Si bien me pareció que era un poco exagerado, parece que muchas fuentes, incluyendo algunas bastante confiables como el NYTimes.
Pero en realidad no estamos hablando de un problema de HTML5, sino de la seguridad que los navegadores implementen para dar soporte a este nuevo estándar.
Todo en el fondo se trata de la utilización de más técnicas para el almacenamiento de información local en una computadora, que de una forma u otra puede ser utilizada (y de hecho, lo es hoy en día) para identificar gustos y tendencias de navegación en ciertas partes de internet, de forma que, por ejemplo, Google pueda anunciar cosas de nuestro interés, incluso aunque estemos viendo una noticia sobre algo que no está relacionado.
Una aplicación proof of concept de cómo se puede almacenar información casi-persistente (cuando se supone que no debería de serla) es EverCookie. Evercookie es una suerte de cookie que a través de distintos mecanismos de almacenamiento se permite persistir de forma prácticamente persistente, incluso luego de la limpieza de caché, cookies y otro tipo de limpiezas estándares que muchos de nosotros haríamos pensando que ya debería de haber desaparecido.
¿Ustedes creen que esto realmente tenga implicaciones en la seguridad? ¿Creen que HTML5 se convertirá más en un problema que en una solución?
Soy un zorrinito persistente.
Link del día: Replicación MySQL en 5 minutos
Gracias al Twitter de @BreakingDev me topé con un artículo muy interesante llamado Get MySQL Replication up and running in 5 minutes. Creo que es realmente útil para novatos como yo en estos asuntos, ya que recuerdo mis pobres intentos de trabajar con replicación MySQL y pasar horas y horas intentando hacerlo trabajar, basándome en unas instrucciones mágicas que alguien que lo comprendía me pasó y yo solo las seguía ciegamente.
Por suerte el artículo es lo suficientemente explícito como para darnos a entender qué es lo que estamos haciendo, y lo suficientemente breve como para no hacernos perder tiempo e ir directo al grano.
Por supuesto, siempre podemos ir al manual oficial y checkear el capítulo Replication, en donde la primera parte está titulada How To Set Up Replication. Este es el que contiene toda la información que podamos necesitar sobre opciones extras o customizaciones que quisiéramos hacer.
Soy un zorrinito replicado.