Jul 10 2011

ZendFramework y PluginLoader

Publicado por octante bajo PHP

PluginLoader sirve para cargar plugins automáticamente, su uso es muy simple.

Para cargar un plugin necesitamos dos cosas, el repositorio donde está guardado (la ruta hasta el fichero) y el nombre del plugin.

Para cargar el/los repositorio/repositorios (podemos cargar más de un respositorio, éstos serán guardados en forma de array) debemos llamar al método “addPrefixPath”, por ejemplo:

$loader = new Zend_Loader_PluginLoader();
$loader->addPrefixPath ('Zend_View_Helper', 'Zend/View/Helper/')
          ->addPrefixPath ('Frontend_View_Helper', 'application/frontend/views/helpers');

Y para cargar los plugins debemos llamar al método “load”, por ejemplo:

$helperClass = $loader->load('HelperName'); // Con lo que se va a llamar a Zend_View_Helper_HelperName o bien Frontend_View_Helper_HelperName

Otra función que nos puede ser de gran utilidad es “isLoaded”, que nos va a contestar si está cargado o no el plugin, por ejemplo:

if ($loader->isLoaded('HelperName')){   //  En el caso de que ya esté cargado el plugin aprovechamos para llamarlo
   $className = $loader->getClassName('HelperName');
   $adapter = user_call_function (array('HelperName', 'getInstance'));  // Ya tenemos acceso al helper
}

Aún no hay respuestas

Apr 23 2011

Cambiar el idioma en ubuntu server

Publicado por octante bajo Ubuntu

Cuando instalas ubuntu el proceso de instalación te pide el idioma en que deseas utilizar la distribución, sin embargo, puedes cambiar el idioma de tu ubuntu a posteriori mediante tres simples pasos.

  1. Edita el fichero /var/lib/locales/supported.d/local, y modifica el locale por el que desees, por ejemplo es_ES
  2. Regenera los locales: sudo dpkg-reconfigure locales
  3. Edita el fichero /etc/environment y también el fichero /etc/default/locale

Y finalmente rebota el sistema: sudo reboot.

Con estos tres senzillos habrás cambiado el idioma de tu ubuntu server.

Aún no hay respuestas

Dec 08 2010

How-to install memcache in ubuntu and Zend Framework cache configuration

Publicado por octante bajo PHP,programación

Install Memcache in ubuntu:

To install memcache in ubutu we need to install it:
sudo apt-get install memcached

Install php memcache module to use it in php scripts:
sudo apt-get install php5-memcache

Edit memcache configuration file /etc/php5/apache2/conf.d/memcache.ini, delete semi-colon in line: “extension=memcache.so”, and restart memcache daemon:

sudo /etc/init.d/memcache restart

To use memcache in Zend Framework we can initialize it in bootstrap file, in this case we use memcache to store routing configuration file.

protected function _initRoutes () {
   $backendType = 'Memcached';
   $backendOptions = array ();
   //$backendOptions = array('cache_dir' => './tmp/'); // Optional
 
   $frontendOptions = array(
      'automatic_serialization' => true,
      'master_files' => array(APPLICATION_PATH . '/configs/router.xml'),
      'lifetime' => 120,                   // cache lifetime of 120 seconds
   );
 
   // Instantiate a caching object for caching the routes
   $cache = Zend_Cache::factory('File', $backendType,
      $frontendOptions,
      $backendOptions
   );
 
   $frontController = Zend_Controller_Front::getInstance();
 
   if(!$router = $cache->load('router')) {
      // Load up .xml file and put the results in the cache
      $config = new Zend_Config_Xml(APPLICATION_PATH . '/configs/router.xml');
      $router = Zend_Controller_Front::getInstance()->getRouter();
      $router->addConfig($config, 'routes');
 
      $cache->save($router, 'router');
   } else {
      // Use cached version
      $frontController->setRouter($router);
   }
}

We can use memcache to optimize database connections:

if( ($result = $cache->load('myresult')) === false ) {
   // cache miss; connect to the database
   $db = Zend_Db::factory( [...] );
   $result = $db->fetchAll('SELECT * FROM huge_table');
   $cache->save($result, 'myresult');
} else {
   // cache hit! shout so that we know
   echo "This one is from cache!\n\n";
}

