lunes, 22 de noviembre de 2010

Redes computacionales

Una red de computadoras se refiere a varios equipos conectados, ya pueden ser via cables, señales, ondas o cualquier metodo de tranferir datos, archivos, recursos o servicios. Las redes funcionan mediante protocolos, llamados TCP/IP, se trata de una red internapara comunicación de Internet.
Las redes computacionales se pueden clasificar de la siguiente manera:
  1. Red de area personal (PAN): es una red de computadoras para la comunicación entre distintos dispositivos (computadoras, puntos de acceso a internet, telefonos, impresoras, etc.)
  2. Red de area local (LAN): es una de las conexiones mas usadas mediante modems que tengan wifi, es la interconexion de varias computadoras o perifericos, generalmente se conectan laptops.
  3. Red de area metropolitana (MAN): es una red de alta velocidadque da cobertura en un área geográfica extensa, permiten la transmicion de voz, video, datos, etc.
  4. Red de area amplia (WAN): son redes informáticas que se extienden sobre un área geográfica extensa. Contiene una colección de máquinas dedicadas a ejecutar los programas de usuarios.
  5. Red de area de campus (CAN): conecta redes de area local a través de un área geográfica limitada, puede ser mediante un campo universitario o una base militar.
  6. Red de area de almacenamiento (SAN): es una red concebida para conectar servidores, matricesde discos y librerías de soporte.
Las redes computacionales tienen varios componentes, entre los principales con los "Ordenadores", tambien denominados host, generalmente son sitios de trabajo o servidores.
Otro podria ser las "tarjetas de red", ya que esta permite el enlace entre la computadora que contenga esta tarjeta con la transmicion de datos, emplea un protocolo para su comunicacion.



Servidores: es un programa que está diseñado para transferir hipertextos, páginas web o páginas HTML, textos complejos con enlaces, figuras, formularios, botones y objetos incrustados como animaciones o reproductores de música. El programa implementa el protocolo HTTP.



Existen diversos tipos de servidores web, pero entre los que mas se destacan son los siguientes:
  • Servidor de archivos: almacena varios tipos de archivo y los distribuye a otros clientes en la red.
  • Servidor de impresiones: controla una o más impresoras y acepta trabajos de impresión de otros clientes de la red, poniendo en cola los trabajos de impresión.
  • Servidor proxy: realiza un cierto tipo de funciones a nombre de otros clientes en la red para aumentar el funcionamiento de ciertas operaciones, este es usado para poder entrar a paginas web bloqueadas o navegar desde otras direcciones ip.
  • Servidor web: como ya habiamos mencionado almacena y tranfiere documentos HTML, imágenes, archivos de texto, escrituras, etc.






domingo, 21 de noviembre de 2010

Software libre

Software libre se refiere a la libertad en que los usuarios tienen al momento de modificar, estudiar, compartir, copiar, etc. cualquier código que tenga este derecho, también puede distribuirlo a los demás. Un programa es software libre si los usuarios tienen todas las libertades de modificarlo o compartirlo. Hoy en día la comunidad de software libre dispone de múltiples herramientas de altísima calidad, ya que con el paso del tiempo ha evolucionado por los usarios. Linux es usado por grandes empresas como la NASA o Google, dando un buen aspecto y mas razones para usarlo.



Existen muchos programas que cuentan con un codigo de software libre, pero existe un navegador y un sistema operativo muy famosos que cuentan con esto:
  1. Sistemas operativos: Linux (Debian, Red Hat, etc.)

2. Navegadores: Mozilla Firefox



GNU/Linux: Linux es un sistema operativo donde combina el nucleo con el kernel libre, denominado Linux. Su desarrollo es uno de los ejemplos más prominente de su software libre; todo su codigo fuente puede ser utilizado, modificado y redistribuido libremente por cualquiera bajo los términos de la GPL, que significa "Licencia Publica General de GNU".
Linux puede funcionar de entorno grafico como en modo consola, que se ejecuta desde la terminal, Linux cuenta con varios escritorios graficos, donde los mas pupalres serian:
GNOME, KDE y LXDE.
En Linux tambien nos podemos encontrar que cuenta con muchos compiladores, ya que en este sistema operativo podemos escribir codigos en muchos lenguajes, ya que este los tiene incluidos, como puede ser: C++, Python, Java, Perl, Javascript, C, Ada, PHP, Ruby, entre otros, esto da una gran ventaja para utilizar este gran sistema operativo.


Este es un ejemplo de interfaz grafica del escritorio de Linux.

