Publica tu how-to

Dinos como hacer lo que sabes hacer, mándanos un email a wdonet@gmail.com y lo publicamos (dos días máximo) o si te interesa unirte al equipo de redactores, también háznoslo saber por correo.

Servidor de correo personal con postfix

En mi opinión un sistema de correo electrónico es de los que pueden llegar a tornarse más complicados de configurar. Al contrario de otros tipos de servidores que sólo requieren configurar un programa, y los puertos apropiados en el firewall, un sistema de correo requiere configurar varias cosas en diversos lugares.

Ésto último es debido a que un sistema de correo está en realidad compuesto no por uno sino por varios programas o sistemas que interactúan entre sí, completando y complementando sus funciones para dar lugar al sistema de correo electrónico como lo conocemos hoy: eficiente, robusto, sencillo si se sabe comprender...

Esta división de un sistema en pequeños subsistemas que cumplen funciones específicas es en realidad producto de la filosofía en sistemas como Unix de hacer las cosas bien y una sola vez. Así, por ejemplo el sistema que entrega el correo electrónico se dedica única y exclusivamente a eso, especializándose en ello y con eso no embotando su propio código fuente con funcionalidades para las que existen otros programas especializados, como el sistema que se encarga de obtener el correo a leer, o el que lo envía...

Un sistema de correo puede, en términos generales, dividirse en 3 partes principales, a saber, de afuera hacia adentro:

Compilando FFmpeg para convertir formatos de archivos de medios

FFmpeg es una suite de programas para manipulación de medios. Su sitio oficial es http://ffmpeg.org/

La mayoria de las distribuciones Linux ya incluyen los paquetes para poder utilizar FFmpeg, sin embargo a veces es necesario recompilar el programa para que soporte algunos codecs que no vienen por default en el programa que incluye la distribucion.

El codigo fuente de FFmpeg se baja del sitio oficial. Se puede bajar la ultima version estable o sincronizar con el repositorio SVN o GIT para tener la version de desarrollo mas reciente.

Una vez con el codigo fuente, se aplica la clásica serie de pasos:

configure
make
make install

(este último al menos, requiere de permisos de superusuario)

Ahora bien, para que FFmpeg soporte otros formatos, se deben habilitar en el configure.
Por ejemplo:

--enable-libopencore-amrnb   permite soporte para videos 3GP
--enable-libvorbis   permite soporte para Vorbis
--enable-libmp3lame   permite soporte para audio MP3
--enable-libxvid   permite soporte para AVI
--enable-libfaac   permite soporte para audio AAC


Una vez compilado e instalado, ffmpeg se utiliza para convertir formatos.
Por ejemplo,

de FLV a 3GP:

ffmpeg -i origen.flv -s qcif -vcodec h263 -acodec aac -ac 1 -ar 8000 -r 25 -ab 32k -y destino.3gp

de MOV a FLV

ffmpeg -i origen.mov -ar 22050 -ab 128k -b 400k -s 320x240 -aspect 4:3 -f flv destino.flv

Notese que los parametros que definen las caracteristicas del video (bitrate, etc.) deberian cambiar segun el video origen y el resultado deseado en el destino.

¿Eres un arquitecto de software?

Tomado del original (en inglés) en infoq.com.

La linea que divide el desarrollo de software y su arquitectura es engañosa.  Algunos dirán que esta no existe y que la arquitectura es simplemente una extensión del proceso de diseño hecho por los desarrolladores.  Otros harán de esto un enorme abismo que solo puede ser crusado por desarrolladores avanzados que creen que debes resumir los componentes fundamentales en lugar de detenerte en esos detalles molestos de implementación. Como siempre, hay un balance pragmático en algún lado a mitad del camino, lo cual hace surgir una pregunta interesante sobre como moverte de un lado a otro.

Algunos de los factores clave que a menudo se utilizan para diferenciar la arquitectura del software de su diseño y su desarrollo incluyen un aumento de la escala, un aumento en el nivel de abstracción y un aumento en la importancia de la toma de decisones correctas en el diseño.
La arquitectura del software es acerca de tener visiones holísticas y teniendo una vista general para entender como el sistema trabaja como un todo.  Mientras esto puede ayudar a difrenciar el desarrollo de la arquitectura de software, no necesariamente permite entender como alguien cambia de actividades de desarrollo a las de arquitectura. Tampoco ayuda a identificar quién hará un buen trabajo de arquitectura, ¿como harás para contratar a la gente correcta o sabrás si tu eres un arquitecto de software?

La experiencia es una buena referencia pero necesitas profundizar más

Llegar a ser un arquitecto de software no es algo que simplemente pase de la noche a la mañana o con un ascenso. Es una función, no un rango.  Es un proceso evolutivo donde gradualmente ganarás la experiencia y confianza que necesitas para ejecutar tu función.

Hay un número de cualidades que puedes buscar en un arquitecto de software y su experiencia pasada es a menudo un buen puntaje para calificar su habilidad en el desempeño de su papel.  Aunque la función de un arquitecto de software es muy variado, se necesita profundizar para entender el nivel de participación, la influencia, el liderazgo y la responsabilidad que ha sido demostrada a través de un número de ámbitos diferentes. Hablando ampliamente, la arquitectura de software en la mayoría de los proyectos puede ser dividida en dos fases; la arquitectura es definida y luego es liberada.

Instalando most como pager en Linux

Casi todos estamos familiarizados con los paginadores más famosos en GNU/Linux, con los cuales un texto largo en consola puede verse tranquilamente pantalla a pantalla...

Puede ser que usemos el clásico more(1), o que por otro lado utilicemos less(1).

¿Tenemos más opciones? La respuesta es sí...