To save html in memcache:

Controller code:

$frontendOptions = array(
   'lifetime' => 30,                   // cache lifetime of 30 seconds
   'automatic_serialization' => false  // this is the default anyways
);
 
$backendOptions = array();
 
$this->view->cache = Zend_Cache::factory('Output',
                                   'Memcached',
                                   $frontendOptions,
                                   $backendOptions);

View code:

if(!$this->cache->start('page_section')) {
      // output as usual:
      echo 'Hello world! ';
      echo time ();
 
      $this->cache->end(); // the output is saved and sent to the browser
}

To remove an item from cache:
$cache->remove('idToRemove');

To remove all items from cache:
$cache->clean(Zend_Cache::CLEANING_MODE_ALL);

And finally, to debug cache, set debug_header to true in frontendOptions:
'debug_header' => true

Aún no hay respuestas

Nov 18 2010

Sistema de alertas de google adsense

Publicado por octante bajo Publicidad y Marketing

Y sigo dando muestras del frikismo que impera entre la comunidad de programadores, ahora le toca el turno a google adsense, éste es el mensaje que se nos muestra cuando no tenemos ninguna alerta por atender:

Que sería del mundo de la programación sin un poco de humor… :D

Aún no hay respuestas

Nov 11 2010

Plugin para hacer una backup de wordpress en DropBox

Publicado por octante bajo Notícias de internet

Paseando por la blogosfera me he topado con un plugin para wordpress que me ha resultado muy interesante. La idea de este plugin es hacer una backup de base de datos, del tema, etc… y guardarla en dropbox (o en Amazon S3), fácil de instalar y de configurar.

De entre las pocas opciones que nos ofrece (tampoco es que sean necesarias más) nos permite lanzar el backup cada vez que colguemos un post, pero cuidado con esta opción! si el volúmen de la base de datos es muy grande puede llegar a provocar problemas. En estos casos aconsejo crear un cron y que se ejecute cuando el tráfico en el blog sea más bajo ;)

Os dejo el link por si os interesa:

Wp Time Machine

Una respuesta hasta el momento

Oct 29 2010

5 puntos clave del diseño web para TV

Publicado por octante bajo Posicionamiento web

Cada vez van a ser más los usuarios que naveguen por nuestras páginas a través del TV, ya sea por la introducción de google TV o porqué cada día es más fácil ver modelos de TV con acceso a internet. El adaptarnos a este cambio va a hacer que nuestras páginas sean más accesibles y por lo tanto aumentemos satisfacción del usuario.

Adaptar un diseño web para que sea accesible a través de un TV no es difícil, ni tiene porqué requerir muchas horas, sólo debemos tener en cuenta unos cuantos consejos.

Fuentes:

  1. Aumentar el tamaño de la fuente, como referencia podemos usar estas equivalencias: Si el monitor tiene 720p de resolución debemos multiplicar por 1.5x el tamaño de la letra de nuestro site, si es de 1080p debemos multiplicar por 2.0x.
  2. Limitar los párrafos a 90 palabras.
  3. Limitar las líneas a 5-7 palabras, y sobretodo nunca menos de 3, y nunca más de 12.
  4. Utilizar fuentes Sans Serif con anti-aliasing, aumentan la legibilidad.

Menús:

  1. Se aconseja utilizar menús horizontales, así se aprovecha la horizontalidad de los TV, y a poder ser ubicarlos en la parte inferior y que estén siempre visibles cuando tengamos que hacer scroll (aunque el scroll esté totalmente desaconsejado)
  2. Utilizar hover para iluminar los elementos cuando el puntero esté encima de ellos.
  3. Hacer que el ítem aumente de tamaño cuando el puntero esté cerca para facilitar la navegación (recordar que el usuario no tiene un mouse, sino un D-pad)
  4. Simplificar las categorías. Podemos utilizar google analytics para analizar las que menos se usen y ocultarlas mediante un display:none.

