Saltar al contenido

Año: 2011

K-9 Mail excelente aplicación de correo para Android

Una de las cosas que mas aprecio de los teléfonos móviles, es la posibilidad de chequear en todo momento el correo electrónico, pues es el medio mas eficaz de comunicarse conmigo y el mas usado para emergencias (en mi caso). Había probado por varios meses en Android usar la aplicación de Gmail para mis cuentas de correo con Google Apps (personal, spam y trabajo) y una de skatox.com usando la aplicación de correo incluida en el SO. Como la de Gmail no me gustó por su lentitud, imposibilidad de manejar varias cuentas al mismo tiempo (hay que cambiarse de cuenta para leer los correos o enviar), opté por usar la versión web que es buena pero gasta muchos datos de internet.

Leyendo, descubrí K-9 Mail una aplicación de código abierto para gestionar el correo electrónico. Me ha gustado mucho para revisar el correo por su simple interfaz, buena forma de mostrar los correos con HTML (tiene soporte para mostrar una version ajustada al ancho de la pantalla a diferencia de las otras), tiene tareas para sincronizar el correo y elegir si todo el tiempo o sólo cuando este en segundo plano, horas para no anunciar notificaciones de correo (en la noches mientras estamos durmiendo), manejo de distintas identidades (nombre a mostrar, firma, correo a responder, entre otros) y mas.

Pantall Principal de K-9
Pantall Principal de K-9
Redacción de un correo con K-9
Redacción de un correo con K-9

La configuración de las cuentas fue algo sencillo gracias a su asistente (me recordó al de Thunderbird), colocas la dirección de correo e intenta probar las conexiones posibles para evitar introducir configuraciones manuales, las cuales son desconocidas para la mayoría de usuarios (también puedes definir cuales conexiones usar).

Para leer el correo, puedes leer cada cuenta por separado o como me gusta: una bandeja unificada (como Thunderbird). La ventaja de leerlos unificado es leer el correo de distintas cuentas como si fuese uno solo y el programa se encargará de manejar la identidad/cuenta al momento de responder. La sincronización del correo es rápida y permite actualizar todas las cuentas al mismo tiempo al usar el modo manual (no como sucede con la aplicación integrada de Android que solo actualizaba todas cuendo se sincronizaba automáticamente).

Bandeja Unificada de K-9
Bandeja Unificada de K-9
Correo con HTML
Correo con HTML

Realmente recomiendo esta aplicación a todas las personas quienes necesiten administrar varias cuentas de correo al mismo tiempo, busquen algo ligero, sencillo de usar y que ocupe poco espacio.

9 comentarios

Vídeo de 100 años de IBM

A través de un tweet de Inti (conocido usuario de twitter en Venezuela), llegué a este interesante vídeo de los 100 años de IBM. Quiero compartirlo por ustedes por lo conmovedor, interesante y bien creado, pues es narra los inventos y logros alcanzados por esta compañía durante todo este tiempo a través de personas nacidas en cada año específico.

Me ha impresionado la cantidad de logros alcanzados por una misma compañía y como mucho de ellos apenas existen desde hace 100 años para acá, además como impuso reglas de igualdad de raza, género y discapacidad entre sus empleados mucho antes de ser normal para la sociedad.

Aquí les dejo el vídeo:

Nota: Por si acaso algunos no lo saben, IBM es el tercer mayor contribuidor de programadores para trabajar en el desarrollo de Linux, una de las primeras y principales empresas en apoyar el código abierto, el creador de los procesadores del Wii, Playstation 3 y Xbox 360, entre otros.

Deja un comentario

Como indexar múltiples índices de Solr

Esta fue una tarea que me tocó realizar en mi trabajo, debido a la poca documentación existente (me parece incompleta o no explican bien) y lo que me costó, decidí realizar una breve guía de como instalar solr y configurar varios índices; con el fin de ayudar a otras personas con el mismo problema o no tienen posibilidad de documentarse en inglés.

Para quienes no conocen Solr, es un motor de búsqueda de código abierto escrito en Java para tener un mayor rendimiento en las búsquedas o consultas muy grandes, es recomendable usarlo al momento de tener consultas a base de datos con mucho tiempo para obtener resultados y que estos sean constantes, por nombrar un caso.

Como está hecho en Java y corre sobre plataforma web, es necesario tener instalado y configurado Tomcat en el servidor. En esta guía se asume eso, si no saben, pueden buscar tutoriales en Internet para ver como hacerlo para su Sistema Operativo. Además, para este ejemplo se va a realizar un indice de una consulta a un servidor SQL Server para traer los datos y crear un índice con ello.

Instalación de Solr

  1. Primero vamos a https://lucene.apache.org/solr/ y descargamos la versión zip y la descomprimen en una carpeta temporal.
  2. Dentro de la carpeta comprimida, entren a la carpeta dist y renombrar el archivo apache-solr-x.x.x.war a solr.war
  3. Luego copian ese archivo en la carpeta lib de Tomcat.
  4. Como en este ejemplo usamos SQL Server para traer los datos, descargamos el driver jdbc de Sql Server (o el correspondiente para su gestor de Base de Datos) y se copia dentro de la carpeta lib de Tomcat.

