QArt Codes

Imágenes en QR Codes

Russ Cox publicó hace no mucho un artículo sobre lo que él denomina QArt Codes, que son QR Codes con una imagen en ellos.

él comienza contando sobre una anécdota de varias empresas que para marketing generaron QR codes que tenían logos o imágenes en ellos. Sin embargo, estos QR codes eran incorrectos y sólo funcionaban porque hacían uso de la capacidad de corrección de errores. él se propuso entonces hacer un sistema que pudiera incluir una imagen en un QR code con un formato totalmente correcto. En dicho artículo, nos explica cómo es el funcionamiento y formato de los QR codes y cómo esto se puede utilizar para la inclusión de una imagen.

El sistema resultado de dicha investigación se llama QR y su código está disponible en Google Code.

Cabe destacar que el análisis no es extensivo de todo lo que un QR Code debe incluir. Por mencionar algo extra, en un post de Google Plus él nos cuenta que debe incluir ciertos píxeles de margen para que todos los lectores puedan identificarlo (cosa que Facebook no tuvo en cuenta a la hora de pintar un QR code en su techo, pero Phillips & Company sí).

Soy un zorrinito cuadrado.

(Read more →)

Hagakure

El Camino del Samurai

Terminé con mi lectura actual, en este caso, el Hagakure. Hagakure Kikigaki (葉隠聞書) es el libro de origen japonés que habla, desde uno de los miembros del clan Nabeshima, sobre cuál es el camino del verdadero Samurai, basándose en una recopilación de historias y anécdotas que llegaron a Yanamoto Tsunetomo, siendo él mismo un samurai.

