10
Nov
09

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 Sica-Unitierra 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/

 

01
Nov
09

Declaración de independencia del ciberespacio

Dejo aquí una traducción sobre la declaración de independencia del ciberespacio de John Perry Barlowesta traducción la realice personalmente, no se que tan buena sea espero comentarios.

dejo la liga de documento original:

http://w2.eff.org/Censorship/Internet_censorship_bills/barlow_0296.declaration

Dejo también una traducción en wikisource :

http://es.wikisource.org/wiki/Declaraci%C3%B3n_de_independencia_del_ciberespacio

Así como la liga de esta tradución:

http://gist.github.com/223403

Declaración de independencia del ciberespacio

Gobiernos del Mundo Industrial, ustedes cansados gigantes de carne y acero, vengo del Ciberespacio, el nuevo hogar de la Mente. En nombre del futuro y del pasado les pido que nos dejen en paz. No son bienvenidos entre nosotros. No ejercen ninguna soberanía sobre el lugar donde nos reunimos. No hemos elegido ningún gobierno, ni pretendemos tenerlo, así que me dirijo a ustedes sin mas autoridad que  la libertad de expresarme.
Declaro el espacio social global que estamos construyendo independiente por naturaleza de las tiranías que están buscando imponernos. No tienen ningún derecho moral a gobernarnos ni poseen métodos para hacernos cumplir su ley que debamos temer verdaderamente.
Los gobiernos derivan del justo poder del consentimiento de los que son gobernados. No habrán podido ni recibido el nuestro. No los hemos invitado.
Ustedes no nos conocen, ni conocen nuestro mundo. El Ciberespacio no se encuentra dentro de sus fronteras. No piensen que podrán construirlo, como si se tratara de un proyecto de obras públicas. No se puede. Es un acto natural que crece a través de nuestras acciones sociales y colectivas.
No se han unido a nuestra gran conversación colectiva, ni han creado la riqueza de nuestros mercados. Ustedes no sabe de nuestra cultura, nuestra ética, o los códigos no escritos que ya proporcionan a nuestra sociedad más orden que podría obtenerse por cualquiera de sus imposiciones.

Proclaman que hay problemas entre nosotros que necesitan resolverse. y utilizan esto como una excusa para invadir nuestros límites. Muchos de estos problemas no existen. Donde haya verdaderos conflictos, donde haya errores, los identificaremos y la dirección por nuestros propios medios. Estamos creando nuestro propio Contrato Social. Esta forma de gobernarnos se creará según las condiciones de nuestro mundo, no del suyo. Nuestro mundo es diferente.

El Ciberespacio está formado por transacciones, relaciones, y pensamiento en sí mismo, se extiende como una onda estacionaria en la red de nuestras comunicaciones. Nuestro mundo está a la vez en todas partes y en ninguna parte, pero no está donde viven nuestros cuerpos.
Estamos creando un mundo plural en el que tod@s pueden entrar, sin privilegios o prejuicios debidos a la raza, el poder económico, la fuerza militar, o el lugar de nacimiento. Estamos creando un mundo donde cualquiera, en cualquier sitio, puede expresar sus creencias, sin importar lo singulares que sean, sin miedo a ser coaccionado al silencio o al conformismo.
Sus conceptos legales sobre propiedad, expresión, identidad, movimiento y contexto no se aplican a nosotros. Pues estos se basan en la materia(materialismo). Aquí son irrelevantes ya que no hay materia en cuestión.

Nuestras identidades no tienen cuerpo físico, así que, a diferencia de ustedes, no nos pueden imponer orden por coacción física. Creemos que nuestra autoridad emanará de la moral, de un progresista interés propio, y del bien común.
Nuestras identidades pueden distribuirse a través de muchas jurisdicciones. La única ley que todas nuestras culturas reconocerían es la Regla Dorada. Esperamos poder construir nuestras soluciones particulares sobre esa base. Por que no estamos dispuestos ha aceptar las soluciones que están tratando de imponernos.

