PRINCIPIOS BÁSICOS DE LOS CAMPOS OBJECTID

ArcGIS mantiene el campo ObjectID y garantiza un Id. único para cada fila en una tabla. Cuando observa una tabla común o una tabla de atributos de una capa, casi siempre ve el campo ObjectID bajos los alias OID o ObjectID. Las funciones clave, como los conjuntos de selección de desplazamiento y visualización, dependen de la presencia de este campo.

La mayoría de las fuentes de datos admitidas por ArcCatalog y ArcMap proporcionan un campo ObjectID con los datos tabulares. En estos casos, el acceso al campo ObjectID es directo y se utiliza en la ventana Tabla en ArcMap y en la vista previa de tabla en ArcCatalog. Las siguientes fuentes de datos, sin embargo, no contienen un campo ObjectID con sus datos tabulares:

  • Datos de base de datos de OLE
  • Datos de archivo de texto delimitado
  • Datos de Microsoft Excel
  • Datos no espaciales de SDE 3 (nota: los datos espaciales tienen un campo ObjectID).
  • Datos no espaciales no registrados de ArcSDE (nota: los datos espaciales no registrados tienen un campo ObjectID).
  • Datos no registrados de una geodatabase personal

Si no está seguro del tipo de tabla con la que esta trabajando y de si tiene un campo ObjectID, puede saberlo rápidamente. En ArcMap, en la parte superior de la ventana de la tabla de contenido, haga clic en el botón Lista por fuente Mostrar por fuente, haga clic en la tabla en la tabla de contenido y luego haga clic en Propiedades. Haga clic en la pestaña Fuente del cuadro de diálogo Propiedades de la tabla y busque un SÍ o un No para la entrada Tiene campo de ID-Objeto:. En ArcMap o ArcCatalog, puede abrir el cuadro de diálogo Propiedades de la tabla y haga clic en la pestaña Campos. Si no figura ningún campo con el tipo de datos ObjectID, significa que los datos no tienen un campo ObjectID.

Si la tabla carece de un campo ObjectID, no podrá realizar ninguna de las siguientes operaciones:

  • Seleccionar las entidades en la capa del mapa. A pesar de que puede seleccionar registros en la ventana Tabla, incluso mediante una expresión en Seleccionar por atributos, este conjunto de selección no se refleja en el mapa.
  • Aplicar una consulta de definición para mostrar solo un subconjunto de registros o entidades.
  • Crear relaciones. Sin embargo, puede relacionar a una tabla sin un campo ObjectID a partir de una tabla que tenga el campo. En este caso, la Herramienta de identificación puede utilizar la relación para enumerar registros relacionados. No puede insertar selecciones a través de la relación.
  • Iniciar una sesión de edición y editar los atributos. Sin embargo, puede editar la tabla en la que está basada la capa directamente desde el disco. Por ejemplo, si es un archivo .txt, puede hacerlo con un editor de texto. Los cambios se reflejarán en el mapa la próxima vez que actualice el mapa.

Existen muchas maneras de obtener un campo ObjectID para los datos:

  • Si trabaja con una tabla de coordenadas x,y, y las visualiza en ArcMap, puede exportar las capas x,y a una nueva clase de entidad. En ArcCatalog, también puede convertir una tabla de coordenadas en una clase de entidad de puntos nueva. Ambos procedimientos crean una clase de entidad completamente funcional con un campo ObjectID.
  • Puede utilizar la herramienta Realizar tabla de consultas, que le permite crear una tabla utilizando una conexión OLE DB y especificar una columna para utilizar con el campo ObjectID o para agregar el campo de manera dinámica.
  • Con algunas fuentes de datos, puede registrar los datos con ArcGIS, lo que genera un campo ObjectID.

VARIABLES EN PHP

En PHP las variables se representan con un signo de dólar seguido por el nombre de la variable. El nombre de la variable es sensible a minúsculas y mayúsculas.

Los nombres de variables siguen las mismas reglas que otras etiquetas en PHP. Un nombre de variable válido tiene que empezar con una letra o un carácter de subrayado (underscore), seguido de cualquier número de letras, números y caracteres de

<?php

$var = 'Roberto';

$Var = 'Juan';

echo "$var, $Var";      // imprime "Roberto, Juan"