Entre las principales caracteristicas de Linux podremos encontrar las siguientes:
  1. Multitarea: varios programas (realmente procesos) ejecutándose al mismo tiempo.
  2. Multiusuario: varios usuarios en la misma máquina al mismo tiempo.
  3. Tiene protección de la memoria entre procesos, de manera que uno de ellos no pueda colgar el sistema.
  4. Consolas virtuales múltiples: varias sesiones de login a través de la consola entre las que se puede cambiar con las combinaciones adecuadas de teclas.
  5. Contiene un sistema de archivos especial llamado UMSDOS que permite que Linux sea instalado en un sistema de archivos DOS.
  6. Todo el código fuente está disponible, incluyendo el núcleo completo y todos los drivers, las herramientas de desarrollo y todos los programas de usuario.
  7. En linux casi no encontramos virus, esto sucede ya que podemos actualizarlo cada 6 meses, ya que la compañia Redhat saca nuevas versiones mejoradas de Linux.
Estas son algunas ventajas de usar Linux, ya que es un sistema como ya mencionamos de Codigo abierto, y se puede modificar o distribuir libremente para ir evolucionando este gran sistema operativo.

Mozilla Firefox: Es uno de los navegadores mas populares que existen y el mas usado, Firefox es de codigo libre o abierto, tiene las ventajas de navegacion por pestañas, corrector ortografico, busqueda progresiva, marcadores dinamicos, navegacion privada,
y un sistema de búsqueda integrado que utiliza el motor de busqueda que desee el usuario. Ademas de poder personalizar la ventana con diferentes temas o plugins adicionales para aumentar las opciones de busqueda.


Ventana de forefox personalizada por un tema black.

Caracteristicas que podemos encontrar en Firefox:
  1. Proteccion antiphishing: Cuando encuentres una página web que sea sospechosa de fraude (también conocido como phishing) Firefox te advertirá y te ofrecerá una página de búsqueda para encontrar la página web que realmente estabas buscando.
  2. Bloqueador de ventanas emergentes: Firefox te da control sobre las páginas que estás viendo, bloqueando ventanas emergentes molestas.
  3. Restaurar sesion: si Firefox tiene que reiniciarse o se cierra, cuando se inicie de nuevo lo tendrás exactamente como lo dejaste.
  4. Corrector ortografico: firefox tiene un corrector ortográfico integrado para evitar que comentas errores en las entradas de tu blog o en tu correo electrónico.
  5. Proteccion de programas espias: Firefox no permitirá que una página web descargue, instale, o ejecute programas en tu ordenador sin tu consentimiento explícito.
El software libre cada vez mas va en aumento, permitiendo a los usuarios poder mejorarlo cada dia mas y mas y poder compartirlos con los demas sin ningun tipo de restriccion o problema.

Fuentes: http://www.tufuncion.com/caracteristicas-firefox
es.wikipedia.org/
http://www.wikilearning.com/tutorial/caracteristicas_principales_de_linux-caracteristicas_de_linux/20536-2




Pygame (2 parte)

En esta entrada les mostrare como agregar una pelota a la ventana que habíamos creado en la entrada anterior de pygame, crear dos barritas como si fuera un juego.
Para lograr esto usaremos sprites, los sprites son usados en videojuegos para crear los gráficos de los protagonistas, en este caso nuestro sprite sera una pelota pequeña que rebotara entre la pantalla. Vamo a modificar el codigo que ya teniamos, para no volver a hacer las ventanas ni el fondo.
Para esto cambiaremos el fondo de pantalla que teníamos, ya que usaremos otro mas claro en donde se pueda apreciar la dicha pelota.
El fondo que yo use es este:



Nota: hay que guardar la imagen en la ubicación de nuestro código, así como cambiar el nombre en el código de la imagen para que pueda ser cargada.

Despues de esto descargaremos la imagen de la pelota, esta es la que yo use, pero ustedes pueden poner la que sea, mientras sea pequena:

Después de esto agregaremos las siguientes lineas a nuestro código:
-------------------------------------------------------------------------------------
class Bola(pygame.sprite.Sprite): --> esta función es para declarar las sprites, lo que seria la pelota
def __init__(self): --> aquí solo se inicia la clase de arriba
pygame.sprite.Sprite.__init__(self) -->esa función es parecida a la de arriba que sirve para llamar a la clase para el sprite
self.image = load_image("bola.png", True) -->aquí cargaremos la imagen de la pelota
self.rect = self.image.get_rect() -->en esta función se crean las barras, ya que crear en forma de rectángulo

self.rect.centerx = WIDTH / 2
-->esta linea y la de abajo es para la posición inicial de nuestra pelota, podemos modificar los valores para cambiar su posición.
self.rect.centery = HEIGHT / 2

self.speed = [0.5, -0.5]
-->aquí podemos modificar la velocidad de la pelota, solamente cambiamos los valores.
-------------------------------------------------------------------------------------
Despues de agregarle la clase bola a nuestro código, hay que agregarla, para esto ponemos la siguiente linea antes del bucle while:
-------------------------------------------------------------------------------------
bola = Bola()
-------------------------------------------------------------------------------------

