jueves, 20 de septiembre de 2007

Python + Gtk = PyGtk

Hola !!! esta ocasion tratare de explicar un poco acerca de como podemos crear una aplicacion de ventana con gtk y python. Para instalar esta libreria debemos acerlo de la siguiente forma:

apt-get install python-gtk2
Ahora debemos escribir el siguiente codigo en nuestro editor de textos favorito,

$nano pygtk1.py


#!/usr/bin/env python

#Importamos a las librerias con las q' trabajaremos
import pygtk
pygtk.require('2.0')
import gtk

#Creamos nuestra ventana Principal
window = gtk.Window()
window = gtk.Window(gtk.WINDOW_TOPLEVEL)
window.connect("delete-event", gtk.main_quit)
window.set_title("Primeros pasos con GTK")
window.set_default_size(450,250)

#Creamos un objeto layout para colocar nuestros widgets

lay = gtk.Layout(None,None)
lay.set_size(440,240)

#Creamos nuestros botones
b1 = gtk.Button(stock=gtk.STOCK_OK)
b2 = gtk.Button(stock=gtk.STOCK_CLEAR)

nombre = gtk.Label("Escribe tu nombre: ")
datos = gtk.Label("")

entry = gtk.Entry(max=30)
lay.put(nombre,50,50)
lay.put(entry,180,50)
lay.put(b1,170,100)
lay.put(b2,260,100)
lay.put(datos,200,180)

#Definimos nuestras funciones que haran caso a las llamadas de los botones

def on_b1_clicked(b1):
text=entry.get_text()
datos.set_text("Saludos " + text + " Bienvenido a PyGtk ")

def on_b2_clicked(b2):
entry.set_text("")
datos.set_text("")

#Añadimos las señales a la accion clicked de los botones
b1.connect("clicked", on_b1_clicked)
b2.connect("clicked", on_b2_clicked)

#Agregamos nuestro objeto contendor a la ventana

window.add(lay)
window.show_all()
gtk.main()

Ahora ejecutamos nuestro programa asi:

$python pygtk1.py

Aqui puedes encontrar mas informacion tutorial de Pygtk
Mas o menos asi les debe quedar

Bueno espero sea de su agrado este sencillo ejemplo, tratare de ser mas explicito en las siguientes entradas ..

Happy coding !!!

lunes, 17 de septiembre de 2007

Primeros pasos con CakePhp

Hola comunidad, pues despues de un largo rato de estar macheteandole a la documentacion de CakePhp, por fin me anime a escribir un poco acerca de la agotada configuracion que hay que hacerle a este framework :D, aqui les comparto mi experiencia:

Cakephp implementa el patron de diseño Modelo Vista Controlador (MVC) que es un patrón de arquitectura de software que separa los datos de una aplicación, la interfaz de usuario, y la lógica de control en tres componentes distintos. El patrón MVC se ve frecuentemente en aplicaciones web, donde la vista es la página HTML y el código que provee de datos dinámicos a la página, el controlador es el Sistema de Gestión de Base de Datos y el modelo es el modelo de datos.
  • Modelo: Esta es la representación específica de la información con la cual el sistema opera. La lógica de datos asegura la integridad de estos y permite derivar nuevos datos; por ejemplo, no permitiendo comprar un número de unidades negativo, calculando si hoy es el cumpleaños del usuario o los totales, impuestos o portes en un carrito de la compra.
  • Vista: Este presenta el modelo en un formato adecuado para interactuar, usualmente la interfaz de usuario.
  • Controlador: Este responde a eventos, usualmente acciones del usuario e invoca cambios en el modelo y probablemente en la vista
Aqui se observa el funcionamiento del patron MVC

Bueno ahora vamos a la parte practica..

Nos descargamos la version estable de Cakephp (aqui el link) y la guardamos en nuestro ruta de DocumentRoot

En Debian la ruta para almacenar nuestras paginas es /var/www/ (si has cambiado la ruta por default ahi coloca la bola .tar.gz), descomprimimos el archivo y lo renombramos como cake. Dentro de cake debemos tener los siguientes directorios: app/ cake/ docs/ index.php vendors/

Tambien edita el archivo default que esta en sites-available dentro de la carpeta de apache2 y edita la linea DocumentRoot asi:

DocumentRoot /var/www/cake/app/webroot/

Para todo esto debemos tener instalado LAMP en nuestro sistema, ahora creamos una base de datos en Mysql llamada cake. Bien solo nos falta modificar un archivo llamado database.php.default que esta dentro de app/config/ lo abrimos y lo editamos asi:



< ? php class DATABASE_CONFIG { var $default = array('driver' => 'mysql',
'connect' => 'mysql_connect',
'host' => 'localhost',
'login' => 'root',
'password' => '',
'database' => 'cake',
'prefix' => '');
}
?>


