Truco Blender - Mostrar en la pantalla controles de ratón y teclado para hacer capturas de pantalla

Para mostrar en la ventana principal del Blender un dibujo de un ratón que indique los botones que se pulsan es muy útil para cuando realizamos una captura del proceso en vídeo, de manera que las personas que ven el vídeo puedan saber lo que estamos haciendo con más facilidad.

Esto se hace activando un plugin de Blender que viene en la mayoría de versiones por defecto. Es muy sencillo de activar y utilizar, simplemente en la ventada de configuración de las preferencias de usuario "User preferences" (Ctrl+Alt+U), en la pestaña de los plugins "Addons", buscamos el que se llama "3D View: Screencast keys" y lo activamos haciendo clic en el checkbox de la esquina superior derecha.

Para configurarlo y hacer que se muestre, abrimos las propiedades de la ventada donde queremos sacarlo y abajo estarán los botones para configurarlo, como la posición, color, tamaño, etc.

Referencia: Encontrado en este blog.

Plugins útiles en el navegador

La navegación por Internet hace ya mucho tiempo que dejo de ser una actividad lúdica para convertirse en parte integral de nuestro trabajo del día a día. Y como en todos los trabajos, nos apoyamos en herramientas que nos faciliten el trabajo diario de forma que podamos ser más eficientes, más autónomos, más productivos, etc.

Por este motivo los plugins o complementos para el navegador son una parte fundamental en estas tareas. Voy a describir los dos que yo más uso y cómo los uso, por si te pueden resultar de interés; aunque si bien un plugin es una herramienta diseñada normalmente para una tarea específica, hay ciertos aspectos que quizás no se te hayan ocurrido (o quizás se te hayan ocurrido otros usos que a mi no, en tal caso te agradecería que me los comentases).

Plugin para el etiquetado y clasificación de la información
Esencialmente navegamos por Internet para localizar información, como la cantidad de información que hay en Internet es TAN INGENTE, es muy importante que vayamos manteniendo una traza de la información que vamos encontrando, de manera que después podamos recuperarla con facilidad.

Botón de Diigo plugin

Botón de Diigo plugin

Para esta tarea mi plugin favorito es el de Diigo (se usa con su servicio de marcadores correspondiente) y está disponible para la mayoria de navegadores (Firefox, Chrome, IPad, Android, ...). El plugin te sitúa un botón en el navegador que te permite etiquetar la información de la página, subrayar la información que te resulte de interés y guardar una captura de pantalla de parte de la página (entre otras cosas).

En mi caso lo utilizo como servicio de marcadores donde guardo todas las páginas de interés para el tema que esté trabajando, con una determinada etiqueta, y así, si luego he de redactar un informe o trabajo sobre el asunto, tengo a mano el listado de todas las páginas en las que me he apoyado, bien para crear la webgrafía o para poner los enlaces en el propio trabajo.

Etiquetado de una página con el plugin de Diigo

Etiquetado de una página con el plugin de Diigo

Ejemplo de subrayado con Diigo en una Web

Ejemplo de subrayado con Diigo en una Web

Plugin para la comunicación de la información
A menudo cuando estamos navegando encontramos muchas cosas, y suele ser común querer compartirlo o enviárselo a alguien. En este caso depende de los gustos de cada uno, el plugin anterior permitía compartir las páginas con otros usuarios de Diigo, también puede que queramos compartirlo por mail, o en >:) Facebook, pero en mi caso yo soy mucho de compartir por Twitter (a pesar de sus inconvenientes).

Envío de twitt con programación automática mediante Hootsuit

Envío de twitt con programación automática mediante Hootsuit

Para ello utilizo el plugin de Hootsuite (también asociado a su servicio), este plugin se puede conectar también con >:) Facebook, Google+, Linkedin, y un montón más, aunque yo de momento sólo lo uso para Twitter. Con este plugin puedes enviar la página actual que estás viendo en tu navegador (apropiadamente acortada de manera automática) y si quieres le añades el comentario o idea y/o foto que prefieras.

Lo que más me gusta de este plugin es la programación de los twitts; soy de dedicarle poco tiempo a compartir cosas por Twitter, y si las twitteo yo directamente (que también se puede) saldrían todos los twitts a primera hora de la mañana y todos juntos, así que seguramente nadie los vería, porque los twitts irían quedando atrás a medida que otros usuarios fueran publicando otras cosas (esto le pasa a mucha gente). Con la programación de los twitts (además yo utilizo la programación automática, más simple aún!) los mensajes se van enviando a lo largo del día (o días) y me resulta extremadamente práctico.

