Archivo de la categoría: programación

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… 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

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.

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