$4site = 'aun no';      // inválido; comienza con un número

$_4site = 'aun no';     // válido; comienza con un carácter de subrayado

$täyte = 'mansikka';    // válido; 'ä' es ASCII (Extendido) 228

?>

De forma predeterminada, las variables siempre se asignan por valor. Esto significa que cuando se asigna una expresión a una variable, el valor completo de la expresión original se copia en la variable de destino. Esto quiere decir que, por ejemplo, después de asignar el valor de una variable a otra, los cambios que se efectúen a una de esas variables no afectará a la otra.

PHP también ofrece otra forma de asignar valores a las variables: asignar por referencia. Esto significa que la nueva variable simplemente referencia (en otras palabras, “se convierte en un alias de” ó “apunta a”) la variable original. Los cambios a la nueva variable afectan a la original, y viceversa.

Para asignar por referencia, simplemente se antepone un signo ampersand (&) al comienzo de la variable cuyo valor se está asignando (la variable fuente). Por ejemplo, el siguiente segmento de código produce la salida ‘Mi nombre es Bob’ dos veces:

<?php

$foo = 'Bob';                // Asigna el valor 'Bob' a $foo

$bar = &$foo;                // Referenciar $foo vía $bar.

$bar = "Mi nombre es $bar";  // Modifica $bar...

echo $bar;

echo $foo;                   // $foo también se modifica.

?>

Algo importante a tener en cuenta es que sólo las variables con nombre pueden ser asignadas por referencia.

<?php

$foo = 25;

$bar = &$foo;      // Esta es una asignación válida.

$bar = &(24 * 7);  // Inválida; referencia una expresión sin nombre.

function test()

{

   return 25;

}

$bar = &test();    // Inválido.

?>

No es necesario inicializar variables en PHP, sin embargo, es una muy buena práctica. Las variables no inicializadas tienen un valor predeterminado de acuerdo a su tipo dependiendo del contexto en el que son usadas – las booleanas se asumen como FALSE, los enteros y flotantes como cero, las cadenas (p.ej. usadas en echo) se establecen como una cadena vacía y los arrays se convierten en un array vacío.

Ejemplo #1 Valores predeterminados en variables sin inicializar

<?php

// Una variable no definida Y no referenciada (sin contexto de uso); imprime NULL

var_dump($variable_indefinida);

// Uso booleano; imprime 'false'

echo($booleano_indefinido ? "true\n" : "false\n");

// Uso de una cadena; imprime 'string(3) "abc"'

$cadena_indefinida .= 'abc';

var_dump($cadena_indefinida);

// Uso de un entero; imprime 'int(25)'

$int_indefinido += 25; // 0 + 25 => 25

var_dump($int_indefinido);

// Uso de flotante/doble; imprime 'float(1.25)'

$flotante_indefinido += 1.25;

var_dump($flotante_indefinido);

// Uso de array; imprime array(1) {  [3]=>  string(3) "def" }

$array_indefinida[3] = "def"; // array() + array(3 => "def") => array(3 => "def")

var_dump($array_indefinida);

// Uso de objetos

// Imprime: object(stdClass)#1 (1) {  ["foo"]=>  string(3) "bar" }

$objeto_indefinido->foo = 'bar';

var_dump($objeto_indefinido);

?>

Depender del valor predeterminado de una variable sin inicializar es problemático al incluir un archivo en otro que use el mismo nombre de variable. También es un importante riesgo de seguridad cuando la opción register_globals se encuentra habilitada. Un error de nivel E_NOTICE es emitido cuando se trabaja con variables sin inicializar, con la excepción del caso en el que se anexan elementos a un array no inicializado. La construcción del lenguaje isset() puede ser usada para detectar si una variable ya ha sido inicializada.

PUERTO 80 Y 8080

PUERTO 80

En el ámbito de la informática, se conoce como Puerto 80 al que puerto por default, por el medio del cual un servidor HTTP “escucha” la petición hecha por un cliente, es decir por una PC en específico.