En Estados Unidos han creado una ley, el Acta de Reforma de las Telecomunicaciones, que repudia la propia Constitución e insulta los sueños de Jefferson, Washington, Mill, Madison, DeToqueville y Brandeis. Estos sueños deben renacer ahora en cada uno de nosotros.
Se Aterrorizan de sus propios hijos, ya que ellos son nativos en un mundo donde ustedes siempre serán inmigrantes. Como les temen, se encomiendan a su burocracia, con las responsabilidades de los padres que son demasiado cobardes para hacer frente a ustedes mismos. En nuestro mundo, todos los sentimientos y expresiones de la humanidad, desde las más viles a las más angelicales, son parte de un todo único; la conversación global de bits. No podemos separar el aire que asfixia del aire sobre las alas que batir.
En China, Alemania, Francia, Rusia, Singapur, Italia y los Estados Unidos, está intentando de protegerse del virus de la libertad erigiendo ser la guardia en las fronteras del Ciberespacio. Pueden impedir el contagio durante un pequeño tiempo, pero esto no funcionará en un mundo que creo tan rápido y con pocos soportes.

Son cada vez más obsoletas las industrias de la información se perpetúan a sí mismas proponiendo leyes, en América y en otras partes, que afirman poseer la palabra por todo el mundo. Estas leyes declaran que las ideas un producto más de la industria, menos noble que el hierro oxidado. En nuestro mundo, lo que la mente humana pueda crear puede ser reproducido y distribuido infinitamente sin ningún costo. El intercambio global del pensamiento ya no necesita de sus fábricas para llevar esto a cabo.

Estas medidas cada vez más hostiles y coloniales, nos colocan en la misma posición a los amantes de la libertad con la auto-determinación de rechazar a las autoridades, los poderes desinformados. Debemos declarar nuestros entidades virtuales inmunes a su soberanía, aunque continuemos soportando su poder sobre nuestros cuerpos. Nos extenderemos a través del planeta para que nadie pueda encarcelar nuestros pensamientos.

Vamos a crear una civilización de la Mente en el Ciberespacio. Que sea más humana y justa que el mundo que nuestros gobiernos hicieron.

25
Oct
09

Implementación algoritmo Prim en Python

Marco teórico:

El algoritmo de Prim es un algoritmo de la teoría de los grafos para encontrar un árbol recubridor mínimo
en un grafo conexo, no dirigido y cuyas aristas están etiquetadas.
En otras palabras, el algoritmo encuentra un subconjunto de aristas que forman un árbol con todos los
vértices, donde el peso total de todas las aristas en el árbol es el mínimo posible. Si el grafo no es conexo,
entonces el algoritmo encontrará el árbol recubridor mínimo para uno de los componentes conexos que
forman dicho grafo no conexo [?] .

Implementación en Python:

#!/usr/bin/python
#        Copyright (C) 2009 fitorec - chanerec@gmail.com
#        Archivo	: prim.py
#        Creado     : 2009-05-31
#        Modificado : 2009-05-31
#       ======================= Descripcion ===========================
#		Input: leemos el grafo de un archivo denominado "grafo" el cual
#				debera estar en el mismo directorio.

import sys, re, string
print "archivo de entrada: 'grafo'"

#funcion auxiliar para extraer los datos del archivo
def extrDatos(linea):
	l = []
	v0 = re.compile("[[a-zA-Z]+ ")
	v1 = re.compile(" [[a-zA-Z]+ ")
	v2 = re.compile("[0-9]+")
	line = re.compile("[a-zA-Z]+ [a-zA-Z]+ [0-9]+")
	mo = line.search(linea)
	if mo:
		print mo.group(0)
	mo = v2.search(linea)
	l2 = []
	if mo:
		l.append(int(mo.group(0)))
	mo = v0.search(linea)
	if mo:
		l.append(mo.group(0).replace(" ",""))
	mo = v1.search(linea)
	if mo:
		l.append(mo.group(0).replace(" ",""))
	l.append(False)
	return l

#revisa si la arista y si alguno de sus nodos no han sido  marcados
def entra(nodo,arista):
	if arista[3] == True :
		return False
	if nodo[0] == arista[1]:
		return True
	if nodo[0] == arista[2]:
		return True
	return False

#revisa si el el vertice v conduce a un nodo nuevo en visitados
def noVisitado(v,visitados):
	if v[3] == True:
		return "$"
	for i in visitados:
		if i[1] == True:
			continue
		if i[0] == v[1]:
			return i[0]
		if i[0] == v[2]:
			return i[0]
	return "$"

f = open("grafo","r")
grafo = []
visitados = []

