Archivo de la etiqueta: programación

Cómo la simplicidad de JSON ha cambiado la forma de intercambiar datos

Hasta hace 5 o 6 años cuando se quería transmitir información desde un servidor a una aplicación (ya fuese una aplicación como tal o una web dinámica) se usaba XML, pero parece que esta tendencia ha cambiado totalmente apostando la mayoría de las empresas y servicios por JSON, una alternativa menos restrictiva, ligera, dinámica y probablemente más fácil de leer (para los humanos).

¿Y es la simplicidad la que hace nacer algunas tecnologías basadas en JSON?

 

Repaso a JSON

Aunque quería analizar la situación actual de JSON, no puedo evitar dedicarle unas pequeñas líneas a esta notación, que tiene el claro fin de intercambiar datos.

Esta notación basada en objetos (que utiliza el sistema nativo de objetos de JavaScript) hace uso de las llaves y los corchetes para agrupar los datos en listas relacionando clave y valor o listas simples, respectivamente.

Para los iniciados en la programación que no conozcan la notación les hará falta un simple ejemplo para entender su funcionamiento.

// Ejemplo para los datos de un smartphone { marca: "Sony", modelo: "Z", especificaciones: { ram: 1024, resolicion: [1920, 1080], camara: "13Mpx" }, colores: [ "rojo", "azul", "negro" ] }

¿JSON se ha impuesto como norma?

El gran contrincante de JSON es XML, que se puede definir como un lenguaje muchísimo más estricto (debido al uso de DTDs o definiciones del tipo de documento) y que tiene algunas peculiaridades como la de disponer de XPath para recorrer su estructura. Pero cuenta con la desventaja de ser muy basto, lo que lo hace poco manejable o incómodo de escribir, sin hablar de el volumen que puede tener si queremos intercambiar grandes volúmenes de datos.

En el caso concreto de pasar datos medianamente simples, como serían datos para generar gráficas, XML se convierte en un gran lastre, ya que la forma idónea de pasar estos datos es almacenándolos en diferentes etiquetas (212428), mientras que en JSON podemos almacenarlos todos seguidos como un simple array ([21,24,28]).

Esta ventaja en cuanto a simplicidad y la gran compatibilidad con multitudes de lenguajes ha logrado que sea prácticamente la norma en el desarrollo web, siendo algo trivial la recepción mediante AJAX de objetos JSON que son interpretados de forma nativa por cualquier navegador (con JSON.parse()). Seguir leyendo Cómo la simplicidad de JSON ha cambiado la forma de intercambiar datos

El origen de los animales en las portadas de los libros de O’Reilly

Animales oreilly

Uno de los aspectos más característicos de los libros O’Reilly es la aparición de animales en las portadas. Aparentemente nada tienen que ver con el tema que se habla, aunque si nos adentramos en su historia nos damos cuenta que en cierta forma tiene un significado curioso y divertido. Todo un simbolo identificativo que muchos de nosotros hemos tenido en la mesa o en la estantería con el curioso animal de O’Reilly observandonos.

A mediados de los años ochenta, Edie Freedman, una de las primeras diseñadores de las portadas de los libros de O’Reilly, presentó una curiosa idea que serviría para diferenciar a los libros de la editorial del resto en las estanterías. A partir de una láminas de animales empezó a crear los primeros bocetos. En un primer momento, no a todo el mundo en la empresa le parecía buena idea, pero a Tim O’Reilly le entusiasma esa curiosa relación.

Dibujante animales de OReillyComo recuerda la dibujante, no hay un clara identificación entre la tecnología, el lenguaje o la aplicación técnica que se trata en el libro y el animal en portada. Pero sí, una relación entre el sentimiento de una dibujante, que poco sabía de lo que se hablaba, las características del animal y el sonido de los títulos o términos empleados cuyo sonido al pronunciarlos le recordaba más a uno de esos animales/personajes del famoso juego de rol Dungeous and Dragons.

