Icedroid: VLC Remote [beta]
Buenas tardes a tod@s,
La publicación de esta tarde está relacionada con una aplicación con un gran servicio para aquellos que utilizan VLC. Yo utilizo mucho este aplicativo para visualizar videos en versión original y sus substitulos, y con esta aplicación de Android que os presento podremos controlarlo desde el móvil gracias a una conexión WI-FI.
Esta aplicación está disponible en el Market de nuestro terminal y es gratuita. Ha estado probada en un Ubuntu 9.04, con la versión VLC que podemos encontrar en su mismo repositorio. A continuación os dejo una captura para que podáis ver lo sencilla que resulta su interfície:
Configuración ordenador
Para poder realizar la conexión con el Remote del móvil, debemos tener activada la Interfície Web del VLC. Para ello vamos al menú ‘Tools‘ o ‘Herramientas‘ del VLC, nos situamos encima de ‘Add interface‘ y seleccionamos Web Interface. Aseguraros de que el firewall no os está interfiriendo en la conexión con el dispositivo, en el caso de que lo tengáis.
Debemos dejar la aplicación VLC abierta para que el terminal pueda detectarlo.
Configuración terminal
Conectamos el terminal a la red WI-FI donde se encuentre el ordenador al que queremos conectarnos. Esto podemos hacerlo desde el mismo VLC Remote, en el apartado ‘Settings‘:

Remote in action!
Una vez ya se ha obtenido la dirección de la red y el VLC Server como consecuencia de haber dejado la aplicación en nuestro ordenador abierta, ya podemos iniciar el control desde el terminal. Con la tecla del terminal de retroceso (una flecha dirección para atrás), volvemos a la pantalla principal del programa para poder cargarun vídeo. Si volvemos a la primera imagen que se ha adjuntado en este post, iremos al botón ‘eject‘ para abrir el directorio de archivos del ordenador.

Una vez seleccionado el vídeo, se cargará en nuestro ordenador y desde el móvil podremos controlarlo como mando a distancia. Entre otras cosas podremos controlar el volumen, visualizar el vídeo en pantalla completa y situarnos en el minuto de reproducción que queramos.
Espero que os guste y la disfrutéis!
Un saludo desde el zulo, pingüinos, androides y manzanitas world!
SDK 1.6 de Android, con Ubuntu 9.04 y mi terminal HTC Magic
Posted by laura in Android, Herramientas, Programación, Ubuntu on October 20, 2009
Estoy pensando en hacer un apartado en este mismo blog sobre aplicaciones para sistemas Android. Desde hace unos cuantos meses me encanta pasarme algún tiempo del día probando aplicaciones que puedan llegar a ser útiles en una situación concreta; pienso que sería un apartado muy interesante tanto como para el equipo de Iceberg, como para los que tienen o tendrán un terminal con este sistema.
Con la llegada de la versión 1.6 del sistema, la Donut, se abrió para los desarrolladores la nueva versión del SDK relacionada. Una de las cosas que quiero llegar a hacer en un futuro, próximo espero, es llegar a hacer alguna aplicación… aunque de momento solo me lo he instalado para probar sus herramientas y elaborar las posibles capturas de pantalla que requieran las diferentes publicaciones sobre aplicaciones Android. En el presente post, os presento las ideas que he ido recopilando para permitir la’ sincronización’ entre un sistema Ubuntu 9.04, el SDK versión 1.6, y un terminal (en este caso, HTC Magic).
1- Lo primero de todo es tener en cuenta que se debe tener activada la opción Depuración USB de vuestro terminal. Para ello, seguiremos los siguientes pasos:
Ajustes->Aplicaciones
Dentro del menú Aplicaciones, accederemos al apartado Desarrollo, y allí encontraremos la opción que debemos activar. Esta opción es muy importante, ya que sin ella el dispositivo no será reconocido como tal en el ordenador.

