188 meneos
4513 clics
![ADN visto a través de los ojos de un programador (o, si eres un martillo, todo parece un clavo) [ENG]](cache/34/7b/media_thumb-link-3439520.jpeg?1610309286)
ADN visto a través de los ojos de un programador (o, si eres un martillo, todo parece un clavo) [ENG]
El ADN no es como la fuente de C, sino más como un código compilado por bytes para una máquina virtual llamada "el núcleo". Es muy dudoso que haya una fuente para esta compilación de bytes; lo que ve es todo lo que obtiene. El lenguaje del ADN es digital, pero no binario. Donde la codificación binaria tiene 0 y 1 para trabajar (2, de ahí el "bi"), el ADN tiene 4 posiciones, T, C, G y A. Mientras que un byte digital consta principalmente de 8 dígitos binarios, un "byte" de ADN (llamado "codón") tiene tres dígitos.
|
comentarios cerrados
#define TRUE FALSE //Happy debugging scientists
Es como si tu código cambiase la CPU para que las siguientes veces ejecute cosas diferentes.
El DNA contiene genes, que son la secuencia de aminoácidos que se usa para producir proteinas. Hay unas 200.000 proteinas distintas en una célula humana. Eso es lo que constituye el interior de la cálula, que no es un líquido, sino ese empaquetamiento de proteinas.
El DNA contiene más cosas y son instrucciones. Como lo más próximo a un gen están las instrucciones en que se indica la cantidad que se debe producir y donde hay que entregar esa proteina. La célula contiene la maquinaria que sabe interpretar y ejecutar esas instrucciones.
Para evitar que las proteinas se produzcan cuando no se debe, el DNA está cubierto por una capa de azúcares. Estos son capaces de apartarse cuando se les indica para permitir la producción de la proteina y quedarse ahí tapando el resto del tiempo. El DNA contiene las instrucciones que le indican a la maquinaria celular a donde ir para hacer esto.
La mayor parte del DNA no podemos leerlo todavía, pero a mi me parece algo muy parecido a código muy liado y extraordinariamente optimizado.
www.meneame.net/c/31781436
func Olvidar_Movil(segs);
Porfavor
De hecho la única diferencia es que la función de valoración de los "individuos" está muy acotada en el código mientras que en la vida real pueden haber muchos más outliers (te puede caer una piedra, ser comido por un leon... darte con un taser en los cataplines...) pero el funcionamiento es el mismo.
No hay dios que lo entienda y está lleno de fallos de seguridad.
Va a hacer falta refactorizar a saco. Y no hay tests unitarios ni nada.
Desperdicio de memoria.
Es como si según fuera la temperatura exterior del ordenador y la velocidad del viento ese día ese mismo código fuera el Mortal Kombat o el Internet Explorer.
El error es intentar interpretar ese código como si hubiera sido programado para una función, la realidad es que son "instrucciones" al tun tun que son interpretadas de formas distintas según el contexto y dan resultados que casualmente a base de millones de años de intentos obtienen un resultado útil.
Es como si hicieras un script que generase código binario aleatorio continuamente y lo ejecutase en todo tipo de máquinas distintas a la vez (PC, Xbox, Game Boy, etc.) y el código binario que diera por pura chiripa algún resultado útil en alguna o varias de esas plataformas quedase por la posteridad mientras se siguen intentando más combinaciones aleatorias.
Pretender ir a ese binario y "entender" lo que hace como si lo hubiera hecho un programador es un error.
Y no lo llevaría fuera del organismo (por lo que dices de que te puede caer una piedra etc...) Si no directamente en la fecundación por ejemplo, de una célula acaban saliendo miles de células especializadas, todas con "ancestros" comunes, que al reproducirse y cambiar la composición química de su entorno afectaron a sus descendientes.
Lo explica de forma brillante Richard Dawkins en el relojero ciego al explicar porque una concha en espiral sigue tan claramente un patrón matemático. Al reproducirse, las propias células alteran su entorno y hacen que sus descendientes se reproduzcan siguiendo el patrón de la espiral.
Supongo que cuando el óvulo y el espermatozoide se unen, en su interior hay un interpretador funcional que toma ahora la nueva cadena de ADN (producto del cruce) y comienza a operar, primero inicializando todos los procesos de formación de órganos.
Cambiando a AAAA=>0x00, AAAT=>0x01, AAAC=>0x02, AAAG=>0x03, AATA=>0x04, .... hasta GGGG=>0xFF.
Está en utf-8-dog*, y se puede leer claramente comentarios en los humanos tales como:
// I am not responsible of this code
// drunk, fix later
// gotta find a better job
* La mayor parte están en Sumerio, en gaélico y luego pictogramas, pero el código más nuevo lo pone en inglés
* dog es un ser que es como god pero al revés, existe y es buen chico
Ostras! Lo leí en los 90!
En tales dispositivos no existe diferenciación entre "código" y "dato". De hecho, el hecho de que "código" y "dato" sean esencialmente lo mismo en una computadora moderna, ha sido el origen durante décadas de numerosos problemas de seguridad relacionados con la gestión de la memoria. Por ejemplo, los "stack-based buffer overflow" o técnicas similares, se basan en que un codigo modifica el codigo cuando en realidad quería modificar datos.
Esto significaría que una computadora como las descritas tiene exactamente la misma propiedad. De igual forma que el ADN no puede alterar las leyes de la física, el código no puede alterar la CPU. Pero de la misma forma que el ADN puede generar subproductos que alteran el estado de forma que condicionan la ejecución de la siguiente parte, el código puede hacer exactamente lo mismo.
El codigo compilado siempre es mejor que el interpretado.
Mejor en que dimensión? Tienen los códigos un valor absoluto? Me cuesta creerlo.
El ADN está empaquetado gracias a las histonas que son proteínas modificables que dan acceso al ADN a otras proteínas dependiendo de las condiciones.