Al final el código nos quedaría así:
-------------------------------------------------------------------------------------
import sys, pygame
from pygame.locals import *
WIDTH = 640
HEIGHT = 480

class Bola(pygame.sprite.Sprite):
def __init__(self):
pygame.sprite.Sprite.__init__(self)
self.image = load_image("bola.png", True)
self.rect = self.image.get_rect()
self.rect.centerx = WIDTH / 2
self.rect.centery = HEIGHT / 2
self.speed = [0.5, -0.5]
def load_image(filename, transparent=False):
try: image = pygame.image.load(filename)
except pygame.error, message:
raise SystemExit, message
image = image.convert()
if transparent:
color = image.get_at((0,0))
image.set_colorkey(color, RLEACCEL)
return image
def main():
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("lab progra web")
background_image = load_image('pingpong.png')
bola = Bola()
while True:
for eventos in pygame.event.get():
if eventos.type == QUIT:
sys.exit(0)
screen.blit(background_image, (0, 0))
screen.blit(bola.image, bola.rect)
pygame.display.flip()
return 0
if __name__ == '__main__':
pygame.init()
main()
-------------------------------------------------------------------------------------
Nos quedaría así:



Ahora sigue lo bueno, le daremos movimiento a nuestra pelota.Para esto agregaremos las siguientes lineas después de haber declarado la clase bola:
-------------------------------------------------------------------------------------
def actualizar(self, time): -->aquí definimos el método para el tiempo transcurrido.
self.rect.centerx += self.speed[0] * time --->esta linea y la de abajo son complicadas, ya que aqui establecemos la velocidad en la que se mueve la pelota mediante ejes, que serian x, y
self.rect.centery += self.speed[1] * time
if self.rect.left <= 0 or self.rect.right >= WIDTH: ---> esta linea y las otras dos de abajo, indican que si la pelota llegue a cualquier extremo, derecho o izquierdo, rebote.
self.speed[0] = -self.speed[0]
self.rect.centerx += self.speed[0] * time
if self.rect.top <= 0 or self.rect.bottom >= HEIGHT: --->esto es lo mismo de arriba, hace que rebote la pelota al momento de llegar a cualquier extremo.
self.speed[1] = -self.speed[1]
self.rect.centery += self.speed[1] * time
----------------------------------------------------------------------------------------------------------
Después de esto vamos a agregarle un reloj, esto nos servirá para que controle el tiempo en que la pelota rebote en la ventana, para esto agregamos la siguiente linea antes del bucle while
--------------------------------------------------------
clock = pygame.time.Clock()
--------------------------------------------------------

Ahora dentro del bucle while agregamos la siguiente linea para saber cuanto tiempo pasa cada vez que se ejecuta una intersección del bucle
---------------------------------------------------------
time = clock.tick(60)
---------------------------------------------------------

Ahora solo ponemos esta linea para actualizar la posición de la pelota antes de actualizarla con la ventana.
--------------------------------------------------------
bola.actualizar(time)
--------------------------------------------------------

Al final nuestro código quedaría de esta forma:
--------------------------------------------------------------------------------
import sys, pygame
from pygame.locals import *
WIDTH = 640
HEIGHT = 480

class Bola(pygame.sprite.Sprite):
def __init__(self):
pygame.sprite.Sprite.__init__(self)
self.image = load_image("bola.png", True)
self.rect = self.image.get_rect()
self.rect.centerx = WIDTH / 2
self.rect.centery = HEIGHT / 2
self.speed = [0.5, -0.5]
def actualizar(self, time):
self.rect.centerx += self.speed[0] * time
self.rect.centery += self.speed[1] * time
if self.rect.left <= 0 or self.rect.right >= WIDTH:
self.speed[0] = -self.speed[0]
self.rect.centerx += self.speed[0] * time
if self.rect.top <= 0 or self.rect.bottom >= HEIGHT:
self.speed[1] = -self.speed[1]
self.rect.centery += self.speed[1] * time

def load_image(filename, transparent=False):
try: image = pygame.image.load(filename)
except pygame.error, message:
raise SystemExit, message
image = image.convert()
if transparent:
color = image.get_at((0,0))
image.set_colorkey(color, RLEACCEL)
return image
def main():
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("lab progra web")
background_image = load_image('pingpong.png')
bola = Bola()
clock = pygame.time.Clock()
while True:
time = clock.tick(60)
for eventos in pygame.event.get():
if eventos.type == QUIT:
sys.exit(0)
bola.actualizar(time)
screen.blit(background_image, (0, 0))
screen.blit(bola.image, bola.rect)
pygame.display.flip()
return 0
if __name__ == '__main__':
pygame.init()
main()
--------------------------------------------------------------------------------

Pondré imágenes .jpg ya que nose como capturar imágenes gif para mostrar la pelota en movimiento.





Eso es todo, mas adelante continuare de como agregar las barras en los costados.