El envío con programación manual en el plugin de Hootsuit

El envío con programación manual en el plugin de Hootsuit

Plugin WordPress: Mail_Me_If_Link_Broken

En una tarde he escrito este pequeño plugin para WordPress. Tenía muchas ganas de ver el sistema de plugins de WordPress, y he quedado gratamente sorprendido :-), ha sido sencillo, hay bastante documentación de funciones, y mucha información en Google de gente que los ha trabajado previamente (con Coppermine Gallery no hay tanta información).

El plugin
Su funcionalidad es muy sencilla, se me ocurrió hace tiempo, que pensé que sería útil a la hora de gestionar un sitio Web con mucha cantidad de información, tener algún sistema que te permitiera identificar los enlaces rotos. Hace cosa de unas semanas en el trabajo se me presento precisamente esta necesidad, administrando un portal con una cantidad de contenido ingente, hay muchos enlaces que están rotos (especialmente los de los contenidos más antiguos) y era necesario poner a una persona a revisar los enlaces (absurdo, porque como digo la cantidad de contenido es ingente).

Lo primero que pensé fue algún tipo de mecanismo que automatice el proceso, de manera que se conecte a la URL del enlace, y si recibe un error (tipo mensaje 404, 500, y demás) pues me enviara un mail. Pero no me acababa de convencer esta idea, porque en el sistema donde lo pretendía aplicar, había enlaces que enlazaba a una página estática que si funcionaba, pero que lo que fallaba era el contenido que debía mostrar (vídeos flash) por lo tanto ese supuesto código pensaría que el enlace estaría correcto.

La solución que se me ocurrió después es que sea el usuario que está navegando por la Web el que avise; en realidad es el mismo mecanismo que se está utilizando ahora, es el usuario el que nos indica que un enlace está roto, enviandonos un mail y diciendonos que en "tal" página el enlace no vá. Pero esto lo usan poco usuarios, pues poca gente se toma la molestia de mandarte un correo para advertirte de algo que no va en tu Web.

Con el plugin se le simplifica la tarea al usuario, de manera que al pasar el ratón por encima de un enlace, sale al lado un minúsculo botón Botón enlace roto que permite al usuario avisar del comportamiento incorrecto de ese enlace. De manera que para el usuario no hay complicación ninguna. Por otra parte el plugin internamente calcula todos los datos del enlace que presuntamente no funciona y te manda un mail a la cuenta que este configurada en WordPress.

Aspectos a mejorar en futuras versiones:

  • Que la cuenta de correo sea configurable, por si el administrador prefiere recibir el mensaje en otro correo.
  • Preguntar al usuario un captcha o suma sencilla, de manera que se eviten falsos positivos (envíos por error).

Información útil para desarrolladores:

Es el primer plugin que desarrollo para WordPress, pero al final todos los plugins de todas las plataformas se parecen en algunos aspectos. Por ejemplo los plugins para aplicaciones Web, es muy común que tengan algun mecanismo que te permita procesar la llamada a un archivo del plugin, usualmente para procesar una petición AJAX. En este caso esta información no la encontré en la documentación oficial (aunque ahora sé que está, pero no lo vi) sino que la localicé en la página de este programador.

Resumiendolo un poco, para poder realizar una petición a un archivo de un plugin de WordPress, y que este archivo pueda hacer uso de las librerías de funciones y variables que ofrece WordPress, es necesario que la llamada pase por el Core de WordPress, ya que si le haces la llamada directamente a tu archivo, dichas funciones no estarán disponibles (no las habrá cargado).

Para realizar esto son necesarios dos pasos, primero crear (y enlazar a su handler respectivo) la función encargada de procesar la petición a tu archivo, bien sea un código PHP o cualquier otra cosa, en el siguiente ejemplo proceso dos peticiones diferentes, una a un código PHP y la otra para obtener una imagen:

Pero esto no es todo, Worpress por motivos de seguridad no permite el paso de ninguna petición a los plugins a menos que le identifiques claramente las peticiones que debe autorizar. Esto se realiza dando de alta en WordPress (en un array destinado a tal efecto) el nombre de la variable que identificará la petición de tu plugin:

Eso es todo, este último paso por ejemplo no lo tiene Coppermine Gallery (y creo que debería). Por último, las llamadas a tu plugin las puedes realizar con llamadas del tipo:

A continuación se puede descargar el plugin y todo su código fuente, como siempre con licencia Creative Commons :-)

Plugin WordPress Mailme If Link Broken
Plugin WordPress Mailme If Link Broken
mailme_if_link_broken.zip
Version: 1.0
192.3 KiB
62 Downloads
Details...

