sudo update-alternatives --config java
Practicas en diferentes lenguajes, comunicación con hardware, proyectos electrónica, todo lo que me de la gana de hacer!!
Buscar este blog
diciembre 08, 2010
diciembre 03, 2010
Proxy ISA problema con GNU/Linux-Ubuntu
Username "usuario del proxy"
Domain "dominio del proxy"
Password "clave del proxy"
Proxy "ip del proxy:puerto"
Username Espe\alumno
Domain espe.init
Password Espe001
Proxy 10.1.0.112:8080
noviembre 13, 2010
1er Encuentro Nacional de Software Libre - Ecuador
- El portal del Club "CSL"
- El proyecto de control de asistencia y control de ambiente
- UTC (Ultra thin client)
agosto 21, 2010
Python + compartir archivos a la red local
- Abres un terminal y en consola te diriges hasta el directorio que quieres compartir.
cd /home/jose/Documentos
- Ahora desde ahi, ejecutas:
python -m SimpleHTTPServer
- Y abras creado un servidor web, que permite a otros usuarios acceder al contenido de tu carpeta desde un navegador si utilizan la siguiente URL: http://IP_de_tu_equipo:8000
- Rapido y muy util!!
- Solo podrán ver los documentos, nunca editarlos.
- Nota: lo puedes probar localmente con http://localhost:8000
agosto 17, 2010
agosto 09, 2010
Python + Robotica
No olvidar en el codigo que esta acontinuacion respetar las sangrias en condicionantes if y en las declaraciones de funciones
Mas adelante subire un video de este ejemplo funcionando (Apenas lo encuentre)
from AriaPy import *
import sys
def posicion():
robot.lock()
pose = robot.getPose();
print "La posicion del robot: (", pose.x, ",", pose.y, ",", pose.th, ")"
robot.unlock()
def movimiento(movi):
robot.lock()
print "El robot se va a mover "+str(movi)+" mm"
robot.move(movi)
robot.unlock()
def rotar(rot):
robot.lock()
print "El robot va a rotar "+str(rot)+" grados"
robot.setHeading(rot)
robot.unlock()
def activaMotores():
robot.lock()
robot.enableMotors()
robot.unlock()
# Global library initialization, just like the C++ API:
Aria.init()
# Create a robot object:
robot = ArRobot()
# Create a "simple connector" object and connect to either the simulator
# or the robot. Unlike the C++ API which takes int and char* pointers,
# the Python constructor just takes argv as a list.
print "Connecting..."
con = ArSimpleConnector(sys.argv)
if not con.parseArgs():
con.logOptions()
sys.exit(1)
if not con.connectRobot(robot):
print "Could not connect to robot, exiting"
sys.exit(1)
# Run the robot threads in the background:
print "Running..."
robot.runAsync(1)
print "El voltaje de la vateria es: "+str(robot.getBatteryVoltage())
activaMotores()
posicion()
ArUtil.sleep(5000) #Son 5 seg
movimiento(300)
ArUtil.sleep(5000) #Son 5 seg
rotar(-45)
ArUtil.sleep(5000) #Son 5 seg
movimiento(300)
ArUtil.sleep(5000) #Son 5 seg
rotar(-90)
ArUtil.sleep(5000) #Son 5 seg
movimiento(300)
ArUtil.sleep(5000) #Son 5 seg
rotar(225)
ArUtil.sleep(5000) #Son 5 seg
movimiento(300)
ArUtil.sleep(5000) #Son 5 seg
rotar(180)
ArUtil.sleep(5000) #Son 5 seg
movimiento(300)
ArUtil.sleep(5000) #Son 5 seg
rotar(135)
ArUtil.sleep(5000) #Son 5 seg
movimiento(300)
ArUtil.sleep(5000)
rotar(90)
ArUtil.sleep(5000) #Son 5 seg
movimiento(300)
ArUtil.sleep(5000)
rotar(45)
ArUtil.sleep(5000) #Son 5 seg
movimiento(300)
ArUtil.sleep(5000)
rotar(0)
ArUtil.sleep(5000) #Son 5 seg
posicion()
print "Fin!"
Aria.shutdown()
junio 20, 2010
ELGG y GNewBook
Como ponen en su pagina Conectar, Compartir, Colaborar. Son sus puntos mas importantes en especial el ultimo colaborar este es el mas importante ya que no en todas las redes sociales se siente esa cercanía de los desarrolladores indendientes con el proyecto. bueno sin mas les dejo un video para que puedan ver como va.
http://www.softwarelibrespe.org/social/elgg/
Quinto Juego!
Este va a ser el ultimo juego, ya que con lo explicado puede no ser mucho, pero ya van a poder entender un poco de lo relacionado con el tema, como no se explico mucho de las senales busquen informacion de:
glade http://live.gnome.org/Glade/Tutorials
GTK http://www.pygtk.org/docs/pygtk/
Python http://python.org/doc/
Para el caso de las senales como van a poder ver en el programa inicio.py son llamadas atraves de metodos y este metodo trae al objeto widget de esta senal y a este podemos aplicar todas las funciones que este tenga:
def entry1_changed_cb(self, widget, data=None):
self.q1 = widget.get_text()
if float(self.q1) > 110:
widget.set_text("110")
if float(self.q1) < -110:
widget.set_text("-110")
self.q1 = widget.get_text()
Para ejecutar el programa deben tener conectado un cable serial-USB o modem-gsm para activar los movimientos si no les va a dar error al mandar a realizar los movimientos o deben comentar todas las funciones que digan "serial_robo()" claro menos la de la función, el programa esta estructurado en tre partes la de notificaciones, movimiento y inicio.
Notificación:
Es la misma que se les mostro en juego anterior.
Movimiento:
Este aplica listas, para hacer una supuesta matriz no tiene ninguna función real es solo para practicar, esta dentro de la función homogenea(alfa1,alfa2,z), graficar(a,b,c,fig,espacial) nos permite como su nombre nos indica graficar como va a quedar el SCARA desde una vista superior, esta les puede servir si necesitan graficar señales (seno, cosenos, tangentes, sonidos), si conocen matlab en este no se van a perder.
if __name__ == '__main__':
arg=int(sys.argv[1]),int(sys.argv[2]),float(sys.argv[3])
main(arg[0],arg[1],arg[2])
Este nos permite aparte de ejecutarlo como modulo, puede ser ejecutado como aplicación como se realizar en ciertas partes del programa inicio.py
Inicio:
Como ya se menciono tiene serial_robo() que nos permite comunicarnos con un puerto serial, pero lo principal en este es esta parte de codigo que es la que se encarga de levantar el entorno gráfico hecho con glade.
TutorialApp() es la clase del programa, no olvidar de importar pygtk y gtk ya que son necesarias para que funcione todo.
Disculpen la demora de estos dos últimos juegos (recién salgo de las semanas de pruebas y proyectos a ya presente este proyecto y no salio también tuvimos problemas con un puente H) y lo cortos que son pero creo que con estas pequeñas bases ya pueden comenzar a descubrir por su cuenta el gran mundo de Python que les espera, gracias por seguir esta simple y triste guía.
Si quieren ayuda pueden escribirnos a meliespe@softwarelibrespe.org o en los comentarios.
Cuarto juego!
import sys
import matplotlib.pyplot as pyplot #Libreria python-matplotlib
import pylab
from math import acos, asin, cos, sin, radians, sqrt, pow, pi, atan
Si necesitamos utilizar un metodo de programa nuestro?
se puede lo unico que nos toca añadir al código del programa donde se encuentra la función que necesitamos es
class notificacion_gnome:
def __init__(self):
print "Inicio correctamente"
Entonces añadir este funcion al programa ya podemos poner:
from {su programa} import {función a importar}
Si desean mas información pueden dirigirse a esta pagina: http://docs.python.org/tutorial/classes.html (explica como utilizarlo mucho mejor y no de una manera tan simple como les muestro)
Códigos ejemplo:
notificaiones
Necesita "python-notify" va relacionada con "libnotify", me parece que python-notify ya viene instalado en ubuntu, no me acuerdo.
junio 14, 2010
Feliz Cumpleaños!!!!!
Hoy es un día muy especial para la persona que tiene un brillo en sus ojos que te dan calidez y espero que este brillo nunca desaparezca, ya que me mostró que se puede confiar en las personas y me a pasados muchas faltas; gracias por todo Maybeline y espero que tengas un lindo día, gracias por todo. Y espero que te mejores y suerte en la escuela.
junio 12, 2010
eye OS 1.9
Para probarlo:
junio 05, 2010
Video
Para descargar el video:
Video de como usar Glade segun lo explicado por Tercer Juego!
junio 01, 2010
Tercer juego!
Es una librería que nos permite manejar la librería GTK+ (es multiplataforma es para GNU-Linux y Windows) este es muy importante para poder comenzar a trabajar ya que va a hacer de enlace entre nuestro código y GTK+.
Glade
Para este caso podemos instalarlo de diferentes maneras bajarlo de su pagina o repositorio de nuestra distribución; para este caso vamos a instalarlo por "Centro de Software de Ubuntu" la aplicación
glade
:El que vamos a utilizar es el primer icono el de ventana ya que este es la base para todo el resto de opciones del nivel superior
Icono de ventana
Aparece en el espacio de trabajo que se encuentra el la parte superior derecha del programa en la opción de widget, después de abrirla nos dirigimos a las propiedades que se encuentra en la parte inferior derecha del programa a la pestaña General, nombre es el nombre de la ventana este es muy importante ya que en el programa es este como lo llama al widget, y comenzamos a configurar los diferentes parametros de general y empaquetado.
Ya listo esto debemos proceder a añadir los contenedores que es donde se van a poner los elementos de nuestro entorno gráfico y en estos tenemos a HBOX y VBOX que son como el esqueleto de la ventana y en las áreas donde nos de libre se ingresan los cuadros de texto, caja de texto, arboles, etc.. haciendo que todo sea ajustable en su área.
VBOX Y HBOX
Nos pone áreas de trabajo en forma vertical o horizontal según la escogida solo se le da clic y se va a la ventana a darle clic donde queramos ponerlo. Listo esto se puede proceder a ingresar los elementos que se necesitan a continuación como cuadros de texto y esas cosas.
Poner señales a los elementos
El asunto de senales es muy simple ya que solo toca escoger la senal adecuada para lo que deseamos hacer como por ejemplo un boton:
Como se puede ver la señal pressed tiene un manipulador de nombre "on_Enviar_pressed" este es lo mas importante ya que nos va a permitir en el programa utilizarlo casi como un método ya que cuando se active la señal este método del programa se activara llevando con sigo algunos parámetros que se explicaran en el próximo juego. En la ventana en cambio necesitamos activar necesariamente la siguiente señal.
1 Se tomo de este tutorial el orden de las cosas explicadas http://www.muitovar.com/glade/es-index.html
mayo 31, 2010
Segundo juego!-B
for variable in lista o cadena o rango:
cuerpo del bucle
Que es una lista?
Es un arreglo donde se puede almacenar informacion, se se puede anadir las valores haciendo una simple suma tambien se los puede modificar.
lista=['e','i','o']
lista_matriz=[['e','i','o'],['a','u','x']]
print lista
lista=['a']+lista
print lista
lista=lista+['u']
print lista
print lista[0]
print lista_matriz[0][1]
print lista_matriz[1][2]
Y nos va a dar como resultado:
['e','i','o']
['a','e','i','o']
['a','e','i','o','u']
['a']
i
x
El único inconveniente en lista_matriz es que solo es un arreglo en dos dimensiones, no es una matriz en los siguientes juegos se va explicar como realizar operaciones matriciales.
Que es un rango?
Es una sentencia que nos genera una lista de una dimensión como la de los ejemplos de arriba (lista) y su forma es
range(argumento)
el argumento es un numero por ejemlo:print range(3)
y nos da como resultado:
[0,1,2]
Que es una cadena?
Es un string normal como por ejemplo
mensaje="Hola"
Ejemplo for:
for i in "hola":
print i
for i in ['a',"hola",'c',"qwerty"]:
print i
for i in range(3):
print i
0
1
2
3
i = 1
while i <= 11:
print i," ",
i = i + 1
1 2 3 4 5 6 7 8 9 10 11
Ya esto seria lo ultimo de esta pequeña introducción a Python el siguiente juego comenzamos con el entorno gráfico. Si desean mas informacion pueden visitar las siguientes paginas:
http://docs.python.org/tutorial/
http://es.diveintopython.org/index.html
mayo 29, 2010
Segundo juego!
def mensaje(a):
if a==1:
print "chao mundo"
elif a==2:
print "odnum oahc"
def main():
mensaje(1)
mensaje(2)
return 0
if __name__ == '__main__':
main()
Primero se tiene que guardar este codigo en un archivo de texto y guardarlo con cualquier nombre, pero con la extension py, por ejemplo "mensaje.py" entonces procedemos a ejecutarlo, entonces ponemos en el terminal el siguiente codigo para correrlo. Dandomos el siguiente resultado:$python mensaje.py chao mundo odnum oahcComo se pudo apreciar en el codigo de arriba se tiene dos funciones
def mensaje(a)
y def main()
, siempre que se encuentre def nos indica que es una función y los argumento solo se ingresan las variables sin importar el tipo de variable(gran ventaja con respecto a otros lenguajes), todo es un objeto para Python, despues de escribir esto en el codigo al comenzar la siguiente linea debemos precionar la tecla TAB (es una recomendacion ya que con espacio es mas que suficiente pero se les va a facilitar bastante), ya que python se puede decir que el codigo maneja jerarquia al hacer esto le estamos diciendo que lo que se esta escribiendo a continuacion le pertenece a la funcion de arriba, y lo mismo se aplica para los if, for,while, etc. para todo lo que te encuentres en python debes recordar esta unica regla que tiene en la escritura.Mientras que el
if __name__ == '__main__':
esta parte es una de las mas complicadas de entender de python ya que como todo es un objeto, estos módulos tienen el parámetro __name__ entonces este nos puede servir para probar el programa dentro de si mismo si se importa el mismo como se muestra a continuacion. import "El nombre del archivo sin .py y sin comillas"
"El monbre del archivo sin .py y sin comillas".__name__
y este nos debera devolver el nombre del modulo, pero no me a salido.
else para cuando no se cumpla la condicion y elif para cuando no se cumpla y se tenga que verificar otra conticion
if alfa2==0:
print "es cero"
elif alfa2>0:
print "mayor a cero"
entonces si alfa2 fuera 0 se va a imprimir "es cero" mientas que si fuera mayor a cero se imprimiria ese mensaje.
Operadores:
igual ==
mayor >
mayor igual >=
menor <
menor igual <=
diferente !=
y logico and,&
o logico or,|
Primer juego!
Hasta donde vamos a llegar por el momento, a realizar una interfaz grafica, para controlar un robot SCARA(ya que eso estoy haciendo en la universidad), utilizando las herramientas GLADE y Python, entonces un poquito de historia de estas.
Glade "es una herramienta de desarrollo visual de interfaces gráficas mediante GTK/GNOME. Es independiente del lenguaje de programación y predeterminadamente no genera código fuente sino un archivo XML"1
Python "Python permite dividir el programa en módulos reutilizables desde otros programas Python. Viene con una gran colección de módulos estándar que se pueden utilizar como base de los programas (o como ejemplos para empezar a aprender Python). También hay módulos incluidos que proporcionan E/S de ficheros, llamadas al sistema, sockets y hasta interfaces a GUI (interfaz gráfica con el usuario) como Tk, GTK, Qt entre otros."2
Espero que esto sea toda la lata que tenga que poner en estas pequeñas ayudas
Porque Glade?
Bueno porque es una herramienta que nos va a servir bastante al momento de hacer el programa ya que nos da la libertad de olvidarnos de la interfaz gráfica mientras hacemos el programa ya que esta va a ser completamente independiente de este, ya que solo tenemos que cargarla al programa y leer las señales que esta nos de.
Si señales, al realizar la interfaz se manejan señales, esto se a explicar mas adelante en el juego(a por cierto asi voy a llamar a cada entrada de esta pequeña ayuda)
Porque Python?
Bueno este puede ser lo mas difícil de explicar ya lo escogí por puro capricho mio, ya que no me gusto para nada al principio por la manera que se debe escribir y ordenar el código de este, ya que no soy muy ordenado, al programar. Y no me iba a ganar un lenguaje.
Espero poder darles una idea confusa de lo que se va a hacer (ja ja)
En el siguiente juego se va a comenzar a explicar poco a poco el manejo de Python desde un simple y típico "chao mundo!!" hasta el control del robot SCARA; claro no todo en el mismo juego.