De acuerdo a los expertos, todas aquellas aplicaciones que funcionan en base a la IP (bien si son TCP o UDP) establecen comunicación con un servidor específico (puede ser SMTP, FTP, TELNET o HTTP, etc.) a través de un puerto, en el caso del HTTP, ese puerto es el 80. Así que mientras la PC de cada uno ocupa un puerto aleatorio, al momento de originar una petición al servidos, en el caso del HTTP siempre será, indistintamente el puerto 80, el que escuche o reciba la solicitud de servicio hecha por la PC cliente.

HTTP (Puerto 80)

El protocolo de transferencia de hipertexto (HTTP, HyperText Transfer Protocol) es el protocolo usado en cada transacción de la Web (WWW). HTTP fue desarrollado por el consorcio W3C y la IETF.

HTTP define la sintaxis y la semántica que utilizan los elementos software de la arquitectura web (clientes, servidores, proxies) para comunicarse. Es un protocolo orientado a transacciones y sigue el esquema petición-respuesta entre un cliente y un servidor. Al cliente que efectúa la petición (un navegador o un spider) se lo conoce como “user agent” (agente del usuario). A la información transmitida se la llama recurso y se la identifica mediante un URL. Los recursos pueden ser archivos, el resultado de la ejecución de un programa, una consulta a una base de datos, la traducción automática de un documento, etc.

HTTP es un protocolo sin estado, es decir, que no guarda ninguna información sobre conexiones anteriores. El desarrollo de aplicaciones web necesita frecuentemente mantener estado. Para esto se usan las cookies, que es información que un servidor puede almacenar en el sistema cliente. Esto le permite a las aplicaciones web instituir la noción de “sesión”, y también permite rastrear usuarios ya que las cookies pueden guardarse en el cliente por tiempo indeterminado.

Cómo comprobar el puerto 80

Así mismo, algunos expertos en informática aconsejan que para tener señas del puerto 80, se puede realizar un procedimiento bastante simple. Bastará con encender la PC personal, no abrir ningún otro explorador que no sea Internet Explorer, al tiempo en que se mantienen cerradas otras ventanas de funciones. Posteriormente el usuario deberá abrir también la ventana del MSDOS, en donde debe introducir el comando netstar –n, con lo cual se obtendrá una fila de cuatro columnas, por ejemplo:

TCP     134. 293.1.2:4569    55.798.7.567:80   ESTABLISHED

Con respecto a esta información, la primera columna estaría indicando el puerto de origen, puede ser TCP, como UDP. En segundo lugar, se señala la IP de la PC de donde está saliendo la información. Por su parte, la tercera columna indica el IP correspondiente al servidor de Google, y el puerto 80, que es el que escucha la petición que ha salido de la PC. Finalmente, la última columna señala si se ha establecido efectivamente la comunicación entre la PC y el servidor. Así se puede tener señas del Puerto 80, ubicado en el Servidor, que recibe las peticiones de los equipos remotos.

PUERTO 8080

Abrir o cerrar puertos de internet 8080 – puertosabiertos.com. Una forma de navegar de forma más privada por Internet, ya que el servidor oculta tu IP al navegar por Internet.

El puerto por defecto para los servicios HTTP es el 80, y ahi puedes correr el IIS, el Apache, el Tomcat, el XAMPP o lo que quieras. La cuestión del 8080 es que Tomcat supone que ya tienes algo en el puerto 80, el Apache, el IIS o el XAMPP, y para evitar problemas viene pre-configurado con el puerto 8080. Pero después se lo cambias sin más problemas y listo.

APPSERV

Appserv es una herramienta OpenSource para Windows con Apache, MySQL, PHP y otras adiciones, en la cual estas aplicaciones se configuran en forma automática, lo que permite ejecutar un servidor web completo.

Como extra incorpora phpMyAdmin para el manejo de MySQL.

Inmediatamente después de la instalación está disponible completamente funcional del servidor web Apache, que se ejecuta en el equipo local, que puede ejecutar un número ilimitado de sitios para ser muy eficaz para desarrollar y depurar scripts PHP sin subir archivos a un servidor remoto. El programa se distribuye gratuitamente bajo licencia GNU General Public License y es gratis, fácil de usar web-servidor capaz de servir páginas dinámicas. Con esta configuración, puede implementar rápidamente un equipo hecho y derecho y el servidor web rápido, con acceso desde la red local, sin necesidad de configuración adicional. Puede ser utilizado como un servidor web público en Internet.

Requisitos

