Nueva colección de software para Apple II

  • March 22, 2017
  • tuxotron
  • IBM PC

    *Colección de discos de 3D0G Knight*

    Jason Scott está llevando a cabo una tarea tremendamente impresionante en su lucha por preservar software que hoy en día se considera prácticamente inútil. En su colaboración con Archive.org, una de las colecciones que Jason mantiene es la de software para Apple II. Ya en su día hablamos de la gran colección de 4am, esta nueva colección pertenece a un pirata/coleccionista (no lo digo yo, así lo califica Jason) se hace llamar 3D0G Knight, en ésta hay más de 500 aplicaciones/juegos de los años 80s, descargables y desprotegidas (crackeadas). Puedes descargar los ficheros individuales o probarlos directamente a través del emulador web alojado en la propio Archive.org. Si quieres descargarte la colección completa, puedes hacerlo desde este enlace.

    Jason además está pidiendo ayuda para seguir recopilando software para sistemas Apple y que corramos la voz, así que este es nuestro granito de arena. Si quieres ayudar con esta tarea, comparte esta entrada para que la comunidad hispana haga su aporte.

Microhistoria, La "bellota" que originó la industria del PC

  • March 18, 2017
  • tuxotron
  • IBM PC

    *IBM PC Original. Fuente Wikipedia*

    A finales de los 70s, empresas como Commodore, Apple, Atari, Tandy o Digital Research, entre otras, se habían empeñado en llevar el ordenador del ámbito profesional al personal. IBM que claramente gobernaba el mercado del ordenador empresarial, se preguntaba si debería unirse a la batalla del ordenador personal y tomarse su parte del pastel.

    Éste fue precisamente el motivo de la visita de William C. Lowe, por aquel entonces manager de la Unidad de Negocio Independientes (UNI) o Independent Business Unit (IBU) de los Sistemas de Nivel Básico de IBM en Boca Ratón (Florida), a las oficinas principales de IBM en Armonk (Nueva York), para reunirse con John Opel y Frank Cary, presidente y director ejecutivo, respectivamente, de la todopoderosa IBM, éste último precisamente creador de dicha UNI, además de otras.

    En dicha reunión, se discutieron temas sobre si IBM debería de entrar en el mercado del ordenador personal o no. Hasta la fecha prácticamente todo lo que IBM había vendido, había sido fabricado por la propia empresa. Según los números de Cary, IBM necesitaría 300 personas y 4 años para construir un ordenador personal desde cero, basándose en la cultura y modelo de negocios de IBM. Lowe propuso la compra de Atari, ya que ésta ya tenía un ordenador personal en el mercado, pero en vez de ello, el comité permitió a Lowe formar un equipo de trabajo independiente, pero tendría que volver en un mes con un prototipo.

    Un mes más tarde, agosto de 1980, Lowe volvería con un prototipo que prácticamente no funcionaba, pero con un plan de negocios detallado y proponiendo la creación del ordenador usando una arquitectura abierta, componentes no propietarios y sería vendido por tiendas minoristas, todo lo contrario al modelo de negocios de IBM. Así en octubre del mismo año el proyecto fue aprobado y se crearía una nueva UNI llamada “Chess” para la creación nuevo ordenador internamente conocido como Acorn (Bellota). Este proyecto se declaró de alto secreto. IBM dio a dicho equipo 11 meses y 80 millones de dólares, e incluso unas oficinas nuevas totalmente de incógnito, en las que no les permitieron ni poner el logotipo de la propia empresa. La mayoría del equipo ejecutivo de IBM no tenía mucha fé en un proyecto para la creación de un “juguete” y que además iba en contra de la cultura del gigante azul, y si éste se convirtiera en un fracaso, IBM no quería que se la relacionara con dicho proyecto en modo alguno. El equipo de trabajo estaba compuesto por 12 ingenieros, conocido como “the Dirty Dozen” (la docena sucia). Lowe pronto promocionó y dejó el proyecto en manos de Don Estridge.

    En Julio de 1980, incluso antes de que el proyecto fuera aprobado, una pequeña empresa llamada Microsoft, que en aquellos tiempos estaban muy ocupados acabando una versión de BASIC para Atari, recibieron una enigmática llamada de IBM, nada más y nada menos. IBM, como ya hemos mencionado antes, en aquella época era el auténtico gigante de la informática que dominaba la venta de ordenadores para la empresa. Querían una reunión inmediata con ellos, de hecho Bill Gates les dijo “¿Que tal la próxima semana?”, y ellos respondieron “Estaremos en un avión en dos horas”, era IBM, podían hacer lo que quisieran. Para esa reunión de alto nivel, Bill Gates llevó a un empleado recién contratado que seguro os suena el nombre, Steve Ballmer. Bill lo contrató justamente para aprovechar su MBA en Harvard y añadir un poco de orden a la gestión de Microsoft (que en esos momentos estaba creciendo a pasos agigantados).

    Bill pensaba que IBM quería utilizar su querido BASIC de alguna forma para sus ordenadores (que en aquella época eran más bien grandes ordenadores con un coste superior a los 20.000$) . Así que allí fueron los dos con traje y corbata, bastante nerviosos listos para ver qué negocio quería realizar IBM con ellos. Antes de empezar la reunión, les obligaron a firmar un contrato de confidencialidad para no comentar nada de lo que allí se iba a hablar. Esto añadió más tensión y misterio a la situación, pero Bill lo firmó sin rechistar, era IBM. Lo primero que dijo IBM fue “este el proyecto más inusual que jamás hemos realizado” y acto seguido les enseñaron los planes sobre Acorn.

    Acorn Final Team

    *Equipo final del proyecto Acorn*

    No era precisamente el BASIC lo que IBM buscaba, les preguntaron directamente si tenían algún sistema operativo como el CP/M que había desarrollado un tal Gary Kildall, al que Bill conocía . Bill les dijo que ellos no eran los dueños del CP/M pero que podría hablar con Gary para llegar a un acuerdo. Lo que ocurrió después forma parte de la historia de la informática como la mayor maniobra de marketing (aderezada con un poco de picardía e incluso algunos dirán que engaño) que elevó a Microsoft hasta el actual imperio que es hoy día (de hecho, fue el gran vencedor). Aquí viene la gran doble maniobra de marketing de Microsoft. La primera fue que apenas les costó trabajo desarrollarlo ya que compraron un clon de CP/M llamado QDOS (se sospecha que era una copia del CP/M) por un precio ridículo y sobre este desarrollaron el suyo simplemente realizando algunos cambios. Y la segunda fue que en vez de venderle a IBM los derechos completos sobre este sistema operativo (lo que les hubiera reportado una gran cantidad de dinero de golpe) prefirieron obtener un pequeño beneficio por ordenador que tuviera el sistema operativo instalado. Esto era una ganga para IBM que nunca llegaron a pensar en la gran repercusión que tendría en el futuro con el auge del IBM PC y los clónicos. Finalmente desarrollaron un sistema operativo llamado PC-DOS para los ordenadores IBM y otro llamado MS-DOS (que seguro os suena) para los ordenadores clónicos. El 1 de diciembre de 1980, Microsoft recibiría uno de los primeros prototipos para que pudieran empezar a desarrollar el software sobre el mismo. Microsoft ya había empezado su desarrollo sobre un PDP-11, como hicieran cuando crearon el Basic para Altair 8800, otra historia fascinante en la la compañía de Redmon estuvo involucrada.

    Acorn fue creado principalmente para competir en el mercado doméstico o la pequeña empresa. En principio el objetivo era crear un ordenador 100% de IBM, con todos sus componentes fabricados por ellos. Ironías de la vida, Bill Gates les dijo que el éxito de Apple estaba basado justamente por tener una arquitectura abierta (el Apple II estaba diseñado y creado con todo tipo de componentes clásicos y su diseño electrónico completo venía impreso de serie en todos los manuales, qué tiempos aquellos) . Parece que IBM le hizo caso a Bill Gates y crearon una arquitectura abierta, dejando la fabricación de los diferentes componentes y placas a otras empresas. Paradojas de la vida, en los ochenta hubo un cambio de papeles en lo que arquitectura se refiere, Apple cambió de arquitectura abierta a cerrada a partir del lanzamiento de su Macintosh en 1984 (esto era una obsesión personal de Steve Jobs que chocaba frontalmente con las ideas de Steve Wozniak) e IBM que pretendían crear una arquitectura cerrada pasó a una arquitectura abierta en 1981. Cualquier fabricante ó incluso cualquier persona desde un garaje, tendría la posibilidad de crear alguna tarjeta compatible con el nuevo flamante nuevo IBM PC y hacer negocios con ella.

    Pero IBM tenía un as guardado en la manga en forma de chip, la BIOS (Basic Input/Output System). Para que toda esa arquitectura abierta al mundo pudiera funcionar sería necesario incluir un chip en la placa principal el cual iniciaba todo el hardware durante el arranque (boot) además de proveer al sistema de diferentes rutinas necesarias para el sistema operativo. Esta jugada maestra de IBM impedía que cualquiera pudiera simplemente montar un compatible IBM y hacerlo funcionar del todo, ya que sería necesario tener esa llave en forma de chip llamada BIOS para que estuviera completamente operativo. Aunque las funciones y parte del código fuente de la BIOS era público (incluso parte de él venía impreso en el manual original de los primeros IBM PC), había un ejército de abogados por encima que lo protegía de cualquier tipo de copia o plagio.

    Finalmente el IBM PC se presentó el 12 de Agosto de 1981 en el hotel Waldorf Astoria de Nueva York, donde se presentó el famoso IBM PC 5150, con sus flamantes 16KB de RAM, procesador 8080 de intel, sin unidades de disco, impresora de Epson, monitor de IBM (fabricado en Japón), donde sólo el teclado y la unidad de sistema fueron fabricados por el equipo encargado de este proyecto. Utilizaba una unidad de cinta para cargar y guardar los programas (pronto saldría otra versión con unidades de disco flexible de 5” ½) y operaba sobre un sistema operativo llamado PC-DOS, de la mano de Microsoft. Este modelo básico costaba 1565$. El modelo que todos conocemos (y que aparece como la imagen icónica del IBM PC) con dos unidades de disco flexible y un monitor b/n o fósforo verde incorporado era una versión ampliada del 5150 con 64KB de RAM orientado a escuelas que costaba el doble, alrededor de 3000$. Para negocios existía otro modelo por 4000$ con monitor color, una impresora y dos unidades de disco flexible.

    IBM PC

    *IBM PC. Fuente:http://www-03.ibm.com/ibm/history/ibm100/us/en/icons/personalcomputer/*

    Después de una larga campaña de publicidad liderada por la imagen de Charles Chaplin para intentar acercarse lo máximo al público en general, IBM llegó a dominar el mercado durante varios años, llegando a ser portada de la clásica revista Time en el número publicado el 3 de enero de 1983 con el nombre de “Machine of the year”, en vez de “Man of the year” como venía siendo desde 1927.

    *Anuncio de Charles Chaplin*

    IBM no había creado un ordenador personal, había una nueva industria que crecería de forma estrepitosa, ya que permitiría a otras empresas a crear su propio PC compatible con el de IBM, pero faltaba una pieza clave para que la clonación fuera posible, la susodicha BIOS, ese componente vital y necesario para orquestar el hardware del PC.

    ¿Cómo puedo conseguir el código fuente completo de un programa insertado en un chip?, pues haciendo ingeniería inversa, así de fácil. Ni cortos ni perezosos, un grupo de ingenieros de la empresa que luego se llamaría Compaq, comenzó a realizar ingeniería inversa de la BIOS de IBM para poder crear su propio compatible que pudiera ejecutar los mismos programas que el original de IBM pero a la mitad de precio. La historia detrás de esta épica ingeniería inversa es realmente fascinante, llena de abogados, juicios y otros trucos legales para evitar el considerable mazazo que IBM quería asestar a Compaq por haber hackeado su flamante BIOS. Sólo os diremos que al final Compaq lo consiguió y esto provocó un efecto llamada para otras compañías las cuales comenzaron a crear sus propios clones del IBM PC, dando lugar a la gran expansión de esta nueva industria.

