LIBRO RECOMENDADO: FUNDAMENTOS DE PROGRAMACIÓN CON EL LENGUAJE DE PROGRAMACIÓN C++ ED. 2017 (VICENTE BENJUMEA , MANUEL ROLDÁN)

En este manual se describen las características básicas del lenguaje C++. Está concebido desde el punto de vista docente, por lo que nuestra intención no es hacer una descripción completa del lenguaje, sino únicamente de aquellas características adecuadas como base para facilitar el aprendizaje en un primer curso de programación. Se supone que el alumno compatibilizará el uso de este manual con las explicaciones del profesor, impartidas en el aula.

El lenguaje de programación C++ es un lenguaje muy flexible y versátil. Debido a ello, si se utiliza sin rigor puede dar lugar a construcciones y estructuras de programación complejas, difíciles de comprender y propensas a errores. Por este motivo, restringiremos tanto las estructuras a utilizar como la forma de utilizarlas.

https://drive.google.com/open?id=0B4AoAxhlob6VMkhGRHRIUExaTzA

Anuncios

LIBRO RECOMENDADO: DICCIONARIO DE DE TÉRMINOS GIS (RAFAEL GONZÁLEZ AGUAYO)

Escrito por Rafael González Aguayo, contiene cientos de términos relacionados con los Sistemas de Información Geográfica.

GIS (Sistemas de Información Geográfica) es una aplicación que permite preparar, presentar e interpretar hechos que tienen lugar en la superficie terrestre.

En este diccionario hallarás de la A a la Z, una gran cantidad de definiciones de los términos más utilizados en estos sistemas.

https://drive.google.com/file/d/0B4AoAxhlob6VUTdzNmdub2x0YlU/view?usp=sharing

e0063786-cc78-4540-93de-1196eb5b246d.png

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)