Sistema operativo: Se recomienda Linux, Windows NT, Windows 2000, Windows Me, Windows Server 2003, Windows XP Windows Vista, Windows Server 2008 y Windows 7 en las versiones superiores a 2.0. Para las versiones anteriores a 2.0 se recomienda Windows 95, Windows 98

Procesador: Intel® Pentium® III 700 MHz

Memoria Ram: 128 MB

Espacio en Disco duro: 50 MB (70 MB durante la instalación)

SINTAXIS PARA COMENTAR EN PHP

PHP admite comentarios al estilo de ‘C’, ‘C++’ y de consola de Unix (estilo de Perl). Por ejemplo:

<?php

    echo 'Esto es una prueba'; // Esto es un comentario al estilo de c++ de una sola línea

    /* Esto es un comentario multilínea

       y otra lína de comentarios */

    echo 'Esto es otra prueba';

    echo 'Una prueba final'; # Esto es un comentario al estilo de consola de una sola línea

?>

Los comentarios al estilo de “una sola línea” solo comentan hasta el final de la línea o del bloque actual de código de PHP, lo primero que suceda. Esto implica que el código HTML después de // … ?> o # … ?> SERÁ impreso: ?> sale del modo PHP y vuelve al modo HTML, por lo que // o # no pueden influir en eso. Si la directiva de configuración asp_tags está activada, actúa igual que // %> y # %>. Sin embargo, la etiqueta </script> no sale del modo PHP en un comentario de una sola línea.

<h1>Esto es un <?php # echo 'simple';?> ejemplo</h1>

<p>El encabezado anterior dirá 'Esto es un  ejemplo'.</p>

XAMPP

XAMPP es un servidor independiente de plataforma de código libre. Permite instalar de forma sencilla Apache en tu propio ordenador, sin importar tu sistema operativo (Linux, Windows, MAC  o Solaris).

xampp-logo.png

XAMPP incluye además servidores de bases de datos como MySQL y SQLite con sus respectivos gestores phpMyAdmin y phpSQLiteAdmin. Incorpora también el intérprete de PHP, el intérprete de Perl, servidores de FTP como ProFTPD ó FileZilla FTP Server, etc. entre muchas cosas más.

XAMPP es una herramienta de desarrollo que permite probar un trabajo (páginas web o programación por ejemplo) en tu propio ordenador sin necesidad de tener que accesar a internet.

Paquetes que vienen con XAMPP

Paquetes básicos:

  • Apache, el servidor Web más famoso.
  • MySQL, una excelente base de datos de código libre.
  • PHP y Perl: lenguajes de programación.
  • ProFTPD: un servidor FTP.
  • OpenSSL: para soporte a la capa de sockets segura.

Paquetes gráficos:

  • GD (Graphics Draw): la librería de dibujo de gráficos.
  • libpng: la librería oficial de referencía de PNG.
  • libpeg: la librería oficial de referencía de JPEG.
  • ncurses: la librería de gráficos de caracteres.

Paquete de bases de datos:

  • gdbm: la implementación GNU de la librería standard dbm de UNIX.
  • SQLite: un motor de base de datos SQL muy pequeño y cero configuración.
  • FreeTDS: una librería de base de datos que da a los programas de Linux y UNIX la habilidad de comunicarse con Microsoft SQL y Sybase.

Paquetes XML:

  • expat: una librería parser de XML.
  • Salbotron: una toolkit de XML.
  • libxml: un parser C de XML y un toolkit para GNOME.

Paquetes PHP:

  • PEAR: la librería de PHP.
  • Una clase pdf que genera documentos PDF dinámicos con PHP.
  • TURCK MMCache: un potenciador de la performance de PHP.

Otros paquetes:

  • zlib: una librería de compresión.
  • mod_perl: empotra un interprete de Perl en Apache.
  • gettext: un conjunto de herramientas que asiste a los paquetes GNU para producir mensajes multilinguales.
  • mcrypt: un programa de encriptación.
  • Ming: una librería de salida en Flash.
  • IMAC C-Client: un API de correos

TEST DE TURING

CONCEPTO

El Test de Turing nace como un método para determinar si una máquina puede pensar. Su desarrollo se basa en el juego de imitación.

