Mostrando entradas con la etiqueta BASIC. Mostrar todas las entradas
Mostrando entradas con la etiqueta BASIC. Mostrar todas las entradas

domingo, marzo 09, 2025

BASIC 1.0 Copilot para AMSTRAD CPC 6128

El viernes, a última hora de la tarde, di mi charla en RootedCON que había titulado "Laife gets better", que es un juego de palabras con life + ai, porque cada vez se mete en más partes de nuestra vida. En este caso, quería contar, a través del cine y de proyectos que hemos ido haciendo este año en el equipo de Ideas Locas, cómo la Inteligencia Artificial puede transformar todo, y comencé por mis principios de desarrollador, con 12 años, cuando programaba en BASIC.
En este caso, la película por la que hay que comenzar es TRON, la película donde los protagonistas son programas que viven aventuras dentro de una CPU de 8 bits, y donde los programadores son sus creadores, sus dioses. Los que les dan vida. Hay que ver eso con los ojos de un niño y no querer ser programador.

Figura 2: Tron

A partir de ahí, me apunté a la academia de mi barrio llamada RUS, y me puse a estudiar informática. Y creo que no he dejado de estudiar informática ni un sólo día, así que fijaos si tuvo impacto en mí esa película. 
Un día, leyendo el proyecto de un hacker que había conectado una calculadora científica a ChatGPT para aprobar todos los exámenes - os lo dejé en el artículo "Cómo hacerte una calculadora conectada a ChatGPT y aprobar todos los exámenes #Makers", me animé a hacer lo mismo para nuestros Retro-Computers. Al final, en el equipo tenemos grandes makers, y estos proyectos siempre son de los que nos molan. Ya hace años habíamos hecho un proyecto similar, para dotar a Macintosh de almacenamiento infinito en la nube que tenéis en la presentación siguiente, así que porque no hacerlo con ChatGPT.
Pero no íbamos a repetir el experimento, así de sencillo. Había que hacerlo más complejo, que mis chicos makers están acostumbrados a hacer cosas difíciles como "Chucky Alonso", y como yo tenía el recuerdo de mi AMSTRAD CPC 6128, les pedí que lo hiciéramos con él, para tener un BASIC 1.0 Copilot para AMSTRAD CPC 6128.

BASIC 1.0 Copilot para AMSTRAD CPC 6128

Para construirlo, primero hay que conectar a Internet nuestro querido AMSTRAD CPC 6128, y una forma sencilla es cambiarle la disquetera y ponerle un EMULADOR de disquetera de 3" que tiene conexión vía USB. Este gadget lo puedes comprar en Amazon por menos de 40 €
Una vez que lo tengas ya lo puedes conectar a la Raspberry Pi y darle conexión a Internet para hacer las conexiones a ChatGPT con los prompts que desees. Por ejemplo, que haga un programa que dibuje una espiral gaussiana por pantalla.

Figura 6: Prompt a ChatGPT para pintar una espiral gaussiana

Así que el resto es ajustar todo. Para hacer todas las pruebas y demos, usamos el Emulador de AMSTRAD CPC 6128 de Retro Virtual Machine de Juan Carlos González Amestoy, que era perfecto para esta prueba. Y se creo el siguiente código en BASIC 1.0 como interfaz de BASIC 1.0 Copilot.
Como podéis ver, es tan sencillo como pedir un prompt y guardarlo en un fichero de preguntas QSTN.TXT, que se quedará en el disquete. Cuando ejecutamos este programa tenemos un interfaz para escribir los prompts por pantalla, como podéis ver:

En el emulador no tenemos la conexión directa USB a la Raspberry Pi para hacer el proceso automáticamente con nuestro script en Python, así que hay que sacar el disquete manualmente y volver a cargarlo. Esto es porque el emulador, una vez que carga el disquete hace una copia de su contenido en memoria, por lo que no hay actualizaciones en disco hasta que no se fuerzan con una extracción virtual del mismo.
Pero cuando se saca, el script lee el fichero QSTN.TXT, se hace la pregunta a ChatGPT, se obtiene la respuesta y se lee el fichero de respuesta que se llama RSPT.BAS para que sea ejecutable directamente. Así que cuando se carga el disquete de nuevo, continua el programa y podemos listar la respuesta.
Una vez que tenemos la respuesta, podemos ver el código que nos ha generado, y lo siguiente es tan sencillo como ejecutar con nuestro querido RUN, para poder ver la magia en acción.
Tenéis el proceso completo en este vídeo que os he subido a mi canal Youtube para que podáis verlo funcionar en un par de minutos completo, que es una chulada.

