jueves, 10 de enero de 2019

FORTRAN

He encontrado esta joya de 1978 en una tienda de libros usados. El FORTRAN era, y sigue siendo, una disciplina básica en ingeniería. Lo mas divertido en 1978 era codificar y perforar las tarjetas para procesarlas en un Sperry UNIVAC. Si alguien sigue interesado en programas en FORTRAN aqui encontrara un compilador online perfecto para el caso.... eso si, no necesitara nunca mas las tarjetas perforadas.






(de Wikipedia)

A finales de 1953, John W. Backus sometió una propuesta a sus superiores en IBM para desarrollar una alternativa más práctica al lenguaje ensamblador para programar el computador central IBM 704. El histórico equipo FORTRAN de Backus consistió en los programadores Richard Goldberg, Sheldon F. Best, Harlan Herrick, Peter Sheridan, Roy Nutt, Robert Nelson, Irving Ziller, Lois Haibt y David Sayre.5
A mediados de 1954 fue terminada una especificación del borrador para el IBM Mathematical Formula Translating System. El primer manual de FORTRAN apareció en octubre de 1956, porque los clientes eran reacios a usar un lenguaje de programación de alto nivel a menos que su compilador pudiera generar código cuyo desempeño fuera comparable al de un código hecho a mano en lenguaje ensamblador.
Mientras que la comunidad era escéptica en que este nuevo lenguaje, este redujo en 20 veces el número de sentencias de programación necesarias para operar una máquina, y rápidamente ganó aceptación. Durante una entrevista en 1979 con Think, la revista de los empleados de IBM, el creador John Backus, dijo: "Mucho de mi trabajo surgió por ser perezoso. No me gustaba escribir programas y por eso, cuando estaba trabajando en el IBM 701 escribiendo programas para computar trayectorias de misiles, comencé a trabajar en un sistema de programación para hacer más fácil escribir programas".6
El lenguaje fue ampliamente adoptado por los científicos para escribir programas numéricamente intensivos, que incentivó a los escritores de compiladores a producir compiladores que pudieran generar un código más rápido y más eficiente. La inclusión en el lenguaje de un tipo de datos y de la aritmética de números complejos amplió la gama de aplicaciones para las cuales el lenguaje se adaptaba especialmente e hizo al FORTRAN especialmente adecuado para aplicaciones técnicas tales como la ingeniería eléctrica.
Hacia 1960, las versiones de FORTRAN estaban disponibles para los computadores IBM 7096501620, y 7090. La cada vez mayor popularidad del FORTRAN estimuló significativamente a fabricantes de computadores de la competencia a proporcionar compiladores FORTRAN para sus máquinas, así que allá por 1963 existían más de 40 compiladores FORTRAN. Por estas razones, el FORTRAN es considerado el primer lenguaje de programación ampliamente usado soportado a través de una variedad de arquitecturas de computador.
El desarrollo del FORTRAN fue paralelo a la temprana evolución de la tecnología del compilador. De hecho, muchos avances en la teoría y el diseño de compiladores fueron motivados específicamente por la necesidad de generar código eficiente para los programas en FORTRAN.

Compilador FORTRAN on line: https://rextester.com/l/fortran_online_compiler?fbclid=IwAR1lqqHcMw-84KBBCwG457EzTzB0RQp6wD8PbJ_7TfE1fhS5XZ2YAK8wd1Y

jueves, 4 de enero de 2018

The Recreated ZX Spectrum

Un producto de Elite Systems que ha sido muy criticado pero que sin embargo cumple con creces las expectativas de muchos aficionados a la retro informatica.


La critica mas dura es que se trata simplemente de un teclado BT. En realidad es así pero se trata de algo mas sofisticado que de un simple teclado.


El sistema posee dos capas, la capa A esta diseñada para juegos y la capa B, esa si, es un teclado BT que puedes usar como cualquier otro teclado con tu tablet o telefono móvil.


El sistema usa un emulador muy bien pensado de Elite Systems que opera, a modo de CPU externa, desde qualquier dispositivo móvil Android o IOS. El "teclado" y todo el conjunto es identico a un ZX Spectrum 48K.


En la capa A, con el emulador de Elite Systems, puedes jugar y escribir programas en BASIC que puedes guardar y cargar de nuevo.


Pero ademas, puedes usar el "teclado" (fiel reproducción de un Spectrum) con otros emuladores como FUSE o RVM para Mac o PC y con Spectacol (FUSE) para Android.



domingo, 1 de junio de 2014

Programas BASIC en una linea de código