La idea original es tener tres personas, un interrogador, un hombre y una mujer. El interrogador está apartado de los otros dos, y sólo puede comunicarse con ellos escribiendo en un lenguaje que todos entiendan. El objetivo del interrogador es descubrir quién es la mujer y quien es el hombre, mientras que el de los otros dos es convencer al interrogador de que son la mujer.

1.PNG

La variante introducida por Turing consiste en sustituir a uno de los interrogados por un ordenador. Se pueden dar dos casos, que se sustituya al hombre, con lo cual sólo el ordenador tendría que aparentar ser una mujer, o que se sustituya a la mujer, con lo cual tanto el hombre como el ordenador estarían imitando. Aunque esta última opción podría ser un experimento interesante, no se intenta comprobar la habilidad de imitar a una mujer, así Turing cambia el objetivo de conocer el sexo por el de reconocer la máquina. La finalidad de estos cambios es hacer el juego lo más justo posible. Lo primero, es que no tiene que consistir en un concurso de engaños, por lo que uno de los implicados no tendría por qué aparentar ser otra cosa. Otro detalle es que a Turing poco le importa si el ordenador emplea trucos preestablecidos para eludir o manipular las respuestas (por ejemplo, equivocándose en preguntas aritméticas o tardando más tiempo del necesario en responderlas). Supone que el interrogador también les empleará para reconocerle, así que lo importante es lo que resulta del juego, no los métodos que se emplean para jugar ni los mecanismos internos de razonamiento, que, entre otras cosas, también son desconocidos en el ser humano.

Una máquina podría pasar el test de Turing cuando el interrogador no lograra reconocerlo en un número significativo de ocasiones.

OBJECIONES

Nada más aparecer el Test de Turing, también salen a la luz las primeras críticas. La mayoría de ellas estaban basadas en temas éticos y religiosos, y muchas de las posiciones más críticas venían de personas que consideraban que el ser humano era muy especial y que ninguna máquina podría ni siquiera acercarse a las capacidades de este.

Una de las primeras objeciones es matemática. El teorema de Gödel afirma que en un sistema lógico con la suficiente potencia se pueden crear frases que no pueden ser ni probadas ni refutadas dentro de él. Sin embargo, Turing afirma que de los errores o confusiones tampoco está libre la mente humana, y esto merma la capacidad intelectual.

Otra dificultad es la falta de conciencia. Se afirmaba que para que una máquina fuera mentalmente activa debería tener conciencia, tanto de sí misma como de los demás, y generar sentimientos positivos o negativos sobre la información que le llega o las acciones que realiza. El solipsismo es una radicalización de esta idea, que sostiene que la única manera de saber si una máquina piensa es ser esa máquina. El problema es que, siguiendo esta idea, la única manera de saber si otro ser humano piensa es ser ese ser humano, lo que se conoce como el problema de las otras mentes. Turing afirma que, si entre los seres humanos se considera políticamente correcto obviar el solipsismo, también debería hacerse con las máquinas. Y cómo la única forma de resolver el problema de la falta de conciencia es el solipsismo, lo más adecuado es que tampoco se considere.

Con la objeción de Lady Lovelace se quiere mostrar la idea de que las máquinas nunca podrían generar nada nuevo, sorprendente o distinto. Como dice Turing (y como cualquiera que haya utilizado, por ejemplo, un programa de cálculo estructural o simplemente conocidos sistemas operativos de ventanas, podría ratificar), el ordenador, siendo una máquina, puede sorprender continuamente. Aunque esto no puede considerarse como un proceso mental creativo, puede que la creatividad se realice en la mente del observador, y no en el generador. Por ejemplo, tanto puede sorprender un libro como una persona o un coche.

Al problema de que la máquina sea un sistema discreto mientras que la mente humana un sistema continuo (problema de la continuidad del sistema nervioso), Turing responde que cualquier sistema continuo se puede discretizar con suficientes recursos de forma que no se note la diferencia entre uno y otro.

