2007-12-16

Correo y messenger en el mac

Todos los usuarios de mac utilizan Adium para sustituir al messenger y Mail.app (la que viene con Mac OS) para leer el correo. Pues bien, ambos me han dado problemas (problemas tontos, pero problemas) que me ha resultado divertido resolver.

Adium

Adium es estupendo; se conecta con MSN, GTalk, etc... y es una verdadera aplicación Mac, con una estética impecable y gran facilidad de uso. Lamentablemente también tiene fallos: si no es capaz de conectarse en el arranque da un error. A mi esto me pasa con frecuencia: si cierro la tapa del mac, y luego la vuelvo a abrir pasa un rato hasta que el wifi se conecta, y entonces Adium se queja. El icono empieza a botar, alertas en el escritorio, mensaje de error y, lo peor de todo: no reintenta la conexión por si solo. Así que empecé a investigar un poco y encontré el siguiente script:

if appisrunning("Adium") then
    tell application "Adium"
        repeat with acc in accounts
            connect acc
        end repeat
    end tell
end if

on appisrunning(appName)
    tell application "System Events" to (name of processes) contains appName
end appisrunning

Lo pegué en el editor de scripts y luego generé una aplicación (adium_reconnect.app). Lo que no me gustaba de esta aplicación es que si la ejecutaba, el icono aparecía brevemente en el dock (un poco molesto) así que encontré una utilidad para transformarla en aplicación background. Se llama Drop Script Backgrounder, con lo que el script me quedó perfecto.

Finalmente quedaba conseguir que el script se ejecutase cada 5 minutos por sí solo. Existen diversas formas en el mac de crear una tarea programada (con el propio calendario es la más sencilla) pero escogí usar cron; el fichero se modifica usando el comando "crontab -e"

# min   hour    mday    month   wday    command
*/5 * * * * open /Applications/Internet/Adium_reconnect.app >> /dev/null #2>&1 

Ya está todo listo. El último detalle sería ir a las preferencias de Adium y eliminar los avisos para el caso de que se produzca algún error.

Un último detalle: los chicos de Adium afirman que en la próxima versión este problemilla estará solucionado.

Correo

Encuentro a Mail.app excesivamente sencilla. Insertar un hipervínculo es un poco rollo; insertar una imagen... no sé dónde está. Insertar una tabla... más bien imposible. Así que mi consejo es usar Thunderbird, que es open source y mucho más pontente PERO: ¿se integra con la libreta de direciones del mac? pues no, al menos no en la versión que se puede encontrar en la web de Thunderbird. Sin embargo en la próxima versión, la 3.0, sí habrá esta integración, y hay quien se la ha incorporado ya a la versión actual: http://forums.mozillazine.org/viewtopic.php?p=3003235


2007-10-17

Zero mail inbox

Voy a intentar recoger las ideas del método Inbox Zero de Merlin Mann que me han parecido más interesantes. Hay una presentación en vídeo del método completo en http://video.google.com/videoplay?docid=973149761529535925&hl=en pero ojo, que dura una hora.

  - Usar plantillas para correos que se suelen repetir
  - Admitir "no lo sé" a veces es lo mejor
  - Borrar, borrar, borrar

2. Si no vas a hacer nada con un mensaje,

  - 2 minutos de cada 20 para revisión y respuestas super-rápidas y ultra-críticas
  - 10 minutos de cada 90 para responder cosas no críticas
  - 2 minutos de cada hora y 15 al final de la jornada para procesar los mensajes, y enviarlos a 
    · tareas para mí o para otro
    · reuniones en el calendario
    · respuesta rápida
  - un par de veces a la semana: revisar las reglas, las carpetas, etc...
El resto del tiempo: el outlook está cerrado. Esto es sólo un ejemplo, claro. La práctica lleva a la perfección. 

  - ¿me importa para algo este mensaje?
  - ¿qué me implica hacer a mí?
  - ¿de qué forma puedo cerrar el tema?

5. Procesa todos los mensajes hasta que no quede ninguno
esto no significa responderlos todos ahora, significa procesarlos. 

6. Finalmente: la bandeja de entrada nunca llega a estar realmente a cero; pero es el ideal, el objetivo último. Estos son unos pequeños trucos para mantener la bandeja vacía:
 - No te mates en el sistema de archivo: una gran carpeta "archivo" suele ser suficiente
 - Responde ahora o nunca
 - No estés todo el tiempo con el outlook, no es productivo. Tu tiempo es importante, valóralo como se merece.

2007-10-10

Conferencia sobre UBL

 

UBL: Universal Business Language; estándar OASIS

·         Diccionario de datos normalizado

·         Definiciones estándar de las palabras clave

·         Extensible de varias formas

Caso práctico de integración de procesos de negocio usando UBL 2.0; gobierno danés

·         ¿Qué cubre UBL?

o       “Sourcing” (catálogo, precios, etc…)

o       “Pedidos” (pedido, respuesta a pedido, cambio de pedido, etc…)

o       “Fulfillment” (albarán, certificado de origen, recibo de entrega, …)

o       “Facturación”

·         Novedad en UBL 2.0: “Profiles”. Especifican el acuerdo acerca de qué se va a intercambiar; la diferencia con EDI es que no hay que firmar acuerdos en papel

o       El perfil se escoge de entre los posibles ofrecidos por el receptor de la transacción, en un registro común

Proyecto CODICE: Dirección General del Patrimonio. COmponents y DOcumentos Interoperables para la Contratación Electrónica