El software esta profundamente entretejido en la vida contemporánea. Mucho se ha escrito sobre el software desde el punto de vista técnico pero poco sobre los aspectos culturales y artísticos del mismo.  La serie de libros de Software Studies, publicada por la MIT Press, tiene como objetivo publicar los mejores trabajos de nuevo en un campo crítico y experimental que es a la vez cultural y técnicamente leer y escribir, lo que refleja la realidad de la cultura del software de hoy.

El código informático no es meramente funcional. El código es un tipo peculiar de texto, escrito, mantenido y modificado por los programadores para hacer que una máquina funcione. Se trata de un texto, sin embargo, con muchas de las propiedades de los documentos más familiares. El código no es puramente abstracto y matemático; tiene dimensiones sociales, políticas y estéticas significativas. La manera en la que el código se conecta a la cultura, que afecta y está influenciado por él, se puede rastrear mediante el examen de los detalles de los programas por la lectura del código en sí con atención.


MIT Press link

10 PRINT CHR$(205.5+RND(1));:GOTO  10

10 PRINT CHR$(181+(INT(RND(l)+.5)*3));:GOTO 10

Se trata pues de un trabajo interesante para el cual puedes volver a usar tu viejo ordenador domestico y pasártelo en grande. 


viernes, 23 de mayo de 2014

SIMULACIONES POR EL METODO MONTE CARLO Y GENERADORES DE NUMEROS PSEUDO-ALEATORIOS

El Método de Montecarlo es un método probabilístico, en contraposición de los métodos determinísticos ya que incorpora múltiples simulaciones de resultados con la variabilidad de elementos individuales para producir una distribución de resultados potenciales. Para cada simulación, la herramienta de simulación Montecarlo escoge al azar un valor para cada evento de riesgo dentro de su rango de valores posibles, pero de acuerdo con la probabilidad de ocurrencia de cada uno de éstos. Luego se combinan los valores escogidos al azar para generar un solo resultado para una simulación. Este proceso se repite un cierto número de veces (típicamente más de 1,000 iteraciones), y se produce un rango de resultados potenciales igualmente probables. 


La invención del método de Monte Carlo se asigna a Stanislaw Ulam y a John von Neumann. Ulam ha explicado cómo se le ocurrió la idea mientras jugaba un solitario durante una enfermedad en 1946. Advirtió que resulta mucho más simple tener una idea del resultado general del solitario haciendo pruebas múltiples con las cartas y contando las proporciones de los resultados que computar todas las posibilidades de combinación formalmente. Se le ocurrió que esta misma observación debía aplicarse a su trabajo de Los Álamos sobre difusión de neutrones, para la cual resulta prácticamente imposible solucionar las ecuaciones íntegro-diferenciales que gobiernan la dispersión, la absorción y la fisión. “La idea consistía en probar con experimentos mentales las miles de posibilidades, y en cada etapa, determinar por casualidad, por un número aleatorio distribuido según las probabilidades, qué sucedería y totalizar todas las posibilidades y tener una idea de la conducta del proceso físico”.

Stalislaw Ulan, Richard Feynman y Jonh von Newman en los Alamos
Durante una de las visitas de von Neumann a Los Álamos en 1946, Ulam le mencionó el método. Después de cierto escepticismo inicial, von Neumann se entusiasmó con la idea y pronto comenzó a desarrollar sus posibilidades en un procedimiento sistemático. Ulam expresó que Monte Carlo “comenzó a tener forma concreta y empezó a desarrollarse con todas sus fallas de teoría rudimentaria después de que se lo propuse a Johnny”.
A principios de 1947 Von Neumann envió una carta a Richtmyer a Los Álamos en la que expuso de modo influyente tal vez el primer informe por escrito del método de Monte Carlo. Su carta fue encuadernada junto con la respuesta de Richtmyer como un informe de Los Álamos y distribuida entre los miembros del laboratorio. Von Neumann sugería aplicar el método para rastrear la generación isótropa de neutrones desde una composición variable de material activo a lo largo del radio de una esfera. Sostenía que el problema era adecuado para el ENIAC y estimaba que llevaría 5 horas calcular la acción de 100 neutrones a través de un curso de 100 colisiones cada uno.

http://en.wikipedia.org/wiki/Manhattan_Project

¿Quién usa la simulación Monte Carlo?
Muchas empresas utilizan la simulación de Monte Carlo como una herramienta importante para la toma de decisiones. He aquí algunos ejemplos .
General Motors, Procter and Gamble y Eli Lilly usan la simulación para estimar tanto la rentabilidad media y el grado de riesgo de nuevos productos. En GM , esta información es utilizada por el CEO Rick Waggoner para determinar los productos que llegan al mercado .
GM utiliza la simulación para actividades tales como la previsión de los ingresos netos de la corporación , la predicción de los costes de estructura y los costos de compra , la determinación de su susceptibilidad a diferentes tipos de riesgo (por ejemplo, cambios en las tasas de interés y las fluctuaciones del tipo de cambio).
Lilly utiliza la simulación para determinar la capacidad óptima de la planta que debe ser construida para cada fármaco.
Firmas de Wall Street utilizan la simulación de precios derivados financieros complejos y determinar el valor en riesgo (VAR) de sus carteras de inversión.


