Rockola en Flujos.org

La rockola

rockola.flujos.org

Flujos.org es un laboratorio de radio y streaming por Internet, entre las cosas desarrolladas es la versión de flujos vivos el cual es una distribución basada en debian booteable el cual tiene todo lo necesario para empezar a trasmitir.

Desde hace algunos meses se empezo con el subproyecto la rockola el cual es un concentrado de las trasmisiones y a la vez un auditeka, para esto estamos haciendo uso de octopress(A blogging framework for hackers), jQuery corriendo sobre HTML5, el proyecto lo administramos con git.

Proyecto:

https://github.com/kyv/rockola

Anuncios

Diseñando un logo para mononeurona.org

Mononeurona.org es un sitio de Internet de colaboración mutua entre usuarios, hace apenas algunos días a través de este blog (mi blog personal) tuve una entrada en el área de contactos por parte del usuario rnstux a el cual contacte a través del twitter (salu2 x Cierto), bueno el caso es que al  informarme un poco sobre el, observe que pertenecía a Mononeurona.org note que también había una convocatoria la cual se me hizo interesante, me inscribí al portal y aquí esta mi primera aportación un par de layouts para el logotipo para el sitio, espero les sea de su agrado.

Logo1 este logotipo esta mas apegado al diseño original del sitio la verdad desconozco q tan radical quieran el cambio de su logotipo por estas razones preferí mantener los colores y la idea del diseño anterior.

Primer Layout para el logo de monoNeurona.org

Primer Layout para el logo de monoNeurona.org

En el segundo layout solo hice un par de modificaciones sobre el concepto del celebro.

Segundo Layout para el logo de monoNeurona.org

Segundo Layout para el logo de monoNeurona.org

Ambos logotipos están desarrollados con el programa de SL Inskcape (dibuja Libremente) y son descargables desde mi open-art en:

http://openart.googlecode.com/files/monoNeurona_logos.zip

Caso el Bruto.es

ElBruto.es

Genesis:

