Desarrollando en QT y C++

29 de marzo de 2009 0 comentarios
Para empezar aclaremos:

¿Qué es QT?
Qt es una biblioteca multiplataforma para desarrollar interfaces gráficas de usuario. La biblioteca la desarrolla la que fue su creadora, la compañía noruega Trolltech, actualmente renombrada a Qt Software, y que desde junio de 2008 es propiedad de Nokia. Qt es utilizada en KDE, un entorno de escritorio para sistemas como GNU/Linux o FreeBSD, entre otros. Utiliza el lenguaje de programación C++ de forma nativa y además existen bindings para C, Python (PyQt), Java (Qt Jambi), Perl (PerlQt), Gambas (gb.qt), Ruby (QtRuby), PHP (PHP-Qt) y Mono (Qyoto) entre otros.

El API de la biblioteca cuenta con métodos para acceder a bases de datos mediante SQL, así como uso de XML y una multitud de otros para el manejo de ficheros, además de estructuras de datos tradicionales.

¿Qué necesito para empezar?
Bueno de entrada si ya tienes experiencia en algún lenguaje de programación lo único que necesitas es adaptar el binding respectivo a tu IDE favorito, por ejemplo si programas en Java debes de conseguir el paquete de Qt-Jambi y configurarlo en algun IDE como Eclipse o Netbeans, así.
Pero si no tienes mucha experiencia en algún lenguaje especifico te recomiendo que empiezes a orientarte en alguno :-P, en fin para empezar me pareceria bueno que lo hicieras con el qt SDK que la gente de QT pone a nuestra disposicion desde este enlace, desde allí nos dispondremos a descargar el paquete de nuestro sistema operativo correspondiente; en mi caso descargue el paquete .bin -Download Qt SDK for Linux/X11 32-bit (269 Mb)- para instalarlo en mi Ubuntu 8.04; antes de instalar este paquete instalaremos algunas dependencias:
sudo apt-get install libfreetype6 libfreetype6-dev libglib2.0-dev libSM-dev libxrender-dev libfontconfig1-dev libxext-dev
sino tenemos estas dependencias instaladas no veremos el problema en la instalación, sino en el momento de compilar los programas.
una vez hecho esto procedemos a instalar el paquete que descargamos:
sudo ./qt-sdk-linux-x86-opensource-2009.01.bin
...

Probando Ubuntu 9.04 -Jaunty Jackalope- Beta

27 de marzo de 2009 1 comentarios
Desde el pásado 25 de Marzo se encuentra disponible para descargar aquí la version beta de Ubuntu 9.04 llamado -Jaunty Jackalope- para que los desarrolladores, betatesters y adictos a las nuevas versiones puedan probar esta distribución que sera lanzada al publico en general y en modo -estable- el proximo 23 de Abril.

Pues la verdad yo he estado esperando esta version, ¿Porqué? no lo se, debe ser alguna especie de fetiche o algo parecido con las versiones x.04 ;-)


pero ¿Qué encontramos de nuevo en esta versión? las actualizaciones mas destacables en la version desktop son:

  • Kernel: 2.6.28.8
  • Firefox: 3.0
  • Thunderbird: 2.0
  • OpenOffice: 3.0.1
  • Python 2.6.1
  • X.org 1.6
  • un arranque mas rapido
  • el nuevo y esperado sistema de notificaciones NotifyOSD
En la versión server las novedades son quizás más importantes:
  • Eucalyptus (Elastic Utility Compuing Architechture for Linking Your Program to Useful Systems), para tener nuestra propia 'Cloud Computing' compatible con la API de AmazonEC2.
  • El nuevo paquete dovecot-postfix para tener una única solución de servicios SMTP, POP3 e IMAP.
Tal parece que esta es la unica versión beta de este sistema solo queda esperar la version estable.

algunos screenshots:
Nueva barra de carga:

Nuevo Splash Screen

Nuevo Sistema de notificaciones

Iniciando con el editor Vim

0 comentarios

Comenzare con una frase que lei cierto dia "primero, Vim no es un editor de texto, Vim es 'EL' editor de texto" ;-)

Editores de texto en sistemas linux hay para escojer, uno de los mas populares es Emacs y gedit, el editor de texto gráfico por defecto en Gnome, y en editores de texto en modo consola los mas populares y utiles que conseguimos son : nano y vim.

Se preguntaran ¿Porqué utilizar un editor en modo consola? bueno me gustaria verlos modificar o crear un archivo en un servidor que no tenga instalado un entorno gráfico. muy util ahora verdad XD

