Celebremos la llegada del hombre a la Luna con el código fuente del Apollo XI

Aunque en España y buena parte del mundo ya era día 21, como fueron los yankees los que lo consiguieron, podemos decir que ayer 20 de Julio se cumplían 45 años de la llegada del hombre a la Luna en el Apollo XI (no confundir con el Apollo XIII de la peli homónima esa del “Houston tenemos un problema”) y que mejor manera de celebrarlo que leyendo el código fuente del ordenador de a bordo del mítico transbordador espacial. Cientos no, miles de líneas de código que son oro puro, canela en rama para todos los amantes de la historia de la informática y el desarrollo..

Aunque en España y buena parte del mundo ya era día 21, como fueron los yankees los que lo consiguieron, podemos decir que ayer 20 de Julio se cumplían 45 años de la llegada del hombre a la Luna en el Apollo XI (no confundir con el Apollo XIII de la peli homónima esa del “Houston tenemos un problema”) y que mejor manera de celebrarlo que leyendo el código fuente del ordenador de a bordo del mítico transbordador espacial. Cientos no, miles de líneas de código que son oro puro, canela en rama para todos los amantes de la historia de la informática y el desarrollo… vamos, todos los que nos paseamos por aquí (o así debería ser).

El código, que fue escrito por gente del MIT ex profeso para este Apollo Guidance Computer (AGC), es desde 2009 de dominio público, está alojado en ibiblio.org (el archive.org del software, basicamente) y estos días de conmemoración está siendo compartido como la espuma por todas las redes sociales. No te preocupes si no sabes código ensamblador (no ya cosas más arcanas como código máquina o hexadecimal) o lo tienes más oxidado que las bisagras de Bender después de un día sin cerveza, que todo bien profusamente explicado para que podamos entender cada línea de todas y cada una de las subrutinas y ficheros. Simplemente gozoso, como adentrarse en un yacimiento abisal de conocimiento developer.

Pd: entre esto y lo enganchado que estoy a la nueva serie ‘Halt and Catch Fire’, donde la trama gira en torno a la ingeniería inversa a la BIOS del primer PC Computer de IBM, me están entrando unas ganas locas de volver a la programación de bajo nivel, de HLT y soldador. Espero que se me pase pronto, que o estoy yo ya para esos trotes.


via:ibiblio

Aparece un mod híbrido entre iMac y Apple II en un solo equipo

Aunque ahora lo veamos extraño debido al tipo de equipos que vende Apple, había un tiempo en el que los equipos que vendían los de Cupertino no llevaban incluido un monitor incorporado en el propio equipo y no era algo extraño sino la norma general también entre otros fabricantes.

Apple-II-iMac-híbrido-0

Aunque ahora lo veamos extraño debido al tipo de equipos que vende Apple, había un tiempo en el que los equipos que vendían los de Cupertino no llevaban incluido un monitor incorporado en el propio equipo y no era algo extraño sino la norma general también entre otros fabricantes. En el caso que nos ocupa, el Apple II podía ‘encargarse’ con un monitor CRT de unos 10 kilos de peso y resolución de 320 x 200 pixels, el cual era algo más pesado de lo que es un iMac de 27 ” actual.

Lo más curioso del asunto es que no se trata de un ‘experimento’ sino que tiene una funcionalidad real, es decir, puedes utilizar tu iMac como un equipo normal en el más estricto sentido de la palabra solamente que cuando quieras rememorar viejos tiempos puedes hacerlo a través del Apple II que estará conectado al iMac aunque no sabemos en que forma, ya que el usuario en cuestión Francesco Zaia, no ha explicado como se ha llevado a cabo. Recordemos que el Apple II era un equipo que integraba un microprocesador 6502 de MOS Technology funcionando a 1 MHz, con 4 KiB de RAM, 12 KiB de ROM con el lenguaje de programación Integer BASIC.

En realidad el iMac no hace más que la función de un monitor mas actual cuando se usa con el Apple II y un iMac tal cual cuando se usa de forma nativa. Quizás la parte más llamativa es que posee según comenta, un sistema de dual-boot para arrancar desde un principio en cualquiera de los dos modos. De todas formas debido al hecho de no haber ampliado la información respecto a como ha sido capaz de realizar este mod, podemos llegar a pensar que se trata de un montaje sin base ninguna aunque en el fondo estaría bien que se tratase de una realidad pero que no creo que Apple vaya a patentar esta idea.

 

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

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()). Continue reading “Cómo la simplicidad de JSON ha cambiado la forma de intercambiar datos”

Epic Games lanza Tappy Chicken, su clon de Flappy Bird

Epic Games está promocionando la facilidad de programación y flexibilidad de su motor gráfico Unreal Engine 4 , y para demostrar que con sus herramientas alguien sin muchos conocimientos de programación puede crear un juego han lanzado Tappy Chicken `para Android y iOS. Tappy Chicken es un clon más de Flappy Bird, desarrollado por solo una persona, por Shane Caudle , artista principal de Epic Games, que gracias al sistema visual de scripting Bluetprints no ha tenido que escribir código para crear este versión.

Tappy Chicken

Epic Games está promocionando la facilidad de programación y flexibilidad de su motor gráfico Unreal Engine 4, y para demostrar que con sus herramientas alguien sin muchos conocimientos de programación puede crear un juego han lanzado Tappy Chicken`para Android y iOS.

Tappy Chicken es un clon más de Flappy Bird, desarrollado por solo una persona, por Shane Caudle, artista principal de Epic Games, que gracias al sistema visual de scripting Bluetprints no ha tenido que escribir código para crear este versión.

En Tappy Chicken para Android encontramos la misma jugabilidad que el juego original pero con distintos gráficos y con el añadido de logros y 64 huevos para coleccionar, los cuales se consiguen estrellando la gallina con cada uno de los troncos. Vamos, estamos frente a otra copia mejorada del original Flappy Birds, el cual volverá en agosto con su su versión multijugador.

Tappy Chicken

Tappy Chicken Versión 1.0

Código QR

  • Versión de Android: desde 2.3
  • Desarrollador: Epic Games, Inc.
  • Descárgalo en: Google Play
  • Precio: Gratis
  • Categoría: Acción

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

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.

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. Continue reading “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]

[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

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 Continue reading “Haciendo una API Rest en 1 hora con ASP.NET Web Api I [Actualización]”

Quiet Hours, silencia tu Windows Phone automáticamente en un rango de horas predeterminado

Si eres de los que habitualmente tiene una jornada de trabajo o estudio y tiene que andar silenciando el teléfono todos los días al llegar y volver a activar el sonido al irte, Quiet Hours va a ponértelo fácil, muy fácil en Windows Phone.

Quiet Hours
Si eres de los que habitualmente tiene una jornada de trabajo o estudio y tiene que andar silenciando el teléfono todos los días al llegar y volver a activar el sonido al irte, Quiet Hours va a ponértelo fácil, muy fácil en Windows Phone.

Esta aplicación llega para cualquier smartphone Windows Phone 8 y promete ser capaz de silenciar tu móvil en un rango de horas que configuras previamente de manera automática. Además, ofrece un Live Tile que silenciará tu móvil con tan sólo tocarlo.

Cabe destacar que es una descarga gratuita, pero que la opción de programación se ofrece como una compra in-app haciendo posible programar que de lunes a viernes de tal hora a tal hora el teléfono esté en silencio.

Es curioso que se avisa que debido a limitaciones de Windows Phone, sólo permite ejecutar tareas en segundo plano una vez cada 30 minutos, la activación del sonido podría no ser exacta a la hora que elijas.

App

Quiet HoursVersión 1.0.2.0

QRCode