Posted on Julio 7, 2008 in Notas rapidas, Software, Software Libre, sysadmin by OsroNo Comments »
Algo que puede ser útil en un script de copias de seguridad usando rsync es el borrado automático de
directorios antiguos de backup, de forma que no se agote el espacio en el disco duro.

Podemos usar el parámetro –date del comando date para encontrar fechas pasadas y futuras, en este
caso nos interesan las pasadas de la siguiente forma:

Hace un mes:

# date –date=”1 months ago”

Ayer

# date –date=”yesterday”

Si combinamos esto con diferente formatos de salida de date podemos obtener el nombre de un
directorio antiguo que debe ser borrado

# date +%Y-%m-%d –date=”1 months ago”

Tendremos como salida algo como

2008-06-07

que es el nombre del directorio donde se almacenaron las modificaciones hace un mes, asi que solo
resta enviar el comando necesario para borrarlo.

rm 2008-06-07

Ahora si el backup se realiza a diario, crearemos el directorio de hoy y borraremos el de hace un mes,
el de hoy se borrara dentro de un mes.

Visto en: http://www.apache-es.org/2008/07/04/comandos-que-recuerdas-con-los-anos/

Posted on Junio 22, 2008 in Debian, Dia a dia, Gnome, Software, Software Libre by OsroComments Off

logo Epiphany Iceweasel

Los lectores de este blog sabrán que Gnome es la niña de mis ojos en cuanto a entorno de trabajo en el ordenador y que siempre intento usar las aplicaciones de este entorno para mi trabajo diario (Evolution, Nautilus, Brasero, Epiphany, y un largo etc).

Pero en los últimos días he pasado de usar Epiphany como mi navegador predeterminado a usar Iceweasel, mas conocido como Firefox, las razones para esto son:

  • Nunca he sido de letras, por lo que para mi es indispensable el corrector ortográfico que tiene Iceweasel para los formularios que relleno a diario incluyendo el que uso para escribir en este blog.
  • La utilidad de abrir todas las pestañas que estaban abiertas en el momento de cerrar el navegador, no tiene precio, para conseguir esto con Epiphany tenia que usar xkill para matar la aplicación y cuando la ejecutase de nuevo el sistema de recuperación de la sección me cargaría nuevamente las pestañas, pero si por casualidad lo cerraba correctamente perdía todas las pestañas ya que ni me avisaba que tenia varias pestañas abiertas ni el sistemas de recuperación de secciones funcionaba en tal casoVentana de Preferencias de Iceweasel
  • La posibilidad de instalar plugins que aumentan mi productividad es muy superior en Iceweasel, plugins como:
    • AdBlock
    • del.icio.us Complete
    • Flashblock
    • Image Zoom
    • Notify
    • Screen grab
    • Show IP
    • Wave Toolbar
    • Web Developer toolbar

En este punto hay que tener especial cuidado, ya que la disponibilidad de cientos de plugins nos puede hacer perder el norte he instalar plugins que no son realmente útiles y que al final solo consiguen hacer mas pesado el uso del navegador.

Vamos a ver cuanto me dura el experimento, por que la simplicidad de Epiphany me gusta mucho y se que tambien extrañare el manejo rapido de las cookes que tiene ese navegador.

Si alguien conoce soluciones para poder regresar cuanto antes a Epiphany agradezco los comentarios.

Enlaces de Interes:

http://www.gnome.org/projects/

Posted on Junio 21, 2008 in Debian, Internet, Software, Software Libre by OsroNo Comments »

En una instalación de qmail + vpopmail que soporta multi-dominio existe un fichero en la configuración de vpopmail que determina los valores por defecto aplicados a un dominio cuando este es creado, el fichero se llama

vlimits.default

esta muy bien documentado y los parámetros interesantes que podemos manipular son los siguientes

maxpopaccounts           # Máximo numero de buzones por dominio  incluido el postmaster
maxforwards                # Máximo numero de reenvíos por dominio
maxautoresponders       # Máximo numero de auto respuestas por dominio
maxmailinglists              # Máximo numero de listas de correo por dominio
quota                          # Tamaño máximo que puede ocupar un dominio en MegaBytes
maxmsgcount                # Numero máximo de mensajes que puede tener el dominio al mismo tiempo
default_quota               # Tamaño por defecto del buzón en Bytes
default_maxmsgcount     # Numero máximo de mensajes que puede almacenar un buzón

Existen mas parámetros que se pueden manipular en este fichero que como todos los buenos ficheros de configuración se puede modificar con cualquier editor de texto.

