What's my IP ?

Este servicio nos indica cual es la dirección IP con la cual nos vemos desde Internet, esto es útil saberlo cuando estamos detrás de un proxy.  El servicio incluye además varias herramientas de redes, entre ellas escaneadores de puertos.

Enlace: http://www.whatsmyip.org/

Aplicación SimpleAccesoDatosWs 0.1

El día de hoy desarrollé una aplicación extremadamente simple para obtener de manera rápida y fácil información de ciertas tablas del sistema de información de un cliente. La idea era hacer una aplicación muy simple pero flexible que permitiera incorporar nuevas consultas con relativa facilidad. El objetivo general era evitar la solicitud de permitir la conexión directa al motor de base de datos desde las oficinas del cliente hasta el servidor de producción para obtener la información y actualizar sus bases de datos internas. Está desarrollada en PHP utilizando la librería NuSOAP.

En el servidor donde se encuentra el servicio web se configuran cada uno de los servicios (orígenes de datos), estos se relacionan con una consulta SQL y con unas etiquetas que se reemplazarán dinámicamente según la información que se suministre durante el llamado.

El cliente para consumir el servicio debe especificar el URL del servicio web, el nombre del servicio solicitado y opcionalmente los parámetros a enviarse para personalizar la ejecución de la consulta SQL en la base de datos. El resultado obtenido del servidor es almacenado en el cliente como un archivo CSV. El cliente accede al servicio web a través de un script de línea de comando (CLI).

Para restringir el acceso al servicio web, el servidor puede limitar los rangos de direcciones IP desde los cuales es posible acceder a él.

Como mencioné, la aplicación es muy sencilla pero puede ser de utilidad para dar una solución rápida y simple a una situación similar o para basarse en ella y crear una solución mas elaborada y elegante.

Para mas información acerca del uso de la aplicación por favor consultar el Manual de usuario.

Enlace:

Aplicación UpTimeCheck 0.1

UpTimeCheck es una aplicación muy simple desarrollada en PHP para verificar y registrar que diferentes sitios web se encuentren en línea.

Esta aplicación corre como un script de CLI (command line interface) y puede ejecutarse por demanda o a través de un proceso cron como es más conveniente. En la configuración pueden especificarse los sitios a revisar sin ningún límite o restricción respecto a su cantidad y algunos parámetros adicionales para personalizar su funcionamiento.

Para más información acerca de la aplicación por favor consultar el archivo README de la misma.

Como para todo en la vida, se reciben sugerencias y reportes de problemas.

Enlace: uptime_0.1.zip

Estructura de un documento XHTML

Cabecera XML con la codificación del contenido (estilo nuevo).

<?xml version="1.0" encoding="UTF-8" ?>

Tipo de documento XML. Utilizar sólo una de ellas.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

Cabecera HTML con el espacio de nombres y la especificación del lenguaje del contenido (estilo nuevo y antíguo).

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="sp" lang="sp">
<head>

Etiqueta http-equiv para especificar el tipo de contenido y su codificación (estilo antíguo).

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

Autor del documento.

<meta name="author" content="Jorge Iván Meza Martínez" />

Título de la página web.

<title>This is a demo</title>

Referencia a hoja de estilos externa.

<link href="/css/style.css" rel="stylesheet" type="text/css" />

Referencia a código JavaScript externo.

<script src="/js/script.js" type="text/javascript"></script>

Código JavaScript interno (inline).

<script type="text/javascript">
<![cdata[
    // Contenido del script.
]]>
</script>
</head>

Contenido de la página web.

<body>
    <!-- Contenido de la pagina -->
</body>
</html>

Consideraciones a tener en cuenta con XHTML

– Los documentos deben ser gramaticalmente correctos:

  • Todos los elementos deben tener una apertura y un cierre.
  • Debe respetarse el anidamiento jerárquico durante el cierre de etiquetas: <p><b>x</b></p>

– Los nombres de los elementos, los atributos y sus valores por defecto deben escribirse en minúsculas:

<input type=’submitvalue=’Enviar’ />

– Los valores de los atributos deben ir entre comillas, ya sean sencillas ( ‘ ) o dobles ( ” ).