Primero definamos que es vim: Vim (Vi IMproved) es una versión mejorada del editor de texto vi presente en todos los sistemas Unix. La principal característica tanto de Vim como de Vi consiste en que disponen de diferentes modos entre los que se alterna para realizar ciertas operaciones, lo que les diferencia de la mayoría de editores comunes, que tienen un sólo modo en el que se introducen los comandos mediante combinaciones de teclas o interfaces gráficas.

Ahora para comenzar una introducción de los comandos de Vim explicaremos los modos mas utiles y basicos que posee el editor al momento de trabajar con el:
  • El modo normal (MN): es el modo en el que arrancamos por defecto al iniciar Vim, en este modo podemos explorar (con el bloq. desplazamiento) el documento sin temor de hacer modificación alguna a este, guardar el archivo o salirnos del editor; si nos encontramos en otro modo de trabajo y queremos regresar a este lo haremos presionando la tecla Esc.
  • El modo edición (ME): al cual podemos acceder presionando la tecla i o INSERT -estando previamente en el modo normal-, en la parte inferior de la consola nos muestra el texto --insert-- para indicarnos que nos encontramos en el modo de edición; en este modo nos permite trabajar en él como un editor de texto normal, insertando, borrando caracteres o desplazandonos por todo el documento.
  • El modo visual (MV): para ingresar a este modo lo haremos presionando la tecla v -estando previamente en el modo normal-, en la parte inferior de la consola nos muestra el texto --visual-- para indicarnos que estamos en el modo visual; este modo nos es util al momento de seleccionar bloques o partes de texto, para copiarlo, cortarlo o reemplazarlo en el documento.

ahora comenzaremos a trabajar con el editor, en consola tecleamos vim y presionamos enter, si todo sale bien nos debe salir esto:
pero si nos sale 'orden no encontrada' es que no lo tenemos instalado en nuestra maquina (muy raro pero por si acaso) lo instalamos tecleando en consola:
sudo apt-get install vim-runtime vim

listo ya no deberiamos tener problemas, entonces para abrir el editor y poder crear un documento nuevo solo tecleamos vim, pero si queremos editar un archivo ya existente teclearemos:
vim /ruta_del_archivo/archivo.txt
este editor nos permite trabajar con un inagotable tipo de archivos, ya sean .php .java .sh etc.

listo ya abierto el editor estando en el modo normal (MN) tecleamos ': + el comando' -esto nos aparecera en el lado inferior de la pantalla- comandos:

estando en MN
  • :q ----> para cerrar el archivo y salirnos del editor, si se han hecho cambios al documento nos pregunta si deseamos guardar los cambios.
  • :q! ----> Cerrar el archivo y salir del editor sin que nos pida confirmacion para guardar cambios hechos.
  • :w ----> Guarda los cambios en el archivo en caso de existir.
  • :w nombre_archivo.extención ----> Guarda el archivo con el nombre especificado.
  • :wq! ----> guarda y cierra el archivo sin confirmacion en caso de no existir.
  • p ---> para pegar el texto que se encuentre en el buffer de memoria (texto copiado, cortado o eliminado previamente).
estando en MV, podemos ir seleccionando el texto conforme lo navegamos y podemos usar los siguientes comandos:
  • c --> para cortar el texto seleccionado
  • y --> para copiar el texto seleccionado
ya con esta nociones basicas podremos utilizar vim en nuestros que haceres diarios, aunque el potencial de él, nos es solo este (esta guia solo pretende ser de presentación del programa) tiene muchisimas mas utilidades las cuales podemos conocer en guias especializadas en internet o con la documentacion del programa (tecleando en consola: man vim), algunas de estas utilidades residen en las preferencias del programa el cual podemos editar asi:

en modo normal (MN) tecleamos:
  • :set number/nonumber ---> para numerar las lineas del documento.
  • :set syntax on/off ---> para encender la syntaxis en lenguajes de programacion.
  • :!comando ---> para ejecutar comandos de consola ejemplo :!ls listar directorios
  • :s /hola/adios ---> cambia o sustituye la cadena hola por adios en todo el documento.
bueno eso es todo por ahora, espero que disfruten comenzando con este editor que si bien la linea de aprendizaje inicial es un poco mas alta que con otros editores creanme el esfuerzo vale la pena al momento de dominarlo.

Deezer servicio de musica on-line

