lunes, 22 de noviembre de 2010

Errores de http

 La idea de esta entrada fue porque cuando estavamos realizando el proyecto de medio curso tuvimos muchos problemas con los errores de HTTP.

Los códigos de errores HTTP describen el estado de una URL cuando un usuario intenta acceder a la página, esto puede incluir mensajes de error que se producen cuando los visitantes encuentran problemas en un sitio web. Los códigos son numéricos de tres dígitos.

Hay 5 clases de códigos HTTP, divididos en categorías por el primer dígito.
El primer dígito de 1, 2, o 3 representa una solicitud completamente funcional.
Un primer dígito de 4 representa un error del lado del cliente. Los códigos más comunes abarcan desde 400 hasta 404.
El primer dígito de 5 representa un error de lado del servidor . Códigos comunes abarcan desde 500 hasta 510

Escribiendo en Python una app de Facebook

Escribir una aplicación de Facebook es en esencia lo mismo que escribir cualquier aplicación web, sólo con un paso adicional en la salida de su aplicación web se procesa y se inserta en una página de Facebook. Aunque PHP parece la opción más popular (y es lo que Facebook se está escrito en) que puede utilizar cualquiera de los marcos de Python para escribir una aplicación. Incluso se podría liar si estuviera inclinado a hacerlo. Yo Turbogears, pero fácilmente se podría adaptar este marco a otro.

Sirviendo FBML

Puede generar FBML con cualquier sistema de plantillas Python. Utilize Genshi que fue muy bueno para generar FBML para mí, siempre y cuando se le instruyó para producir XML y HTML no, que usted puede hacer mediante la adición de format = "xml" al exponer decorador. Por ejemplo, aquí está el método de controlador para estadísticas.


nslookup

(Name System Lookup) es una herramienta que permite consultar un servidor de nombres y obtener información relacionada con el dominio o el host y así diagnosticar los eventuales problemas de configuración que pudieran haber surgido en el DNS.
Utilizado sin ningún argumento, el comando nslookup muestra el nombre y la dirección IP del servidor de nombres primario y una invitación de comando para realizar consultas. Basta con introducir el nombre de un dominio en la invitación de comando para detallar las características. De la misma manera, es posible solicitar información sobre un host indicando su nombre seguido del comando nslookup:
nslookup nombre.del.host
De modo predeterminado, el comando nslookup realiza consultas al servidor de nombres primario configurado en la máquina. Sin embargo, es posible consultar un servidor de nombres específico, agregando un signo menos después del comando:
nslookup nombre.del.host -nombre.del.servidor
Es posible modificar el modo de consulta del comandonslookup usando el argumento set:

  • set type=mx: Permite obtener información relacionada con el(los) servidor(es) de correo de un dominio.
  • set type=ns: Permite obtener información del servidor de nombres relacionado al dominio. 
  • set type=a: Permite obtener información de un host de la red. Se trata de un modo de consulta predeterminado. 
  • set type=soa: Permite mostrar la información del campo SOA (inicio de autoridad). 
  • set type=cname : Permite mostrar información relacionada con los alias. 
  • set type=hinfo: Permite mostrar, siempre y cuando los datos estén disponibles, la información relacionada con el material y el sistema operativo del host.
     
FUENTE
www.zoneedit.com/lookup.html

Saludos..

Servicio de DNS

Encontre un pagina muy buena que ofrece el servicio gratuito de un dominio.
dominio.no-ip.org es un ejemplo. 

Este servicio es por: www.no-ip.com.

Solo es nesesario registrarte y puedes dar del alta 5 dominios con las misma IP o diferentes.

En el caso de tener IP dinamica les recomiendo descargar el programa de no-ip en la misma pagina y esta disponeble para Linux, Mac y Windows.


domingo, 21 de noviembre de 2010

Ping