<table rows=5class=tabla_principal></table>

– Los atributos no pueden ser minimizados, es decir, su valor no puede omitirse por ningún motivo.

<input type=”checkbox” checked=”checked” id=”caja_verificacion” />

– Todas las etiquetas deben cerrarse de una de las dos formas válidas.

Etiquetas vacías:

  • <hr></hr>
  • <hr />

Etiquetas no vacías:

  • <p>Este es un parrafo</p>

– Los elementos de bloque no pueden ser declarados dentro de elementos en línea. El siguiente ejemplo es inválido: <b><div class=’ejemplo’>Error</div></b>

– El atributo alt siempre debe estar presente en un elemento img. Los textos deben ir enmarcados en etiquetas p.

– Los siguientes carácteres: &, <, ]]> y, interfieren con el documento XHTML motivo por el cual deben reemplazarse, incluso en URLs, por sus correspondientes entidades: & y <.

– Para bloques extensos de código que adolecen de la situación anterior es posible enmarcar dichos códigos entre un bloque CDATA, por ejemplo para el uso de script y style en línea. Esta necesidad no aplica para documentos externos.

<script>
<![CDATA[
// … contenido del script
]]>
</script>

– Los elementos deben usar el atributo id como su identificador de fragmento, incluso los que históricamente habían tenido el atributo name.

– Los atributos desaprobados por HTML 4.01 no son incluidos por XHTML. Por ejemplo, la siguiente expresión es inválida: <font color=”red”>texto</font>, debe escribirse de la siguiente manera: <span style=”color: red”>texto</span>.

– Los siguientes elementos no pueden estar compuestos por los dispuestos a continuación.

  • <a> no puede contener elementos <a>.
  • <pre> no puede contener elementos <img>, <object>, <big>, <small>, <sub>, <sup>.
  • <button> no puede contener elementos <input>, <select>, <textarea>, <label>, <button>, <form>, <fieldset>, <iframe>, <isindex>.
  • <label> no puede contener elementos <label>.
  • <form> no puede contener elementos <form>.

Para preservar la compatiblidad se realizan las siguiente recomendaciones.

– Para los elementos vacíos cuyo cierre es inmediato, incluya un espacio antes de la terminación: />. Ejemplo: <br />.

– Para los elementos no vacíos utilice la forma ampliada de cierre, en lugar de la minimizada, aunque estos no tengan contenido. Ejemplo: <p> </p>.

– Se debe evitar el encerrar los fragmentos de código JavaScript y las hojas de estilo entre comentarios (<!– –>) toda vez que su contenido se ignorará y no serán tenidos en cuenta.

– Deben evitarse los espacios extra en blanco y los saltos de línea en el valor de los atributos ya que son interpretados de manera incosistente por los diferentes clientes.

– Los posibles carácteres a utilizarse para crear los nombres de los atributos id deben ser: las letras minúsculas y mayúsculas, los números del 0 al 9, los guiones (-), los guiones bajos (_), los dos puntos (:) y el punto (.). El valor debe empezar siempre con una letra.

– Utilice conjuntamente los atributos lang y xml:lang entendiéndose que xml:lang tiene precedencia. Ejemplo: <a href=”enlace.html” lang=”es” xml:lang=”es”>

– Para las entidades que así lo requieran utilice atributos id y name sabiendo que XHTML es compatible con el primero y no con el segundo.

– Para especificar la codificación de carácteres de un documento se sugiere utilizar las dos formas posibles: en la declaración XML y como una sentencia meta http-equiv.

<?xml version=”1.0″ encoding=”UTF-8″ ?>
<meta http-equiv=”Content-type” content=’text/html; charset=”UTF-8″‘ />

– Algunos atributos booleanos tienen tienen problemas con la forma ampliada que requiere XHTML en clientes que soportan especificaciones anteriores a HTML 4.0.

compact, nowrap, ismap, declare, noshade, checked, disabled, readonly, multiple, selected, noresize, defer.

– Para efectos de manipulación DOM, HTML retorna los nombres de los elementos y atributos en mayúsculas, XML tal y como fueron escritos y en XHTML se escriben en minúsculas.