Fuente: http://miprogramacionenjuegos.wordpress.com/2007/05/15/la-clase-sprite/
http://razonartificial.com/2010/02/pygame-5-moviendo-sprites/












sábado, 20 de noviembre de 2010

Motores de Busqueda Web

Un motor de búsqueda es un sistema creado para buscar archivos almacenados en servidores web, las búsquedas se hacen mediante "spider", con palabras claves o arboles jerárquicos. Actualmente existen muchos motores de búsqueda, (Google, Yahoo, Hotbot, Bing, etc.) que nos ofrecen una velocidad y eficacia al momento de hacer nosotros nuestra búsqueda.


Actualmente son muchos los buscadores de búsqueda que existen, ya que día a día compiten por ser los mas solicitados, pero les hablare de uno en especifico que para muchos es el mejor en la actualidad, "Google". Google: Google es una empresa cuyo principal producto es el motor de búsqueda. Google tiene múltiples funciones de búsqueda avanzada para refinar las consultas. Su infraestructura principal está compuesta por varios data centers que funcionan con la distrubución RedHat, del sistema operativo GNU/Linux. ¿Como funciona Google?: La tecnologia de Google se basa mediante hipertextos, analiza el contenido de cada pagina web y la posicion de cada termino en cada una de las paginas consultadas. Google utiliza una tecnologia llamada "Page Rank", lo que hace es que cual coloca a los resultados más importantes en primer lugar en la búsqueda, despues mide de forma objetiva la importancia de las páginas web y se calcula que resuelve una ecuación de 500 millones de variables y más de 2.000 millones de términos. Aqui hay una imagen de como Google sigue ciertos pasos para buscar las paginas web consultadas por el usuario:

Google realizar ciertas funciones al momento de hacer sus busquedas en internet, como "Parseo", "Indexacion de documentos" y "Ordenacion".
  1. Parseo: Google se encarga solventar cuaquier error o problema que encuentre en un documento.
  2. Indexacion de documentos y keywords: despues de que google parsea los documentos, cada una de las palabras que la conforman se almacenan en un indice que permite a Google manejar miles de Terabytes muy rapido y agilmente.
  3. Ordenacion: Despues de estos dos pasos, Google ordenara los resultados y mostrara al usuario.



Google ademas de ser el mejor buscador cuenta con numerosos servicio al alcanze del usuario, son muchos pero entre los que destacan son:
  • Google Alerts: te permite ser avisado por correo electrónico acerca de búsquedas y/o textos particulares.
  • Google code search: Es un buscador de código fuente que permite utilizar comandos de búsqueda especiales.
  • Google earth (muy bueno): permite visualizar imágenes de satélite de cualquier rincón del mundo.
  • Google Groups: te permite crear listas de correo, interactuar en ellas y leer los mensajes de Usenet.
  • Google maps (muy bueno): es un servicio de mapeo el cual integra rutas de conducción y localización con mapas de ciudades. Dispone de un API bastante elaborado con el que se pueden realizar aplicaciones independientes que utilicen Google maps.
  • Google mobile: permite el acceso al buscador Google a través de un movil WAP.
  • Google sms: permite acceder a varios servicios del buscador a traves del movil.
Entre otros que cuenta Google.

viernes, 19 de noviembre de 2010

Common Gateway Interface

Common Gateway Interface mejor conocido por sus siglas "CGI", es una importante herramienta que permite al usuario solicitar datos de un programa ejecutado en un servidor web, permite la transferencia de datos entre el cliente y el programa.En una aplicacion CGI, el servidor web pasa las instrucciones del cliente a un programa externo a este.

Una de las ventajas de un CGI, es que puede ser creado por cualquier lenguaje de programacion que cree un archivo ejecutable, como pueden ser Java, Python, C++, Perl, etc. El CGI es comunmente usado para para contadores, bases de datos, motores de búsqueda, formulários, generadores de email automático.
El funcionamiento del CGI es sencillo, primero los script estan almacenados en un servidor, despues son llamados, se ejecutan y dan la informacion al usuario.

Aqui se muestra como interactua la ejecucion de un CGI




Estructura de un CGI:
  • Leer la forma de entrada del usuario.
  • Hacer lo que se desee con los datos.
  • Escribir la respuesta HTML a STDOUT.
Aunque los CGI se puedan programar en cualquier lenguaje, tambien existen otros lenguajes llamados de secuencias de comandos, como el lenguaje Perl, que no necesitan de esta operacion (compilar), siendo un lenguaje mas sencillo para este tipo de aplicaciones, ya que Perl es el lenguaje mas usado por los ususarios para la creaciones de CGI.

