Añadir firmas de correo automáticamente en Postfix

En la actualidad, estoy a cargo del sitio de la empresa de mi madre, que más bien es una empresa familiar donde cada uno ayuda cuando y como puede. El sitio tiene muy poco flujo y comparte servidor con la Comunidad de Laravel en Español. Para los que no saben, este servidor es un VPS alojado en DigitalOcean en el cual tengo instalado zPanel, un panel de web-hosting gratuito  – creo que ya está muerto, ahora existe un fork llamado Sentora -. Pero bien, el tema puntual era que mi madre y las otras persona con las que trabaja, no tenían una firma oficial de la empresa y cada uno se creaba la suya, a gusto propio. Me encargó la tarea de poder tener una firma con el mismo formato para todos. Ella lo veía simple, crear la firma y ya está… pero yo no. En el caso de mi madre, ella utiliza el cliente de correos de su celular, el cliente de correos en su portátil y el cliente web cuando está en otra computadora. Como ella no es muy amiga de la tecnología, no puedo sólo enviarle el HTML de la firma y decirle “ahí va la firma, mamá, la configuras y ya está“. De seguro me llamaría devuelta diciendo que no tiene idea de como hacer eso y que vaya a la casa cuando pueda a ayudarle y configurar sus 3 clientes de correo. Si multiplicamos eso por la cantidad de gente que trabaja en la empresa, se convierte en un infierno.

Como no es primera vez que me sucede algo así, me puse a investigar una forma en la que nadie tenga que configurar nada y que toda la magia se produzca en el servidor. Si alguien de la empresa envía un correo, éste llega al servidor, identifica al remitente, busca la firma correspondiente y la añade al final del mensaje. Recuerdo haber intentando hacerlo hace unos 6 meses, pero luego de investigar un par de días no encontré nada de información útil como punto de partida. Pero como ahora ya me lo estaban pidiendo, no quedó remedio que darle otra vuelta o perder mucho tiempo configurando clientes de correos de cada una de las personas que trabaja con mi madre.

(más…)

Anuncios

Cygwin: Abrir consola desde el menú contextual

Suponiendo que han seguido los otros post respecto a Cygwin, esta vez vengo a compartir una forma de poder abrir rápidamente una ventana de ConsoleZ desde un directorio haciendo clic derecho.

Muchos sabrán que Windows por defecto incluye esta opción en el menú contextual, pero de manera oculta. Basta presionar Shift + clic derecho sobre una carpeta o dentro de un espacio vacío en la ventana de una carpeta para que en el menú contextual se despliegue una opción llamada “Open command window here” o “Abrir ventana de comandos aquí” (o similar).

win-contextual-command-prompt

Bien, mi idea, más bien deseo era poder hacer lo mismo pero en ConsoleZ, y que si tenía abierta la consola, me agregará la nueva consola en una nueva pestaña. Hace unos buenos meses encontré la solución y la vengo ocupando desde entonces, por lo que la comparto con ustedes y la dejo como documentación para mi uso propio.

(más…)

Importar/exportar base de datos MySQL con gzip

Encontré este truco buscando un atajo para poder importar una base de datos MyQSL que estaba en formato gzip, y por casualidad me sirvió para un caso en que estaba en un servidor donde debía exportar una base de datos y no tenía espacio suficiente en el disco. Estos comandos me permitieron comprimir y descomprimir la base de datos, que bien todos sabemos, comprimida en gzip su tamaño disminuye enormemente. Entonces:

Para exportar

mysqldump -u user -p database | gzip > database.sql.gz

Para importar

gunzip < database.sql.gz | mysql -u user -p database

Fuente: Using gzip and gunzip with mysql to import/export backups

Codeivate: tus estadísticas de programación

Si alguna vez te has preguntando ¿cuánto tiempo al día efectivamente lo dedico a programar? ¿cuál es el día y hora más productiva cuando programo? ¿a que lenguaje le dedico más tiempo?, esta herramienta que les voy a presentar les responderá eso y más.

Por las casualidades de la vida, me encontré con Codeivate, una herramienta que nos permite llevar registro de nuestras acciones mientras estamos programando en nuestro IDE o editor favorito. Llevo alrededor de 3 semanas probando la herramienta, y si bien está en una base temprana de su desarrollo (según entiendo está en beta), entrega datos interesantes que nunca están de más conocer.

