Archivo

Archivo para la Categoría "Programación"

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()

Aprendiendo Symfony y Codeigniter

Agosto 1, 2009 Otto 6 comentarios

Desde hace algunos días me la he pasado discutiendo con un amigo del trabajo acerca de nuestro futuro como programadores. Esto me llevo a preguntarme ¿ahora que debo hacer? Personalmente me gusta mucho desarrollar para la web (poco los programas de escritorio) y pues aunque nunca he hecho algo “verdaderamente” enriquecedor, estoy seguro de que el momento llegará tarde o temprano.

Así pues, analizando mi situación me dediqué a volver a lo que mejor sabía hacer: leer blogs de tecnología, de programación de entretenimiento, en fin… por este largo lapso de tiempo encontré lenguajes y modelos de trabajo que me llamaron mucho la atención, pero que lastimosamente en mi país (Colombia) son poco apetecidos, ya sea por desconocimiento o por que definitivamente seguimos bajo el monopolio de las empresas que siempre han dominado el mercado e impiden alejarnos de ellas por uno u otro motivo.

Bueno, aquí les dejo un pequeño resumen de los dos frameworks para web que mas me ha llamado la atención:

Symfony: es un framework de desarrollo de páginas web escrito en php y que ha venido creciendo y volviéndose muy popular en estos días, se basa en el modelo de trabajo MVC (modelo, vista, controlador) y aún lo sigo aprendiendo (aunque es sencillo, requiere tiempo pues tiene una curva de aprendizaje algo elevada). Su documentación es muy amplia y no tiene desperdicio alguno. Si eres programador web te lo recomiendo en un %100 pues notarás mucho las ventajas que se te presentan.

Codeigniter: este es otro framework que no tiene desperdicio, si quieres desarrollar una aplicación web y no tienes suficiente tiempo para aprender Symfony, Codeigniter es la solución. Hice muchas cosas que normalmente me hubieran podido tomar mucho tiempo si las hubiera hecho de cero (re-inventando la rueda). También te lo recomiendo en un %100.

Me gustaría mucho poner algunos ejemplos, pero tengo poco tiempo y además siento que sería repetir de una u otra forma lo que pueden encontrar accediendo a los enlaces de ambos proyectos y sobre todo a librosweb.es

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!

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!