Core Wars
Las "Core Wars" (ó RedCode) son programas escritos en una variante propia de ensamblador, donde luchan por ocupar la mayor parte de la memoria para así, eliminar al programa oponente. Se habló por primera vez de las CoreWars en un artículo de la revista "Investigación y Ciencia" de 1988, por A.K. Dewdney (en el enlace puedes ver el artículo original en inglés).
( DEWDNEY, A. K. Artículo: JUEGOS DE ORDENADOR, en: Investigación y Ciencia. No. 145, 1988. )
Para nosotros tiene mucho atractivo desde hace tiempo, DuenD y yo hemos pasado algunas horas haciendo programitas y simulando batallas usando el MARS (programa que simula el campo de batalla, si pulsas en el enlace verás varias páginas donde descargarlo).
Es todo un simulador de vida artificial, ya que una vez creado el código y ejecutado, tienes que programarlo lo mejor posible para que sobreviva dentro del campo de batalla haciendo varias operaciones, como reproducirse, saltar entre posiciones, eliminarse, etc ... sin ninguna acción exterior. Ni que decir tiene que también son una especie de "virus" ... en un entorno controlado.
Antes de nada, vamos a ver un poco como es el campo de batalla. Los programas no saben donde termina/empieza la memoria MARS. La posición de memoria "0" no es la primera, es donde está el código del programa, la siguiente será la "1", la "-1" será una posición atrás, etc ... La unidad básica de cada posición de memoria (o sea el contenido) es una instrucción (p.e.: MOV 0 1 ). En el ejemplo, la instrucción consta de una operación (MOV), una dirección de origen (0) y una de destino (1). En el ejemplo, MOV 0 1 copiaría el contenido de la posición de memoria "0", en este caso "MOV 0 1" a la posición "1", o sea, la siguiente posición, resumiendo, esta instrucción se copia a sí misma de una posición a otra en cada ejecución del programa. Y hablando de ejecución, MARS ejecuta sólo una instrucción DE CADA PROGRAMA en cada ciclo. Por ejemplo, si el programa A tiene una sola instrucción y el programa B tiene 3 instrucciones este sería el proceso de ejecución:
Ciclo 1: Instrucción 1 PROGRAMA A
Ciclo 2: Instrucción 1 PROGRAMA B
Ciclo 3: Instrucción 1 PROGRAMA A
Ciclo 4: Instrucción 2 PROGRAMA B
Ciclo 5: Instrucción 1 PROGRAMA A
Ciclo 6: Instrucción 3 PROGRAMA B
Vamos a ver un ejemplo de programa "CoreWar" (por cierto, a los programas se les suele llamar "guerreros"):
Guerrero "Trasgo" ó "Imp" (creo) (el más básico de todos):
MOV 0 1
Así de simple, es el de antes, simplemente se irá copiando en cada posición consecutiva de memoria hasta que logre eliminar al programa contrario.
´
Guerrero "Enano" ó "Dwarf":
ADD #4, 3
MOV 2, @2
JMP -2
DAT #0, #0
Este ya es más complejo, sólo comentar que cuando un número lleva delante el # quiere decir que hace referencia al número en sí, no al contenido de la dirección. En el ejemplo, ADD #4 , 3 implica sumar el número 4 al contenido de la posición de memoria 3, en nuestro caso al ser un DAT #0, #0 (DAT asigna el valor 0 al contenido de la misma posición de memoria), quedaría como DAT #0, #4 ... es un poco complejo al principio pero puedes ver una buena explicación en:
Voy a ver si pico a DuenD y a NOP para jugar de nuevo a las Core y publicaremos nuestros guerreros y nuestros resultados.
Sólo pretendo dar una pequeña guía de iniciación con este artículo, si el tema os parece interesante no dudéis en mandarnos un email o escribir algún comentario para ampliar el tema.
Un poco de magia ;) , David Chesterfield
Este video me lo comentó mi amigo “Laque” en una cena (a ver si nos vemos más) XD , es muy bueno …
24C3 desde "El Geek Errante", #2
Seguimos con nuestro amigo futur3 su visita al 24C3 (que envidia)
http://elgeekerrante.com/24c3-2/
Gracias por la información compañeros, estamos muy atentos, nunca hemos estado tan cerca del CCC.
¿Harto de no resolver el cubo de Rubik?
24C3 desde "El Geek Errante" ...
... Y nuestros amigos de "El Geek Errante" han infiltrado a futur3 en dicho evento ;)
Vamos a seguir sus pasos, no dudéis en visitar:
Guía 2007 de programas gratuitos y aplicaciones Web
Después de este parón navideño ;) ya estamos de vuelta.
Y directo desde la magnífica 86400 y desde LifeHacker:
http://86400.es/2007/12/27/la-guia-2007-de-programas-gratuitos-y-aplicaciones-web/
en inglés, fuente original:
http://lifehacker.com/software/feature/lifehackers-2007-guide-to-free-software-and-webapps-334568.php
Magnífica lista de programas gratuitos Mac, windows y Linux
Pronto volveremos. Un saludo y felices fiestas.
Gregory Colbert, para relajarse un rato ...
Nuestro amigo Juan Antonio ;) nos ha enviado este enlace
La belleza plástica de esta web es impresionante. Como nos comenta Juan Antonio, "Son parte de la Colección de imágenes de un cineasta y fotógrafo canadiense, -Gregory Colbert-, en las que seres humanos y animales establecen una relación de aires casi fantásticos"
A disfrutarla...
Angel of Death 8-BIT Version
Que lo disfruteis!!
Mejora el alcance de tu WIFI
Este articulo complementa el publicado por Cybercaronte sobre wifis seguras hace algun tiempo.
Muchas veces nos encontramos con que la cobertura de nuestra wifi es insuficiente para algunas estancias de nuestra casa, y más hoy en dia con la cantidad de interferencias, telefonos Dect, transmisores A/V y sobre todo las otras Wifis del vecindario. Es bastante comun que al explorar el numero de redes inhalambricas desde nuestra casa, la lista sea bastante larga. Os voy a contar un poco más en profundidad un par de trucos para mejorar vuestra cobertura.
En primer lugar bajaros este programa NetStumbler, con el podreis ver las redes inhalambricas que teneis al alcance. Fijaros que cada una tiene un canal, y la potencia a la que os llega. Elegir vuestro futuro canal teniendo en cuenta que este libre, no haya otra red en un canal adyacente inmediatamente superior e inferior (para evitar solapamientos).
Por ejemplo imaginaros que tenemos wifis cercanas en los canales 3 , 4, 6, 8, 9 y 10, la mejor opción seria los canales 1, 12 y 13. Y de estos tres preferentemente el más bajo, el 1.
Si se diera el caso de que no hay un canal libre sin que esten los adyacentes también, elegiremos uno en el que los adyacentes nos lleguen con menos fuerza y menor cantidad de redes.
Luego sólo teneis que entrar en vuestro router y cambiar este parametro por el nuevo.
Otro parametro que nos puede hacer ganar unos dB es cambiar el modo 802.11 a "b only" lo cual nos limitara la velocidad a 11 Mbps (teóricos siempre) en lugar de los 54 Mbps (más teóricos aún) que nos ofrece el modo "g". Si sólo utilizamos la wifi para internet este cambio de velocidad no nos debería afectar para nada.
Otra opción es cambiar las antenas de nuestro router por otras de otro tipo/ganacia. O también podemos fabricarnos una casera. Las hay para todos los gustos y con diferentes objetos (tarteras de cds, botes de aceitunas, Coca-cola, Pringles, caceloras, etc).
Una muy sencilla de la cual ya vimos un video en el articulo de cybercaronte, y con buen resultado ya que la he probado, está en esta página, donde teneis hasta las plantillas para imprimiroslas y recortar. Son unos reflectores que acoplados a nuestras omnidireccionales del router nos harán ganar unos 10 dB convirtiéndolas en direccionales con unos recortes de cartón y papel de plata. Yo me hice dos y os aseguro que funcionan de maravilla.
Os animo a que comenteis vuestros experimentos.