Figura 12: BASIC 1.0 Copilot para AMSTRAD CPC 6128

La inteligencia artificial va a cambiar todo, y hacer estas pruebas con sistemas de nuestra infancia, donde estas cosas eran ciencia-ficción, nos ayuda a comprender un poco mejor el impacto que tiene hoy en todo. Así que más vale que te pongas las pilas porque el nuevo mundo es por aquí.

¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


lunes, julio 13, 2020

¿Me ayudas a buscar a mi profesor de informática? Se llamaba Teo.

Hace ya muchos años, en Agosto de 2013, os conté cómo fueron mis inicios en el mundo de la informática, cuando siendo en niño de solo doce años me apunté a una academia de mi barrio de La Loma en Móstoles que estaba sita en la Calle Barcelona - donde me he criado - y que decía "La informática es el futuro"

Figura 1: ¿Me ayudas a buscar a mi profesor de informática? Se llamaba Teo.

Como os contaba en ese artículo que llamé "Una aventura de switches, acumuladores y contadores", yo me lo creí y me apunté a programación con es temprana edad. Y allí me encontré con mi  profesor a Teo, del que hace siete años os hablaba de esta forma que os dejo aquí:

"Allí tuve a Teo, un profesor curioso que venía todos los días a clase con un libro de lectura y nos contaba historias, no solo de informática, sino también de ciencia ficción. Entre otras cosas, en los descansos, nos contaba cosas de "IT" de Stephen King - uno de los libros que trajo muchas veces mientras se lo terminaba -, "Caballo de Troya" de J.J. Benitez y de RoboCop, una película que acabaríamos yendo a ver a su estreno en el Cine Capitol de Gran Vía y que me llevaría a conocer el universo Paul Verhoeven en todo su esplendor. Todo eso cuando yo era un niño.
 
Creo que mi paso por esa academia con 12 años me marcó mucho más de lo que yo iba a imaginar en mi vida. Allí comencé programando en BASIC, en ordenadores de los 80, donde había cosas como el Dragon Computer con el que tiré mis primeros programas, o equipos Sinclair, Atari, y por supuesto los famosos AMSTRAD CPC 464. Daría oro por volver atrás en el tiempo y entrar en aquella sala llena de joyas de la historia de la informática hoy en día.

Teo, mi profesor, me sentó conmigo, y se dedicó a explicarme los conceptos básicos de la programación iterativa donde todo se resolvía con tres estructuras básicas de control de flujo: La secuencia, la repetición y la alternativa. Todo era sencillo y divertido y bastaba con poner números de orden a las instrucciones, hacer bucles y aplicar sentencias IF-THEN-ELSE. Por supuesto, teníamos la posibilidad de romper el flujo con las instrucciones GOTO - algo que como cuentan en Microhistorias quedaría muy mal visto por los desarrolladores - y por eso nos recomendaba hacer uso de subrutinas y utilizar GOSUB y RETURN o de las llamadas a funciones."

Teo fue mi primer profesor, el que me dio la bienvenida a la informática, justo un poco antes de que conociera a Rodol, mi amigo, socio y compañeros de aventuras en la informática durante años. Pero fue gracias a Teo que mi primera experiencia con la programación y los ordenadores fuera buena y siguiera enganchado a la tecnología. Tal vez, si me hubiera tocado un mal profesor con esos doce años hubiera generado rechazo a la tecnología y hubiera acabado de pintor, de barnizador o haciendo cualquier otra cosa, que es lo que había en mi barrio. Elegir profesión en la construcción. 

