Predeterminar o Fijar Opciones en Firefox

Aquí lo que necesitamos hacer es establecer ciertos valores de la configuración de Mozilla Firefox, los cuales se acceden mediante about:config, para todos los usuarios de una PC con sistema operativo Windows.

La solución consiste en crear dos archivos, uno llamado “mozilla.cfg” y otro llamado “local-settings.js”. Ambos archivos pueden crearse con notepad, pero deben cuidar de grabarlos con codificación ANSI seleccionando esa opción en el cuadro de dialogo guardar del notepad.

Sigue leyendo

Desproteger Hojas y Libros de Excel

Posteo lo que simplemente probé y funcionó.

Para desproteger hojas y libros de excel protegidos de modificación con contraseñas hay que crear y ejecutar la siguiente macro.

Al finalizar la ejecución nos mostrará la contraseña en un cuadro de dialogo.

Sub PasswordBreaker()
     'Breaks worksheet password protection.
     Dim i As Integer, j As Integer, k As Integer
     Dim l As Integer, m As Integer, n As Integer
     Dim i1 As Integer, i2 As Integer, i3 As Integer
     Dim i4 As Integer, i5 As Integer, i6 As Integer
     On Error Resume Next
     For i = 65 To 66: For j = 65 To 66: For k = 65 To 66
     For l = 65 To 66: For m = 65 To 66: For i1 = 65 To 66
     For i2 = 65 To 66: For i3 = 65 To 66: For i4 = 65 To 66
     For i5 = 65 To 66: For i6 = 65 To 66: For n = 32 To 126
     ActiveSheet.Unprotect Chr(i) & Chr(j) & Chr(k) & _
         Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _
         Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
     If ActiveSheet.ProtectContents = False Then
         MsgBox "One usable password is " & Chr(i) & Chr(j) & _
             Chr(k) & Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & _
             Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
          Exit Sub
     End If
     Next: Next: Next: Next: Next: Next
     Next: Next: Next: Next: Next: Next
 End Sub

Fuente: Ctrl C y Ctrl V Copy y paste de aquí

Si la contraseña se requiere para abrir el documento, entonces no podremos aplicar lo anterior, por lo que me resultó de utilidad el siguiente programa FreeWordExcelPassword.

Extraer el audio de un DVD o Video a mp3

En algunas ocasiones podríamos estar interesados en extraer el audio de un DVD o video que hayamos descargado adquirido para reproducirlo en el auto, celular u otro reproductor portátil en formato mp3.

En resumidas cuentas obtendremos un archivo de audio largo, determinaremos las separaciones entre pistas y generaremos los mp3 correspondientes (uno por pista).

Paso 1: Extraer el audio

De un video

Aquí tenemos diferentes alternativas de acuerdo a lo que tengamos instalado en nuestro sistema (mplayer o ffmpeg)

$ ffmpeg -i archivo_video.mp4 -ab 128 -ar 44100 archivo_audio.mp3

  • -i indica el archivo que contiene el video.
  • -ab el bitrate del archivo de audio resultante.
  • -ar la frecuencia del archivo de audio resultante.

$ mplayer -vo null -dumpaudio -dumpfile archivo_audio.mp3 archivo_video.mp4

En este caso usé un video mp4 como ejemplo, pero podría tener cualquier otro formato que puedan utilizar estos programas.

Si queremos también podemos extraerlo a un .wav, lo que ocupara mas espacio, pero el proceso será mas rápido:

$ mplayer -vo null -vc dump -ao pcm:file=archivo_audio.wav archivo_video.mp4

Y en algunos casos el audio viene insertado en el archivo de video como un mp3, por lo que solo hay que extraerlo ahorrando todo el proceso de recodificación:

$ ffmpeg -i archivo_video.flv -vn -sn -acodec copy archivo_audio.mp3

Bueno, con esto tenemos varias alternativas, la cuestión es probar y ver cuál se ajusta mejor a nuestras necesidades.

De un DVD

En el caso de que tengamos el DVD, o los archivos del DVD en nuestro disco necesitamos establecer primero cuales son los títulos que contienen las pistas de audio que nos interesan. Generalmente son los más largos.

Para ayudarnos en la elección vamos a usar lsdvdque nos dará un listado de los títulos con su extensión en tiempo.

$ lsdvd /dev/dvd

o

$ lsdvd /directorio_dvd

Luego utilizaremostrasncode para extraer el audio modificando el parámetro -T 1 al número del título adecuado.

$ transcode -i /dev/dvd -x dvd -T 1,-1 -a 0 -y wav -s 0 -m archivo_audio.wav

Paso 2: Obtener y procesar un tracklist

Si bien podemos utilizar un detector de silencios entre pistas para separarlas, esto suele dar resultados poco precisos, falsos positivos, etc.

Para lograr separar los tracks utilizaremos una lista de temas con los tiempos de cada uno y la procesaremos con LibreOffice Calc para que Audacity la tome y simplifique el proceso. En general he tenido más éxito en obtener estas listas de Wikipedia que de sitios de ventas de DVD y esas cosas.