"Ping" (forma abreviada de Packet Internet Groper) es sin duda la herramienta de administración de redes más conocida. Es una de las herramientas más simples ya que todo lo que hace es enviar paquetes para verificar si una máquina remota está respondiendo y, por ende, si es accesible a través de la red.
La herramienta ping permite de esta manera diagnosticar la conectividad a la red mediante comandos del tipo:
ping nombre.del.equipo
name.of.the.machine representa la dirección IP de la máquina, o su nombre. Por lo general, se recomienda hacer una prueba usando la dirección IP de la máquina en primer lugar.
Funcionamiento de ping
Ping depende del protocolo ICMP, el cual permite diagnosticar las condiciones de transmisión. Utiliza dos tipos de mensajes de protocolo (de los 18 que ofrece ICMP):

  • El tipo 0, corresponde a un comando "solicitud de eco" enviado por la máquina fuente.
  • El tipo 8, corresponde a un comando "solicitud de eco" enviado por la máquina destino.
     
Con intervalos regulares (predeterminados por segundo), la máquina fuente (la que ejecuta el comando ping) envía una "solicitud de eco" a la máquina destino. Cuando se recibe el paquete "respuesta de eco", la máquina fuente muestra una línea que contiene cierta información. En caso de no recibir una respuesta, aparecerá una línea indicando que "el tiempo de espera de la solicitud ha finalizado".

Como hacer una App para Facebook

Creando aplicaciones en Facebook

Los recursos disponibles a los desarrolladores se agrupan en 3 categorías:
  • API: es una interfaz basada en REST que permite el acceso a los datos del perfil, amigos, fotos y eventos del usuario mediante la utilización de mensajes GET o POST.
  • Consultas (FQL, “Facebook Query Language”): es un lenguaje de consultas similar a SQL utilizado para acceder a los mismos datos que la API pero permitiendo consultas más complejas.
  • Maquetación (FBML, “Faceboook Markup Language”): es un lenguaje de markup similar a HTML que permite ser intercalado con el HTML a utilizar para integrar las aplicaciones a la experiencia de usuario Facebook. Utilizando FBML se pueden acceder distintos puntos de la red como ser el perfil, acciones del perfil, canvas y feeds. Este lenguaje también incluye soporte para AJAX y Javascript.

Direcciones IP

Una dirección IP es una etiqueta numérica que identifica, de manera lógica y jerárquica, a una interfaz (elemento de comunicación/conexión) de un dispositivo (habitualmente una computadora) dentro de una red que utilice el protocolo IP (Internet Protocol), que corresponde al nivel de red del protocolo TCP/IP. Dicho número no se ha de confundir con la dirección MAC que es un número hexadecimal fijo que es asignado a la tarjeta o dispositivo de red por el fabricante, mientras que la dirección IP se puede cambiar. Esta dirección puede cambiar 2 ó 3 veces al día; y a esta forma de asignación de dirección IP se denomina dirección IP dinámica (normalmente se abrevia como IP dinámica).

Serie de Fibonacci Java y JavaScript

JAVA
public class Serie {
public static void main(String []args){
int x, y = 0, z = 1, n;
/*Declaramos las variables que usaremos para generar los numeros de la serie de fibonacci */
for(n = 0; n < 20; n++){
x = y + z; /*Generamos los numeros de la serie*/
z = y;
y = x;
System.out.println(a);
}
}
}



sábado, 20 de noviembre de 2010

Usabilidad Web... Siase???

Los puntos a evaluar son:

1.- Visibilidad del estatus del sistema.
2.- Relación del lenguaje usado entre el sistema y el mundo real, que no se maneje un lenguaje muy tecnico para que el usuario final pueda entender con facilidad lo que está realizando.
3.- El control y la libertad del usuario mientras usa el sistema. Que el sistema permita usar las opciones de deshacer y rehacer.
4.- Coherencia y normas. Es decir que el sistema no usea palabras diferentes para acciones iguales o semejantes.
5.- Prevencion de errores. Es decir que el sistema nos ayude a evitar acciones indeseadas o errores.
6.- Que el usuario use el reconocimiento en lugar de la memoria. Es decir que el usuario tenga siempre visible lo que esta haciendo, las opciones e instrucciones.
7.- Flexibilidad y eficiencia en el uso. Facilitar que el sistema permita realizar de manera mas facil acciones pendientes.
8.- Estetica y diseño minimalista, que los dialogos no contengan informacion que nunca o en raras ocaciones es usada. Es decir mantener un diseño simple y eficaz.
9.- Ayudar al usuario a reconocer, entender y recuperarse de los errores que pudieran surgir, no usar lenguajes tecnicos y que sea facilmente comprendible.
10.- Documentacion y ayuda. Nunca está de mas el tener un manual que permita al usuario saber lo que está haciendo y en caso de errores que ayude a solucionarlo.