Hace un par de meses me inscribi a la página del elbruto.es (http://fitorec.elbruto.es/)  no soy muy adepto a jugar, pero en el juego se me hiso bastante entretenido, en una ocacion cuando estaba en Oaxaca en la SicaUnitierra platicando con @eymard y @nierox me dijeron que si le entrabamos y armabamos un clan yo le dije que si, y fuee como inicia este caso.

Estudio del caso:

Pues bien el bruto resulta que es un juego desarrollado por motion-twin la forma en como interactuan los brutos es algo rara,  pues existen diversos servidores de elbruto:

Grafico red elbruto.es

Grafico red elbruto.es

Entre toda esta complegidad en la red un detalle importante a destacar es que el el bruto.es (de España) se se conecta para extraer datos del  labrute.fr (de Francia) esto lo hace atravez del usuarios data es por esta razón que no es posible crear el usuario data y si intentamos accedes a los datos de dicho usuario p.e (http://data.elbruto.es/) nos indicara “error: 404 page no found” .

¿Entonces como poder ganar en el bruto?

El problema principal es poder jugar el bruto y subir rapido de nivel, veamos como es esto posible, consideraciones:

1.-Cuando te inscribes en el bruto el primer dia te dan 6 peleas.

2.- Los siguientes dias solo tienes derecho a combatir 3 veces por dia.

3.- Por cada combate que ganes a un bruto de nivel igual al tuyo o superior, te daran 2 puntos de experiencia.

4.- Por cada pelea perdida o ganada(a un bruto de nivel inferior) solo optendras 1 punto de experiencia.

5.- Por cada alumno nuevo que tengas (Se debera registrar con una IP distinta) te daran 1 punto de experiancia.

6.-Cuando un alumno sube de nivel te daran 1 punto de experiencia.

Si nos ponemos a pensar un poquito nos daremos cuenta que existen muchas formas de poder conseguir puntos de experiencia de forma rapida, una de ellas es procurar que nuestro bruto siempre gane las peleas esto para que siempre nos den 2 puntos de experiencia, entonces la pregunta seria ¿como hacerle para que nuestro bruto siempre gane?,esta pregunta es algo complicada yo le estuve pensando en como hacerle la forma como se me ocurrio fue la de buscar a los brutos mas perdedores, esto de alguna manera asegura que nuestro bruto estadisticamente tiene mas probabilidades de ganar.

Cuando nos logeamos en el bruto y nos vamos a la arena para combatir el sistema nos muestra una lista de oponentes de nuestro mismo nivel, como se muestra en la siguiente figura.

arene

¿De todos ellos quien es rival mas debil?, pues en realidad es dificil de decidir, pero podemos explorar a cada uno de ellos para ver sus estadisticar por ejemplo para ver los datos del que esta en la esquina inferior derecha (somdavgs) si podriamos ver sus datos estadisticos en su celda la cual seria la siguiente url: http://somdavgs.elbruto.es/cellule aqui mismo podemos ver datos como: nivel,puntos de vida, fuerza, velocidad, numero total de peleas ganadas; pero hay unos datos muy especiales que son las ultimas 7 actividades de nuestro bruto.

Estas por lo regular son las ultimas 7 peleas, para cada una de ellas nos dice contra quien fue y ademas si el bruto en cuestion la perdio o gano, resulta un poco evidente que a los brutos contra los que gano deberan ser más debiles.

Mi Solución :

La solucion esta implicita en la explicacion previa, en la siguiente imagen intento explicar dicho concepto:

spider

La figura ilustra como el spider(programa que inspecciona las páginas del World Wide Web de forma metódica y automatizada)  selecciona a (Zukoo,4d38,felixxxx31)  como los siguientes candidatos (costado izquierdo) y en un determinado momento llega al usuario el cual tiene todas las peleas perdidas siendo este el rival mas debil(costado derecho).

mi idea fue la de hacer un script que haga:

1.- Que atraves del nick y el pass de nuestro usuario inicie sesion en  la pagina del bruto.

2.-Seleccione a los 6 oponentes candidatos.

3.- Para cada oponente candidato

3.1.- Extraiga los datos estadisticos de cada uno de ellos

3.2. Si el bruto ha perdido sus ultimas  peleas ->

3.2.1  Recomendar combatir contra el.

3.3. Repetir paso(3.1) Para cada bruto que halla perdido

3.- Este paso se repetira asta que halla recorrido un nivel de 3 entre las relaciones

Implementacion:

De la implementación no hay mucho que decir(pues lo importante esta arriba), para realizar mi idea primero pense en Perl, sin embargo todavia no me siento muy comodo con dicho lenguaje asi que me cambie a Python el cual es un lenguaje que llevo utilizando de un corto tiempo para aqui, pero que cada vez me gusta más.

Codigo en python:

acceder al codigo

acceder al codigo

Dejo la documentacion de la que me apoye:

Python doc Internet Protocols and Support: Documentacion oficial(ingles).

http://docs.python.org/library/internet.html

Interactuar con webs en Python : Breve explicación muy intuitiva con ejemplos y en español

http://mundogeek.net/archivos/2008/04/15/interactuar-con-webs-en-python/

 

Conclusión:

Es posible el hacer que nuestros bruto gane siempre solo es cuestion de enfrentarlo contra el rival adecuado, por otra parte seria bueno el crear un script en el cual se conecte atraves de multiples proxy’s y nos creen alumnos si podriamos subir de puntos rapidamente.

Bueno espero que le sirva a alguien este caso.

p.d. Por favor creenme un alumno desde http://fitorec.elbruto.es/

 

Pagina del Gobierno del Estado de Oaxaca caida

Desde hace un par de dias la pagina del gobierno del estado de oaxaca http://www.oaxaca.gob.mx se encuentra caida como si no existiera el servidor.

Esto me llamo la atención asi que realize un una consulta en la pagina de http://www.whois.mx/ para ver que si todabia estaba registrado el dominio y hacia donde esta direcionado, al consultar:

http://www.whois.mx/gateway.jsf?query=oaxaca.gob.mx

me mostro la siguiente información:


Detalle del Dominio
Nombre de Dominio: oaxaca.gob.mx
Fecha de creación: 31 diciembre 1996 12:00:00 AM
Fecha de expiración: 30 diciembre 2009 12:00:00 AM
Fecha de última modificación: 31 diciembre 2008 01:05:16 AM
Registrar Actual
Nombre de la empresa: NIC Mexico
URL: http://www.nic.mx
Contacto Registrante
Nombre: Gobierno del Estado de Oaxaca/Secretaria Tecnica del Poder Ejecutivo [gobie84]
Ciudad: Oaxaca
Estado: Oaxaca
País: México
Contacto Administrativo
Nombre: Ivonne Tadeo Arana [st_oaxaca]
Ciudad: oaxaca
Estado: Oaxaca
País: México
Contacto Técnico
Nombre: Ivonne Tadeo Arana [st_oaxaca]
Ciudad: oaxaca
Estado: Oaxaca
País: México
Contacto de Pago
Nombre: Ivonne Tadeo Arana [st_oaxaca]
Ciudad: oaxaca
Estado: Oaxaca
País: México
Servidores
DNS 1: dns1.oaxaca.gob.mx [72.29.70.148]
DNS 2: dns2.oaxaca.gob.mx [72.29.70.149]
DNS 3:
DNS 4:
DNS 5:

Al tratar de hacerle un traceroute o un ping a los servidores DNS 72.29.70.148, 72.29.70.148 en ambos servidores me marcaban error.

Bueno seguire explorando que onda con esta página.


Errores HTTP

En algunas veces cuando realizamos una solicitud a un servidor web (http) resulta que sucede un error, cuando sucede dicho evento de error lo que hacen los servidores web (p.e. demonio apache) es muestrar una salida de error, por ejemplo el mas clásico error 404 page no found! lo ideal es tratar de reducir a mayor medida los errores en nuestro servidor sin embargo muchos errores son inevitables(como el 404) , en estas ocaciones la mejor solución(según mi opinión) es la de; tratar el error como una excepción veamos como hacer esto, asumiendo que estamos trabajando en un servidor Apache con soporte PHP.

Errores a implementar:

Errores de cliente

HTTP 400

Solicitud mala. Ocurre generalmente cuando se escriben errores de sintaxis en una petición web (en la dirección del navegador). Si se obtiene un error 400, es necesario revisar que todos los caracteres están escritos correctamente.

HTTP 401

Sin autorización. Ocurre cuando se intenta entrar a un directorio que requiera autenticación, y no se introduzca la contraseña±a correcta. También ocurre cuando ese directorio ha negado explícitamente el permiso para entrar a nuestra dirección IP (se le conoce como banning).

HTTP 402

Requiere de pago. Similar al error 401, pero se usa para especificar que para poder autenticarse es necesario realizar un pago al propietario del servidor.

HTTP 403

Prohibido. Ocurre cuando se hace alguna petición HTTP que no está permitida en un sitio, como por ejemplo listar directorios en algunos sistemas.

HTTP 404

No encontrado. La dirección que usted introdujo no existe en el servidor web. En esos casos es importante comunicarlo a la persona responsable de la página, o revisar por ejemplo si se escribiá “.htm” en vez de “.html” (o viceversa).

HTTP 407

Se requiere autenticación del proxy. En muchas empresas, hay páginas que sálo deben de ser vistas por personal interno de la compañía. Para ello, se establecen servidores conocidos como “proxies”, los cuales administran todas las transacciones entre los usuarios autorizados y TODAS las páginas. Sin embargo, se puede hacer que una página simplemente no permita desplegar la información si no es un usuario autenticado a través de este servidor.

HTTP 415

Tipo de medio no soportado. Ocurre generalmente cuando se intenta hacer una petición de servicio administrada por el servidor, y el cliente no cuenta con los medios. Un caso típico es el tratar de ver un archivo Flash en el explorador, cuando este en realidad no tiene.

Errores de servidor

HTTP 500

Error Interno del Servidor. Cuando se obtiene este error, significa que el “script” que se estaba ejecutando (generalmente es un archivo .cgi, .asp, .php, .cfm, etc.) tuvo un error. Hay lenguajes que además del error 500 envían una explicación del error (como PHP), pero otros simplemente envían el error. Cuando esto ocurre, no existe nada que el usuario pueda hacer. El error tiene que ser corregido por el administrador del sitio.

HTTP 501

No implementado. Significa que el servidor no entiende la petición o la instrucción que el cliente la ha hecho. En la mayoría de los casos, ocurre que el administrador explícitamente ha denegado el uso de determinado servicio en el servidor.

HTTP 502

Gateway incorrecto. Un gateway es un enlace de datos entre el cliente y el servidor, que usualmente se usar para pasar variables de las formas, subir imágenes y archivos, etc. Existen 2 formas de pasar datos: una enviándola a través de la petición web (mejor conocida como GET), y otra enviándola a través de un gateway (conocida como POST). Si este gateway no es correctamente configurado, o es demasiado grande, o trata de ejecutar una función prohibida, se desplegará este error.

HTTP 503

Servicio no disponible. Relacionado con el error anterior. Este error se refiere particularmente al hecho de que el método POST no está permitido en el servidor, y algún formulario lo utilice. Si usted es el creador de la forma, utilice el método GET en la medida de lo posible o contacte a su administrador del servidor para que active el servicio de gateway. Si usted es un usuario, comunique al creador del sitio de este problema.

fuente: http://www.webpymes.cl/?cat=42

Ahora para implementar los errores utilizaremos una directiva definida por Apache la cual se deberá poner en el archivo .htaccess.

Mas info configuración .htaccess : http://httpd.apache.org/docs/1.3/howto/htaccess.html

Configurando el archivo .htaccess :

ErrorDocument 401 /error.php?errno=401
ErrorDocument 402 /error.php?errno=402
ErrorDocument 403 /error.php?errno=403
ErrorDocument 404 /error.php?errno=404
ErrorDocument 407 /error.php?errno=407
ErrorDocument 415 /error.php?errno=415
ErrorDocument 500 /error.php?errno=500
ErrorDocument 501 /error.php?errno=501
ErrorDocument 502 /error.php?errno=502
ErrorDocument 503 /error.php?errno=503

Como podemos ver todos van direccionamiento hacia el archivo error.php y lo único que cambiamos es el parámetro de error denominado como errno.

Veamos como quedaría:

Creando el archivo error.php

<?php

if(!isset($_GET[“errno”])){

header(“Location: http://localhost&#8221;);

exit;

}

?>

<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”>

<html lang=”en”>

<head>

<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″>

<title>..:: ERROR! ::..</title>

</head>

<body>

<?php

function accionError($type){

switch($type){

case “400”:

//acción error

break;

case “401”:

//acción error

break;

case “402”:

//acción error

break;

case “403”:

//acción error

break;

case “404”:

//acción error

break;

case “407”:

//acción error

break;

case “415”:

//acción error

break;

case “500”:

//acción error

break;

case “501”:

//acción error

break;

case “502”:

//acción error

break;

case “503”:

//acción error

}

echo “Error:”.$type;

}

$datos = array( “400”=>”Solicitud mala.”,

“401”=>”Sin autorizaci&oacute;n. “,

“402”=>”Sin autorizaci&oacute;n Requiere de pago. “,

“403”=>”Zona prohibida.”,

“404”=>”P&aacute;gina no encontrada.”,

“407”=>”Se requiere autenticaci&oacute;n del proxy.”,

“415”=>”Tipo de medio no soportado.”,

“500”=>”Error Interno del Servidor.”,

“501”=>”Servicio no implementado”,

“502”=>”Gateway incorrecto”,

“503”=>”Servicio no disponible”

);

$sal = accionError($_GET[‘errno’]).”</h3>”.$datos[$_GET[‘errno’]];

echo “<h3>”.$sal;

echo “http://localhost/&#8221;.

$_SERVER[‘REQUEST_URI’];

?>

</body>

</html>

Por ultimo dejo el Script comprimido espero sea de utilidad:

http://www.mundosica.com/descargas/scripts/errorHttp.zip