Miniposts

Coming soon :)

Showing posts with label Firefox. Show all posts
Showing posts with label Firefox. Show all posts

Saturday, May 16, 2009

Blogger Hacking: Comments Incrustrados + Popup

Hoy me comentó mi novia de un mini debate que se armó en lo de Halle respecto de qué es mas útil/cómodo, si tener los comentarios en una ventana emergente (popup), o incrustrados debajo del post en la página del mismo, al estilo Wordpress (también conocido en la jerga de la calle como "con el formulario").

Esto me parecía haberlo visto en otro lado, y efectivamente..., sólo que en esa ocasión el resultado no fue muy bueno. Con buen criterio e intentando hacer la gran Salomón, Halle encontró la forma de darle a sus lectores ambas opciones de manera tal de dejar contentos a todos.

Al poner los comentarios por defecto con el método de formulario, el secreto para al mismo tiempo permitir los comments en popup lo encontró simplemente usando esta URL:

https://www.blogger.com/comment.g?blogID=2751746494143071665&postID=7706357119646989421&isPopup=true

Con un poco de sentido común deducimos:

  • https://www.blogger.com/comment.g: la URL de la página que se carga en el popup con los comentarios del post.

  • ?blogID=2751746494143071665: comienza la lista de argumentos que Blogger le pasa a esa página. El primero de ellos es el BlogID, que identifica el blog del cual se quieren ver los comentarios.

  • &postID=7706357119646989421: el segundo de los argumentos es el postID, que como el nombre indica, identifica el post en particular perteneciente al BlogID anterior, del que quiero ver los comentarios.

  • &isPopup=true: y finalmente, un último argumento que simplemente hace que la página de los comentarios se abra en una nueva ventana.


Halle tuvo dos problemas:
  1. El Javascript que usa para abrir esta página en una nueva ventana, abría varias ventanas consecutivas si el lector hacía click en varios enlaces de comentarios de posts diferentes. Lo deseado es que si hay una ventana de comentarios ya abierta, se use esa misma en lugar de una nueva, para no llenar de ventanas el escritorio del sufrido usuario.

  2. Amén del punto anterior, cada ventana nueva de comentarios que se abría, no "refrescaba" la lista de comentarios, y simplemente traía los mismos una y otra vez, independientemente del post seleccionado.

Los que me conocen saben que está en mi naturaleza no dejar pasar un reto, sobre todo si a tecnología se refiere; y cuando mi novia me explicó la situación, una fuerza extraña me impulsó a resolver el (los) problema(s).

