domingo, 30 de noviembre de 2014

epub


Construya un libro digital con EPUB



¿Necesita distribuir documentos, crear un eBook o simplemente archivar sus publicaciones de blog favoritas? EPUB es una especificación abierta para libros digitales basada en tecnologías conocidas como XML, CSS, XHTML y archivos EPUB que pueden leerse en dispositivos e-ink portátiles, teléfonos móviles y computadoras de escritorio. Este tutorial explica en detalles el formato EPUB, demuestra la validación de EPUB utilizando la tecnología Java y avanza paso a paso a través de la automatización de la creación de EPUB usando DocBook y Python.

05 de febrero de 2009 - Como seguimiento a los comentarios de lectores, el autor revisó el contenido del Listado 3 y actualizó el archivo epub-raw-files.zip (ver Descargas).

27 de abril de 2010 - Actualizó el archivo epub-raw-files.zip (ver Descargas).

03 de junio de 2010 - A solicitud del autor, revisó el contenido de los Listados 3 y 8. También actualizó el archivo epub-raw-files.zip (ver Descargas).

11 de enero de 2011 - A solicitud del autor, revisó el contenido del Listado 5. Cambió la segunda línea del código, de ;a .

12 de julio de 2011 - Como seguimiento a los comentarios de lectores, revisó el contenido delListado 14. Eliminó el carácter ` próximo al final de la primera línea del código de . El código revisado ahora se lee como: .


Recursos

Aprender

Obtener los productos y tecnologías

  • EpubCheck: EpubCheck de Adobe es una valiosa herramienta para la creación de EPUB. Descárguela y ejecútela como un programa autónomo, una aplicación web o como una biblioteca (se requiere Java versión 1.5 o posterior).
  • DocBook XSL: Descargue la última versión de las hojas de estilo para el procesamiento de DocBook en EPUB. El paquete DocBook XSL también incluye un script de Ruby para el procesamiento de un archivo EPUB completo, similar al script de Python que se ilustra en este tutorial.
  • lxml: Si no la tiene instalada actualmente, lxml es la más completa biblioteca XML disponible para Python. Para más información sobre lxml, consulte el artículo del autor High-performance XML parsing in Python with lxml (Liza Daly, developerWorks, octubre de 2008).
  • Adobe Digital Editions y Bookworm: Para probar EPUB, los e-readers que siguen más de cerca la especificación son ADE, una aplicación de escritorio entre plataformas, y Bookwork, el e-reader del autor basado en la web, que utiliza el navegador para la presentación de EPUB.
  • Software IBM de prueba para evaluación de producto: Desarrolle su próximo proyecto con software de evaluación de IBM, disponible para descarga directamente desde developerWorks, incluyendo herramientas de desarrollo de aplicaciones y productos middleware desde DB2®, Lotus®, Rational®, Tivoli® y WebSphere®.

Comentar

domingo, 23 de noviembre de 2014

TDD by Example con Python 3

Después de leer Test Driven Development- By Example (Addison-Wesley Signature Series) me quedo un sensación mixta de intranquilidad.

Seguí los ejemplos del libro, la primera parte usando C#; aunque el libro usa Java y la segunda parte con Python 3.1, haciendo algunas adecuaciones al código del libro. De hecho, primero lo intente con IronPython para seguir con el tema de .Net, pero con Python 3.1 y IDLE me fue más fácil hacer trabajar el código.

TDD es una técnica avanzada que en su expresión ortodoxa no es seguida ni por el mismo Beck. Es fácil caer en callejones sin salida y el desarrollador debe tener un plan top-down  implícito basado en su experiencia y dominio técnico. Por otro lado su aceptación y referencias de éxito son evidencia de su validez.

La primera parte del libro me pareció incompleta, llena de manitas de puerco, visión nocturna, multiplicaciones por el número que pensaste, y conjuros de magia negra.

la segunda parte es de más alto nivel de abstracción pero muestra claramente los fundamentos del marco de xUnit. El uso de Python aquí parece apropiado ya que permite desarrollar la estructura básica de xUnit de manera clara y directa.

En resumen, Test Driven Development- By Example es un buen libro para desarrolladores expertos.

Referencias

Test Driven Development- By Example (Addison-Wesley Signature Series)

http://dinsdale.python.org/dev/peps/pep-0008/

http://docs.python.org/3.1/tutorial/index.html

http://www.python.org/

http://www.swaroopch.com/notes/Python

http://www.wrox.com/WileyCDA/

http://www.wrox.com/WileyCDA/Section/Browse-Titles-for-Code-Downloads.id-105127.html

http://www.wrox.com/WileyCDA/WroxTitle/Python-Create-Modify-Reuse.productCd-0470259329,descCd-DOWNLOAD.html

http://pybites.blogspot.com/

YouTube 2014



Published on Dec 12, 2013
→ ᴄᴏɴsᴇᴊᴏs ʏᴏᴜᴛᴜʙᴇ: http://youtube-consejos.blogspot.mx
~ Gσσgℓє: https://plus.google.com/+alfredomatta...
► Aмιgσѕ Yσυ Tυвє: https://plus.google.com/communities/1...
▬ Sιgυємє єη Tωιттєr: http://twitter.com/alfredomatta
✓ Fαcєвσσк: https://www.facebook.com/pages/Alfred...



Copyright

tecnologías de baja observabilidad



Uploaded on May 25, 2011
El liderazgo de los Estados Unidos en las tecnologías de baja observabilidad, las llamadas 'stealth', se está erosionando más rápidamente de lo previsto, informan oficiales superiores del Ejército.
Leer más : http://actualidad.rt.com/economia/sec...
http://actualidad.rt.com/mas/envivo

lunes, 17 de noviembre de 2014

Cómo hacer un manual de usuario




Los manuales de usuario son guías escritas en formatos impresos (en papel) o en documentos electrónicos (PDF o XPS) que proporcionan instrucciones de cómo hacer o utilizar algo. Si bien se piensa generalmente en las “guías de usuario” como manuales para programas de computación, las guías de usuario pueden acompañar a computadoras y a otros dispositivos electrónicos, como televisores, estéreos, sistemas telefónicos, y reproductores MP3, y también pueden acompañar a electrodomésticos y equipos de jardinería. Los buenos manuales de usuario educan al usuario acerca de las características del producto mientras les enseñan cómo utilizar esas características de manera efectiva, y están dispuestos de tal forma para que puedan leerse y consultarse fácilmente. A continuación se presentan algunas cosas para tener en cuenta a la hora de crear un contenido efectivo y diseñar la disposición para un manual de usuario.

domingo, 9 de noviembre de 2014

desarrollo rápido de aplicaciones

El desarrollo rápido de aplicaciones
RAD (acrónimo en inglés de rapid application development) es un proceso de desarrollo de software, desarrollado inicialmente por James Maslow en 1980. El método comprende el desarrollo interactivo, la construcción de prototipos y el uso de utilidades CASE (Computer Aided Software Engineering). Tradicionalmente, el desarrollo rápido de aplicaciones tiende a englobar también la usabilidad, utilidad y la rapidez de ejecución.

Métodos rápidos

"El desarrollo de software de "métodos rápidos" (también denominado Modelo rápido o abreviado AG) reduce el tiempo del ciclo de vida del software (por lo tanto, acelera el desarrollo) al desarrollar, en primera instancia, una versión prototipo y después integrar la funcionalidad de manera iterativa para satisfacer los requisitos del cliente y controlar todo el ciclo de desarrollo. 

sábado, 8 de noviembre de 2014

como construir un Motor STIRLING Transparente



Published on Jun 11, 2013
Tutorial paso a paso para construir un motor stirling.
Desde la elección del primer componente hasta la puesta en marcha.
Como particularidad, el cilindro desplazador es transparente, y deja ver el pistón desplazador que está hecho con una lata de bebida energética.
Cilindro y pistón de fuerza están hechos en acero y teflón respectivamente.
El cigüeñal se hace con un radio de bicicleta
Los volantes de inercia son CD a los que se les adosa algo que pese.
Funciona con una llama, por ejemplo, con alcohol.

Mas sobre esto en el artículo de mi blog de 100ciaencasa:
http://100ciaencasa.blogspot.com.es/2...

domingo, 7 de septiembre de 2014

Ariane 5



El 4 de junio de 1996, el cohete Ariane 5 lanzado por la Agencia Espacial Europea estalló 38 segundos después de su despegue desde Kourou, en la Guayana Francesa. El Ariane explotó en su primer viaje, después de una década de desarrollo, y las pérdidas se estimaron en 500 millones de dólares.
Abajo te dejo un video de la explosión.
La causa de la explosión fue un error en el software. Un error no detectado por falta de control de la calidad del software crítico del cohete. Todo sucedió porque un número real de 64 bits (coma flotante) relacionado con la velocidad horizontal del cohete se convirtió en un entero de 16 bits. 
Ese mismo año, en 1996, a Alain Deutsch, del INRIA, le encargaron averiguar cuál fue el error. Y para ello se puso manos a la obra usando herrameintas que automatizaban el control de la calidad del softwarecrítico. Concretamente, usó un prototipo de analizador estático (IABC) de código fuente Ada, el cual había desarrollado para su doctorado.
Automatizando la evaluación de la calidad del software crítico, del código fuente, encontró el error,  y demostró la eficacia del análisis estático (os dejo un artículo para más detalles). Hoy en día el análisis estático del código es práctica usual, y prácticamente obligatoria, para controlar la calidad del software crítico, y del software embebido.
Fue a raíz de esta experiencia cuando se creó la empresa PolySpace, con el objetivo de comercializar la herramienta de evaluación de la calidad del software crítico que se utilizó para encontrar el fallo del Ariane. Y hoy las herramientas de PolySpace son unas de las más usadas para el control de la calidad del software crítico.

weebly


http://www.weebly.com/

Zachman y los seis honestos de Kipling

I keep six honest serving-men
(They taught me all I knew)
Their names are What and Why and When And How and Where and Who
Uno de los dichos de mi buen amigo Ángel es sobre la gracia del gringo, ese gringo mítico de poderes de Comic, para tomar algún concepto del sentido común y convertirlo en un producto mercadeable. Un ejemplo interesante de esto es el marco de Zachman para arquitecturas empresariales. Todo un icono en la comunidad de arquitectura de datos. Se basa en el patrón de analizar problemas con una matriz de puntos a revisar. En el marco de Zachman las columnas corresponden a los seis interrogantes en ingles y las hileras a diferentes roles en el desarrollo de una aplicación empresarial. De este sencillo concepto Zachman desarrolla todo una teoría detallada de cómo documentar y administrar un proyecto de desarrollo de un sistema empresarial basado en un modelo entidad-relación.
WHAT'S WRONG WITH THE ZACHMAN FRAMEWORK? Extending the RUP with the Zachman Framework

domingo, 10 de agosto de 2014

SkyAlert

Reconocen a mexicanos creadores de la app de alerta sísmica

by MANUEL SEBREROS on 9-08-2014


Internacional.- Una de las creaciones tecnológicas de mayor éxito en los años recientes en México ha sido la app SkyAlert, la cual funciona como alarma sísmica y es de gran funcionalidad para los habitantes de la Ciudad de México, Estado de México, Guerrero, Michoacán y Oaxaca, que son los estados con mayor actividad telúrica.

miércoles, 11 de junio de 2014

código de barras invisible compuesto por nanopartículas

Un equipo del Worcester Polytechnic Institute han desarrollado una especie de código de barras invisible compuesto por nanopartículas que sobre el papel permitirían identificar y hacer un seguimiento de cualquier objeto sin que nadie sea consciente de ello.

técnica para identificar objetos de forma única

El proceso se realiza de forma íntegra en la fase de fabricación o composición del objeto a trazar, y sería indetectable a la vista. La identificación de la información que almacenan estos códigos se realizaría con un escáner capaz de leer el diferente punto de fusión de estas nanopartículas y que le otorgarían una huella única. Para conseguir una variedad adecuada de identificadores, las nanopartículas pueden combinarse sin problemas en busca de diferentes puntos de fusión.
Las primeras pruebas se están realizando con explosivos, medicinas, papel o incluso tinta, pero las posibilidades son muy amplias debido al tamaño ínfimo de las nanopartículas empleadas. En el caso de medicinas o alimentos, esas nanopartículas pueden ser orgánicas e incluso adecuadas para su ingesta.
Nanopartículas como ADN
Un elemento diferenciador de esta técnica respecto a otros desarrollos similares, principalmente basados en RFID, es la permanencia de esas nanopartículas incluso en condiciones como una explosión.
Las nanopartículas escogidas en este caso no reaccionarían en esa explosión gracias a que irían protegidas en cápsulas del tamaño de 200 nm, por lo que los desarrolladores afirman que incluso tras la detonación de una bomba, su técnica sería capaz de identificar el origen del explosivo.
Lo mismo se podría hacer con medicinas o dinero negro, apuntando por ahora la técnica a evitar delitos principalmente.
Vía | BBC. Más información | Nature.

jueves, 5 de junio de 2014

robo de un teléfono móvil

Qué hacer ante el robo de un teléfono móvil o una tableta

Con la ayuda de las aplicaciones de seguridad que ofrecen los fabricantes, los usuarios pueden rastrear la ubicación de un dispositivo; los consejos de un especialista de la Policía Metropolitana sobre cómo actuar en estos casos
Por   | LA NACION

Estos servicios no tienen costo y son muy fáciles de usar. Pero si el smartphone robado no está conectado a Internet o ya fue formateado, sólo se podrá ver su última ubicación conocida.
Para computadoras personales, una opción interesante es Prey Project , de código abierto y que admite teléfonos y tabletas con iOS o Android, además de equipos con Linux, Mac OS y Windows. Se pueden monitorear hasta tres equipos sin costo.
Las herramientas oficiales:

miércoles, 28 de mayo de 2014

Natas; Crónica del virus mexicano


En 1992 Little Loc se registro en Prodigy para buscar información sobre virii. Little Loc, alias James Gentile, a los 16 años había escrito un virus mutante que se dispersaba rápidamente. El virus, Satan Bug, estaba escrito de manera que el proceso mismo de rastrear un disco en busca de infección infectaba todos los ejecutables en el mismo.

Depreciación de funciones en Visual Studio C/C++

Uno de los problemas que se presenta al actualizar una aplicación en Visual Studio C/C++ es la depreciación de funciones. La motivación de muchos de estos cambios es hacer el código más seguro.



Existen varias maneras de eliminar las advertencias para las funciones obsoletas o depreciadas. Las más sencilla es definir _CRT_SECURE_NO_WARNINGS o usar el pragma warning. Lo más recomendable es usar la versión segura equivalente.

Referencias:


strcpy_s, wcscpy_s, _mbscpy_s

Security Enhancements in the CRT

Talea de Castro



Juan Carlos Pérez Salazar

BBC Mundo, Ciudad de México

Martes, 15 de octubre de 2013


A Talea de Castro es difícil llegar, pero no imposible. A un bus interurbano le toma unas cinco horas desde la ciudad de Oaxaca, serpenteando por una carretera pavimentada que, hacia la mitad de su recorrido por la Sierra de Juárez, se estrecha y empieza a sembrarse de huecos.

Hace seis meses, y en vista de que las compañías de telefonía celular consideraron demasiado costoso llevar el servicio a sus 2.500 habitantes, los taleanos, ayudados por dos "gringos", crearon su propia red telefónica. Uno, Peter Bloom, un estadounidense que habla español como mexicano pues lo aprendió trabajando con inmigrantes en su país. El otro, Xabi, es un joven italiano -de Génova- que lleva un año paseando por el sur de México su barba rala y sus brazos tatuados.

De los 2.500 habitantes de Talea de Castro, más de la mitad utiliza su red telefónica.

Durante los últimos seis meses, Peter y Xabi han subido a Talea de Castro al menos una vez a la semana para vigilar el progreso del piloto.

En algún lugar de las entrañas de esa edificación están las cartas que la comunidad cruzó en 2009 y 2010 con las compañías telefónicas Telmex (propiedad de Carlos Slim, el hombre más rico del mundo, según la revista Forbes) y Telcel para que les dieran cobertura celular.

Así lo recuerda Wilfrido Martínez, secretario municipal: "Nos estaban pidiendo requisitos, como garantizar 10 mil usuarios, que no se podían cumplir porque la comunidad es muy pequeña".

"Como era tanto nuestro afán, nos comprometimos a buscar en punto en la montaña desde donde se pudiera dar cobertura a otras comunidades para reunir los 10 mil habitantes.

"Hay un punto aquí al frente donde se alcanzan a visualizar catorce comunidades, pero resulta que de acá a allá no hay carretera, entonces teníamos que abrir una brecha que nos iba a costar muy caro. También había que electrificar y eso también nos iba a salir muy costoso. Estamos hablando de tres a cuatro millones de pesos no más para acondicionar el lugar donde iba a estar la antena".

Peter Bloom indica que uno de sus principales retos es el legal. En la actualidad están gestionando un permiso de dos años de las autoridades.

Además, tienen esperanzas en la reforma a las telecomunicaciones que adelanta el actual gobierno, pues incluye "concesiones sociales" que permitiría a las comunidades su propia infraestructura en telecomunicaciones.

"Es algo que no existe y que, potencialmente, podría beneficiarnos", agrega.

En el edificio de color ocre también se llevaron a cabo las reuniones cruciales para crear la red, desde el plan piloto hasta la estructura final.

Allí, Peter Bloom, coordinador del Colectivo Rhizomatic, presentó su proyecto ante la "asamblea de ciudadanos" -integrada, en su mayoría, por los hombre de esta comunidad zapoteca-. Allí mismo se aprobó la realización del plan piloto.

Finalmente, allí, también por mayoría, se dio luz verde a la instalación de una antena permanente y con mayor potencia, todo financiado por la cooperativa local, que opera como banco y pertenece en un 80% a la comunidad.

En la asamblea de ciudadanos no sólo discutió el tema de la tecnología, sino también el de cómo ésta podría afectar la vida cotidiana de la comunidad.

Así lo recuerda Keila Metsulemet Ramírez, coordinadora de la radio comunitaria y quien desde el principio ha estado involucrada en el proyecto.

"En la reunión se dijo que solamente se permitirían cinco minutos para llamadas locales, para no saturar las líneas. Si es una llamada muy urgente, algo para lo que no puedo salir de mi casa, pues tomo el celular y llamo".

Pero si no es algo de suma urgencia, quieren que las personas sigan hablando cara a cara. "Lo que no queremos es perder la oralidad", añade Keila.

La ayuda de la comunidad ha sido vital para sacar adelante el proyecto.

Las llamadas locales son gratis, así como los mensaje de texto, que además son ilimitados. Las llamadas fuera de la comunidad tienen cargo, pero incluso llamar a Estados Unidos cuesta menos que una llamada local en una compañía normal.

"Yo he hablado con un familiar a Estados Unidos y en cinco minutos si acaso me he gastado cuatro pesos. Anteriormente, en una caseta telefónica me venía gastado 30 o 40 pesos", dice " dice Wilfrido Martínez, secretario municipal.

La red ha sido especialmente crucial en varios casos de accidente.

Según los cálculos de Peter Bloom, una red telefónica que puede valer unos US$250.000, finalmente costó US$25.000, es decir el 10%. Y la idea, en el futuro, es reducir aún más los costos.

Al observar cómo instalan la nueva antena se entiende por qué: todo el trabajo lo realizan los integrantes de la comunidad, en medio de bromas. Incluso bajo la lluvia pertinaz que lleva varios días cayendo en esta región montañosa, su entusiasmo no disminuye.

"Alrededor del mundo hay unos 700 millones de personas sin acceso a teléfonos celulares. Tiene que ver, sobre todo, con que viven en áreas remotas. Creo que en México las grandes compañías no ven el campo como una opción viable en términos económicos. Es muy costoso para ellos venir, montar y mantener una red telefónica.


"Nosotros no estamos necesariamente en desacuerdo con ellos, pero vemos otras opciones. Buscamos nueva tecnología y tratamos de aprovechar las estructuras locales y su capacidad"

"Este puede ser un modelo para otras poblaciones pequeñas en México, Centroamérica o incluso del mundo", asegura.

A esto, Keila Metsulemet Ramírez agrega "la satisfacción de tener un equipo de la comunidad. Podemos ser autónomos, autosuficientes y autosustentables. Nosotros mismos, los indígenas de esta comunidad, podemos operar el equipo".

¿Su consejo para las comunidades que quieran lograr algo parecido? "Lo primero es que se organicen, que estén unidos buscando un bien común. No es para un particular o para organizar una empresa".

Cuando a Wilfredo Martínez se le pregunta qué piensan en la comunidad de las grandes compañías telefónicas, simplemente dibuja una equis en el aire.

Siga al corresponsal de la BBC en México y Centroamérica a través de Twitter en clic @JCPerezSalazar

Stuxnet

Israel y Estados Unidos desarrollaron técnicas para atacar sistemas de control industrial con el propósito de fastidiar a Irán,pero el secreto es saber que se puede y ahora el genio se salio de la lampara


Permisos de SQL Server en Windows Vista

Un problema común al usar SQL Server en Windows Vista es que al usar la base de datos por primera vez nos encontramos que no tenemos ningún privilegio administrativo y aparece el error:
'CREATE DATABASE Permission denied in database 'master''

La razón básica en SQL Server 2005  es que los usuarios del grupo administrativo de Windows Vista no reciben por default privilegios administrativos en la base de datos y es necesario realizar un procedimiento para otorgar estos privilegios.
Paso 0:

Login en Vista como adminstrador
Paso 1:

Start > All Programs > Microsoft SQL Server 2005 > Configuration Tools > SQL Server Surface Area Configuration
Paso 2:
'Add New Administrator'
Paso 3:
En el dialogo
    'SQL Server User Provisioning on Vista'
mover
    'Member of the SqlServer SysAdmin role '
de
    'Available Privileges'
a
    'Privileges that will be granted to'
El mismo problema me ocurrió con SQL Server Express 2008, pero por lo menos la versión Express no incluye  la utilería
SQL Server Surface Area Configuration
Como además se me había olvidado el password la solución fue reinstalar el SQL Server Express y entrar al administrador de la base de datos con el usuario sa

Referencias


domingo, 6 de abril de 2014

Ubuntu MRT



La distribución Ubuntu Malware Removal Toolkit 1.2
que llega en formato LiveCD (puede crearse fácilmente un pendrive autoarrancable: LiveUSB) y que promete limpiar de virus y malware un ordenador Windows.

Pero va más allá ya que dispone de soporte RDP, navegación web con Firefox, recuperación de mal timestamp en unidades NTFS, etc. Os dejamos una pequeña lista de las bondades de Ubuntu MRT 1.2

eliminación del cobro por roaming nacional

MÉXICO, D.F. (proceso.com.mx).- Desde este domingo 6 Telmex y Telcel están obligados a realizar cambios en sus operaciones, como la eliminación del cobro por roaming nacional, desbloquear celulares, emitir facturas claras y facilitar la cancelación de sus servicios, entre otras.

un paso más cerca de lograr que las personas paralíticas caminen y usen brazos artificiales

Sao Paulo, Brasil.- Tras un experimento en que monos movieron y sintieron objetos usando únicamente su mente, los científicos suponen que están un paso más cerca de lograr que las personas paralíticas caminen y usen brazos artificiales.

Los animales fueron capaces de operar un brazo virtual para buscar objetos a través de su actividad cerebral que fue captada por implantes, una denominada interfaz cerebro-máquina.

Los primates también fueron capaces de experimentar la sensación del tacto, un elemento crucial de cualquier solución para paralíticos debido a que les permite juzgar la fuerza utilizada para agarrar y controlar objetos.

"Este fue uno de los pasos más difíciles y el hecho de que lo hayamos logrado abre la puerta al sueño de que una persona pueda caminar de nuevo", dijo Miguel Nicolelis, neurólogo brasileño que formó parte del estudio realizado por un equipo de la Universidad de Duke, en Carolina del Norte.

Los resultados sugieren que sería posible crear una especie de "exoesqueleto" robótico que la gente podría usar para sentir objetos, afirmó.

"El éxito que hemos tenido con primates nos hace creer que los humanos podrían realizar las mismas tareas mucho más fácilmente en el futuro", declaró Nicolelis.

El estudio fue publicado hoy en la revista especializada Nature.

En la primera parte del experimento, los monos rhesus fueron premiados con comida por usar sus manos para controlar un mando en busca de objetos en la pantalla de un computador.

Entonces el mando fue desconectado, lo que dejó a los monos con el control de un brazo virtual en la pantalla sólo a través del poder cerebral.

Nicolelis dijo que su objetivo es usar la tecnología para permitir a un atleta parapléjico joven participar en la ceremonia de apertura del Mundial de fútbol del 2014 en Brasil.

A partir del 2012, el estudio será llevado a Brasil, anticipó Nicolelis, y será puesto en práctica en el Instituto de Neurociencias en el estado norestino de Natal.

miércoles, 2 de abril de 2014

La gestión de proyectos

La gestión de proyectos es la disciplina del planeamiento, la organización, la motivación, y el control de los recursos con el propósito de alcanzar uno o varios objetivos. Un proyecto es un emprendimiento temporario diseñado a producir un único producto, servicio o resultado1 con un principio y un final definido (normalmente limitados en tiempo, y en costos o entregables), que es emprendido para alcanzar objetivos únicos,2 y que dará lugar a un cambio positivo o agregará valor.
La naturaleza temporaria de los proyectos se contrapone con las operaciones normales de cualquier organización,3 las cuales son actividades funcionales repetitivas, permanentes o semi-permantentes que hacen a los productos o al servicio. En la práctica, la gestión de estos dos sistemas suelen ser muy distintos, y requieren el desarrollo de habilidades técnicas y gestión de estrategias diferentes.
El primer desafío para la gestión de proyectos es alcanzar la meta del proyecto,4 y los objetivos dentro de las limitantes conocidas.5 Las limitantes o restricciones primarias son el alcance, el tiempo, la calidad y el presupuesto. El desafío secundario, y el más ambicioso de todos, es optimizar la asignación de recursos de las entradas necesarias e integrarlas para alcanzar los objetivos predefinidos.
Como disciplina, la gestión de proyectos desarrolló varios campos de aplicación, entre las cuales se encuentra la construcción civil, la ingeniería, la defensa pesada.8 Los dos precursores de la gestión de proyectos son Henry Gantt, llamado el padre de las técnicas de planeamiento y control,9 quien es famoso por el uso del diagrama de Gantt como herramienta en la gestión de proyectos (como alternativa del Harmonogram propuesto por Karol Adamiecki10 ); y Henri Fayol por la creación de las cinco funciones de gestión que son el pilar del cuerpo de conocimiento relacionados con proyectos y programas de gestión.11 Tanto Gantt y Fayol fueron estudiantes de las teorías deFrederick Winslow Taylor sobre la organización científica. Su trabajo es el precursor de diversas herramientas de gestión de proyectos modernas como la estructura de descomposición del trabajo (EDT o WBS en sus siglas en inglés) y la asignación de recursos.
Los años 50 marcaron el comienzo de la era de gestión moderna de proyectos donde varios campos fundamentales de ingeniería comenzaron a trabajar como uno. La gestión de proyectos se reconoció como una disciplina única que emergía con modelos de la ingeniería.12 En Estados Unidos, antes de los años 50, los proyectos se gestionaban con una base ad-hoc, se usaba sobre todo el diagrama de Gantt y otras herramientas informales. En esos tiempos, se desarrollaron dos modelos matemáticos para proyectar tiempos. El "Método de la ruta crítica" (CPM) se desarrolló con las colaboraciones entre la Corporación DuPont y la Corporación Remington Rand para el manejo de proyectos de mantenimiento de planta. Asimismo la "Técnica de revisión y evaluación de programas" o PERT (en sus siglas en inglés, fue desarrollado por Booz Allen Hamilton como parte del programa de submarinos del Ejército de Estados Unidos (en conjunto con Lockheed Corporation);13 Estas técnicas matemáticas se popularizaron rápidamente en otros emprendimientos privados.
Diagrama de PERT para un proyecto de siete meses con cinco hitos
Simultáneamente, mientras se desarrollaban modelos de manejo de tiempos para proyectos, evolucionaba la tecnología para estimar costos de proyectos, la gestión de costos y la ingeniería de economía, con el innovador trabajo de Hans Lang entre otros. En 1956, la Asociación Americana de Ingenieros de Costos (ahora conocida como AACE International; Asociación para el avance de la ingeniería de costos), se formó por los primeros practicantes de la gestión de proyectos y especialidades asociadas al planeamiento y programación, estimación de costos, y control de costos/programación (control de proyectos). La AACE continuó su trabajo pionero hasta que en 2006 publicó el primer marco de procesos integrados para portafolios, programa y gestión de proyectos (gestión de costo total).

miércoles, 26 de marzo de 2014

El alcance de un proyecto



El alcance de un proyecto es la suma total de todos los productos y sus requisitos o características. Se utiliza a veces para representar la totalidad de trabajo necesitado para dar por terminado un proyecto.

En la gestión de proyectos tradicional, las herramientas para describir el alcance del producto de un proyecto son: la estructura de descomposición del producto (EDP o PBS) y las descripciones del mismo. La herramienta primaria para describir el alcance del trabajo en un proyecto es la estructura de descomposición del trabajo.

Si los requisitos del proyecto no se definen totalmente, si no se describen bien o si no hay un control de cambios eficaz, puede sobrevenir entonces un arrastre de alcance o requisitos, y generarse lo que se conoce como el síndrome del lavadero.

El Síndrome del lavadero o Arrastramiento del alcance (Scope creep en inglés) en gestión de proyectos se refiere a aquellos cambios no controlados en el alcance de un proyecto. Este fenómeno puede ocurrir cuando el alcance de un proyecto no se define, documenta, o controla correctamente.


Típicamente, el aumento del alcance consiste en productos nuevos o nuevas características de productos ya aprobados que hacen que el equipo de proyecto se desvíe de su propósito original. Debido a su tendencia a centrarse en solamente una dimensión de un proyecto, el arrastramiento del alcance puede también dar lugar a que el equipo de proyecto exceda su presupuesto ycronograma originales. Mientras el alcance de un proyecto crece, más tareas se deben terminar con el mismo coste y cronograma que la cantidad original de tareas del proyecto.

El arrastramiento del alcance puede ser un resultado de:
  • Un pobre control de cambios.
  • Clientes maliciosos que fomentan la ambigüedad a fin de evitar compromisos.
  • Carencia de la identificación inicial apropiada de qué se requiere para lograr los objetivos del proyecto
  • Un gerente de proyecto o patrocinador débil.


El arrastramiento del alcance es un riesgo en la mayoría de los proyectos. Muchos megaproyectos caen a causa del síndrome del lavadero. El arrastramiento del alcance a menudo da lugar a excesos en el coste.

domingo, 23 de marzo de 2014

cronogramas

Diagrama de Gantt: ¿Qué es y cuáles existen?



Un diagrama de Gantt es una herramienta gráfica sencilla y útil, que se emplea en la gestión de proyectos. Plasma de manera muy visual, a través de un cronograma de barras horizontales, las actividades que forman parte de un proyecto y su temporalización. Además, facilita el control de la progresión en la realización de las tareas y de los recursos destinados al proyecto. Por esas y otra ventajas, su utilización es muy frecuente en todo tipo de empresas, independientemente de su tamaño o sector de pertenencia.

domingo, 9 de marzo de 2014

Una historia de arena y lógica


Procopio Villareal y Arnulfo Pérez


Our motivation was to build a machine which could take all these great mathematical ideas, which mathematicians and engineers and scientists had dreamed up for generations before we came along, and be able to exploit them and use these great ideas in a reasonable length of time.

Presper Eckert



¿Qué tan nueva es la idea de la computadora? Generalmente todos los avances tecnológicos son el resultado de lo que el hombre ha desarrollado a lo largo de su historia.



1. Abac.


Una de las tareas centrales en las ciencias y en el comercio es el cálculo numérico. De hecho uno de los inventos más exitosos de todos los tiempos es el ábaco, llevado a un alto grado de refinamiento por los japoneses. El ábaco aún se utiliza hoy en día y un experto en su uso pude realizar sumas y restas con mucho mayor velocidad que cualquier operador de una calculadora.

Debido a la falta de un sistema numérico sofisticado y de material de escritura accesible surgió la necesidad de un dispositivo mecánico para realizar operaciones aritméticas. La palabra ábaco se deriva etimológicamente del griego abac, que significa tabla de calculo cubierta de polvo o arena. Con el tiempo el ábaco de arena fue substituido por una tabla marcada sobre la cual se colocaban marcadores en línea para representar números. Varias formas de este tipo de ábaco estuvieron en uso en Europa hasta el principio del siglo XVII. Otro tipo de ábaco que apareció en diferentes partes usaba canales sobre los que se deslizaban los marcadores. A partir de este ultimo tipo, se desarrollo una cuarta variación con marcadores ensartados en varillas enmarcadas. Esta forma que permite la realización rápida de cálculos aritméticos todavía se utiliza en China, Japón y otras partes del mundo.

En Europa, después de la introducción de los numerales arábicos, la aritmética instrumental dejo de desarrollarse en favor de métodos gráficos utilizando implementos de escritura fácilmente disponibles. En Japón y China el ábaco se siguió desarrollando hasta principios del siglo XX y en 1946 en un evento organizado por las fuerzas de ocupación de Estados Unidos en Japón el soroban (versión japonesa del ábaco) derroto claramente a la calculadora mecánica en una competencia de aritmética.

2. La regla de cálculo.


John Napier de Merchiston, nacido en 1550 en Edinburgh, Escocia, realizo uno de los primeros intentos para mecanizar y simplificar las operaciones aritméticas de multiplicación y división. Napier fue un matemático aficionado que en 1614 publico un tratado, Mirifici logarithmorum canonis descriptio, donde discutí­a el uso de logaritmos para simplificar los cálculos aritméticos. El objetivo de Napier era ahorrarles a los astrónomos tiempo en sus cálculos y disminuir la probabilidad de error. En 1617, en su Rabdologiae introduce el uso de varas marcadas con escalas logarí­tmicas, conocidos como huesos de Napier porque estaban hechos de marfil, antecesores de la regla de cálculo.

3. La calculadora mecánica.


La invención de la calculadora mecánica se le atribuye generalmente a Blaise Pascal (1623-1662), quien en 1642 inventa la Pascaline: artefacto mecánico que podía sumar y restar sobre la base de un mecanismo de engranes. Pascal en ese tiempo era un adolescente que querí­a pasar más tiempo con su padre, un colector de impuestos que pasaba su tiempo sumado columnas de números. Así que Blaise decidió inventar un dispositivo para liberar a su padre de labor tan tediosa. Pascal experimento con diferentes diseños y descarto alrededor de 50 modelos antes de establecer el diseño final. Pascal pensaba sinceramente que su invención ahorraría muchas horas de trabajo. Sin embargo, el estado rudimentario del maquinado del siglo XVII no permitía que su invento se fabricara con precisión y los dispositivos no funcionaban bien y se descomponí­an fácilmente. Solamente Pascal y uno de sus ayudantes podí­an reparar los dispositivos, que adems eran muy caros. Aunque podían hacer imprecisamente la labor de media docena de hombres, la media docena era más barata que la maquina. En realidad Pascal no fue el primero en diseñar una calculadora mecánica, pero si el primero en difundir su invento y su contribución más importante fue señalar el camino y probar que era factible construir ese tipo de dispositivos. Gottfried Wilhelm von Leibniz (1646-1714) invento en 1671 una maquina que realizaba las cuatro operaciones aritméticas: suma, resta, multiplicación, y división. El diseño de Leibniz utilizaba el principio del cilindro graduado que se uso más de 150 años después en el diseño de la primera calculadora que tuvo éxito comercial. Sé sabe que Leibniz construyo dos maquinas y que dedico años de su vida al perfeccionamiento de su instrumento para convertirlo en algo practico. Como en el caso de Pascal, la capacidad tecnológica de la época carecí­a del grado de precisión requerido y el sueño de Leibniz no se pudo realizar.

La historia de los dispositivos de calculo del siglo XVIII es una de experimentación en todas las variaciones posibles a los diseños de Pascal y Leibniz.

4. La revolución industrial


Al final del siglo XVIII, la revolución industrial, basada en la energí­a del vapor, de alguna manera creó un aura de misticismo como lo crearon la electricidad y la energía atómica años más tarde. La automatización y el uso de maquinas para potenciar la productividad era el centro de la actividad intelectual de la época.

Joseph-Marie Jacquard, nacido el 7 de julio de 1752 en el hogar de un humilde tejedor en Lyon, Francia, se encontraba obsesionado con la idea de usar un sistema de tarjetas perforadas para perfeccionar el telar automático inventado por Vaucanson. En 1801, su genio rindió fruto con un telar que tejí­a patrones complicados con facilidad. En 1805, Napoleon Bonaparte en persona inspeccionó el telar de Jacquard en una feria industrial en Lyon. Bonaparte ya se habí­a abocado a mejorar la economí­a francesa al reestructurar la bolsa de valores y promover la industrialización de la seda. Jacquard recibió la Legion d´Honour y 50 francos por cada telar vendido por un periodo de seis años. A pesar del soporte imperial, el telar de Jacquard, que permití­a que un hombre realizara el trabajo de varios, se encontró con la enconada oposición del gremio de tejedores de seda, por la amenaza de desempleo que representaba. Pero al recibir la bendición oficial en 1806, poco a poco se fue imponiendo.

Mientras realizaba su servicio militar, Charles Xavier Thomas De Colmar tuvo la idea de construir una maquina calculadora. Introdujo su primer prototipo en 1820 y 25 años después tenia un exitoso negocio de calculadoras. La maquina de Thomas, conocida como Arithmometer sumaba y multiplicaba de manera simple y precisa. Se basaba en el principio del cilindro graduado y fue un punto pivotal en la evolución de las maquinas calculadoras; por un lado, mecánicos profesionales refinaban sus técnicas de producción en masa para producir modelos más baratos y confiables para uso comercial, y por otro, los científicos ideaban maquinas que extendieran los limites del pensamiento matemático. El más ilustre de estos visionarios fue Charles Babbage, considerado el tí­o abuelo de la computadora moderna. Babbage nació en Devonshire, Inglaterra en 1791. El uso de las tarjetas perforadas de Jacquard, el diseño y la fabricación modular, y principalmente la estructura lógica de la computadora moderna fueron algunas de las contribuciones de Babbage. Sin embargo, en realidad no existe una línea directa entre las ideas de Babbage y la computadora moderna y no fue sino hasta que la computadora digital se empezó a desarrollar que resurgió un interés en las contribuciones de Babbage.

5. Babbage.


A Babbage, le fascinaba la idea de crear una máquina con la cual se pudiera liberar al hombre de las tareas tediosas asociadas al pensamiento. Primero trabajo en una maquina para producir tablas matemáticas que llamó Máquina Diferencial y después diseño una maquina de uso más general, precursora de las computadoras modernas, que llamó Máquina Analí­tica. La Maquina diferencial de Babbage podía evaluar y tabular polinomios. En principio, cualquier función matemática se puede aproximar a pedazos por polinomios, pero Babbage tenia que realizar cálculos con lápiz y papel para establecer los coeficientes que se utilizarían en la maquina. Por lo tanto es un poco inexacto decir que el dispositivo de Babbage podí­a calcular tablas matemáticas de forma automática. La defensa de Babbage seria que su objetivo no era tanto reducir la labor de cálculo sino reducir los errores, y la maquina diferencial mecanizaría aquella parte en donde la probabilidad de error era mayor. El diseño de la maquina analítica, por el contrario, muestra una visión genial y muestra las caracterí­sticas de una verdadera computadora de uso general. En sus apuntes, Babbage discute muchas ideas modernas como sumadores con acarreo rápido y unidad de control, lazos de control iterativos en programas y la representación de algoritmos por medios mecánicos. Para el control de bajo nivel, Babbage ideo un mecanismo similar al concepto moderno de microprogramación, con cilindros rotatorios tomando el lugar de ROM. Si Babbage hubiera publicado sus ideas, otros habrían podido ampliar y continuar su trabajo antes de que los dispositivos electrónicos desplazaran a los mecánicos. Las ideas de Babbage se fundamentaban en el álgebra propuesta por el matemático George Boole y su trabajo era fuertemente apoyado por Augusta Ada Byron (más tarde Condesa de Lovelace), hija de Lord Byron, cronista de la época y dedicada al estudio de las matemáticas inculcadas por su maestro Augustus De Morgan.

En el siglo XIX, pensadores como Lord Byron cuestionaban el ascenso de la maquina y el poder y virtud del hombre para alterar la naturaleza. Estas ideas sirvieron para inspirar a Mary Shelley para escribir la famosa novela Frankenstein. En el prefacio de Frankenstein, Shelly plantea que de acuerdo a Darwin y la ciencia del siglo XIX, se consideraba posible en principio la creación de vida e inteligencia artificial.

Una de las contribuciones de Ada Lovelace como escritora fue presentar la máquina analí­tica de Babbage no como una máquina que pensara por sí­ sola, sino una máquina que realizarí­a tareas ordenadas por el hombre.

La visión demasiado grandiosa de Babbage combinada con su poco tino político, no permitió que el diseño de la máquina analítica, capaz de almacenar 1000 números de 50 decimales fuera llevado a la práctica durante su vida; su hijo Henry Provost Babbage construyo parte de la maquina analí­tica y en enero de 1898 hizo una demostración calculando múltiplos de p. Los diseños de Babbage sirvieron de inspiración para que muchos otros pensadores de la época se abocaren a encontrar otros métodos para implementar maquinas analíticas.

En 1867, Charles Sanders Peirce lleva el álgebra de Boole a Estados Unidos. En 1885, Allan Marquand, un profesor en Princeton, desarrollo una maquina para resolver problemas de lógica. Esta maquina lógica, análoga al ábaco aritmético, mostraba todas las posibles combinaciones de términos lógicos y sus negativos y permitía la solución mecánica de problemas lógicos. En su correspondencia con Peirce, Marquand mostró una clara visión en el potencial de las maquinas para emular funciones lógicas. En sus comentarios sobre la maquina de Marquand, Peirce sugirió que un sistema eléctrico podría construirse para resolver problemas lógicos y aritméticos, por ejemplo los teoremas de algebra y geometría.

6. Hollerith.


Se puede observar a lo largo de la historia que las investigaciones matemáticas fueron alentadas en general por la necesidad de realizar operaciones más rápidas, en un principio, para mejorar los cálculos náuticos dado el gran impacto económico de la navegación. Pero luego fueron los requerimientos militares los que hicieron que se acelerara el proceso, principalmente en el cálculo de trayectorias balísticas.

Paralelamente a estos desarrollos en el área del cómputo numérico o cientí­fico, ya existí­a a fines del siglo XIX una necesidad de maquinas que pudieran procesar datos con rapidez, ejemplificada por la crisis del censo de 1880 en Estados Unidos. La constitución de los Estados Unidos requiere un censo cada 10 años para asignar el numero de representantes para cada Estado al congreso federal. Sin embargo, la población de los Estados Unidos estaba aumentando dramáticamente y el censo de 1880 se lleva 9 años a un costo de 5.8 millones de dólares (ver Tabla 1).

Tabla 1: Resultados del censo de Estados Unidos 1850-1990































AñoPoblación censada en millones
185023.191
186031.442
187038.558
188050.198 (!9 años para completar el censo!)
189052.979
190076.211

Existía, por lo tanto, el peligro de no poder completar el censo de 1890 en los diez años requeridos. Tomar el censo requerí­a de una serie de pasos, todos laboriosos, pero la dificultad principal no estaba en la recolección de datos, sino en su procesamiento y clasificación. Un matemático, Hermann Hollerith, que trabajo en el censo de 1880 vendría a resolver este problema. En una conversación informal durante una cena, el Dr. John Shaw Billings, director de la división de estadí­sticas vitales, le sugirió a Hollerith la idea de una tabulador mecánico usando tarjetas con muescas en las orillas. Hollerith primero intento un diseño electromecánico que utilizaba una cinta de papel pero dificultades técnicas le hicieron desistir. Entonces trabajo con un sistema de tarjetas perforadas donde la presencia o ausencia de un hoyo indicaba la existencia o falta de alguna caracterí­stica en los datos.

Además del código de tarjetas perforadas, Hollerith invento equipo para perforar, leer y clasificar las tarjetas:

  • Un pantógrafo para transferir datos a las tarjetas.
  • Un tabulador electromecánico para leer las tarjetas. El dispositivo utilizaba un arreglo de puntas que al ser presionadas sobre las tarjetas, pasaban por los agujeros y hací­an contacto con unas pequeñas copas de mercurio para completar un circuito en un dial.
  • Un clasificador que usaba el mismo mecanismo del tabulador para abrir una compuerta sobre la cual se colocaban las tarjetas manualmente.

Las maquinas de Hollerith estuvieron listas para el censo de 1890. Después de ganar una competencia contra otros dos sistemas, Hollerith rento sus maquinas a la oficina del censo. Empezaron a operar en julio de 1890 y para agosto ya tenían un conteo extraoficial. Como los operadores podí­an procesar entre 7000 y 8000 tarjetas por día, se podí­a intentar un censo más detallado.

Como siempre, se cayo en la tentación de llevar a la tecnología hasta sus limites, y el censo de 1890 se lleva siete años a un costo de 11.5 millones de dólares, de los cuales $750,000.00 fueron para pagar la renta de las maquinas de Hollerith.

7. La ví­spera.


La companía de Hollerith, rentaba sus maquinas a gobiernos y empresas con éxito, pero tenia problemas de liquidez. En 1911 se combino con otras tres compañi­as para formar una nueva empresa que en 1924 tomo el nombre de International Business Machines (IBM).

En 1937, un ingeniero de los Laboratorios Bell, George Stibitz, empezó la construcción de un sumador binario en su tiempo libre para ayudarse a hacer cálculos con números complejos, necesarios en el diseño de circuitos eléctricos. En septiembre de 1940, Stibitz demostró su maquina en la convención de otoño de la sociedad de matemáticas (American Mathematical Society), utilizando al mismo tiempo la primera conexión remota a una computadora a través de líneas telefónicas.

Entre 1937 y 1942, John Atanasoff, profesor de Iowa State College, junto con su estudiante Cliford Berry, visualizó y construyo un prototipo electrónico de un dispositivo para resolver sistemas de ecuaciones lineales, la ABC (Atanasoff-Berry Computer). La ABC, compuesta por cientos de bulbos, constituía una de los artefactos electrónicos más sofisticados. En el verano de 1941, el Dr. J. W. Mauchly, de la Universidad de Pennsylvania, visito a Atanasoff y pudo ver el funcionamiento de la ABC y Atanasoff discutió con él abiertamente detalles técnicos.

8. El botí­n de la guerra.


En abril de 1943 John Brainerd, director del departamento de ingenierí­a eléctrica de la Universidad de Pennsylvania ( Moore School of Electrical Engineering), junto con los ingenieros responsables, John Mauchly y J. Presper Eckert, escribió la propuesta para desarrollar la ENIAC(Electrical Numerical Integrator and Computer). La ENIAC no fue una computadora en el sentido moderno, pero demostró contundentemente que el uso de bulbos electrónicos en gran escala era viable en la construcción de dispositivos de calculo de uso general. La propuesta, patrocinada por el teniente Herman Goldstine, iba dirigida al ejercito de Estados Unidos para el cálculo rápido de tablas de disparo para cañones de gran calibre.

Cuando la ENIAC fue terminada en 1946, empleaba 18,000 de bulbos, pesaba 30 toneladas y disipaba 150,000 W de potencia. Con toda esta potencia, la ENIAC podí­a manejar solamente 20 números de 20 dígitos cada uno ; con solo 200 bytes de memoria, era capaz de realizar una suma en 200 microsegundos. Algunos de los conceptos redescubiertos por el proyecto ENIAC ya habían sido cubiertos por una aplicación de patente en Alemania en 1936 por el ingeniero Konard Zuse. La aplicación de Zuse incluía un sistema de memoria para programas pero carecí­a de la capacidad de realizar saltos condicionales en el flujo del programa.

Al mismo tiempo que se desarrollaba la ENIAC, la Universidad de Harvard recibía el soporte de IBM para el desarrollo de una maquina sobre la base de la tecnologí­a de tabuladores que IBM dominaba. Dicha maquina, conocida como la Harvard Mark I y denominada por IBM como ASCC (Automatic Sequence Control Calculator), fue concebida por Howard Aiken a finales de los años 30 y construida por IBM bajo la dirección de Claire Lake con la colaboración de Francis E. (Frank) Hamilton y Benjamin Durfee. Patrocinada por la Armada de Estados Unidos, el propósito de la maquina era calcular tablas matemáticas y de navegación, precisamente la aplicación que Babbage habí­a considerado para su maquina diferencial. Aiken conocía el diseño de Babbage desde 1937 y le dedico sus primeros reportes.

Durante la ceremonia de dedicación en agosto 7 de 1944, el departamento de prensa de la Universidad de Harvard no hizo mención de la participación de IBM en el boletín de prensa, provocando fricción entre Harvard y IBM que duro varios años.

La Harvard Mark I fue la primera de una serie de cuatro maquinas en cuyo diseño participo Aiken. La Mark I y Mark II fueron electromagnéticas y usaban relevadores, pero la Mark III y Mark IV utilizaban componentes electrónicos. Arquitectónicamente se le consideraba reaccionarias, ya que consideraban memorias separadas para los programas y los datos y se acuño el termino arquitectura Harvard para designar maquinas con esta estructura de memoria. Hoy en día este termino se utiliza de manera diferente para referirse a maquinas con una sola memoria principal pero caches separados para datos y programa.

9. El parto.


En 1944, John Louis von Neumann se intereso en el proyecto ENIAC. El grupo de ingenieros estaba buscando mejores maneras de programar la maquina y se discutiá el concepto de almacenar programas en forma numérica; von Neumann ayudo a cristalizar estas ideas y en la primavera de 1945 escribió un borrador proponiendo una arquitectura para un computadora con programas almacenados en memoria, denominado First Draft of a Report on the EDVAC (Electronic Discrete Variable Automatic Computer). A finales de junio, Goldstine distribuyo el borrador con el nombre de von Neumann (von Neumann lo escribió solo) sin dar crédito a Mauchly y Eckert, propiciando el uso del termino arquitectura von Neumann.

El borrador sobre la EDVAC presentaba la primera descripción por escrito del concepto de programa almacenado en memoria. El reporte dividí­a un sistema de cómputo en cuatro partes (ver Tabla 2): la unidad aritmética central (CA), la unidad de control central (CC), la memoria (M), y los dispositivos de entrada/salida (I/O). La CA realizaba las funciones aritméticas básicas, y opcionalmente, operaciones complejas como raíces, logaritmos, y funciones trigonométricas; el CC controlaba la secuencia de operación de las otras partes de acuerdo a las instrucciones que se programaran en el sistema; la M guardaba valores de datos numéricos e instrucciones codificadas numéricamente; el I/O servia de interface entre usuario y maquina. von Neumann pretendí­a dar una descripción funcional de la computadora, no dar una especificación de como construir ese tipo de artefactos.

Las ideas centrales desarrolladas por el grupo de la Moore School las resume Wilkes como sigue:

Dispositivo electrónico
Bulbos electrónicos se usarí­an para todo menos entrada/salida.
Operación binaria
Independientemente del modelo funcional, la operación interna se realizaría con elementos binarios.
Interface operativa sobre la base de un conjunto de instrucciones
El problema a resolver por el dispositivo serí­a especificado usando un grupo definido de instrucciones sin utilizar tableros de conexión o interruptores. Esto requiere que el conjunto de instrucciones incluya mecanismos para control de flujo y no solamente operaciones aritméticas y lógicas.
Programa guardado en memoria
Ejecución serial
Las instrucciones se ejecutarían una a la vez, tanto las de control como las operaciones aritméticas.
Memoria unitaria
La memoria estaría compuesta de palabras direccionables, todas con el mismo numero de bits; las direcciones consistirían de enteros en un rango continuo. Si una palabra se manda a la unidad de control se interpretarí­a como una instrucción, y si se manda la unidad aritmética, como un dato.
Modificación y construcción dinámica de instrucciones
El programador tendría la habilidad de modificar direcciones o instrucciones mediante la ejecución de operaciones aritméticas o lógicas en la unidad aritmética. De manera similar podrí­a crear instrucciones nuevas.
Tabla 2. Elementos de una computadora de acuerdo a von Neumann













Memoria
Unidad Aritmética Central
Unidad de control
Entrada/Salida

Como se puede ver, la descripción de von Neumann corresponde a nuestro concepto moderno de computadora. Las contribuciones de von Neumann han sido tan relevantes y tan difundidas debido a su actitud hacia sus innovaciones. El impacto de las ideas de von Neumann se debe no solo a su brillantes, sino a que para él la difusión de sus innovaciones era más importante que el establecimiento de patentes.

Los fabricantes de computadoras pasaron de reproducir la EDVAC, a la EDSAC, a la IAS, siempre basándose en las ideas de von Neumann.

Se pretendí­a que la EDVAC fuera la primera computadora de programa almacenado en memoria, pero en la escuela de verano de la Moore School en 1946 hubo tanto énfasis en la EVDAC que Maurice Vincent Wilkes del Laboratorio de Matemáticas de la Universidad de Cambridge ideo la EDSAC (Electronic Delay Storage Automatic Calculator), la primera computadora operacional de programa almacenado.

Al mismo tiempo que el grupo de la ENIAC en Estados Unidos desarrollaba una maquina para calcular trayectorias de proyectiles, en Inglaterra, un grupo de matemáticos trabajaba en Bletchley Park descifrando el código alemán usado por la flota de submarino que tenia a Inglaterra en estado de sitio. Entre estos matemáticos se encontraba Alan Turing, quien estableció las bases teóricas de la ciencia de la computación moderna.

En 1935, Turing supo del problema de decibilidad (Entscheidungsproblem) planteado por Hilbert: ¿Existe, por lo menos en principio, un método preciso mediante el cual se pueda resolver cualquier planteamiento matemático? Para responder a esta pregunta es necesario una definición precisa de método. Turing a partir del concepto de un procedimiento aplicado mecánicamente formula la idea de una maquina trabajando sobre una tira de papel con símbolos impresos y mostró que dicha maquina era equivalente a una persona trabajando con un conjunto de instrucciones lógicas.

Turing arguyo que la capacidad de dicha maquina es equivalente a la capacidad de la mente humana, asumiendo un numero finito de posibles estados mentales. Esta triple correspondencia entre instrucciones lógicas, procesos mentales, y una maquina que en principio podí­a tomar una forma fí­sica concreta es la contribución definitiva de Turing.

El trabajo de Turing introdujo uno de los conceptos fundamentales de la ciencia de la computación: La maquina universal de Turing; una maquina para todas las tares posibles. El concepto de Turing corresponde a nuestro concepto moderno de programa o algoritmo, pero en 1936 no existí­an computadoras en el sentido moderno y Turing desarrollo sus ideas sobre la base de su imaginación matemática.
En 1946, Harry Douglas Huskey, miembro del equipo de la ENIAC, construyo el prototipo básico de la Pilot ACE (Automatic Computing Engine) del National Physical Laboratory en Inglaterra, basado en conceptos de Turing.La cuestión de cual fue la primera computadora depende por supuesto de nuestra definición. Muchas veces la diferencia entre maquinas calculadoras y computadoras universales se hace sobre la base de la existencia de memoria, pero la diferencia es un poco más sutil. Una formalismo que se puede adoptar es requerir que una computadora universal sea capaz de resolver aquellas cuestiones que pueden ser resueltas por una maquina universal de Turing (MUT). Una maquina debe tener instrucciones de manipulación aritmética, por lo menos incrementar por uno y poner un registro a cero, manipulación de memoria que permitan que un programa sea automodificable, y saltos condicionales para poder programar ciclos para tener esa funcionalidad. Desde este punto de vista la primera computadora en el sentido moderno es la maquina construida por Wilkes.

10. Desarrollo de la industria.


En diciembre 8 de 1947 se incorpora la primera compañía especializada en computadoras, Eckert-Mauchly Computer Corporation. J. Presper Eckert (1919-1995) and John Mauchly (1907-1980) empezaron la compañía después de una disputa con la administración de la Universidad de Pennsylvania por los derechos de patente sobre la ENIAC. Uno de los primeros contratos de Eckert-Mauchly fue la BINAC para Northrop Aircraft. Esta maquina estaba destinada para ser usada a bordo de aviones pero nunca voló.

La compañía de Eckert y Mauchly fue absorbida con Remigton-Rand para formar UNIVAC. El 30 de marzo de 1951 la primera UNIVAC le fue entregada al US Census Bureau para ayudar en la tabulación del censo. La construcción de esta maquina se llevo cinco años y sobrevivió la casi bancarrota de la compañí­a original pero estaba sobregirada en un contrato de precio fijo.

En 1952 el nombre UNIVAC se convirtió en sinónimo con computadora cuando predijo el resultado de la elección presidencial en Estados Unidos. Thomas J. Watson, director de IBM, ordeno la construcción de una segunda versión de la primera maquina de Aiken, aunque no pensaba al principio entrar el negocio de las computadoras en la misma escala que Eckert y Mauchly. La SSEC (Selective Sequence Electronic Calculator) fue dedicada el 24 de enero de 1948.

A principios de los 60s nace un nuevo concepto de computadora. En esa época la moda en el vestir femenino era la popular minifalda; apropiadamente, surgen nuevas compañí­as que con la idea de llevar la computadora a usuarios medianos, crean el concepto de minicomputadora.

Compañías como Digital Equipment Corporation (DEC) y Hewlett-Packard comienzan a utilizar los nuevos descubrimientos en electrónica de una manera eficiente para construir computadoras, además de pequeñas, potentes.

11. Arena y lógica


Los descubrimientos tecnológicos que llevaron a la miniaturización de la computadora se basaron en los descubrimientos que les valieron el premio Novel de física en 1956 a John Bardeen, Walter Brattain y William Shockley. El transistor cambió la estructura gigantesca y elitista de las computadoras a algo tan normal como lo es un receptor de televisión.

Los transistores eran más pequeños que los bulbos, disipaban menos potencia y no sufrí­an desgaste. Mejor aún, funciones específicas que anteriormente se implementaban utilizando elementos discretos podí­an ser integrados en una sola pieza de silicio. Esta integración de varios elementos para realizar una función más compleja fue llamada Circuito Integrado o IC.

La creación de circuitos integrados es una tarea compleja y requiere de procesos bastante caros y se generó una nueva industria. La primera compañí­a dedicada al diseño y fabricación de circuitos integrados fue fundada por el mismo Shockley en 1956.

Schockley Semiconductor conjuntó a los mejores expertos en semiconductores y muchos de ellos abandonaron la empresa para emprender las suyas propias.

De Shockley Semiconductor nace Fairchild Semiconductor y de ésta a su vez nacen otras más. Diez años después de la formación de Fairchild, la mayorí­a de las empresas nuevas o que incursionaban en esta área estaban lideradas por gente proveniente de Fairchild.

La industria comenzó a crecer rápidamente, tanto las grandes como las minicomputadoras comenzaron a demandar una gran cantidad de dispositivos integrados. Las grandes empresas continuaron invirtiendo una gran cantidad de dinero en investigación para hacer cada vez más densos los circuitos. El aumento en la densidad trajo la miniaturización, y esto hizo florecer la industria de las calculadoras. Fue esta industria la que de alguna manera detonó el desarrollo del microprocesador.

Intel Development Corporation, empresa formada por Robert Noyce, proveniente de Fairchild, se enfocaba básicamente a la manufactura de memorias semiconductoras. En 1969, una compañía Japonesa, ETI, envió una comisión para platicar con la gente de Intel. ETI querí­a que se desarrollara un circuito integrado para producir una nueva línea de calculadoras. La persona comisionada a este proyecto fue Marcian Hoff, de reciente ingreso a la compañí­a pero con mucha experiencia en el área de desarrollo de semiconductores. Cuando le fue planteado el proyecto, Hoff no podía concebir la razón de fabricar un dispositivo que costarí­a casi lo mismo que una minicomputadora pero con una fracción de su capacidad, ¿Porqué no mejor diseñar una computadora para emular el funcionamiento de la calculadora? ¿Para qué construir un dispositivo de propósito especí­fico si costaba el mismo esfuerzo que uno de propósito general?

Hoff propuso a los ingenieros japoneses revisar su diseño y adaptarlo a algo parecido a la computadora PDP-8 de DEC en la cual Hoff había trabajado.

Lo que Hoff proponía era un juego de circuitos integrados en los cuales un circuito principal accesaría instrucciones de una memoria, las procesarí­a y actuarí­a sobre señales de entrada y salida; de este modo, el circuito principal podrí­a ejecutar programas.

Los fabricantes de calculadoras podrí­an entonces hacer cualquier tipo de calculadora que ellos quisieran simplemente cambiando el programa. Lo que Hoff estaba diseñando era una máquina analítica de silicio utilizando los conceptos de programa almacenado de Turing y Von Neuman, lo que hoy conocemos como "microprocesador".

El diseño de Hoff fue llamado el 4004 porque se requirieron aproximadamente 4004 transistores de silicio para su fabricación, y aunque se firmó exclusividad con la compañí­a ETI (el circuito no podría ser usado para el propósito general vislumbrado por Hoff), fue el primer paso para algo que ni siquiera la gente de Intel anticipó.

12. La computadora personal


Para 1970 existían dos tipos de computadoras y dos tipos de compañí­as que las fabricaban. Las enormes computadoras o mainframes eran construidas por IBM y Control Data Corporation, y las computadoras medianas eran construidas por Hewlett-Packard para ser utilizadas en laboratorios y negocios.

Las minicomputadoras utilizaban semiconductores para reducir sus tamaños, mientras que las mainframes los utilizaban para aumentar su capacidad de cómputo en el mismo espacio. Con el desarrollo del microprocesador, podría parecer obvio que las grandes compañías lo emplearan para de alguna manera abaratar la computadora y llevarla hasta los hogares del público, sin embargo, esta situación no se dio por parte de las compañías.

Por un lado, los fabricantes de mainframes pensaban que una computadora "personal" era para el mercado de las minicomputadoras que se enfocaban a capacidades menores, pero esto nunca sucedió. El desarrollo de las computadoras personales se dio por individuos trabajando en forma independiente. Muchos de ellos empleados y ex-empleados de grandes compañías fabricantes de minicomputadoras y mainframes, cansados de que sus propuestas de una computadora personal fueran rechazadas por sus jefes.

Para 1974 la computación parece interesarle al público en general. En ese año apareció en la revista Radio Electronics un proyecto para construir una computadora experimental, la Mark-8.

Para 1975, MITS (compañí­a dedicada anteriormente a fabricar calculadoras), saca al mercado la Altair 8800, la que fomenta que clubes de computación comiencen a formase en todos los Estados Unidos.

Tres microprocesadores comenzaron a dominar el mercado. El Z80 de Zilog, (basado en la arquitectura del 8080 de Intel), el 6502 de MOS Technology y el 6800 de Motorola. Ya para 1976, decenas de compañías pequeñas y medianas se adentraron en la era de la computación personal. Se llevaron a cabo las primeras conferencias sobre microcomputación (nombre que se le daba a las computadoras personales) y la Apple II estaba lista para salir al mercado.

No fue sino hasta principios de los 80 que las grandes compañí­as de comenzaron a ver la potencialidad de mercado que se tenía con la computación personal. Entonces la IBM introduce su IBM PC y las pequeñas compañí­as que sobrevivieron la gran carrera de la microcomputación de los 70 se convirtieron en compañí­as grandes que comenzaron a dominar el mercado como lo es el caso de la Apple Computer.

13. La imaginación es el limite


Hemos visto a lo largo del desarrollo de la computadora, que las primeras aplicaciones eran para el procesamiento de grandes volúmenes de información y para realizar tediosos cálculos matemáticos. Aparte de la línea de las computadoras personales que se basó en el desarrollo del microprocesador y con las aplicaciones que todos conocemos, surgieron otras lí­neas de desarrollo como los microcontroladores y los procesadores digitales de señales o DSP. Los primeros con la idea de incorporar el poder computacional a dispositivos comunes, como automóviles, videograbadoras, equipo de instrumentación y control industrial, equipo médico y aparatos electrodomésticos.

El procesador digital de señales surge con la necesidad de realizar sistemas de procesamiento de señales de propósito general, esto es, hacer las funciones que anteriormente se realizaban con el procesamiento análogo (amplificadores, filtros, elementos no lineales) pero utilizando un programa ejecutado por un procesador especial. La aplicación de los DSPs se da en sistemas de audio, telecomunicaciones, análisis de señales, voz sintética, vídeo y reconocimiento de voz, entre otras.