sábado, 30 de junio de 2012
Programación Macho ®: el paradigma perdido
Programación Macho ®: Programación Macho ® , el paradigma perdido: Programación a la vieja usanza. Ya estan disponibles las camisetas
Etiquetas:
Desarrollo de Software,
Humor
domingo, 24 de junio de 2012
Enviando adjuntos desde un shellscript
Frecuentemente tengo que enviar la salida de un proceso por correo, como un archivo adjunto.
Utilizo un agente de correo muy versatil, el mutt.
Este cliente de correo se puede utilizar en forma interactiva, como los clientes de correo más habituales. Tiene la peculiaridad de ser orientado a consola. Lo que me llevó a considerarlo para enviar adjuntos es la posibilidad de correrlo desde un shellscript, como salida un proceso batch.Para eso me cree un archivo de configuración (mutt.rc) personalizado:
Las personalizaciones son elementales, la dirección de correo del remitente y un servidor SMTP debidamente configurado. Luego en el shellscript invoco el mutt con esa configuración. Opté por guardar los parámetros en variables, para mejorar la legibilidad y eventualmente re aprovechar el shellscript para otra tarea
La ventaja de usar un agente reconocido como el mutt, en lugar scripts ad hoc, esta a la hora de atravesar filtros antispam y antivirus. Estos filtros suelen dar puntaje negativo a correos con cabezales mal formados o provenientes de agentes desconocidos o poco conocidos.
Este cliente de correo se puede utilizar en forma interactiva, como los clientes de correo más habituales. Tiene la peculiaridad de ser orientado a consola. Lo que me llevó a considerarlo para enviar adjuntos es la posibilidad de correrlo desde un shellscript, como salida un proceso batch.Para eso me cree un archivo de configuración (mutt.rc) personalizado:
#
hdr_order From: Date: To: Cc: Subject:
#
set envelope_from_address="a@domain.com"
#
set from="a@domain.com"
# Utiliza el servidor
set smtp_url="smtp://smtp.server.domain.com"
Las personalizaciones son elementales, la dirección de correo del remitente y un servidor SMTP debidamente configurado. Luego en el shellscript invoco el mutt con esa configuración. Opté por guardar los parámetros en variables, para mejorar la legibilidad y eventualmente re aprovechar el shellscript para otra tarea
MUTT=$(which mutt)
REPORT="/tmp/reporte.csv"
MUTTRC="/home/user/mutt_reportes.rc"
RECIPIENTS="a@domain.com b@domain.com"
SUBJECT="REPORTYE DIARIO"
${MUTT} -F ${MUTTRC} -s "${SUBJECT}" -a ${REPORT} -- ${RECIPIENTS}
La ventaja de usar un agente reconocido como el mutt, en lugar scripts ad hoc, esta a la hora de atravesar filtros antispam y antivirus. Estos filtros suelen dar puntaje negativo a correos con cabezales mal formados o provenientes de agentes desconocidos o poco conocidos.
Actualización 21/Oct/2013
Mutt tiene incorporado el cliente nativo SMTP a partir de la versión 1.5.15. Esta salvedad es importante, especialmente para quienes tienen que dar soporte en equipos Linux viejos o en UNIXes (AIX,Solaris). En AIX esta disponible la versión 1.4.2 en RPM.
Etiquetas:
Administración de Sistemas,
Linux
sábado, 2 de junio de 2012
Upgrade a Ubuntu 12.04 con alternate CD
Seguí buscando como actualizar el Ubuntu. Es un PC que se le instaló ubuntu 9:10, luego se le hizo un upgrade a 10.04. Se quería actualizar a 12.04 desde Internet. Según el sitio de ubuntu bastaba con ejecutar
Investigando me enteré de la existencia del alternate CD. Este CD proporciona otros mecanismos de instalación. Bajé el CD, lo monte en loopback y largue a correr la actualización. Algunas horas después, estaba utilizando el PC en Ubuntu 12.04.
Otra Idea para probar: Mientras escribía esta entrada en el blog me tope con esta pagina. La solución estaría en correr
do-release-upgrade
o update-manager
.
Intente esto sin éxito, por lo que vi mucha gente tenia el mismo problema.Investigando me enteré de la existencia del alternate CD. Este CD proporciona otros mecanismos de instalación. Bajé el CD, lo monte en loopback y largue a correr la actualización. Algunas horas después, estaba utilizando el PC en Ubuntu 12.04.
Otra Idea para probar: Mientras escribía esta entrada en el blog me tope con esta pagina. La solución estaría en correr
do-release-upgrade -d
o update-manager -d
. O esperar al mes de Julio.
Etiquetas:
Administración de Sistemas,
Linux,
Ubuntu
domingo, 27 de mayo de 2012
Informix en PHP
Hace poco me pidieron que configurara el PHP de un servidor para trabajar con una base de datos Informix. Usualmente el PHP que proveen las distribuciones trae el soporte a PostgreSQL y MySQL.
Encontré varias guías que explicaban como instalar el soporte en PDO, pero andaba necesitando acceder con las funciones ifx*, no orientadas a objetos. Para cualquiera de las dos opciones tuve que bajar e instalar el SDK (Kit de desarrollador). EL driver PDO como las funciones ifx_* compilan contra las bibliotecas del SDK. Una de las guias que utilicé para el driver PDO es esta.Pero seguia sin encontrar rastros de las funciones ifx_*. Hasta que me topé con este sitio. Las funciones ifx_* son parte de PECL, un repositorio de extensiones de PHP. Por lo que vi en la pagina de ifx_* actualmente el driver no tiene mantenimiento, pero no dio problemas para compilarlo.
Lo instalé siguiendo la guía, corrí algunos programas de pruebas y listo.
Encontré varias guías que explicaban como instalar el soporte en PDO, pero andaba necesitando acceder con las funciones ifx*, no orientadas a objetos. Para cualquiera de las dos opciones tuve que bajar e instalar el SDK (Kit de desarrollador). EL driver PDO como las funciones ifx_* compilan contra las bibliotecas del SDK. Una de las guias que utilicé para el driver PDO es esta.Pero seguia sin encontrar rastros de las funciones ifx_*. Hasta que me topé con este sitio. Las funciones ifx_* son parte de PECL, un repositorio de extensiones de PHP. Por lo que vi en la pagina de ifx_* actualmente el driver no tiene mantenimiento, pero no dio problemas para compilarlo.
Lo instalé siguiendo la guía, corrí algunos programas de pruebas y listo.
Etiquetas:
Administración de Sistemas,
Bases de datos,
Informix,
Linux,
PHP
Suscribirse a:
Entradas (Atom)