31 Ene

Agrega gráficas interactivas a tu sitio web con Highcharts [Javascript]

La tecnología Flash está en pleno declive en Internet después de que los gigantes del mundo de la informática y los propios usuarios le dieran la espalda. Empresas como Apple, Google, Facebook y Microsoft han decidido darle soporte al estándar HTML5 y al lenguaje Javascript como las nuevas tecnologías predominantes de Internet.

Hasta hace algunos años Flash era muy utilizado en sitios web para mostrar gráficas de barra o de pastel. Había cientos de plugins que hacían muy sencilla la labor de colocar estas gráficas para los desarrolladores web, además incluían animaciones que daban un mejor aspecto.

Si eres desarrollador (especialmente si eres desarrollador web) seguramente te interesará utilizar las últimas tecnologías disponibles y sobre todo utilizar los estándares. Así que para el caso de las gráficas, presento como referencia una librería de Javascript llamada HighCharts.

HighCharts te permite añadir gráficas animadas a tu sitio web en una gran variedad de formatos. El plugin está hecho en Javascript por lo que es sumamente sencillo agregarlo a tu sitio web. La alimentación de información se hace a través del formato JSON.

Personalmente he utilizado esta librería en varios proyectos y siempre me ha dado excelentes resultados. Lo mejor de todo es que es compatible con cualquier navegador que soporte Javascript. Es decir, funciona con Windows, Linux, Mac, Android, iOS, Windows Phone, Firefox, Chrome, Safari, Internet Explorer, en una PC, en un Smartphone, en una Tablet, etc. Algo con lo que Flash no puede competir.

Librería: Highcharts
Demos: Highcharts Demos

29 Ene

Trollscript, un lenguaje esotérico para Trolls

Trollface

TrollfaceImagina la siguiente situación. Eres despedido, te quedan 2 semanas de trabajo, te solicitan desarrollar algunos programas, eres un programador. Seguramente querrás vengarte de tu empresa, seguramente querrás…. trollearlos!. Entonces que mejor que desarrollar todos tus programas con un lenguaje de programación esotérico imposible de descifrar por otra persona.

Para lograr esto tenemos a nuestra dispocisión el primer lenguaje de programación orientado a troles, el TrollScript. Con este lenguaje podrás crear código troll que seguramente hará imposible reutilizar todo tu código fuente.

Para instalar Trollscript tienes que tener instalado Ruby (lástima) en tu equipo y ejecutar “gem install trollscript”. Una vez instalado podrás iniciar a desarrollar utilizando los carácteres o y l. Por supuesto, todas las aplicaciones deben empezar con tr.

Ejemplo de «Hola Mundo» con Trollscript:

[cc]Trooloolooloolooloolooloolooloololloooooloolooloolooloolooloooooloolooloolooloolooloolooloolooooolooloolooooolooolooloolo ololllllooooloololoooooololooolooloolooloolooloololoolooolooloololooooooloololooooloololooloolooloolooloolooloolooloolooloolo oloololooooolooolooloololooollollollollollolllooollollollollollollollollloooooololooooolooll.[/cc]

Para entender este lenguaje hay que conocer el significado de las secuencias:

  • ooo – Incrementa el puntero de datos a la siguiente celda.
  • ool – Decrementa el puntero de datos a la anterior celda.
  • olo – Incrementa en uno el byte que está apuntando.
  • oll – Decrementa en uno el byte que está apuntando.
  • loo – Salida del carácter del byte (valor ASCII) de la celda que está apuntando.
  • lol – Acepta un byte de entrada almacenando el valor en la celda que está apuntando.
  • llo – Si el byte es cero, salta hacia adelante hasta encontrar la siguiente coincidencia.
  • lll – Si el byte es cero, salta hacia atrás hasta encontrar la siguiente coincidencia.

Trollscript es un lenguaje de programación esoterico de Brainfuck creado por Urban Müller en 1993. Este lenguaje tiene una licencia llamada “Do What The Fuck You Want To Public License“ creada por la entidad Caca Labs.

Fuente: GenbetaDev

12 Nov

El Tao de la Programación

El Tao de la programación