(más…)

Dejar de rastrear un archivo que ya es parte del repositorio en Git

La otra vez me topé con un problema en un repositorio de Git en el trabajo, no recuerdo como fue que llegué a esa situación pero el problema era el siguiente: había un archivo que estaba como parte del repositorio, pero que ya no quería trackear más, pero si mantenerlo dentro del repositorio, tal cual estaba.

Pensarán que sólo basta ingresar el archivo al .gitignore, pero no. Git ya lo tiene en su poder, por lo cual no dejará de rastrearlo aunque el .gitignore lo diga. Por lo que hay que hacer uso del siguiente comando:

git update-index --assume-unchanged ruta_al_archivo/nombre_del_archivo

Y para que Git lo vuelva a seguir:

git update-index --no-assume-unchanged ruta_al_archivo/nombre_del_archivo

Fuente: http://www.juandefrias.com/posts/c-mo-ignorar-los-cambios-de-un-archivo-ya-subido-a-git-21

CodeBunk.com: un editor colaborativo en línea

Codebunk.com

Codebunk.com

CodeBunk es un sitio que yo principalmente lo utilizo para realizar pruebas de concepto o probar distintos trozos de código. Por algún motivo me es más rápido abrir CodeBunk y escribir lo que tengo en mente, que ejecutarlo localmente… gustos de cada uno.

Pero el verdadero potencial de este sitio es en su capacidad colaborativa, ya que dos o más personas pueden estar en un “bunk” (sala) compartiendo ideas sobre un código y compilando/ejecutando en tiempo real (soporta videollamadas) con output en la misma pantalla. Tiene soporte para 14 lenguajes, como por ejemplo: Python, PHP, Ruby, Java, C, C++, Go, entre otros.

También se promociona como una herramienta para entrevistas de trabajo remoto para desarrolladores.

Cygwin: integración con Sublime Text y algunos tips

En este tercer post respecto a Cygwin, voy a compartir un par de cosas que he aprendido, y como integrar Cygwin dentro de Sublime Text para poder abrir una consola dentro del directorio del proyecto que estamos trabajando de manera automática.

Antes de seguir adelante, si no conocen Cygwin, les recomiendo revisar mis dos entradas anteriores al respecto:

(más…)

Editar archivos remotamente en Sublime Text vía SSH

Soy bien amigo de nano para ediciones rápidas de archivos en el servidor, pero muchas veces me quedaba corto. En especial cuando las ediciones se volvían más complejas y tenías que saltar de una línea a otra. Se supone que este tipo de cambios y parches no se deberían realizar nunca en el servidor y menos en producción, pero soy sincero, muchas veces el tiempo apremia y lo hago (shame on me). También, hay otros casos en los cuales se editan archivos de configuración del servidor, que suelen ser de un largo considerable, y uno echa de menos trabajarlos sobre un editor que te haga la vida más fácil como Sublime Text.

Y bien, para estos casos encontré navegando (de forma desesperada) una solución que me cayó como anillo al dedo: rmate.

(más…)

Un par de aliases y tips para sacar provecho a ‘wget’

Una de las herramientas que más me gusta cuando trabajo en Linux es Wget, y aunque no trabaje con este sistema operativo, les conté anteriormente que trabajo con Cygwin en Windows, lo que me permite disfrutar de este tipo de herramientas en el sistema de las ventanitas.

RESUMIR DESCARGAS

wget -c http://wwww.dominio.com/archivo.zip

La opción –c permite poder resumir las descarga de un archivo. Si anteriormente estaban descargando archivo.zip y abortaron la descarga (Ctrl+C), la pueden volver a retomar donde se encontraba agregando la opción -c.

LIMITAR LA VELOCIDAD DE DESCARGA

wget --limit-rate=200k http://wwww.dominio.com/archivo.zip

Una de las cosas que me he dado cuenta de wget es que no tiene control en cuanto al ancho de banda que consume, si puede consumirlo todo, lo hará. Con la opción –limit-rate pueden definir el limite de velocidad de descarga. El valor representa los bytes por segundo, por lo que si desean limitar a 200KB/s deben escribir 200k.

(más…)