Vamos a seguir con esto

21/02/2011

Bueno, seguimos adelante.

Ahora lo que me pasa es que quiero aprender Ruby, un lenguaje de programación que se está expandiendo como la espuma, y que tiene mucha potencia en cuanto a lo en diversión se refiere, ya que como indica su creador, es un lenguaje para divertirse programando, y como no podía dejar la entrada sin una pequeña reseña, allá vamos.

def funcion(parametro)

#comentando el codigo autoexplicativo

num=0.0

puts "Introduce dato, o cero para salir"

entrada = gets

while entrada.to_i!=0

total+=entrada.to_i

num+=1

end

puts "media = " + total/num

end

Como se puede observar, tiene una sintaxis similar a Python, pero su funcionamiento es bastante distinto, en principio, para los dados en la materia podría parecer que el ejemplo es una función típica de ejemplo, y estaría equivocados, Ruby tiene una metodología distinta, ya que en Ruby TODO es un objeto (supongo que ya habréis oido ésta frase en algún momento), así pues, el ejemplo de antes es un método de una clase, ¿que de qué clase?, pues está claro, de la clase “Class”, que existe en todo programa Ruby.

Un momento, ¿qué?

Empecemos de nuevo, que parece que hoy no quieres entender, Ruby es un lenguaje de programación, hasta ahí bien, ¿no?. Pues para más datos, es interpretado, fuertemente orientado a objetos, de hecho no existen tipos de datos, sino clases de objetos, los mismos números que escribes en los códigos fuentes o en el intérprete, son de la clase FixNum, y tienen sus propios métodos.

Con este concepto claro, sigamos adelante, en este caso con la sintaxis;

#sentencia if

if condicion==true then

#cosas que se realizan si se cumple

end

#sentencia if + else

if condicion==true then

#cosas del if

else

#cosas que pasan si no se cumple la condicion

end

Más o menos las cosas van así

En Ruby es todo “bastante opcional”, por ejemplo, cualquier paréntesis que no provoque confusión se puede dejar, o quitar, como con el paso de parámetros de las llamadas a los métodos, o en las operaciones que no sean necesarios, en las condiciones de los “if”, no obstante, nunca está de más ponerlos, aunque al final te acabes acostumbrando a no usarlos nada más que cuando son realmente necesarios.

Cómo seguir aprendiendo

Desde el Aula de Software Libre de la universidad de Córdoba se va impartir un taller teórico-práctico de Ruby a partir de la semana del 28 de Febrero de 2011, y es seguro que asistiré, así que espero volver la semana que viene a contaros más acerca de Ruby, ya que esta pequeñísima introducción nada tendrá que ver con cómo se trabaja en realidad con éste lenguaje que tanta libertad y diversión reparte.

Anuncios

Adquiriendo Conocimiento

28/04/2010

Partiendo de la gran premisa: “Siempre habrá alguien que lo haga mejor que tú”, debemos llegar a la conclusión de que debemos tener algún ejemplo para poder llegar a ser mejor.

Os preguntaréis [\mode ironic off] qué hago yo hablando de esto. Pues bien, un Nexus One habla por mí, un poco.

Gracias al sorteo realizado por http://www.elandroidelibre.com me animo a escribir un poquito sobre ellos, también le tengo que agradecer que me recordaran que tengo blog, que ya casi ni me acordaba.

Pues bien, para empezar, en http://www.elandroidelibre.com se habla sobre todo de android y todo lo relacionado con ello, realizando distintos análisis de las aplicaciones más interesantes, escribiendo algunos tutoriales para iniciarse en el tema android, en definitiva, como ellos mismos se definen, hablan un poco de todo, para que así sea más ameno y se puedan hablar de temas más dispares, no obstante, todos ellos tienen en común el tema de android.

Continuamos con los proyectos, aquellas cosas que nos proponemos en lugares hinóspitos y a horas intempestivas, pues bien, mi proyecto consiste en realizar una aplicación para android, pero no un bloc de notas ni nada de eso. Una en la que me sirvan mis conocimientos previos de OpenGL, no de la versión 2.0, pero sí compatibles :P.

Así que un temas más para archivar en la etiqueta de proyectos, Un saludo y suerte!


[PFC] Programacion con Sockets en Python

30/07/2009

Trabajar con sockets en Python es muy parecido a como se trabaja en c, con la estructura socket; Tendremos por tanto las típicas funciones para enviar y recibir (send y recv), además de las llamadar para crear un socket o destruirlo, pasando por las write y read.

Como no hay mejor manera para aprender de esto, vamos a crear un servidor de ECHO, a ver como nos va la cosa:

Primero vemos el código del servidor

#importamos el modulo socket para comunicacion en red
import socket
#Creamos un socket de tipo INET (ipv4) de tipo TCP
serverSocket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
#bindeamos al puerto 9999 de localhost el socket
serverSocket.bind(("localhost",9999))
#escuchamos como mucho 5 peticiones simultáneas
serverSocket.listen(5)
while True:
    #si se recibe alguna conexion se acepta
    socketIntercambio, (host_c,puerto_c)=serverSocket.accept()
    #esperamos a que se nos envie algun mensaje
    recibido=socketIntercambio.recv(1024)
    print "Recibido: ",recibido
    #lo enviamos de vuelta
    socketIntercambio.send(recibido)
    #cerramos el socket de intercambio
    socketIntercambio.close()
    if recibido=="close":
        serverSocket.close()
        break

Ahora vemos el cliente

#importamos el modulo socket
import socket
#creamos un socket para la conexion
s = socket.socket()
s.connect(("localhost",9999))
#pedimos una entrada de datos para mandar al servidor de echo
mensaje=raw_input("->")
#enviamos la entrada
s.send(mensaje)
#esperamos una respuesta
recibido = s.recv(1024)
print "ECHO: ",recibido
#cerramos el socket
s.close()

[PFC] Milleage set 0

02/07/2009

Bien, empezar, siempre se empieza por el principio, asi que alla vamos.

Con mi portatil puesto a cero, y mi sobremesa puesto a cero hace bien poco (porque siempre hay que estar limpio) vamos a dar comienzo a los logs basicos de mi pfc.

Como primero aun no he hecho nada, aunque deberia, pero eso es otra historia… por eso me voy a proponer dar estos anuncios de mi progreso, para que nada se vaya quedando atras.

Asi que esta entrada servira como puesta a cero del marcador y poco mas, paso siguiente: Primer Acercamiento a la Base de Datos del Sistema, que espero que sea lo mas detallada posible, ya contare…


Proyectos/Ideas

29/06/2009

Después de varios meses sin nada que decir al mundo, vuelvo a las andadas.

Esta vez hablaré de mis proyectos, que no son pocos, están entre ellos:

  • Crear un ajedrez con OpenGL
  • Aprender Python
  • Hacer una Aplicación con comunicacion por Red
  • Aprender QT a fondo
  • Realizar actualizaciones del blog asiduamente

Estas son solo algunas de las que se me ocurren ahora mismo, en la facultad después de hacer un examen de redes (posiblemente suspenso), a ver si llevo a cabo alguna, que espero que si.

Por ahora le cambiaré el título al blog, a ver si así tengo más cosas para escribir, ya que entiendo poco de la blogosfera nacional, a partir de ahora pasará a ser: “Cosas”, para poder desquiciar un rato cada poco tiempo, a ver si esto no lo abandono