2- Una vez activado,vamos a descargar el SDK de la página oficial de desarrolladores de Android (si no lo tenemos aún). Evidentemente, el paquete que más nos interesa en este caso es el compatible con Linux. Descomprimimos el archivo, y colocamos la carpeta relacionada allí dónde se quiera; como por ejemplo en una carpeta llamada Proyecto dentro de Home Folder (/home/proyecto)
3- Una vez descargado vamos a seguir los siguientes pasos publicados en UnAndroideenVodafone.
- Ejecutamos como root el siguiente comando:
Con este comando se genera un archivo que almacenará las reglas del dispositivo que utiliza Android.
NOTA: Si una vez acabados todos los pasos la cosa no funciona, se recomienda guardar este archivo con un número de regla diferente a 51. Estos son números pertenecen a la prioridad con la que son ejecutadas varias reglas, y es posible que vuestro sistema operativo ya tenga alguna instrucción número 51. Cada vez que cambiemos este archivo se recomienda reiniciar el sistema para que la configuración se haga correctamente.
- El paso siguiente es escribir lo siguiente en el terminal:
- Para saber si todo ha funcionado correctamente hemos de situarnos en la carpeta ‘tools‘ del SDK. Para ello, ejecutaremos una línia parecida a la siguiente:
Ejecutaremos la herramienta ‘adb‘ por el terminal, para comprovar que el dispositio ha sido reconocido:
Esto nos devolverá el listado de devices que se han encontrado. Si todo ha funcionado correctamente aparecerá algo parecido a ésto:
* daemon started successfully *
List of devices attached
HT*********** device
Capturas de mi HTC
Para poder elaborar capturas de mi propio HTC, utilizaremos la herramienta que nos aporta el SDK llamada ddms (en /tools- para ejecutar, escribir en un terminal ./ddms). Una vez abierta la herramienta, veremos algo parecido a esto:
Para realizar una captura iremos al menú ‘Device‘, y seleccionaremos ‘Screen Capture‘. Nos aparecerá la siguiente ventana, dónde se permite el almacenamiento de la captura en nuestro ordenador.
Espero que en algún momento os sea útil.
Esto es todo por hoy desde pingüinos, androides y manzanitas world!
Mi Donut
Posted by laura in Android, Open Source on October 20, 2009
Sin mucho tiempo para actualizar, de momento, os comparto el vídeo de la página oficial de Android con algunas de las nuevas características de la nueva versión Donut, la 1.6. Esta mañana, sobre las 6:30 de la mañana, ha saltado la notificación para instalarlo en mi terminal Magic. No lo he podido trastear mucho, pero con lo poco que he visto solo puedo decir: ‘chapó’. Estoy muy contenta y a la vez eufórica.
Ésto hace plantearnos curiosidades en relación a la versión 2.0. Si con una ‘mini actualización’ (de la 1.5 a la 1.6) consiguen esto… ¿Qué pasará cuando presenten Eclair? Ya tengo ganas de verlo.
Android 1.6 features, por android.com
Un saludo desde el zulo, pingüinos y manzanitas world! aunque quizás hace tiempo también debería haber incluido a los androides!
Google Sites es una buena herramienta
Buenos días a tod@s,
Llevo dos días probando las opciones que nos ofrece Google Sites para la creación de sitios online; he empezado un pequeño proyecto con la web corporativa de la empresa para descubrir su funcionamiento. El post de hoy irá dedicado a este tema en concreto y compartiré algunas recomendaciones personales.
Google Sites fue un servicio que surgió en 2008 para reemplazar al que ya ofrecían con Google Page Creator. La orientación inicial de Google Sites fue permitir la creación de sitios online de colaboración, como por ejemplo wikis, intranets, seguimientos de proyectos o páginas de colaboración entre varios usuarios. Por tanto Google Sites no estaba pensado para crear páginas web (corporativas, personales, etc), aunque los valores añadidos últimamente por el equipo de Google indican que con el tiempo pueden inclinarse a favor de esta opción: como por ejemplo, podemos destacar la inserción de un reproductor de Youtube para compartir vídeos o la compartición de Álbumes web enteros de Picasa.