Plugin Coppermine "Graphic_Keywords_Editor"

Me gusta mucho la galería de fotos Coppermine, considero que es una gran herramienta para poder gestionar todas las fotos que hago, tanto con la cámara como con el móvil. Lo genial de esta aplicación es que las fotos las tengo siempre disponibles en mi servidor, y no sólo eso, sino que familia y amigos también pueden acceder a las fotos, comentarlas y bajárselas si las desean usar; pero todo ello desde una plataforma que este controlada y donde la autoría y propiedad de las fotos siga siendo mía, al contrario que con Facebook que al subir las fotos, estas automáticamente les pasan a pertenecer a ellos. Quizás podría ser interesante utilizar herramientas tipo Flickr, DevianArt o Picasa, pero aunque algunas las he probado, me gusta más mi Coppermine ;-).
Con Coppermine, no pretendo evitar que me copien y/o utilicen las fotos sin consentimiento, simplemente me aseguro no estar "regalándoselas" a ninguna empresa. Además, el hecho es que las fotos en su mayoría, las tengo puestas en galerías de libre acceso, es decir que cualquier persona puede acceder y verlas o bajarlas (y por lo tanto usarlas). Eso no es algo que me preocupe, es más me alegraría saber que alguna persona le gustara tanto alguna de mis fotos que quiera utilizarla, si se da el caso estaría muy agradecido de que me dijera donde la ha utilizado para verlo.
Y por estos motivos, cuando veo algo que echo en falta en Coppermine, pienso si podría haberlo programado alguien, o si no, si podría hacerlo yo y colaborar de esa forma al crecimiento de la herramienta.
Este es uno de esos casos, a mi siempre me ha parecido genial la idea de etiquetar las fotos, porque facilita la tarea de encontrar luego fotos de personas, lugares o las fotos de un viaje concreto. Pero la forma de etiquetar en Coppermine es horrible, ya que hay que ir etiquetando las fotos de una en una, es tedioso, arduo y lo peor es que a menudo se comenten errores (unas veces utilizas una etiqueta con espacios para una persona, y otras veces sin espacios) y luego tienes varias fotos de una misma persona con varias etiquetas diferentes, por lo tanto pierdes la potencia de las etiquetas para localizar las fotos de esa persona.

Por estos motivos he implementado un pequeño plugin que me facilita la tarea de etiquetar mis fotos en Coppermine. Etiquetar las fotos en Coppermine ahora es más fácil y eficiente. Las características que cumple el plugin son las siguientes:

  • Se pueden seleccionar varias fotos simultáneamente para etiquetarlas.
  • Se pueden aplicar varias etiquetas simultáneamente a una o varias fotos.
  • La selección de fotos a etiquetar se realiza con el ratón y de manera similar a como se trabaja en un explorador de archivos en el PC; es decir se pueden seleccionar fotos pinchando y arrastrando, se pueden añadir fotos a la selección usando la tecla "control" (Ctrl), se puede de-seleccionar fotos haciendo clic nuevamente en ellas, etc. En cualquier caso aunque el funcionamiento se ha intentado que sea lo más similar posible al del explorador de archivos, hay algunas funcionalidades que no son iguales por limitaciones de la librería utilizada (JQuery v1.9)
  • Ver las etiquetas de cada foto al pasar el ratón por encima de la misma.
  • Ofrecer una lista de las etiquetas utilizadas anteriormente al escribir la etiqueta (el típico autocompletar).
  • Permitir operaciones de añadir etiquetas a una foto, eliminar etiquetas a la foto y reemplazar las etiquetas de una foto (esta última operación sustituye todas las etiquetas de golpe, quizás para una próxima versión mejore esta operación).
  • Cada usuario sólo puede editar las etiquetas de sus fotos; con excepción de administrador que puede etiquetar lo que quiera.
  • Permitir localizar todas las fotos SIN etiquetas; esto lo hace buscando todas las fotos con el campo de etiquetas vacio, y acto seguido les pone una etiqueta especial "_noKeywords_" de manera que se puedan localizar mediante la búsqueda normal de Coppermine.
  • Multilenguaje (actualmente español e inglés).

A continuación dejo un vídeo donde se ve el funcionamiento y la idea:

Limitaciones actuales:

  • Sólo funciona con el tema por defecto ("curve") de Coppermine; esto de debe a problemas con el hook para añadir botones.
  • En algunas tablet/móviles no funciona bien el autocompletar.

