El juego de la vida


Hola a todos!

Esta tarde, mientras pasaba mi tiempo libre leyendo en Wikipedia, encontré algo sobre el juego de la vida.

A mi me ha parecido un artículo interesante, y pues la verdad me entusiasmé con el juego y quise programar uno, pero la verdad me quedé en el intento, porque alguien ya había hecho público su código en C.

Aunque tomé su código lo modifiqué un poco y esta es mi versión del juego de la vida.

Código C:
#include //libreria basica de entrada salida
#include //libreria time para sacar la semilla

void main() {
    char cero[]="·";
    char uno[]="";
    int i,j, x=23, y=49;
    char arre[100][100],arreb[100][100];
    int vecino,pre;
    unsigned int iseed = (unsigned int) time (NULL);
    srand (iseed);

    // Llenar la matriz con numeros aleatorios
    for(i=0; i<x; i++) {
        for(j=0; j<y; j++) {
            // Se llena con numeros aleatorios
            arre[i][j]=rand()%2;
        }
    }

    do {
        usleep(300000); // Pausa en microsegundos
        // Reglas de la vida
        for (i=0; i<x; i++) {
            for(j=0; j<y; j++) {
                vecino=0;
                // Contar vecinos
                if(arre[i][j-1]==1) {
                    //vecino izquierda
                    vecino=vecino+1;
                }
                if(arre[i][j+1]==1) {
                    //vecino derecha
                    vecino=vecino+1;
                }
                if (arre[i-1][j]==1) {
                    //vecino arriba
                    vecino=vecino+1;
                }
                if (arre[i+1][j]==1) {
                    //vecino abajo
                    vecino=vecino+1;
                }
                if (arre[i-1][j-1]==1) {
                    //vecino arriba izquierda
                    vecino=vecino+1;
                }
                if (arre[i-1][j+1]==1) {
                    //vecino arriba derecha
                    vecino=vecino+1;
                }
                if (arre[i+1][j-1]==1) {
                    //vecino arriba izquierda
                    vecino=vecino+1;
                }
                if (arre[i+1][j+1]==1) {
                    //vecino abajo derecha
                    vecino=vecino+1;
                }
                // Finaliza la cuenta de vecinos
                // Aplicar las reglas
                if (arre[i][j]==1) {
                    // Si la celula esta viva al inicio
                    if (vecino<=1) {
                        // Si tiene 1 vecino, se muere de soledad
                        arreb[i][j]=0;
                    }
                    if (vecino>=2 && vecino<=3) {
                        // Si tiene entre 2 y 3 vecinos, sobrevive
                        arreb[i][j]=1;
                    }
                    if (vecino>=4) {
                        // Si tiene 4 vecinos, se muere de hambre
                        arreb[i][j]=0;
                    }
                }

                if (arre[i][j]==0) {
                    // Si esta muerta al inicio
                    if (vecino==3) {
                        // Nace por que tiene tres vecinos
                        arreb[i][j]=1;
                    } else {
                        arreb[i][j]=0;
                    }
                }
            }
        }

        // Mostrar la matriz por pantalla
        system ("clear");
        for (i=0;i<x;i++) {
            for (j=0;j<y;j++) {
                if (arreb[i][j]==0) {
                    printf (cero);
                } else {
                    printf (uno);
                }
            }
            printf ("\n");
        }
        for (i=0;i<x;i++) {
            for (j=0;j<y;j++) {
                arre[i][j]=arreb[i][j];
            }
        }
    } while (1==1);
}

La fuente del código: tlacuacheoscuro

Próximamente: Servidores web.
Hasta la próxima!

#electronica-es: Un canal IRC para consultas y debates de temas electrónicos en Freenode


Hace tiempo estaba buscando grupos de debate en tiempo real. Los foros son útiles pero pensaba que estaría bueno tener respuestas más rápidas a las preguntas que me hago constantemente.

Eso me llevó a la búsqueda de canales de chat que fueran de temas relacionados a lo que buscaba. Pero como no encontré lo que buscaba me decidí a crear un canal llamado #electronica-es. Esto ocurrió en un canal de freenode chateando con otros usuarios que se interesaron en la idea. Junto con dualbus (registró el canal), AlexLikeRock, alvarezp (realizó las primeras configuraciones), y yo leoslax (founder) somos los operadores del canal. Si tienes ideas o consultas no dudes en escribirnos.

La idea es crear un espacio virtual donde gente interesada en el tema pueda encontrar a otras personas con intereses en común, para articular proyectos, buscar colaboración o simplemente porque le guste la idea de compartir su trabajo. #electronica-es es un canal donde puedes hablar de todo tema electrónico, desde electrónica digital a electrónica analógica, radiofrecuencia RF, comunicaciones, potencia, control, microcontroladores, audio y el tema del momento Arduino.

Si no sabes lo que es IRC te comento brevemente:

IRC (Internet Relay Chat) es un protocolo de comunicación en tiempo real basado en texto, que permite debates entre dos o más personas. Se diferencia de la mensajería instantánea en que los usuarios no deben acceder a establecer la comunicación de antemano, de tal forma que todos los usuarios que se encuentran en un canal pueden comunicarse entre sí, aunque no hayan tenido ningún contacto anterior. Las conversaciones se desarrollan en los llamados canales de IRC, designados por nombres que habitualmente comienzan con el carácter # o & (este último sólo es utilizado en canales locales del servidor). Es un sistema de charlas ampliamente utilizado por personas de todo el mundo.

Los usuarios del IRC utilizan una aplicación cliente para conectarse con un servidor, en el que funciona una aplicación IRCd (IRC daemon o servidor de IRC) que gestiona los canales y las conversaciones murales. (Resumen de Wikipedia, ver artículo completo)

Básicamente un servidor sería como una ciudad, donde hay bares con nombres como #electronica-es. En ese bar de la ciudad freenode puedes hablar de electrónica. Puede haber un bar que se llame de igual modo en otra ciudad.

En resumen la ciudad en este caso es Frenode y la accedes con el comando /server irc.freenode.net

Al bar entras con el comando /join #electronica-es

Solo te falta comenzar a chatear!

Un saludo.

PD.: Si no sabes que cliente IRC instalar, yo recomiendo XChat que lo puedes descargar desde aquí. En ese programa no necesitaras ingresar tantos comandos, pues ofrece una buena interfáz gráfica.

Enlaces fuera de linea…


Tengo mis enlaces caídos y no los arreglé por falta de tiempo. Pero desde el mes de Agosto me comprometo a recargar los archivos que a mi blog corresponden. No lo realizo ahora por falta de tiempo.

Configuración de red Debian y derivados, parte 2


Debido a que no poseo los conocimientos suficientes para configurar mi interfaz WIFI con ifupdown e iwconfig, me resolvi el problema instalando network-manager … es verdad suena contradictorio desde mi entrada anterior, pero todo tiene una explicación.

Para gestionar la red WIFI utilizo network-manager y para la red cableada utilizo ifupdown. Esto lo logré simplemente reinstalando network-manager que anteriormente yo habia eliminado, sin generar conflictos con la red cableada pues ifupdown ya tiene el control de este dispositivo y network-manager no puede gestionarlo.

Como resultado network-manager solo controla mi interfaz WIFI.

Saludos y hasta la próxima!

Configuración de red en Debian y derivados SIN network-manager


Hace un tiempo tenía problemas de red en mi hogar. Sucede que tengo un módem ADSL que sirve Internet a través de un switch y tengo varios ordenadores conectados a el. Pero por algún misterio de la ciencia, mi sistema GNU/Linux generaba problemas con Internet, hasta dejar sin servicio a todas los demás ordenadores… No tenía muchas ganas de molestarme por ese problema.

Así fue como me decidí a quitar el network-manger con un:

bash:
# apt-get purge network-manager

Y luego edité la configuración de mi placa de red en /etc/network/interfaces con la siguiente línea:

bash:
# nano /etc/network/interfaces

Y me quedó de la siguiente manera:

archivo:
auto lo
iface lo inet loopback

auto eth0
allow-hotplug eth0
iface eth0 inet static
        address 192.168.1.2
        netmask 255.255.255.0
        network 192.168.1.0
        broadcast 192.168.1.255
        gateway 192.168.1.1
        dns-nameservers 192.168.1.1

Mi configuración es con IP estática por eso completé todas las direcciones.

Para cuando terminé todos navegábamos felices y comíamos perdices…

PD.: Si alguien pregunta como supe que el problema era network-manager, le comento que en la misma computadora coexisten dos sistemas operativos (“Durmiendo con el enemigo” :p). Tengo un arranque dual con Windows 7. Windows no provocaba el colapso. Problema de hardware no era. Por si acaso en mi GNU/Linux probé otra tarjeta de red sin obtener buenos resultados. Luego pensé: Es el software, quitemos el network-manager… y problema resuelto.

Otros hubieran preferido que yo arregle el problema con network-manager y colabore con la comunidad, pero la verdad me ha resultado más útil el paquete ifupdown que network-manager.

Hasta la próxima!

Configurar red GNU/Linux – Windows en Debian y sus derivados


En principio es necesario instalar algunos paquetes lo hacemos así:

bash:
# apt-get install samba samba-common smbclient winbind

Luego editar el archivo /etc/samba/smb.conf

bash:
# gedit /etc/samba/smb.conf

Donde dice workgroup = WORKGROUP, reemplazar WORKGROUP por el nombre de grupo de trabajo de los ordenadores que debe ser el mismo.

Borrar el “;” de la linea:

archivo:
;name resolver order = lmhosts hosts wins bcast

Editar el archivo /etc/nsswitch.conf

archivo:
# gedit /etc/nsswitch.conf

Buscar la linea que dice:

archivo:
hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4

Agregar wins antes de dns para que la línea quede así:

archivo:
hosts: files mdns4_minimal [NOTFOUND=return] wins dns mdns4

Luego reiniciar el equipo y listo!

Minecraft en Ubuntu 11.10 + hamachi + server minecraft


Como conseguir minecraft para Ubuntu