La lista debería tener número de pista, titulo y duración.

El formato que acepta Audacity es:

inicio fin etiqueta

  • Inicio y fin están expresados en segundos con decimales separados por coma (,) en caso de necesitarlos.
  • Etiqueta es el título de la pista.
  • Todos los valores están separados por tabulaciones.

Para procesar la lista vamos a utilizar LibreOffice Calc.

Creamos una planilla de cálculo y la estructuramos como muestra la imagen:

 

PProcesando el Tracklist en Calc

Procesando el Tracklist en Calc

 

En la celda A2 especificamos el inicio de la primer pista (generalmente 0). La celda siguiente (B2) será igual a la suma del inicio más la duración de la pista que se encuentra en D2.

La celda A3 será igual al final de la pista anterior (B2) y así...

Para expresar los valores en segundos seleccionamos las columnas A y B y vamos al menú Formato → Celdas → Pestaña Números y creamos un formato personalizado ingresando [mm] o [ss] en el cuadro de texto Formato de Código.

 

Procesando el Tracklist en Calc

Procesando el Tracklist en Calc

 

Casi siempre usaremos [mm] porque los minutos se encuentran expresados como horas (4:17:00 y no 0:4:17).

Una vez terminado copiamos la planillaexcluyendo los encabezados y la columnaD a un archivo de texto.

Paso 3: Procesar la lista con Audacity

Abrimos el archivo de audio con Audacity y vamos al menú Pistas → Editar etiquetas. Eliminamos la etiqueta que abarca todo el archivo y presionamos el botón Importar. Abrimos el archivo de texto donde guardamos el tracklist, verificamos los valores y damos OK.

 

Editor de etiquetas en Audacity

Editor de etiquetas en Audacity

 

Veremos entonces como se marcan las pistas en la Pista de Etiquetas.

 

Pista de etiquetas

Pista de etiquetas

 

Luego vamos al menú Archivo → Exportar múltiple. Elegimos el formato a exportar, en este caso MP3 y hacemos los ajustes de la calidad deseada en Opciones. Establecemos la ubicación donde queremos guardar los archivos y damos click en Exportar.

 

Exportar Múltiple

Exportar Múltiple

 

Aparecerá un cuadro por cada una de las pistas pidiéndonos información de los tags de cada pista. Podemos editarlos ahora o utilizar un programa como EasyTag, el cuál resultará más práctico.

 

Editando Tags

Editando Tags

 

Confirmado todos los tags, Audacity comenzará la exportación. Y una vez finalizado nos ofrecerá un resumen.

 

Resumen final

Resumen final

 Fuentes:

 

Encontrar valores duplicados en fechas solapadas [Excel – Libreoffice]

Tenemos una planilla de cálculo con 3 columnas Fecha Inicio, Fecha Fin y Nombre.

Ejemplo:

Fecha Inicio |  Fecha Fin | Nombre

11/03/14          15/03/14       A

11/03/14         12/03/14       B

12/03/14          13/03/14       A

21/03/14          23/03/14       A

Nos interesa resaltar aquellos nombres que se repiten solamente si las fechas que corresponden a ese nombre se solapan entre si. En el ejemplo sería la 1er y 2da ocurrencia de A, pero no la última.

Podemos usar la fórmula:

SUMA.PRODUCTO(($C$2:$C$XX=$C2)*($A2<=$B$2:$B$XX)*($B2>=A$2:$A$XX))

Combinando con formato condicional podremos resaltar los valores repetidos.

En Excel debemos reemplazar la función por SUMAPRODUCTO.

Dejo un ejemplo para que puedan descargar y analizar.

FechasRepetidas.xls

 

 

Macros en OpenOffice o LibreOffice

El uso de macros en LibreOffice no resulta tan simple como en el paquete de Microsoft.

Una opción para los que no conocemos mucho de programación de macros (usando VBA o OpenOffice Basic) es grabar una macro, ejecutar los pasos para resolver el problema y modificar el código si fuera necesario.

Para grabar macros en OO, primero hay que habilitar la posibilidad de grabar macros desde el menú Herramientas ==> Opciones ==> Avanzado  y marcar la casilla “Activar la grabación de macros“. Así podemos iniciar la grabación desde Herramientas ==> Macros ==> Grabar Marco.

De todas formas debo decir que, al menos desde mi experiencia, la grabación de macros en OO no resulta tan optima en comparación con MS Office. Muchas cosas no pueden ser grabadas o bien el resultado de la grabación no produce el efecto deseado.

Como necesitaba arreglar unas planillas exportadas de SAP para el trabajo, donde tenemos LibreOffice, me dediqué a la búsqueda de un manual de referencia para OpenOffice Basic.

Buscando di con el manual que escribió Mauricio Baeza Servín, disponible en el repositorio del autor el cual me ayudó mucho en el proceso de construir las macros necesarias para el proceso. El manual resulta muy claro, bien estructurado y da varios ejemplos de usos prácticos y realistas.