Habiendo peleado unas dos horas contra lo que parecía ser algo muy simple, finalmente encontré la solución; y aquí la comparto con ustedes:
  1. Configurar los comentarios de nuestro blog para que "por defecto" vayan incrustrados. Y digo por defecto porque en realidad el usuario medio no necesita saber cuál es el método original y cual es el hack.

  2. Vamos a editar el HTML de nuestro template. No se asusten que es fácil. Nos dirigimos a Diseño->Edición de HTML y seleccionamos "Expandir plantillas de artilugios". Hcemos click en cualquier parte del código en la caja de texto, y usando la opción Buscar de nuestro navegador (Ctrl+F), escribimos lo siguiente:

    data:post.allowComments

  3. El código debería verse como el que sigue. El suyo puede variar dependiendo de la configuración del blog y los cambios que le hayan hecho al template, pero lo al menos debería darles una idea de dónde comienza y termina el bloque de código que vamos a modificar:

    <b:if cond="data:post.allowComments">

    <a class="comment-link" href="data:post.addCommentUrl" onclick="data:post.addCommentOnclick"><b:if cond="data:post.numComments == 1">1 <data:top.commentlabel><b:else><data:post.numcomments> <data:top.commentlabelplural></data:top.commentlabelplural></data:post.numcomments></b:else></data:top.commentlabel></b:if></a>

    <a class="comment-link">Comentar (estilo Wordpress)</a>
    </b:if>

  4. Inmediatamente debajo de <b:if cond="data:post.allowComments"> agregamos el siguiente script en javascript:

    <script language='javascript'>
    function popupComment(poid)
    {
    var comuri = &quot;https://www.blogger.com/comment.g?blogID=HERE_GOES_THE_BLOG_ID_NUMBER&amp;postID=&quot; + poid + &quot;&amp;isPopup=true&quot;;

    window.open(comuri,&#39;commentpopup&#39;,&#39;titlebars=0, toolbar=0,scrollbars=1,location=0,statusbar=0, menubar=0,resizable=1,width=400,height=450&#39;);
    }
    </script>

    Tenemos que reemplazar el obvio HERE_GOES_THE_BLOG_ID_NUMBER del código de arriba con el BlogID del blog respectivo. ¿Cómo lo encontramos?, pues bien, cargamos el blog del que deseamos conocer el ID, y con un click derecho en la página elegimos "Ver código fuente" (el nombre y la ubicación de la opción puede variar según el navegador. Chicos, no intenten esto en IE).
    Nuevamente Ctrl+F y buscamos "blogID=". El número que sigue al igual es el BlogID.

    En el script usamos el método "window.open", el que crea una nueva ventana (duh). El primer argumento que recibe (comuri) contiene la URL que armamos en la línea inmediatamente superior. El segundo argumento resuelve el problema 2); ya que le da un nombre propio a la ventana para que podamos volver a llamarla nuevamente y cambiar su contenido.

  5. Un enter mas abajo, tenemos que agregar el link que abrirá el popup llamando al script que acabamos de crear:

    <a class='comment-link' expr:href='&quot;javascript:popupComment(&quot; + &quot;\&quot;&quot; + data:post.id + &quot;\&quot;&quot; + &quot;)&quot;'>

    Noten como al llamar a la función popupComment, estamos pasando como argumento el postID actual correspondiente. De esta manera el link cambiará automáticamente para cada post del blog. Esto resuelve el problema 1).

    Ahora bien, este elemento es un link común y corriente -de acuerdo, un poco más complicado de leer-, pero como todo tag HTML, necesita una apertura y un cierre. El tag <a> tiene tres partes:

    1. <a href="" ... : La apertura del tag, y el destino del enlace en el href.

    2. >Texto del Link: El cierre de la primer parte del elemento y el texto (o imagen u objeto) que convertiremos en Link.

    3. </a>: El cierre del tag.

    Hasta ahora sólo hicimos la primer parte.

    Para la segunda parte, es decir el texto descriptivo del link, tendrán que ustedes tomar una decisión. Pueden o bien dejar los comentarios "por defecto" como popups, o como formulario. En mi ejemplo el texto por default de Blogger dirigirá al popup, y el de formulario será un texto fijo escrito diréctamente en el código de la plantilla (no podremos cambiarlo desde las opciones de "Elementos de la página").
    Agregamos luego el tag de cierre. Veamos:

    <b:if cond='data:post.numComments == 1'>1 <data:top.commentLabel/><b:else/><data:post.numComments/> <data:top.commentLabelPlural/></b:if></a>

    <a class='comment-link' expr:href='data:post.addCommentUrl' expr:onclick='data:post.addCommentOnclick'>Comentar sin popup</a>

    En caso de que quieran hacer al reves, simplemente invertimos el contenido del enlace:

    Comentar con popup</a>

    <a class='comment-link' expr:href='data:post.addCommentUrl' expr:onclick='data:post.addCommentOnclick'><b:if cond='data:post.numComments == 1'>1 <data:top.commentLabel/><b:else/><data:post.numComments/> <data:top.commentLabelPlural/></b:if></a>

  6. Finalmente, todo el bloque de código nos quedaría parecido a esto:

    <b:if cond="data:post.allowComments">

    <script language='javascript'>
    function popupComment(poid)
    {
    var comuri = &quot;https://www.blogger.com/comment.g?blogID=HERE_GOES_THE_BLOG_ID_NUMBER&amp;postID=&quot; + poid + &quot;&amp;isPopup=true&quot;;

    window.open(comuri,&#39;commentpopup&#39;,&#39;titlebars=0, toolbar=0,scrollbars=1,location=0,statusbar=0, menubar=0,resizable=1,width=400,height=450&#39;);
    }
    </script>

    <a class='comment-link' expr:href='&quot;javascript:popupComment(&quot; + &quot;\&quot;&quot; + data:post.id + &quot;\&quot;&quot; + &quot;)&quot;'>

    <b:if cond='data:post.numComments == 1'>1 <data:top.commentLabel/><b:else/><data:post.numComments/> <data:top.commentLabelPlural/></b:if></a>

    <a class='comment-link' expr:href='data:post.addCommentUrl' expr:onclick='data:post.addCommentOnclick'>Comentar sin popup</a>
Guardamos la plantilla, y refrescamos la página del blog para ver los cambios.

Tuesday, September 02, 2008

Google Chrome, ¿un nuevo concepto?

Los mas geeks como yo, seguramente ya habrán bajado, probado, y quedado maravillados con la nueva creación de Google. Algunos seguramente habrán escuchado algo al respecto y otros simplemente pasarán por alto el evento.

Google ha lanzado su propio navegador de internet, Google Chrome; de la misma manera que Internet Explorer, Firefox, Opera y Safari, entre otros; el objetivo sigue siendo el mismo: acercar al usuario a la gran red de redes. Sin embargo, el gigante de internet, ha introducido algunos conceptos interesantes, tal como este video explica:


No me interesa aquí hacer una descripción detallada de todas las nuevas características que tiene, ni especular sobre el futuro de Firefox ahora que tiene competencia de los mismos que financian gran parte de su existencia.

Debo decir, eso sí, que habiéndolo probado tanto en el trabajo como en casa; me he encontrado con algunas sorpresas:
  • Chrome tiene algunos problemas para ser usado detrás de un firewall o proxy que requiera autenticación. Al menos en el trabajo me fué imposible siquiera acceder a varias de las páginas mas elementales, como Gmail, Google Reader, y hasta mi propio blog. De hecho, la página principal de Google cargaba, pero la imagen con su logo no.

  • Curiosamente, a pesar desde que del momento en que uno lo instala, busca importar íntegramente la configuración que el usuario tenga en Mozilla Firefox; a la hora de configurar algunos parámetros de la conectividad a internet, Chrome parece usar algo de IE por debajo:



  • A pesar de que el foco está puesto en la simplicidad, el navegador en sí es realmente muy poderoso y rápido; como la mayoría de las aplicaciones de Google. La interface es intuitiva, simple de manejar, y logra realmente el objetivo buscado: hacer que el usuario se enfoque en el contenido del sitio que está visitando en lugar de en el navegador.
    Chrome manejó sin problemas más de quince pestañas, ocupando apenas dos tercios del total de la memoria que Firefox 3 hubiese demandado; y aún así la velocidad de respuesta es realmente increíble.

    Es extraño por lo tanto que en algunas cosas no se haya trabajado más. Por ejemplo, el corrector ortográfico es bastante rudimentario en cuanto a su flexibilidad, hasta hace falta reiniciar el navegador para cambiar el idioma, cosa que me recuerda la "windows way of doing things". El cuadro de opciones no logra totalmente simplificarle la vida al usuario ya que dudo mucho que alguien que apenas si usa internet para mandar un mail o ver un video en youtube, le interesen opciones como Google Gears o SSL; si bien están localizadas en la pestaña de "Avanzadas", las posibilidades de configuración en general son bastante pobres respecto cualquier otro browser.

  • Algo realmente inteligente fue el sistema de separación de procesos por pestaña. Si una de ellas se cuelga, solo ella se cuelga y no todo el programa. Sin embargo, un pequeño efecto no deseable de este sistema, es que en Administrador de Tareas no tenemos un solo proceso para el programa, sino dos como mínimo, y uno más por cada nueva pestaña que abramos. La inclusión de un Administrador de Tareas en el mismo navegador es una novedad, pero resulta un tanto redundante si a nivel sistema operativo, obtengo casi las mismas prestaciones. Sí es notable la identificación de plugins como procesos separados, algo que a nivel Windows no es posible. Creo que Chrome debería mostrarle a Windows tan solo el proceso padre, y encargarse internamente de sus subprocesos.


En definitiva, soy conciente de que es simplemente una Beta, y que probablemente los que acá menciono y muchos otros errores, problemas e incluso mejoras; deberían estar contemplados para una futura versión final. Mientras tanto, me sigo quedando con Firefox para mi navegación diaria, y Chrome quedará como un juguete nuevo con el que divertirse en horas de tedio.

Wednesday, June 18, 2008

Firefox Download Day: Éxito Total

Como verán, mas de ocho millones de personas se conectaron durante las pasadas 24 horas para lograr un record mundial de bajadas. Se puede considerar que el Firefox Download Day superó incluso las expectativas de la Fundación Mozilla, quienes esperaban humildemente llegar a unos cinco millones, tres más que la anterior versión.

Con fiestas de lanzamiento a lo largo de todo el mundo, Mozilla ha logrado un nuevo hito en la historia:


Y yo he sido parte de ello:

Tuesday, June 17, 2008

Firefox Download Day!

Desde las 14:00 horas Argentina que estoy intentando ser parte de el record de descargas de Firefox; y todos, absolutamente todos los links de la fundación Mozilla están saturadísimos.

Por suerte encontré un par de mirrors que eventualmente me llevaron a la página europea, y haciendo un par de manipuleos para conseguir la versión en MI idioma, acá les dejo el link para la versión 3.0 de Mozilla Firefox, Español de Argentina (es-AR).

Thursday, April 03, 2008

Firefox 3 beta 5 is out!

¡Y lo vieron primero acá! jajaja (o por lo menos no encontré que nignuno de los blogs en mi blogroll lo haya mencionado ya).



Buscando mejorar el rendimiento de Firefox en el Ubuntu que instalé en la compu de mi novia, me encontré con que la nueva versión ya estaba disponible.

A los que quieran probarla, pueden conseguirla acá. En los idiomas que quieran, y para el sistema operativo que más les guste.

UPDATE: INSTRUCCIONES PARA INSTALAR FIREFOX 3 BETA 5 EN UBUNTU:

1) desde una consola, escribimos:
cp -r ~/.mozilla/firefox/ ~/firefox_profile_backup
Esto hará una copia de nuestro perfil actual por si las moscas.

2) Bajar la ultima versión desde el link de arriba y la descomprir el .tar.gz.

3) Mover la carpeta descomprimida a donde quieran. Como es una beta, yo la puse en /opt:
sudo mv firefox /opt/firefox

4) Listo!, si además queremos actualizar el ejecutable a nivel global:
sudo mv /usr/bin/firefox /usr/bin/firefox.old
sudo ln -s /usr/bin/firefox /opt/firefox/firefox

(si /usr/bin/firefox no es donde está el ejecutable, un simple `which firefox` nos dirá donde ;)

Saturday, January 26, 2008

Ingenious Ads: Mozilla Firefox

No pude evitar reirme luego de ver esta publicidad de Firefox:



Y después me preguntan porque no uso Internet Exporer...

Saturday, August 26, 2006

Los extraterrestres son OpenSource!

Para los que no creen que estamos siendo invadidos por hordas de alienigenas.



Lo mejor de todo es que usan FireFox, así que me quedo tranquilo que será una invasión beneficiosa para todos :)