Después de estos días de investigación y testeo de la aplicación he llegado a la conclusión de que, por el momento, no utilizaremos este servicio para crear nuestra web corporativa. Y digo por el momento, porque realmente es un servicio que aún debe especializarse y crecer más y hoy en día permite, entre otras cosas:
- Una buena integración con varios y ÚTILES servicios Google (Mail, Calendar, Youtube, Picasa, Apps, Docs…)
- Una interfície fácil de utilizar, muy parecida a la de Google Docs.
- Compartición de archivos adjuntos sin necesidad de alojarlos en ningún web externo.
- Integración de Gadgets Públicos ofrecidos por Google (los que podemos encontrar si utilizamos google.com/ig).
- Seguimiento de todos los cambios realizados en el sistema, tanto en documentos como en páginas publicadas.
- Retocar la estructura del contenido (inserción de columnas, barras,…) y elaborar plantillas de páginas.
(…)
Así que en conclusión, Google Sites es una buena alternativa para elaborar aquellos sitios que necesitemos la colaboración de un número de usuarios pero se queda un poco corto para crear otra tipología de páginas web. Hace tiempo leí un post publicado en Genbeta sobre los peores servicios de Google, y éste era uno de ellos; discrepo al matizar, que es una buena herramienta para lo que tiene que hacer (y por no decir, bastante completa en funcionalidades). En ésto Google, sabe bien lo que hace.
Para terminar, comentar un par de cosas que serían interesantes que se mejoraran: permitir la integración y modificación de CSS y permitir realizar un site multilingüe. El tiempo lo dirá.
Un saludo desde el zulo, pingüinos y manzanitas world!
iBegin Share VS Add to Any, plugins para Wordpress
Posted by laura in Programación, Web on October 14, 2009
Buenos días apreciados lectores,
Hoy me he despertado pensando en que no tenía ningún plugin en mi querido Wordpress para compartir mis publicaciones de manera rápida. De toda la lista que hay, he encontrado estos dos que me han llamado la atención. Os los presento a continuación.
- Add to Any: es una extension bastante completa, tanto en opciones de configuración (color mediante una gran paleta HTML, forma del botón…) como en servicios que ofrece (una lista interminable que también puede configurarse su visualización). No es necesario clicar sobre el botón para desplegar las opciones. (i sí clicáis, os llevará a la página del proyecto -esto sí que no me gusta-)

- IBeginShare: es un plugin menos completo -sobretodo en temas de configuración- que el anterior, pero permite importar el contenido de un bloc a PDF, a WORD (como .doc), y permite su impresión directa.