Pasos fundamentales para la creacion de un CGI:
  1. Escribir el CGI en el lenguaje deseado, (no hay que olvidar que Perl es el mas usado en este aspecto).
  2. Se debe de colocar el CGI en el servidor, estos archivos normalmente acostumbran a responder a nombres como "cgi-bin", "cgi-local", esto lo hacen para mayor seguridad en los archivos.
  3. Para que el CGI pueda funcionar, se debe de mandar a funcionar desde una pagina web, mediante un enlace.
  4. Despues de esto el programa CGI se conecta a la base de datos a la que esta asociada, despues la base de datos responde al CGI aportando todo lo que el CGI contenga.
  5. Una ves recibidos los datos al CGI, crea un HTML para crear una interfaz, que incluye la informacion extraida de la base de datos.




Razones para el uso de CGI:
  • Es un metodo muy rapido cuando se emplean demaciados codigos.
  • Es compatible con casi todos los sistemas operativos actuales.
  • Compatible con todos los clientes.
  • Se puede emplear cualquier lenguaje de programacion.
Razones por el cual no usar CGI:
  • Su tecnologia es un poco obsoleta.
  • No mantiene un estado.
  • Integracion debil entre el servidor y el CGI.
Enlace
Fuente: www.maestrosdelweb.com/editorial/cgiintro/
es.wikipedia.org/wiki/Interfaz_de_entrada_común

Usabilidad web

La usabilidad web se refiere a la experiencia que puede llegar a tener un usuario con un sitio web. Un sitio que tenga buena usabilidad es aquel que tenga una buena presentacion clara, ligera y entendible. Los diseñadores de paginas web se tienen que esforzar al maximo, ya que con el tiempo los usuarios se vuelven mas exigentes a la hora de navegar entre paginas web.
Los diseñadores de paginas web tienen que tener puntos importantes para el navegante:
  • Navegacion clara y sencilla que hable por si misma como usarla
  • Búsquedas faciles.
  • Texto de presentación preciso y directo.
  • Estructura visible de la página.
Al momento de diseñar paginas web se tienen que tener en claro estos puntos, claro que hay mas extensos, pero esos son los basicos para una buena presentacion.

Esta imagen muestra un diagrama de metas de un diseñador, como puede ser para una empresa que diseña paginas web.



Cuando empezamos a navegar entre paginas web, podemos establecer como estables las paginas que nos gusten, esto quiere decir que el contenido de dicha pagina es claro y estable. Existen 3 factores que deben de emplearse para una buena usabilidad web:
  1. Eficacia del uso: se refiere a que el usuario experimente y aprenda a utilizar una pagina web, posteriormente se le hace mas rapido y facil acceder a ella.
  2. Frecuencia y severidad del error: se trata de corregir errores que los usuarios cometen, ya sea porque no es entendible alguna parte de la pagina, el diseñador tiene que emplear tecnias para corregir esto.
  3. Facilidad de aprender: al momento de que el usuario ingrese a dicha pagina, el usuario se tiene que adaptar de forma rapida, para que si desea volver, lo haga con mucha mas facilidad.
Aqui les mostrare dos paginas web, en donde si comparamos en una se puede ver un trabajo muy desarrollado, en cambio a la otra uno muy pobre, y eso es lo que determina que una pagina tenga buen ranking y visitada por muchos usuarios.



Este es un ejemplo de una pagina web con poca usabilidad web, ya que los colores son pobres, no tiene mucha dinamica, cuenta con muy pocas cosas y el diseño no es tan bueno como otras paginas. Esta pagina se encuentra entre las 25 peores paginas web segun una revista llamada "PC World". Les dejo el link: http://whitehouse.com/

Aqui hay otro ejemplo pero diferente, ya que esta presenta animaciones, noticias, mas dinamismo, y mas interactividad.



http://www.realmadrid.com/cs/Satellite/es/Home.htm

Aqui vimos la comparacion en lo que se podria decir una buena contra una mala pagina web, todo depende de las herramientas que se den y los diseñadores para darle al usuario una mejor navegacion web.

Fuete: www.taringa.net
www.desarrolloweb.com


Interaccion humano-computadora

Este concepto es muy fundamental en la informática, ya que se encarga del diseño, evaluacion e implementación de cualquier aparato tecnológico que interactúen con la persona.



En este concepto hay que tener en cuenta que la interacción no solo puede ser de una computadora, sino también como de celulares, iphone, laptops, ipad, etc, ya que presentan una interfaz gráfica y esta debe ser entendible por el usuario. Para entender mejor este concepto se tienen que tener en cuenta los siguientes puntos:
  • Los desarrolladores deben de tener mucha paciencia al momento de crear el software, ya que tiene que ser muy entendible por el usuario.
  • Tener conocimiento de ingeniería al momento de hacer las interfaces.
  • Capacidad humana para utilizar maquinas.
  • Implementar algoritmos y programas de la interfaz en si.
