Link del día: HTML5 Ilustrado

Nunca viene mal otro link extra sobre HTML5, sabemos que es algo que ya está empezando a tomar fuerza, y de alguna forma todavía es novedad. Mientras esperamos que se decida qué es lo que va a ocurrir con los códecs de video, podemos ir entrenándonos y aprovechando otras features que gran cantidad de navegadores ya aprovechan.

Dejando de lado los links que ya hemos publicado sobre el tema, como HTML5 Test o Dive into HTML5, hoy podemos ver una presentación sobre HTML5 hecha en HTML5, demostrando en vivo y en directo gran parte de las bondades de este nuevo lenguaje, junto con CSS3. El link está en ApiRocks, bajo el título de HTML5 Presentation. Y como si no fuera poco, tenemos una gran variedad de sites mostrando las cosas que se pueden hacer con él.

¡No nos quedemos atrás!

Soy un zorrinito5.

(Read more →)

Link del día: jStorage

Seguro ya aprendimos que todo lo que comience con una jota minúscula viene relacionado con la familia de jQuery. Y aunque no sean todos los casos así, este sí lo es.

jStorage es un plugin de jQuery que nos permite aprovechar una de las bondades de HTML5, que es el uso de bases de datos a través de JavaScript. Si es que el navegador es viejo y el plugin no tiene la oportunidad de grabar nada, no hay errores de por medio, sino que simplemente al recuperar información veremos que no hay nada. Esto es bueno para lograr compatibilidad con muchos navegadores que puede que todavía no soporten HTML5 Storage o que sean versiones desactualizadas y, por ende, no lo soporte tampoco.

En el fondo es un tipo de almacenamiento de tipo key-value, algo a lo que seguramente estaremos acostumbrados desde el uso de cookies o parámetros, y siendo JavaScript e información de cliente, por supuesto, vamos a tener que tener muchos recaudos respecto a la seguridad y el tipo de información que vamos a guardar.

Lo bueno es que ya podemos proveer de mucha interacción del lado del cliente, y con datos semi-persistentes, lo cual nos amplia un poco el horizonte de opciones, en donde no necesariamente necesitamos ir al servidor para que la sesión no se pierda por accidente.

Soy un zorrinito almacenado.

(Read more →)

Link del día: HTML5 Test

Ya hace tiempo venimos mencionando lo nuevo que se viene con HTML5 y CSS3, de cómo van a hacer más fácil la vida de los usuarios de internet, de cómo van a hacer más fácil la vida de los desarrolladores y diseñadores web, de cómo van a volver a la web un entorno semántico de información, etc. Sabemos también que aunque estamos algo lejos todavía de que el estándar se apruebe completamente, muchos navegadores ya han comenzado a implementar sus características. Si mal no recuerdo, fue noticia hace bastante tiempo ya que Firefox comenzó a aceptar los tags

Si queremos verificar cuánto acepta de estas nuevas tecnologías nuestro navegador en cuestión, no tenemos más que visitar la página del HTML5 Test, que nos dará un puntaje para nuestro navegador, dependiendo en la cantidad de elementos que soporte. Yo ando usando Chrome 5.0 y me da un puntaje de 142. Y a ustedes?

Soy un zorrinito 5.

(Read more →)

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.

(Read more →)

Link del día: El castor ocupado

Para quién no lo sabe, una Máquina de Turing es una máquina conceptual que consta de una “cabeza” sobre una “cinta” que puede moverse a izquierda o derecha, y leer o escribir. Se supone que con esas cuatro operaciones básicas, la máquina conceptual de Turing es capaz de realizar cualquier algoritmo computable existente. Sí, desde sumar dos números hasta calcular los dígitos de π. Desde revertir una cadena de texto hasta ser un servidor web (aunque lo veo como poco eficiente para eso). Para diagramar los algoritmos que ejecutan, se utilizan estados sobre los pasos que están ejecutando, y lo que se puede leer o escribir trata de un alfabeto en particular (es decir, algún conjunto de símbolos que se le llama alfabeto de esa máquina).

Lejos de ser una metáfora a la publicidades de pasta dental, el Castor Ocupado es un algoritmo para máquinas de Turing que, dada una cantidad de estados y una cantidad de elementos de alfabeto, debe correr tanto tiempo como sea posible para luego detenerse. ¿Qué significa esto en términos de computabilidad? Significa que debe de ser, bajo una cantidad limitada de condiciones, el algoritmo más largo no-infinito, lo cual, de alguna forma es un desafío para encontrar aquello que tome más tiempo de computación y no sea interminable.

¿La razón? No es pura búsqueda por el buscar como muchos pueden suponer (y como muchos lo buscan, por simple diversión), sino que detrás de esto existe la teoría de la computación, en cuanto a qué algoritmos son computables (por ejemplo, parece que los que se encuentran sí, pero el algoritmo para encontrarlos no), qué orden de computación tienen, y seguramente también se relaciona con el tipo de problemas que son computables y no computables, pero dejaré eso para el futuro.

Hubo alguien más, Peteris Krumins, que le encontró una veta artística. Por un lado, hay un video en Youtube de una máquina de Turing (construida) corriendo el castor ocupado, y por otro lado, Peteris mismo hizo un programita que va dejando un archivo con el estado de la cinta a medida que la máquina va ejecutando, y de ahí, generar una imagen en donde se vea gráficamente. En su blog, en el artículo del Problema del Castor Ocupado, habla de los algoritmos y los resultados que obtuvo ejecutándolos. Curiosas las imágenes, e impresionante la imagen de 5 estados y2 símbolos, para verla completa hace falta una bueeeeeeeena pantalla.