Padding a los elementos:

  1. Para facilitar la navegación entre los elementos es recomendable añadir un padding extra entre los ítems para poderlos distinguir y apuntar mejor con el D-pad.

Tamaño de la página:

  1. El tamaño del televisor hará que los layouts de la página web se deban modificar, por ejemplo:
  2. Si tenemos una resolución de 1280×720 el ancho debería ser de 1152×648
  3. Si tenemos una resolución de 1920×1080 el ancho debería ser de 1728×972.
  4. Usar layouts flexibles.
  5. Si queremos utilizar sólo un layout y no queremos que sea flexible, utilizar el de 720p, dado que éste será escalado cuando se vea desde un TV de 1080p.
  6. Cuidado con los banners que ocupan una gran cantidad de espacio en la parte superior de la página (banners “above the fold”), esto puede penalizar mucho la visualización de los contenidos.

Colores:

  1. No utilizar el color blanco puro (#FFFFFF), éste puede producir efectos extraños al ser visualizado, utilizar el color (#F1F1F1)
  2. Probar los colores en los diferentes formatos de los que dispone el TV, como pueden ser Cinema/Theatre, Game, etc…
  3. Cuidado con los degradados, testearlos.

Fuente: Google TV web design

2 Respuestas hasta el momento

Oct 19 2010

Script MySQL para exportar datos a CSV

Publicado por octante bajo MySQL

Consulta de MySQL para exportar el contenido de una tabla a un fichero csv. El único problema que le he visto es que no se exporta el nombre de las columnas, pero para hacer una exportación rápida va perfecto.

SELECT database_table.* INTO OUTFILE ‘/tmp/file.csv”
FIELDS TERMINATED BY ‘,’ OPTIONALLY ENCLOSED BY ‘”‘
LINES TERMINATED BY ‘\n’
FROM database_table
LEFT JOIN database_table2   ON database_table2.id   = database_table.id
ORDER BY database_table.id DESC

Fuente: MySQL support Forum

Aún no hay respuestas

Oct 15 2010

Beneficios de google durante el 3er trimestre del 2010

Publicado por octante bajo Notícias de internet

Ayer, 14 de octubre, se publicaron los beneficios de Google este último trimestre, que como no podía ser de otra manera, aumentaron la friolera cifra de un 23% respecto al trimestre anterior.

No me extenderé en los detalles, dado que esto ya lo hacen otros y con muchos más datos que yo, sólo remarcar que me ha sorprendido enormemente que sólo un 30% de sus beneficios provengan de los adwords, el 67% de los beneficios los ha obtenido de productos propios,  el 67%… que no es poco… Me ha sorprendido como ha sabido diversificar sus ingresos, haciendo frente a una crisis tan dura como la que estamos pasando.

Aparte de los excelentes resultados que ha obtenido y que nadie se esperaba (sólo hace falta ver a qué precio se han puesto las acciones), cabe destacar también lo claro que tiene Google de donde va a sacar los ingresos en el futuro. Un ejemplo,  los anuncios tanto de vídeo como en dispositivos móviles.

But for the first time Google said on a call with analysts, display ads — nontext ads with images and video on YouTube and other Web sites — are on track to generate more than $2.5 billion in revenue in the coming year, while mobile ads are on track to contribute another $1 billion.

O como por ejemplo la televisión:

“The next big pool of dollars are the brand dollars, the television dollars, and Google is starting to chase after that, but very slowly,” Mr. Gillis said. “Television’s ripe for disrupting as people are fast-forwarding through TV ads.”
This month, Google introduced Google TV, which lets people access the Web on their television screens. Though it does not yet include advertising, it could eventually help Google get some of the $50 billion television advertising market, Mr. Gillis said.

Y ya para finalizar, un apunte que me ha hecho gracia que remarcaran. Cuando entró en funcionamiento Google Instant muchos de nosotros pensamos que esto iva a reportar más ingresos a Google en concepto de adwords, porqué ivan a cobrar más relevancia las keywords principales, pero Google ha desmentido este hecho, diciendo que los ingresos en Adwords no se han visto afectados por Google Instant.

Mr. Rosenberg said Google Instant, the search tool that the company introduced in September to predict search queries and adjust the results as people type, had had minimal effect on Google’s revenue. Some analysts predicted that it would increase clicks on the more expensive ads that appear alongside the most common search queries, since people no longer necessarily finish typing their full query.

Si ellos lo dicen… ¿nos lo tendremos que creer? Yo sigo siendo algo escéptica ante esta afirmación.

¿Y qué está por venir de manos de Google? Pues coches que se conducen solos, grandes instalaciones de granjas eólicas en el Océano Atlántico, y quien sabe que más, al paso que van nos podemos imaginar cualquier cosa…

Aún no hay respuestas

Oct 14 2010

3 mejoras en los backlinks de webmaster tools

Publicado por octante bajo Posicionamiento web

Google parece que está trabajando a fondo en la herramienta Webmaster Tools, ¿va a ser que cada vez cobran más relevancia los datos que contienen? ¿O que quieren que nos fijemos en ellos y le ayudemos un poco?

Hace pocos días actualizaron la sección donde se nos muetra información sobre el posicionamiento de las keywords de nuestro site, y ahora han mejorado la información de los backlinks, proporcionándonos información de gran valor. La información que podemos obtener ahora es la siguiente:

  • Dominios de los links que apuntan a nuestro site.
  • Las páginas de nuestro site que tienen más backlinks.
  • El anchor text con el que se enlaza a nuestras páginas.

Es evidente que estos datos nos serán de gran utilidad para analizar posibles acuerdos para conseguir enlaces, publicidad, y análisis SEO, pero también va a facilitar enormemente la posibilidad de que alguien nos esté enlazando desde sites que puedan ser considerados spam o con anchor texts que también puedan ser considerados como spam.

Aún no hay respuestas

Oct 11 2010

Los 4 últimos grandes cambios del algoritmo de google

Publicado por octante bajo Posicionamiento web

Hoy he estado realizando un repaso de los últimos cambios del algoritmo de google, si no se me ha olvidado ninguna, son las siguientes:

1. Inclusión de filtros en el menú lateral: Se realizó en mayo del 2010. El cambio en éste caso no implica exactamente algoritmo, sino frontend. Con los filtros se aumentó la posibilidad de filtraje de la información, pudiendo filtrar por ejemplo por resultados en tiempo real.

2. Mayday: Se realizó en mayo del 2010 (de ahí su nombre), y fue un cambio que a pocos SEOs les pasó desapercibido. Lo que notamos la mayoría de nosotros fue una caída más que remarcable de las visitas por long tail. Según google ésto fue causado por una desindexación de contenido que se podía llegar a considerar duplicado (limpiaron el índice para preparar los servidores para google caffeine). Otro gran cambio que implicó el mayday fue la penalización de los sites con tenido auto-generado (contenido que puede llegar a considerarse duplicado), y por último aumentó la geolocalización de los resultados.

3. Google Caffeine: La actualización terminó en junio del 2010, y lo más destacado fue un fuerte aumento en la velocidad de indexación de contenido, se dió mucha más importancia a los resultados de tiempo real (twitter, etc..) y por último, según dicen desde google, se pasó a valorar mucho más positivamente sites pequeños especializados que grandes generalistas.

4. Google Instant: Fue lanzado en septiembre del 2010. En España, a fecha de hoy, es sólo visible si se está logado en google, y se basa en incorporar un autocompleter en el campo de búsqueda de google (más sofisticado que el anterior) y ofrecer los resultados mientras tecleamos la consulta a través de AJAX. Los efectos que podemos llegar a observar los SEOs (aunque aún están por comprobar) es otra disminución de visitas por long tail (los usuarios pueden decidir quedarse con las propuestas de google y no continuar tecleando la consulta), lo que también haría que los que invertimos en adwords nos viéramos obligados a comprar keywords más generalistas, aumentando así nuestra factura en adwords a final de mes.

Y hasta ahora éstas han sido las sorpresas que nos ha preparado google para el 2010, veremos si aún nos espera algún otro gran cambio del algoritmo de google este año.

Aún no hay respuestas

Siguiente »