Ahora dentro de la instalación de vpopmail existe un comando que permite modificar estos valores para un dominio o un buzón individual.

vmoddomlimits

si ejecutamos el programa solo nos mostrara (en ingles) todas las opciones que podemos usar para manipular tanto las opciones de un dominio o buzón como los flags que podemos alterar.

Básicamente, permite ajustar los mismo parámetros que en el fichero vlimits.default para personalizarlos para cada dominio, y los flags que pueden autorizar o no el acceso a través de POP SMTP IMAP o Webmail, así como activar o desactivar el anti-spam y hacer un borrado automático de los mensajes marcados como spam.

La sintaxis es simple

vmoddomlimits [opciones] dominio

Ej:

vmoddomlimits -S dominio.com   # Muestra la configuración actual del dominio.

vmoddomlimits -Q 100 dominio.com  # Asigna una cuota max de 100 MB al dominio.

vmoddomlimits -R 1 dominio.com  # Máximo una auto respuesta para el dominio.

en el caso de los flags

vmoddomlimits -g i dominio.com   # Impide el acceso a través de IMAP

vmoddomlimits -g x dominio.com  # Borra todos los mensajes considerados SPAM

Eso es todo lo que tengo por decir ahora. :-)

Posted on Junio 19, 2008 in Debian, Internet, Software, Software Libre by OsroNo Comments »

Hace pocos dias he tenido que realizar un ajuste en uno de los servidores de correo que administro, durante el proceso en una de las pruebas encontré que algunos mensajes de test que enviaba desde otra maquina eran rechazados, es mas en los log de qmail (que es el servidor que tiene el destinatario) no aparecía un registro de la conexión SMTP efectuada por el servidor remitente, pero este si reportaba el rechazo en su log.

Investigando un poco encontré que el servidor de destino rechazaba el mensaje por que en From: y el Return-Path: de las cabeceras del correo, estaban mal formados.

La razón de esto es que estaba usando el cliente mail del sistema, y al enviar un mensaje desde consola, el usuario es el del sistema y el dominio el que este configurado en el servidor de correo local, de forma que en este caso tanto el From: como el Return-Path era:

orosales@maquina

que no es una dirección de correo valida ya que maquina no es un FQDN (Fully Qualified Domain Name), lo correcto es:

orosales@maquina.dominio

Y el motivo de todo esto es que el exim4 que es el servidor por defecto en Debian GNU/Linux no estaba correctamente configurado asi que use la herramienta de reconfiguración de Debian GNU/Linux y lo arregle:

dpkg-reconfigure exim4-config

Cuando me pidio el FQDN lo modifique al valor correcto.

Reconfigurando exim4

Reconfigurando Exim4

Una vez echo esto los mensajes fueron entregados al servidor de destino sin ningun problema.

Enlaces de Interes:

http://www.ietf.org/rfc/rfc2821.txt

http://smtputils.sourceforge.net/

Posted on Abril 25, 2008 in Debian, Software, Webs Recomendadas by OsroNo Comments »

Motivado por que mi banco que tiene su pagina web hecha en java me vi en la necesidad de instalar el plugin de java en mi sistema operativo, pero oh! sorpresa cuando descubro que no esta en los repositorios de Debian, ya que uso una distribución de 64 bits.

Buscando un poco por Internet encontré un articulo en la muy muy muy buena pagina de EsDebian.org

Procedimiento:

1. Descargar el plugin de ftp://ftp.gwdg.de/pub/languages/java/linux/JDK-1.4.2/amd64/03/

2. Descomprimir el fichero en /usr/java

3. Enlazar desde el directorio creado a /usr/lib/mozilla/plugins

4. Abril el navegador.

Ahora como yo soy hombre de consola aquí están todos los pasos

$ su -
Contraseña: <aqui la contraseña de root>
mkdir /usr/java
cd /usr/java
wget ftp://ftp.gwdg.de/pub/languages/java/linux/JDK-1.4.2/amd64/03/j2re-1.4.2-03-linux-amd64.bin
chmod +x j2re-1.4.2-03-linux-amd64.bin
./j2re-1.4.2-03-linux-amd64.bin
<Aquí debes leer la licencia y luego si la aceptas escribir>
yes
<Se creara el directorio j2re1.4.2> 
cd /usr/lib/mozilla/plugins/
ln -s /usr/java/j2re1.4.2/plugin/amd64/mozilla/libjavaplugin_oji.so

<Ahora abre el navegador y en la barra de direcciones escribe>

about:plugins