Registro de una WebApp

El siguiente paso es crear cada  instancia o aplicación web, por cada una de ellas se deben repetir los siguientes pasos:

  1. Desde la carpeta descomprimida en el paso 1 de la sección anterior (debería llamarse algo como apache-solr-x.x.x), copiar la carpeta example a la localidad deseada para guardar al configuración e indices (ejemplo /home/user/solr_indices ó C:\solr_indices)
  2. Ir a la carpeta /conf/Catalina/localhost dentro de Tomcat, allí crear un archivo .xml con el nombre de la aplicación (este nombre de la carpeta es el que saldrá en la URL) con el contenido a continuación, recuerden cambiar RUTA_TOMCAT por la ruta de instalación de Tomcat y RUTA_WEBAPP por la ruta de la carpeta creada en el paso anterior:
<Context docBase="RUTA_TOMCAT/lib/solr.war" debug="0" crossContext="true">
  <Environment type="java.lang.String" value="RUTA_WEBAPP" override="true" />
  <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="(127\.0\.0\.1)|(10\.2\.*)" />
</Context>

La cadena Valve, es opcional y sirve para restringir el acceso a la aplicación, en este caso permite acceso a la IP local y cualquiera de la red privada de clase A. El atributo allow (deny para denegar) permite expresiones regulares para las ips. Si desean bloquear nombres de dominio, usen RemoteHostValve.

Configuración de la WebApp con Solr

Les recuerdo, en este caso se estará usando SQL Server y se importarán los datos del indice desde una consulta al servidor de Base de Datos, si necesitan leer documentos XML u otra cosa, lean la wiki de Solr.

  1. Editar RUTA_WEBAPP/conf/solrconfig.xml y agregar el siguiente bloque:
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
  <lst name="defaults">
    <str name="config">data-config.xml</str>;
  </lst>
</requestHandler>

Buscar en ese mismo archivo, la sección donde dice dataDir para renombrar el nombre de la carpeta donde se guardará el índice para evitar sobre-escritura por parte de los demás índices, sustituir NOMBRE_WEBAPP por el nombre de la aplicación:

<dataDir>${solr.data.dir:./solr/data-NOMBRE_WEBAPP}</dataDir>

Crear en la misma carpeta (RUTA_WEBAPP/conf/) un archivo con el nombre data-config.xml con el siguiente contenido, recuerden modificar las credenciales de la conexión de la base de datos por las usadas en su caso:

<dataConfig>
  <dataSource type="JdbcDataSource" name="solr"
driver="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:sqlserver://IP_SERVIDOR_BD;databaseName=NOMBRE_BD"
user="NOMBRE_USUARIO" password="CONTRASENA"/>
   <document name="NOMBRE_BUSQUEDA">
     <entity name="NOMBRE_BUSQUEDA" dataSource="NOMBRE_BUSQUEDA" query="SELECT id,content AS Txt FROM TableTest">
        <field column="id" name="DataID"/>
        <field column="Txt" name="Txt"/>
     </entity>
   </document>
</dataConfig>

En este paso se deben explicar algunas cosas, las cadenas dataSource,entity y document deben tener el atributo name, con ello Solr identifica esta fuente de datos con el indice, es recomendable usar el mismo para evitar problemas. La cadena entity debe tener el atributo dataSource, con el nombre de la fuente, con esto relaciona ambos. Ademas si observan la sentencia SQL, la misma devuelve 2 columnas: id y Txt (Txt la forzamos a llamarse así mediante AS), las cuales serán usadas para crear el índice, por ello se deben crear tantas etiquetas field como columnas tengamos en la consulta, el nombre es personal y no es obligatorio llamarlas como el nombre de la columna.

Editar el archivo schema.xml, buscar el bloque fieldsets por:

<fields>
  <field name="DataID" type="string" indexed="true" stored="true" />
  <field name="Txt" type="text" indexed="true" stored="true" />
</fields>
<uniqueKey>Txt</uniqueKey>

Aquí se coloca una cadena field por cada cadena declarada en el archivo del paso anterior, cabe destacar la importancia del atributo type, no entro en detalles pero en este mismo archivo pueden leer los existentes, por ejemplo, string no permite búsqueda parcial a diferencia de text, así que analicen los tipos necesarios para cada columna.

Deben reiniciar el servicio de Apache Tomcat con el fin de actualizar la información de la webapp y Solr pueda crear los índices.

Una vez realizado estos pasos, se puede proceder a indexar el contenido. Si desean agregar mas índices, repitan los pasos de Configuración de la Webapp con Solr, cambiando el nombre de la aplicación, carpeta donde almacenar los indices, nombre de consulta, entre otros.

Espero que esta guía les haya servido de gran ayuda.

Deja un comentario