Básicamente mi necesidad consistía en aplicar unos formatos, eliminar algunas filas y columnas, cortar y pegar algunos rangos de celdas, ordenar algunos datos y calcular unos subtotales.

También probé usar MS Office, pero comprobé que Excel es bastante “vidrioso” con el tema de tomar celdas con fechas en formato texto surgidas de otros sistemas, ordenarlas y filtrarlas (pueden quedar en cualquier orden).

A continuación les muestro el código de algunos ejemplos para lograr cosas más simples y rutinarias:

Cortar y pegar un rango de celdas:

' declaro las variables
Dim oHojaActiva as Object
Dim OrangoOrig as Object
Dim OrangoDest as Object
' hago referencia a la hoja activa
oHojaActiva = ThisComponent.getCurrentController.getActiveSheet()
'creamos dos variables con los rangos de origen y destino
oRangoOrig = oHojaActiva.getCellRangeByName( "A8:E11" )
oRangoDest = oHojaActiva.getCellRangeByName( "C1" )
'movemos el rango de origen al destino
oHojaActiva.moveRange( oRangoDest.getCellAddress(), oRangoOrig.getRangeAddress() )

Eliminar Filas y Columnas:

Las filas y columnas se cuentan desde 0 y para removeByIndex se indica la celda donde se comienza a eliminar y a continuación la cantidad de celdas a eliminar

' eliminar la columna D
oHojaActiva.getColumns.removeByIndex( 3, 1 )
' eliminar las filas 5 a 7
oHojaActiva.getRows.removeByIndex( 4, 3 )

Buscar y reemplazar texto en un rango:

oHojaActiva = ThisComponent.getCurrentController.getActiveSheet()
'Creo un descriptor de los reemplazos
oRD = oHojaActiva.createReplaceDescriptor
' texto a buscar y reemplazar
oRD.setSearchString( "," )
'texto que reemplaza al buscado
oRD.setReplaceString( "" )
rango.replaceAll( oRD )

Formatos de celdas:

oHojaActiva = ThisComponent.getCurrentController.getActiveSheet()
oRango = oHojaActiva.getCellRangeByName( “A5:O5” )
oRango.HoriJustify = 2 ‘ centrado
oRango.CharWeight = 150 ‘ bold
oRango.getColumns.OptimalWidth = True
oRango = oHojaActiva.getCellRangeByName( “A5:A6” )
oRango.getColumns.Width = 2420 ‘ ancho de columna

Todos los formatos se rigen por constantes o valores numéricos, por lo que conviene consultar las tablas que figuran en el manual para lograr los resultados buscados.

Otras cosas son más específicas del trabajo que me tocó hacer, traté de poner los ejemplos más  generales.

MP3 para viajar

Preparándome para un viaje surgió la necesidad de llevar conmigo algo de música y algunos podscast de programas de radio que me gustan. Todo para escuchar desde el celular que cuenta con una tarjeta de memoria de capacidad exigua. Las otras micro SD están en para las fotos junto con las cámaras.

Generalmente recorto las partes que me interesan y solo me queda reducir un poco la calidad del archivo final para que solo ocupe unos pocos MB. Nada de stereo, 44 KHz, 128 Kbps

La tarea se realiza fácilmente sobre todos  los archivos .mp3 ubicados en un directorio y otro llamado “output” (por si las moscas) donde se almacenarán los archivos resultantes.

#!/bin/bash
for line in $(ls *.mp3); 
  do lame -m m -v -b 32 -B 64 -f "$line" output/"$line"; 
done

lame, el ecoder mp3 se encarga del resto con las siguientes opciones:

  • -m m: pasa el archivo a monoaural.
  • -v -b 32 -B 64: se usará una tasa de bits variable (VBR) teniendo como límite 32 y 64 Kbps
  • -f: usará un método rápido, pero de baja calidad de codificación
El script actuando a dos manos para hacer el downsampling

El script actuando a dos manos para hacer el downsampling

En unos pocos minutos los archivos son convertido y solo nos queda copiarlos al celular. En mi caso pude reducir el tamaño de los archivos a más de la mitad de su tamaño original.

Más trucos con utilidades para audio en Linux aquí.

Eliminando archivos duplicados

Una buena medida a la hora de liberar un poco de espacio en disco es la de eliminar todos los archivos duplicados que surgen porque:

  • descargamos varias veces la misma cosa y no nos damos cuenta.
  • guardamos páginas web para leerlas después y nos quedan 350.000 .gif, .css, .js, etc. repetidos.
  • copiamos las cosas de un lado al otro para hacer un backup, vaciar un pen, etc. y después no sabemos que es que y lo dejamos por las dudas.

A nuestra ayuda viene FSLint, que no solo se encarga de hallar duplicados, sino que también de encontrar directorios vacíos, archivos temporales, nombres inválidos, ids inválidos, espacios en blanco, etc.

Sigue leyendo