lunes, 14 de junio de 2010

Programa 2 --> Ruby

Ahora presento la segunda parte del programa, ahora tenemos al Cliente que hace la conexión con el Servidor. Para probarlo puedes probarlo en dos terminales dentro del mismo Unix.

#MENDOZA MONROY PAULINA

def venta#Creamos el método de venta donde se realizará la conexión con la base de datos
puts "PASSWORD PARA VENDEDOR:"#Solicitamos la contraseña para realizar una venta
STDOUT.flush #se limpia la memoria
password = gets.chomp #Se almacena la contraseña en la variable password
    if password == "pepe"#Comparamos la contraseña inttroducida
=begin
En las siguientes líneas vamos a almacenar las cantidades ingresadas por el vendedor, respecto a las ventas realizadas
=end       
        puts "PRODUCTO:"
        STDOUT.flush
        producto = gets.chomp
        puts "CANTIDAD:"
        STDOUT.flush
        cantidad = gets.to_i#Cambia el valor ingresado a una cantidad entera y lo almacena en la variable cantidad
        puts "PRECIO UNITARIO:"
        STDOUT.flush
        preciounitario = gets.to_f#Cambia el valor ingresado a una cantidad flotante y lo almacena en la variable preciounitario
        preciototal = preciounitario * cantidad #Realilza la operación de la compra
        puts "El total a pagar es : \n$#{preciototal}" #Imprime en pantalla la cantidad a pagar
        pedido = "INSERT INTO PRODUCTOS VALUES ('#{producto}','#{cantidad}','#{preciototal}');"#Se genera la instrucción en sql para almacenar en la base de datos
        time = Time.now #Muestra fecha y hora del sistema
        time1 = "#{time} " + pedido #Se concatena el tiempo con el pedido
        File.open('bitlocal.txt','a')do |f1|#Se abre bitlocal y añade una nueva línea a la bitácora
        f1.puts time1 #Coloca lo anterior en el documento
        end

require "socket" #Llamada al método socket
#Se genera el socket y se envía hacia el servidor, que es donde se encuentra almacenada la base de datos

        socket = TCPSocket.new( "192.168.1.108", 4567 )
        socket.write( pedido )#Se envía la instrucción en sql al servidor
        socket.close
    else
        puts "PASSWORD es incorrecta"
    end #FIN IF
end#Termina el método venta

##menú del sistema del OTZO
def menu #Se genera el método menu
    puts"\n\t\t**************Bienvenido a OTZO****************\n"
    puts"\n\n"
    puts "\tOPERACIÓN A REALIZAR:\n\n"
    puts "\t\t\t1)  Venta\n\n\t\t\t2)  Integrantes\n\n\t\t\t3)  Chat\n\n\t\t\t4)  Salir\n\n"
    puts "Ingresa la operación que deseas hacer: \n"
    STDOUT.flush 
    operacion = gets.chomp.to_f
#Se compara la opción ingresada por el usuario para realizar alguna de las funciones de nuestro menu   
    if operacion == 1
    venta
    puts "\nVenta Realizada con éxito\n"
    return menu #Regresa al desplegado del menu
    elsif operacion == 2
    puts "\n\t\t\t#########Características del Proyecto#########"
    puts "\n\tSistema desarrollado en el lenguaje de programación RUBY, realizando operaciones para una tienda llamada OTZO\n\n"
    puts "\nLos encargados de desarrollar este proyecto \n"
    puts "\n+  Mendoza Monroy Paulina\n"
    return menu #Regresa al desplegado del menu
    elsif operacion == 3
    chat
    puts "Server has been terminated"
    return menu#Regresa al desplegado del menu
    elsif operacion == 4
    puts "\n\n\n\t\t*********HASTA LUEGO**********\n\n"   
    else
    puts "\nOpción no encontrada, vuelva a intentar.\n\n"
    system('clear')
    return menu#Regresa al desplegado del menu   
    end #Termina if anidado
end#Finaliza metodo menu

def chat #Método chat
    system("/bin/bash -c 'sh /home/OTZO/telnet.sh'") #Se hace referencia al servidor por medio de telnet
end#Fin metodo chat
menu #Se hace una llamada al método menu


Paulina Mendoza Monroy
Facultad de Ingeniería, UNAM
Ingeniería en Computación
Servicio Social LIDSOL

jueves, 10 de junio de 2010

Programa 1 --> Ruby

El siguente programa creado en Ruby sirve para que un servidor quede a la espera de que un cliente se conecte con el. El programa esta comentado y posteriormente se publicaran más programas en los cuales unidos a este pueden hacer una arquitectura cliente-servidor.


# MENDOZA MONROY PAULINA

require "socket" #Llamada al método socket
 
server = TCPServer.new( "192.168.1.108" , 4567 ) #Se define la dirección donde va a estar nuestro socket servidor

loop {                          #Se genera un loop donde aceptará a procesos de hilos
  Thread.start(sleep 10) do |socket| #Se almacena en una variable llamada socket
  socket = server.accept #Acepta la nueva conexión
  cadena = socket.recv( 100 ) #Acepta una cadena de 100 Bytes
  puts "PEDIDO SOLICITADO" #Se imprime en pantalla el pedido solicitado

    File.open('script.sql', 'w') do |f1| #Se abre el script de sql en modo de escritura y realiza f1 colocando la cadena en el script
    f1.puts cadena
    end #Termina el método file


IO.popen("sh sql.sh") #Se realiza una llamada al sistema para que se ejecute el shell de sql así como el de bitácora
IO.popen("sh bitacora.sh")
  socket.close #Cierra el socket
 end #Finaliza el loop
}#Se cierra loop


Paulina Mendoza Monroy
Facultad de Ingeniería, UNAM
Ingeniería en Computación
Servicio Social LIDSOL

lunes, 7 de junio de 2010

Ruby Manual 3


Paulina Mendoza Monroy
Facultad de Ingeniería, UNAM
Ingeniería en Computación
Servicio Social LIDSOL

jueves, 3 de junio de 2010

Ruby Manual 2


Paulina Mendoza Monroy
Facultad de Ingeniería, UNAM
Ingeniería en Computación
Servicio Social LIDSOL

miércoles, 2 de junio de 2010

Ruby Manual 1


Paulina Mendoza Monroy
Facultad de Ingeniería, UNAM
Ingeniería en Computación
Servicio Social LIDSOL

Ruby


Ahora lo que les presento es un manual que realice de RUBY.
Pero antes les platicare un poco de este lenguaje de programación, para empezar les diré que este tipo de lenguajes es bastante fácil de manejar, si alguno de ustedes ya ha programado en algún otro lenguaje, este va a ser de lo más fácil. Pueden comprobarlo con las siguientes imágenes que les dejo de este fácil lenguaje.

lunes, 31 de mayo de 2010

Comandos Básicos de Unix

UNIX

Cuando hablamos de software libre es impresindible que hablemos de UNIX. Para poder decir que trabajamos con software libre, muchas veces es necesario conocer a este importante Sistema Operativo, y para poder empezar en este ambito aquí les dejo una liga para los que empiezan a adentrarse en este mundo. Este artículo es básico pero les ayudara a todos los principiantes que aún no se han animado. 

Saludos.

http://sunsite.unam.mx/servidores/docs/unix/UNIX.pdf