Así, uno de los primeros libros fue Sed & Awk dedicados en sus portada a los sleder loris (no encuentro traducción al español).

Según fue pasando el tiempo, los editores y escritores estaban más preocupados por el animal que se escogería para sus libros. Para llegar a conseguir el animal idóneo a cada tecnología, los autores eran interrogados por los temas del libro y fijandose en especial atención en las características del animal se seleccionaba el que mejor encajaba (de forma figurada).

Camel Perl OReilly

Por ejemplo, el camello de Perl identificada a un animal en cierta forma feo pero tremendamente servicial. O algunos que he tenido en mis escritorio estos últimos años como el rinoceronte de Javascript, el caballo de Apache o el leopardo de Tomcat. Algunos animales ha ocasionado algunos problemas a los lectores con ciertas fobias como la araña de Webmaster in Nutshell o las serpientes de los libros dedicados a Python.

Python y Javascript

Si os interesa podéis echar un vistazo a un listado con todos los animales usados en las portadas de los libros de O’Reilly. Algunos de ellos tristemente en estado de extinción, los cuales O’Reilly ya ha lanzado algunas iniciativas para salvar y concienciar a la gente de su estado actual. Seguir leyendo El origen de los animales en las portadas de los libros de O’Reilly

Haciendo una API Rest en 1 hora con ASP.NET Web Api I [Actualización]

ASP.NET Web Api

[Actualización 16/01/2013] Me ha parecido que se ha quedado muy corto la construcción del esquema de datos y lo he alargado un poco más.

La llegada de Internet ha revolucionado en profundidad tanto el mundo de las telecomunicaciones, como el de la información, como el de la arquitectura de software.

La evolución de los sistemas SOA, basados en servicios “pesados” en XML y encapsulados en complejos mensajes SOAP, han ido perdiendo terreno ante las nuevas capas de servicios construidas sobre los verbos HTTP (GET, POST, PUT y DELETE), y que intercambian la comunicación por medio de los propios mecanismos del protocolo – como los datos en el cuerpo o encabezado – y el uso estándar de notación JSON para la transferencia de información.

Presentación del tutorial

Este tutorial va a llevarte de la mano en la elaboración de una API REST sencilla, que será capaz de realizar un CRUD sobre un tipo de objeto complejo. Es decir, inserción, recuperación, modificación y borrado de unidades de información.

Para ello he utilizado el framework de ASP.NET Web API, y Fiddler Web Debugger como herramienta para realizar las pruebas funcionales; como base de datos MS SQL Server Express; y como lenguajes de programación C#, Linq y Entity Framework. (No voy a utilizar async/await).

El resultado final serán cinco métodos REST diferentes:

  • POST http://<servidor_de_desarrollo>/api/persona/ (Inserta una nueva persona).
  • GET http://<servidor_de_desarrollo>/api/persona/1 (Recupera la persona con Id 1).
  • GET http://<servidor_de_desarrollo>/api/persona/ (Recupera todas las personas).
  • PUT http://<servidor_de_desarrollo>/api/persona/ (Actualiza los datos de una persona).
  • DELETE http://<servidor_de_desarrollo>/api/persona/ (Borra una persona).

Si te has fijado, con estos cinco métodos, cubro más del 80% de las necesidades de cualquier API. Y las construcciones que quedan son para llamadas complejas de datos, como paginación, ordenamiento o campos de selección y recuperación.

Ecosistema de desarrollo

Visual Studio 2013

El segundo objetivo de este tutorial es el compartir con los lectores de GenbetaDev el ecosistema de desarrollo que utilizo en mi labor profesional diaria, haciendo énfasis en utilizar versiones gratuitas (o de prueba gratuita).

Para ello, a continuación, añado los enlaces a las herramientas que he utilizado en la elaboración de esta pequeña serie:

Empezando con los datos

Acceso a la SQL Seguir leyendo Haciendo una API Rest en 1 hora con ASP.NET Web Api I [Actualización]