while True:
     entrada = []
     linea = f.readline()
     if not linea: break
     if re.match("[a-zA-Z]+ [a-zA-Z]+ [0-9]+",linea) :
     	grafo.append(extrDatos(linea))

grafo.sort()

#insertando los nodos a visitados
for i in grafo:
	band = True
	for j in visitados:
		if i[1] == j[0]:
			band = False
			break
	if band == True:
		visitados.append([i[1],False])
	band = True
	for j in visitados:
		if i[2] == j[0]:
			band = False
	if band == True:
		visitados.append([i[2],False])

#iniciando el algoritmo de prim
visitados[0][1] = True;
band = False;
print "\nSe inicio el algoritmo PRIM con el nodo %s" % visitados[0][0]
while band == False:
	vertices = []
	band = True
	for i in range(len(visitados)):
		if visitados[i][1] == False:
			continue
		for j in range(len(grafo)):
			if entra(visitados[i],grafo[j]):
				vertices.append(j)

		vertices.sort()
	for i in vertices:
		s = noVisitado(grafo[i],visitados)
		if s == "$":
			continue
		print "Conociendo %s a traves [(%s,%s),%s]" % (s,grafo[i][1],grafo[i][2],grafo[i][0])
		for j in visitados:
			if j[0] == s:
				j[1] = True
		grafo[i][3] = True
		break
	for n in visitados:
		if n[1] == False:
			band = False
			break

print "\nArbol de expansion minima: "
for i in grafo:
	if i [3] == True:
		print "[(%s,%s),%s]" % (i[1],i[2],i[0])

Corrida de ejemplo:

Para la corrida de ejemplo necesitamos un archivo de entrada el cual describa un grafo para esto he elegida el grafo de la documentacion de wikipedia http://es.wikipedia.org/wiki/Algoritmo_de_Prim .

Grafo a utlizar (Extraido de Wikipedia)

Grafo a utlizar (Extraido de Wikipedia)

Ahora necesitamos insertale al algorimo el grafo par este caso hemos generado el siguiente archivo denominado grafo el cual tine el siguinente formato (nodoA nodoB pesoEntreAyB), veamos el grafo que describe la imagen antes mostrada.

A B 7
A D 5
B C 8
B E 7
D E 15
D F 6
F E 8
F G 11
E G 9
C E 5
B D 9

Pasos:

Paso 1:Ninguna de las aristas está marcada, y el vértice A ha sido elegido arbitrariamente como el punto de
partida.
Paso 2: El Primer vértice es el más cercano a A es D está a 5 de distancia,ya que B se localiza a una
distancia de 7, así que marcamos la arista [(A,D),5] y el nodo A como visitado.
Paso 3: Ahora que solo conoce al Nodo A y D el nodo siguiente por conocer es F a travez de la arista
3
[(D,F),6].
Paso 4: Conociendo B a traves [(A,B),7]
Paso 5: Conociendo E a traves [(B,E),7]
Paso 6: Conociendo C a traves [(C,E),5]
Paso 7: Conociendo G a traves [(E,G),9]

salida en linea de comando

Por ultimo muestro la salida en linea de comandos al ejecutar el script.

usuario@host$./prim.py
archivo de entrada: ’grafo’
A B 7
A D 5
B C 8
B E 7
D E 15
D F 6
F E 8
F G 11
E G 9
C E 5
B D 9
Se inicio el algoritmo PRIM con el nodo A
Conociendo D a traves [(A,D),5]
Conociendo F a traves [(D,F),6]
Conociendo B a traves [(A,B),7]
Conociendo E a traves [(B,E),7]
Conociendo C a traves [(C,E),5]
Conociendo G a traves [(E,G),9]
Arbol de expansion minima:
[(A,D),5]
[(C,E),5]
[(D,F),6]
[(A,B),7]
[(B,E),7]
[(E,G),9]

Decargar Codigo
18
Oct
09

Hotmail y sus problemas de seguridad:

Hace apenas unos días un amigo me pregunto de respecto a la opción “de seguridad mejorada” que nos proporciona hotmail.

Bueno para aquellos que no se han dado cuenta hotmail en su pagina principal de logeo nos ofrece una opción entre si logearse en modo “normal” o logearse por medio de seguridad mejorada.

logeo hotmail

logeo hotmail

Antes de responder me tome unos minutos para reflexionar y se me vinieron otras preguntas, como:

¿por que gmail no, nos da esa opción de: “seguridad mejorada”?

Seguramente algún iluso dirá: Por que Todavía gmail no lo implementa!.

Cuando en realidad la respuesta es por que gmail trabaja con seguridad mejorada siempre :¬D

Entonces que es lo que hace específicamente hotmail cuando ¿presionamos el botón de seguridad mejorada?, y que ¿hace cuando no e iniciamos sesión simplemente?.

Bueno pues en realidad Hotmail trabaja con un nivel de seguridad bastante bajo en donde los datos son trasferidos de manera no segura por distintos servidores en la Internet.

Esto es por que cuando iniciamos sesión de manera “normal” en hotmail los datos son trasferidos bajo una forma definida, bajo un “protocolo” el cual se denomina http(Hypertext Transfer Protocol) que es como funcionan la mayoría de los sitios.

Y cuando presionamos el botón de “seguridad mejorada” los datos son trasferidos pero en esta ocasión bajo otro protocolo, bajo el protocolo “https(Hypertext Transfer Protocol Secure)”.

Cuando realizamos la solicitud http://fitorec.wordpress.com estamos diciendo que queremos que nos transfieran por http lo que esta en fitorec.wordpress.com, pues igual pasa con el correo electrónico cuando le decimos https le decimos que queremos que los datos nos los trasfieran por https, como se puede observar en las capturas en la urls generadas:

Hotmail en  modo normal (http)

Hotmail en modo normal (http)

Hotmail en  modo seguro (https)

Hotmail en modo seguro (https)

Gmail en  modo normal (https)

Gmail en modo normal (https)

Esto se me hace muy irónico, ¿por que hotmail ocupa por predeterminado el logeo no seguro?, que no se supone representa la empresa de mayor desarrollo del software, esta misma empresa tolera los virus…

Desgraciadamente muchos tenemos cuenta de hotmail(lo digo con pena) por cuestiones sociales es por esto que solo nos queda difundir a nuestros contactos que cuando inicien sesión en hotmail lo hagan de modo “seguridad mejorada” , aunque en realidad Hotmail y su seguridad siguen dando mucho que desear.

11
Oct
09

Trigger – Disparadores en PosgreSQL

Un disparador o Trigger es una función con ciertas características, de ellas la mas relevante es que es invocada(llamada) automáticamente al suceder cierta acción sobre una tabla.

Este es el motivo de su nombre ya que son funciones que serán disparadas al suceder cierto evento, insertar un registro, borrar, editar, etc., ademas también podemos definir si este disparador ocurra antes o después de dicho evento.

Nota: para que una función sea denotada como trigger deberá ser declarada como una función que no reciba argumentos y deberá devolver un tipo trigger.

Imaginemos que tenemos el siguiente esquema de la tabla emp(empleados):

CREATE TABLE emp (
    empname text,
    salary integer,
    last_date timestamp,
    last_user text
);

Ahora para este ejemplo lo que pretendemos hacer es que validar los datos antes de ser intertados o actualizados en el registro de emp, para esto declaramos un disparador el cual deberá revisar los datos nuevos a insertar o actualizar, para esto PL/pgSQL nos brinda un objeto denominado NEW el cual tiene como miembro a los nuevos valores por insertar por ejemplo NEW.empname accede al valor de empname que introdujo el usuario al realizar la consulta update o insert. Veamos mejor el ejemplo.

CREATE FUNCTION emp_stamp() RETURNS trigger AS $emp_stamp$
    BEGIN
        -- Revisando que el campo empname No este vacio
        IF NEW.empname IS NULL THEN
            RAISE EXCEPTION ’empname no puede ser null’;
        END IF;
	-- Revisando que el campo salary No este vacio
        IF NEW.salary IS NULL THEN
            RAISE EXCEPTION ’% salary no puede ser null’, NEW.empname;
        END IF;
        -- Salary tampoco puede llegar a ser negavito
        IF NEW.salary < 0 THEN
            RAISE EXCEPTION ’% no puede haber un salario negativo!’, NEW.empname;
        END IF;
        -- Generando los datos para la bitacola
        NEW.last_date := current_timestamp;
        NEW.last_user := current_user;
        RETURN NEW;
    END;
$emp_stamp$ LANGUAGE plpgsql;