Componentes:
  1. Usuario: Esto quiere decir que el usuario se puede comunicar a través de visión, audición, tacto y movimiento.
  2. Computador: Los dispositivos de entrada permiten introducir texto, como sería el caso del teclado, el teclado de un teléfono, el habla o bien un escrito a mano, dibujos, selecciones por pantalla, con el ratón.
  3. Origen del proceso interactivo: esto se refiere a que tiene que haber buena comunicación entre el usuario y el computador, por eso la interfaz gráfica tiene que estar diseñada a las necesidades del usuario.


La Interacción humano-computadora es una disciplina relativamente joven, en la que desde el primer ordenador, ha sido necesario el diseño de un sistema de comunicación persona-computadora. La importancia de esta disciplina se pone sobre relieve al leer artículos sobre el tema escritos hace poco más de cuarenta años, en los que se predecían elementos de interacción de los que se dispone actualmente.



Existen siete principios que se tienen que considerar en todo momento a la hora de diseñar la interfaz de usuario: "tolerancia, simplicidad, visibilidad, factibilidad, consistencia, estructura y retroacción."

Fuente: http://es.wikipedia.org/wiki/Interacci%C3%B3n_persona-computador



martes, 2 de noviembre de 2010

Pygame

Pygame es un conjunto de módulos o librerías para el lenguaje Python, que nos permite poder crear videojuegos en 2 dimensiones. Esta orientado a objetos scripts.


Para poder instalar esta librería basta con poner el siguiente comando desde la terminal:
"sudo apt-get install python-pygame"



Ya que este instalado pondré primero las cosas básicas, en este caso como crear una ventana:
--------------------------------------------------------------------------------------------------------
import pygame --->esto es para importar la librería pygame
from pygame.locals import *
WIDTH = 640 ---> ancho de la ventana, dependiendo de los valores aumenta o disminuye
HEIGHT = 480 ---> altura de la ventana, dependiendo de los valores aumenta o disminuye
def main(): ---> definir los siguientes comandos
screen = pygame.display.set_mode((WIDTH, HEIGHT)) ---> este comando es para poner la ventana
pygame.display.set_caption("lab progra web") --->aqui podemos poner el titulo de nuestra ventana

while True: --->este ciclo while infinito hace que la ventana no se cierre, ya que si no lo pusieramos la ventana se cerraria al momento de ejecutar el programa

for eventos in pygame.event.get():
if eventos.type == QUIT:
sys.exit(0)

return 0
if __name__ == '__main__': --->aquí cerramos lo que seria el programa para crear nuestra ventana
pygame.init()
main()

--------------------------------------------------------------------------------------------------------

Al final nos quedaria una ventana como esta:



Ya que hallamos hecho la ventana ahora le agregaremos una imagen de fondo a nuestra pantalla.
Para esto agregaremos los siguientes comando en el código anterior:
-------------------------------------------------------------------------------------------------------------------------------
def load_image(filename, transparent=False): -->definimos la función para la ruta de la imagen
try: image = pygame.image.load(filename) ---> le asignamos la variable a la imagen a través de pygame

except pygame.error, message:
raise SystemExit, message
image = image.convert() -->aquí convertimos la imagen al tipo de imagen de pygame
if transparent:

color = image.get_at((0,0)) -->esto sirve por si la imagen tiene transparencia manda a llamar a las siguientes 2 lineas, es decir para que pygame tome el píxel superior izquierdo como transparente

image.set_colorkey(color, RLEACCEL)
return image --->aqui regresamos la imagen, como si fuera un ciclo para que no se quite
background_image = load_image('galaxia.jpg') -->aquí debemos de poner el nombre de la imagen que pongamos

screen.blit(background_image, (0, 0)) -->esto nos sirve para la posición de la imagen, se manejan como coordenadas, y puedes ajustar la posición de la imagen.
pygame.display.flip()

-------------------------------------------------------------------------------------------------------------------------------

Al final nos quedaría el código así y la siguiente ventana:
------------------------------------------------------------------------------------------------------
import sys, pygame
from pygame.locals import *
WIDTH = 640
HEIGHT = 480
def load_image(filename, transparent=False):
try: image = pygame.image.load(filename)
except pygame.error, message:
raise SystemExit, message
image = image.convert()
if transparent:
color = image.get_at((0,0))
image.set_colorkey(color, RLEACCEL)
return image
def main():
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("lab progra web")
background_image = load_image('galaxia.jpg')
while True:
for eventos in pygame.event.get():
if eventos.type == QUIT:
sys.exit(0)
screen.blit(background_image, (0, 0))
pygame.display.flip()
return 0
if __name__ == '__main__':
pygame.init()
main()
------------------------------------------------------------------------------------------------------
Captura:



Nota: al momento de escoger la imagen, deben de guardarla en la misma localizacion del codigo para que cargue, y asignarle el mismo nombre.








Intefaz grafica (GUI)