Buenas a todos los que leen este artículo de mi blog. En esta entrada voy a contarles sobre el juego que empecé a jugar hace un tiempo. Tuve algunas dificultades para poder ejecutarlo, pero después de googlear un rato, logré jugar al minecraft y hasta montar un server para este juego con hamachi, todo desde Ubuntu.

Lo que todos quieren leer (El procedimiento de toda esta tarea)

Para mi primera vez, no fue tan complicada, solo me llevo tiempo encontrar las herramientas necesarias. Pero en este artículo se dan las instrucciones y las herramientas, por lo que si se siguen las instrucciones como lo hice yo, no creo que haya problemas, y si algo no funciona, espero lo comenten, para buscar posible solución.

Minecraft (Juego)

Lo primero que hay que buscar es una versión de minecraft que funciona en Ubuntu, descargue muchas, pero solo esta me funciona Link. (No se si existe alguna versión mas nueva, pero esa funciona sin problemas)

Una vez que descargamos el archivo solo debemos darle permiso de ejecución. Para hacer eso, tenemos que ir al directorio donde guardamos el archivo y haciendo clic derecho sobre el archivo, seleccionamos en el menú desplegable la opción propiedades. En la ventana que se abre, vamos a la pestaña Permisos y activamos la casilla que dice, permitir ejecutar archivo como un programa. Luego le damos doble clic al archivo y se abre el juego. NOTA: La extensión del archivo descargado es .jar, por lo que es necesario tener instalado OpenJDK Java 6 Runtime. En una instalación normal de Ubuntu viene instalado por defecto, pero si asi no fuera, solo basta ir al centro de software y buscar el programa e instalarlo.

Servidor de minecraft con Hamachi

Si nos aburre jugar solos, cosa que es muy normal, sería bueno poder crear una partida en red. En este método que vamos a utilizar nosotros, como máximo podemos agregar hasta 5 participantes.

Para instalar hamachi en Ubuntu, Eduardo Parra, un forero de Ubuntu-es creó un script para facilitar la tarea. Este script, se encarga practicamente de todo, descargar hamachi, instalarlo, y nos ofrece la posibilidad de elegir un Front-end (Entorno gráfico) para hamachi ya que por si solo, para linux el programa solo funciona en terminal (modo texto). Link

Para iniciar el script, es necesario dar permisos de ejecución del mismo modo que se hizo con el archivo de minecraft.

Recomendaciones: La interfáz gráfica que funciona bien para Ubuntu 11.10 es gHamachi

SI alguien quiere conseguir una versión mas nueva del script, puede buscar en la página del autor. Link
 Igual considero que con la versión que yo proporciono, la instalación irá bien.

El server

El programa del server para minecraft, lo descargué de la página oficial de minecraft. A la fecha de este post, la versión que yo proporciono es la última. Link. Si alguien quiere la ultima versión, visite la página de descargas de minecraft. Y descarga el archivo que se llama, minecraft_server.jar Como sorpresa, para ejecutar este programa, deberán hacer lo mismo que para los otros archivos descargados. Dar permisos de ejecución, haciendo clic derecho sobre el archivo.

Configuración del server

Este apartado lo dejaremos para después, pero pueden encontrar información sobre esto en Google 😉

Hasta la próxima, Seguro luego vengo a terminar el post.

No olviden comentar, y avisen si tienen algún problema o si algún link está roto.

Buscar canciones por sonido


Nunca te pasó que escuchaste una canción y te gusto mucho! Pero.. no sabes cono se llama, ni de quien es, ni tampoco sabes la letra. Estas en problemas!! jajajaa no, no es cierto.

Pues hasta hace un tiempo eso para mi era un problema, hasta que encontré navegando en internet una aplicación web muy buena. Se llama midomi. En esa página pulsan un botón y mediante un micrófono hacen una captura de audio. Si.. necesitan un micrófono.

Seguramente la primera vez que lo uses, de acuerdo a tu configuración de Adobe Flash Player (también es requerido por la página), necesitarás dar permisos al sitio para poder utilizar el micrófono.

Para habilitar el micrófono hacen click derecho sobre el botón de captura del sitio, y se despliega el menú de Flash Player, en ese menú, seleccionan preferencias, y se abre una ventana de configuración del Plugin de Flash Player. Le dan permiso al sitio y si todo va bien, ya pueden capturar sus canciones misteriosas y desenmascarar sus títulos.

Eso es todo por hoy. Espero que les sirva.

Facebook es gratis!


Sii como leen en el titulo! Dejen de escuchar, o leer cualquier cosa que ande suelta!

Facebook es gratis y lo seguira siendo, es la frase que puede leerse en la portada de inicio.

Renovando la vista


Que cambio notaron en la página inicial de Google?

Google tiene la barra superior de color negro. El buscador de imágenes es distinto tambien! Ya habilitaron la funcion de buscar por imagen, solo hay que arrastra una imagen al buscador y google comenzara la busqueda de imagenes similares.

Por otra parte youtube tambien tiene renovado el reproductor.
Y como yo no queria quedarme atras mi blog tiene nuevo tema.