Pero Teo me transmitió buenas cosas. A él le gustaba la tecnología y la ciencia ficción, leer y programar, y siendo tan joven yo aprendí sin querer esas cosas de él. Así que seguí con esa senda. Luego Teo se fue al cabo de un par de años o así, y yo seguí con Beatriz, una profesora que tuve también durante varios años y con la que tuve buena relación siempre. Pero nunca más supe de Teo, y me gustaría poder volverlo a ver y charlar con él un rato.

Así que si conoces a algún Teo que haya vivido en Madrid, que diera clases de informática en una academia de barrio en Móstoles llamada RUS y que tenga alrededor de 50 años años, delgado y con gafas lo recuerdo, ayúdame a buscarlo. Y si no, a ver si hay suerte y la corriente de Internet lleva este mensaje a alguien que sepa quién es Teo y dónde está.

Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)

viernes, mayo 04, 2018

¿Sabes quién es el culpable de que no tengamos claro cuál fue el primer ordenador personal de la historia? Steve Jobs, pero ésta es toda la historia (Primera Parte)

La controversia de quién fue realmente el primero en diseñar y fabricar el ordenador personal siempre es un debate que está a la orden del día y existen varios candidatos a ese puesto de honor. Pero como la historia la escriben los vencedores, lo cierto es que tenemos una distorsión absoluta de la realidad. De hecho, el culpable es nada más y nada menos que Steve Jobs. Y todo comienza con un artículo escrito en 1980 en el Wall Street Journal.

Figura 1: ¿Sabes quién es el culpable de que no tengamos claro cuál fue el primer
ordenador personal de la historia? Steve Jobs, pero esta es toda la historia
(Primera Parte)

En ese artículo publicado el 13 de agosto de 1980, en el titular aparece con letras grandes “Cuando nosotros inventamos el ordenador personal, creamos un nuevo tipo de bicicleta” (haciendo un símil entre lo común que serán los ordenadores para todo el mundo y que cualquiera los podrá utilizar).

El artículo que confunde la historia

Pero, además, en letra un poco más pequeña, aparecía el texto “Steve Jobs inventó el primer ordenador en 1976 con su socio Steve Wozniak …”, así, sin despeinarse. No nos sorprende la frase ya que conocemos la actitud un poco egoísta de Jobs desde que engañó a Wozniak pagándole menos dinero del que le habían ofrecido a él en Atari para crear un prototipo del juego Breakout, cuando Wozniak fue quién lo fabricó desde cero.

Figura 2: Artículo del WSJ de 1980 con la entrevista a Steve Jobs

Dejando de lado que todo el diseño e implementación del Apple I y el Apple II fue tarea casi exclusiva de Steve Wozniak, y que el periodista parece que no contrastó (¿o sí?) esta información, este artículo apareció justo en el momento adecuado. En 1980 Apple estaba arrasando en todo el mundo con su fantástico Apple II por lo que eran el claro ganador en la carrera por ser el primero en poner un ordenador en la mesa de todos los hogares.

En aquella época no había Internet por lo que el artículo caló mucho más en el gran público debido a la importancia del medio que lo publicó. Pero además este no fue el único, durante la promoción del Apple II y más tarde el Macintosh de Steve Jobs forjó la leyenda de ser el creador del ordenador personal. Y así es como hoy día aún pensamos que Apple (e incluso hay personas que de verdad creen que fue Steve Jobs) inventó el ordenador personal, pero ahora veremos que esto no es así del todo y es más complejo de lo que parece.

Altair 880

Siempre que se habla de cual fue el primer ordenador doméstico aparece a la palestra el famoso Altair 8800. Este kit creado por la empresa MITS apareció en el mercado en enero de 1975. Había que soldar (aunque se vendía también ya montado por un poco más de dólares) los componentes y luego no tenía ni teclado ni ratón. Los datos se introducían en bloques en código binario para configurar las instrucciones código máquina utilizando varios interruptores.

El microprocesador que integraba era el mítico Intel 8080 de 8 bits, y el Altair tenía como configuración base 64KB de memoria RAM y 16KB de ROM y se ejecutaba a una velocidad de reloj de 2MHz.

Figura 3: Altair 8800