De igual forma p.e. En el caso del UPDATE si quisiéramos comparar el valor anterior del campo empname podríamos acceder con desde el objeto OLD en este caso seria OLD.empname, por ultimo solo nos falta instanciar el Trigger a la tabla y eventos correspondientes.

CREATE TRIGGER emp_stamp BEFORE INSERT OR UPDATE ON emp
    FOR EACH ROW EXECUTE PROCEDURE emp_stamp();

Para esto instanciamos el Trigger (CREATE TRIGGER) emp_stamp a la tabla(ON) emp para que sea ejecutado antes (BEFORE) una inserción u una actualización (INSERT OR UPDATE).

Conclusiones:

Como podemos ver un Trigger es una función que es ejecutada automáticamente por el motor de BD al generarse una acción, así también vimos un ejemplo claro de su uso común en la validación de los datos, ya que como podemos ver estas funciones las definimos en el estema de nuestra BD y con esto tenemos la seguridad que nuestras tablas se comportaran de la forma como la definimos, p.e. Si tenemos una aplicación de escritorio programada en Java y otra aplicación distribuida en PHP y ambas hacen uso de la tabla emp, con esto tendremos la certeza que la tabla emp nunca tendrá un campo con el valor salary negativo, sin importar la mala programación en Java o PHP.

Fuente Documentación oficial PosgreSQL 8.4.1 US:

http://www.postgresql.org/files/documentation/pdf/8.4/postgresql-8.4.1-US.pdf

La información fue extraída y traducida de:

  • 9.25. Trigger Functions – paginas 322-323
  • 12.4.3. Triggers for Automatic Updates – paginas 360-362
  • 38.9. Trigger Procedures – paginas 925-931

PostgreSQL 8.4.1 Documentation  by The PostgreSQL Global Development Group  Copyright ©

10
Oct
09

Programacion de Palms con MOJO y Java

Introducción:

Existen múltiples formas de programar estos dispositivos móviles, aquí veremos como configurar nuestro equipo para poder programar a través del kit de desarrollo(MOJO) que nos ofrece esta compañía.

Desarrollo de Aplicaciones en Palm con SDK y MOJO

Desarrollo de Aplicaciones en Palm con SDK y MOJO

Tabla de contenidos:

0.- Breve introducción.

1.- Instalando Entorno de Desarrollo.

1.- Instalando el Entorno de Desarrollo.

linux

Nota: he configurado e instalado sobre ubuntu 9.04.

Lo primero que tenemos que hacer es instalar la suite Mojo SDK para nuestro entorno Linux para esto nos basamos en la documentacion que se localiza en la pagina:

Installing the Palm® Mojo™ SDK on Ubuntu 8.04 http://developer.palm.com/index.php?option=com_content&view=article&id=1585

1.1 . Instalando Virtual Box.

VirtualBox

VirtualBox

Descargamos el virtual box para nuestro linux en la siguiente liga:

http://www.virtualbox.org/wiki/Linux_Downloads

Por ejemplo en mi caso que tengo ubuntu 9.04:

$wget http://download.virtualbox.org/virtualbox/3.0.4/virtualbox-3.0_3.0.4-50677_Ubuntu_jaunty_i386.deb

luego ejecutamos nuestro archivo descargado para instalar.

$sudo deb virtualbox-3.0_3.0.4-50677_Ubuntu_jaunty_i386.deb

posteriormente descargas el SDK MOJO de la pagina de palm:

http://developer.palm.com/index.php?option=com_content&view=article&id=1788

http://developer.palm.com/index.php?option=com_content&view=article&id=1788

una vez descargado se instala:

$sudo deb palm_mojo_sdk-Ubuntu-1.1.0-sdk62-hud25_i386.deb


04
Oct
09

Como grabar un video de tu escritorio en linux con vlc

Existen múltiples formas de como grabar un vídeo de tu escritorio en Linux por lo general la mas común es haciendo uso del comando ffmpeg p.e:

ffmpeg -f x11grab -s wxga -r 25 -i :0.0 -sameq /tmp/out.mpg

Hace apenas un par de dias jugando con el vlc aprendí  una serie de opciones interesantes una de ellas es la de poder obtener un vídeo de tu escritorio:

04
Oct
09

Comparación reproductores de Música Banshee Rhythbox y Amarok

