Link del día: Licencias de software
Gracias a un interesante post que me compartió el kangrejo, estuve leyendo un poco sobre las diferentes licencias de software que están por ahí. El artículo en cuestión es de OnSoftware, y el artículo se llama El Software libre y las licencias de uso.
Me resultó realmente muy curioso (y de hecho, no lo sabía) que una licencia de software libre no significa que seamos libre de utilizarla para cualquier proyecto. Por ejemplo, la licencia GPL nos obliga a liberar todo código en donde está utilizada esta licencia con esa misma licencia, con lo cual, si no fuera porque jQuery tiene también la licencia MIT, todo lo que hiciéramos con esta librería tendría que estar publicado como open source.
Wikipedia tiene un buen artículo sobre Comparison of free software licenses, que nos explica con cuáles licencias podríamos utilizar software en nuestros proyectos.
Recuerden que free software no es lo mismo que open source.
Soy un zorrinito licenciado.
Link of the day: Face detection code
Well, face recognitions systems are not actually the last thing in technology, but still may be something new for us who couldn’t have a grasp of it and try it out in our own code. Of course, maybe we’re not fancy enough to come up with an algorithm out of ourselves and may just have ideas to use it, not to develop it.
For us then, we can go ahead and try Face Detection in any language, a blog post from Tukiun referring to OpenCV, the Open Computer Vision library that will allow us to make image processing something simple. It has been ported to different languages so it is sure that some of them will be suitable for us.
I’m a recognized little skunk.
Link del día: Bases de datos en las nubes
Está de moda últimamente hablar de la computación en la nube (y no es para menos, ya que realmente propone un cambio interesante en la forma en que se mantiene el software). Lo más común para esto son servicios en donde podemos alojar nuestros sistemas con más o menos control de la plataforma, pero pocos de ellos se han centrado solamente en los datos.
Database.com es un sistema online que nos permitirá crear una cuenta para comenzar a utilizar bases de datos on the cloud. Lo mejor de todo esto, es que para comenzar, siempre y cuando no exceda cierta cantidad, será gratuito. ¿Qué mejor que eso? (Que sea todo gratuito, lo sé, pero hey, alguien tiene que mantenerlo.) Cabe aclarar que con nuestra cuenta tendremos también la replicación automática (por supuesto, estamos en la nube), backups, tuning según el uso, upgrades del sistema, y generación de los ambientes de desarrollo, test y training.
Sepan también que esta gente es la misma que desarrolló SalesForce, de forma que no se trata de ninguna tontería y sí estamos hablando de algo serio y confiable.
¡Gracias Kabytes por la información!
Soy un zorrinito en la nube.
Link del día: Herramientas de seguridad
Ayer hablamos un poco del anonimato en nuestra conexión y como podemos lograrlo gratis hoy a través de los servicios de Amazon, pero además podemos utilizar una gran variedad de herramientas de seguridad para asegurarnos que nuestra situación sea protegida, o por qué no, también utilizar estas herramientas para probar a alguien más. (Por supuesto, siempre de forma legal ;) )
La gente de DragonJAR ha dispuesto varios links a un repositorio de herramientas de seguridad que se encuentra en pentest.fr/resources, yo les recomendaría que les den una mirada, y de seguro podrán encontrar algo que les sea de utilidad, incluso si no quieren testear seguridad de nada sino averiguar e informarse al respecto. Tenemos disponibles, además de herramientas, documentos, exploits y hasta código para disponer de él cómo mejor nos parezca.
Soy un zorrinito seguro.
Link del día: Anonimato en internet gratuito
Estaba leyendo algunas cosas cuando caí en el artículo de HackTimes sobre Anonimato en internet gratis durante un año, y tras leer de qué se trataba, realmente me pareció muy interesante. Lo explicaré en pocas palabras.
Básicamente, podemos contratar un VPS (Virtual Private Server) de Amazon y si nos mantenemos dentro de los límites de transferencia (que parecerían ser unos 15 GB/mes) este primer año lo tendríamos gratuito. Podemos configurar este VPS como un servidor proxy que utilizaremos a través de una conexión SSH (encriptada), lo cual significaría que toda nuestra navegación en internet sería detectada desde los servicios de Amazon (recordemos, Cloud Computing). Eso significa también que nuestro ISP no tendría acceso a la información que estamos enviando/recibiendo.
Pero mejor aún, y esto aplica para los que, como yo, últimamente han tenido problemas de conexión debido a problemas de proxies internos del ISP: estos problemas desaparecerían, porque todos estos pedidos ya no serían procesados por nuestro ISP, sino por Amazon.
Quizá yo haga el intento, no parece demasiado difícil. ¿Ustedes se animan?
Soy un zorrinito encriptado.
Link of the day: Rich text editing
There are a couple of subjects in web design and web development that will never grow old. One of them is this one: rich text editing. At least until browsers and web standards include a way for rich text editing to be done on the client side, there will be custom implementations through JavaScript and HTML markup that will provide users of WYSIWYG editors.
So, Plug-ins for rich text editors on your website is an article with a nice collection of different plugins and options you may use to provide that functionality, but still there are many many options.
Which one are you closer to? Any specific advantage or disadvantage that plugin provides?
I’m a WYSIWYG little skunk.
Link del día: Consejos de base de datos
Gracias a @smashingmag y a @breakingdev me entero de una serie de consejos para programadores sobre bases de datos. Es muy buena esta aproximación, ya que por lo general los programadores se enfocan más del lado de la lógica de una aplicación, quizá en cuanto a la arquitectura o al diseño de un sistema, y no tanto a la forma en la que se almacenan los datos para el mismo. Y cabe destacar, que muchas veces esta puede ser una diferencia enorme en cómo se comporta el sistema.
Para comenzar con un link cortito, comencemos con el Top 10 MySQL Mistakes Made by PHP Developers, que como su nombre lo indica, es un listado de errores comúnmente realizados por programadores web, y ciertamente son comunes. No todos están 100% directamente relacionados con la base de datos en sí, pero de alguna forma siempre impactan sobre ella.
Para continuar con un listado más detallado y explicado, Database development mistakes made by application developers, una discusión que en Stack Overflow surgió con la pregunta: qué cosas nuestros DBAs no nos perdonarían? Cabe destacar que esta pregunta está muy relacionada con What are the most common SQL anti-patterns?, que también se relaciona con errores comúnmente cometidos.
Ambas discusiones tienen una buena extensión y una buena cantidad de respuestas, muchas de ellas detalladas y explicadas con la razón de la equivocación y la forma de evitarlo.
¿Se encuentran culpables de alguno de estos errores?
Soy un zorrinito equivocado.
Link del día: Tareas para publicar un website
Muchos de los que estamos en el ámbito sabemos qué cosas hay que hacer para publicar un website. Más allá de las tareas de desarrollarlo, hay un montón de detalles extras a tener en cuenta en el momento de la publicación. Hablo de cosas como verificar la consistencia de los textos, verificar que no queden textos de prueba, verificar la ortografía, verificar que tenemos el uso correcto de las imágenes, testeos de seguridad, correcto linkeo de páginas… ese tipo de cosas.
Cuando uno lo considera seriamente, se dará cuenta que son muchas cosas a tener en cuenta. Por eso, la gente de AddedBytes (de la que ya hablamos antes – [1], [2]) ha publicado The Ultimate Website Launch Checklist, que pueden ver online o descargar, o directamente leer en BoxUk (el sitio original).
Dénle una mirada, muy seguramente descubran algún paso que no estaban teniendo en cuenta, y quizá sería buena idea tenerlo en cuenta para el futuro. O por qué no, usar la checklist completa. ¿Hay algún punto que quisieran agregar?
Soy un zorrinito publicado.
Link del día: Flash runtime en JavaScript
Ha habido mucho debate sobre Flash últimamente, más específicamente desde que los teléfonos móviles más famosos del mercado no lo admiten como parte de la interactividad que van a brindar. Por si fuera poco, no sólo no piensan admitirlos como parte del mundo móvil sino que Apple publicó una carta abierta sobre el tema, Thoughts on Flash, en donde exponen varias razones (muchas de ellas debatibles en mi opinión) por las cuales Flash no sería una buena idea para ningún dispositivo móvil en general.
Por supuesto, los usuarios no disfrutan de esto tampoco. Sabemos que gran parte de la interactividad en muchos sitios está basada en Flash (para bien o para mal), y que hay sitios que de no ser por Flash, no funcionarían. Parecería que, afortunadamente o desafortunadamente, Flash está para quedarse.
Tobias Schneider decidió aprovechar muchas de las ventajas que se puede lograr con JavaScript, SVG y otras tecnologías relacionadas, para a través de JavaScript renderizar archivos swf (Flash) y permitir su disposición e interacción en el navegador. Esta librería se llama Gordon (muy apropiado nombre).
Desafortunadamente esta librería no soporta todo tipo de interacción Flash aún, sino que de a poco está extendiendo la cantidad de características que soporta, por ahora parecerían estar cubiertas las versiones 1 y 2 de Flash. Pueden pasar a ver los demos, o leer las notas de compatibilidad.
Soy un zorrinito flash gordon.
Link del día: Bytecode for Dummies
Para aquellos que desarrollamos sobre lo que se llaman plataformas (como por ejemplo .NET o Java), sabemos que el código que nosotros escribimos no se compila a lenguaje de máquina realmente, sino que se compila en algún lenguaje intermedio que luego es interpretado para una mejor ejecución en la máquina apropiada sobre la que esté corriendo la plataforma.
El punto que muchos dejamos de lado es saber interpretar ese lenguaje intermedio. Este lenguaje muchas veces puede proveernos información muy válida sobre problemas de performance que puede sufrir nuestra aplicación, usos de memoria no liberados, o incluso de la forma en la que se realizan llamadas al sistema operativo.
Charles Nutter realizó una presentación llamada JVM Bytecode for Dummies (and for the rest of you all) que explica detalladamente cómo podemos iniciarnos en este mundo. él se enfocó en el bytecode de la máquina virtual de Java, pero esto es aplicable a otras máquinas virtuales y a otras plataformas también. Puede que al principio nos maree un poco con ejemplos algo complejos, pero luego la teoría va tomando color hasta ser bastante tangible y podemos entender cómo el bytecode realmente refleja nuestro código. Mejor aún, podemos directamente programar con bytecode y aprovecharnos de eso mismo.
Soy un zorrinito interpretado.