La interfaz grafica de usuario o mejor conocido por sus siglas GUI (graphical user interface) es un programa informatico en todos los sistemas operativos que actua de interfaz de usuario, usa imagenes y conjuntos de graficas, para representar la informacion y las operaciones que se esten ejecutando en el sistema. Varios ejemplos de interfaces los podemos encontrar en Linux, Windows, Mac OS, etc.




Este es un ejemplo de interfaz grafica en Linux.

El diseño de la Interfaz Grafica de Usuario ha sido una de las cosas mas cuidadas por los desarrolladores de estos sistemas operativos durante los ultimos 30 años, ya que cada ves mas evoluciona de forma avanzada estas interfaces, la Interfaz Grafica se ha convertido en soluciones mucho mas visuales y accesibles para la mayoria de los usuarios.
La Interfaz Grafica no solamente la podemos encontrar en computadoras, sino tambien en celulares, ipo, ipad, laptops, consolas de videojuegos, etc.

Tipos de Intefaz Grafica

GUI's y Zooming user interface:

Este tipo de GUIs, es encontrado principalemente en videojuegos en la computadora.




Touchscreen user interface:
Este GUI se esta haciendo famoso ultimamente, ya que se esta usando en laptops, ipod, iphone y celulares. Consiste en que el usuario toque la pantalla y cumpla las funciones que podria tener un mouse solo con sus dedos.




Interfaz Natural de Usuario:

Este tipo de interfaz son las que se encuentran al momento de usar una aplicación, sistema, etc. sin utilizar un mouse como sistema de entrada, en lugar de esto usamos las manos o yemas de los dedos.




Entre las funciones principales de estos tipos de GUIs se pueden encontrar:
  • El control total de las funciones del equipo.
  • La comunicacion con otros sistemas.
  • Sistema y soporte interactivo.
  • Informacion del estado del sistema.
  • Configuracion y modificacion de la misma interfaz y el entorno.
El objetivo principal de estas GUIs, es que el usuario pueda interactuar con cualquier dispositivo y comunicarse, despues de esto que la informacion pueda desarrollarse de forma comoda para el usuario.

Fuentes: http://es.wikipedia.org/
http://www.sidar.org/recur/desdi/traduc/es/css/ui.html




lunes, 1 de noviembre de 2010

Aplicaciones Web

Una aplicacion web es una aplicacion usada por los usuarios accediendo a un servidor web, puede ser a travez de internet o intranet mediante un navegador web (Firefox, Internet explorer, Opera, etc.) las aplicaciones web usan un modo dinamico para interactuar con el usuario.



Cualquier usuario puede ingresar desde cualquier parte del mundo, y puede ser desde cualquier computadora o incluso cualquier dispositivo movil que cuente con internet (laptop, celular, ipod, etc.) Una aplicacion web esta formada por 3 capas, el navegador web ofrece la primera capa y un motor capaz de usar alguna tecnología web dinámica forma la segunda capa, y la tercera capa la contutiye una base de datos.
Forma de funcionar de una aplicacion web
Las mayorias de las aplicaciones web funcionan mediante bases de datos, los administradores de contenidos vía web almacenan los datos en bases de datos, estas bases de datos estan formadas por un numero variable de tablas que contienen columnas y filas, y estas tablas se componen del contenido que ha sido previamente cargado en ellas a través de formularios. En estas tablas llamamos al nombre de cada columna campo. Y a cada fila se le asignan
registros, ambos en el sistema poseen numeros de ID, que son unicos para cada registro.Las páginas que se generan a partir de esos contenidos son llamadas dinámicas. En este contexto el término dinámico no indica movimiento o animación, sino que hace referencia al hecho de que las páginas dinámicas de un sitio web se generan a partir de una solicitud o consulta, que realiza una máquina de cliente a un servidor web, como ya mencionamos antes.



Ventajas de las aplicaciones web:
  • No se necesita Instalar nada(No depende de algún Software), por lo general.
  • Puedes acceder a ella desde cualquier ordenador con conexión a Internet.
  • No necesitas actualizarlo.
  • La mayoria de las aplicaciones web son gratis.

Desventajas de las aplicaciones web:
  • Depende de una conexión a Internet permanente y una conexión promedio para una optima navegación.
  • Tienes limitado el espacio donde guardas tu información( si deseas guardar videos, imágenes, audio, documentos, etc. ).
  • Cuentan con pocos idiomas.
  • Dependen mucho de la configuración de la privacidad del navegador para trabajar al 100% ( Javascript, Cookies, Flash ).
  • Tus datos privados no los tienes, tu esto quiere decir que si hackean un servidor o base de datos, pueden acceder facilmente a todos tus datos.
Fuente: http://www.eduwilliam.com/?p=12
http://www.demartinacode.com/archives/60


domingo, 31 de octubre de 2010

¿Java o Pyhton?

