<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss'><id>tag:blogger.com,1999:blog-1716704522730068079</id><updated>2009-02-20T23:13:46.135-08:00</updated><title type='text'>chalichi</title><subtitle type='html'>php, ajax, javascript, css, web 2.0, linux</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://chalichi.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1716704522730068079/posts/default'/><link rel='alternate' type='text/html' href='http://chalichi.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>lichi</name><uri>http://www.blogger.com/profile/05931559901844862214</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>3</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1716704522730068079.post-8859155249449771214</id><published>2007-08-10T11:20:00.000-07:00</published><updated>2007-08-10T11:37:41.613-07:00</updated><title type='text'>Evolution - Instancia Única</title><content type='html'>Bueno, desde hace un tiempo que venía buscando la forma de modificar el comportamiento de Evolution para que siempre utilice una única instancia.&lt;br /&gt;Muchas veces me pasaba que entre tantas ventanas abiertas, me olvidaba que Evolution estaba minimizado y, al intentar abrirlo nuevamente desde el menú, en lugar de maximizar la instancia previamente activa, abría una nueva.&lt;br /&gt;&lt;br /&gt;Para solucionar este comportamiento indeseado (por lo menos en mi caso) creé el siguiente script en Perl, basado en Evonotify [1].&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;---------------------------------&lt;br /&gt;# EvoLauncher was created by Lisandro Grassini lichig AT gmail DOT com&lt;br /&gt;# based on Evonotify created by Oliver Grawert &lt;br /&gt;#&lt;br /&gt;# This script is free software; you can redistribute it and/or modify it&lt;br /&gt;# under the terms of the GNU Library General Public License&lt;br /&gt;&lt;br /&gt;#!/usr/bin/perl&lt;br /&gt;use Gnome2;&lt;br /&gt;use Gnome2::Wnck;&lt;br /&gt;&lt;br /&gt;Gtk2-&gt;init();&lt;br /&gt;&lt;br /&gt;$stamp = time;&lt;br /&gt;$screen = Gnome2::Wnck::Screen-&gt;get_default();&lt;br /&gt;&lt;br /&gt;$screen-&gt;force_update();&lt;br /&gt;foreach $window ($screen-&gt;get_windows()) {  &lt;br /&gt;   if ($window-&gt;get_name =~ /Evolution/) {&lt;br /&gt;       $evolution = $window;&lt;br /&gt;   }  &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;if($evolution) {&lt;br /&gt;   $evolution-&gt;unminimize($stamp);&lt;br /&gt;   $evolution-&gt;get_workspace-&gt;activate($stamp);&lt;br /&gt;   $evolution-&gt;activate($stamp);&lt;br /&gt;   print $evolution-&gt;get_geometry;&lt;br /&gt;}&lt;br /&gt;else {&lt;br /&gt;   system('evolution');&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Gtk2-&gt;main_iteration() while (Gtk2-&gt;events_pending());&lt;br /&gt;Gtk2-&gt;main();&lt;br /&gt;&lt;/hostmaster@grawert.net&gt;&lt;/lichig@gmail.com&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;---------------------------------&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[1]  http://www.grawert.net/software/evonotify/index.html&lt;br /&gt;&lt;br /&gt;Espero les sea útil como a mi.&lt;br /&gt;&lt;br /&gt;Lisandro Grassini.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1716704522730068079-8859155249449771214?l=chalichi.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chalichi.blogspot.com/feeds/8859155249449771214/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1716704522730068079&amp;postID=8859155249449771214' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1716704522730068079/posts/default/8859155249449771214'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1716704522730068079/posts/default/8859155249449771214'/><link rel='alternate' type='text/html' href='http://chalichi.blogspot.com/2007/08/evolution-instancia-nica.html' title='Evolution - Instancia Única'/><author><name>lichi</name><uri>http://www.blogger.com/profile/05931559901844862214</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12138978512743038270'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1716704522730068079.post-490087162643267614</id><published>2007-03-26T06:28:00.000-07:00</published><updated>2007-08-10T11:17:10.773-07:00</updated><title type='text'>Sobrecarga en PHP</title><content type='html'>Una de las cosas que mas extraño a la hora de desarrollar en PHP es poder Sobrecargar métodos. Dado que PHP no lo soporta, al menos en sus versiones 4.x.&lt;br /&gt;&lt;br /&gt;La sobrecarga es la habilidad que tienen muchos lenguajes OOP para poder definir varios métodos con el mismo nombre pero con diferentes números/tipos de parámetros. De esta manera se ejecuta uno u otro dependiendo la cantidad y los tipos de parámetros pasados.&lt;br /&gt;&lt;br /&gt;Sin embargo podemos recurrir a un pequeño truco para poder sobrecargar métodos dependiendo el número de parámetros. La sobrecarga por tipos de datos no se puede hacer dado que no hay tipos de datos en PHP.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;class MiClase&lt;/li&gt;&lt;li&gt;{&lt;/li&gt;&lt;li&gt;  function MiClase()&lt;/li&gt;&lt;li&gt;  {&lt;/li&gt;&lt;li&gt;   $nombre="MiClase".func_num_args();&lt;/li&gt;&lt;li&gt;   $this-&gt;$nombre();&lt;/li&gt;&lt;li&gt;  }&lt;/li&gt;&lt;li&gt;  function MiClase1($x)&lt;/li&gt;&lt;li&gt;  {&lt;/li&gt;&lt;li&gt;   //código;&lt;/li&gt;&lt;li&gt;  }&lt;/li&gt;&lt;li&gt;  function MiClase2($x,$y)&lt;/li&gt;&lt;li&gt;  {&lt;/li&gt;&lt;li&gt;   //código;&lt;/li&gt;&lt;li&gt;  }&lt;/li&gt;&lt;li&gt;}&lt;/li&gt;&lt;/ol&gt;De esta manera, con func_num_args() obtenemos el numero de parámetros pasados al constructor de MiClase, y en base a ese valor generamos el nombre de la función a llamar en $nombre. Fácil, no? ;)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Lisandro Grassini.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1716704522730068079-490087162643267614?l=chalichi.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chalichi.blogspot.com/feeds/490087162643267614/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1716704522730068079&amp;postID=490087162643267614' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1716704522730068079/posts/default/490087162643267614'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1716704522730068079/posts/default/490087162643267614'/><link rel='alternate' type='text/html' href='http://chalichi.blogspot.com/2007/03/sobrecarga-en-php.html' title='Sobrecarga en PHP'/><author><name>lichi</name><uri>http://www.blogger.com/profile/05931559901844862214</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12138978512743038270'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1716704522730068079.post-5098242685446713405</id><published>2007-03-09T21:02:00.000-08:00</published><updated>2007-08-10T11:17:58.224-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ezResults'/><category scheme='http://www.blogger.com/atom/ns#' term='postgre'/><category scheme='http://www.blogger.com/atom/ns#' term='EZ Results'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='ezSQL'/><title type='text'>EZ Results y Postgre</title><content type='html'>Desarrollando una aplicación PHP contra una DB Postgre, me encontré con un pequeño problema a la hora de hacer la paginación de resultados.&lt;br /&gt;Dado que estoy usando la clase ezSQL para manipular la base de datos desde una capa  abstraída, decidí, también, utilizar la clase de paginación EZ Results. Ambas creadas por JV Multimedia [1].&lt;br /&gt;El problema es que esta clase no tiene soporte para Postgre, dado que el manejo de la clausula LIMIT es distinto a MySQL.&lt;br /&gt;No hubo mucho de que preocuparse. Simplemente buscamos la linea donde se hace referencia al LIMIT de la consulta y la modificamos de la siguiente manera:&lt;br /&gt;&lt;br /&gt;Original:&lt;br /&gt;LIMIT {$_REQUEST['BRSR']},$this-&gt;num_results_per_page&lt;br /&gt;&lt;br /&gt;Modificamos por:&lt;br /&gt;OFFSET {$_REQUEST['BRSR']} LIMIT $this-&gt;num_results_per_page&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Luego, desde el archivo donde queremos paginar nuestros resultados simplemente:&lt;br /&gt;&lt;br /&gt;include_once "lib/ez_results.php";&lt;br /&gt;$ezr-&gt;query_mysql("select campo1, campo2 from tabla");&lt;br /&gt;$ezr-&gt;display();&lt;br /&gt;&lt;br /&gt;Fácil, ¿no?  ;)&lt;br /&gt;&lt;br /&gt;[1] http://www.woyano.com/jv/ezsql&lt;br /&gt;&lt;br /&gt;Lisandro Grassini&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1716704522730068079-5098242685446713405?l=chalichi.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chalichi.blogspot.com/feeds/5098242685446713405/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1716704522730068079&amp;postID=5098242685446713405' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1716704522730068079/posts/default/5098242685446713405'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1716704522730068079/posts/default/5098242685446713405'/><link rel='alternate' type='text/html' href='http://chalichi.blogspot.com/2007/03/ez-results-y-postgre.html' title='EZ Results y Postgre'/><author><name>lichi</name><uri>http://www.blogger.com/profile/05931559901844862214</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12138978512743038270'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry></feed>