Archivo

Archivo para la Categoría "Linux y software libre"

Lanzador de aplicaciones en Python para ubuntu…

Agosto 20, 2009 Otto Deja un comentario

Ahí les dejo un lanzador de terminales que hice para la empresa donde trabajo. Simplemente muestra cuatro botones y ejecuta terminales de gnome (gnome-terminal) y a su vez les envia parámetros de conexión (protocolos ssh y telnet).

#!/usr/bin/env python

# manejo de conexiones desde python

import pygtk
pygtk.require("2.0")
import gtk
import os

class HacerLlamadas:
   def enl_desarrollo(self, widget, data=None):
      os.system("gnome-terminal -e \"ssh 172.16.1.3 -l mi_login\" &")

   def enl_produccion(self, widget, data=None):
      os.system("gnome-terminal -e \"telnet 172.16.1.4 -l mi_login\" &")

   def ftp_desarrollo(self, widget, data=None):
      os.system("gnome-terminal -e \"ftp 172.16.1.3\" &")

   def ftp_produccion(self, widget, data=None):
      os.system("gnome-terminal -e \"ftp 172.16.1.4\" &")

   def delete_event(self, widget, event, data=None):
      gtk.FALSE

   def destroy(self, widget, data=None):
      gtk.main_quit()

   def __init__(self):
      self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
      self.window.connect("delete_event", self.delete_event)
      self.window.connect("destroy", self.destroy)
      self.window.set_border_width(5)
      self.window.set_title("Enlaces Alcanos")

      self.box1 = gtk.VButtonBox()
      self.window.add(self.box1)

      self.btn_edesa = gtk.Button("Servidor de desarrollo")
      self.btn_edesa.connect("clicked", self.enl_desarrollo, None)

      self.btn_eprod = gtk.Button("Servidor de produccion")
      self.btn_eprod.connect("clicked", self.enl_produccion, None)

      self.btn_fdesa = gtk.Button("Ftp de desarrollo")
      self.btn_fdesa.connect("clicked", self.ftp_desarrollo, None)

      self.btn_fprod = gtk.Button("Ftp de produccion")
      self.btn_fprod.connect("clicked", self.ftp_produccion, None)

      self.box1.set_border_width(5)
      self.box1.set_layout(gtk.BUTTONBOX_SPREAD)
      self.box1.set_spacing(5)

      self.box1.pack_start(self.btn_edesa, True, True, 0)
      self.box1.pack_start(self.btn_eprod, True, True, 0)
      self.box1.pack_start(self.btn_fdesa, True, True, 0)
      self.box1.pack_start(self.btn_fprod, True, True, 0)

      self.btn_edesa.show()
      self.btn_eprod.show()
      self.btn_fdesa.show()
      self.btn_fprod.show()

      self.box1.show()
      self.window.show()

   def main(self):
      gtk.main()

if __name__ == "__main__":
   ventana = HacerLlamadas()
   ventana.main()

Tutorial SDL, tus primeros pinitos en esta librería!

Junio 12, 2008 Otto Deja un comentario

Bueno, estoy seguro de que muchos de ustedes les gustaría programar en esta librería enfocada a  videojuegos. Por mi parte lo he hecho ya varias veces con resultados muy óptimos, igual desarrollos pequeños y que definitivamente solo los he hecho por diversión.

SDL (Simple DirectMedia Layer) es un conjunto de liberías multisistema y multi lenguaje (existen wrappers que nos permiten programar en varios lenguajes y no solamente en C++) para el desarrollo de gráficos en 2D de una manera rápida y sencilla, que aún teniendo estas dos características no le quitan potencia.

Siendo así, y como muchos saben que conseguir una buena guía o tutorial de esta librería en español no es nada fácil,  pues “Antonio García Alba” ha pensado en todos nosotros los no bilingües y como Proyecto de Grado nos ha regalado bajo licencia GNU FDL este maravilloso tutorial!

Así que ya sabes, si eres un programador novato como yo, y te han enseñado C++ en el cole o Universidad (como a mi) y siempre haz odiado esa pantallita negra de DOS o Terminal (como yo) pues ¿que estás esperando? Deja de leer este pinche blog y ponte a aprender!

¿Un buen reproductor musical para Linux?