Las dos opciones son bastante interesantes, pero yo me quedo con la primera por ser más configurable, más funcional en la nueva versión actualizada de Wordpress (la 2.8.4.), y porque no decirlo…más bonita…
. Una contra es que cuando genera los enlaces, mantiene una marca con el nombre del plugin -pero eso es un tema que se podrá arreglar en breve…muajajaja-.
NOTA: los dos pueden instalarse desde el panel de administración de vuestro Wordpress.
Un saludo desde el zulo, pingüinos y manzanitas world!
Generación XML mediante PHP5, XMLWritter
Posted by laura in Open Source, Programación, Web on October 13, 2009
Buenas noches a tod@s!
El motivo de la publicación de hoy es la necesidad que hemos tenido de generar un XML con la lista de contactos de la que hablábamos el otro día (aquí y aquí), y el lenguaje escogido es el que utilizamos normalmente: PHP5. El método que os presentaré es muy sencillo y ha sido compuesto con funcionalidades relacionadas con XMLWriter (propia de PHP5).
El listado de contactos importados de una cuenta de Gmail por ejemplo, es guardado en un array. Dicho array es pasado como parámetro del método que presento a continuación y dentro de él, se genera el XML. Tal que así:
$xml = new XMLWriter;
$xml->openMemory();
$xml->startDocument(‘1.0′, ‘UTF-8′);
$xml->startElement(‘contacts’);
foreach ($contacts as $email => $name) {
$xml->startElement(‘contact’);
$xml->startElement(‘user’);
$xml->text($name);
$xml->endElement();
$xml->startElement(‘mailbox’);
$xml->text($email);
$xml->endElement();
$xml->endElement();
$xml->writeElement(‘br’, ”);
}
$xml->endElement();
$xml->endDocument();
echo $xml->outputMemory();
}
NOTA: $xml->writeElement(‘br’, ”); puede eliminarse ya que no debería formar parte del xml. Pero de esta manera podréis ver si os muestra por pantalla todo el listado correctamente. Lo he utilizado para listar contact(user+mailbox) uno debajo de otro.
Esta solución ha sido ideada después de ver varias documentaciones y páginas web, y os comparto la que ha sido más importante aquí. Cómo en todo lo relacionado con este mundillo, no hay una sola manera (más eficiente o menos) para hacer las cosas y seguro que podéis encontrar muchísimos scripts por ahí, pero espero que os sea de ayuda igualmente. Almenos para que véais por donde podéis empezar a probar.
Para más información sobre las diferentes funcionalidades de XMLWritter, os comparto el enlace de la documentación de PHP que habla sobre ello. Y en el caso que tengáis soluciones mejores, no dudéis en compartirlas aquí también.
Un saludo desde pingüinos y manzanitas world!
Problema con OpenInviter. Fatal error: Call to a member function isEmail() on a non-object in…
Posted by laura in Programación, Web on October 9, 2009
Fatal error: Call to a member function isEmail() on a non-object in… es un error que ha estado dando vueltas por mi cabeza desde ayer, y gracias a una respuesta del foro oficial de la ‘herramienta’ he podido dar una vuelta más al asunto.
Uno de los problemas que teníamos era que OpenInviter trabaja con SQLite, y si no se tiene dicha extensión instalada en el sistema no es posible modificar algunos archivos sqllite con los que trabaja. No sé hasta que punto es esto bueno o no, pero aquí os dejo la posible solución publicada por este usuario:
Si accedemos al archivo conf.php encontraremos una serie de atributos; debemos buscar aquellos que sean ’state’ y ‘update_files’ cuyo valor es TRUE y cambiarlo a FALSE (estos dos atributos son los que se encargan de la parte SQLite), o en cualquier caso habilitar dicha extensión SQLite y dejar dichos valores como TRUE.
Otro de los problemas era que debemos eliminar, después de haber sido ejecutado, el archivo postinstall.php. Aún desconozco el uso real de dicho archivo, pero así te lo recomiendan en algún punto de la documentación. Con un poco de tiempo quiero investigar un poco más en ello.
Con estos dos problemas solucionados, ya tenemos otro tipo de sistema de importación de contactos de cuentas de GMAIL aunque también probaremos, con OpenInviter, las otras alternativas (importación de contactos de YahooMail, AOL, MSN, LinkedIn o Plaxo -wow
-).
Esto es todo, de momento, desde el zulo, pingüinos y manzanitas world!
¿CURL habilitado?
Posted by laura in Programación, Ubuntu, Web on October 8, 2009
Voy a compartir un truquillo que he encontrado por ahí, para poder saber si tenemos la extensión de PHP5 CURL corriendo en nuestro sistema. Podemos añadir la siguiente sentencia en nuestro archivo de prueba .php, para luego ejecutarlo allí dónde queramos probar la extensión.
Si no está disponible, var_dump no pintará nada por pantalla y saltará un error sobre la función curl_version().
Esto ha sido sacado de la siguiente página web y me ha servido para realizar algunas operaciones en nuestro servidor que requerían de dicha extensión.
¿Cómo ver si está habilitado sobre un entorno Ubuntu?
Debemos proceder a consultar el archivo de configuración de php que tengamos en nuestro sistema. En mi caso, dicho archivo se encuentra dentro de /etc/php5/conf.g/ y se llama curl.ini. Si visualizamos dicho archivo:
Veremos las siguientes líneas si está habilitado:
extension=curl.so
En el caso de que delante de extension=curl.so haya un símbolo #, procederemos a borrarlo (NOTA: # es símbolo de comentario, por lo tanto es como si no estuviera escrito y no se ejecuta).
Un saludo desde el zulo, pingüinos y manzanitas world!
Importación de Contactos de Gmail mediante Zend Framework
Posted by laura in Open Source, Programación, Web on October 7, 2009
En el post de hoy voy a hablar sobre la importación de contactos de Gmail y os presentaré una pequeña solución que utiliza tokens de seguridad en vez de la introducción de cuenta y contraseña de los usuarios. Es una solución funcional, ya que aún está por maquetar y generalizar pero prefiero publicarla antes de que se me olvide. Por temas de trabajo debo dejarla un poco de lado.
El Zend Framework no da soporte a la API de Google Contacts, de momento, así que parte del trabajo que se había realizado para la integración de Youtube y Picasa no servía de mucho -en principio-. He leído en algún foro del Framework que se está trabajando en este nuevo módulo de Zend_GData, pero aún no hay una fecha de salida. Llegados a este punto, no ha quedado más remedio que pasar unas cuantas horas navegando por la red para poder encontrar alguna solución.
La primera de ellas apareció en este post. Después de realizar nuevas clases y aprender un poco el funcionamiento de algunas funciones cUrl, no he conseguido hacerla funcionar finalmente por temas de autentificación y el token de seguridad. Estoy a la espera de recibir un mensaje del desarrollador a ver si nos puede echar una mano en el asunto.
La segunda de ellas apareció de una idea que tuve relacionada con el siguiente post. Del sistema que ya se había montado para Youtube y Picasa se podían añadir unas nuevas operaciones al objeto Zend_GData:
$query = new Zend_Gdata_Query(“http://www.google.com/m8/feeds/contacts/$username/full”);
$feed = $gdata->getFeed($query);
$entries = $gdata->retrieveAllEntriesForFeed($feed);
En nuestro sistema, $client sería un objeto del tipo Zend_Gdata_HttpClient al que le hacemos un set de las cabeceras necesarias para la conexión con los sistemas Google, las llaves privadas y el token de seguridad provisto. Para más información sobre esto, podéis consultar el post de Xavi dónde se explica el proceso que seguimos para sincronizar con Youtube y Picasa. Os comparto el código del método que nos genera dicho objeto $cliente:
$fclient = new Zend_Gdata_HttpClient();
$fclient->setHeaders(“X-GData-Key: key=”.’google_key’);
$fclient->setAuthSubPrivateKeyFile(‘path-to-keys’,null, true);
$sessionToken = Zend_Gdata_AuthSub::getAuthSubSessionToken(trim($singleUseToken),$fclient);
$fclient->setAuthSubToken($sessionToken);
return $fclient;
}
Para terminar os comparto el siguiente enlace que será la tercera solución que probaremos. Como se puede ver, es una clase llamada Open Inviter escrita en PHP5 que permite importar contactos de diferentes cuentas y aplicaciones.
Vamos allá!!!
Un saludo desde pingüinos y manzanitas world!
Crear diferentes estilos de página para un mismo documento con OpenOffice
Posted by laura in Open Source on September 2, 2009
Buenos días a tod@s!
En el post de hoy voy a explicar unos pasos sencillos para poder crear diferentes estilos de página para un mismo documento. Quizás no sepáis de qué estoy hablando, pero vamos a ponernos en situación:
Seguramente alguna vez os hayáis encontrado en la situación de tener varios archivos para un mismo documento. Es decir, un archivo para la portada y otro para el documento en si (índice y demás elementos). Muchas veces incluso es necesario insertar portadas internas en el documento para separar diferentes apartados del mismo: en este caso, se llega a tener un archivo con cada apartado, numeradas manualmente, y con la portada externa y las externas en otro buen numero de archivos aparte. Incluso hay veces que se necesita conseguir diferentes cabecera o pies de página, por cada sección diferente del documento.
Estoy segura de que alguna vez os habéis encontrado en alguna de estas situaciones. Y si aún no ha sido así, agradeceréis este post con el tiempo
. El truco está en los “saltos manuales”, en inglés (el idioma de mi OpenOffice) Manual Break.
Crear un nuevo estilo de página
Primero de todo hay que definir qué estilo de página queremos insertar en nuestro documento, para ello nos vamos hasta Styles and Formatting tal y como aparece en la siguiente imagen:
Aparecerá un nuevo menú flotante como el siguiente:
Los diferentes iconos de la parte superior muestran sobre qué tipo de elemento podemos establecer o crear un nuevo estilo. De izquierda a derecha: Paragraph Styles (estilos de párrafo), Character Styles (estilos de carácteres), Frame Styles (estilos de ventana -por ejemplo las que contienen fórmulas u objetos OLE), Page Styles (estilo de página), List Styles (estilos de lista). Como habréis imaginado lo que nos interesa para este post es la opción Page Styles por lo que la seleccionamos y nos aparece un listado de todos los estilos que se crean por defecto. Vamos a definir un nuevo estilo de página: nos colocamos sobre cualquier elemento del listado y clicamos con el botón derecho, seleccionamos New.
Vamos a crear una portada intermedia, que pueda colocarse para separar capítulos de un mismo documento. No necesitaremos ni cabecera ni pie de página pero si añadiremos una imagen de fondo (así podremos escribir encima el título de cada capitulo nuevo sin que se desmonte la página). Lo primero de todo es introducir un nombre al nuevo estilo, como por ejemplo “Portada interna”; establecemos que el siguiente estilo que se cargará después de la portada interna en el documento sera el estilo definido como Default (por defecto) por OpenOffice.