Revisa la pagina y comprueba que aparece el plugin de java

Ahora ya puedes visitar sitios web que usen java

Enlaces de interés.

http://www.amd64.com/

Posted on Abril 13, 2008 in Software, Software Libre, mi codigo by OsroNo Comments »

Enunciado

2.- El recibo de la electricidad se elabora de la siguiente forma:
- 100 € de gastos fijos.
- 50  €/Kw para los primeros 100 Kw.
- 35 €/Kw para los siguientes 150 Kw.
- 25 €/Kw para el resto.
Elabore un programa que lea de teclado los dos últimos valores del contador (es decir,
el valor que tenía el contador el mes pasado y el valor que tiene este mes), y calcule e
imprima en pantalla el importe total a pagar.

Código

// Incluir E/S y Librerías Standard
#include <iostream>

using namespace std;

// Zona de Declaración de Constantes

int gastos_fijos=100, v_tramo_1=50, v_tramo_2=35, v_tramo_3=25, limite_1=100, limite_2=250; // Parametros definidos para la factura
int total_tramo_1=(v_tramo_1*limite_1), total_tramo_2=(v_tramo_2*(limite_2-limite_1)); //Calculo los valores para tramos completos para no tener que calcular para cada cliente

// Zona de Declaración de Tipos

// Zona de Cabeceras de Procedimientos y Funciones

// Programa Principal

int main()
{
// Zona de Declaración de Variables del Programa principal

int lectura_anterior, lectura_actual, consumo, a_pagar;

// Codigo

cout << “Escriba las lecturas anterior y actual: “;
cin >> lectura_anterior >> lectura_actual;
consumo=lectura_actual-lectura_anterior;
if (consumo > limite_1 && consumo < limite_2)
{
a_pagar = (gastos_fijos + total_tramo_1 + (( consumo - limite_1) * v_tramo_2));

}
else if ( consumo > 250 )
{
a_pagar = (gastos_fijos + total_tramo_1 + total_tramo_2 + ((consumo - limite_2) * 25));
}
else
{
a_pagar = (gastos_fijos + (consumo * 50));
}
cout << “Lectura Anterior: ” << lectura_anterior << endl;
cout << “Lectura Actual: ” << lectura_actual << endl;
cout << “Consumo: ” << consumo << endl;
cout << “A Pagar: ” << a_pagar << endl;

return 0; // Valor de retorno al S.O.
}

// Implementación de Procedimientos y Funciones

 Notas

Podria mejorarce comprobando que la lectura actual sea mayor que la lectura anterior.

Posted on Abril 13, 2008 in Software, Software Libre, mi codigo by OsroNo Comments »

Teniendo en cuenta que después de muchos años no he podido aprender a programar en C++ y que estoy ahora nuevamente intentándolo estoy escribiendo programas muy simples y elementales, y a partir de ahora publicare el código que escriba en el blog.

En general intentare que el código funcione y que la publicación sirva para que cualquier persona pueda si quiere indicarme mejoras o errores que este cometiendo.

Siempre agradeceré cualquier comentario o sugerencia y espero vuestra benevolencia ante este pequeño saltamontes del c ++.

Y para ir al grano este es el primer problema.

Enunciado

Una empresa maneja códigos numéricos con las siguientes características:
- Cada código consta de cuatro dígitos:
- El primero representa a una provincia.
- El segundo el tipo de operación.
- Los dos últimos el número de la operación.
Escriba un programa que lea de teclado un número de cuatro dígitos, almacenándolo
en una variable de tipo int, y posteriormente imprima en pantalla la siguiente
información.
PROVINCIA                                           &
TIPO DE OPERACION                       &
NUMERO DE OPERACION          &&
En caso de que el número no tenga exactamente cuatro dígitos, en lugar del mensaje
anterior, habrá que imprimir en pantalla el siguiente mensaje de error:
ERROR: CODIGO INVALIDO.

Código

// Incluir E/S y Librerías Standard
#include <iostream>

using namespace std;

// Zona de Declaración de Constantes

int divisor=10, digitos=4;

// Zona de Declaración de Tipos

// Zona de Cabeceras de Procedimientos y Funciones

// Programa Principal