Soy un zorrinito ocupado.

(Read more →)

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.

(Read more →)

Link of the Day: Liberate your data!

I know that Google has products for everything, and they’re still creating new things, making more and more enemies in different business. Besides that, we have the user’s data concern: what about privacy? What about having other options? What happens to our Google data?

Well, Google has made a step forward into that, creating DataLiberation.org, or, known by it’s full name, The Data Liberation Front (politics, anyone?). The mission for this project is that all users should be able to control the data they store in any of Google’s products. And to approach that mission, you may check for instructions on how to import or export data from any of Google products, and how to make it compatible with different options.

For example, you may as well want to download your Google Docs to use Microsoft Word. Or maybe you want your AdWords data in HTML. Or maybe you want to download back your videos from Youtube.

There are plenty of options, and ideally, each of Google’s products should have a way to back up your data and use it in another service or any way you like. It is supposed that it’s your data. (However, licenses may state else.)

I’m a compatible little skunk.

(Read more →)

Link del día: Software libre y gratuito para todo

Si bien ya alguna vez publiqué un link en donde había un listado de software libre ordenado por categorías, estoy seguro que ese listado ni es extensivo, ni es completo, ni cubre las necesidades de todos. El software gratuito y libre abunda y, aunque opino que no existe software de calidad necesaria para reemplazar a todo el software prioritario, no podemos decir que nuestras necesidades no se encuentran cubiertas bajo el paraguas del no-pagar.

Aviso que no quiero hablar aquí de la mentidad del software libre contra la del software cerrado (en la cual, mucho del freeware posiblemente caiga). Sé que existe la diferencia pero no quiero remarcarla aquí, yo quiero afrontar esto ahora desde el punto de vista de los usuarios, nosotros, quiénes lo que queremos es “una alternativa gratis”.

Y para alternativas gratis, tenemos muchas. Dónde buscar? Mi primera aproximación es siempre SourceForge.net, seguida de Google Code (quien está lejos del primero). Pero a veces estaría bueno poder browsear por categorías y es aquí en donde voy a dejar algunos listados que pueden sernos útiles, al menos para ver alternativas de nuestro software actual y, quién sabe, descubrir alguna alternativa gratis que nos guste más. (Eso a mí me pasó con Notepad++, por ejemplo. Ya no sé con qué reemplazarlo.)

El primer listado está bien ordenado según funcionalidad. “I want a freeware utility to…” y completar la frase con aquello que nos interese. Otro de ellos es simplemente un listado que alguien hizo en un foro, pero no deja de ser una buena fuente (aunque es más seguro que con el tiempo pase a estar desactualizado - y ya debe de estarlo ahora, sabiendo que el post es del 2006).

El tercero y último que puedo compartir hoy es llamado el OSSWin Project: OpenSource Software for Windows. En el fondo, no todo es para Windows (como FreeDOS, por ejemplo, jeje), pero no deja de ser otro buen punto de partida, especialmente si este es nuestro sistema operativo.

Soy un zorrinito gratuito.

(Read more →)

Link del día: NoSQL

Gracias a DG quien me compartió este artículo en Google Reader, me enteré que Twitter va a estar migrando sus servidores de datos desde un modelo relacional (que en este caso se trata de MySQL) a un modelo no relacional, en este caso, un family-value non-relational database management system (digan eso cinco veces, bien rápido).

Básicamente de lo que se trata es que ya los datos no se encuentran “atados” por relaciones, o disgregados según los datos relacionados que poseen (lo cual se conoce como leyes de la normalización). Dejemos de ser relacionales por un momento y pensemos las grandes ventajas que esto nos puede traer. Más allá de lo raro que se nos puede hacer, la escalabilidad que esto permite es impresionante.

Para que tengan una idea, este sistema en particular, llamado Cassandra, comenzó a desarrollarlo Facebook, lo compró Google y lo hizo Open Source. Está pensando especialmente para sistemas con muchísima información y para escalar y replicarse fácilmente, agregando, quitando, o moviendo nodos que formen parte de todo el sistema de almacenamiento.

Muchos de los sistemas bajo esta denominación de NoSQL cumplen con estas premisas, los invito a visitar el artículo de Wikipedia sobre NoSQL y ver lo que se dice de varios de estos.

Soy un zorrinito no-relacional.

(Read more →)

Link del día: Tutoriales de algoritmos de los mejores de los mejores

Yo me enteré mucho tiempo atrás de TopCoder cuando se hizo famoso casi comenzando (y cuando el diseño del sitio era totalmente distinto), por las competencias entre programadores, y como una especie de entrenamiento para mejorar. Todo el tiempo se están realizando competencias de programación. Antes eran solamente de desarollo, pero ahora se pueden hacer competencias de diseño de arquitecturas, de diseño de programas, de suites de testeo, en fin, de un montón de cosas relacionadas al desarrollo de software.

Yo hace mucho tiempo me había anotado, pensando en que algún día encontraría tiempo para experimentar una comptencia, pero nunca lo encontré. Ahí está mi usuario todavía juntando polvo.

Lo que me hizo volver a este sitio es ver otro aporte que ellos dan que se volvió muy famoso, y son los TopCoder Algorithm Tutorials. A diferencia de lo que parece decir el título, no son tutoriales sobre algoritmos pre-armados, sino que hablan de una gran variedad de cosas, desde cómo planificar eficientemente las tareas de desarrollo, hasta distintas técnicas a utilizar para el desarollo.

Muy interesante, y muy bien explicados algunos, vale la pena pegarse una mirada porque seguramente algo de lo que leamos sea aplicado en el día a día.

Soy un zorrinito olvidado.

(Read more →)