El Tao de la programación

Amigo programador, ¿estás cansado de que únicamente puedas desarrollar lo que otras personas dicen? o ¿ahora miras la programación solamente como un «trabajo»?. Si es así, necesitas renovar tu fe y comprender nuevamente la filosofía detrás del arte de la programación.

Para ayudar con esta tarea, a continuación público de forma completa el «El Tao de la programación«, un libro escrito en 1987 por Geoffrey James que mezcla la filosofía del Tao y una serie de consejos sobre cómo ser buen programador. Mantiene en todo momento un tono humorístico e incluso se podría considerar «friki», pero desde luego es una lectura obligada.

Resulta interesante que después de 25 años de haber sido escrito, el libro contiene referencias a situaciones y problemas que siguen existiendo en los proyectos de desarrollo de software de los tiempos actuales. De hecho el libro también hace mención a otros clásicos como «El Mítico Hombre-Mes«.

El libro fue publicado en Internet con el permiso del autor y gracias al trabajo del sitio VariableNotFound. Ojalá les sea de gran provecho, especialmente para los que se encuentran estudiando una carrera afín a la programación.

 

El Tao de la Programación

por Geoffrey James

LIBRO PRIMERO: EL VACÍO SILENCIOSO

Así habló el maestro programador:

“Cuando hayas aprendido a extraer el código del error desde un trap frame,

será la hora de marcharte”

1.1


Algo misterioso se forma, nace en el vacío silencioso. Esperando solo e inmóvil, al mismo tiempo detenido y en movimiento constante. Es la fuente de todos los programas. Yo no sé su nombre, así que lo llamaré el Tao de la Programación.

Si el Tao es grandioso, entonces el sistema operativo es grandioso. Si el sistema operativo es grandioso, entonces el compilador es grandioso. Si el compilador es grandioso, entonces la aplicación es grandiosa. El usuario está complacido y hay armonía en el mundo.

El Tao de la Programación fluye lejos y regresa con el viento de la mañana.

1.2


El Tao engendró al lenguaje máquina. El lenguaje máquina dio vida al ensamblador. El ensamblador se la dio al compilador. Ahora hay diez mil lenguajes.

Cada lenguaje tiene su propósito, aunque sea humilde. Cada lenguaje expresa el Yin y el Yang del software. Cada lenguaje tiene su lugar dentro del Tao.

Pero no programes en COBOL si puedes evitarlo.

1.3


En el principio era el Tao. El Tao engendró el Espacio y Tiempo. Por tanto Espacio y Tiempo son el Yin y el Yang de la programación.

Los programadores que no comprenden el Tao siempre siempre se quedan sin tiempo y espacio para sus programas. Los programadores que comprenden el Tao siempre tienen tiempo y espacio suficiente para lograr sus objetivos.

¿Cómo podría ser de otra manera?

1.4


Al programador sabio le hablan del Tao y lo sigue. Al programador medio le hablan del Tao y lo busca. El programador necio se ríe cuando le hablan del Tao.

Si no fuera por la risa, no existiría el Tao.

Los sonidos más altos son los más difíciles de oír.

Avanzar es un camino para la retirada.

El gran talento se muestra tarde en la vida.

Incluso un programa perfecto todavía tiene errores.


Leer más

08 Ago

Hoja de trucos para HTML5

Como desarrollador es importante conocer las últimas tecnologías y tendencias pues en algún punto del tiempo es probable que necesitemos hacer uso de algún lenguaje o técnica en particular. Además por lo general las nuevas tecnologías incluyen mejoras que nos permiten realizar las tareas de forma más rápida evitando complejidad innecesaria.

Para un desarrollador web debe ser prioritario comenzar a conocer elestándar HTML5 ya que incluye novedades más que interesantes y al mismo tiempo elimina algunas características de HTML4 (como ejemplo las etiquetas <font>, <center> y <frame> entre otras). Por otro lado, sistemas operativos como el próximo Windows 8 ofrecerán soporte nativo para desarrollar aplicaciones utilizando este lenguaje de marcado.