Usabilidad Web

En interacción persona-ordenador, la usabilidad se refiere a la claridad y la elegancia con que se diseña la interacción con un programa de ordenador o un sitio web. El término también se usa a menudo en el contexto de productos como la electrónica de consumo o en áreas de comunicación, y en objetos que transmiten conocimiento (por ejemplo, un libro de recetas o un documento de ayuda en línea). También puede referirse al diseño eficiente de objetos mecánicos como, por ejemplo, un manubrio o un martillo.

El grado de usabilidad de un sistema es, por su parte, una medida empírica y relativa de la usabilidad del mismo.
Empírica porque no se basa en opiniones o sensaciones, sino en pruebas de usabilidad realizadas en laboratorio u observadas mediante trabajo de campo.
Relativa porque el resultado no es ni bueno ni malo, sino que depende de las metas planteadas (por lo menos el 80% de los usuarios de un determinado grupo o tipo definido deben poder instalar con éxito el producto X en N minutos sin más ayuda que la guía rápida) o de una comparación con otros sistemas similares.

Active Server Pages

Active Server Pages (ASP), también conocido como ASP clásico, es una tecnología de Microsoft del tipo "lado del servidor" para páginas web generadas dinámicamente, que ha sido comercializada como un anexo a Internet Information Services (IIS).

La tecnología ASP está estrechamente relacionada con el modelo tecnológico y de negocio de su fabricante. Intenta ser solución para un modelo de programación rápida ya que "programar en ASP es como programar en Visual Basic y C#", por supuesto con muchas limitaciones y algunas ventajas específicas en entornos web.

Ajax

Ajax, acrónimo de Asynchronous JavaScript And XML (JavaScript asíncrono y XML), es una técnica de desarrollo web para crear aplicaciones interactivas o RIA (Rich Internet Applications). Estas aplicaciones se ejecutan en el cliente, es decir, en el navegador de los usuarios mientras se mantiene la comunicación asíncrona con el servidor en segundo plano. De esta forma es posible realizar cambios sobre las páginas sin necesidad de recargarlas, lo que significa aumentar la interactividad, velocidad y usabilidad en las aplicaciones.

Ajax es una tecnología asíncrona, en el sentido de que los datos adicionales se requieren al servidor y se cargan en segundo plano sin interferir con la visualización ni el comportamiento de la página. JavaScript es el lenguaje interpretado (scripting language) en el que normalmente se efectúan las funciones de llamada de Ajax mientras que el acceso a los datos se realiza mediante XMLHttpRequest, objeto disponible en los navegadores actuales. En cualquier caso, no es necesario que el contenido asíncrono esté formateado en XML.

JavaScript

JavaScript es un lenguaje de scripting orientado a objetos, basado en prototipos, sin tipo y liviano, utilizado para acceder a objetos en aplicaciones. Principalmente, se utiliza integrado en un navegador web permitiendo el desarrollo de interfaces de usuario mejoradas y páginas web dinámicas. JavaScript es un dialecto de ECMAScript y se caracteriza por ser un lenguaje basado en prototipos, con entrada dinámica y con funciones de primera clase. JavaScript ha tenido influencia de múltiples lenguajes y se diseñó con una sintaxis similar al lenguaje de programación Java, aunque más fácil de utilizar para personas que no programan.


CSS -/- Hojas de estilo en cascada

Las hojas de estilo en cascada (en inglés Cascading Style Sheets), CSS es un lenguaje usado para definir la presentación de un documento estructurado escrito en HTML o XML (y por extensión en XHTML). El W3C (World Wide Web Consortium) es el encargado de formular la especificación de las hojas de estilo que servirán de estándar para los agentes de usuario o navegadores.

