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.

(Read more →)

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.

(Read more →)

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.

(Read more →)

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.

(Read more →)

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.

(Read more →)

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.

(Read more →)

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.

(Read more →)

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.

(Read more →)

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.

(Read more →)

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.

(Read more →)