domingo, 20 de enero de 2013

Método each en jquery y alternativa de optimización

Retomando el uso de javascript y jQuery para hacer todas esas cosas que se ven bonitas en los navegadores. me encontré con la necesidad de iterar sobre elementos de algún grupo o contenidos dentro de un elemento. Ya se que es una tarea de lo más cotidiana pero ya no recordaba como hacerlo después de dejar de programar una larga temporada. Los elementos que se pueden inerar son como por ejemplo los "li" dentro de un "ul" o los "option" dentro de un "select" o todos los "img" de la pagina o los "a" o muchos otros elementos html que se te puedan ocurrir.

A continuación quiero incluir un uso clásico a manera de ejemplo simplemente, que para quien quiere iterar con el método each puede resultar una solución que va directo al grano:

$('a').each( function(){
  var $this = $(this);
  $this.css( 'text-decoration' , 'underline' );
});

Ahora quiero incluir un link a una entrada donde encontré este ejemplo pero además viene la posibilidad de optimizar el método each en situaciones donde son demasiados elementos y el tema del rendimiento cobra vital importancia.


¡¡¡Saludos javer@s!!!

miércoles, 9 de enero de 2013

Cerrar todas las conexiones en Postgresql

A veces queremos hacer una actualización en nuestra base de datos o volver a cargar el dump completo en Postgresql. A mi me pasó de manera local, por alguna razón (que pueden ser muchas) había más conexiones a la base de datos a parte de la que yo actualmente estaba utilizando. Yo quería borrar la base de datos antes de cargar el script del dump, pero Postgres no me permitía indicando que aún había conexiones activas de otros usuarios. Para esto no fue difícil encontrar la solución.

Recuerda tener mucho cuidado con estas sentencias ya que puedes estar cerrando no solo tus propias conexiones sino también las de otros usuarios, en mi caso es solo local, pero puede pasar.

Primero debemos entrar a una terminal psql de la base de datos postgres (no tu base de datos en cuestión porque sino te bota cuando cierras todas las conexiones, incluyendo la tuya acutal):

$psql -h servidor  -U postgres -d postgres

Ahora tecleamos lo siguiente:

postgres=#SELECT pg_terminate_backend(procpid) FROM pg_stat_activity WHERE datname='mi_base_de_datos';

Con esto simplemente eliminamos las conexiones, ahora si podemos hacer una sola conexión para borrar la base de daos y volverla a crear ya sea desde la linea de comandos o usando algún cliente para Postgresql, bueno este fue mi caso, ustedes pueden hacer lo que consideren mejor para su situación :)

A continuación el post completo de referencia, donde se explica a mayor detalle que pasa y algunas alternativas para lo que arriba explicamos. 


Aprovecho para agradecer al autor de este útil post. 

¡¡¡Hasta la próxima Javer@s!!