La idea que se encuentra detrás del desarrollo de CSS es separar la estructura de un documento de su presentación.

Por ejemplo, el elemento de HTML <h1> indica que un bloque de texto es un encabezamiento y que es más importante que un bloque etiquetado como <H2>. Versiones más antiguas de HTML permitían atributos extra dentro de la etiqueta abierta para darle formato (como el color o el tamaño de fuente). No obstante, cada etiqueta <H1> debía disponer de la información si se deseaba un diseño consistente para una página y, además, una persona que lea esa página con un navegador pierde totalmente el control sobre la visualización del texto.

Open Source y repositorios

Código abierto es el término con el que se conoce al software distribuido y desarrollado libremente. El código abierto tiene un punto de vista más orientado a los beneficios prácticos de compartir el código que a las cuestiones morales y/o filosóficas las cuales destacan en el llamado software libre.

Su uso nació por primera vez en 1998 de la mano de algunos usuarios de la comunidad del software libre, tratando de usarlo como reemplazo al ambiguo nombre original en inglés del software libre (free software). Free en inglés significa dos cosas distintas dependiendo del contexto: gratuidad y libertad. Lo cual implica, para el caso que nos ocupa, "software que podemos leer, modificar y redistribuir gratuitamente" (software gratuito) y, además, software libre, según la acepción española de libertad.

El término para algunos no resultó apropiado como reemplazo para el ya tradicional free software, pues eliminaba la idea de libertad, confundida usualmente con la simple gratuidad. No obstante, el término código abierto continúa siendo ambivalente, puesto que se usa en la actualidad por parte de programadores que no ofrecen software libre pero, en cambio, sí ofrecen el código fuente de los programas para su revisión o modificación previamente autorizada por parte de sus pares académicos.

GNU

La Licencia Pública General de GNU o más conocida por su nombre en inglés GNU General Public License o simplemente sus siglas del inglés GNU GPL, es una licencia creada por la Free Software Foundation en 1989 (la primera versión), y está orientada principalmente a proteger la libre distribución, modificación y uso de software. Su propósito es declarar que el software cubierto por esta licencia es software libre y protegerlo de intentos de apropiación que restrinjan esas libertades a los usuarios.

Existen varias licencias "hermanas" de la GPL, como la licencia de documentación libre de GNU (GFDL), la Open Audio License, para trabajos musicales, etcétera, y otras menos restrictivas, como la MGPL, o la LGPL (Lesser General Publical License, antes Library General Publical License), que permiten el enlace dinámico de aplicaciones libres a aplicaciones no libres.


La Free Software Foundation (Fundación para el software libre) es una organización creada en octubre de 1985 por Richard Stallman y otros entusiastas del software libre con el propósito de difundir este movimiento.

La Fundación para el software libre (FSF) se dedica a eliminar las restricciones sobre la copia, redistribución, entendimiento, y modificación de programas de computadoras. Con este objeto, promociona el desarrollo y uso del software libre en todas las áreas de la computación, pero muy particularmente, ayudando a desarrollar el sistema operativo GNU.

viernes, 19 de noviembre de 2010

Programacion Web con Python CGI