Pero lo que lo hizo más popular (aparte de su precio como ahora veremos) fueron los dos puertos de entrada y salida que tenía lo que le permitía conectar cualquier tipo de dispositivo externo. Es más, casi podríamos considerarlo el primer dispositivo IoT doméstico.

El precio era asequible para la época, unos 439$ sin montar y otros 621$ ya montado. Además, Bill Gates desarrolló el programa BASIC para este ordenador dándole aún más popularidad. Como curiosidad, el nombre Altair lo puso la hija de Les Solomon, uno de los editores de la revista Popular Electronics, que le dijo “¿Por qué no le llamas Altair? Es donde irá esta noche la nave Enterprise (Star Trek)”.

Figura 4: Portada de la revista Popular Electronics con el Altair 8800

No vamos a quitarle mérito al Altair ya que fue una gran ayuda para impulsar el concepto de los ordenadores dentro de los hogares. Pero no era un ordenador del todo revolucionario teniendo en cuenta otras máquinas que ya estaban a la venta por esa misma época o incluso antes que tenían mejores características técnicas.

Datapoint

Y el mejor ejemplo lo tenemos en el ordenador creado por la empresa Datapoint. Esta compañía fue creada en julio de 1968 por un par de ingenieros tejanos que trabajaban para la NASA. En 1970 sacaron al mercado el que posiblemente sea el primer ordenador personal de la historia y el abuelo de todos los que vendrían después: el Datapoint 2200.

Este ordenador incluía monitor, teclado e incluso impresora. Pero lo revolucionario estaba en su interior, en su diseño electrónico. Y es justo en este punto donde Datapoint se cruza con otro grande de la industria, que hasta ese momento no era más que una startup, nada menos que la empresa Intel.

El ordenador Datapoint 2200 se basaba principalmente en registros de desplazamientos creados con biestables y por lo tanto necesitaban encontrar una empresa que fabricara los chips que pudieran contener estos elementos usando un diseño propio. Hay que tener en cuenta que por aquella época no existía el microprocesador como tal ni los chips de memoria RAM (ambos llegaron dos años después).

Así que se pusieron en contacto con esa pequeña empresa llamada Intel para ver si les podrían fabricar los chips que necesitaban. Pero además le entregaron un diseño un tanto revolucionario el cual incluía en un solo chip todos los registros de desplazamiento además de conceptos de diseño como pila, saltos condicionales, operaciones lógicas y aritméticas … sí, un microprocesador en toda regla, dos años antes de salir al mercado (casualmente, fabricado por Intel).

Figura 5: Datapoint 2200

Intel comenzó a crear un prototipo de este microprocesador que finalmente tendría el nombre de 1201 pero tuvieron muchos problemas para implementarlo ya que la tecnología utilizada, PMOS, aún no estaba perfeccionada del todo. Los tiempos de entrega se retrasaban una y otra vez hasta que finalmente Datapoint optó por no esperar más. Directamente fabricaron ellos su propio procesador utilizando chips tipo TTL, 120 en total. Y es aquí donde aparece una gran proeza de la ingeniería ya que los ingenieros Poor, Schmidt y Pyle de Datapoint crearon una CPU desde cero sentando las bases de los futuros microprocesadores que aparecerían más adelante.

Pero ¿qué paso con Intel? Pues ellos antes de conocer a Datapoint estaban trabajando en una especie de microprocesador llamado 4004 aunque su diseño estaba orientado más bien para calculadoras (no permitía utilizar por ejemplo caracteres alfanuméricos).

Figura 6: El chip Intel 4004


Cuando desde Datapoint ya no contactaron con ellos para que fabricaran el microprocesador que les habían solicitado, ellos siguieron adelante con el proyecto utilizando parte de las ideas aportadas por los ingenieros de Datapoint y finalmente fabricaron el que sería el padre de todos los microprocesadores: el Intel 8008. El siguiente modelo de este chip fue el Intel 8080 ¿os suena el nombre? pues sí, es el mismo que más tarde utilizaría la empresa MITS para fabricar el Altair.

Por lo tanto, la empresa Datapoint no sólo creó el primer ordenador, sino que también influenciaron aportando las bases de lo que sería el microprocesador que luego daría potencia al resto de ordenadores de la época. Como curiosidad, para que veáis el gran diseño creado por los ingenieros de Datapoint a la hora de crear su microprocesador, este era compatible a nivel de código hasta el Intel 8080.

