Sirva este post como mi pequeño y modesto homenaje a ffmpeg, uno de los proyectos de Software libre que más me han gustado de siempre y que me ayuda mucho en con los vídeos que manejo y visualizo en casa.
Un ejemplo de ffmpeg para pasar un vídeo a formato divx (que entiende perfectamente mi reproductor de divx doméstico):
ffmpeg -i peli_de_entrada.avi -f avi -vcodec mpeg4 -b 1800k -g 300 -bf 2 -acodec mp3 -ab 192k -vtag divx peli_salida.avi
Algunos comentarios relevantes sobre esta instrucción:
-i -> Indica el fichero de entrada
-f -> Indica que queremos que el formato del contenedor de video sea “avi”
-vcodec -> Especificamos cuál queremos que sea el codec de video. en este caso, queremos que copie el video de origen
-b -> Indicamos el bitrate. Todo lo que sea por encima de 1000 es decente para verlo en la tele
-acodec -> Indicamos el codec de audio: mp3 (lo reproduce mi reproductor casero)
Un ejemplo algo más complejo es el que me ha ocurrido recientemente. Me han hecho llegar unos videos que tienen dos pistas de audio, tal y como se puede ver con el comando “ffmpeg -i video.avi“:
Stream #0.0: Video: mpeg4, yuv420p, 712×304 [PAR 1:1 DAR 89:38], 23.98 tbr, 25 tbn, 23.98 tbc
Stream #0.1: Audio: ac3, 48000 Hz, 5.1, s16, 384 kb/s
Stream #0.2: Audio: mp3, 48000 Hz, stereo, s16, 160 kb/s
Mi reproductor doméstico sólo entiende una pista de audio y además es sólo la primera. El problema es que no es capaz de decodificar las pistas de audio AC3. Simplemente no es capaz de reproducir audio de 6 canales por estar preparado sólo para dos canales. ¿Cómo nos ayuda ffmpeg a esto? Sencillo: se le dice que el video de salida tenga el audio de la primera pista de origen y en formato mp3:
ffmpeg -i peli_de_entrada.avi -map 0.0 -map 0.1 -f avi -vcodec copy -acodec libmp3lame -ar 48000 -ab 128k -ac 2 peli_salida.avi
Los dos parámetros map indican respectivamente que como pista de video en el archivo de salida queremos la 0.0 del archivo de entrada y como pista de audio queremos la 0.1 de la entrada.
No quisiera terminar este post, sin comentar que existe un software denominado Arista, que es parecido en su propósito a ffmpeg. Sirve para transformar videos a prácticamente cualquier otro formato. Lo bueno (y lo malo) que tiene es que viene una serie de “presets” configurados para distintos dispositivos: android, iPad, iPhone, reproductor de DVD, Playstation, etc….