Los cuatro pasos del método de Monte Carlo :Dependiendo del número de factores implicados, las simulaciones pueden ser muy complejas. Pero en un nivel básico, todas las simulaciones de Monte Carlo tienen cuatro sencillos pasos.

1 Identificar la función de transferencia:
Para hacer una simulación de Monte Carlo, se necesita un modelo cuantitativo de la actividad empresarial, plan o proceso que desea explorar. La expresión matemática de su proceso se llama la “función de transferencia." Esta puede ser una función de ingeniería o fórmula de negocio, o puede basarse en un modelo creado a partir de un experimento diseñado (DOE) o a partir de análisis de regresión.

Cualquier sistema físico puede ser representado como un conjunto de entradas y salidas. Ante una excitación en la entrada existirá una reacción de la salida.
2 Definir los parámetros de entrada:
Para cada factor en la ecuación de transferencia, determinar cómo se distribuyen los datos. Algunas entradas pueden seguir una distribución normal, mientras que otros siguen una distribución triangular o uniforme. A continuación, deberá determinar la distribución de los parámetros para cada entrada. Por ejemplo, tendremos que especificar la media y la desviación estándar para las entradas que siguen una distribución normal.

3. Crear datos aleatorios: 
Para hacer la simulación válida, es necesario crear un conjunto muy grande de datos aleatorios para cada entrada,  del orden de 100 000 datos. Estos puntos de datos aleatorios simulan los valores que se vería a lo largo de un largo período de tiempo para cada entrada.



4. Simular y analizar el proceso de salida:
Con la simulación de datos en su lugar, utilizaremos la ecuación de transferencia para calcular los resultados simulados. La ejecución de una gran cantidad de datos de entrada simuladas a través del modelo nos dará una indicación fiable de lo que será el proceso de salida con el tiempo, dada la variación esperada en las entradas.



Un generador de números aleatorios es un dispositivo informático o físico diseñado para producir secuencias de números sin un orden aparente. Los algoritmos para la generación de valores uniformemente distribuidos están presentes en todas las calculadoras y lenguajes de programación, y suelen estar basados en congruencias numéricas del tipo:

x_{n+1} \equiv (ax_n+c)\pmod m

El éxito de este tipo de generadores de valores de una variable aleatoria depende de la elección de los cuatro parámetros que intervienen inicialmente en la expresión anterior:

El valor inicial o semilla: x_0
La constante multiplicativa: a
La constante aditiva: c
El número m respecto al cual se calculan los restos

Estos cuatro valores deben ser números enteros no negativos y que cumplan la siguiente condición: x_0 , a , c < m.

La mayor parte de los generadores de números aleatorios son, en realidad, pseudoaleatorios; se calcula (o introduce internamente) un valor x0, que llamaremos semilla, y, a partir de él, se van generando x1, x2, x3, ... Siempre que se parta de la misma semilla, se obtendrá la misma secuencia de valores.

EL MÉTODO MERSENNE TWISTER O MT19937 Y MT19937-64: Este es un algoritmo propuesto en 1997 por Makoto Matsumoto y Takuji Nishimura. Este generador de números pseudoaleatorios se ensambla muy bien a cualquier aplicación creada en lenguaje de programación C, y tiene dos versiones: una conocida como mt19937 que se emplea en aplicaciones informáticas que trabajan con 32 bits, y otra versión conocida como mt19937−64 que se emplea en aplicaciones que funcionan con 64 bits.
El algoritmo para operar no utiliza multiplicaciones ni divisiones, sino operaciones aritméticas muy sencillas (sumas y restas), que rápidamente son calculadas por cualquier equipo de cómputo moderno. Para lograr sus resultados el Mersenne Twister emplea 4.357 números iniciales (números−semilla), que son organizados dentro de una matriz lineal con un finito campo binario para dar arranque al algoritmo, generando así números pseudoaleatorios debidamente equidistribuidos.