Al tratarse Python de un lenguaje de código abierto existen multitud de módulos/librerías para realizar cualquier tarea programática que imaginemos. En ocasiones, como es el caso de la programación web, existen varios módulos diferentes que de una manera más básica o sofisticada nos permiten llevar a cabo la misma tarea. Para comprobarlo no tenemos más que visitar el portal de Python, en su sección de Temas/web (http://www.python.org/topics/web/). Allí podemos encontrar un largo listado de estos módulos, detallando sus diferentes funciones. A continuación enumeramos los más destacados, clasificadossegún la categoría de plataforma de desarrollo de aplicación web a la que pertenecen:

Navegadores Web

Un navegador o navegador web (del inglés, web browser) es un programa que permite ver la información que contiene una página web (ya se encuentre ésta alojada en un servidor dentro de la World Wide Web o en un servidor local).



El navegador interpreta el código, HTML generalmente, en el que está escrita la página web y lo presenta en pantalla permitiendo al usuario interactuar con su contenido y navegar hacia otros lugares de la red mediante enlaces o hipervínculos.

La funcionalidad básica de un navegador web es permitir la visualización de documentos de texto, posiblemente con recursos multimedia incrustados. Los documentos pueden estar ubicados en la computadora en donde está el usuario, pero también pueden estar en cualquier otro dispositivo que esté conectado a la computadora del usuario o a través de Internet, y que tenga los recursos necesarios para la transmisión de los documentos (un software servidor web).

Uso de formularios en PHP

Otra de las características más importantes de PHP es que gestiona formularios HTML. El concepto básico que es importante entender es que cualquier elemento de los formularios estará disponible automáticamente en su código PHP.



Un Ejemplo de un Formulario.
HTML form
<form action="accion.php" method="post">
<p>Su nombre: <input type="text" name="nombre" /></p>
<p>Su edad: <input type="text" name="edad" /></p>
<p><input type="submit" /></p>
</form>

No hay nada especial en este formularo, es solamente HTML sin ninguna clase de etiquetas especiales de ningún tipo. Cuando el usario rellena éste formulario y oprime el botón Submit, una página titulada action.php es llamada. En este archivo encontrará algo así:

Codigo en PHP

Hola <?php echo htmlspecialchars($_POST['nombre']); ?>.
Usted tiene <?php echo (int)$_POST['edad']; ?> años de edad.
Un ejemplo del resultado de esta secuencia de comandos puede ser:
Hola Ricardo. Usted tiene 18 años de edad.


Aparte de las funciones htmlspecialchars() y (int), debería ser obvio de que hace el código. htmlspecialchars() se asegura que todos los caracteres que son especiales en html sean codificados adecuadamente de manera que nadie pueda inyectar etiquetas HTML en tu página web. El campo edad, como sabemos que es un número, podemos convertirlo en un integer que automáticamente se deshará de cualquier carácter no numérico. También puede hacer lo mismo con PHP con la extensión filter Las variables $_POST['nombre'] y $_POST['edad'] son establecidas automáticamente por PHP. Anteriormente hemos usado la superglobal $_SERVER y ahora estamos apunto de introducirte la superglobal $_POST que contiene todos los datos del POST. Dese cuenta que el método de nuestro formulario es POST. Si usa el método fuera GET entoces los datos del formulario estarían en la superglobal $_GET. en lugar de POST. En su lugar también puedes usar la superglobal $_REQUEST, si no le importa el tipo de datos enviados desde el formulario. Contiene toda la información de GET, POST y COOKIE. Vea también la función import_request_variables().

Les recomiendo consultar
http://www.php.net/manual/es/language.variables.external.php
http://www.php.net/manual/es/language.types.php
http://www.php.net/manual/es/tutorial.oldcode.php

PHP

PHP es un lenguaje de programación interpretado, diseñado originalmente para la creación de páginas web dinámicas. Es usado principalmente en interpretación del lado del servidor (server-side scripting) pero actualmente puede ser utilizado desde una interfaz de línea de comandos o en la creación de otros tipos de programas incluyendo aplicaciones con interfaz gráfica usando las bibliotecas Qt o GTK+.

sábado, 13 de noviembre de 2010

Busqueda Web

Un motor de búsqueda es un sistema informático que busca archivos almacenados en servidores web gracias a su «spider» (o Web crawler). Un ejemplo son los buscadores de Internet (algunos buscan sólo en la Web pero otros buscan además en noticias, servicios como Gopher, FTP, etc.) cuando se pide información sobre algún tema. Las búsquedas se hacen con palabras clave o con árboles jerárquicos por temas; el resultado de la búsqueda es un listado de direcciones Web en los que se mencionan temas relacionados con las palabras clave buscadas.

Como operan en forma automática, los motores de búsqueda contienen generalmente más información que los directorios. Sin embargo, estos últimos también han de construirse a partir de búsquedas (no automatizadas) o bien a partir de avisos dados por los creadores de páginas (lo cual puede ser muy limitante). Los buenos directorios combinan ambos sistemas. Hoy en día Internet se ha convertido en una herramienta, para la búsqueda de información, rápida, para ello han surgido los buscadores que son un motor de búsqueda que nos facilita encontrar información rápida de cualquier tema de interés, en cualquier área de las ciencias, y de cualquier parte del mundo.

Oracle

Oracle es un sistema de gestión de base de datos relacional (o RDBMS por el acrónimo en inglés de Relational Data Base Management System), desarrollado por Oracle Corporation.

Oracle es básicamente una herramienta cliente/servidor para la gestión de Bases de Datos. Es un producto vendido a nivel mundial, aunque la gran potencia que tiene y su elevado precio hace que sólo se vea en empresas muy grandes y multinacionales, por norma general. En el desarrollo de páginas web pasa lo mismo: como es un sistema muy caro no está tan extendido como otras bases de datos, por ejemplo, Access, MySQL, SQL Server, etc.

Vamos ahora en centrarnos en que es Oracle exactamente y como funciona la programación sobre éste. Oracle como antes he mencionado se basa en la tecnología cliente/servidor, pues bien, para su utilización primero sería necesario la instalación de la herramienta servidor (Oracle 8i) y posteriormente podríamos atacar a la base de datos desde otros equipos con herramientas de desarrollo como Oracle Designer y Oracle Developer, que son las herramientas básicas de programación sobre Oracle.

Para desarrollar en Oracle utilizamos PL/SQL un lenguaje de 5ª generación, bastante potente para tratar y gestionar la base de datos, también por norma general se suele utilizar SQL al crear un formulario.

Es posible lógicamente atacar a la base de datos a través del SQL plus incorporado en el paquete de programas Oracle para poder realizar consultas, utilizando el lenguaje SQL.

Ejemplo de una base de Datos SQL

Bueno esta es una base de Datos de un proyecto llamado TheForgottenServer que es un servidor del MMORPG Tibia.

En la tabla podemos ver como Borra las tablas si existen para que no marque error y como crea las tablas en insertan los datos.

SQL

El lenguaje de consulta estructurado o SQL (por sus siglas en inglés structured query language) es un lenguaje declarativo de acceso a bases de datos relacionales que permite especificar diversos tipos de operaciones en éstas. Una de sus características es el manejo del álgebra y el cálculo relacional permitiendo efectuar consultas con el fin de recuperar -de una forma sencilla- información de interés de una base de datos, así como también hacer cambios sobre ella.

Es un lenguaje declarativo de "alto nivel" o "de no procedimiento", que gracias a su fuerte base teórica y su orientación al manejo de conjuntos de registros, y no a registros individuales, permite una alta productividad en codificación y la orientación a objetos. De esta forma una sola sentencia puede equivaler a uno o más programas que se utilizarían en un lenguaje de bajo nivel orientado a registros.

Base de Datos

Una base de datos o banco de datos (en ocasiones abreviada B.D.D.) es un conjunto de datos pertenecientes a un mismo contexto y almacenados sistemáticamente para su posterior uso. En este sentido, una biblioteca puede considerarse una base de datos compuesta en su mayoría por documentos y textos impresos en papel e indexados para su consulta. En la actualidad, y debido al desarrollo tecnológico de campos como la informática y la electrónica, la mayoría de las bases de datos están en formato digital (electrónico), que ofrece un amplio rango de soluciones al problema de almacenar datos.

Existen programas denominados sistemas gestores de bases de datos, abreviado SGBD, que permiten almacenar y posteriormente acceder a los datos de forma rápida y estructurada. Las propiedades de estos SGBD, así como su utilización y administración, se estudian dentro del ámbito de la informática.

Las aplicaciones más usuales son para la gestión de empresas e instituciones públicas. También son ampliamente utilizadas en entornos científicos con el objeto de almacenar la información experimental.

Aunque las bases de datos pueden contener muchos tipos de datos, algunos de ellos se encuentran protegidos por las leyes de varios países. Por ejemplo, en España los datos personales se encuentran protegidos por la Ley Orgánica de Protección de Datos de Carácter Personal (LOPD).