Jul
10
2011
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
}
Dec
08
2010
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
Oct
19
2010
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
Oct
08
2010
Hace pocos dÃas twitter informó de que ha estado trabajando en su buscador a tiempo real, lo que cuentan en su comunicado es que han estado trabajando para adaptar lucene a las búsquedas a tiempo real.
Según dicen, ahora la plataforma es capaz de indexar los documentos 50 veces más rápido, y teniendo en cuenta que cada segundo entran 1000 nuevos tweets en el sistema, no es poco… También han reducido enormemente la carga en el servidor, llegando a un 5%, lo que les permitirá un crecimiento controlado durante bastante tiempo.
Y para los que estéis trabajando con Lucene y queráis tener acceso a éste código parece ser que ya es en parte posible, dado que han compartido parte del código, no todo. De momento lo que he encontrado es el seguimiento de bugs, encabezado por uno de sus desarrolladores, Michael Busch, lo que falta es el trunk con el código, si alguien conoce su ubicación tiene a su disposición la sección de comentarios
Jan
19
2009
Ya van saliendo las mejoras a las cuales tenemos acceso a través de la nueva versión de jQuery UI 1.6, esta vez es el selector de fechas el que se ha actualizado. Para los que no lo hayan usado, éste nos permite seleccionar fácilmente un rango de fechas, una fecha concreta, y una serie de funcionalidades que no encontramos en la mayorÃa de selectores de fecha, además de ser muy fácil de instalar.
Fuente: Anieto2k
Jan
14
2009
Ya tenemos a nuestra disposición una nueva versión de jquery, entre las muchas mejoras que trae consigo yo destaco una que he hechado a faltar muchas veces, por fin no tendremos que regenerar los eventos que trabajan sobre elementos dinámicos, la función “live” es la solución.
$("p").live("click", function(){
$(this).after("<p>Another paragraph!</p>");
});
También se han reescrito el código de las funciones html() y append(), mejorando en algunos casos hasta 6 veces la velocidad.
Jquery minified
Jquery normal
Apr
14
2008
Seguro que ya habréis oido hablar de ella, pero por si las moscas aquà la dejo, muy útil para testear una página web mediante varios navegadores.
IETester
Apr
14
2008
En un momento podemos tener un traductor gracias a una reciente API de google para traducir textos
De momento sólo se puede utilizar mediante javascript, a la espera quedamos de poder utilizarla mediante un webservice, de todos modos… siempre se puede provar un poco de ingenierÃa inversa, si lo descubro aquà lo cuelgo.
VÃa variablenotfound
Apr
11
2008
Según la wikipedia, Facebook es un sitio web de redes sociales. Fue creado originalmente para estudiantes de la Universidad de Harvard, pero ha sido abierto a cualquier persona que tenga una cuenta de correo electrónico.
Dentro de esta definición está la red social más exitosa del momento, qué nos puede ofrecer además de una extensa red de contactos? pues una completa API para desarrollar aplicaciones sobre esta plataforma. Y como todo programador… he estado buscando alguna herramienta que me permita ahorrar algo de tiempo en el desarrollo, en sentido web he encontrado un listado de recursos para implementar aplicaciones sobre facebook.
Apr
11
2008
Dejo una lista de plugins para jQuery, la mayorÃa de ellos para hacer efectos visuales, entre ellos me ha encantado el slider tipo apple, el menú tipo ojo de pez y el menú tipo acordeón.
- Sliders: Slider Gallery y Accessible slider
- Manipulación de imágenes: , Semitransparent rollovers y Creating A Sliding Image Puzzle Plug-In
- Menus: Digg Header, IconDock
- Despegables: Horizontal Accordion, HoverAccordion, Step Carousel Viewer y Featured Content Glider
- Gráficas: jQuery + jFlot y Accessible charts using canvas and jQuery
- Editores: Small Rich Text Editor y markItUp! Universal markup editor
- Flash: jQuery Flash Plugin, jMP3 y jQuery Media Plugin
- Pestañas: jQuery Tabs
- Lightbox: Fancy Box, Thickbox Plus
- Tablas: Flexi Grid y Query Grid 3.1
- Formularios: FaceBook Like – jQuery and autosuggest Search Engine, Masked Input Plugin, jQuery Enchant, EasyDrag jQuery Plugin, Simple Effects Plugins y Slide out and drawer effect
- Efectos sobre elementos: crop, labelOver and pluck, Style Author Comments Differently with jQuery, Creating a fading header, Coda Bubble, Another In-Place Editor y jQuery Taconite
- Aplicaciones web: GenFavicon, WriteMaps
37 More Shocking jQuery Plugins
vÃa Sentido web y anieto2k