CRYPTOGENRANDOM: Excel utiliza un algoritmo especialmente diseñado para el sistema operativo Windows conocido como «CryptGenRandom», el cual está presente no sólo en esta función de Excel sino también en el funcionamiento de otras utilidades y accesorios del sistema operativo Windows. Se sabe que el CryptGenRandom en verdad emplea un algoritmo muy sencillo para funcionar, pero la verdadera incertidumbre sobre los resultados pseudoaleatorios que generará se basa en que en cada ocasión emplea como números−semilla la medición de ciertos inputs introducidos por el usuario desde el teclado o desde el mouse, es decir, se trata de un Physical RNG que toma sus valores iniciales de la medición de un fenómeno físico muy fluctuante basado en la conducta del usuario.



BULL MOUNTAIN: es el nombre en clave de la nueva tecnología de generación de números aleatorios de Intel. ¿Por qué es tan importante? Los números aleatorios son necesarios para el cifrado eficaz y generadores de números aleatorios débiles son el talón de Aquiles de la seguridad de los datos.
El cifrado es un elemento crucial de la seguridad informática y de red. Los datos se cifran para evitar que se accede o vistos por usuarios no autorizados. El tráfico entre un PC y un sitio web se codifica para garantizar la información sensible como contraseñas o información de tarjetas de crédito no son interceptados en tránsito.
El error fatal de cifrado es que se basa en el azar para generar las claves de cifrado fuertes, pero las computadoras no son al azar. Los unos y ceros que rebotan alrededor del PC y de Internet son fundamentalmente predecibles. 



Conclusiónes: la actual potencia de cómputo permite que incluso los algoritmos más complejos empleados en los randomizer funcionen a velocidades inimaginables dentro de un PC, pero sin que los resultados pseudoaleatorios generados se vuelvan predecibles. Basta tener en cuenta que un PC con un procesador Multi-Core que funcione a 3 GHz puede procesar cerca de diez mil millones de operaciones de punto flotante por segundo (10 Gigaflops), y si el algoritmo de un modesto randomizer está diseñado para tener un Loop o periodo que se reinicia y se repite después de que han aparecido 1020 resultados pseudoaleatorios, entonces se necesita que ese PC esté funcionando 24 horas al día durante 317 años continuos para poder completar el Loop repetitivo y volver a reiniciarlo.

Excel, al tener implementada la función CryptGenRandom, parece ser la mejor opción disponible para estructurar y ejecutar simulaciones de Monte Carlo. Es una opción barata y altamente fiable plagada de funciones estadísticas, matemáticas y de ingeniería. 

La parte mas compleja, y la que requieren profundos conocimientos específicos, es el describir bien las funciones de transferencia que definen con la mayor precisión posible a nuestro modelo. El resto es relativamente simple y accesible.

viernes, 31 de enero de 2014

Lunar Lander - Jupiter lander - Soft Landing Games


Fueron de los primeros juegos de simulación realista. Atari desarrollo una impresionante máquina de arcade y posteriormente estuvo disponible en múltiples plataformas de Atari. El buque insignia de Commodore era el Jupiter Lander, basado en los mismos principios y con una estética un poco mas cuidada.


Estos juegos se basan en controlar la velocidad de descenso de la nave que es atraída por la gravedad del planeta y aplicar una serie de impulsos de cohete para neutralizar y reducir la velocidad de descenso a menos de 3 o 5 pies por segundo.
Las ecuaciones son:

H=Ho+Vo t +1/2 at^2
V=Vo+at
V2=Vo^2 + 2aH
donde H es la altura, V es la velocidad, a es la aceleración, t es el tiempo, Vo es la velocidad inicial, Ho es la altura inicial, Fo es el combustible inicial F es el combustible que se ha consumido y es el combustible remanente.










martes, 3 de diciembre de 2013

MUSEO VIRTUAL DE ORDENADORES Y CALCULADORAS CLÁSICAS - VINTAGE TECHNOLOGIES- 8/16 BIT CLASSIC COMPUTERS

Este museo virtual esta organizado en la página de Facebook de  VINTAGE TECHNOLOGIES en el encontrareis fotografias de ordenadores y calculadoras clásicas de los setenta a los noventa. El museo no necesita registro, simplemente, si te gusta, dale un "Me Gusta" y ya esta.

En las salas virtuales encontrareis fotografias, especificaciones, esquemas y diagramas, publicidad de la epoca y enlaces para descargarte los mejores emuladores disponibles.

Aqui teneis las entradas a unas cuantas salas:


Haz click en:
Ordenadores domesticos TANDY TRS80



Haz click en: Commodore 64



Haz click en: Commodore Business Machines PET 2001



Haz click en: Sinclair QL (Quantum Leap)



Haz click en: Spectrum +2



Haz click en: IBM PS/2



Haz click en: El verdadero origen de Internet

Hay muchas mas salas virtuales con información interesante, os animo a que las visiteis y hagais comentarios y contribuciones.