·         Objetivo: mercado europeo de e-Procurement sin problemas de interoperabilidad

o       Directiva europea 2004/18/EC y futura ley de contratación pública “ley de contratos del sector público”

o       Inspirado por el proyecto de EU IDABC (documento de requisitos), además de los estándares

§         ISO 15000 ebXML Core Components Technical Specifications

§         UBL

·         Librería de documentos definidos a partir de sus componentes, que se buscan y encuentran en UBL, y a partir de los procesos que forman parte de la contratación pública.

·         Librería de componentes que son una extensión de la librería UBL

·         Todo disponible en www.meh.esd

DocOnTime: Implementación de factura electronica en las empresas

·         Problema: formato de las facturas

o       Propietarios

o       Nacionales (el de la AEAT no tiene aspiración de trascender fronteras)

o       Internacionales: UBL, ojo que tiene problemas de semántica e interpretación

Future of UBL (Port Community Systems, Australia – miembro OASIS)

·         No hay previsión de ninguna nueva versión, únicamente revisiones menores

·         XML (CBL) + EDI (Edifact, X12) = ebXML

·         ebXML + XCBL = UBL

·         UN/CEFACT apoya UBL 2.0, pero producirá su propio conjunto de esquemas xml en los próximos años, que podrán derivar del actual UBL

·         La librería UBL y la UN/CEFACT Core Component Library se alinearán en 2008, es decir, se definirá y mantendrá la relación entre ambas bibliotecas de componentes “core”

Integración entre UBL y CCI-AEAT (Fundetec)

·         2010: Toda la administración debería estar preparada para recibir factura electrónica

·         CCI-XML es el único formato aceptado legalmente por la admon.

·         La factura electrónica tiene que estar firmada digitalmente; existe disparidad en formatos y autoridades certificadoras

·         Soluciones:

o       Se desarrollará la correspondencia CCI-UBL

o       Se desarrollará un directorio de empresas que aceptan factura electrónica y en qué formato, mantenido por el ministerio de industria y accesible vía WS o web

o       El DNI electrónico se implantará en 2 años

o       Desarrollo de librerías open-source para facilitar la integración en software existente de estos formatos

El papel de las entidades financieras en la adopción de e-factura (Eurobits)

·         Eurobits

o       Eurobits fue creada por Caja Madrid y Bankinter

o       Suministra servicios de factura electrónica, agregación de cuentas, … via web-services

·         El papel de los bancos

o       Pueden abstraer a sus clientes de las complejidades tecnológicas

o       Pueden absorber el coste porque pueden obtener beneficios por otro lado

o       La relación entre el banco y sus clientes (proveedores y consumidores) no es trivial, está próxima al negocio

o       Los bancos están acostumbrados a integrarse con los sistemas de pago de diversas empresas

·         Retos

o       Interoperabilidad

o       Promoción de estándares abiertos

 

 

2007-05-12

Acerca de SOA

En InfoQ hay una presentación sobre SOA que dio un tal Gregor Hohpe, arquitecto en Google, en JavaZone; unas conferencias organizados por un grupo noruego de programadores de Java.

Este ser humano es, por cierto, el autor de "Enterprise Integration Patterns" y tiene un artículo muy simpático llamado "Your Coffee Shop Does Not Use Two-Phase Commit" que salío publicado el año pasado en la revista Software de IEEE en el que explica que un sistema que tiene que tener gran capacidad tiene que abandonar cosas como el 2pc por el camino.

Resumo los puntos que me parecieron interesantes de su presentación:

1. ¿Qué es SOA?
  • Es un estilo de arquitectura, en el que las interacciones entre sistemas están orientadas a documentos es decir, están autocontenidas en un alto grado
  • Bajo nivel de acoplamiento, se puede cambiar un servicio internamente sin que los consumidores del servicio se enteren
  • Las interfaces están claramente especificadas
2. ¿Cómo hemos llegado hasta aquí?
Principalmente en los sistemas distribuidos el objetivo hasta ahora, en arquitecturas previas, era ocultar la complejidad al desarrollador; es decir: el código remoto es exactamente igual que el código local. Este enfoque ignora:
  • latencia de la red
  • redes desconectadas intermitentemente
  • inexistencia de referencias (punteros)
  • alto acoplamiento entre sistemas
En muchos sistemas actuales, altamente distribuidos y con muy grandes requerimientos de rendimiento estos problemas existen, y mucho. Si ocultamos el hecho de que los sistemas están distribuidos al desarrollador el resultado puede ser que el sistema resultante no sea todo lo escalable que deseamos.

Así surgió la "orientación a servicios"; no existen interacciones complejas (polimorfismo, referencias, etc...) sino interacciones simples, autocontenidas, basadas en un documento que normalmente es XML y, más apropiadas para ser asíncronas.

3. ¿Cómo está la situación ahora?
El hecho es que este es un nuevo modelo de programación; y las herramientas actuales son bastante primitivas todavía. Está por ver si llegan a ser como las que tenemos para los lenguajes tradicionales. Es cierto que aparentemente se puede programar gráficamente un proceso de negocio y demás pero... ¿cómo se buscan las diferencias entre este proceso y su versión anterior? ¿hay algo similar a diff o merge para los diagramas? y si, quizás no haya que programar mucho hasta que hay que hacer algo "avanzado", en ese momento ya hay que programar y, de todas maneras, programar gráficamente puede ser algo bastante complicado.


Es interesante también el artículo "Developing in a SOA World", que contiene la mayor parte de las ideas de la presentación.