int main()
{
// Zona de Declaración de Variables del Programa principal

int codigo, contador, mod, dividendo, provincia, t_operacion, n_operacion, var_temp;

// Codigo

cout << “Escriba el código” << endl;
cin >> codigo;
dividendo=codigo;

for (contador=1;contador<=(digitos-1);contador++)
{
mod=(dividendo%divisor);
dividendo=(dividendo/divisor);
if ( contador == 1)  // Si es la primera division asigno el modulo a la variable temporal
{
var_temp = mod;
}
else if ( contador == 2) //Si es la segunda division sumo la variable temporal mas el produnto del modulo por 10 para optener los dos ultimos digitos
{
n_operacion = ((mod * 10) + var_temp);
}
else
{
t_operacion = mod;   // En este punto se asignan la provincia y el t_operacion
provincia = dividendo;
}

}
if (dividendo > 9 || dividendo == 0)
{
cout << “ERROR: CODIGO INVALIDO.” << endl;
}
else
{
cout << “Provincia: ” << provincia << endl;
cout << “Tipo de operacion: ” << t_operacion << endl;
cout << “Numero de operacion: ” << n_operacion << endl;
}

return 0; // Valor de retorno al S.O.
}

// Implementación de Procedimientos y Funciones

Posted on Abril 6, 2008 in Notas rapidas, Software by OsroNo Comments »

GDB es un depurador de C y C++ de GNU

Algo sobre este depurador

Ejecutarlo gdb programa

Ejecutar el programa dentro del depurador run

Añadir un breakpoint break linea

Ver el valor de una variable print variable

Asignar un nuevo valor a una variable set variable=valor

Enlaces de interes:

http://es.wikipedia.org/wiki/GNU_Debugger

http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_C

http://es.wikipedia.org/wiki/C%2B%2B

http://arco.inf-cr.uclm.es/~david.villa/doc/repo/gdb/gdb.html

Posted on Febrero 28, 2008 in Blogs Recomendados, Gnome, Software, Software Libre by OsroNo Comments »

Ayer gracias a Carlos Garnacho aprendí que Gnome tiene un directorio donde están configurados todos las accesos rápidos HotKeys.

La historia empieza con un problema que me atormento durante días, al usar el Epiphany, resulta que en determinadas ocasiones cuando escribía la letra e ya fuese en la barra de direcciones o dentro de un formulario en cualquier página web el navegador seleccionaba todo lo que hasta el momento hubiese escrito, siempre que fuera la primera e de la frase ya que las siguientes funcionaban correctamente, solo en la barra de direcciones por que en los formularios siempre fallaba, aunque si se podían escribir tanto la E y el

Después de desinstalar el epiphany, de borrar el directorio ~/.gnome2/epiphany de dejar las claves del Gconf por defecto usando

gconftool-2 –recursive-unset /app/epiphany y gconftool-2 –recursive-unset /schemas/apps/epiphany

Sin que nada de esto funcionara ha venido Garnacho en el IRC de Gnome Hispano y me ha dicho que puede crear un atajo de teclado sin proponermelo, que mirara en ~/.gnome2/accels/ , allí encontré un fichero por cada programa de Gnome, en el cual están definidos con una sintaxis muy clara cada uno de los atajos de teclado que tiene un programa, use el vim para editar el que correspondía a Epiphany y en la linea 20 me encontré con esto:

(gtk_accel_path “<Actions>/WindowActions/EditSelectAll” “e”)

Muy fácil de interpretar, la tecla e abre la edición para todo lo escrito, ¡lo que me estaba pasando!, bueno pues borre la linea y se acabo el problema. :-)

Preguntas:

1. Como active esta hotkey?

2. Hay algo mal en Gnome que permite a un usuario configurar una Hotkey sin saberlo? es un fallo de usabilidad?

Posted on Noviembre 23, 2007 in Software by OsroNo Comments »

Ya sabéis que no suelo hablar de la competencia pero esta ocacsión lo merece ;-)

Hasta donde mi memoria alcanza nunca vi un Windows XP con un pantallazo azul de la muerte, no se si es debido a que el ultimo sistema operativo de Microsoft del que fui usuario fue Windows 95 o por que efectivamente los sistemas operativos de esta empresa iban mejorando con el tiempo.

Pero!!! hoy me he encontrado con mi primer pantallazo azul de la muerte en Windows Vista (No, no soy usuario de este sistema), un compañero del trabajo intentaba copiar desde el servidor un fichero muy grande 1.4 GB así que uso el copiar y pegar y lo dejo ahi para que trabajara, un rato después regreso y se encontró con este Pantallazo Azul de la Muerte en Windows Vista.

Para ver mas claro lo que dice el vista he hecho estas fotos.

Pantazallo azul en Windows Vista, Visto de cerca

Otro pantazallo azul de Windows Vista

A lo mejor el sistema operativo Windows Vista es realmente una downgrade de Windows xP ;-)