jueves, 20 de noviembre de 2014

Calculadoras para Android

Este es uno de esos posts que quedan en el tintero, nunca lo termino. Acá va .....

Compré una tablet Samsung Galaxy tab 2, con upgrade de sistema operativo a Android 4.2. La compré con intenciones de tomar contacto de primera mano con tablets, veo difícil encontrar tiempo para hacer algo de desarrollo de software. La utilizo en una carcasa otterbox de la serie defender. Parece una tablet industrial,  pero ha sobrevivido con éxito varias caídas y viajes diarios en mi mochila.

Le instalé poco software extra: acrobat reader, kindle para android y un par de aplicaciones de GPS. La he utilizado bastante para hacer fotografías y vídeos caseros. En lineas generales estoy bastante conforme con la  tablet. Encontré la calculadora que venia de fabrica un poco pobre, por lo que decidí buscar algo mejor.

Si bien mis actividades diarias me demandan poco de una calculadora científica, decidí buscar una de ese tipo. Que soportara lo habitual: logaritmos y exponenciales, trigonometría, funciones hiperbólicas.  otra cosa útil era la capacidad de graficar.

Hay una oferta grande de calculadoras para dispositivos android en Google Play, aca dejo un comentario de lo que me gustó más:
  • Scientific Calculator: de Scalea Software. Si aspecto recuerda a una calculadora clásica HP o TI. No gráfica, esto no la hace menos valida.
  • Droid48sx: Basada en un emulador de calculadora HP. Trabaja con notación polaca, esto puede ser incomodo si no se tiene costumbre. 
  • TechCalc: Esta calculadora gráfica permite representar varias funciones simultaneamente. 
Me quedé con TechCalc, lo único que me molesta son los avisos. Pero la calculadora esta muy completa, puede ser útil para un estudiante de secundaria o bachillerato,  incluso cursos universitarios.

martes, 11 de noviembre de 2014

Rotacion de logs

Esta entrada del blog tiene que ver con mi trabajo con fortigate y syslog-ng. Una vez configurados los appliances para que loguee mediante syslog, es necesario administrar los logs. De no hacerlo los logs crecerán indefinidamente. La rotación de logs consiste en remplazar un archivo de logs "lleno", por uno nuevo vacío. Los archivos viejos se guardan de acuerdo a un criterio a definir o necesidades particulares de la instalación. 

En mi caso concreto estoy trabajando con logrotate, una herramienta disponible en muchas distribuciones Linux. Ha sido portada a varios UNIXes (Solaris, AIX). Si no se cuenta con una herramienta como logrotate, es necesario desarrollar un script ad hoc. En una próxima entrada del blog voy a poner uno. Estoy trabajando en SuSE enterprise, algún camino podría cambiar en otra distribución.

EN el directorio de configuración de logrotate, /etc/logrotate.d/, agregue un archivo para rotar los logs de los fortigate. Va el listado del archivo:


/var/log/fortigate {
    create 0644 root root
    compress
    dateext
    daily
    rotate 30
    missingok
    postrotate
        /etc/init.d/syslog reload > /dev/null
    endscript
}


Por cada archivo o grupo de archivos a rotar tendremos una entrada como esta. Tenemos las entradas prerotate o postrotate, donde podemos poner un script que se corre antes o después de la rotación. La entrada daily define que la rotación sea diaria, podría ser weekly o monthly para rotar semanalmente o mensualmente. Otra alternativa es rotar por tamaño del archivo, en lo personal no me gusta, prefiero rotar por fecha. Otras entradas importantes son rotate, compress y missingok. Con rotate definimos cuantos archivos queremos conservar. El comando compress es opcional pero muy recomendado, los archivos son comprimidos luego de rotados. Podría darse que un archivo de logs no exista, para esto tenemos la directiva missingok. En la pagina man del paquete se puede ver mas opciones, el paquete es muy versatil.

lunes, 10 de noviembre de 2014

Limpiar directorio SoftwareDistribution

Buscando solución a un problema de respaldos encontré este directorio consumiendo casi 2GB de disco. La mayoría de los archivos aparentaba estar allí hace mucho, decidí borrar ese directorio. Una búsqueda en los foros de soporte de microsoft me llevo a armar el procedimiento que detallo acá:

  • Ir a Inicio, opción ejecutar. Allí poner cmd y dar enter.
  • En la línea de comando ejecutar  net stop wuauserv.
  • Renombrar el directorio c:\windows\softwaredistribution a
    c:\windows\softwaredistribution.old.
  • Iniciar nuevamente el servicio: net start wuauserv.
  • Cerrar la ventana
El procedimiento es simple, permite recuperar algo del espacio desperdiciado. Hay más, tendré que dedicar futuras entradas del blog a esto. 

lunes, 3 de noviembre de 2014

Respaldos MOODLE

He estado trabajando en la actualización de un servidor Moodle muy viejo, versión 1.9.4. Para llevar este servidor a la ultima versión estable, es necesario hacer una serie de actualizaciones pasando por varias de las versiones intermedias. Se aconseja realizar respaldos totales, previo a cada actualizaciones. Es deseable que en el respaldo esté el directorio de datos (MOODLEDATA), la base de datos y el directorio que contiene los ejecutables.

Para este trabajo hice un script que dejo acá:

#!/bin/sh
# Respaldo Total de Moodle


MYSQLDUMP=$(which mysqldump)
TAR=$(which tar)


# Directorio Instalación de Moodle
MOODLE_DIR="/var/www//moodle"

# Directorio de Datos de Moodle
MOODLE_DATA_DIR="/var/moodledata"


APACHE_CONF_DIR="/etc/apache2"
PHP_CONF_DIR="/etc/php5"

MYSQL_USER="mysql_administrator"
MYSQL_PASSWORD="Muy.Secreta"
MYSQL_DB="moodle_db"

SERIAL=$(date +%Y%m%d-%H%M)

BKP_DIR="/home/RESPALDO"
BKP_FILE="TOTAL-MOODLE_EMPRESA"

echo "Comienza Respaldo de Moodle"
echo "DUMP de Base de datos"
${MYSQLDUMP} -u${MYSQL_USER} -p${MYSQL_PASSWORD} ${MYSQL_DB} > ${BKP_DIR}/${MYSQL_DB}.sql
echo "Respaldo de Moodle y MoodleData"
${TAR} -cvzf ${BKP_DIR}/${BKP_FILE}-${SERIAL}.tar.gz ${MOODLE_DIR} ${MOODLE_DATA_DIR} ${PHP_CONF_DIR} ${APACHE_CONF_DIR} ${BKP_DIR}/${MYSQL_DB}.sql
echo "fin"

 Pendientes

Este script es muy básico, bien ad hoc. El script puede hacerse mas generico, Moodle trabaja con las bases de datos más populares. La mayoria de las instalaciones trabajan con MySQL, pero estaría bueno soportar otras bases de datos. Es útil contar con algo de documentación y un paquete de instalación, para las distribuciones más populares.