Infraestructura del nuevo blog

  • March 15, 2017
  • tuxotron
  • Pipeline

    Como publicamos ayer, no sólo hemos cambiado la imagen del blog, sino practicamante toda la infraestructura del mismo.

    Hace bastante tiempo que tenía en la cabeza la idea de mover el blog de Wordpress a un sitio estático por las razones que ya comentamos.

    El primer intento de migración fue usando Jekyll (la versión 3 acababa de salir), quizás el generador de sitiios web estático más popular. Éste tiene gran soporte y la plataforma esta muy bien, pero el problema es que tardaba en generar el blog unos 45 minutos. Todo esto corriendo en un sistema con Ubuntu Linux, 16Gb de RAM, SSD y un procesador Intel i7 quad core. Luego probamos Octopress, con prácticamente el mismo resultado. Ambas plataformas están escritas en Ruby. También probé otra, que no recuerdo el nombre, que estaba escrita en Python, a parte de no mejorar el rendimiento, no era tan versátil como Jekyll. Aquí el problema estaba claro, el languaje de programación. No es secreto alguno, que los lenguajes interpreatados son mucho más lentos que los compilados.

    Hugo

    Poco después descubrí Hugo, un “Jekyll”, pero escrito en Go. Inicialmente, aunque los resultados no fueron satisfactorios, Hugo era capaz de generar el sitio web en unos 25 minutos. Por lo que le seguí la pista por un tiempo, e iba probando cada versión que se liberaba, hasta que sobre la versión 0.18, Hugo era capaz de generar el sitio web en unos 6 minutos. En ese momento decidimos que era hora de hacer la migración.

    Lo siguiente era encontrar un tema que nos gustara y se adaptara al blog. Encontramos Hugo Phlat Theme, el cual nos gustó. Lo adoptamos y lo modificamos un poco a nuestro gusto.

    Generación de los ficheros .md a partir de la base de datos de Wordpress

    Ya tenemos generador y tema, hora de hacer una migración del wordpress actual y generar el contenido para que Hugo nos genere el sitio. Inicialmente probamos un exporador de Wordpress para Jekyll (recuerda que Hugo está basado en Jekyll y es capaz de entendar las entradas de Jekyll), pero el resultado no fue de mi agrado. Tuvimos problemas con ciertos caracteres en los tags, el título, etc. Empecé a modificar el código PHP, para corregir los problemas que encontraba, pero no me estaba llevando más tiempo del que deseaba pasar arreglando. Así que decidí escribir una pequeña rutina de exportación accediendo directamente a la base de datos. Para ello hice un backup de la base de datos actual de cyberhades, me cree un contenedor Docker con MySQL, restauré el backup en el contenedor y ejecuté el código de exportación y listo. En el directorio target tenía todos los ficheros .md para Hugo.

    Genración del sitio web

    Una vez hemos copiado todos los ficheros .md del directorio target al direction content/post dentro de nuestro proyecto de Hugo, todo lo que hacemos es ejecutar el comando hugo. Este genera un directorio llamado public el cual contiene todos los ficheros necesarios (HTML, Javascript y CSS). Dependiendo de la configuración de tu sistema y del número de entradas del blog y configuración del mismo, la duración puede vairar. En nuestro caso, como comenté antes tarda unos 6 minutos, actualmente tenemos más de 6.000 entradas.

    Arquitectura

    Ahora que tenemos el sitio ya generado, es hora de deplegarlo y crear un pipeline de despliegue automático, y aquí es la parte más interesante (para mi) del proyecto. En nuestro caso usamos Nginx como servidor web (Hugo dispone de su propio servidor interno), todo encapsulado en un contenedor Docker (Alpine Linux).

    El proyecto completo lo tenemos en un repositorio privado en Gitlab.com. El proceso de despliegue es el siguiente:

    • Creamos una entrada nueva o simplemente hacemos alguna modificación, hacemos un commit/push.

    • Luego tenemos un servidor Jenkins, dónde tenemos varios trabajos creados, entre ellos uno para el despliegue del blog:

      1. Recoger los cambios de gitlab.com.
      2. Generación del sitio web.
      cd $WORKSPACE
      hugo --config=config-prod.toml
      
      1. Generación de una imagen Docker con el contenido del sitio que acabamos de generar. La imagen está etiquetada con el número del build de Jenkins. Esto nos permite fácilmente hacer un rollback del blog en caso que la publicación del mismo tenga algíun problema.
      docker image build -t cyberhades/blog:$BUILD_NUMBER .
      
      1. La imagen Docker que acabamos de crear se manda a Docker Hub.
      docker push cyberhades/blog:$BUILD_NUMBER
      
      1. Jenkins se conecta al servidor (Digital Ocean)
      2. Se descarga la imagen que acabamos de subir desde Docker Hub
      docker pull cyberhades/blog:$BUILD_NUMBER
      
      1. Para el contenedor actual que corre el blog y lo borra
      docker container stop blog-container
      docker container rm blog-container
      
      1. Crea un contenedor nuevo con la imagen que nos hemos descargado
      docker container run --name blog-container --restart=always -d -p 1313:80 cyberhades/blog:$BUILD_NUMBER
      

    Todo el proceso de despligue tarda unos 17 minutos y todo está automatizado a través de un servidor privado (Ubuntu server, Intel i7 quad core, 8Gb RAM y SSD) con Jenkins.

    El blog además tiene certifcados digitales de Let´s Encrypt, por lo que el servidor está disponible por HTTP y HTTPS. Los comentarios están integrado con Disqus y el RSS lo tenemos en Feedburner.