Comentarios útiles para desarrolladores:
La idea inicial del plugin era que simplemente permitiera seleccionar varias fotos con el ratón pinchando y arrastrando, esto fue más o menos sencillo de implementar con la funcionalidad "selectable" de JQuery UI; el problema vino al intentar utilizar la librería JQuery en Coppermine porque ya tiene una versión de la misma, pero es antigua (1.3 creo) y para usar el "selectable" necesitaba la 1.9 (la que había usado en las pruebas), tras investigar me encontré que una posible solución era cambiar el nombre de la función JQuery, el conocido "dollar" $(' ... '); para ello utilicé la función "noConflict":

Mediante "noConflict", podemos utilizar varias versiones de JQuery en una misma aplicación sin que se estorben unas a otras, básicamente lo que hace es que a cada versión de JQuery a utilizar le asigna un nombre diferente, en mi caso utilicé "jQuery19" como puedes ver. Esa línea la tienes que poner al final de la declaración de la librería de JQuery; y cada vez que en tu código quieras utilizar esa versión de JQuery simplemente llamas a JQuery con el nombre en cuestión en lugar del dollar, como puedes ver en el siguiente ejemplo:

Una vez que logré hacer funcionar la selección de imágenes en Coppermine sin problemas de conflictos entre versiones de JQuery, tenía otro problema, que fue el CSS necesario para que las fotos seleccionadas se vieran destacadas. El problema era que las etiquetas CSS que yo daba a las imágenes destacadas se veían sobrescritas por el CSS propio del Coppermine, por lo que no tenían efecto. Esta tontería me costo unas pocas horas de repaso de teoría del HTML, HTML5 y de las Hojas de Estilo en Cascada (no hay mal que por bien no venga) hasta que recordé que en CSS para conseguir sobrescribir una propiedad que está declarada después de la tuya, lo que puedes hacer es ser más específico en el selector. Resumiendo, que tenía que utilizar "td.ui-selected" en vez de ".ui-selected" en el selector para darle las propiedades a la foto seleccionada (si te quedan dudas, ya sabes, a recordar la teoría del CSS ;-)). Y por fin fui capaz de seleccionar fotos...

Selección de fotos con el mi plugin para Coppermine

Selección de fotos con mi plugin para Coppermine

Después implementé las funciones que añadían o eliminaban etiquetas en el servidor. No fue complicado pues hay bastante documentación para conocer el funcionamiento de los plugins en Coppermine, su BD, tablas y la forma de acceder y tocar en la BD.

Llegado a este punto tenía una primera versión funcional, pero al utilizarla me di cuenta que carecía de cosas importantes para que me fuera realmente útil, entre ellas:

  • La posibilidad de ver las etiquetas que tenía cada foto que estaba etiquetando
  • Ver las etiquetas previas que había utilizado con anterioridad en otras fotos (autocompletar).

La primera cuestión se solucionó más o menos rápido, pero para la segunda, después de investigar, encontré la librería "select2" basada en JQuery, pero no se puede decir que tenga mucha documentación (a día de hoy poco más de 3 ejemplos), y me costo lo suyo hacer que funcionara (mucho buscar en Internet y prueba y error). Cuando conseguí que funcionaran las pruebas, resultó que al añadir el código al plugin del Coppermine no funcionaba nada, tras más quebraderos de cabeza, resultó que me estaba pillando (lógicamente) la JQuery del Coppermine en vez de la mía (la 1.9); tenía que modificar la librería para que usara la versión nueva, para ello sustituí todas las llamadas a la función JQuery en la librería Select2 por la llamada a la mía ("jQuery19"); esto implicaba sustituir todos los "dollar", todas las definiciones de nuevas funciones y todas las llamadas (así dicho parece fácil, que lo es, pero la dificultad estuvo en darse cuenta del fallo y después en encontrar todas esas llamadas). Cuando todo funcionó ya tenía el autocompletar de las etiquetas, y al utilizarlo, ya sí empezaba a resultarme un plugin útil.

Muestra del autocompletar del plugin para Coppermine

Muestra del autocompletar del plugin para Coppermine

Con esta versión he organizado bien mis fotos, he realizado pruebas en la tablet y también funciona, pero con el uso, me han surgido nuevas necesidades. Concretamente la de localizar todas las fotos SIN etiquetas. Esto ha sido fácil de implementar, apenas me ha llevado una tarde. De esta forma ya puedo localizar rápidamente todas las fotos que aún no les he dado una etiqueta.