En Linux existen muchos programas para la reproductor de audio y pero en lo personal mis reproductores multimedia favoritos por su capacidad de administrar todos tus archivos de audio son: Rhythmbox, Amarok y el Banshee. Haciendo una analogía estos programas son más o menos al estilo Itunes no podríamos compararlos con Windows Media Player© ya que este ultimo programa es de inferior calidad.

Ventana Principal Amarok

Ventana Principal Amarok

Ventana Principal Banshee

Ventana Principal Banshee

Ventana Principal Rhythmbox

Ventana Principal Rhythmbox

Analizaremos cada uno de estos reproductores, realmente entre el Rhythmbox, Amarok y el Banshee existe poca diferencia pues los 3 son muy buenos proyectos, pero en lo personal yo prefiero el Banshee ya que tiene mejor capacidad de administrar nuestra musica almacenando en un Base de Datos la información de cada de nuestros archivos dicha información la descarga de Internet como: los títulos de los tracks, las carátulas de los discos, etc… De igual forma esta información uno la puede modificar o crear p.e. Le asigna una puntuación en función de un valor que tu le asignes y con esto genera nuestra categoría “Favoritos”, por otra parte se oculta fácilmente en la barra de tareas mostrando una pequeña notificación del Track a reproducir al inicio del mismo, o al pasar nuestro mouse sobre el icono de la barra también nos muestra el archivo que esta reproduciendo.

Leyenda Banshee al pasar el mouse sobre el icono

Leyenda Banshee al pasar el mouse sobre el icono

Leyenda Banshee al iniciar nuevo track

Leyenda Banshee al iniciar nuevo track

Otra de sus ventajas respecto a Rhythbox y Amarok es su capacidad de reproducción vídeos.

El Rhythbox y el Banshee funciona perfectamente en Gnome a diferencia de Amarok que esta desarrollado para funcionar sobre KDE.
Por otra parte el Amarok  y el Banshee tienen la capacidad de poder administrar sus controles por medio de la linea de comandos, aquí muestro algunos los que suelo ocupar mas seguido.

opciones Banshee:

--next
le da play al siguiente track de la lista actual.

--previous
le da play al anterior track de la lista actual.

--play
Automaticamente le da play a los tracks de la lista actual.

--pause
Detiene y Mantiene el puntero en la reproduccion actual.

--stop
Detiene y Resetea el puntero en la reproduccion actual.

--stop-when-finished
Detiene y Resetea el puntero en la reproduccion actual al terminar la cancion que se esta reproduciondo.

--set-volume=NIVEL
Le modificas el nivel de volumen donde NIVEL esta en el rango de (0-100)

--set-position=POSICION
Mueves la reproduccion del Track actual en la POSICION (segundos)

Ver ligas:

Sitio official proyecto Amarok:

http://amarok.kde.org/

Sitio official proyecto Banshee:

http://banshee-project.org/

Sitio official proyecto Rhythmbox:

http://projects.gnome.org/rhythmbox/

30
Sep
09

Guake La mejor Terminal en GNU/Linux Gnome

En GNU/Linux es muy común el uso de la consola pues al ser un S.O. De código abierto la mayoría de sus archivos de configuración se encuentra en archivos de texto y/o tiene una interfaz de configuración en linea de comandos en gral. Si buscamos información de GNU/Linux encontraremos mucha en las cual hará referencia al uso de la consola.

Gnome trae como predeterminado una terminal gráfica para interactuar interprete de linea de comandos (por. lo gral. Bash) denominada gnome-terminal, sin embargo muchas veces el uso tan cotidiano del interprete requiere de una terminal gráfica con mas accesibilidad y con mejor convivencia a nuestro entorno gráfico.

gnome-terminal

gnome-terminal

Para esto yo solía ocupar Yakuake la cual es muy buen emulador de terminal el detalle de esta se basa del KDE Konsole, por lo cual cuando lo instalamos en un entorno Gnome suele descargar varias dependencias y librerías KDE para su óptimo funcionamiento.

Terminal Yakuake

Terminal Yakuake

En una ocasión gracias a un amigo(Mike Rivera) conocí un proyecto similar al Yakuake pero para Gnome este se denomina Guake (con licencia GNU/GPL), de igual forma es una opción para aquellos que necesitamos una terminal a nuestro de forma instantánea, pues con solo presionar F12 aparecerá la ventana  desde la parte superior(esta opción se puede configurar) .