Donde en el elemento database pondremos el nombre de nuestra base de datos, y lo guardamos con el nombre de database.php Ahora solo nos queda checar en el navegador si ya funciona nuestro framework solo colocamos http://localhost y debemos observar algo similar a esto:




Nos vemos en la proxima entrada con un ejemplo mas con Cakephp... Happy Coding !!!

martes, 11 de septiembre de 2007

Las siete maravillas de la Tecnologia

Saludos comunidad ... esta vez escribo para comentarles que atraves de la seccion de tecnologia de el sitio 20 minutos me encuentro con un articulo que habla de la 7 maravillas de la tecnologia aqui les pongo la lista:

El ordenador más próximo al Polo Norte ocupa el primer lugar, una máquina propiedad de un laboratorio de la marina de EE UU que entre abril y octubre ofrece imágenes a través de su webcam , soporta temperaturas extremas y contribuye a la investigación de la zona.

Le sigue el ordenador más alejado de la tierra. Se trata de la computadora a cargo de la sonda Voyager 1 , que en la actualidad está a 4.000 millones de la Tierra, unas tres veces más lejos que Plutón. Es el objeto de fabricación humana que ha viajado a mayor distancia.

El centro de datos más misterioso es según CIO el que posee Google, y ocupa el tercer lugar de este ranking. Para hacerse una idea de sus dimensiones basta decir que el sistema de ventilación tiene el tamaño de un edificio de cuatro pisos, que en él pueden trabajar dos centenares de personas y pueden estar almacenados 200 petabytes de datos.

La cuarta maravilla del mundo tecnológico es un proyecto de computación distribuida , el E-SciencE II , que pone cientos de grandes ordenadores al servicios de investigación química o de geólogos. Actualmente 45 países utilizan esta infraestructura.

IBM y su supercomputador BlueGen/L, el mayor del mundo y líder del Top500 mundial, no podían quedar fuera de esta selección. Ocupa 2.500 metros cuadrados, ayuda a los investigadores a resolver cuestiones muy complicadas y consume la misma energía que un motor de 2000 caballos. Un monstruo de la ingeniería informática.

De lo más grande a lo más pequeño. El sexto puesto es para el modelo 02 del miniordenador OQO, el más pequeño de los que funcionan con Windows Vista. La séptima y última maravilla del mundo tecnológico según CIO es Linux, el sistema operativo libre creado por Linus Torvalds en 1991.

Como ven...

jueves, 6 de septiembre de 2007

Actualizando mi Debian Lenny !!!

Que onda comunidad linuxera les cuento que hace poco decidi cambiar mi distribucion Debian etch (estable) a la version testing, me estaba dando mucha flojera ya que tenia un buen de archivos que respaldar. La instalacion de Lenny no fue complicada al bootear con el cd escribi installgui, y despues de eso puro siguiente.. siguiente.. siguiente.. jajaja

Los repositorios que estoy utilizando son estos:

deb http://mmc.igeofcu.unam.mx/debian/ lenny main contrib non-free deb-src http://mmc.igeofcu.unam.mx/debian/ lenny main contrib non-free deb http://www.debian-multimedia.org testing main

Aqui les dejo una imagen de mi escritorio con Debian Lenny...

miércoles, 5 de septiembre de 2007

20 mandamientos para diseñar un sitio web

Saludos ... quitandole un poco el polvo a mi blog :D les comento esta nota que me encontre aqui sobre los aspectos mas importantes a tomar en cuenta a la hora de crear un sitio web, aqui les pongo una lista:

1. El usuario debe saber de que es el sitio en unos 10 segundos.
2. Haz el contenido “scaneable porque los usuarios no leen los sitios, los scanean (Jakob Nielsen).
3. No uses tipografías difíciles de leer en textos que quieres que se lean.
4. No solicites regitrarse al usuario a no ser que sea necesario.
5. No uses Flash sin una razón de peso (ojo que hay pocas).
6. No toques música en el sitio y si debes reproducir audio, deja que el usuario lo inicie.
7. No usues texto parpadeante.
8. Prefiere el CSS por sobre las Tablas.
9. Asegúrate que tus usuarios puedan buscar en todo el sitio
10. Usa navegación de texto y no con imagenes ni botones flash.
11. Si estás vinculando hacia un PDF o cualquier otro tipo de archivo que no sea html, házlo saber.
12. No uses estructuras de navegación complejas.
13. Evita por todos lo medios una Intro y una página “splash” que te lleve al contenido real.
14. No hagas sitios web compatibles solamente con un navegador específico
15. No subrayes texto a menos que sea un enlace
16. No uses Gifs Animados, ya no estamos en los años 90’s
17. No uses Pop-Ups aunque tu cliente te lo exija
18. No uses el Scroll horizontal, muchá gente ni lo notará
19. No cometas errores de ortografía porque pierdes la credibilidad.
20. Usa textos legibles en los sistemas CAPTCHA de los formularios.

Espero lo tomen en cuenta ...

ShareThis