Y ya hablando del tema, hace tiempo me encontré esta interesante «hoja de trucos» de HTML5 con la cuál es bastante sencillo conocer lo nuevo, lo que no cambia y lo que se ha eliminado de HTML4 en este nuevo estándar. Haciendo clic en la imagen pueden llegar a la imagen original y moverse a través de ella utilizando la función de arrastrar y soltar.

Leyenda de la imagen:

Espero les sea de utilidad, saludos.

Fuente: Woork
Imagen original en alta resolución: Flickr

22 Jul

Top 25 errores más peligrosos en el desarrollo de software

CWE (Common Weakness Enumeration) y la SANS han publicado un estudio donde enumeran los 25 errores de programación mas peligrosos en el desarrollo de software. En la lista se muestran errores que muchos programadores toman como inofensivos pues desconocen que pueden permitir a «atacantes» tener acceso a información privada.

El top 25 errores más peligrosos en el software es:

  • No filtrar propiamente las sentencias SQL (Inyección SQL) (Puntaje 93.8) (ID CWE-89)
  • No filtrar las llamadas al sistema de forma adecuada (Inyección en comandos del SO) (Puntaje 83.3) (ID CWE-78)
  • No chequear el tamaño de la memoria reservada a la hora de copiar datos (desbordamiento de memoria) (Puntaje 79.0) (ID CWE-120)
  • No detectar la inyección de scripting (XSS) (Puntaje 77.7) (ID CWE-79)
  • No autentificar en llamada a funciones críticas (Puntaje 76.9) (ID CWE-306)
  • No autorización (Puntaje 76.8) (ID CWE-862)
  • Usar credenciales estáticos en el código (Puntaje 75.0) (ID CWE-798)
  • No cifrado de datos sensibles (Puntaje 75.0) (ID CWE-311)
  • No restringir la subida de ficheros a ciertos formatos (Puntaje 74.0) (ID CWE-434)
  • Confiar en una fuente de datos no confiable a la hora de tomar una decisión de seguridad (Puntaje 73.8) (ID CWE-807)
  • Ejecución con privilegios innecesarios (Puntaje 73.1) (ID CWE-250)
  • Cross-Site Request Forgery (CSRF) (Puntaje 70.1) (ID CWE-352)
  • No limitar el acceso al sistema de ficheros a directorios restringidos (Puntaje 69.3) (ID CWE-22)
  • Descarga de código sin chequear la integridad del mismo (Puntaje 68.5) (ID CWE-494)
  • Autorización incorrecta (Puntaje 67.8) (ID CWE-863)
  • Permitir la integración de funcionalidades de fuentes no confiables (Puntaje 66.0) (ID CWE-829)
  • Asignación de permisos incorrecta a recursos críticos (Puntaje 65.5) (ID CWE-732)
  • Uso de funciones potencialmente peligrosas (Puntaje 64.6) (ID CWE-676)
  • User un algoritmo de cifrado que ha sido comprometido o roto (Puntaje 64.1) (ID CWE-327)
  • Cálculo incorrecto del tamaño de memoria (Puntaje 62.4) (ID CWE-131)
  • No restricción a un número de intentos fallidos de acceso (Puntaje 61.5) (ID CWE-307)
  • Redirección URL a sitios no confiables (‘Open Redirect’) (Puntaje 61.1) (ID CWE-601)
  • Formato de cadena no controlado (Puntaje 61.0) (ID CWE-134)
  • Desbordamiento de enteros (Puntaje 60.3) (ID CWE-190)
  • Aplicar una función hash sin usar la sal (Puntaje 59.9) (ID CWE-759)

Si cometes por lo menos uno de estos errores en el desarrollo de tus aplicaciones, no dudes en hacer click en su respectivo ID, donde encontraras toda la información necesaria para entender mejor el problema y corregirlo. Puedes descargar todo el informe en PDF o verla online en la pagina oficial de la Common Weakness Enumeration.

Me parece interesante le hecho de que el error más peligroso (inyección SQL) sea también el error más común en el desarrollo web. Para evitarlo básicamente debe validarse que las variables no incluyan caracteres que puedan formar parte de una cadena SQL.

Fuente: DragonJar