lunes, 22 de septiembre de 2008

Sessions

Les dejo un resumen pequeño de lo que vimos hoy en relación a las sesiones en PHP.

  • session_start(); /*requerido para browsers que usan cookies */
  • $_SESSION['usuario']='pepe'; /*creo obj*/
  • if (isset($_SESSION['usuario']) ... /*existe obj?*/
  • unset($_SESSION['usuario']); /*destruyo obj*/
  • echo session_id(); /*muestro el identificador de la sesión */

Más data en:
http://ar2.php.net/session
http://www.programacionweb.net/articulos/articulo/?num=377
http://php.ciberaula.com/articulo/introduccion_sesiones_php/
http://www.w3schools.com/PHP/php_sessions.asp
http://www.desarrolloweb.com/articulos/235.php

lunes, 15 de septiembre de 2008

Intro a MYSQL desde PHP

Chicos. Recuerden que para acceder al administrador de MySQL tienen que acceder a:
http://lisa/pma

Y que la base de datos tiene como prefijo curso en mayúsculas y guión bajo.

Saludos.

jueves, 11 de septiembre de 2008

La historia detrás de Google Chrome

Un poco comercial y un poco conceptual, es este video del nuevo "navegador" de Google.

lunes, 8 de septiembre de 2008

Expresiones Regulares

Más allá de este "doc", les paso un link que explica en detalle muy bien este tema.

http://www.ignside.net/man/php/regex.php


martes, 2 de septiembre de 2008

Clase Bolsa

Con los chicos de 6toB comenzamos a hacer una clase para un tipo abstracto llamado "BolsaSinOrden".

La idea es que sea una bolsa donde se puedan meter "cosas" que no admita repetidos (sin dar un error) y que cuando le "pida uno" me lo de, sin repetir y en un orden aleatorio (y sin fin, o sea que siempre le pueda pedir uno, y cuando me dio todos, vuelva a empezar).

Les dejo la primer version que tiene funcioonalidad para crear la bolsa, meter cosas y pedir cosas. Proximamente agregaremos quitar y otras funcionalidades. Para probarlo, pueden reemplazar el "\n" de los echos por "
" asi se ve lindo en el browser.

Gutes.




<?php

class BolsaSinOrden{
private $elems;
private $tam;
private $devueltos;


function __construct(){
$this->elems = array();
$this->devueltos = array();
$this->tam = 0;
}

/* Inserta un elemento sin repeticion.
* Recorro los elementos hasta ahora,
* si esta, salgo de la funcion
* si no, termina el foreach y lo agrega al
* final del array, solo por comodidad.
*/
public function ponerUno($e){
foreach ($this->elems as $elem){
if ($elem == $e)
return;
}
$this->elems[] = $e; // meto al final
$this->tam++; // se agranda la bolsa
}


/*
* Debe devolver de a uno los elementos de la bolsa,
* el orden debe ser aleatorio y no darme algo dos veces.
* Luego de darme uno, debe volver a ponerlo en la bolsa
* RECORDANDO que me lo devolvio
*/

public function dameUno(){
$aDevolver = rand(0, $this->tam -1);
if (!isset($this->devueltos[$aDevolver])){
$this->devueltos[$aDevolver] = 1;
return $this->elems[$aDevolver];
}else{
if (sizeof($this->devueltos) == $this->tam) {
$this->devueltos = array();
return $this->dameUno(); // podria no llmarse aca! pero lo dejo
}
return $this->dameUno();
}
}

public function imprimirBolsa(){
echo "{";
foreach ($this->elems as $e){
echo $e . " ";
}
echo "}";
}

}


/* PRUEBAS */

$miBolsa = new BolsaSinOrden();

$miBolsa->ponerUno(2);
$miBolsa->ponerUno(112);
$miBolsa->ponerUno(2222);
$miBolsa->ponerUno(2);
$miBolsa->ponerUno(2);
$miBolsa->ponerUno(2);
$miBolsa->ponerUno(2);
$miBolsa->ponerUno(2);
$miBolsa->ponerUno(515152);
$miBolsa->ponerUno(3535);
$miBolsa->ponerUno(2);
$miBolsa->ponerUno(2);

/* hasta aca la bolsa tiene: {2,112,2222,515152,3535}*/
$miBolsa->imprimirBolsa();

/* Obtengo las cosas en forma aleatoria, pero nunca se vacia!!!*/
echo "\n";
echo "me dio:" . $miBolsa->dameUno() ."\n";
echo "me dio:" . $miBolsa->dameUno() ."\n";
echo "me dio:" . $miBolsa->dameUno() ."\n";
echo "me dio:" . $miBolsa->dameUno() ."\n";
echo "me dio:" . $miBolsa->dameUno() ."\n";
echo "me dio:" . $miBolsa->dameUno() ."\n";
echo "me dio:" . $miBolsa->dameUno() ."\n";
echo "me dio:" . $miBolsa->dameUno() ."\n";


?>

domingo, 29 de junio de 2008

¿Porqué XML?

Información básica sobre tecnología XML
El Lenguaje de marcado extensible (XML) proporciona una forma de describir datos estructurados. A diferencia de las etiquetas HTML, que se utilizan básicamente para controlar la presentación y apariencia de los datos, las etiquetas XML se utilizan para definir la estructura y los tipos de datos de los propios datos.

XML utiliza un conjunto de etiquetas para definir elementos de datos. Cada elemento encapsula una parte de datos que puede ser muy simple o muy compleja. Puede definir un conjunto ilimitado de etiquetas XML. Por ejemplo, podría definir etiquetas XML para declarar partes de datos de un pedido, como el precio, los impuestos, la dirección de envío, la dirección de facturación, etc. A medida que se adopten etiquetas XML en toda la organización y a través de las organizaciones, los datos de todos los tipos de almacenes de datos distintos serán más fáciles de intercambiar y manipular.

XML es una simple plataforma independiente y un estándar muy utilizado. La ventaja de XML sobre HTML es que separa la interfaz de usuario de los datos estructurados. Esta separación de datos de la presentación habilita la integración de datos desde diversos orígenes. Es posible convertir información de clientes, pedidos, resultados de investigaciones, pagos de facturas, historiales clínicos, datos de catálogos y mucha otra información a XML.


XML frente a HTML
A continuación se presentan algunos puntos importantes que se deben tener en cuenta acerca de la relación entre XML y HTML:

XML no es un sustituto de HTML; de hecho, XML se puede considerar como un complemento de HTML. XML y HTML tienen objetivos distintos: HTML está diseñado para mostrar datos y se centra en la apariencia de los datos, mientras que XML está diseñado para describir datos y está centrado en lo que son los datos.
Al igual que HTML, XML no hace nada más. Mientras que es posible utilizar las etiquetas XML para describir la estructura de un elemento como un pedido, este lenguaje no contiene ningún código que se pueda utilizar para enviar ese pedido, procesarlo o asegurarse de que está completo. Otras personas deben escribir código para hacer realmente estas cosas con sus datos en formato XML.
A diferencia del lenguaje HTML, el autor de un esquema o documento define las etiquetas XML y éstas son ilimitadas. Las etiquetas HTML están predefinidas; los autores de HTML sólo pueden utilizar etiquetas compatibles con el estándar HTML actual.


Usos de XML
XML es una forma extremadamente flexible de transferir datos. A continuación se presentan ejemplos donde se puede utilizar XML:

  • Un documento normal
  • Un registro estructurado, como un registro de citas o un pedido
  • Aplicaciones Web de Internet o intranet que mueven datos
  • Un objeto con datos, como el formato persistente de un objeto o control ActiveX
  • Un registro de datos, como el conjunto de resultados de una consulta
  • Metacontenido acerca de un sitio Web, como CDF (Channel Definition Format, Formato de definición de canal)
  • Una presentación gráfica, como una interfaz de usuario de la aplicación
  • Vínculos entre información y personas del Web
  • Código C# que se puede documentar con XML
  • Documentos de descubrimiento utilizados para encontrar servicios Web XML disponibles

A continuación se enumeran diversas ventajas que XML tiene sobre otros formatos a la hora de almacenar información:

  • Los formatos XML se basan en texto, que lo hacen más legible, fácil de documentar y, a veces, más fácil de depurar.
  • Los documentos XML pueden utilizar mucha de la infraestructura ya creada para HTML, incluido el protocolo HTTP y algunos exploradores. HTTP permite que se transfiera XML a través de servidores de seguridad.
  • El análisis XML está perfectamente definido y ampliamente implementado, lo que posibilita la recuperación de información de documentos XML en diversos entornos.
  • Las aplicaciones pueden confiar en los analizadores de XML para realizar alguna validación estructural, así como en la comprobación de tipo de datos (cuando se utilizan esquemas).
    XML se crea en una base Unicode, lo que facilita la creación de documentos internacionalizados.

No obstante, XML no es adecuado para todas las situaciones. Los documentos XML tienden a ser más detallados que los formatos binarios a los que sustituyen. Consumen más ancho de banda de red y espacio de almacenamiento o requieren más tiempo de procesador para la compresión. El análisis XML puede ser más lento que el análisis muy optimizado de los formatos binarios y puede requerir más memoria. No obstante, un cuidado diseño de aplicaciones puede evitar algunos de estos problemas.

Validar documentos XML
Para validar los documentos XML que contienen los datos y la estructura deseados, debe asociar un esquema XML al documento XML. Los esquemas XML son las reglas que definen cómo se estructuran los elementos y atributos para formar documentos XML. Puede compartir esquemas entre organizaciones para hacer más simple la transferencia y el proceso de datos compartidos. Para obtener más información, vea Introducción a los esquemas XML.

Mostrar datos XML
Se pueden utilizar varias formas para mostrar (o presentar) datos XML.

Incluso existen mecanismos de enlace de datos que se pueden utilizar junto con hojas de estilos para organizar datos XML en una presentación visual y para agregar interactividad.

He aquí algunos métodos, entre otros, para mostrar XML:

  • XSLT – Lenguaje de hoja de estilos extensible
  • CSS – Hojas de estilos en cascada
  • Microsoft Internet Explorer

Recursos XML
Si tiene familiaridad con HTML, puede aprender a crear documentos XML, lo que únicamente requiere que sean válidos y correctos.

Para obtener más información, vea la especificación para XML del consorcio World Wide Web (W3C) (http://www.w3.org/XML/).

http://msdn.microsoft.com/es-es/library/8ktfywf4(VS.71).aspx

viernes, 4 de abril de 2008

PHP según Wikipedia

http://es.wikipedia.org/wiki/Php

sábado, 29 de marzo de 2008

Curso veloz de redes

Vamos a ver con un poco más de detalle ese endemoniado tema de las redes domésticas.

Si usamos un router, no tendremos que hacer casi nada. Un programa dentro del dispositivo se ocupará de configurar las conexiones, las computadoras, el firewall y el enlace con Internet disponible para todos. Es uno de los motivos por los que aconsejo usar uno de estos equipos, aparte de que la instalación será muy fácil de escalar en el futuro y su software de firewall es transparente y bastante seguro. (Dicho sea de paso, sí, se puede usar además un firewall en cada PC, lo que no está de más para mantener a raya algunos invasores).

Quizás el motivo más importante para usar un router es que nos da acceso a Internet sin tener que encender más que la computadora que vamos a usar... o el celular, en el caso de los ruteadores Wi-Fi. De otro modo, la máquina conectada a Internet debería mantenerse siempre encendida, y no siempre queremos eso.

Ahora, un router suele ser poco "propedéutico". Nunca sabemos qué hace ni cómo lo hace, de modo que el día que algo falla no tenemos ni idea de por dónde empezar a investigar.

Así que vamos a hacer el ejercicio de conectar dos PC usando un cable cruzado y dos plaquitas de red. A propósito, si alguna de las computadoras no tiene tarjeta de red (un componente que hoy suele venir integrado al motherboard) habrá que adquirir e instalar una. Esto es muy sencillo en verdad, pero si nunca desarmó una computadora no va a empezar hoy, y personalmente desaconsejo estar metiendo mano en las máquinas, si no se tiene mucha experiencia con la electricidad. Es preferible solicitarle al service, fabricante, integrador o ese primo que sabe que se ocupe de colocar la placa de red en el equipo. El procedimiento, recuérdelo, incluye el instalar los controladores adecuados; de otro modo, el dispositivo, igual que una placa de sonido o de video, no funcionará. En el caso de las placas integradas al motherboard, lo mismo; con el añadido de que además podría ser necesario activarlas desde la configuración del BIOS (eso que comúnmente se llama Setup).

Con el hardware listo, todo es cuestión de enchufar cada extremo del cable cruzado a cada PC, con lo que la parte física de la instalación quedará terminada. Lo mejor es conectar las máquinas apagadas, pero la red funcionará igual si lo hace cuando los equipos ya están encendidos.

Ahora hay que crear una conexión de red en Windows. El hecho de enchufar el cable no crea esta conexión. Para hacerlo, vaya a Inicio> Panel de control> Conexiones de red y haga clic en la etiqueta Crear una conexión nueva (arriba a la izquierda, donde dice Tareas de red). Se abre un asistente con varias opciones. La que debe elegir es Configurar una red doméstica o de oficina pequeña.

A continuación se abrirá otro asistente donde deberá elegir si el equipo está conectado directamente a Internet o si lo hace por medio de otra computadora. La respuesta es obvia: si el cablemódem o el módem ADSL están conectados a esta PC, hay que elegir la primera opción; si no, la segunda. En general, la máquina que se conecta directamente con Internet tendrá dos placas de red, una para el cablemódem o el módem ADSL y otra para la red local.


Direcciones IP
La conexión que hemos creado con estos asistentes tendrá ya los componentes necesarios: Cliente de redes Microsoft , Programador de paquetes QoS (por Quality of Service), Compartir impresoras y archivos, y Protocolos TCP/IP.

Sí, los mismos protocolos que se usan para Internet se pueden usar para montar una pequeña red doméstica, y es de lo más conveniente. No tendremos que aprender las reglas de dos conjuntos de protocolos; salvo pequeñas excepciones, todo lo que sabemos de Internet servirá en nuestra red local, lo mismo que el software, que en un 99% es gratis.

Así que nuestra red doméstica es, técnicamente, una intranet (exacto, como la de la oficina). Y de la misma manera que cada computadora en Internet debe tener su propia dirección (o número IP), cada PC de nuestra red doméstica debe tener una dirección única. Es como para comunicarse por teléfono: necesitamos un número propio y un número al que llamar, y dos hogares diferentes no pueden tener el mismo número en la misma ciudad.

Las direcciones o números IP toman la forma de cuatro bloques de dígitos de 0 a 255 separados por puntos. En realidad son cifras de 32 bits, pero cuando las manipulamos en la pantalla adoptan un aspecto como este: 209.191.93.52. Esta es la dirección IP de Yahoo!. Si la escribe en el navegador será lo mismo que poner www.yahoo.com.

En Internet, las direcciones de los sitios son asignadas por una autoridad competente y, en el caso de los usuarios finales, por los proveedores de Internet. En casa no tenemos ni lo uno ni lo otro. ¿Así que, cómo hacemos para asignar direcciones IP?

Es muy fácil. Si abre las Propiedades de la conexión de red que acaba de crear (botón derecho sobre el icono), selecciona Protocolo de Internet (TCP/IP) y aprieta el botón Propiedades que se ve abajo, se abrirá un cuadro con dos pestañas. En la primera (llamada General ) debe activarse Obtener una dirección automáticamente . Eso significa que un software de Windows se ocupará de que esa computadora tenga el número correcto cuando arranque. ¿Así de fácil? Sí, así de fácil. Este método (que apareció hace 15 años) se llama DHCP (por Dynamic Host Configuration Protocol ) y se ocupa de asignar las direcciones automáticamente cuando la red se inicia. Habiendo sólo dos computadoras es bastante innecesario, pero resulta muy cómodo, y mi mejor consejo es que lo configure de esta forma. Es que, ¿acaso hay otra manera?

Sí, se pueden asignar las direcciones manualmente. A fin de cuentas, si usted puede recordar varios números de celular, que tienen la forma 154.xxx.xxxx, 155.xxx.xxxx y 156.xxx.xxxx, entonces no necesita llamar al técnico para establecer las direcciones IP de su red local. Además, si lo hace manualmente tendrá más control y siempre sabrá, por ejemplo, que la computadora de su esposa, conectada directamente con Internet, es 192.168.1.1, y la suya, 192.168.1.2. Si mañana se compra una notebook, le podrá asignar la dirección estática 192.168.1.3, y listo. Es más, pueden combinarse DHCP y direcciones estáticas, y existen, en DHCP, muchas posibilidades adicionales, pero con un puñado de computadoras no necesitará entrar en tales sutilezas.

Excelente, pero ¿podemos usar cualquier número que se nos ocurra? No, de ninguna manera. La tecnología Internet reserva tres rangos de números IP para redes privadas (para los que buscan documentación técnica, es el RFC 1918, Address Allocation for Private Internets). Se las conoce como direcciones no ruteables , porque si un paquete de datos sale de nuestra red hacia Internet con alguna de esas direcciones, es descartado inmediatamente. Esos tres grupos de direcciones son:
  • 192.168.0.0 a 192.168.255.255
  • 10.0.0.0 a 10.255.255.255
  • 172.16.0.0 a 172.31.25.255

Dos consejos, entonces. Para no complicarse, use DHCP y asunto terminado. Si quiere tener más control, emplee las direcciones 192.168.1.1, 192.168.1.2, y así sucesivamente.

¿Máscaras y pasarelas?

Todo bien hasta acá, ¿pero qué carámbanos es ese campo máscara de subred, que figura debajo de la dirección IP? Es exactamente lo que su nombre indica, una máscara. Se vería más claro si tradujéramos sus números a binario, pero eso es precisamente lo que estamos tratando de evitar.

Simplifiquemos. Si usted necesita preguntar "¿Qué es una máscara de subred?", entonces use siempre 255.255.255.0. Esto quiere decir que sólo el último número de las direcciones IP de su red cambiará (192.168.1.x), y que podrá ir de 1 a 254. O sea, podría tener 254 computadoras en su red; poco probable, pero así es (por qué el 0 y el 255 no se pueden usar para esto es un asunto que excede esta columna). Si usa un router, serán 253, porque la dirección 192.168.1.1 será la del router.

No se detenga mucho en esto, en las redes domésticas de pocas computadoras todos usamos 255.255.255.0, y listo. De hecho, algunos routers lo configuran así automáticamente.

Si no usa DHCP, la pestaña General de las Propiedades de los protocolos TCP/IP también le pedirá la dirección del gateway o pasarela. Si usa un router, ponga allí la dirección del router (típicamente, 192.168.1.1 o 192.168.2.1). Si no, déjelo en blanco.

Los servidores DNS, al final de este cuadro de diálogo, son los que traducen las direcciones de fantasía (www.yahoo.com) a números IP (209.191.93.52), que son los que realmente usan los navegadores y otros programas para hacer su tarea. Las direcciones de los DNS son informadas por el proveedor de Internet. A veces hay que elegir Obtener automáticamente , y otras, ingresar a mano dos números IP, los del servidor primario y el secundario. Depende de la empresa de Internet que le dé el servicio.

Con todos estos números listos en ambas computadoras, la red está lista para iniciarse, aunque todavía tenemos que hacer algunos ajustes más antes de poder aprovecharla. Para empezar, reinicie ambas computadoras y, cuando el Escritorio de Windows haya cargado por completo, verifique que la red esté habilitada en Inicio>Conexiones de red (o Inicio> Panel de control> Conexiones de red ). Normalmente, es así. Las redes jamás dan problemas, salvo que cometamos errores muy groseros. Si el icono está gris y no se habilita al darle doble clic, hay que empezar a revisar todo lo que hicimos para descubrir dónde estuvo la falla.

Queda un paso, todavía: el nombre del Grupo de trabajo . Este es uno de esos detalles que pueden volver loco al más sensato de los humanos, porque la red anda y todo parece estar OK, y sin embargo las máquinas se muestran incapaces de compartir recursos. ¿Qué está pasando? Pasa que no tienen el mismo nombre de grupo de trabajo, o bien sí, lo tienen, pero Windows se encapricha con que lo volvamos a ingresar.

Va de suyo que ambas computadoras deben tener el mismo nombre de grupo. Para editar esto, abra las Propiedades de Mi PC y vaya a Nombre de equipo> Cambiar . En ese cuadro seleccione Grupo de trabajo y elija un nombre. Haga lo mismo en las otras computadoras de la red y reinícielas.

Aunque parece complicado, esto se hace una vez y nos olvidamos del asunto hasta que cambiemos de equipo o reinstalemos Windows. En rigor, el tema redes es unas 3000 trillones de veces más complicado que esta breve síntesis que he planteado aquí, pero para hacer funcionar la red y resolver sus problemas básicos, que es lo único que nos importa, alcanza y sobra.

Llegados a este punto, es posible poner a trabajar la red a nuestro servicio. De compartir carpetas, impresoras y la conexión con Internet tratará la próxima edición de La compu.

Por Ariel Torres
http://www.lanacion.com.ar/tecnologia/nota.asp?nota_id=997396

domingo, 23 de marzo de 2008

El modelo TCP/IP

TCP/IP está basado en un modelo de referencia de cuatro niveles. Todos los protocolos que pertenecen al conjunto de protocolos TCP/IP se encuentran en los tres niveles superiores de este modelo.

Tal como se muestra en la siguiente ilustración, cada nivel del modelo TCP/IP corresponde a uno o más niveles del modelo de referencia Interconexión de sistemas abiertos (OSI, Open Systems
Interconnection) de siete niveles, propuesto por la Organización internacional de normalización (ISO, International Organization for Standardization).

Los tipos de servicios realizados y los protocolos utilizados en cada nivel del modelo TCP/IP se describen con más detalle en la siguiente tabla.

NivelDescripciónProtocolos

Aplicación

Define los protocolos de aplicación TCP/IP y cómo se conectan los programas de host a los servicios del nivel de transporte para utilizar la red.

HTTP, Telnet, FTP, TFTP, SNMP, DNS, SMTP, X Windows y otros protocolos de aplicación

Transporte

Permite administrar las sesiones de comunicación entre equipos host. Define el nivel de servicio y el estado de la conexión utilizada al transportar datos.

TCP, UDP, RTP

Internet

Empaqueta los datos en datagramas IP, que contienen información de las direcciones de origen y destino utilizada para reenviar los datagramas entre hosts y a través de redes. Realiza el enrutamiento de los datagramas IP.

IP, ICMP, ARP, RARP

Interfaz de red

Especifica información detallada de cómo se envían físicamente los datos a través de la red, que incluye cómo se realiza la señalización eléctrica de los bits mediante los dispositivos de hardware que conectan directamente con un medio de red, como un cable coaxial, un cable de fibra óptica o un cable de cobre de par trenzado.

Ethernet, Token Ring, FDDI, X.25, Frame Relay, RS-232, v.35

Para obtener más información acerca de ARP, IP, ICMP, IGMP, UDP y TCP, ver Descripción de TCP/IP.

Nota:


  • El modelo de referencia OSI no es específico de TCP/IP. Este modelo fue desarrollado por ISO a finales de los años 70 como marco para describir todas las funciones necesarias en una red interconectada abierta. Es un modelo de referencia muy conocido y aceptado en el campo de las comunicaciones de datos y se utiliza aquí sólo para propósitos de comparación.

Lecturas adicionales recomendadas:

Protocolos principales de TCP/IP

Protocolo Internet (IP)

Protocolo de mensajes de control de Internet (ICMP, Internet Control Message Protocol)

Protocolo de administración de grupos de Internet (IGMP)

Protocolo de datagramas de usuario (UDP)

Protocolo de control de transporte (TCP)