Con Arista es muy sencillo trabajar, ya que posee una interfaz gráfica (GTK+) muy amigable: basta con elegir el vídeo origen, el preset y ponerlo en marcha!
Por cierto, hace años había un proyecto de software libre muy parecido a ffmpeg, denominado Transcode. Me he metido en su página web y no sacan nada nuevo desde mediados del 2010. Me parece que Transcode ha muerto. Viva ffmpeg!!!
Tags: Uncategorized · productividad · software libre · tecnologia
Mi amigo Roberto Pérez hace casi un año me recomendó leer el libro La Paradoja de James C. Hunter.
Una vez leido, puedo decir que me ha encantado y que creo que le voy a sacar mucho partido. Mo sólo eso, sino que además ha habido pasajes que me han impresionado. Más adelante lanzaré un resumen sobre el libro y sobre las principales conclusiones que extraigo, pero me quiero limitar a a reproducir uno de los pasajes que más ha llamado mi atención. Ahí va:
Viktor Frankl, escribió un famoso librito titulado “El hombre en busca de sentido” . Frankl era un psiquiatra judío que se educó en la prestigiosa universidad de Viena, de la que más tarde fue profesor, la misma universidad en la que estudió Freud. Frankl fue un ferviente defensor del determinismo, igual que su ídolo y mentor, Sigmund Freud. Cuando llegó la guerra, Frankl fue internado en un campo de concentración durante varios años, le
arrebataron sus bienes, perdió prácticamente a toda su familia y padeció terribles experimentos médicos a manos de los nazis. Sufrió terriblemente, desde luego el libro no es muy adecuado para almas sensibles. Pero, en medio de tanto sufrimiento, aprendió mucho sobre la gente y la naturaleza humana, y esto le llevó a reconsiderar su postura respecto al determinismo. Voy a leeros un pasaje de su libro: Sigmund Freud dijo una vez: «Imaginemos un grupo de personas obligadas a pasar hambre por igual. A medida que aumente la imperiosa urgencia de comer, se irán desdibujando todas las diferencias individuales y en su lugar aparecerá la expresión uniforme de la única e inaplazable urgencia». Gracias a Dios, Freud no tuvo ocasión de conocer los campos de concentración desde dentro. Sus pacientes están recostados en un muelle diván de estilo victoriano, y no sobre la basura de Auschwitz. Pero, en Auschwitz, las «diferencias individuales» no sólo no se desdibujaban, sino que, muy al contrario, la gente se diferenciaba cada vez más porque todos acababan desenmascarándose, los santos y los cerdos…
El hombre, en última instancia, se determina a sí mismo. Acaba siendo lo que hace de sí mismo. En los campos de concentración, por ejemplo, en esos laboratorios vivos, en esos campos de pruebas fuimos testigos de cómo algunos de nuestros compañeros se portaron como santos, mientras que otros se portaban como cerdos. El hombre lleva en sí ambas potencialidades, cuál de las dos actualice depende de sus decisiones, no de las condiciones en que se encuentre.
Nuestra generación es realista, porque hemos llegado a conocer al hombre tal como es en realidad. Después de todo, el hombre es ese ser que inventó las cámaras de gas de Auschwitz; y sin embargo, es también ese ser que entró en esas cámaras de gas llevando la cabeza alta y el Padrenuestro o el Shema Yisrael en los labios.
Tags: Uncategorized
Éste es el tercer y útlimos post dedicado a la gestión de proyectos por Cadena Crítica. En el primero vimos el concepto de ruta crítica y vimos lo importante que es proteger la fecha de la ruta crítica. En el segundo vimos los conceptos de buffer de proyecto y buffer de alimentación.
En este tercer post nos centraremos en uno de los grandes problemas que resuelve el libro y que se se da en innumerables ocasiones en una empresa: cuando un departamento es el cuello de botella. Gran parte de los proyectos de la empresa tienen tareas que deben ser ejecutadas por dicho departamento, pero ese departamento está colapsado siempre y es fundamental hacer uso de sus horas de la formas más optimizada posible.
Para tener esto en cuenta en nuestro diagrama de Gantt del proyecto hemos de ser conscientes de que las dependencias ya no sólo vienen dadas por las rutas de nuestro diagrama, sino que también vienen dadas por el orden en el que hacen uso del recurso común. Y es así como surge el concepto de cadena crítica: La cadena más larga (considerando tiempo y recursos) de eventos dependientes.´
Si no tuviéramos en cuenta las dependencias entre tareas basadas en el uso del recurso limitado, podría darse le caso de que todos los buffers de alimentación se desbordaran. Existe la posibilidad de utilizar los buffers de recursos, que son unos buffers que se anteponen a las tareas realizadas por los recursos limitados. Así nos garantizamos que estos recursos estarán disponibles cuando necesitemos usarlos. Se utilizan en las tareas de la caena crítica, porque, como ya hemos mencionado, cuando a un recurso le llega el momento de hacer una tarea de la cadena crítica, ha de dejarlo todo y ponserse con eso.
En definitiva, ¿cómo se solucionan los problemas originados por los recursos limitados? De una doble manera: con una planificación adecuada y con los buffers de recurso.
En breve voy a tener experiencia profesional sobre la aplicación de cadena crítica en gestión de proyectos y podré reportar aquí.
No quiero terminar este post sin indicar otro post de Ángel Medinilla, en el que explica su visión sobre este asunto. Ángel no está convencido de este modelo de gestión, pero a mí sí me parece que tiene futuro. La práctica nos dirá.
Por último, para aquellos que quieran seguir ampliando información, creo que es necesario mencionar que Cadena crítica es una metodología de gestión de proyectos basada en una filosofía de gestión denominada “Teoría de las limitaciones”. En Wikipedia podeis encontrar información sobre ambas:
http://en.wikipedia.org/wiki/Critical_Chain_Project_Management
http://en.wikipedia.org/wiki/Theory_of_Constraints
Tags: productividad
He visto recientemente (via Unience) dos videos que me han resultado muy interesantes sobre dos grandes exponentes de filosofía de inversión tipo “Value”. El primero es del máximo exponente: 20% anualizado durante 40 años. Warren Buffet. Se puede ver aquí:
http://www.youtube.com/watch?v=WDmHm6Z6FBE&feature=player_embedded
Es una serie de 6 vídeos sobre Buffet, Omaha y Coca Cola, mucha Coca Cola.
Después he estado viendo otro video que representa muy bien esta filosofía de inversión. Se trata de una conferencia de Fernando Bernad, de Bestinver. Muy didáctico y muy claro en su exposición. Tienen las ideas muy claras estos señores. En su discurso habla mucho de la relación precio-beneficios, que es un instrumento que usan de forma intensiva en sus análisis. Podeis ver esta serie de videos aquí:
http://www.rankia.com/rankia/fernando-bernad
A disfrutar los videos!
Tags: Uncategorized · inversiones
noviembre 14th, 2010 · 5 Comments
Acabo de terminar de leerme este libro de Leopoldo Abadía. Me ha costado leerlo bastante, creo que es porque me esperaba más de él. Y esto, a su vez, se debe a que se anuncia el libro así: “Primero nos explicó la crisis, ahora nos da las claves para salir de ella“.
Y yo las claves nos la he visto por ningún lado. En un mundo ideal sí serviría lo que propone. Pero -claro- en un mundo ideal no habría crisis. La propuesta del sr. Abadía consiste en formar una especie de comité de sabios que esté dirigiendo el país (España) durante un periodo máximo de cuatro años. Durante este período su objetivo único y claro sería sacarnos de la crisis y establecer una forma “decente” de dirigir el país (España). Esto es directamente implanteable en nuestro entorno. ¿Porqué? Porque el objetivo de cualquier gobierno en el cargo es perpetuarse en el cargo lo máximo posible. Si mientras tanto pueden hacer algo por el país y por sus habitantes, bien. Que no, también bien. El caso es ganar las siguientes elecciones.
Es como si digo que para salir de la crisis, la solución es acabar con la democracia. Implanteable.
Aparte de lo mencionado, estoy de acuerdo con la mayoría de las cosas que dice Leopoldo Abadía. Los palitos elegantes que les da a los políticos son muy buenos. También fenomenal todo lo que dice sobre la educación: ésta es responsabilidad de los padres en primerísimo lugar, y de la escuela, después, en segundo lugar y de forma complementaria.
Sin embargo, mejor todavía es lo que dice sobre los ciudadanos que componemos este país (España) y que me permito extraer aquí:
Quiero un país en el que 40 millones de personas:
- No se insulten
- Se escuchen
- Dejen que el otro acabe de hablar para intervenir
- No luzcan sus defectos, a veces vergonzosos, presumiendo de ellos y despreciando al que no los tiene, llamándole retrógrado y hombre de Neandhertal
- No digan hoy, blanco, mañana negro y al otro, gris botella, que no sé si existe, poniendo cara de que no mienten, en vez de empezar sus discursos con: “Hoy voy a mentir más que ayer, pero menos que mañana”
- Se responsabilicen de todo lo que hagan en vez de echar la culpa al prójimo, sea el prójimo de este siglo, del pasado o del otro. Con esta táctica, cuantos más siglos pongo, más posibilidad hay de descubrir prójimos culpables y más disimulado quedo yo, que soy el único responsable de la situación
- Se enteren de que las cosas les irán bien si ELLOS trabajan como locos y no si el Estado les da un subsidio por ser jóvenes, por ser viejos, por ser de mediana edad, o parados, o no parados, etc…
- Se den cuenta de la estupidez que representan las manifestaciones exigiendo trabajo… ya! como si el trabajo… ya! fuera algo que alguien estuviera obligado a darles porque ellos no van a mover un dedo para conseguirlo.
Las verdades del barquero…
Tags: Uncategorized
En el post anterior comencé un resumen del libro Cadena Crítica de Eliyahu M. Goldratt. En este post seguimos con dicho resumen, que de paso me está sirviendo para afianzar las ideas que estoy tomando en esta segunda lectura del libro.
Vimos el concepto de ruta crítica y vimos lo importante que es proteger la fecha de la ruta crítica. Todas las tareas que la componen deben ser ejecutadas tal y como está planificado y se debe evitar el retraso en ellas. La gente que participa en el proyecto saben que cuando toca una tarea de la cadena crítica, deben dejar todo lo demás y dedicarse en cuerpo y almu a esta tarea.
Es por esto que podemos quitar todos los colchones que teníamos en cada una de las tareas que componen la ruta crítica: nos vamos a asegurar de que estas tareas no se van a retrasar. Además -por quitar esos colchones- podemos construir otro colchón al final del proyecto. Este colchón se llama buffer de proyecto.
¿Qué duración se le debe poner al buffer de proyecto? La recomendación es asignarle la mitad del tiempo total resultante de sumar los colchones eliminados.
El buffer del proyecto es uno de los tres tipos de buffers que se definen en este libro. Ahora vamos a preparar el terreno, para introducir el segundo tipo de buffer.
Como hemos dicho antes, es importante asegurarse de que las tareas que están en la ruta crítica van a salir bien. Sin embargo, es igual de importante tener en cuenta que en muchas ocasiones ocurren hechos inesperados fuera de ella y, a veces, dichos hechos tienen un calado más grave de lo que cabría esperar y hace que se produzcan retrasos en nuestra ruta crítica. O sea, el desastre. Lo que intentamos rehuir a toda costa.
¿Qué propone el libro para eliminar este riesgo? Aquí entra en acción el segundo tipo de buffer: el buffer de alimentación (feeding buffer en inglés). Éste se inserta en cada punto de intersección de una tarea (o grupo de tareas) con la ruta crítica. Es cómo el buffer de proyectos pero para los ramales que desembocan en la ruta crítica.
Dejamos para el siguiente post la presentación del tercer tipo de buffer y del concepto de cadena crítica.
Tags: productividad
Hace ya algunas semanas mi amigo Bass me recomendó Ruby on Rails para construción rápida de sitios web. Sin que sirva de precedente, me convenció y empecé por echar un vistazo al lenguage the programación Ruby.
Me recomendó para esta tarea el libro: Why’s (poignant) guide to Ruby, y sobre este libro quería hablar un poco. El autor es Why, the lucky stiff
La primera sensación que se me ha quedado es que el autor es un excéntrico. Un tipo que para introducir conceptos de metaprogramación se inventa una historia de luchas entre criaturas, dragones y otros seres. Al final uno aprende como se genera código con código en Ruby, pero le queda la duda de si era necesaria toda la historieta que ha largado. Desde luego no es un manual de referencia que vaya al grano, más bien lo podemos ver como una obra de arte. Y claro, el arte puede gustarte o no….
Por cierto, lo más llamativo del libro es que hay muchos cómics insertados a lo largo del mismo. Este “fenómeno” llega a su máxima expresión en el capítulo 7 (when you wish upon a beard), que se desarrolla exclusivamente con dibujitos.
Como podeis ver, es un libro “original” como mínimo. ¿Cumple con su objetivo? Sí, sin duda, es una introducción a Ruby.
Por último, comentar que una sensación que me ha quedado es que el autor es un tipo encantado de conocerse…
Tags: Uncategorized · libros · programacion web