Mostrando entradas con la etiqueta Documentación. Mostrar todas las entradas
Mostrando entradas con la etiqueta Documentación. Mostrar todas las entradas

lunes, 19 de agosto de 2019

La máquina autoreplicable de Von Neumann

A Von Neumann todos los informátic@s le conocemos por "la arquitectura de Von Neumann", para que os hagáis una idea, todos los ordenadores, teléfonos móviles, tablets, consolas,... funcionan siguiendo esta arquitectura (virtualmente hablando).

Pero de entre todas las cosas que hizo (https://es.wikipedia.org/wiki/John_von_Neumann), siempre ha habido una de sus teorías que me ha llamado la atención: "La máquina de Von Neumann".

Este concepto se basa en la autoreplicación, que es lo que hacen los virus cuando se infiltran en nuestro organismo. Si pensamos en los virus informáticos, son máquinas de Von Neumann al 100%.

La teoría de estas máquinas surge de la idea de realizar tareas muy pesadas en entornos hostiles, a los que el hombre no puede acceder, por ejemplo: extracción de mineral en otros planetas.

Voy a demostraros la potencia de estas máquinas a través de este problema:

Supongamos que en el planeta X se ha encontrado una veta de mineral, con el que se obtiene hierro después de procesarlo. Estimamos que en la veta hay 20.000 toneladas de ese mineral. Tenemos una máquina que extrae una tonelada del mineral en una semana, y después tarda tres días en procesarlo y obtener hierro. ¿Cómo hacemos para extraer todo ese mineral? Hay que tener en cuenta que ningún ser humano puede pisar en ese planeta.

a) Primera idea: mandamos un cohete con un robot, el robot extrae el material, lo procesa, lo mete en el cohete y éste hace viajes de ida y vuelta con el material.


Éste es nuestro amigo, que sólo conoce 2 órdenes: Extrae y Procesa

Tiempo de extracción y procesado: 10 x 20.000 = 200.000 días ->  548 años (redondeando)

Se nos va un pelín de tiempo.

b) Con la máquina de Von Neumann: mandamos un cohete con un robot igual que el anterior, pero además puede autoreplicarse en 30 días consumiendo una tonelada de material en el proceso.

Nuestro amigo, que ahora conoce 3 órdenes: Extrae, Procesa
 y Replica

Supongamos cinco iteraciones en el proceso de replicación:

1) Robot original:
     - Extrae material y lo procesa: 10 días
     - Se replica: 30 días
     - Resultado: un robot adicional (primera generación)
2) Tenemos dos robots
     - Extraen material y lo procesan: 10 días
     - Se replican: 30 días
     - Resultado: dos robots adicionales (segunda generación)
3) Tenemos cuatro robots:
     - Extraen material y lo procesan: 10 días
     - Se replican: 30 días
     - Resultado: cuatro robots adicionales (tercera generación)
4) Tenemos ocho robots:
     - Extraen material y lo procesan: 10 días
     - Se replican: 30 días
     - Resultado: ocho robots adicionales (cuarta generación)
5) Tenemos 16 robots:
     - Extraen material y lo procesan: 10 días
     - Se replican: 30 días
     - Resultado: 16 robots adicionales (quinta generación)

Se acaba la fase de autoreplicación, si todo ha ido bien en total tenemos a 32 robots funcionales, y hemos perdido:

 - 31 toneladas de material (en las replicaciones), nos quedan 19.969 toneladas por extraer
 - 200 días (5 iteraciones de 40 días)

Veremos si han merecido la pena estas pérdidas, teniendo en cuenta que nos quedan 19.969 toneladas por extraer.

Empezamos la fase de extracción:

19.969 x 10 = 199.690 días 

199.690 días / 32 robots = 6.240 días -> 17 años (redondeando de nuevo)

Hemos perdido algo de material, pero el tiempo se ha reducido considerablemente: 531 años.

Si aumentáramos el número de iteraciones de la replicación, podríamos seguir bajando el tiempo.

Un genio este Von Neumann.

Imagen de Johnny 5 por cortesía de Wikimedia: https://es.wikipedia.org/wiki/Johnny_5

domingo, 5 de abril de 2015

Documentación y recursos de Microsoft


