<?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; David Bolufer</title>
	<atom:link href="http://onestic.com/author/dbolufer/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>Mejorar rendimiento en Magento, acelerando sesiones y cache</title>
		<link>http://onestic.com/mejorar-rendimiento-en-magento-acelerar-sesiones-y-cache/</link>
		<comments>http://onestic.com/mejorar-rendimiento-en-magento-acelerar-sesiones-y-cache/#comments</comments>
		<pubDate>Mon, 03 Jan 2011 18:21:22 +0000</pubDate>
		<dc:creator>David Bolufer</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[Magento]]></category>
		<category><![CDATA[cache]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[performance]]></category>

		<guid isPermaLink="false">http://onestic.com/?p=1013</guid>
		<description><![CDATA[Pequeño artículo donde explicamos una pequeña mejora en el rendimiento de Magento, consiste en guardar tanto la cache y las sesiones en un disco en memoría RAM usando el formato de ficheros TMPFS. Esto permite reducir el número de accesos a disco por parte de Magento. Lo primero sería configurar Magento para que guarde las [...]]]></description>
			<content:encoded><![CDATA[Pequeño artículo donde explicamos una pequeña <strong>mejora en el rendimiento de Magento</strong>, consiste en guardar tanto la cache y las sesiones en un disco en memoría RAM usando el formato de ficheros TMPFS. Esto permite reducir el número de accesos a disco por parte de Magento.

Lo primero sería configurar Magento para que guarde las sesiones utilizando archivos. Para ello editamos el archivo <code>app/etc/local.xml</code>.

<pre class="brush: xml; title: ;">&lt;session_save&gt;&lt;![CDATA[files]]&gt;&lt;/session_save&gt;</pre>

<p>A pesar de que en muchos <strong>tutoriales de rendimiento en Magento</strong> recomiendan guardar las sesiones en base de datos, no tiene sentido tener que cargar el servidor con INSERTS y UPDATES cuando se pueden manejar perfectamente usando PHP. Y a esta conclusión hemos llegado tras testear ambas configuraciones en nuestras tiendas y ver como, en aquellas tiendas que tienen algo de tráfico, las queries que gestionan las sesiones siempre están entre el top ten de queries lentas.</p>

<p>Vamos a destinar, por ejemplo, 256MB al sistema de caché de ficheros y 48MB para las sesiones. Si suponemos que nuestra tienda está en /var/www/tienda/, tendremos que montar las unidades en /var/www/tienda/var/cache/ y en /var/www/tienda/var/session/ para ello lo mejor es directamente editar el archivo /etc/fstab y añadir las siguientes líneas. Fstab es el archivo dónde se indica donde y cómo montar las particiones en el arranque del sistema.</p>

<pre class="brush: plain; title: ;">
tmpfs on /var/www/tienda/var/cache type tmpfs (rw,size=256,mode=0777)
tmpfs on /var/www/tienda/var/session type tmpfs (rw,size=48,mode=0777)
</pre>

Ahora basta con recargar las particiones montadas usando
<pre class="brush: plain; title: ;">
sudo mount -a
</pre>]]></content:encoded>
			<wfw:commentRss>http://onestic.com/mejorar-rendimiento-en-magento-acelerar-sesiones-y-cache/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<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>

