<?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>onestic &#187; how to</title>
	<atom:link href="http://onestic.com/tag/how-to/feed/" rel="self" type="application/rss+xml" />
	<link>http://onestic.com</link>
	<description>blog de onestic</description>
	<lastBuildDate>Thu, 02 Feb 2012 09:40:42 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.5</generator>
		<item>
		<title>Instalar MaxMind GeoIP en CentOS</title>
		<link>http://onestic.com/instalar-maxmind-geoip-en-centos/</link>
		<comments>http://onestic.com/instalar-maxmind-geoip-en-centos/#comments</comments>
		<pubDate>Mon, 03 Jan 2011 11:59:54 +0000</pubDate>
		<dc:creator>David Bolufer</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[Opinión]]></category>
		<category><![CDATA[comandos]]></category>
		<category><![CDATA[geoip]]></category>
		<category><![CDATA[how to]]></category>

		<guid isPermaLink="false">http://onestic.com/?p=991</guid>
		<description><![CDATA[Vamos a redactar un pequeño manual de como instalar el geolocalizador de IP de MaxMind, hay varias forma de tener acceso desde PHP a estos datos, nosotros vamos a realizar la instalación con mayor rendimiento que es como módulo de Apache: yum list GeoIP* Deberías ver algo así: Finished Available Packages GeoIP.x86_64 1.4.7-0.1.20090931cvs.el5 epel GeoIP-data.x86_64 [...]]]></description>
			<content:encoded><![CDATA[Vamos a redactar un pequeño manual de como instalar el geolocalizador de IP de MaxMind, hay varias forma de tener acceso desde PHP a estos datos, nosotros vamos a realizar la instalación con <a href="http://www.maxmind.com/app/benchmark">mayor rendimiento</a> que es como módulo de Apache:

<pre class="brush: plain; title: ;">yum list GeoIP*</pre>

Deberías ver algo así:

<pre class="brush: plain; title: ;">
Finished
Available Packages
GeoIP.x86_64                1.4.7-0.1.20090931cvs.el5                  epel
GeoIP-data.x86_64         20090201-1.el5.centos                       extras
GeoIP-devel.x86_64        1.4.7-0.1.20090931cvs.el5                  epel
</pre>

Procedemos a instalar todos los paquete, de ellos, GeoIP-data es el archivo que geolocaliza direcciones IP.

<pre class="brush: plain; title: ;">yum install GeoIP*
...
...
...
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
 Installing     : GeoIP                                                                           1/3
 Installing     : GeoIP-devel                                                                     2/3
 Installing     : GeoIP-data                                                                      3/3

Installed:
 GeoIP.x86_64 0:1.4.7-0.1.20090931cvs.el5             GeoIP-data.x86_64 0:20090201-1.el5.centos
 GeoIP-devel.x86_64 0:1.4.7-0.1.20090931cvs.el5
</pre>


Una vez instalados los módulos, procedemos a instalar el módulo para Apache 2.X, para ello necesitaremos tener instalado el comando apxs, parte del paquete httpd-devel, si no lo tenemos instalado basta con instalarlo desde yum.
<pre class="brush: plain; title: ;">
cd /tmp
wget http://geolite.maxmind.com/download/geoip/api/mod_geoip2/mod_geoip2_1.2.5.tar.gz
tar -xvzf mod_geoip2_1.2.5.tar.gz
apxs -i -a -L/usr/lib -I/usr/include -lGeoIP -c mod_geoip.c
</pre>

El último comando nos compila el módulo para nuestra versión de Apache, comprobar donde lo ha copiado pues nos hará falta en el siguiente paso para activar el módulo en Apache, en nuestro caso lo deposita en /usr/lib64/httpd/modules/mod_geoip.so.

Editamos la configuración de Apache para añadir el módulo mod_geoip y activar la geolocalización.
<pre class="brush: plain; title: ;">
LoadModule geoip_module /usr/lib64/httpd/modules/mod_geoip.so
...
...
&lt;IfModule mod_geoip.c&gt;
  GeoIPEnable On
#Ruta hacia la base de datos con las IP's geolocalizadas
  GeoIPDBFile /var/lib/GeoIP/GeoIP.dat
&lt;/IfModule&gt;
</pre>

Listo, tenemos instalado el soporte de GEO IP, este es un ejemplo para poder obtener en PHP.
<pre class="brush: php; title: ;">
&lt;?php
$country_code = apache_note(&quot;GEOIP_COUNTRY_CODE&quot;);
$country_code3 = apache_note(&quot;GEOIP_COUNTRY_CODE3&quot;);
$country_name = apache_note(&quot;GEOIP_COUNTRY_NAME&quot;);
$geoip_city_name = apache_note(&quot;GEOIP_CITY_NAME&quot;);
$geoip_city_postal_code = apache_note(&quot;GEOIP_CITY_POSTAL_CODE&quot;);
$geoip_city_latitude = apache_note(&quot;GEOIP_CITY_LATITUDE&quot;);
$geoip_city_long_latitude = apache_note(&quot;GEOIP_CITY_LONG_LATITUDE&quot;);
$geoip_city_dma_code = apache_note(&quot;GEOIP_CITY_DMA_CODE&quot;);
$geoip_city_postal_code = apache_note(&quot;GEOIP_CITY_POSTAL_CODE&quot;);
$geoip_city_area_code = apache_note(&quot;GEOIP_CITY_AREA_CODE&quot;);


echo &quot;
IP: {$_SERVER['REMOTE_ADDR']} &lt;/br&gt;
GEOIP_COUNTRY_CODE: &lt;strong&gt;$country_code&lt;/strong&gt; &lt;/br&gt;
GEOIP_COUNTRY_CODE3: &lt;strong&gt;$country_code3&lt;/strong&gt; &lt;/br&gt;
GEOIP_COUNTRY_NAME: &lt;strong&gt;$country_name&lt;/strong&gt; &lt;/br&gt;
GEOIP_CITY_NAME: &lt;strong&gt;$geoip_city_name&lt;/strong&gt; &lt;/br&gt;
GEOIP_CITY_POSTAL_CODE: &lt;strong&gt;$geoip_city_postal_code&lt;/strong&gt; &lt;/br&gt;
GEOIP_CITY_LATITUDE: &lt;strong&gt;$geoip_city_latitude&lt;/strong&gt; &lt;/br&gt;
GEOIP_CITY_LONG_LATITUDE: &lt;strong&gt;$geoip_city_long_latitude&lt;/strong&gt; &lt;/br&gt;
GEOIP_CITY_DMA_CODE: &lt;strong&gt;$geoip_city_dma_code&lt;/strong&gt; &lt;/br&gt;
GEOIP_CITY_POSTAL_CODE: &lt;strong&gt;$geoip_city_postal_code&lt;/strong&gt; &lt;/br&gt;
GEOIP_CITY_AREA_CODE: &lt;strong&gt;$geoip_city_area_code&lt;/strong&gt; &lt;/br&gt;
&quot;;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://onestic.com/instalar-maxmind-geoip-en-centos/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Como agregar correctamente CSS a WordPress</title>
		<link>http://onestic.com/agregar-correctamente-css-wordpress/</link>
		<comments>http://onestic.com/agregar-correctamente-css-wordpress/#comments</comments>
		<pubDate>Thu, 31 Dec 2009 14:20:11 +0000</pubDate>
		<dc:creator>David Bolufer</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[how to]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://onestic.com/?p=611</guid>
		<description><![CDATA[En esta entrada intentaremos aportar un poco de luz a la mejor forma, a nuestro modo de ver, para incluir nuestros archivos CSS en WordPress tanto en nuestro tema como en nuestro. La gran mayoría agregáis vuestra CSS al tema directamente, o cuando desarrolláis un plugin lo incluís utilizando un código más o menos así: [...]]]></description>
			<content:encoded><![CDATA[En esta entrada intentaremos aportar un poco de luz a la mejor forma, a nuestro modo de ver, para incluir nuestros archivos CSS en <strong>WordPress</strong> tanto en nuestro tema como en nuestro.

La gran mayoría agregáis vuestra CSS al tema directamente, o cuando desarrolláis un plugin lo incluís utilizando un código más o menos así:

<pre class="brush: php; title: ;">
function on__style(){
    echo &quot;&lt;style type='text/css'&gt;
        .scroll_checkboxes {
            height: 400px;
            width: 400px;
            padding: 5px;
            overflow: auto;
            border: 1px solid #ccc
        }

            .scroll_checkboxes label{
                float: left;
                clear: both;
            }
            .form-table input[type=text]{ width: 400px }
    &lt;/style&gt;&quot;;
}
add_action('wp_head', 'on__style');
</pre>

Bueno, he puesto el caso peor haciendo la &#8220;guarrada&#8221; de no incluir nuestro código CSS en un archivo externo. El modo más limpio para hacerlo es a través un hook de WordPress que ejecuta dentro de la función wp_head(), este es <strong>wp_print_styles</strong>, podemos introducir el siguiente código en nuestro archivo functions.php del tema:

<pre class="brush: php; title: ;">
function on__style(){
    wp_enqueue_style('style-theme', get_bloginfo('stylesheet_url'), false, false, 'screen');
    wp_enqueue_style('960', get_bloginfo('template_url').'/_inc/css/960.css','style-theme');
    wp_enqueue_style('jquery-ui', get_bloginfo('template_url').'/_inc/css/jquery-ui.custom/ jquery-ui.custom.css','style-theme');
}
add_action('wp_print_styles', 'on__style');
</pre>

Con este código no tendremos que introducir ninguna referencia al CSS en el archivo header.php de nuestro tema, simplemente tenemos que asegurarnos que antes del cierre de la etiqueta llamamos a la función wp_head().

En el caso de estar desarrollando un plugin, este sería el código equivalente:

<pre class="brush: php; title: ;">
function on__widget_style(){
    $pluginDirComplete = plugin_basename(dirname(__FILE__));
    $pluginsWPDirComplete = basename(dirname(dirname(__FILE__)));

    $urlSite = get_settings('siteurl');
    $urlCSS = $urlSite . '/wp-content/'.$pluginsWPDirComplete.'/'.$pluginDirComplete.'/css/on-widget_style.css';

    wp_enqueue_style('on__traffsend', $urlCSS);
}
add_action('wp_print_styles', 'on__widget_style');
</pre>

Esto tiene un ventaja muy importante y es que podemos usar algún plugin para comprimir y unificar todos nuestros CSS en un único fichero mejorando sensiblemente la velocidad de carga y reduciendo la transferencia del servidor, pero esto, da para otro post en el futuro.]]></content:encoded>
			<wfw:commentRss>http://onestic.com/agregar-correctamente-css-wordpress/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