Junio 11, 2008 Otto Deja un comentario

Bueno, estas entradas suelen ser polémicas; pero pues todo depente del punto de vista… el equipo de prueba que usé fue mi PC de Escritorio.

Distribuciónes de prueba: Ubuntu/Kubuntu/Xubuntu:

  • Exaile bastante bueno, pero nunca pude hacer reconocer las teclas multimedia. Muy liviano e intuitivo, en mi lista va primero para Xubuntu por su bajo consumo de RAM!
  • Listen tal vez no esté muy bien distribuido y  te asuste un poco por sus cuatro columnas, la verdad su aspecto no me agradó mucho y definitivamente es muy lento cargando la información de los Mp3.
  • Banshee solo fue instalarlo y de una vez empezó a descargar las CoverArt de cada álbum, rápido y muy intuitivo… pesado en esta distribución, pero un gran pro: soporta visualización de videos! Aunque consume poca RAM, el exaile lo supera!, en mis preferencias va segundo!
  • Rhythmbox el que viene por defecto (en GNOME/Ubuntu)… bastante bien, liviano, rápido, soporta covers… en fin, es mi elegido para Ubuntu, ya que en Xubuntu pidio varios plugins que por más que intenté no pude hacer funcionar, además no detectaba las teclas multimedia…
  • Amarok el que viene por defecto… pero en (KDE/Kubuntu)… excelente, muy administrable, incorpora varios plugins, tiene ecualizador de sonido, en fin… es una maravilla, pero como todo lo bueno nunca lo es tanto: gran consumo de memoria. Recomendado %100 para máquinas con más de 1Gb de RAM.

Un consejo final: prueba cada una de esas… solo te quitará algo de tiempo y espacio en disco, pero al final te darás gusto sabiendo que tienes lo mejor (a tu gusto y medida).

PD: todos esos reproductores se encuentran en los repositorios oficiales, el único que no se encuentra actualizado (al menos con varios cambios perceptibles) es el Banshee!

Programando C/C++ en Ubuntu/Kubuntu/etcbuntu

Junio 6, 2008 Otto 5 comentarios

Bueno, cuando yo empecé con mis primero pinitos en Linux, (especificamente en Ubuntu) se me presentaron mil problemas, pues como todos saben soy programador más que cualquier cosa en mi carrera (Ing. de Sistemas) y en Ubuntu no existe el Turbo C++ para seguir mis proyectos de la Universidad… así que ¿que hacer en Ubuntu para programar C/C++?

  1. Como primer paso vamos a agregar un compilador… para ello en una terminal escribimos:

    sudo apt-get install build-essential

  2. Ahora bien, ya está el compilador, pero ¿donde escribo el código? Para ello tienes muchas, muchísimas opciones (Eclipse, Anjuta, Netbeans, el nano jejeje), yo personalmente te recomiendo el “Code::Blocks” que puedes descargar desde aquí.
  3. Recuerda que para poder utilizar el Code::Blocks debes tener las librerías multiplataforma Wxwidgets que en cualquier Ubuntu/Xubuntu/Kubuntu 8.04 encuentras en los repositorios:

    sudo apt-get install libwxbase2.8-0 libwxbase2.8-dev libwxgtk2.8-0 libwxgtk2.8-dev wx2.8-headers wx2.8-headers

  4. Una vez instaladas las librerías WxWidgets procedemos a descomprimir el archivo Codeblocks que en mi caso es el “codeblocks-8.02-amd64.tar.gz”. Para ello damos clic derecho y le damos “extraer aquí…” (dependiendo de la distribución de linux) y procedemos a instalar en el siguiente orden los siguientes archivos (son los que acabamos de descomprimir) haciendo doble clic en cada uno de ellos:

    libcodeblocks, libwxsmithlib0-dev, libwxsmithlib0, codeblocks, codeblocks-dev, codeblocks-dbg, codeblocks-contrib

  5. Recuerda que los nombres de los archivos anteriores son solo las primeras letras de cada archivo, pues por cada versión, tanto de máquina, (x86, 64 bits) como de distribución de codeblocks (actualmente 8.02) se puede presentar uno diferente
  6. Listo!, ya puedes empezar a programar en tu distribución de linux basada en debian!