El Guake nos da una serie de opciones como interprete(por defecto Bash) el tipo y color de la fuente, el color del fondo etc. muestro mi configuración:

Guake terminal

Guake terminal

Una vez configurado mi Guake tomo esta apariencia en mi maquina:

Guake ejecutandose en mi escritorio

Guake ejecutandose en mi escritorio

Ventana Guake sola

Ventana Guake sola

Para instalar en el Sistema Operativo Ubuntu 9.04 un basta con ejecutar la siguiente sentencia:

$ sudo apt-get install guake

para otras distribuciones de Linux consultar:

http://trac.guake-terminal.org/downloads

Ahora para que se cargue desde que se inicia el Sistema Operativo basta con ponerlo en los programas de inicio para esto hay que irse siguientes opciones de la barra superior:

Sistema>Preferencias>Aplicaciones al Inicio.

Aparecer la siguiente ventana donde le damos agregar aplicacion:

Programas de Inicio

Programas de Inicio

Listo con esto tendremos lista una bonita terminal con solo presionar F12 desde el momento en que arranca nuestro sistema operativo.

Para mas información sobre Guake :

http://trac.guake-terminal.org/

Para mas información sobre Yakuake :

http://yakuake.kde.org/

10
Sep
09

SICA Soluciones Integrales en Computación Aplicada

Logo Sica

Logo Sica

SICA (Soluciones Integrales en Computación Aplicada)  es(somos) un grupo de amig@s que trabajamos en lo que más nos gusta y apasiona: La tecnología y el desarrollo del mismo.

En lo personal no me gusta ver a SICÁ como una empresa si no más bien como un medio para poder mejorar/trasformar nuestro entorno, para expresarte, socializar,..,  en fin para ser.
Para ello echamos mano de tres ejes básicos que se representan en nuestro logotipo:

  1. Creatividad
  2. Libertad
  3. Esfuerzo y Solidaridad.

Además de esto creo que somos personas de valores e deas(alimentadas por el entorno en el que nos desarrollamos), creemos en las tecnologías “sanas” por esto adoptamos conceptos como los de la FSF cuando nos referimos al Software Libre, pero nos sentimos mas ligados a como decimos aquí en Oaxaca “tecnologías apropiadas” pues estas son socialmente justas, culturalmente apropiables, ecológicamente sensatas y económicamente viables.

Al mismo tiempo estamos concientes del momento histórico en el que vivimos y quiero pensar que la crisis económica y la caída de este modelo socioeconómico en el que nos rige, es una gran oportunidad para que miremos con nuevos ojos nuestro mundo.

Es por esto que tratamos de ser muy participes de los eventos culturares y tecnológicos de nuestro entorno. Nos tratamos de unir con otros compañeros para trabajar y compartir: software, conocimientos, vivencias, etc..

Respecto a la viabilidad económica de SICA es algo un poco complejo ya que muchas veces trabajamos con números rojos y la panza vacía, para nosotros el comercio es algo tan muy normal en el sentido que parte de necesidad de compartir, la de producir algo y compartir para obtener bien/servicio. Es por esto que no nuestros proyectos no son preponderantemente económicos, por eso muchas veces se terminan haciendo contratos del tipo Trueque que nos haga llegar a este bien/servicio que necesitamos y con esto tratamos de revindicar esta practica social del comercio.
En SICA llevamos un camino de 5 años trabajando con aciertos y tropiezos mismos que nos han enseñado que solo la chispa creativa puede ayudarnos a salir de diversos problemas o resolver alguna problemática de forma creativa, esta creatividad no sirve de nada si no podemos plasmar nuestra idea en un proyecto real, por tanto, sabemos que solo el trabajo nos ayuda a ser mejores personas. Es esto lo mas importante de estos 5 años las personas que han estado en SICA de cómo cada una de ellas nos han aportado algo y también sabemos que donde quiera que ellos estén también llevaran algo de SICA….

Por todo esto estamos concientes que el camino por seguir en SICA será difícil pero también sabemos que nunca estaremos solos.




Calendario

Noviembre 2009
L M X J V S D
« Oct    
 1
2345678
9101112131415
16171819202122
23242526272829
30  

del.icio.us/fitorec

Estadisticas

  • 3,402 hits

Bitacola entradas