26 de marzo de 2009 3 comentarios
Despues de la tan desagradable noticia de que el servicio de musica online de last.fm dejara de ser gratuito al menos para latinoamerica entre otros, me he puesto a la tarea de buscar un nuevo reemplazo para este y me he topado con Deezer, llevo una semana probandolo y la verdad me ha convencido mucho, tiene un muy buen surtido de material y haste te permite montar nuevos discos siempre y cuando no se encuentren repetidos en su coleccion musical.
funciones:
pues todas aquellas de cualquier reproductor de musica, te permite crear listas de audio y agregar, eliminar y organizar tus discos en las listas, te da la posibilidad de hacerla publica o privada y muchas opciones mas, puedes buscar artistas ver su discografia, escuchar sus discos y ver algunos videos directamente desde la pagina y todo esto de forma GRATUITA, solo te pide que te registres con ellos para poder crear listas e interactuar con gente registrada, pero para aquellos que les importa bastante su privacidad o simplemente no tiene tiempo de registrarse les permite escuchar listas aleatorias segun el genero.
la verdad me parece un muy bien recomendado servicio, pruebenlo!!!
http://www.deezer.com

Como compartir una conexión con IPTables

1 comentarios
Bueno primero mostrar lo que queremos y lo que tenemos:

este es el esquema basico de lo que queremos hacer, ahora con que disponemos:
  • 1 Ordenador con dos interfaces fast ethernet y sistema operativo Ubuntu 8.10 (llamaremos server)
  • 2 Ordenadores con una interfaz fast ethernet y sistema operativo Windows xp cada uno (llamaremos pc1 y pc2)
  • 1 Switch o HUB
  • 1 Modem Router o Modem (el cual nos provee nuestro ISP)
siguiente, en la maquina 'server' nos aseguramos que tenga instalado el iptables, de no ser asi tecleamos en consola:
sudo apt-get install iptables
ahora por medio del network manager vamos a configurar eth0 y eth1 (las tarjetas de red).
eth0 la dejamos en modo dinamico o dhcp, esta ira conectada directamente al modem router.
eth1 la asignamos una dirección estatica (para este ejemplo trabajaremos con la dirección de red 192.168.1.0) IP = 192.168.1.2, Mascara de Subred = 255.255.255.0 y Puerta de enlace = 0.0.0.0; esta tarjeta de red ira conectada hacia el switch (nuestra red privada).
ahora las maquinas pc1 y pc2 le asignamos las direcciones ip 192.168.1.3 y 192.168.1.4 respectivamente, mascara de subred = 255.255.255.0 y Puerta de enlace = 192.168.1.2 (la direccion de nuestra maquina server) a ambas maquinas.
conectamos todas las maquinas en switch y probamos conectividad, tecleamos en consola de la maquina server:
ping 192.168.1.3
y
ping 192.168.1.4

si todo sale bien nos debe mostrar que esta enviando paquetes y el tiempo de entrega de estos podemos terminar el comando con ctrl+c.
ahora crearemos un pequeño script con lo siguiente (se puede usar el editor de notas o cualquier editor preferido):
iptables --flush
iptables -A INPUT -i eth1 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i eth1 -j ACCEPT
echo 1 > /proc/sys/net/ipv4/ip_forward
guardamos el archivo con cualquier nombre pero con extencion .sh (ejemplo: internetsharing.sh) en la carpeta /home/usuario.
-----------lo siguiente es todo desde consola-------------------
ahora copiamos el archivo al directorio /etc/init.d:
sudo cp /home/usuario/internetsharing.sh /etc/init.d/internetsharing.sh
le damos permisos de ejecucion al script con:
sudo chmod 555 /etc/init.d/internetsharing.sh

y por ultimo ejecutamos ese script con:
sudo sh /etc/init.d/internetsharing.sh
listo ahora solo nos falta un paso, agregar los DNS a las maquinas pc1 y pc2.
en la maquina server tecleamos en consola lo siguiente:
cat /etc/resolv.conf
esto nos mostrara las direciones DNS que utiliza la maquina server agregamos las dos primeras en las maquinas pc1 y pc2:
en Windows XP : vamos a panel de control --> conexiones de red --> conexion de area local
--> protocolo internet (TCP/IP) le damos propiedades y en usar las siguientes direcciones DNS colocamos las dos primeras direcciones que nos arrojo el comando anterior en la maquina server.

y listo ya podremos disfrutar de una conexion compartida.
vale la aclaracion que de este modo no hemos configurado ninguna politica de seguridad ni implementado un firewall para protegernos (cosas necesarias) pero mas adelante se explicaran con estos metodos.