En esta entrada les mostrare ventajas y desventajas de estos dos potentes lenguajes de programacion, ya que para hacer el proyecto final tenemos que tener en cuenta muchas cosas al momento de escoger el lenguaje usado para hacer la aplicación.

Pyhton

Pyhton es un lenguaje de alto nivel, puede soportar programacion orientada a objetos, programacion imperativa y programacion funcional, Pyhton es un lenguaje interpretado, esto quiere decir que sus instrucciones se ejecutan a partir de su codigo fuente. Varias empresas que usan este lenguaje son Google, NASA, ILM y Yahoo, viendolo como un lenguaje muy poderoso.

Ventajas de python:
  • Python herencia soporte multiple, lo que java no lo puede hacer.
  • Puede manejar por defecto listas, diccionarios, conjuntos, etc.
  • Creacion de interfaz grafica de manera rapida.
  • Contiene frameworks para trabajar con web como django
  • Incluye documentacion detallada, aparte de tutoriales.
  • Tiene una gran cantidad de librerias estandar
  • Es portable a distintos sistemas operativos
Desventajas de Pyhton
  • Puede ser un poco lento por ser un lenguaje interpretadoAlineación al centro
Ahora veamos en Java

Java



Java es un lenguaje de programacion orientada a objetos, que tambien permite la ejecucion de un mismo programa en multiples sistemas operativos. Java es usado en diversos sistemas inteligentes, como puede ser celulares, computadoras, estereos, ipod, etc. lo que lo hace ver un lenguaje mas usado por python.

Ventajas de Java:
  • El jdk es una herramienta libre de licensias, lo que quiere decir que es gratuito.
  • Tiene soporte dado por SUN.
  • Tiene muchas librerias graficas como "awt" y "swing".
  • Es muy usado en el mercado.
  • Tiene facil acceso a bases de datos con JDBC.
  • Es dinamico, por ejemplo que no requiere que compiles todas las clases de un programa para que este funcione.
Desventajas de Java:
  • Para el manejo de bajo nivel, se deben de usar metodos nativos, lo que lo limita a la portabilidad.
  • El diseño con las librerias ya mencionadas para interfaz grafica es un poco complicado.
  • Algunas herramientas para Java no son gratuitas.
Eso es todo, mas adelante vere si puedo publicar una aplicacion de cada uno de estos lenguajes.

Fuente: http://www.monografias.com/trabajos/lengprog/lengprog.shtml
http://www.forosdelweb.com/f130/python-frente-otros-lenguajes-623669/




Instalar y configurar XAMPP en Linux

XAMPP es un servidor independiente, de software libre. XAMPP esta disponible para para Microsoft Windows, GNU/Linux, Solaris, y Mac OS.X . XAMPP es utilizado actualmente para servidor de sitios Web y, con algunas modificaciones, es generalmente lo suficientemente seguro para serlo. Con el paquete se incluye una herramienta especial para proteger fácilmente las partes más importantes.



XAMPP básicamente es un conjunto de varias aplicaciones, "MySQL", "PHP", y "Perl". Aquí les mostrare como instalar y configurar XAMPP en Linux, ya que nos puede servir para el proyecto final, para montar nuestro servidor si queremos subir paginas web, bases de datos, aplicaciones, etc.

Pasos para instalar XAMPP:
1-Primero hay que descargar el programa de la pagina oficial de "Apache friends" http://www.apachefriends.org/es/xampp.html y después escoger la versión para Linux.



2-Después de descargarlo hay que entrar al "superusuario" en Linux, si es que no tenemos activado esta función haremos lo siguiente:

*entrar a la terminal y teclear "sudo passwd root", despues de esto nos pedira que pongamos un password y confirmalo.



*una ves que hayamos creado nuestro superusuario tendremos que acceder a el, para eso tecleamos "su" , despues de esto el password que tengamos y listo.



3-Una ves que ya tengamos descargado el XAMPP y hayamos creado nuestro superusuario para Linux, tendremos que descomprimirlo en la carpeta llamada /opt
para hacer esto de una manera sencilla, nos situamos en la localizacion de nuestro XAMPP en la terminal y desde ahi tecleamos "tar xvfz xampp-linux-1.7.3a.tar.gz -C /opt"



4-Aquí les muestro como se vería al momento de descomprimirlo. Después desde la terminal teclear el siguiente comando "/opt/lampp/lampp start" esto nos sirve para activar el sistema.



6-Después de todo esto solamente nos falta saber si hicimos bien todo, basta con poner en nuestro navegador "localhost" y nos aparecerá lo siguiente, además en el panel si escogemos "status" podemos observar que los servicios están activados.





Esto es todo, si nos sale la pantalla de bienvenida de Xampp podemos decir que nuestro servidor de aplicaciones esta completo.

Fuentes: www.taringa.net (para seguir y explicar los pasos)
es.wikipedia.org/