[_Hagakure 1680_, por Darian Cabot](http://darian-cabot.deviantart.com/art/Hagakure-1680-194971905)

El libro en sí no tiene una estructura particularmente fácil de seguir, pero de alguna forma deja leer entre líneas cuál es el mensaje del camino del Samurai. En muchos punto las anécdotas recavadas se contradicen una a otra, y no tiene demasiado contexto sobre ellas. Esto significa que estaríamos mejor leyendo una versión anotada, seguramente con aclaraciones culturales e históricas que provean ese contexto necesario.

Yo comentí la equivocación de leer una versión que encontré libre en internet, específicamente una que ofrece el sitio de JudoInfo en su sección de descargas. Esta versión en particular, si bien está formateada de una forma aceptable, es una muy mala traducción al inglés del texto original, y en muchos puntos es simplemente incomprensible. Como extra, se convierte en una lectura bastante cansadora, por las gramáticas raras, la mala utilización de ciertas palabras y la repitición extrema de otras, la poca separación de conceptos y los textos largos de hombres matando a otros sin razones claras. Nuevamente, todo esto puede solucionarse con una buena traducción y una buena edición.

Me agrada mucho lo que el libro tiene que decir sobre el camino del samurai. Yo sabía que el código de honor era muy estricto, pero no había imaginado que llegaba a este punto, y de hecho, si uno toma la enseñanza básica de vivir sólo el día del presente buscando ser útil a su amo, el código de honor fácilmente se desprende de esas enseñanzas. Cometiendo el pecado de sobre-simplificar el significado del camino del Samurai, el hecho de considerar la muerte como algo inminente y determinarse a obtener resultados inmediatos es una forma de vida que estos hombres seguían.

Lo encuentro como una lectura muy interesante, y esperaba que dejara en mí una marca especial. No fue tan profunda por la mala experiencia de la lectura, pero el principio fundamental ha quedado en mi persona. Ciertamente, es una lectura que recomendaría.

Le doy 4 de 5 zorrinitos.

Soy un zorrinito samurai.

(Read more →)

La factura más grande del mundo

¡Que alguien pague lo que nunca se pagó!

Como protesta a todos los clientes que no pagan a los trabajadores freelancers, específicamente del área del software, la gente de Freelancers Union presenta La Factura Más Grande del Mundo, en donde cada trabajador no pagado deja su línea para que sea añadida a la factura. (Y yo me enteré gracias a la gente de Clients From Hell.)

El objetivo de esta iniciativa es despertar los intereses de aquellos que puedan legislar regulaciones para que quienes sufren día a día esto tengan un respaldo legal sobre el cual apoyarse. Hoy, según parece, es un poco difusa la situación y los freelancers no son tan tomados en serio.

Soy un zorrinito caro.

(Read more →)

MakingSense blog

Posts being featured in MakingSense's blog

Español

Noticia rápida: algunos de los posts de aquí pueden aparecer de tanto en tanto en el blog de MakingSense. Para quien no lo sepa, es la empresa en donde trabajo, y donde de hecho ya hay algunos posts míos y un webinar. Si están interesados en el negocio de IT desde un punto de vista no tan técnico como este blog, y más orientado a tendencias y management, les recomiendo totalmente que se pasen por allá.

Gracias y saludos.

Soy un zorrinito publicitario.


English

Quick notice: some of the posts from here may appear from time to time in MakingSense’s blog. For those that do not know, it is the company which I work for, and where I had already had a couple of posts and a webinar. If you’re interested in IT business from a point of view not so technical as this blog, and more oriented to tendencies and management, I totally suggest you give that blog a look.

Thanks and best wishes.

I’m an advertising little skunk.

(Read more →)

Competencias de hacking

Desafíos de hacking y seguridad

Fue exactamente hace un par de días cuando hablé de Explot Exercises, pero más de cuatro años (wow) cuando hablé de HackThisSite, pero ahora sí tengo un listado grande de sitios que permiten hacer pruebas de seguridad y aprender online. Basado en esta pregunta en IT Security, este es un buen listado de sitios para practicar seguridad o participar de desafíos. Cada uno tiene su propia modalidad, pero les dejo como ejercicio a ustedes elegir la más apropiada:

Soy un zorrinito inseguro.

(Read more →)

Metro UI design guidelines

Recursos de UX y UI para Metro

Sabemos que Metro es un nuevo estilo, una aproximación completamente distinta cuando se trata de interfaces. Como nuevo, muchos nosotros podemos encontrarnos confundidos al momento de querer aplicarlo. Es para eso que es necesaria alguna guía, alguna indicación que nos indicará si estamos en el camino correcto o no. Gracias a una pregunta en los foros de User Experience encontré estos links, que pueden ser de mucha utilidad:`

Soy un zorrinito metro.

(Read more →)

Transcendent Man

Un documental sobre Raymond Kurzweil y su pensamiento

This is the story of the destiny of the human-machine civilization.

A destiny we have come to refer to as the Singularity.

— Ray Kurzweil

Transcendent Man es el nombre de un documental hecho en el 2009 sobre Raymond Kurzweil y su filosofía futurista/transhumanista. Ahora hablaré sobre eso, pero primero sobre el documental en sí.

Como documental, esta hora y media realmente no es demasiado útil. Tiene una buena introducción para quien no sepa nada de Kurzweil (o su familia o su historia) ni del concepto de la Singularidad. Nuevamente, sólo en ese caso, porque a modo de introducción genera la idea necesaria, pero para alguien que quiere informarse al respecto, este documental no es sólo tendencioso y mal fundamentado, sino que es, planamente, aburrido. Como película es realmente poco dinámico, lento, la estructura de la información está bastante poco definida y la música e intercalación de infografías es pobre y poco cautivante.

Creo que soy muy duro con este documental porque este es un tema que realmente me apasiona. En poco voy a comenzar a seguir de cerca la filosofía de Kurzweil, y tengo en mi listado de próximos libros a leer los suyos. Quiero realmente saber lo que piensa y por qué lo piensa, ya que el documental lo deja presentado como un loco que tuvo la suerte de no equivocarse antes, o como un visionario que tiene sus razones y absolutamente nadie comprende. Yo creo que la situación real es mucho más profunda, y que hay muchos más argumentos a favor y encontra de los presentados, con lo que me decepciona la cantidad de información presentada en Transcendent Man.

Los primeros veinte minutos son realmente lo que esperaba: un comienzo épico y, si bien tendencioso, muy claro en lo que estamos viendo. Se trata de alguien que solo por lo que dice el mundo científico tiembla, porque siempre dijo locuras pero siempre tuvo razón. Luego de esos veinte minutos, el documental trata de varios pilares del avance transhumanista, como el avance en la investigación genética, la robótica y la nanotecnología. Creo también que no son las palabras más apropiadas para definir a la Singularidad, pero ese es otro tema que no discutiré aquí. Habla también de la historia personal de Ray, su familia y su vida actual, y su visión de la muerte y la inmortalidad.

En fin, no la recomendaría como fuente de información, y ciertamente no la recomendaría como película. Aún así, la calificaría de interesante. Le doy 2 de 5 zorrinitos.

Soy un zorrinito singular.

(Read more →)

Exploit exercises

Exploit this!

Parecido a los laboratorios de seguridad, hace poco me encontré con un sitio llamado Exploit Exercises, un sitio web que dispone de guías y máquinas virtuales que podemos bajar para probar y aprender sobre escalado de privilegios y corrupción de memoria en entornos Linux.

Soy un zorrinito inseguro.

(Read more →)

6 desastres causados por interfaces de usuario pobre

Are you sure you want to cancel explosion? [Ok] [Cancel]

Encontré hace poco este link y realmente quería compartirlo. El artículo, en inglés, se titula 6 Disasters caused by Poorly Designed User Interfaces, y si bien el artículo proviene de Cracked.com, – que bien sabemos no se trata de una fuente periodística – da muy buenos ejemplos de cómo una interfaz de usuario mal diseñada realmente tienen consecuencias.

Soy un zorrinito mal diseñado.

(Read more →)

Autenticación cognoscitiva

I'm sorry Dave, I'm afraid I can't do that.

En MicroSiervos publicaron un artículo sobre un nuevo método que está siendo investigado en DARPA, llamado Autenticación Cognoscitiva. Según lo dicen ellos también, el sistema podría identificarnos por “tu forma de pensar”.

Cabe aclarar que en el paper real, al método se lo denomina Active Authentication y parecería no estar relacionado mucho con las huellas cognoscitivas sino más con otra información biométrica, pero realmente sí lo está. Varios de los elementos que se utilizarían para identificar a una persona, incluso durante el transcurso del uso de una aplicación, serían cosas como:

  • tecleo (asumo, velocidad entre teclas)
  • escaneos oculares
  • cómo el usuario busca información (verbos y predicados usados)
  • cómo el usuario selecciona información (verbos y predicados usados)
  • cómo el usuario lee el material seleccionado
    • trackeo ocular
    • velocidad de lectura
  • métodos y estructura de la comunicación

Como bien dijeron los chicos de MicroSiervos, el objetivo de este estudio es eliminar las contraseñas y utilizar un método más cercano a la identificación de una persona real, basado en elementos que la distinguen de los demás. No conozco qué tan distinguible sea una persona por estos aspectos (o qué otros detalles de estos aspectos están involucrados), pero sin duda es un acercamiento interesante. Habría que analizar en qué forma se trabajan casos excepcionales, como por ejemplo, qué ocurriría si me quiebro un brazo y ya no tecleo de la misma forma, o si tengo un estado emocional alterado en base a un evento de mi vida.

Si alguien está interesado en leer el paper, está disponible públicamente en el sitio de Federal Business Opportunities.

Soy un zorrinito autenticado.

(Read more →)

HtmlUnit en .NET

Unit testing para web frontends

Hay un artículo en particular de Steve Sanderson llamado Using HtmlUnit on .NET Headless browser automation que indaga sobre los beneficios de utilizar esa librería para simular un browser completamente funcional que podemos utilizar para nuestro unit testing, y, por qué no, para automatizar tareas en un browser. La idea principal es poder ejecutar tareas como si de un browser se tratara, e inspeccionar los elementos de la página e interactuar con ellos.

Cabe destacar que HtmlUnit en realidad está hecho para Java, pero puede portarse a .NET de la forma que Steve Anderson menciona. He leído por ahí que es un poco lento, pero creo que su API agrega la suficiente simpleza como para trabajar fácilmente por él.

Soy un zorrinito automatizado.

(Read more →)

Nuevas clases en Udacity

Hace unos días me llegó un email sobre Udacity (del cual yo ya había hablado) avisando que hay nuevas clases disponibles allí.

Ahora el listado es:

  • CS101: Construyendo un motor de búsqueda
  • CS212: Diseño de programas de computadora
  • CS253: Ingeniería de aplicaciones web
  • CS262: Lenguajes de programación
  • CS373: Programando un automóvil robótico
  • CS387: Criptografía aplicada

En fin, si a alguno le interesa, voy a estar por ahí.

Soy un zorrinito en aprendizaje.

(Read more →)

¿Por qué usamos la imagen del floppy para la acción de "guardar"?

Y ¿por qué no la cambiamos?

Un comentario que mucho tiempo hemos visto discutido por ahí es por qué todavía usamos la figura del floppy disk para indicar la acción de guardar, cuando hace tiempo que estos discos se dejaron de usar. Peor aún, hay gente que ni siquiera sabe qué son.

La primera respuesta de ese link menciona que la imagen del floppy disk es un modismo, no una metáfora. El modismo (idiom) es, para resumir, un simbolismo no directamente asociado con el significado. En algún momento fue un símbolo, asociado a cuando persistíamos nuestros datos en estos diskettes, pero ahora es algo totalmente fuera de contexto.

En los foros de Graphic Design también se habló de este tema y se están proponiendo nuevas alternativas. En los foros de UX están de acuerdo con que cambiar los íconos generaría más problemas de los que realmente resolvería, pero está claro que si la persistencia se inventara hoy, el ícono sería distinto.

¿Quizá el nuevo paso es inventar algo más abstracto, que sea válido para cualquier era de almacenamiento?

Soy un zorrinito almacenado.

(Read more →)

T IEnumerable.RandomElement()

Seleccionar un elemento cualquiera de un conjunto

Otro de mis pequeños snippets, este es útil para unit testing.

Cuando tienen un repositorio de datos que en realidad es mockup, y algún objeto tiene que estar pre-populado, podrían querer que los tests sean independientes de los datos. Y con esto me refiero a ser independiente de los valores que esos objetos tienen. Para esos casos, utilizar un objeto al azar de un conjunto de objetos sería una buena aproximación. No es tan determinista, pero eso es algo deseable, e incluso más cerca a probar la aplicación real.

Para obtener un objeto al azar, este pequeño snippet ayuda:

(Read more →)

PrivateSky

Accesible para uno, secreto para todos

PrivateSky no es ni el primer ni el último intento de un servicio de seguridad en la nube. Lo que los distingue es que, según dicen, ni ellos mismos tienen acceso a los datos que nosotros guardamos, y que ni al momento de que el gobierno les requiera los datos, ellos los darían. (O eso dice su CEO.)

Alguien en IT Security preguntó: ¿Cómo puede PrivateSky no tener acceso a nuestros datos?, y la respuesta más extensa la brinda, con lujo de detalles y tecnicismos, Brian Spector, el CEO de CertiVox. Debo admitir que no estuve al nivel de entenderla completamente, pero me queda claro cuál fue la estrategia general, y sé que en este tipo de cosas no se le puede mentir a la comunidad, al menos no en ese foro en particular.

En general, lo que ellos intentan es hacer un sistema de encriptación basado en identidad, en donde algo del lado del cliente siempre permita decriptar, algo que ellos en ningún momento reciben como clave completa, y en donde la forma de alterar esto generaría la destrucción de las demás partes de la clave. Esto significa, que sólo el usuario en acuerdo con el sistema puede cambiar la clave a otro valor, y que cualquier intento de hacerlo fuera de esa identidad básicamente perdería las claves que se pueden usar para decriptar los datos.

Por ahí preguntaron también cómo harían para evitar pedidos legales de información. Ellos se basado en un vacío legal que les permitiría entregar los datos encriptados, y defenderse diciendo que no tienen forma de decriptarlos, dejando la información segura de forma total. (Esto es, claro, excepto que la entidad gubernamental tenga los métodos apropiados para quebrar la encriptación, cosa por la que se apuesta que no ocurra.)

A pesar de lo transparente que se busca ser en esto, Brian Spector ha sido bastante cerrado en cuanto a la información de seguridad que dejó ver del sitio web.

Aún así, parece una aproximación muy novedosa.

Soy un zorrinito privado.

(Read more →)

CSS Dinámico

Post procesamiento vs. preprocesamiento

Para los que conocemos y usamos Less o sus variantes, nos alegraríamos mucho de saber que CSS pueda agregar capacidades similares. A pesar de que gran parte de la comunidad esté en desacuerdo (¡Gracias, AM!), yo creo que serían útiles, por varias razones. (Invito a discutir a quién piense distinto.)

  • Por un lado, permitirán la inserción fácil de quienes no dominen CSS completamente. Está claro que significa que se pueden resolver cosas de una forma no tan prolija, pero los lenguajes tratan de facilitarnos las tareas a nosotros, no imponernos reglas que debemos seguir. Cuando existe esa diferenciación es cuando comienzan a surgir buenas prácticas.
  • Por otro lado, permitirá la creación de frameworks más dinámicos, sin uso de JavaScript. Frameworks CSS que sean adaptables al uso de los usuarios, multi-navegador y apropiadamente utilizables. De la misma forma que Bootstrap tiene variables globales que se pueden cambiar para ajustar su comportamiento, así serían más dinámicos y reutilizables.
  • Por otro lado más: reutilización. Muchas veces los esquemas de colores se basan en un conjunto limitado de los mismos. Si los tamaños de fuentes ya admiten relaciones entre ellos, ¿por qué no los colores, por qué no condicionales que devuelvan un valor según el valor padre? (Nuevamente, en favor de los CSSs consistentes cross-browsers.)
  • Minimización de hacks. Por partida doble. En el primer aspecto, por todo lo que nombré. En el segundo aspecto, por la posibilidad de limitarlos a lo necesario y sólo reutilizarlos como referencia (lo que Less denomina mixins).

Todo esto venía a los links que me encontré, relativamente novedosos: Calc() para CSS, un operador que calcula valores en base a los argumentos que se le pasen. Creo que este pedacito de código lo paga todo:

#foo {
    width: calc(50% - 100px);
}
<div id="foo">Always 100 pixels less than half the available area</div>

Por otro lado, Scoped Styles, algo que sólo veo como utilidad al momento de permitir usuarios escribir su propio CSS (apropiado para SaaS en donde los usuarios tengan su propio espacio). No soy muy fanático de esta funcionalidad, pero reconozco que resuelve un problema existente.

Soy un zorrinito dinámico.

(Read more →)