En este post la intención es comentar y enumerar los recursos y documentación disponibles en Internet sobre las tecnologías Microsoft.

En las primeras versiones de Visual Studio se incluían varios CD's de documentación para ser instalada en el ordenador. Esta documentación, llamada MSDN (Microsoft Developer Network) junto con Internet eran la forma de encontrar las soluciones a los problemas que encontrábamos en el trabajo diario con las primeras versiones del framework .Net.

Sin embargo poco a poco fueron apareciendo, impulsados por la propia Microsoft, más recursos disponibles on-line, y en la actualidad hay todo un ecosistema de documentación, cursos, tutoriales, blogs, etc., que sumados a los recursos "habituales" que todo profesional del software suele utilizar (como StackOverflow, por ejemplo), facilitan enormemente el trabajo diario con las herramientas software de Microsoft.

A continuación veremos unos cuantos de estos recursos disponibles:

1) MSDN. Microsoft Developer Network. Probablemente la fuente de documentación más conocida. Es una web muy completa donde se puede encontrar información de todo tipo sobre las tecnologías Microsoft:


Como ejemplo, en el apartado "Documentación" se puede encontrar la referencia al API de Microsoft, lo que nos permitirá ver toda la información de todas las tecnologías, consultar namespaces, funciones, propiedades...


2) Microsoft TechNet. En esta página web Microsoft pone a disposición de la Comunidad TI numerosos recursos y herramientas. 

Aquí se pueden encontrar encuentran noticias, enlaces a descargas, solución de problemas, y una amplia comunidad de profesionales entre los que se encuentran MVP's de Microsoft, que intervienen en foros y escriben en blogs para ayudar a difundir las tecnologías Microsoft.

3) Páginas de recursos específicos. Debido a que Microsoft ofrece recursos y soluciones en múltiples campos, para sus productos más conocidos y utilizados es posible encontrar una página web específica que concentra toda la información relativa a dicho producto. Por ejemplo:

IIS.Net. Página web sobre Internet Information Server, el servidor web de Microsoft.
ASP.Net. Página web sobre ASP.Net, el framework web de Microsoft para la construcción de websites y aplicaciones web.
Visual Studio. Toda la información relativa al compilador de .Net Visual Studio, tanto en su versión off-line como en su versión on-line.
Microsoft .Net. Toda la información sobre el framework de programación .Net.
Azure. La nube de Microsoft. El acceso e información sobre la misma se puede encontrar aquí.

4) Blogs. Muchos profesionales, evangelistas, MVP's de Microsoft y principales responsables de los productos más utilizados escriben en blogs acerca de estos productos y tecnologías, como por ejemplo Scott Hanselman, Scott Guthrie o S. Somasegar. En español tenemos por ejemplo Geeks.ms, donde numerosos profesionales de Microsoft escriben numerosos artículos en castellano.

5) Microsoft Virtual Academy. Academia Virtual de Microsoft. Aquí se concentran múltiples cursos y eventos en directo. La inscripción con la cuenta de Outlook es gratuita, y una vez dentro se pueden buscar cursos por tecnología y crearse un plan de aprendizaje personalizado. Esta academia utiliza gamificación, de forma que por cada curso terminado se nos otorgan unos puntos que nos clasifican en el conjunto de usuarios registrados, y además es posible obtener puntos de bonificación. La mayoría de los vídeos de los cursos se encuentran en inglés, pero muchos de ellos tienen subtítulos disponibles. Estos cursos están impartidos por profesionales de Microsoft.

Finalmente, es muy importante destacar, que aunque estos recursos se encuentran focalizados en tecnologías Microsoft, hay que tener en cuenta que Microsoft se está abriendo cada vez más a la integración y uso de otras tecnologías, especialmente al software libre (Open Source). Por eso no debe extrañar ver un curso sobre MongoDB o Git en la Microsoft Virtual Academy, o que al utilizar Azure se pueda configurar y utilizar una máquina virtual Linux, o que incluso el código fuente del framework .Net esté disponible en GitHub. Así que no es de extrañar el poder encontrar información sobre otras tecnologías en estas páginas, y no sólo de las tecnologías Microsoft.

Espero que esta información os sea útil y os facilite un poco más el trabajo del día a día con tecnologías y productos Microsoft como me lo facilita a mí.