Para finalizar, se puede hablar del problema de la informalidad de la personalidad. El comportamiento humano no puede describirse con un conjunto de reglas útiles en cualquier situación. La respuesta de Turing consiste en que hay diferencias entre reglas de conducta (por ejemplo, con el semáforo en rojo, pare) y reglas de actuación. Las reglas de conducta pueden enumerarse, pero no las de actuación, porque, entre otras cosas, muchas se desconocen. Pero Turing también afirma que aún con unas pocas reglas de actuación en un sistema discreto las respuestas pueden ser totalmente inesperadas y distintas, de forma que, al igual que en un ser humano, no se pueden preveer.

LAS PREDICCIONES DE TURING

El artículo de Turing recoge muchos comentarios audaces sobre las posibilidades de la inteligencia de las máquinas, que en aquel momento muchas parecían de ciencia ficción. Turing creía a los computadores capaces de desarrollar tareas humanas y de un modo humano, que las dificultades de diseñar máquinas pensantes eran principalmente de programación y que las “proezas” que él esperaba de las máquinas serían realizables en un futuro previsible (como ajustar su propio programa o predecir el efecto de alteraciones en su propia estructura).

Lo que en 1950, en términos de velocidad y capacidad en ordenadores era inimaginable, es ahora realidad. Sin embargo, las predicciones de Turing sobre máquinas y el Juego de Imitación, son todavía un desafío (Turing pensó que en unos 50 años habría máquinas que “jugarían” tan bien al Juego de Imitación que un interrogador no tendría una probabilidad mayor al 70 % de realizar la adecuada identificación tras cinco minutos de cuestiones)

DEL JUEGO DE IMITACIÓN AL TEST DE TURING.

AÑOS 1960 Y 1970.

Las primeras alusiones al Test de Turing (TT) fueron mayoritariamente filosóficas.

  1. Comentarios de Keith Gunderson

En su artículo “The Imitation Game” (1964, Mind) enfatiza dos puntos:

Cree que jugar al Juego de Imitación con éxito es un fin que puede ser alcanzado a través de diversos medios y particularmente, sin poseer inteligencia.

Sostiene que pensar es un concepto general y que jugar al Juego de Imitación no es sino un ejemplo de lo que las entidades pensantes pueden hacer

Los dos puntos son claramente críticos con la validez del Juego de Imitación como una medida de la inteligencia.

  1. Réplicas de John G. Stevenson

Lanza varios argumentos contra Gunderson en su artículo “On The Imitation Game” (1976). Una de estas objeciones es que para Gunderson el hecho de ser capaz de jugar al Juego de Imitación es simplemente un ejemplo, cuando no es así, ya que una máquina buena en dicho juego es capaz de hacer cosas impresionantes, dice, aunque no las haga de forma tan exhaustiva como en pensamiento humano.

  1. El Test de Turing como Ciencia Ficción.

Richard Purtill publica en 1971 un artículo en Mind, “Beating The Imitation Game” donde critica ideas de Turing. Piensa que el juego es interesante, pero como parte de la ciencia ficción. Encuentra que es inimaginable construir en un futuro previsible una máquina que juegue al Juego de Imitación, que es un sueño humano. Manifiesta que si algún día las máquinas se comportan como en la ciencia ficción, asentirá que piensan. Los ordenadores no son capaces de “jugar” exitosamente porque, para él, el comportamiento de los seres pensantes no es determinista y no puede ser explicado en términos puramente mecánicos.

Geoffrey Sampson ataca brevemente los argumentos de Purtill en “In Defence Of Turing”. Cree que el comportamiento de los computadores es determinista porque están diseñados por humanos, quienes tienen herramientas que les permiten estudiar cómo se comportan.

AÑOS 1980 Y 1990.

La Habitación China

A principios de los 80 John Searle propone un ejemplo:

Una persona que no sabe ni una palabra de chino es encerrada en una habitación.

Hay una apertura en el cuarto a través de la cual pasamos hojas de papel que contienen frases en chino, que para la persona, son garabatos sin significado. Pero tiene en la habitación un “Libro de Chuletas para el Test de Turing Chino”, de manera que al enviarle un escrito, consulta el libro y puede dar como respuesta cierta secuencia de símbolos chinos, cuyo significado, por supuesto, desconoce. Para la gente de fuera de la habitación parecía que la persona encerrada en la habitación entiende chino perfectamente, pero no es así. Estaría pasando el Test de Turing Chino sin saber nada de dicho idioma. Esto es claramente una crítica al TT y a la visión computacional de la mente.