Por defecto la cabecera y el pie de página están desactivados para los estilos que se crean nuevos, es por eso que este ejemplo no los tocaremos. Si necesitáis diseñar diferentes cabeceras, por ejemplo diferentes para cada capítulo con el nombre del mismo, o si necesitáis numerar nuevas páginas que creáis solo tendréis que trabajar desde las pestañas Header y Footer. Veréis que dentro de estas pestañas encontraréis un botón ‘More’ desde dónde se puede acceder a más propiedades.
Como hemos dicho, vamos a establecer una imagen de fondo. Para ello vamos a la pestaña Background. En la imagen siguiente se muestran las opciones que se podrían seleccionar. Es importante, sobretodo marcar como AS GRAPHIC el tipo de background que queremos incluir; si no se selecciona así no se podrá añadir una imagen. Seleccionamos en nuestro sistema la imagen que queramos, y la incluímos; ésta se previsualiza en la parte derecha de la ventana y podemos configurar su situación.
Si fuera necesario cambiar otras características del estilo, las relacionadas con el borde de la página o con los márgenes por ejemplo, sólo tenemos que navegar por las diferentes pestañas y configurar las opciones a nuestro gusto.
Hasta aquí la primera parte de este post.
Insertar una nueva página con el estilo definido
En esta segunda parte del post vamos a explicar como insertar una página nueva con el formato que se ha definido en el punto anterior. Para ello, lo primero que tenemos que hacer es colocarnos en la página anterior de dónde queramos colocar la nueva y nos vamos al menú Insert y accedemos a Manual Break. Manual Break es un salto de lista, de columna o de página pero que permite cambiar el estilo del elemento siguiente al salto; por ejemplo, si hacemos un salto de página manual el estilo de la página siguiente al salto podrá ser diferente al de la página que se encontraba antes.
Como vemos en la siguiente imagen, seleccionamos la opción Page Break y establecemos que el siguiente estilo sea “Portada interna“. Aceptamos.
Veremos que nos ha insertado nuestra nueva portada interna. Es importante que después de haberla introducido hacer un salto de página, aunque sea automático, para volver al estilo de página que se estaba utilizando en la redacción del documento. Para hacer un salto automático podemos simplemente combinar la teclas Ctrl+Intro de nuestro teclado.
Ahora ya sabemos insertas nuevas páginas con diferentes estilos en el mismo documento. Otro día os enseñaré a cambiar las cabeceras y los pies de página, y conseguir que éstos sean correlativos.
Un saludo desde pingüinos y manzanitas world!