Figura 7: Placa "procesador" del Datapoint 2200, base del futuro 8080 de Intel

Es decir, los programas para el 8080 se podían ejecutar en el Datapoint 2200 y los modelos superiores. Pero ¿cómo pudo Intelcopiar” el diseño de Datapoint en sus futuros microprocesadores? Realmente no fue una copia sino un acuerdo que mezclaba ideas de ambas compañías. Intel ya tenía experiencia creando el 4004 y Datapoint contribuyó añadiendo componentes de diseño como el concepto de registro y otros que hemos comentando antes. En este enlace tienes más datos sobre Datapoint y su diseño.

Pero aún queda más que decir en esta historia, que veremos en la segunda parte....

Autor: Fran Ramírez, (@cyberhadesblog) miembro del equipo de Crazy Ideas en CDO en Telefónica, autor del libro "Microhistorias: Anécdotas y Curiosidades de la historia de la informática (y los hackers)", del libro "Docker: SecDevOps" y del blog Cyberhades.

martes, noviembre 19, 2013

Crear hackers "from the scratch" o programando tortugas

Yo comencé a programar con doce años de edad, con el lenguaje BASIC. Como ya os he contado fue para mi toda una aventura de switches, acumuladores y contadores que me cambió la vida para siempre. En aquel entonces la gente no se preocupaba mucho de que los niños aprendieran a programar, pero lo cierto es que a mi me vino genial para ordenarme la cabeza. Así como el inglés lo aprendí de bastante mayor, y me tengo que concentrar mucho para poder sacar con cierta lógica las palabras, pensar en resolver problemas programando me resulta natural, porque lo aprendí desde niño y luego lo pude ir depurando en la Universidad.

Figura 1: Un ejemplo de código en BASIC

Sin saber que al final las cosas en la vida acaban conectándose, en mis años ya de profesional, acabé conociendo un día a Radia Perlman, con la que pasé un buen rato charlando y acabamos malignizados para siempre en esta foto que guardo con mucho cariño.

Figura 2: Con la Dra. Radia Perlman

