<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>
<channel>
	<title>Jorge Iván Meza Martínez &#187; Google</title>
	<atom:link href="http://blog.jorgeivanmeza.com/tag/google/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.jorgeivanmeza.com</link>
	<description>The Fire Within Me: &#34;knowledge will set you free&#34;</description>
	<lastBuildDate>Thu, 22 Jul 2010 06:31:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=6361</generator>
		<item>
		<title>Instalar Chromium Browser en Linux Ubuntu 9.10</title>
		<link>http://blog.jorgeivanmeza.com/2009/12/instalar-chromium-browser-en-linux-ubuntu-9-10/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=instalar-chromium-browser-en-linux-ubuntu-9-10</link>
		<comments>http://blog.jorgeivanmeza.com/2009/12/instalar-chromium-browser-en-linux-ubuntu-9-10/#comments</comments>
		<pubDate>Sun, 06 Dec 2009 23:33:45 +0000</pubDate>
		<dc:creator>jimezam</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Linux/Solaris/BSD]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Browser]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Chromium]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Hipergalaxia]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<guid isPermaLink="false">http://blog.jorgeivanmeza.com/?p=2185</guid>
		<description><![CDATA[Introducción. Chromium Browser (Chrome) es el navegador web de Google que desde hace un tiempo puede ser descargado y utilizado en la plataforma Windows.  Desafortunadamente aún no hay una versión (release) oficial para la plataforma Linux, sin embargo es posible instalarlo en Ubuntu mediante un PPA de frecuente actualización. Instalación. Agregar el repositorio. $ sudo [...]]]></description>
			<content:encoded><![CDATA[<h2>Introducción.</h2>
<p><em>Chromium Browser</em> (<em>Chrome</em>) es el navegador web de Google que desde hace un tiempo puede ser <a href="http://www.google.com/chrome/" target="_blank">descargado</a> y utilizado en la plataforma Windows.  Desafortunadamente aún no hay una versión (<em>release</em>) oficial para la plataforma Linux, sin embargo es posible instalarlo en Ubuntu mediante un PPA de frecuente actualización.</p>
<h2>Instalación.</h2>
<h3>Agregar el repositorio.</h3>
<p><span style="font-family: courier new,courier;">$ sudo add-apt-repository ppa:chromium-daily/ppa</span></p>
<h3>Instalar los paquetes.</h3>
<p><span style="font-family: courier new,courier;">$ sudo aptitude update</span></p>
<p><span style="font-family: courier new,courier;">$ sudo aptitude install chromium-browser chromium-codecs-ffmpeg</span></p>
<h2>Ejecución.</h2>
<p><a href="http://blog.jorgeivanmeza.com/wp-content/uploads/2009/12/screenshot_007.png"><img class="aligncenter size-full wp-image-2186" title="screenshot_007" src="http://blog.jorgeivanmeza.com/wp-content/uploads/2009/12/screenshot_007.png" alt="screenshot_007" width="740" height="486" /></a></p>
<p>Ejecutar la aplicación desde el menú de programas a través de la siguiente ruta.</p>
<p style="padding-left: 30px;"><strong>Applications</strong> &gt; <strong>Internet</strong> &gt; <strong>Chromium Web Browser</strong>.</p>
<p>O desde la línea de comando como se muestra a continuación.</p>
<p><span style="font-family: courier new,courier;">$ /usr/bin/chromium-browser &amp;</span></p>
<h2>Enlaces.</h2>
<ul>
<li>Instalación y puesta a punto de Chromium en GNU/Linux.<br />
<a href="http://bitelia.com/2009/11/instalacion-y-puesta-a-punto-de-chromium-en-gnulinux" target="_blank">http://bitelia.com/2009/11/instalacion-y-puesta-a-punto-de-chromium-en-gnulinux</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.jorgeivanmeza.com/2009/12/instalar-chromium-browser-en-linux-ubuntu-9-10/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Probar la nueva interfaz de Google en Colombia</title>
		<link>http://blog.jorgeivanmeza.com/2009/11/probar-la-nueva-interfaz-de-google-en-colombia/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=probar-la-nueva-interfaz-de-google-en-colombia</link>
		<comments>http://blog.jorgeivanmeza.com/2009/11/probar-la-nueva-interfaz-de-google-en-colombia/#comments</comments>
		<pubDate>Fri, 27 Nov 2009 14:02:29 +0000</pubDate>
		<dc:creator>jimezam</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Hipergalaxia]]></category>
		<guid isPermaLink="false">http://blog.jorgeivanmeza.com/?p=2161</guid>
		<description><![CDATA[Introducción. No había podido probar la nueva interfaz de Google en Colombia ya que el procedimiento que circulaba por Internet aplicaba al dominio google.com y cuando intentaba acceder a él soy redirigido a google.com.co por lo cual la prueba no tenía efecto.  Por suerte ya encontré como superar esta situación y es en realidad muy [...]]]></description>
			<content:encoded><![CDATA[<h2>Introducción.</h2>
<p>No había podido probar la nueva interfaz de Google en Colombia ya que el procedimiento que circulaba por Internet aplicaba al dominio <span style="font-family: courier new,courier;">google.com</span> y cuando intentaba acceder a él soy redirigido a <span style="font-family: courier new,courier;">google.com.co</span> por lo cual la prueba no tenía efecto.  Por suerte ya encontré como superar esta situación y es en realidad muy sencillo.</p>
<h2>Procedimiento.</h2>
<p>Abra un navegador web.</p>
<p>Escriba el siguiente código en la barra de direcciones y presione <strong>Enter</strong>.</p>
<p style="padding-left: 30px;"><span style="font-family: courier new,courier;">javascript:void(document.cookie=&#8221;PREF=ID=20b6e4c2f44943bb:U=4bf292d46faad806:TM=1249677602:LM=1257919388:S=odm0Ys-53ZueXfZG;path=/; domain=.google.com&#8221;);</span></p>
<p>Visite la página <a href="http://google.com/ncr" target="_blank">http://google.com/ncr</a>.  Aparecerá la página de búsqueda con la nueva interfaz.</p>
<p><a href="http://blog.jorgeivanmeza.com/wp-content/uploads/2009/11/screenshot_003.png"><img class="aligncenter size-full wp-image-2162" title="screenshot_003" src="http://blog.jorgeivanmeza.com/wp-content/uploads/2009/11/screenshot_003.png" alt="screenshot_003" width="565" height="472" /></a></p>
<p>Realice cualquier búsqueda y podrá apreciar la nueva presentación de los resultados con una barra izquierda que facilita el acceso a los servicios de Google y algunos filtros para la información.</p>
<p><a href="http://blog.jorgeivanmeza.com/wp-content/uploads/2009/11/screenshot_0042.png"><img class="aligncenter size-full wp-image-2163" title="screenshot_004" src="http://blog.jorgeivanmeza.com/wp-content/uploads/2009/11/screenshot_0042.png" alt="screenshot_004" width="558" height="442" /></a></p>
<p>Para volver a la interfaz convencional es necesario remover la <em>cookie</em> del sitio.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jorgeivanmeza.com/2009/11/probar-la-nueva-interfaz-de-google-en-colombia/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Configurar una cuenta de GoogleApps for Domains con Pidgin</title>
		<link>http://blog.jorgeivanmeza.com/2009/11/configurar-una-cuenta-de-googleapps-for-domains-con-pidgin/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=configurar-una-cuenta-de-googleapps-for-domains-con-pidgin</link>
		<comments>http://blog.jorgeivanmeza.com/2009/11/configurar-una-cuenta-de-googleapps-for-domains-con-pidgin/#comments</comments>
		<pubDate>Mon, 09 Nov 2009 14:28:56 +0000</pubDate>
		<dc:creator>jimezam</dc:creator>
				<category><![CDATA[Linux/Solaris/BSD]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[GoogleAppsForDomains]]></category>
		<category><![CDATA[Hipergalaxia]]></category>
		<category><![CDATA[Pidgin]]></category>
		<guid isPermaLink="false">http://blog.jorgeivanmeza.com/?p=2127</guid>
		<description><![CDATA[Introducción. Las cuentas de Google Apps for Domains proveen además del correo electrónico (GMail) otros servicios de Google como la mensajería instantánea (GTalk).  El problema surge al intentar configurar estas cuentas en un cliente de mensajería múltiple como Pidgin ya que estas no funcionan con las configuraciones por defecto de GTalk o de XMPP. Procedimiento. [...]]]></description>
			<content:encoded><![CDATA[<h2>Introducción.</h2>
<p>Las cuentas de <em>Google Apps for Domains</em> proveen además del correo electrónico (GMail) otros servicios de Google como la mensajería instantánea (GTalk).  El problema surge al intentar configurar estas cuentas en un cliente de mensajería múltiple como Pidgin ya que estas no funcionan con las configuraciones por defecto de GTalk o de XMPP.</p>
<h2>Procedimiento.</h2>
<p>Abra el diálogo de administración de cuentas: <strong>Accounts</strong> &gt; <strong>Manage Accounts</strong> o presione <strong>CTRL+A</strong>.</p>
<p>Presione el botón <strong>Add ...</strong> para crear una nueva cuenta.</p>
<p>Ingrese la siguiente información requerida.</p>
<ul>
<li><strong>Protocolo</strong>: XMPP.</li>
<li><strong>Nombre de usuario</strong>.</li>
<li><strong>Dominio</strong>: su dominio de <em>Google Apps for Domains</em>.</li>
<li><strong>Alias local</strong>: el nombre que desee que se muestre para su usuario.</li>
</ul>
<p>Seleccione la pestaña <strong>Advanced</strong> y provea la siguiente información.</p>
<ul>
<li><strong>Requiere SSL/TLS</strong>: seleccionado.</li>
<li><strong>Puerto de conexión</strong>: <span style="font-family: courier new,courier;">5222</span>.</li>
<li><strong>Conectar al servidor</strong>: <span style="font-family: courier new,courier;">talk.google.com</span>.</li>
</ul>
<p>Presione el botón <strong>Guardar</strong>.</p>
<h2>Enlaces.</h2>
<ul>
<li>How do I configure Pidgin to connect to <em>Google Talk</em> for my domain ?<br />
<a href="http://www.google.com/support/a/bin/answer.py?hl=en&amp;answer=49147" target="_blank">http://www.google.com/support/a/bin/answer.py?hl=en&amp;answer=49147</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.jorgeivanmeza.com/2009/11/configurar-una-cuenta-de-googleapps-for-domains-con-pidgin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Impedir el acceso a los &#8216;bots&#8217; a un sitio web</title>
		<link>http://blog.jorgeivanmeza.com/2009/10/impedir-el-acceso-a-los-bots-a-un-sitio-web/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=impedir-el-acceso-a-los-bots-a-un-sitio-web</link>
		<comments>http://blog.jorgeivanmeza.com/2009/10/impedir-el-acceso-a-los-bots-a-un-sitio-web/#comments</comments>
		<pubDate>Wed, 14 Oct 2009 18:26:07 +0000</pubDate>
		<dc:creator>jimezam</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[.htaccess]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Hipergalaxia]]></category>
		<guid isPermaLink="false">http://blog.jorgeivanmeza.com/?p=2057</guid>
		<description><![CDATA[Introducción. Los bots de los motores de búsqueda son las aplicaciones que contínuamente están revisando los sitios web y sus enlaces para indexar sus páginas.  Esto es bueno porque es precisamente lo que permite funcionar a los buscadores web y mantener su información actualizada, sin embargo también es malo para quienes mantienen los sitios si [...]]]></description>
			<content:encoded><![CDATA[<h2>Introducción.</h2>
<p>Los <em>bots</em> de los motores de búsqueda son las aplicaciones que contínuamente están revisando los sitios web y sus enlaces para indexar sus páginas.  Esto es bueno porque es precisamente lo que permite funcionar a los buscadores web y mantener su información actualizada, sin embargo también es malo para quienes mantienen los sitios si estos acceden con demasiada frecuencia y utilizan demasiados recursos del servidor, además también es posible que se desee mantener información oculta a los ojos de estos motores de búsqueda.</p>
<p>Para hacer esto se les indica o se les niega el acceso a nuestro sitio a estas aplicaciones.</p>
<h2>Procedimiento.</h2>
<h3>Utilizando el archivo <span style="font-family: courier new,courier;">robots.txt</span>.</h3>
<ul>
<li>Este archivo se debe ubicar en la raíz del sitio web.</li>
<li>Es una indicación <em>amable</em> a los <em>bots</em> para que cumplan lo que allí se especifica.</li>
<li>Es posible que <em>bots</em> malintencionados hagan caso omiso de estas indicaciones.</li>
</ul>
<p>Impedir el acceso a <span style="text-decoration: underline;">todo</span> el sitio a <span style="text-decoration: underline;">todos</span> los <em>bots</em>.</p>
<p style="padding-left: 30px;"><span style="font-family: courier new,courier;"># Go away<br />
User-agent: *<br />
Disallow: /</span></p>
<p>Impedir el acceso a la carpeta /blog del sitio al <em>bot</em> de Google.
</p>
<p style="padding-left: 30px;"><span style="font-family: courier new,courier;"># Don&#8217;t index my blog<br />
User-Agent: Googlebot<br />
Disallow: /blog/</span></p>
<h3>Desde el archivo .htaccess.</h3>
<ul>
<li>Las modificaciones se realizan en el archivo .htaccess del sitio web.</li>
<li>Estas políticas son mas restrictivas y no pueden ser obviadas por los <em>bots</em>.</li>
<li>Debe concerse con precisión la red de la cual proviene el <em>bot</em> ya que se impedirá su acceso por parte del servidor de páginas.</li>
<li>Es posible que existan otros clientes válidos que intenten acceder desde las ubicaciones especificadas, por ello la dirección especificada deberá ser lo mas precisa posible.</li>
</ul>
<p>Impedir el acceso al <em>bot</em> de Google.
</p>
<p style="padding-left: 30px;"><span style="font-family: courier new,courier;">Limit GET HEAD POST<br />
order allow,deny<br />
deny from 66.249<br />
allow from all</span></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jorgeivanmeza.com/2009/10/impedir-el-acceso-a-los-bots-a-un-sitio-web/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como crear un mapa con GoogleMaps version 2, en pasos simples</title>
		<link>http://blog.jorgeivanmeza.com/2009/09/como-crear-un-mapa-con-googlemaps-version-2-en-pasos-simples/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=como-crear-un-mapa-con-googlemaps-version-2-en-pasos-simples</link>
		<comments>http://blog.jorgeivanmeza.com/2009/09/como-crear-un-mapa-con-googlemaps-version-2-en-pasos-simples/#comments</comments>
		<pubDate>Mon, 28 Sep 2009 20:02:34 +0000</pubDate>
		<dc:creator>jimezam</dc:creator>
				<category><![CDATA[Desarrollo de software]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[GoogleMaps]]></category>
		<category><![CDATA[Hiper]]></category>
		<category><![CDATA[Hipergalaxia]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[PHP]]></category>
		<guid isPermaLink="false">http://blog.jorgeivanmeza.com/?p=2022</guid>
		<description><![CDATA[Introducción. Utilizar el API de Google Maps para crear mapas interactivos con Javascript en nuestros sitios web es muy fácil de implementar.  Este servicio ofrece dos alternativas: los Mapplets que se ejecutan de manera asíncrona, directamente en el sitio de maps.google.com y los desarrolladores sólo debemos especificar y albergar un documento XML donde se encuentra [...]]]></description>
			<content:encoded><![CDATA[<h2>Introducción.</h2>
<p>Utilizar el API de <a href="http://maps.google.com/" target="_blank">Google Maps</a> para crear mapas interactivos con Javascript en nuestros sitios web es muy fácil de implementar.  Este servicio ofrece dos alternativas: los Mapplets que se ejecutan de manera asíncrona, directamente en el sitio de <a href="http://maps.google.com/" target="_blank">maps.google.com</a> y los desarrolladores sólo debemos especificar y albergar un documento XML donde se encuentra la especificación y los datos del mapa.  Por el otro lado están los mapas implementados directamente con el API de manera síncrona, se incrustan en nuestras propias páginas web y su comportamiento se define a través del Javascript que implementemos.</p>
<p>En otras ocasiones me he referido a los <a href="http://blog.jorgeivanmeza.com/tag/GoogleMapplets/" target="_blank">Mapplets</a> por esto la implementación de hoy la vamos a realizar utilizando el API síncrono.</p>
<h2>Objetivo.</h2>
<p>El objetivo del presente artículo es el de visitar a Cuba donde ubicaremos marcadores sobre 5 ciudades de este país y asociaremos globitos con mensajes personalizados que aparecerán cuando el usuario haga clic sobre las diferentes ciudades.</p>
<div id="attachment_2024" class="wp-caption aligncenter" style="width: 650px"><a href="http://blog.jorgeivanmeza.com/wp-content/uploads/2009/09/Objetivo_Cuba5.png"><img class="size-full wp-image-2024" title="Objetivo_Cuba5" src="http://blog.jorgeivanmeza.com/wp-content/uploads/2009/09/Objetivo_Cuba5.png" alt="Resultado final" width="640" height="478" /></a><p class="wp-caption-text">Resultado final</p></div>
<h2>Procedimiento.</h2>
<h3>Condiciones inciales.</h3>
<p>Para el desarrollo de esta mini aplicación vamos a utilizar PHP y <a href="http://en.wikipedia.org/wiki/Vanilla_software" target="_blank">vanilla</a> Javascript, es decir, no nos apoyaremos en ningún <em>framework</em> de Javascript adicional a lo comúnmente soportado por los navegadores web actuales.</p>
<p>En mi caso, mi servidor web de destino será <a href="http://demo.jorgeivanmeza.com/" target="_blank">http://demo.jorgeivanmeza.com/</a>.  Es muy importante determinar esto para la próxima etapa, la creación de la llave del API.</p>
<h3>Creación de la llave del API.</h3>
<p>Acceda al siguiente enlace y cree su propia llave para el API de Google.  Es necesario especificar el dominio bajo el cual se ejecutará la aplicación web.  En el caso de desarrollar la aplicación de manera local, puede obtener una llave para <a href="http://localhost/" target="_blank">http://localhost/</a> y después la deberá modificar antes de desplegarla en el servidor de producción.  Si no especifica el dominio correcto, la aplicación no podrá generar el mapa.</p>
<p style="padding-left: 30px;"><a href="http://code.google.com/apis/maps/signup.html" target="_blank">http://code.google.com/apis/maps/signup.html</a></p>
<p>Es necesario contar con una cuenta de Google, así que de no contar con una es necesario <a href="http://mail.google.com/mail/signup" target="_blank">abrirla</a> antes de intentar crear una llave del API.</p>
<h3>Creación de una estructura básica para la página web.</h3>
<p>Cree el archivo <span style="font-family: courier new,courier;">simpleGoogleMaps.php</span> (o como desee llamarlo) en una ubicación pública de su servidor web (bajo el <span style="font-family: courier new,courier;">DOCUMENT_ROOT</span>).  Agregue siguiente contenido al archivo y guárdelo.</p>
<pre class="html">&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
                      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
&lt;html xmlns='http://www.w3.org/1999/xhtml'&gt;
&lt;head&gt;
    &lt;meta http-equiv="Content-type" content="text/html; charset=utf-8" /&gt;
    &lt;meta name="Author" content="Jorge Iván Meza Martínez - http://jorgeivanmeza.com/ - jimezam@gmail.com" /&gt;
    &lt;meta name="Description" content="Demostración Simple de Google Maps" /&gt;
    &lt;title&gt;Demostración Simple de Google Maps&lt;/title&gt;
    &lt;!-- Llave del API --&gt;
    &lt;!-- Estilos CSS --&gt;
    &lt;!-- Implementación Javascript --&gt;
&lt;/head&gt;
&lt;body&gt;
    &lt;!-- Ubicación del mapa --&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<h3>Especificar la Llave del API.</h3>
<p>En el contenido del archivo PHP actualice el siguiente código por la marca de <span style="font-family: courier new,courier;">Llave del API</span>.</p>
<pre class="php">&lt;script src='http://maps.google.com/maps?file=api&amp;v=2&amp;sensor=false&amp;hl=es&amp;key=XXXXX' type='text/javascript'&gt;&lt;/script&gt;</pre>
<p>Reemplace la cadena <span style="font-family: courier new,courier;">XXXXX</span> por su Llave del API específica que obtuvo durante el paso anterior correspondiente.</p>
<h3>Especificar la ubicación del mapa.</h3>
<p>El mapa se generará en un <span style="font-family: courier new,courier;">div</span> que determinemos dentro del <span style="font-family: courier new,courier;">body</span> para tal fin, este puede estar integrado normalmente con el resto del diseño de la página.  En nuestro caso particular debido a su simplicidad, el contenido de la página será solamente dicho <span style="font-family: courier new,courier;">div</span>.</p>
<p>Reemplace la etiqueta <span style="font-family: courier new,courier;">Ubicación del mapa</span> con el siguiente código.</p>
<pre class="php">&lt;div id='MiMapa'&gt;Aqui viene el mapa!&lt;/div&gt;</pre>
<p>Es necesario identificar al <span style="font-family: courier new,courier;">div</span> con un <span style="font-family: courier new,courier;">id</span> único que utilizaremos posteriormente.</p>
<h3>Actualizar el estilo del mapa.</h3>
<p>El siguiente paso es el especificar un estilo para el <span style="font-family: courier new,courier;">div</span> que contendrá al mapa.  Este estilo finalmente dependerá del diseño de la página.  Para este caso utilizamos CSS para definirle un alto y un ancho al mapa.</p>
<p>Reemplace la etiqueta <span style="font-family: courier new,courier;">Estilos CSS</span> con el siguiente código.</p>
<pre class="css">&lt;style content="text/css"&gt;
#MiMapa
{
    width: 640px;
    height: 480px;
}
&lt;/style&gt;</pre>
<h3>Especificar la implementación Javascript.</h3>
<p>El código faltante hace referencia a código Javascript que va a determinar el contenido y comportamiento del mapa.  Reemplace la etiqueta <span style="font-family: courier new,courier;">Implementación Javascript</span> con el siguiente código base.</p>
<pre class="javascript">&lt;script type='text/javascript'&gt;
// El código de las siguiente secciones se incluye aquí ...
&lt;/script&gt;</pre>
<h3>Preparar el mapa.</h3>
<p>Para crear el mapa y establecer sus parámetros iniciales se realizan las siguientes acciones.</p>
<ol>
<li>Verificar que exista la compatibilidad adecuada con el navegador.</li>
<li>Crear la instancia del mapa asociada al <span style="font-family: courier new,courier;">div</span> especifico.</li>
<li>Establecer la ubicación inicial del mapa.</li>
<li>Establecer el tipo inicial del mapa.</li>
</ol>
<p>Para hacer esto creamos al objeto <span style="font-family: courier new,courier;">mapa1</span> y a la función <span style="font-family: comic sans ms,sans-serif;">prepararMapa</span> con el siguiente código.</p>
<pre class="javascript">/*
 * Objeto que hace referencia al mapa desplegado.
 */
var mapa1 = null;
/*
 * Establece los parámetros iniciales del mapa instanciando
 * al objeto 'mapa'.
 *
 * @param String  - Nombre del DIV que albergará al mapa.
 * @param Double  - Latitud donde se centrará el mapa.
 * @param Double  - Longitud donde se centrará el mapa.
 * @param Integer - Altura donde se centrará el mapa.
 *
 * @return el mapa en éxito, null en fracaso.
 */
function prepararMapa(div, centerLat, centerLang, centerAlt)
{
    /* Verifica que el navegador sea compatible con
       Google Maps */
    if (GBrowserIsCompatible())   // [1]
    {
        /* Crea la instancia del objeto 'mapa' asociándole
           el div correspondiente */
        mapa = new GMap2(document.getElementById(div));    // [2]
        /* Centra el mapa en la ubicacion (latitud, longitud
           y altura) especificadas */
        mapa.setCenter(new GLatLng(centerLat, centerLang), centerAlt);     // [3]
        /* Establece el tipo de mapa.  Disponibles:
               - G_NORMAL_MAP
               - G_SATELLITE_MAP
               - G_HYBRID_MAP
           Enlace: http://code.google.com/apis/maps/documentation/controls.html */
        mapa.setMapType(G_HYBRID_MAP);      // [4]
        /* Establece el comportamiento por defecto de los
           elementos del UI del mapa.
           Enlace: http://code.google.com/apis/maps/documentation/reference.html#GMap2.setUIToDefault */
        mapa.setUIToDefault();
        /* Éxito */
        return mapa;
    }
    else     /* Fracaso */
        return null;
}</pre>
<h3>Agregar un marcador.</h3>
<p>Posteriormente implementamos la función <span style="font-family: courier new,courier;">agregarMarcador</span> que se ocupará de agregar un marcador creado con cierta información específica al mapa.  Su código es el siguiente.</p>
<pre class="javascript">/*
 * Agrega un marcado con la información especificada
 * al mapa.
 *
 * @param GMap2   - Referencia externa al mapa.
 * @param Double  - Latitud donde se centrará el mapa.
 * @param Double  - Longitud donde se centrará el mapa.
 * @param String  - Mensaje que tendrá la burbuja asociada.
 *
 * @return void.
 */
 function agregarMarcador(mapa, latitud, longitud, mensaje)
 {
    /* Crea el punto asociado a la longitud y latitud
       especificadas. */
    var punto = new GLatLng(latitud, longitud);
    /* Crea un marcador asociado a la ubicación anterior */
    var marcador = new GMarker(punto);
    /* Establece que en el evento 'onclick' del marcador
       muestre la burbuja con el mensaje especificado */
     GEvent.addListener(marcador, "click", function()
     {
         mapa.openInfoWindowHtml(punto, mensaje);
     });
     /* Agrega el marcador recién creado al mapa */
     mapa.addOverlay(marcador);
 }</pre>
<h3>Información de las ciudades de Cuba.</h3>
<p>Los marcadores del mapa corresponderán como se dijo anteriormente, con cinco ciudades de Cuba que se predefinieron y de las cuales se conoce su ubicación: latitud y longitud.  Su información se almacena en el arreglo puntos en el cual cada una de sus celdas corresponde con una ciudad.</p>
<pre class="javascript">/* Información para los marcadores del mapa: Ciudades de
 * Cuba. */
 var puntos = new Array(
    {
        'nombre'  : 'La habana',
        'latitud' : 23.132,
        'longitud': -82.364
    },
    {
        'nombre'  : 'Santa Clara',
        'latitud' : 22.4,
        'longitud': -79.967
    },
    {
        'nombre'  : 'Bayamo',
        'latitud' : 20.379,
        'longitud': -76.643
    },
    {
        'nombre'  : 'Las Tunas',
        'latitud' : 20.962,
        'longitud': -76.951
    },
    {
        'nombre'  : 'Manzanillo',
        'latitud' : 20.343,
        'longitud': -77.117
    }
 );</pre>
<p>Para automatizar el proceso de agregación de los marcadores basados en la información de los <span style="font-family: courier new,courier;">puntos</span> creamos a la función <span style="font-family: courier new,courier;">agregarMarcadores</span> cuya misión es la de invocar repetidas veces a la función <span style="font-family: courier new,courier;">agregarMarcador</span>.  En ella se define además el contenido del globito de cada uno de las ciudades (<span style="font-family: courier new,courier;">mensaje</span>).</p>
<pre class="javascript">/*
 * Automatiza el agregar los marcadores basados en la
 * información del arreglo de puntos.
 *
 * @param GMap2   - Referencia externa al mapa.
 * @param Array   - Información de los marcadores a agregar.
 *
 * @return void.
 */
 function agregarMarcadores(mapa, informacion)
 {
    for(var i=0; i&lt;informacion.length; i++)
    {
        var nombre   = puntos[i]['nombre'];
        var latitud  = puntos[i]['latitud'];
        var longitud = puntos[i]['longitud'];
        var mensaje  = "Este es &lt;b&gt;" + nombre + "&lt;/b&gt;,&lt;br /&gt; su latitud es &lt;b&gt;" +
                       latitud + "&lt;/b&gt;&lt;br /&gt; y su longitud es &lt;b&gt;" + longitud + "&lt;/b&gt;.";
        agregarMarcador(mapa, latitud, longitud, mensaje);
    }
 }</pre>
<h3>Finalmente, el programa principal.</h3>
<p>En este fragmento del código definimos la ejecución del programa principal del mapa.  Se ejecuta tan pronto como la página se encuentra cargada (<span style="font-family: courier new,courier;">onLoad</span>) y desarrolla las siguiente actividades.</p>
<ol>
<li>Prepara el mapa.</li>
<li>Verifica que el mapa haya sido creado exitosamente.</li>
<li>Agrega los marcadores sobre las ciudades especificadas.</li>
</ol>
<p>Su código es el siguiente.</p>
<pre class="javascript">/* Inicio del programa Javascript (setup) */
window.onload = function()
{
    /* Solicita la creación del mapa especificando el DIV
       que lo albergará y la ubicación (latitud, longitud,
       altura). */
    mapa1 = prepararMapa('MiMapa', 21.4, -79.8, 7);
    if(mapa1 == null)
    {
        alert("Su navegador no incluye soporte para Google Maps!");
        return false;
    }
    /* Solicita la agregación de los marcadores de ejemplo
       especificando la referencia al mapa y el arreglo con
       la información de los puntos */
    agregarMarcadores(mapa1, puntos);
    return true;
}</pre>
<h3>Listo!</h3>
<p>Probar la página web utilizando un navegador como <a href="http://getfirefox.com/" target="_blank">Firefox</a>.</p>
<h2>Enlaces.</h2>
<ul>
<li>Programa de demostración - versión 0.1.<br />
<a href="http://demo.jorgeivanmeza.com/GMaps/SimpleDemoCuba/" target="_blank">http://demo.jorgeivanmeza.com/GMaps/SimpleDemoCuba/</a></li>
<li>Google Maps API Versión 2.<br />
<a href="http://code.google.com/apis/maps/" target="_blank">http://code.google.com/apis/maps/</a></li>
<li>Abrir una cuenta de usuario con Google.<br />
<a href="http://mail.google.com/mail/signup" target="_blank">http://mail.google.com/mail/signup</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.jorgeivanmeza.com/2009/09/como-crear-un-mapa-con-googlemaps-version-2-en-pasos-simples/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Utilizar GMail como SmartHost desde Linux Debian 5</title>
		<link>http://blog.jorgeivanmeza.com/2009/07/utilizar-gmail-como-smarthost-desde-linux-debian-5/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=utilizar-gmail-como-smarthost-desde-linux-debian-5</link>
		<comments>http://blog.jorgeivanmeza.com/2009/07/utilizar-gmail-como-smarthost-desde-linux-debian-5/#comments</comments>
		<pubDate>Tue, 07 Jul 2009 15:43:30 +0000</pubDate>
		<dc:creator>jimezam</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Linux/Solaris/BSD]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Exim]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Hipergalaxia]]></category>
		<category><![CDATA[Linux]]></category>
		<guid isPermaLink="false">http://blog.jorgeivanmeza.com/?p=1844</guid>
		<description><![CDATA[Introducción. Un servidor que utilizo frecuentemente para el desarrollo de aplicaciones web que se encuentra basado en Debian 5 no estaba enviando los correos de las aplicaciones ni de un par de scripts que había escrito hace un tiempo para la creación de copias de seguridad. Al revisar los logs encontré este mensaje: Mailing to [...]]]></description>
			<content:encoded><![CDATA[<h2>Introducción.</h2>
<p>Un servidor que utilizo frecuentemente para el desarrollo de aplicaciones web que se encuentra basado en Debian 5 no estaba enviando los correos de las aplicaciones ni de un par de <em>scripts</em> que había escrito hace un tiempo para la creación de copias de seguridad.</p>
<p>Al revisar los <em>logs</em> encontré este mensaje: <span style="font-family: courier new,courier;">Mailing to remote domains not supported</span>.</p>
<p>La solución es realizar la configuración del Exim 4, sin embargo tenía un detalle adicional que lo hacía interesante.  Para la empresa propietaria del servidor estoy utilizando <em>Google Apps</em> para gestionar su correo electrónico, así que el <a href="http://en.wikipedia.org/wiki/Smarthost" target="_blank"><em>SmartHost</em></a> tenía que ser con GMail, SSL (el puerto indicado) y autenticación.</p>
<h2>Procedimiento.</h2>
<p>Para este procedimiento se supone que el nombre del servidor es <strong><span style="font-family: courier new,courier;">desarrollo.dominio.com</span></strong>.</p>
<p>1. Crear una cuenta de correo en GMail/<em>Google Apps</em> para el <a href="http://en.wikipedia.org/wiki/Open_mail_relay" target="_blank"><em>relay</em></a> del servidor de correo.</p>
<p style="padding-left: 30px;">Nombre de usuario: <span style="font-family: courier new,courier;"><strong>desarrollo_relay</strong></span><br />
Contraseña: <strong><span style="font-family: courier new,courier;">password_relay</span></strong></p>
<p>2. Realizar la configuración de Exim.</p>
<p><span style="font-family: courier new,courier;">$ su -<br />
</span></p>
<p><span style="font-family: courier new,courier;">$ dpkg-reconfigure exim4-config</span></p>
<ul>
<li>General type of mail configuration: <strong>mail sent by smarthost; received via SMTP or fetchmail</strong></li>
<li>System mail name: <strong>localhost</strong></li>
<li>Ip Address to listen on: <strong>127.0.0.1</strong></li>
<li>Other destinations~: <strong>desarrollo.dominio.com</strong></li>
<li>Machines to Relay for: <strong>&lt;vacío&gt;</strong></li>
<li>IP address or hostname of the outgoing smarthost: <strong>smtp.gmail.com::587</strong></li>
<li>Hide local mail name in outgoing mail: <strong>No</strong></li>
<li>Keep number of DNS queries minimal: <strong>No</strong></li>
<li>Delivery method for local mail: <strong>mbox format in /var/mail/</strong></li>
<li>Split configuration into small files: <strong>Yes</strong></li>
</ul>
<p>3. Configurar la información del cliente de acceso.</p>
<p><span style="font-family: courier new,courier;">$ vi /etc/exim4/passwd.client</span>
</p>
<p style="padding-left: 30px;"><span style="font-family: courier new,courier;">gmail-smtp.l.google.com:<strong>desarrollo_relay</strong>@<strong>dominio.com</strong>:</span><strong><span style="font-family: courier new,courier;">password_relay</span></strong><br />
<span style="font-family: courier new,courier;">*.google.com:</span><strong><span style="font-family: courier new,courier;">desarrollo_relay</span></strong><span style="font-family: courier new,courier;">@</span><span style="font-family: courier new,courier;"><strong>dominio.com</strong></span><span style="font-family: courier new,courier;">:</span><strong><span style="font-family: courier new,courier;">password_relay</span></strong><br />
<span style="font-family: courier new,courier;">smtp.gmail.com:</span><strong><span style="font-family: courier new,courier;">desarrollo_relay</span></strong><span style="font-family: courier new,courier;">@</span><span style="font-family: courier new,courier;"><strong>dominio.com</strong></span><span style="font-family: courier new,courier;">:</span><strong><span style="font-family: courier new,courier;">password_relay</span></strong></p>
<p><span style="font-family: courier new,courier;">$ chmod 640 /etc/exim4/passwd.client</span></p>
<p><span style="font-family: courier new,courier;">$ chown root:Debian-exim /etc/exim4/passwd.client</span></p>
<p>4. Actualizar la lista de correspondencias de direcciones de correo.</p>
<p><span style="font-family: courier new,courier;">$ vi /etc/exim4/email-addresses</span>
</p>
<p style="padding-left: 30px;"><span style="font-family: courier new,courier;"><strong>root</strong>@localhost:    <strong>desarrollo_relay@dominio.com</strong></span></p>
<p><span style="font-family: courier new,courier;">$ chmod 640 /etc/exim4/email-addresses</span></p>
<p>5. Verifique la configuración actual del Exim.</p>
<p><span style="font-family: courier new,courier;">$ vi /etc/exim4/update-exim4.conf</span></p>
<p style="padding-left: 30px;"><span style="font-family: courier new,courier;">dc_eximconfig_configtype=&#8217;<strong>smarthost</strong>&#8216;<br />
dc_other_hostnames=&#8217;<strong>desarrollo.dominio.com</strong>&#8216;<br />
dc_local_interfaces=&#8217;<strong>127.0.0.1</strong>&#8216;<br />
dc_readhost=&#8217;<strong>desarrollo.dominio.com</strong>&#8216;<br />
dc_relay_domains='&#8217;<br />
dc_minimaldns=&#8217;<strong>false</strong>&#8216;<br />
dc_relay_nets='&#8217;<br />
dc_smarthost=&#8217;<strong>smtp.gmail.com::587</strong>&#8216;<br />
CFILEMODE=&#8217;<strong>644</strong>&#8216;<br />
dc_use_split_config=&#8217;<strong>true</strong>&#8216;<br />
dc_hide_mailname=&#8217;<strong>false</strong>&#8216;<br />
dc_mailname_in_oh=&#8217;<strong>true</strong>&#8216;<br />
dc_localdelivery=&#8217;<strong>mail_spool</strong>&#8216;</span></p>
<p>6. Reiniciar el servicio del MTA.</p>
<p><span style="font-family: courier new,courier;">$ /etc/init.d/exim4 restart</span></p>
<h2>Enlaces.</h2>
<ul>
<li>Exim Internet Mailer.<br />
<a href="http://www.exim.org/" target="_blank">http://www.exim.org/</a></li>
<li>Google Apps.<br />
<a href="http://www.google.com/a/cpanel/domain/new?hl=es" target="_blank">http://www.google.com/a/cpanel/domain/new?hl=es</a></li>
<li>Configure Exim4 on Debian Etch/Lenny/Sid to use Gmail as a SmartHost.<br />
<a href="http://tarsysco.com/blogs/2008/06/18/configure-exim4-on-debian-etchlennysid-to-use-gmail-as-a-smarthost/" target="_blank">http://tarsysco.com/blogs/2008/06/18/configure-exim4-on-debian-etchlennysid-to-use-gmail-as-a-smarthost/</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.jorgeivanmeza.com/2009/07/utilizar-gmail-como-smarthost-desde-linux-debian-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Búsquedas en Google Search desde PHP</title>
		<link>http://blog.jorgeivanmeza.com/2009/03/busquedas-en-google-search-desde-php/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=busquedas-en-google-search-desde-php</link>
		<comments>http://blog.jorgeivanmeza.com/2009/03/busquedas-en-google-search-desde-php/#comments</comments>
		<pubDate>Mon, 16 Mar 2009 03:32:37 +0000</pubDate>
		<dc:creator>jimezam</dc:creator>
				<category><![CDATA[Desarrollo de software]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[GoogleSearch]]></category>
		<category><![CDATA[Hipergalaxia]]></category>
		<category><![CDATA[PHP]]></category>
		<guid isPermaLink="false">http://www.jorgeivanmeza.com/blog/?p=1540</guid>
		<description><![CDATA[Introducción. Anoche se me ocurrieron algunos experimentos para hacer pero con varios de ellos terminé concluyendo que necesitaba hacer algunas búsquedas a través de Google Search para verificar si mis hipótesis se podían implementar o no.  Pensé que iba a ser muy fácil encontrar ejemplos de esto en PHP, sin embargo sólo pude encontrar un [...]]]></description>
			<content:encoded><![CDATA[<h2>Introducción.</h2>
<p>Anoche se me ocurrieron algunos experimentos para hacer pero con varios de ellos terminé concluyendo que necesitaba hacer algunas búsquedas a través de <a href="http://code.google.com/apis/ajaxsearch/" target="_blank">Google Search</a> para verificar si mis hipótesis se podían implementar o no.  Pensé que iba a ser muy fácil encontrar ejemplos de esto en PHP, sin embargo sólo pude encontrar <a href="http://code.google.com/apis/ajaxsearch/documentation/" target="_blank">un documento</a> realmente interesante al respecto.  Resulta que casi toda la documentación hace referencia a Javascript en AJAX, mientras que los lenguajes no-Javascript como PHP o Flash deben hacerlo a través de REST.  Al final, mis ideas no resultaron; al parecer Google no genera la información que yo necesitaba en formato Google Search, tampoco en XML válido.  Sin embargo aprendí como utilizar Google Search desde PHP y terminé escribiendo una clase muy sencilla para encapsular su uso y una demostración de la misma.</p>
<h2>Demostración.</h2>
<div id="attachment_1541" class="wp-caption aligncenter" style="width: 857px"><a href="http://www.jorgeivanmeza.com/blog/wp-content/uploads/2009/03/googlesearchshot_0-1.png"><img class="size-full wp-image-1541" title="googlesearchshot_0-1" src="http://www.jorgeivanmeza.com/blog/wp-content/uploads/2009/03/googlesearchshot_0-1.png" alt="Demostración de GoogleSearch 0.1" width="847" height="363" /></a><p class="wp-caption-text">Demostración de GoogleSearch 0.1</p></div>
<h2><span style="font-family: courier new,courier;">GoogleSearch.class.php</span>.</h2>
<p>De manera muy general estos son los pasos que se deben realizar para ejecutar una búsqueda en GoogleSearch.</p>
<p>Crear una instancia de la clase GoogleSearch.</p>
<pre name='code' class="php">    $gs = new GoogleSearch();</pre>
<p>Establecer la configuración de la búsqueda.</p>
<pre name='code'  class="php">    $gs -&gt; setKey('SU_PROPIA_LLAVE');
    $gs -&gt; setSize('large');
    $gs -&gt; setLang('es');
    $gs -&gt; setReferrer('http://localhost');
    $registro = (isset($_GET['registro'])) ? filter_input(INPUT_GET, 'registro', FILTER_SANITIZE_SPECIAL_CHARS) : 0;
    $palabrasClave = (isset($_GET['palabrasClave'])) ? filter_input(INPUT_GET, 'palabrasClave', FILTER_SANITIZE_SPECIAL_CHARS) : '';</pre>
<p>Solicitar la búsqueda.</p>
<pre name='code'  class="php">    $gs -&gt; fetch($palabrasClave, $registro);</pre>
<p>Verificar si hubo éxito en la búsqueda.</p>
<pre name='code'  class="php">    if($gs != null &amp;&amp; $gs -&gt; getResponseField('responseStatus') == 200) { ... }</pre>
<p>Recorrer los registros obtenidos y mostrar su información.</p>
<pre name='code'  class="php">                $length = $gs -&gt; getResultsCount();
                for($i=0; $i&lt;$length; $i++):
                    // Obtiene el iésimo resultado.
                    $result = $gs -&gt; getResult($i);
                    // Muestra su información.
                ?&gt;
                    &lt;tr&gt;
                        &lt;td&gt;
                            &lt;a href='&lt;?= GoogleSearch::getResultField($result, 'url'); ?&gt;'&gt;
                                &lt;?= GoogleSearch::getResultField($result, 'title'); ?&gt;
                            &lt;/a&gt;
                            &amp;nbsp;
                            &lt;a href='&lt;?= GoogleSearch::getResultField($result, 'url'); ?&gt;' target='_blank'&gt;
                                [&lt;span style='font-size: 10px;'&gt;Nueva ventana&lt;/span&gt;]
                            &lt;/a&gt;
                        &lt;/td&gt;
                    &lt;/tr&gt;
                    &lt;tr&gt;
                        &lt;td class='campo_contenido'&gt;
                            &lt;?= GoogleSearch::getResultField($result, 'content'); ?&gt;
                        &lt;/td&gt;
                    &lt;/tr&gt;
                    &lt;tr&gt;
                        &lt;td&gt;
                            &lt;span class='verde'&gt;&lt;?= GoogleSearch::getResultField($result, 'visibleUrl'); ?&gt;&lt;/span&gt; -
                            &lt;a href='&lt;?= GoogleSearch::getResultField($result, 'cacheUrl'); ?&gt;'&gt;En caché&lt;/a&gt;
                        &lt;/td&gt;
                    &lt;/tr&gt;
                    &lt;tr&gt;
                        &lt;td&gt;&amp;nbsp;&lt;/td&gt;
                    &lt;/tr&gt;
                &lt;?php endfor; ?&gt;</pre>
<h2>Enlaces.</h2>
<ul>
<li>Descarga de la clase <span style="font-family: courier new,courier;">GoogleSearch</span> y su demostración.<br />
<a href="http://demo.jorgeivanmeza.com/PHP/GoogleSearch/" target="_blank">http://demo.jorgeivanmeza.com/PHP/GoogleSearch/</a></li>
<li>Sign-up for an AJAX Search API Key.<br />
<a href="http://code.google.com/apis/ajaxsearch/signup.html" target="_blank">http://code.google.com/apis/ajaxsearch/signup.html</a></li>
<li>Developer&#8217;s Guide.<br />
<a href="http://code.google.com/apis/ajaxsearch/documentation/" target="_blank">http://code.google.com/apis/ajaxsearch/documentation/</a></li>
<li>Class Reference.<br />
<a href="http://code.google.com/apis/ajaxsearch/documentation/reference.html#_intro_fonje" target="_blank">http://code.google.com/apis/ajaxsearch/documentation/reference.html#_intro_fonje</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.jorgeivanmeza.com/2009/03/busquedas-en-google-search-desde-php/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Traducciones desde GTalk bots</title>
		<link>http://blog.jorgeivanmeza.com/2008/12/traducciones-desde-gtalk-bots/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=traducciones-desde-gtalk-bots</link>
		<comments>http://blog.jorgeivanmeza.com/2008/12/traducciones-desde-gtalk-bots/#comments</comments>
		<pubDate>Wed, 17 Dec 2008 01:58:28 +0000</pubDate>
		<dc:creator>jimezam</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[GTalk]]></category>
		<guid isPermaLink="false">http://www.jorgeivanmeza.com/blog/?p=1078</guid>
		<description><![CDATA[Este año Google habilitó el servicio de traducción asistida a través de bots del servicio de GTalk.  Para utilizarlos se debe agregar como contacto la dirección del bot y posteriormente aceptarlo como contacto. Las direcciones de los bots tienen el siguiente formato. [lenguaje orígen] 2 [lenguaje destino]@bot.talk.google.com Esto quiere decir que el bot que traduce [...]]]></description>
			<content:encoded><![CDATA[<p>Este año Google habilitó el servicio de traducción asistida a través de <em>bots</em> del servicio de GTalk.  Para utilizarlos se debe agregar como contacto la dirección del <em>bot</em> y posteriormente aceptarlo como contacto.</p>
<p>Las direcciones de los <em>bots</em> tienen el siguiente formato.</p>
<p style="padding-left: 30px;"><strong><span style="text-decoration: underline;">[lenguaje orígen] 2 [lenguaje destino]</span>@bot.talk.google.com</strong></p>
<p>Esto quiere decir que el <em>bot</em> que traduce de español a inglés es <strong>es2en@bot.talk.google.com</strong> y el que realiza el proceso contrario es <strong>en2es@bot.talk.google.com</strong>.</p>
<p>Las combinaciones de <a href="http://www.google.com/support/talkgadget/bin/answer.py?answer=89921" target="_blank">idiomas disponibles</a> son las siguientes.</p>
<ol>
<li>Arabic - English:      <span style="color: #ff0000;">ar2en      en2ar</span></li>
<li>Bulgarian - English:     <span style="color: #ff0000;">bg2en     en2bg</span></li>
<li>Czech - English:     <span style="color: #ff0000;">cs2en     en2cs<br />
</span></li>
<li>Danish - English:     <span style="color: #ff0000;">da2en     en2da</span></li>
<li>German - English:     <span style="color: #ff0000;">de2en     en2de</span></li>
<li>German - French:     <span style="color: #ff0000;">de2fr     fr2de</span></li>
<li>Greek - English:     <span style="color: #ff0000;">el2en     en2el</span></li>
<li>Spanish - English:     <span style="color: #ff0000;">es2en     en2es</span></li>
<li>Finnish - English:     <span style="color: #ff0000;">fi2en     en2fi</span></li>
<li>French - English:     <span style="color: #ff0000;">fr2en     en2fr</span></li>
<li>Hindi - English:     <span style="color: #ff0000;">hi2en     en2hi</span></li>
<li>Croatian - English:     <span style="color: #ff0000;">hr2en     en2hr</span></li>
<li>Italian - English:     <span style="color: #ff0000;">it2en     en2it</span></li>
<li>Japanese - English:     <span style="color: #ff0000;">ja2en     en2ja</span></li>
<li>Korean - English:     <span style="color: #ff0000;">ko2en     en2ko<br />
</span></li>
<li>Dutch - English:     <span style="color: #ff0000;">nl2en     en2nl</span></li>
<li>Norwegian - English:     <span style="color: #ff0000;">no2en     en2no</span></li>
<li>Polish - English:     <span style="color: #ff0000;">pl2en     en2pl</span></li>
<li>Portuguese - English:     <span style="color: #ff0000;">pt2en     en2pt</span></li>
<li>Romanian - English:     <span style="color: #ff0000;">ro2en     en2ro<br />
</span></li>
<li>Russian - English:     <span style="color: #ff0000;">ru2en     en2ru</span></li>
<li>Swedish - English:     <span style="color: #ff0000;">sv2en     en2sv</span></li>
<li>Chinese - English:     <span style="color: #ff0000;">zh2en     en2zh</span></li>
<li>Traditional Chinese - English:     <span style="color: #ff0000;">zh-hant2en     en2zh-hant</span></li>
<li>Traditional Chinese - Chinese:     <span style="color: #ff0000;">zh-hant2zh     zh2zh-hant</span></li>
</ol>
<p>Este servicio se encuentra basado en el <a href="http://translate.google.com/translate_t#" target="_blank">servicio de traducción de Google</a>.</p>
<p>Enlaces:</p>
<ul>
<li>More translation bots!<br />
<a href="http://googletalk.blogspot.com/2008/06/more-translation-bots.html" target="_blank">http://googletalk.blogspot.com/2008/06/more-translation-bots.html</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.jorgeivanmeza.com/2008/12/traducciones-desde-gtalk-bots/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introducción a StaticMaps de Google</title>
		<link>http://blog.jorgeivanmeza.com/2008/10/introduccion-a-staticmaps-de-google/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=introduccion-a-staticmaps-de-google</link>
		<comments>http://blog.jorgeivanmeza.com/2008/10/introduccion-a-staticmaps-de-google/#comments</comments>
		<pubDate>Wed, 29 Oct 2008 03:47:38 +0000</pubDate>
		<dc:creator>jimezam</dc:creator>
				<category><![CDATA[Desarrollo de software]]></category>
		<category><![CDATA[Móvil]]></category>
		<category><![CDATA[Software geográfico]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[GIS]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[GoogleMaps]]></category>
		<guid isPermaLink="false">http://www.jorgeivanmeza.com/blog/?p=854</guid>
		<description><![CDATA[Introducción StaticMaps es una herramienta de Google que nos permite integrar en nuestras aplicaciones a imagenes estáticas de su cartografía de una manera muy simple.  Como se puede inferir, para utilizarlos es necesario que la aplicación tenga acceso a Internet y su acceso se realiza a través de un requerimiento HTTP convencional con ciertos parámetros [...]]]></description>
			<content:encoded><![CDATA[<h5>Introducción</h5>
<p><strong>StaticMaps</strong> es una herramienta de <strong>Google</strong> que nos permite integrar en nuestras aplicaciones a imagenes estáticas de su cartografía de una manera muy simple.  Como se puede inferir, para utilizarlos es necesario que la aplicación tenga acceso a Internet y su acceso se realiza a través de un requerimiento HTTP convencional con ciertos parámetros que se verán a continuación y que permiten refinar el contenido de la imagen del mapa producido.</p>
<p>Esta herramienta la he utilizado varias veces en diferentes tipos de proyectos como <a href="http://www.jorgeivanmeza.com/blog/2008/07/07/mi-primer-moblet/" target="_blank">Mi Primer Moblet</a> (móviles), <a href="http://www.jorgeivanmeza.com/blog/2008/09/09/demostracion-de-georreferenciacion-al-estilo-web-20/" target="_blank">GeoReferenciación con Java</a> (escritorio) y la demostración de <a href="http://www.jorgeivanmeza.com/blog/2008/09/03/desarrollo-de-sistemas-multiagentes/" target="_blank">MandarinaSocial</a> (agentes de software).</p>
<p>Para su uso se requiere que el desarrollador registre de manera gratuita el dominio desde donde se va a utilizar el servicio.  El registro se materializa a través de una <em>llave de API</em> particular.  Esta llave se solicita a través del siguiente enlace.</p>
<p style="padding-left: 30px;"><a href="http://code.google.com/apis/maps/signup.html" target="_blank">http://code.google.com/apis/maps/signup.html</a></p>
<p>El servicio se restringe a un máximo de 1000 requerimientos únicos diarios, siendo este límite aplicado por solicitante (ubicación) y no por llave lo que disminuye el impacto de esta restricción, mas aún cuando las solicitudes repetidas de la misma imagen no son tomadas en cuenta para la estadística de la cuota.</p>
<p>Un primer acercamiento a la herramienta consiste en jugar un poco con ella utilizando el <a href="http://gmaps-samples.googlecode.com/svn/trunk/simplewizard/makestaticmap.html" target="_blank">Static Map Wizard</a>.</p>
<h5>Forma de acceso</h5>
<p>Como se mencionó anteriormente, la solicitud se inicia requiriendo un URL con ciertos parámetros a través de GET y el servicio retorna una imagen en un formato compatible con web que puede ser insertada en una página web con una etiqueta <span style="font-family: courier new,courier;">&lt;img&gt;</span> o puede ser manipulada por una aplicación desarrollada en cualquier lenguaje de programación como Java o C#.</p>
<p>Los siguientes aspectos del StaticMap pueden ser parametrizados a través de los parámetros del URL.</p>
<ul>
<li>La ubicación del mapa.</li>
<li>El tamaño de la imagen generada.</li>
<li>El nivel de acercamiento.</li>
<li>El tipo de mapa.</li>
<li>El lugar de los marcadores.</li>
<li>El lugar de las rutas trazadas.</li>
</ul>
<h5>Estructura general del URL</h5>
<p>Esta es la estructura básica del URL sobre la cual se estructura el requerimiento del servicio.</p>
<p style="padding-left: 30px;">http://maps.google.com/staticmap?<em>PARÁMETROS</em></p>
<p>La lista de <em>PARÁMETROS</em> consiste en varias secciones separadas entre sí por <span style="font-family: courier new,courier;">&amp;</span> y que se encuentran construídas con un formato especial y que serán descritas a continuación.</p>
<p>Estos son los parámetros del servicio suceptibles de personalizarse.</p>
<ol>
<li><span style="font-family: courier new,courier;">center.</span></li>
<li><span style="font-family: courier new,courier;">zoom.</span></li>
<li><span style="font-family: courier new,courier;">size.</span></li>
<li><span style="font-family: courier new,courier;">format.</span></li>
<li><span style="font-family: courier new,courier;">maptype.</span></li>
<li><span style="font-family: courier new,courier;">markers.</span></li>
<li><span style="font-family: courier new,courier;">path.</span></li>
<li><span style="font-family: courier new,courier;">frame.</span></li>
<li><span style="font-family: courier new,courier;">key.</span></li>
</ol>
<h5>Ubicaciones</h5>
<p>Las ubicaciones georreferenciadas son especificadas de la forma latitud y longitud como dos valores reales con 6 dígitos decimales de precisión y separados por una coma: 5.07,-75.521.</p>
<p>Los valores válidos de una latitud varían desde -90 hasta 90 grados mientras que los valores válidos para una longitud varía desde -180 hasta 180 grados.</p>
<h5>Parámetro Key</h5>
<p>Es obligatorio y se utiliza para especificar la llave del API que se obtuvo inicialmente.  <span style="text-decoration: underline;">Sin esto, es imposible acceder al servicio.</span></p>
<p style="padding-left: 30px;"><a href="http://maps.google.com/staticmap?center=5.07,-75.521&amp;zoom=9&amp;size=500x300&amp;key=ABQIAAAAAa_xc3cplYGMwVbx_zW2chTWZSld1Wm-gV17JxrvtQa7WXWbRRTOL98qj5hk-yEw1n5LrYmEoAwzOg" target="_blank">http://maps.google.com/staticmap?center=5.07,-75.521&amp;zoom=5&amp;size=500&#215;300&amp;<strong>key=ABQIAAAAAa_xc3cplYGMwVbx_zW2chTWZSld1Wm-gV17JxrvtQa7WXWbRRTOL98qj5hk-yEw1n5LrYmEoAwzOg</strong></a></p>
<h5>Parámetro Center</h5>
<p>Es obligatorio pero se convierte en opcional bajo ciertas circunstancias.  Determina la ubicación al rededor de la cual se centrará el mapa generado.</p>
<p style="padding-left: 30px;"><a href="http://maps.google.com/staticmap?center=5.07,-75.521&amp;zoom=9&amp;size=500x300&amp;key=ABQIAAAAAa_xc3cplYGMwVbx_zW2chTWZSld1Wm-gV17JxrvtQa7WXWbRRTOL98qj5hk-yEw1n5LrYmEoAwzOg" target="_blank">http://maps.google.com/staticmap?<strong>center=5.07,-75.521</strong></a></p>
<p>El mapa anterior se encuentra centrado al rededor de las coordenadas de Manizales, Caldas.</p>
<h5>Parámetro Zoom</h5>
<p>Es obligatorio pero se convierte en opcional bajo ciertas circunstancias.  Determina el nivel de acercamiento al mapa.</p>
<p>Es definido por un número entero que varía entre 0 (menor) hasta 19 (máxima).  Debe tenerse en cuenta que no todos los niveles de acercamiento están disponibles para todos los tipos de mapas.</p>
<p style="padding-left: 30px;"><a href="http://maps.google.com/staticmap?center=5.07,-75.521&amp;zoom=11&amp;size=500x300&amp;key=ABQIAAAAAa_xc3cplYGMwVbx_zW2chTWZSld1Wm-gV17JxrvtQa7WXWbRRTOL98qj5hk-yEw1n5LrYmEoAwzOg" target="_blank">http://maps.google.com/staticmap?center=5.07,-75.521&amp;<strong>zoom=11</strong></a></p>
<p>El mapa anterior determina un nivel 11 de acercamiento sobre Manizales.</p>
<h5>Parámetro Size.</h5>
<p>Es obligatorio.  Especifica el tamaño de la imagen generada.</p>
<p>Su valor se especifica por un ancho y un alto separados por la letra &#8216;<span style="font-family: courier new,courier;">x</span>&#8216; y su unidad es en pixels: 500&#215;300.  El valor máximo de estas dimensiones es 640&#215;480.</p>
<p style="padding-left: 30px;"><a href="http://maps.google.com/staticmap?center=5.07,-75.521&amp;zoom=11&amp;size=500x300&amp;key=ABQIAAAAAa_xc3cplYGMwVbx_zW2chTWZSld1Wm-gV17JxrvtQa7WXWbRRTOL98qj5hk-yEw1n5LrYmEoAwzOg" target="_blank">http://maps.google.com/staticmap?center=5.07,-75.521&amp;zoom=11&amp;<strong>size=500&#215;300</strong></a></p>
<p>La imagen generada a partir del requerimiento anterior tiene un ancho de 500px y un alto de 300px.</p>
<h5>Parámetro Format.</h5>
<p>Es opcional y determina el tipo de formato de la imagen generada.  Su selección depende de la relación tamaño/calidad deseada.  Si se omite, su valor por defecto es GIF.</p>
<p>Los posibles valores para este parámetro son los siguientes.</p>
<ul>
<li><span style="font-family: courier new,courier;">gif </span>(por defecto).</li>
<li><span style="font-family: courier new,courier;">jpg</span></li>
<li><span style="font-family: courier new,courier;">jpg-baseline</span> (no progresivo)</li>
<li><span style="font-family: courier new,courier;">png8 </span>(8 bits)</li>
<li><span style="font-family: courier new,courier;">png32 </span>(32 bits)</li>
</ul>
<p style="padding-left: 30px;"><a href="http://maps.google.com/staticmap?center=5.07,-75.521&amp;zoom=11&amp;size=500x300&amp;format=png8&amp;key=ABQIAAAAAa_xc3cplYGMwVbx_zW2chTWZSld1Wm-gV17JxrvtQa7WXWbRRTOL98qj5hk-yEw1n5LrYmEoAwzOg" target="_blank">http://maps.google.com/staticmap?center=5.07,-75.521&amp;zoom=11&amp;size=500&#215;300&amp;<strong>format=png8</strong></a></p>
<p>El ejemplo anterior genera una imagen con formato PNG de 8 bits.</p>
<h5>Parámetro MapType.</h5>
<p>Es opcional y determina el tipo de cartografía a utilizarse para la generación de la imagen.  Si se omite, su valor por defecto es <span style="font-family: courier new,courier;">roadmap</span>.</p>
<p>Los posibles valores para este parámetro son los siguientes.</p>
<ul>
<li><span style="font-family: courier new,courier;">roadmap </span>(por defecto).</li>
<li><span style="font-family: courier new,courier;">mobile</span>.  Presenta mejoras gráficas para la visualización en dispositivos móviles.</li>
<li><span style="font-family: courier new,courier;">satellite</span>. Muestra las imagenes de satélite.</li>
<li><span style="font-family: courier new,courier;">terrain</span>. Muesta el mapa del relieve y la vegetación.</li>
<li><span style="font-family: courier new,courier;">hybrid</span>. Mezcla el contenido de los tipos <span style="font-family: courier new,courier;">roadmap</span> y <span style="font-family: courier new,courier;">satellite</span>.</li>
</ul>
<p style="padding-left: 30px;"><a href="http://maps.google.com/staticmap?center=5.07,-75.521&amp;zoom=11&amp;size=500x300&amp;format=png8&amp;maptype=hybrid&amp;key=ABQIAAAAAa_xc3cplYGMwVbx_zW2chTWZSld1Wm-gV17JxrvtQa7WXWbRRTOL98qj5hk-yEw1n5LrYmEoAwzOg" target="_blank">http://maps.google.com/staticmap?center=5.07,-75.521&amp;zoom=11&amp;size=500&#215;300&amp;format=png8&amp;<strong>maptype=hybrid</strong></a></p>
<p>El ejemplo anterior modifica el tipo de mapa visto hasta ahora (<span style="font-family: courier new,courier;">roadmap</span>) y presenta un mapa estilo híbrido de la misma ubicación.</p>
<h5>Parámetro Markers.</h5>
<p>Es opcional y permite especificar y personalizar los marcadores que referenciarán ubicaciones importantes en el mapa.  Es posible especificar hasta 50 marcadores diferentes por mapa.</p>
<p>Cuando se especifica el parámetro <span style="font-family: courier new,courier;">markers</span> no es necesario especificar a los parámetros <span style="font-family: courier new,courier;">center</span> y <span style="font-family: courier new,courier;">zoom</span> ya que estos se pueden calcular automáticamente.</p>
<p>La información de los marcadores se especifica con una cadena separada por &#8216;<span style="font-family: courier new,courier;">|</span>&#8216; (<span style="font-family: courier new,courier;">%7C</span>) de la siguiente manera.</p>
<p style="padding-left: 30px;"><span style="font-family: courier new,courier;">markers=infoMarcador1|infoMarcador2|infoMarcador3|...</span></p>
<p>La información de los marcadores incluye datos tanto de su ubicación como de su presentación.  Cada marcador se crea con la siguiente estructura.</p>
<p style="padding-left: 30px;"><span style="font-family: courier new,courier;">{latitud},{longitud},{tamaño}{color}{identificador}</span></p>
<p>El siginificado de cada uno de estos campos se describe a continuación.</p>
<ul>
<li><span style="font-family: courier new,courier;">latitud </span>(requerido).  Latitud de la ubicación del marcador.</li>
<li><span style="font-family: courier new,courier;">longitud </span>(requerido).  Longitud de la ubicación del marcador.</li>
<li><span style="font-family: courier new,courier;">tamaño </span>(opcional).  Tamaño de la imagen del marcador.  Puede tomar uno de los siguientes valores.
<ul>
<li><span style="font-family: courier new,courier;">tiny</span></li>
<li><span style="font-family: courier new,courier;">mid </span>(por defecto)</li>
<li><span style="font-family: courier new,courier;">small</span></li>
</ul>
</li>
<li><span style="font-family: courier new,courier;">color </span>(opcional).  Determina el color de la imagen del marcador.  Puede tomar una de las siguientes constantes.
<ul>
<li><span style="font-family: courier new,courier;">black</span></li>
<li><span style="font-family: courier new,courier;">brown</span></li>
<li><span style="font-family: courier new,courier;">green</span></li>
<li><span style="font-family: courier new,courier;">purple</span></li>
<li><span style="font-family: courier new,courier;">yellow</span></li>
<li><span style="font-family: courier new,courier;">blue</span></li>
<li><span style="font-family: courier new,courier;">gray</span></li>
<li><span style="font-family: courier new,courier;">orange</span></li>
<li><span style="font-family: courier new,courier;">red</span><span style="font-family: courier new,courier;"> </span>(por defecto)</li>
<li><span style="font-family: courier new,courier;">white</span></li>
</ul>
</li>
<li><span style="font-family: courier new,courier;">identificador </span>(opcional).  Permite especificar un carácter alfanumérico y en minúsculas para identificar al marcador.  Debe tenerse en cuenta que este identificador sólo aplica para marcadores tamaño <span style="font-family: courier new,courier;">mid</span>.  Su valor por defecto es el punto.</li>
</ul>
<p style="padding-left: 30px;"><a href="http://maps.google.com/staticmap?size=500x300&amp;format=png8&amp;maptype=hybrid&amp;markers=5.07,-75.521,midyellowm|4.813,-75.696,midbluep|4.534,-75.681,midreda&amp;key=ABQIAAAAAa_xc3cplYGMwVbx_zW2chTWZSld1Wm-gV17JxrvtQa7WXWbRRTOL98qj5hk-yEw1n5LrYmEoAwzOg" target="_blank">http://maps.google.com/staticmap?size=500&#215;300&amp;format=png8&amp;maptype=hybrid&amp;<strong>markers=5.07,-75.521,midyellowm|4.813,-75.696,midbluep|4.534,-75.681,midreda</strong></a></p>
<p>El ejemplo anterior muestra el mapa del eje cafetero colombiano resaltando sus ciudades con marcadores de la siguiente manera: Manizales (amarillo), Pereira (azul) y Armenia (rojo).</p>
<h5>Parámetro Path.</h5>
<p>Es opcional y permite especificar y personalizar rutas sobre el mapa que conectan a dos o mas puntos georreferenciados.  El límite es el de máximo 100 puntos por ruta.</p>
<p>El parámetro se define de manera similar a <span style="font-family: courier new,courier;">markers</span> siguiendo el siguiente formato.</p>
<p style="padding-left: 30px;"><span style="font-family: courier new,courier;">path=tipoColor:#color,weight:pesoRuta|punto1|punto2|punto3|...</span></p>
<p>El siginificado de cada uno de estos campos se describe a continuación.</p>
<ul>
<li><span style="font-family: courier new,courier;">tipoColor</span>.  Especifica el tipo de formato del color.  Puede tomar uno de los siguientes valores.
<ul>
<li>rgb.  Esquema RGB estándar con valores de 24 bits de la forma <span style="font-family: courier new,courier;">0xffffff</span>.  Su nivel de opacidad por defecto es de 50%.</li>
<li>rgba.  Utiliza valores de 32 bits de la forma <span style="font-family: courier new,courier;">0xffffffff</span>.  El nivel de opacidad está dado por el cuarto byte (últimos dos carácteres) que conforman el canal alfa de transparencia.</li>
</ul>
</li>
<li><span style="font-family: courier new,courier;">weight</span>.  Especifica el grosor de la ruta en pixels.</li>
</ul>
<p style="padding-left: 30px;"><a href="http://maps.google.com/staticmap?size=500x300&amp;format=png8&amp;maptype=hybrid&amp;markers=5.07,-75.521,midyellowm|4.813,-75.696,midbluep|4.534,-75.681,midreda&amp;path=rgb:0x0000ff,weight:5|5.07,-75.521|4.813,-75.696|4.534,-75.681&amp;key=ABQIAAAAAa_xc3cplYGMwVbx_zW2chTWZSld1Wm-gV17JxrvtQa7WXWbRRTOL98qj5hk-yEw1n5LrYmEoAwzOg" target="_blank">http://maps.google.com/staticmap?size=500&#215;300&amp;format=png8&amp;maptype=hybrid&amp;markers=5.07,-75.521,midyellowm|4.813,-75.696,midbluep|4.534,-75.681,midreda&amp;<strong>path=rgb:0x0000ff,weight:5|5.07,-75.521|4.813,-75.696|4.534,-75.681</strong></a></p>
<p>En este ejemplo se agrega una ruta azul entre Armenia - Pereira - Manizales sobre el ejemplo inmediatamente anterior.</p>
<h5>Parámetro Frame.</h5>
<p>Es opcional y especifica si la imagen resultante se debe o no mostrar con un borde azul de 5px y con 55% de opacidad a su alrededor.  Por defecto no se muestra.</p>
<p style="padding-left: 30px;"><a href="http://maps.google.com/staticmap?size=500x300&amp;format=png8&amp;maptype=hybrid&amp;markers=5.07,-75.521,midyellowm|4.813,-75.696,midbluep|4.534,-75.681,midreda&amp;path=rgb:0x0000ff,weight:5|5.07,-75.521|4.813,-75.696|4.534,-75.681&amp;frame=true&amp;key=ABQIAAAAAa_xc3cplYGMwVbx_zW2chTWZSld1Wm-gV17JxrvtQa7WXWbRRTOL98qj5hk-yEw1n5LrYmEoAwzOg" target="_blank">http://maps.google.com/staticmap?size=500&#215;300&amp;format=png8&amp;maptype=hybrid&amp;markers=5.07,-75.521,midyellowm|4.813,-75.696,midbluep|4.534,-75.681,midreda&amp;path=rgb:0x0000ff,weight:5|5.07,-75.521|4.813,-75.696|4.534,-75.681&amp;<strong>frame=true</strong></a></p>
<p>Enlaces:</p>
<ul>
<li><a href="http://code.google.com/apis/maps/signup.html" target="_blank">Sign Up for the Google Maps API</a>.</li>
<li><a href="http://code.google.com/apis/maps/documentation/staticmaps/" target="_blank">Static Maps API Developer&#8217;s Guide</a>.</li>
<li><a href="http://gmaps-samples.googlecode.com/svn/trunk/simplewizard/makestaticmap.html" target="_blank">Static Map Wizard</a>.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.jorgeivanmeza.com/2008/10/introduccion-a-staticmaps-de-google/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Acceso web al correo de GoogleAppsForDomains</title>
		<link>http://blog.jorgeivanmeza.com/2008/08/acceso-web-al-correo-de-googleappsfordomains/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=acceso-web-al-correo-de-googleappsfordomains</link>
		<comments>http://blog.jorgeivanmeza.com/2008/08/acceso-web-al-correo-de-googleappsfordomains/#comments</comments>
		<pubDate>Mon, 04 Aug 2008 17:22:13 +0000</pubDate>
		<dc:creator>jimezam</dc:creator>
				<category><![CDATA[Móvil]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[GoogleAppsForDomains]]></category>
		<guid isPermaLink="false">http://www.jorgeivanmeza.com/blog/?p=530</guid>
		<description><![CDATA[Por estos días debo estar cumpliendo un año desde que migré el correo de la Fundación al servicio de GoogleAppsForDomains.  Desde entonces ha sido una gran mejora frente al proveedor de servicio con que contaban antes de mi llegada: servicio siempre disponible, buen tamaño, buen cliente web y buen interconexión (POP3 y ahora IMAP). Como [...]]]></description>
			<content:encoded><![CDATA[<p>Por estos días debo estar cumpliendo un año desde que migré el correo de la Fundación al servicio de GoogleAppsForDomains.  Desde entonces ha sido una gran mejora frente al proveedor de servicio con que contaban antes de mi llegada: servicio siempre disponible, buen tamaño, buen cliente web y buen interconexión (POP3 y ahora IMAP).</p>
<p>Como puntos en contra sólo he encontrado algunas molestias que me produce el no poder enviar directamente archivos con la extensión ZIP desde la interfaz web y algunos problemas que se presentan cuando se envía correo uno mismo, sin embargo, a pesar de estas nimiedades el servicio es altamente recomendable.</p>
<p>Para acceder al correo desde un teléfono móvil no es posible utilizar aún la aplicación la aplicación de GMail.  Por lo pronto es posible accederlo a través de web con las restricciones de funcionalidad que esto conlleva.</p>
<p>El URL para acceder al servicio de correo a través de web es el siguiente.</p>
<p style="padding-left: 30px;"><strong><span style="font-family: courier new,courier;">http://mail.google.com/hosted/<span style="text-decoration: underline;">DOMINIO</span></span></strong></p>
<p>Reemplace <span style="text-decoration: underline;"><strong><span style="font-family: courier new,courier;">DOMINIO</span></strong></span> por el dominio registrado.  Por ejemplo <span style="font-family: courier new,courier;"><span style="text-decoration: underline;"><strong>midominio.com</strong></span></span>, sin las <span style="font-family: courier new,courier;">www</span> por supuesto.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jorgeivanmeza.com/2008/08/acceso-web-al-correo-de-googleappsfordomains/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