También comentar que NO he podido hacer que el botón que activa/desactiva la edición de las etiquetas se ponga mediante el uso del hook que Coopermine tiene para ello, el "sys_menu" ni con el "sub_menu". Desconozco porqué, pero cuando he tratado de buscar solución, toda la referencia que encuentro es para la creación de temas. En un futuro tengo que tratar de arreglar esto, porque tal y como está montado, el plugin sólo funciona con el Coppermine con el tema por defecto "curve"; si está usando otro tema, el botón de activar/desactivar no sale.

Después de todo esto, comentar que estoy abierto a nuevas ideas que puedan hacer de Coppermine un herramienta más útil aún :-).

Graphic Keywords Editor plugin for Coppermine
Graphic Keywords Editor plugin for Coppermine
graphic_keywords_editor.zip
Version: 1.0
244.9 KiB
38 Downloads
Details...

Plugin MultiPicFilmStrip para Coppermine Photo Gallery

En mi galería de fotos montada con Coppermine he realizado varios cambios y modificaciones, pero siempre me quedo con el amargo regusto de hacerlo deprisa y corriendo, sin dedicarle el tiempo que se merece, por ello hace un par de semanas me mire el sistema de plugins de esta galería de fotos. Me sorprendio, es fácil y sencillo, en escasos minutos tienes tu primer plugin de pruebas instalado, configurado y funcionando. Después de esa grata sorpresa monte un plugin que modifica ligeramente el comportamiento de la tira de fotos que sale debajo de la vista de imágenes.

El comportamiento por defecto de la tira de imágenes de Coppermine es avanzar una imagen por cada vez que hacemos clic en la flecha de avanzar o retroceder, y resulta un poco molesto para mi gusto tener que estar haciendo clics uno tras otro para moverme por varias imágenes. Con el plugin que he creado, esa tira de imágenes mostrará seis nuevas imágenes cada vez que hagamos clic en la flecha correspondiente.

Para hacer funcionar el plugin únicamente necesitas descargar el archivo, descomprimirlo y subir la carpeta "moveMultiplePicsOnFilmstrip" a la carpeta plugins de tu Coppermine. Después lo activaremos desde la configuración de plugins de Coppermine, no hay que configurar nada, y desde ese momento, las fotos de la tira de imágenes avanzará seis fotos por cada clic que realicemos. He creado un pequeño vídeo para ver el comportamiento antes y después de la activación del plugin.

Información para desarrolladores:

Hacer un plugin para Coppermine es extremadamente sencillo, me ha sorprendido gratamente, y si sueles meterle mano a tus aplicaciones web para que se comporten exactamente como tu quieres, en el caso de esta galería de fotos creo que merece la pena dedicarle unos minutos para entender el funcionamiento de su sistema de plugins y hacer que tus modificaciones sean reutilizables.

En mi caso tuve un pequeño problema, y es que el código Javascript que hace funcionar el comportamiento de la tira de imágenes o filmstrip, es el archivo "displayImage.js", y por algún motivo, este archivo siempre es el último en añadirse al array de códigos Javascript de la galería. Ello me provocaba que los cambios que yo hacia en el comportamiento de código Javascript se machacaran con el comportamiento original. Una primera solución evidente es tocar el archivo Javascript original, pero eso es una solución que requería de acciones extra aparte de la simple instalación y activación del plugin. Es decir era una solución poco elegante y bastante chapucera, por ese motivo, tras pensarlo un poco más se me ocurrió una solución mejor; lo que necesitaba era desactivar el handler de JQuery al evento clic de la flecha, pero para eso tenía que ejecutar el "unbind" después de que Coppermine cargara todos los Javascript. Esto lo solucione haciendo uso de una llamada a mi función con un delay no bloqueante como puede verse a continuación.

La función "nextPic(false)" es una copia de la función original que se ejecutaba con el clic, solo que modificada para que pueda llamarse varias veces seguidas. Concretamente la función se auto-llama a si misma cinco veces (más la llamada original, seis) provocando el avance consecutivo de seis fotos.

En un futuro realizaré una segunda versión de este código que en la activación del plugin pregunte el número de fotos a avanzar, de forma que se pueda configurar fácilmente si se desea que avancen más o menos fotos.

Por último comentar que un buen inicio para trabajar los plugins es ver como están creados otros plugins, puedes consultar muchos aquí. Y para comenzar el desarrollo puedes empezar con la propia documentación que ofrece Coppermine aquí.

Plugin Coppermine MoveMultiplePicsOnFilmStrip
Plugin Coppermine MoveMultiplePicsOnFilmStrip
moveMultiplePicsOnFilmstrip.zip
Version: 0.1
6.1 KiB
72 Downloads
Details...