Radia, además de ser conocida como la Madre de Internet por ser la creadora del Spanning-Tree Protocol, también fue la creadora de TORTIS (Toddler's Own Recursive Turtle Interpreter System), un sistema que permitía a niños preescolares aprender a programar mediante una serie de botones que dirigían los movimientos de una tortuga.

Figura 3: Tarjetas de programación para TORTIS

En ese trabajo inicial, Radia Perlman utilizaba en TORTIS un "artilugio" para que los niños programaran con una máquina en la que iban poniendo las tarjetas de lo que querían que hiciera la tortuga. Eso le permitía que el preescolar aprendiera a mandar a la tortuga hacer movimientos iterativos, alternativos o repetitivos. Bases para aprender los conceptos de la programación.

Figura 4: Niños programando con TORTIS

Cuando conocí este trabajo de Radia Perlman, yo no sabía que el LOGO, el lenguaje de programación por el que se aprende a hacer dibujos por medio de una tortuga, procedía de TORTIS. Yo ya había aprendido a programar en BASIC cuando LOGO llegó a mi vida, por lo que me parecía un poco raro todo él en sí, pero lo cierto es que lo usé e hice los trabajos de dibujo que me pidieron.

LOGO se basaba en unos comandos bastante sencillos, que permiten desplazar a la tortuga siguiendo diferentes trazadas y pintar o no pintar. Eso deja en manos de los developers preescolares la capacidad de pintar todo lo que quieran. En este vídeo se puede ver cómo los programas hechos en el intérprete, pueden ser llevados directamente al papel con la tortuga amarilla de LOGO.

Figura 5: La tortuga amarilla de LOGO dibujando lo programado

El LOGO volvió otra vez a mi vida cuando en un evento sobre emprendimiento me encontré con Pilar García de la empresa Exalta, como moderadora. A parte de intercambiar impresiones sobre lo que nos atenía, compartimos otras cosas de experiencias personales, y la suya tenía que ver con que cuando montaron su empresa, se dedicaron a hacer compiladores de LOGO. De hecho, el LOGO cuenta con un juego de instrucciones en Español, para poder facilitar el aprendizaje por igual a las jóvenes mentes de todo el mundo.

Figura 6: Instrucciones de LOGO en inglés y español sacadas de Wikipedia

La programación de la tortuga se parece mucho a la programación de robots, donde los jóvenes que ya dispongan de algunas habilidades en la programación pueden ver una evolución de hacer programas que permiten pintar a programas que permiten un universo de posibilidades aún mayor con un robot.

Hoy en día, para enseñar a programar a los jóvenes que ya están en el colegio, existen lenguajes de programación que han sabido sacar provecho de las ventajas multimedia que ofrecen las nuevas tecnologías. Quizá el más popular es Scratch, del MIT, un lenguaje que permite definir scripts de acciones - como moverse, repetir acciones, etcétera - pero utilizando elementos visuales muy atractivos para los más jóvenes, pero con una gran potencia.

Figura 7: Un Tetris programado en Scratch

No es el único lenguaje que sigue esos principios, si realizáis alguna búsqueda por Internet, encontraréis entornos como ToonTalk - basado en los mismos principios que Scratch - o el lenguaje de programación de juegos que Microsoft distribuye dentro de sus programas educativos, el Kodu Game Lab.

Figura 8: Entorno de programación en ToonTalk

Con Kodu Game Lab se pueden hacer juegos fantásticos mediante elementos de programación visual que pueden ser muy sencillos, o que pueden ser muy complejos dependiendo del nivel del creador de los programas. Ya os dejé algún vídeo de juegos hechos con Kodu, pero aquí os dejo un pequeño tutorial que muestra cómo es la forma en la que se programa en este sistema

Figura 9: Tutorial de programación en Kodu Game Studio


En el objetivo de ayudar con el programa Talentum a mejorar el entorno tecnológico del país, se ha incorporado una nueva iniciativa de educación tecnológica para niños y niñas en las propias tiendas de Movistar. Allí los tutores, también jóvenes procedentes del programa Talentum Startups, están enseñando a programar en Scratch y a programar Robots en cursos gratuitos que se dan a los niños y niñas que se apuntan. Todo a través de lo que han denominado Talentum Schools.

No obstante, para enseñar a programar en Scratch a los más jóvenes, para programar en Kodu Game Labs o incluso en LOGO, no necesitas mucho más que un sistema informático de gama media en casa.... y pasar tiempo con ellos.

Si puedes apuntar a los niños a cursos de Talentum Schools estaría genial, pero si eres docente en algún centro en el que hay niños entre 8 y 13 años, tal vez sea una buena opción proponer actividades de programación similares - ya sea como prácticas de asignaturas o como actividades extraescolares o culturales -.

Figura 10: Cursos de Talentum Scools para programar en Scratch

Lo mismo para ti, si eres padre, padrino, hermano o tío y sabes programar. Aprender estos lenguajes no te costará mucho, y podrás no solo pasar tiempo con tu gente, sino que además estarás ayudándole un montón para el futuro. Si no tienes tiempo, no eres docente, o no sabes programar, y te has quedado sin plazas de Talentum Schools esto es fácil. Busca a cualquier estudiante de informática que le guste la programación y la ciencia, y contrátale clases particulares para que enseñe a tu hijo a programar en Scratch o Kodu Game Labs o en el mismo LOGO. Seguro que lo hace genial.

Y sobre todo, que no te preocupe la edad, que de 8 años en adelante es un buen momento para que los niños aprendan a hacer cosas con las computadoras y descubran que pueden crear lo que ellos quieran si saben cómo programarlo. Conviértelo en un hacker ...from the scratch.

Saludos Malignos!

Entrada destacada

Hacking IA: Jailbreak, Prompt Injection, Hallucinations & Unalignment. Nuestro nuevo libro en 0xWord

Pocas veces me ha hecho tanta ilusión que saliera un nuevo libro en 0xWord como con este libro de " Hacking IA: Jailbreak, Prompt Inje...

Entradas populares