jueves, 17 de diciembre de 2015

Ultimas versiones de SAMBA para OpenSuSE o SLES

SuSE cuenta con un muy buen buscador de Software, donde se puede encontrar paquetes compilados por para las versiones soportadas y otras distribuciones (Redhat, CENTOS, Debian). Hoy necesitaba bajar versiones actualizadas de Samba4, para SLES

Hay un repositorio especifico para Samba, con los ultimos paquetes estables. Con algo de trabajo, por particularidades de SLES, tengo samba 4 instalado en un equipo.

miércoles, 4 de noviembre de 2015

El cambio a horario de verano que no fue ...

A principios del pasado mes de octubre era la fecha programada para el cambio hora. Días después de la fecha en que debía hacerse el cambio seguían las repercusiones. 
Foto de diario "El Pais"
A nivel popular se sintió en muchos celulares, donde los proveedores de sistemas operativos para celulares no sacaron parches correctivos. Así que los usuarios de Android, Symbian y Blackberry debieron utilizar un paliativos: la zona horaria de Buenos Aires.

Me consta que es necesario actualizar JAVA, no he escuchado mucho comentario al respecto. IBM sacó actualizaciones para algunas versiones de la JVM. Oracle provee una herramienta.

Incluso hubo una disculpa publica de la telefonica estatal. Esta ultima empresa cargo culpas de una situación que no generó. La decisión política de dejar de hacer el cambio a horario de verano no se comunicó bien. No se generó conciencia del impacto de la misma.


lunes, 2 de noviembre de 2015

¿RAID 5 o RAID 10? He ahi la cuestion ....

En el trabajo estamos por instalar un nuevo storage, y surge la sana discusión de que forma utilizarlo mejor. Una de las discusiones fue que versión de RAID era más adecuada a nuestras necesidades. De los múltiples niveles de RAID disponibles nuestra discusión se centro en las ventajas y contras de RAID 5 y RAID 10

Para el que quiere repasar o conocer sobre los distintos niveles de RAID está el articulo de wikipedia que enlace más arriba. O este otro, de Linux Magazine.

En equipos de escritorio (o servidores de gama baja) es habitual contar con Motherboards que soportan RAID 0, 1 y ocasionalmente RAID 10. Con las capacidades de los discos actuales vale la pena considerar utilizar discos en RAID 1 o RAID 10, quizás comparar con la opción de discos de estado solido. Si no se cuenta con soporte por hardware de RAID, se puede utilizar software RAID, soportado por muchos sistemas operativos.

Este Paper dió inicio a nuestra discusion. Conversando con colegas y quienes nos vendieron el equipo entro tambien en consideraciones RAID 6. la ventaja frente a RAID 5 esta en la posibilidad de seguir funcionando con dos discos degradados. No es raro que falle un disco e inmediatamente fallen otros discos del array. Y tengo en vistas varias fallas durante la reconstrucción de un array.

Nuevamente la wikipedia nos aporta un muy buen cuadro comparativo de los niveles de RAID. Para los RAIDs anidados (RAID 50, RAID 01 o RAID 10) tenemos esta otra tabla.

No hay una única respuesta  depende mucho de la aplicación. En nuestro caso, una instalación pequeña, optamos por algo bien distinto a lo que originalmente habíamos pensado. Un array en RAID 6 con un POOL de RAID 5.

domingo, 27 de septiembre de 2015

Actualizar Zonas Horaria de uruguay 2015

Muy sobre la fecha llega esta entrada, espero sea de utilidad 

El pasado 29 de Junio de 2015 se resolvió en consejo de ministros no realizar el cambio a horario de verano en Uruguay a partir de Octubre de 2015. Muchos sistemas informaticos que soportan el cambio automatico a horario de verano es necesario actualizar la configuracion (o reglas) para que no se haga el cambio. Las actualizaciones deben aplicarse antes del 4 de Octubre, la fecha en que deberia realizarse el cambio de horario.

En MacOS X, Linux y la mayoria de los UNIX el cambio consiste en actulizar un archivo donde estan las reglas para el país o zona horaria afectada. La IANA mantiene el archivo de timezones. En Windows cada zona horaria es una entrada en la registry. En dispositivos moviles y sistemas embebidos es necesario consultar al fabricante.

Windows

Las versiones 2008R2, 2012, 7, 8 y 8.1 tienen parches que actualizan las reglas para Uruguay. Más información: https://support.microsoft.com/en-us/kb/3077715. El parche para 2008R2 podría funcionar en algunas versiones de Windows Vista. En las versiones de Windows no contempladas en el parche, o cuando no es posible aplicarlo hay varias soluciones. Una posible es pasar el equipo a la zona horaria de Argentina. Otra solución es destildar la opción "Ajustar el reloj al horario de Verano", en la configuracion de zona horaria (ventana de configuracion de fecha y hora).Una alternativa más trabajosa es actualizar los archivos de la registry, como describí en una entrada previa del blog. Este articulo da alguna idea de como se podría editar la zona para aplicar los cambios.

Linux

Las distribuciones que están siendo mantenidas sacaron todas parches, es necesario asegurarse que estén aplicados. Los paquetes tiene nombres como timezone2015f o tzdata2015f. Para equipos corriendo distribuciones que no tienen actualizaciones (o no se quiera/pueda aplicarlas) se puede bajar el archivo de la IANA. El archivo debe ser tzdata2015f.tar.gz o mas nuevo. Buscar en el archivo SouthAmerica la informacion referente a Uruguay y compilarlo con zic(8). El archivo viejo reemplazarlo por el archivo compilado. Los archivos suelen estar /usr/share/lib/zoneinfo.

Para probar el cambio utilizamos zdump. Las ultimas lineas de ejecutar  zdump -v America/Montevideo deberian ser similares a esto:
      America/Montevideo  Sun Mar  8 03:59:59 2015 UTC = Sun Mar  8 01:59:59 2015 UYST isdst=1
      America/Montevideo  Sun Mar  8 04:00:00 2015 UTC = Sun Mar  8 01:00:00 2015 UYT isdst=0

Otros UNIXes

En AIX me sugieren cambiar a la zona horaria de Argentina/BuenosAires. Compilar el archivo de timezone funciona en los equipos que usan "Olson Timezone", hasta la versión 5.2 AIX utilizó formato POSIX. En algunos equipos con AIX 6.1 pude actualizar con éxito la zona horaria, compilando el archivo y sustituyendo el viejo por el compilado. Seguramente escriba algo especifico de AIX

En Solaris, *BSD o MacOS X se compila la timezone y se remplazan los archivos.No tengo acceso a equipos corriendo esos sistemas operativos para probarlo. Esta discusion tiene algunas ideas de como se podria actualizar en MacOS X.

Dispositivos Moviles y sistemas embebidos

En la mayoria de los dispositivos moviles dependemos del fabricante, si este no proporciona actualizaciones hay poco que podamos hacer. Como medida de mitagacion algunos celulares permiten optar si se quiere aplicar el cambio en la zona horaria afectada. He visto pocos dispositivos embebidos que manejen cambio de hora, hay que verlo caso a caso. Si el fabricante da actualizaciones o un mecanismo para actualizar, estamos de parabienes. En otro caso nos queda pasar a una zona horaria que no tenga horario de verano.

Conclusiones

Esta entrada del blog describe muy someramente las alternativas frente a este problema. Este articulo de El Observador es interesante en la argumentacion que da, contraria al horario de verano. De todas formas no hay nada concluyente a favor o en contra de esta practica.

miércoles, 23 de septiembre de 2015

Calcular Sumas MD5 en AIX

Necesito verificar un archivo descargado en un equipo con AIX. Esto se hace con sumas MD5, en Linux esto lo hacemos con MD5SUM. En AIX no tenemos esta herramienta, pero tenemos csum que sirve para calcular sumas MD5. Ejemplo

        root@aix # csum -h MD5 /etc/passwd
        092f62e68ce4ba03dfd3d1e7f0de9d3b  /etc/passwd

Para archivos de más de 2 GB hay que tener aplicado un parche.

viernes, 4 de septiembre de 2015

Zimbra y TLS: Correos de GMAIL no aceptados

Este problema lo encontré meses atrás, hay poco escrito sobre esto. Me avisan que no estaban llegando los correos que nos enviaban desde GMAIL. En los logs del correo encontré entradas como estas: 

Feb 28 12:26:43 srv-correo postfix/smtpd[12137]: setting up TLS connection from mail-ig0-f170.google.com[209.85.213.170]
Feb 28 12:26:43 srv-correo postfix/smtpd[12137]: mail-ig0-f170.google.com[209.85.213.170]: TLS cipher list "aNULL:-aNULL:ALL:+RC4:@STRENGTH:!aNULL:!MD5:!DES"
Feb 28 12:26:43 srv-correo postfix/smtpd[12137]: SSL_accept:before/accept initialization
Feb 28 12:26:44 srv-correo postfix/smtpd[12137]: SSL_accept:SSLv3 read client hello A
Feb 28 12:26:44 srv-correo postfix/smtpd[12137]: SSL_accept:SSLv3 write server hello A
Feb 28 12:26:44 srv-correo postfix/smtpd[12137]: SSL_accept:SSLv3 write certificate A
Feb 28 12:26:44 srv-correo postfix/smtpd[12137]: SSL_accept:SSLv3 write key exchange A
Feb 28 12:26:44 srv-correo postfix/smtpd[12137]: SSL_accept:SSLv3 write server done A
Feb 28 12:26:44 srv-correo postfix/smtpd[12137]: SSL_accept:SSLv3 flush data
Feb 28 12:26:44 srv-correo postfix/smtpd[12137]: SSL3 alert read:fatal:protocol version
Feb 28 12:26:44 srv-correo postfix/smtpd[12137]: SSL_accept:failed in SSLv3 read client certificate A
Feb 28 12:26:44 srv-correo postfix/smtpd[12137]: SSL_accept error from mail-ig0-f170.google.com[209.85.213.170]: 0
Feb 28 12:26:44 srv-correo postfix/smtpd[12137]: warning: TLS library problem: 12137:error:1409442E:SSL routines:SSL3_READ_BYTES:tlsv1 alert protocol version:s3_pkt.c:1256:SSL alert number 70:


En el foro de zimbra hispano encontré una sola mención al problema. Intervine allí, y comente como lo resolví. En realidad lo que tengo es un paliativo, como el usuario zimbra ejecuté:

      postconf -e smtpd_tls_mandatory_protocols='!SSLv2,!SSLv3,!TLSv1.2'
      postconf -e smtpd_tls_protocols='!SSLv2,!SSLv3,!TLSv1.2'


La solución la encontré por ensayo y error, a partir de una discusión en serverfault.com . Acá esta el hilo, que a su vez hace referencia a otro hilo en los foros de FreeBSD. No he vuelto a tener problemas, en un próximo upgrade de Zimbra voy a probar esto con la configuración por defecto.

viernes, 14 de agosto de 2015

Recodificar claves MD5

Semanas atrás estaba trabajando en la migración de casillas de correo a un servidor nuevo basado en ZIMBRA.  Se quiere que los usuarios autentiquen en el nuevo sistema con sus passwords actuales. Las passwords actuales están encriptadas con el algoritmo MD5, almacenadas en una base de datos MySQL. En Zimbra se utiliza "autenticación interna", las claves se almacenan en OpenLDAP (atributo userpassword).

Zimbra encripta las passwords con el  algoritmo SSHA, pero admite passwords con otros algoritmos. Queriendo migrar las password de un sistema a otro, nos encontramos que era necesario recodificar las passwords almacenadas en la base datos, para que pudieran ser utilizadas con exito. OpenLDAP almacena las passwords en un formato binario, codificado en base64. Aquí se discute esto, con ejemplos en PHP. Y en este mensaje de una lista de OpenLDAP encontramos la razón de nuestro problema y un script de conversión.Copio acá el script:

#-------------------------------------------#
#!/usr/bin/perl
use MIME::Base64;
use strict;
my @md5 = split "",$ARGV[0];
my @res;
for (my $i = 0 ; $i < 32 ; $i+=2)
{
my $c = (((hex $md5[$i]) << 4) % 255) | (hex $md5[$i+1]);
$res[$i/2] = chr $c;
}
print "{MD5}".encode_base64(join "", @res);
#-------------------------------------------#
 

Cambiar la contraseña encryptada en Zimbra

Solo nos resta cambiar en la cuenta de zimbra la contraseña y poner la que acabamos de recodificar. Esto se hace desde linea de comandos, corriendo zmprov con el usuario zimbra:

zmprov ma usuario@dominio userPassword 'X03MO1qnZdYdgyfeuILPmQ==' 

Otras aplicaciones

Esta información puede servir para migrar otras aplicaciones que utilizan MySQL (mediante PAM) para autenticar usuarios.

lunes, 10 de agosto de 2015

Ayuda para usar el vi

Esta no es una apología del vi, el editor de texto standard de Linux y UNIX.  Editar archivos de texto plano es una tarea frecuente, VI es el editor que se instala por defecto en ambientes UNIX (y UNIX like). Tener un buen manejo de este editor es importante para trabajar en Linux, UNIX y afines (*BSD) o realiza tareas avanzadas en MacOS X. Para alguno de mis ocho lectores fanático de Emacs: no le tengo especial aprecio, tampoco lo rechazo. Me hice al habito de trabajar en vi, soy bastante productivo con el.

El vim, una implantación de vi, ha reconciliado con vi a muchos de sus más acérrimos detractores. Contando con sintaxis coloreada para muchos lenguajes de programación y ayuda en linea. De todas formas, no se puede negar que la curva de aprendizaje es empinada. Hace muchos años con Enrique Verdes creamos una cartilla de VI, para facilitar el aprendizaje y uso.

En la desaparecida revista Linux+ (edición española) se publicó un buen articulo para utilizar el VIM como entorno de desarrollo, por Jorge Emanuel Capurro. Por suerte el articulo se puede descargar de aqui.

Esta entrada la motivó un comentario sobre un cheat sheet para vim.Creada por Max Cantor, es posible comprar un Poster Gigante para decorar la oficina (o regalar en el programmer Day o sysadmin Day). Esta disponible para descargar una versión de de baja resolucion (para uso personal) en vimcheateet.

martes, 4 de agosto de 2015

Fotografo y/o Modelos se buscan ...

Una fotógrafa curioseaba en una tienda de Richmond, encontró 4 cajas de diapositivas. Las lleva a su casa, las escanea ... y quedo asombrada de lo que encontró. Quiere saber más sobre quien tomo esas fotografías y las modelos.
Una de las tiras de diapositivas

Una de las imagenes (Facebook de Megan Abell Fotography)

Publico las fotos escaneadas en Facebook, muchos aventuraron conjeturas sobre las fotos:
  • La opinión general es que las fotos fueron tomadas en California, específicamente en playa del Rey.
  • Hay opiniones diversas sobre las fechas de las fotos, desde fines de los 40 del pasado siglo, hasta fines de los 60. Muchos coinciden con fines de los años 50 como la fecha más probable.
Me gustan estos descubrimientos, como publique en su momento de Vivian Maier, y muchísimos archivos más que esperan  ser descubiertos. Hay más de esta historia en el facebook de Megan Abell y en Looks like Film.

Fotografo y/o Modelos se buscan ...

Una fotógrafa curioseaba en una tienda de Richmond, encontró 4 cajas de diapositivas. Las lleva a su casa, las escanea ... y quedo asombrada de lo que encontró. Quiere saber más sobre quien tomo esas fotografiás y las modelos.
2 de las tiras de diapositivas

Una de las imagenes (Facebook de Megan Abell Fotography)

Publico las fotos escaneadas en Facebook, muchos aventuraron conjeturas sobre las fotos:
  • La opinión general es que las fotos fueron tomadas en California, específicamente en playa del Rey.
  • Hay opiniones diversas sobre las fechas de las fotos, desde fines de los 40 del pasado siglo, hasta fines de los 60. Muchos coinciden con fines de los años 50 como la fecha más probable.
Me gustan estos descubrimientos, como publique en su momento de Vivian Maier, y muchísimos archivos más que esperan  ser descubiertos. Hay más de esta historia en el facebook de Megan Abell y en Looks like Film.

lunes, 3 de agosto de 2015

Configurar PHP:YAZ

YAZ es una toolkit para desarrollar clientes y servidores Z39.50. Estos servicios son utilizados fundamentalmente en sistemas gestión de bibliotecas, como Koha o PMB. Para una instalación de PMB necesité configurar esta extensión de PHP. La extensión esta disponible a través de PECL

Es prerrequisito tener instalada la librería YAZ, la extensión de PHP es un wrapper. Se puede bajar del sitio del desarrollador, allí hay disponibles paquetes para varias distribuciones y Windows. En mi caso, trabajé sobre OpenSuSE, los paquetes a instalar son: yaz, libyaz y libyaz-devel. Una vez instalado estos paquetes es necesario ajustar algunos caminos para facilitar el trabajo de PECL. En mi caso ejecute:

cd /usr/share/doc/packages/yaz && mkdir bin && cd bin && \
 for i in $(ls /usr/bin/yaz-*); do ln -s  $i; done

PECL espera encontrar la configuración de yaz, y sus herramientas, bajo un mismo árbol de directorios. Estos comandos corrigen esto, los paquetes instalan las herramientas bajo /usr/bin. Para que PECL compile PHP:YAZ es necesario tener instalado el compilador de C/C++, Make y la herramienta re2c.

Lanzamos la instalación con pecl ejecutando: pecl install yaz. Nos va a pedir el camino (PATH) a yaz, en mi caso es /usr/share/doc/packages/yaz. La compilación e instalación deben transcurrir sin problemas. Luego de eso tenemos que habilitar la extensión en PHP. Una opción es editar el archivo php.ini, otra es crear un archivo y agregarlo en el directorio de configuración de PHP (en OpenSUSE/SLES /etc/php5/conf.d/). En cualquiera de las dos opciones tiene que ir una linea como la que sigue:
extension=yaz.so
Reinicamos o recargamos apache y la nueva extension queda activa. 

sábado, 1 de agosto de 2015

X11 (X-Windows) redirigido via SSH

A veces necesito ejecutar aplicaciones X-Windows en equipos remotos, a los que accedo via SSH. OpenSSH tiene la posibilidad de redirigir la aplicaciones ejecutadas en el equipo remoto, haciendo que se desplieguen en el equipo local. 

El equipo al que nos conectamos debe tener su servidor SSH configurado para redirigir Puertos hacia el equipo donde iniciamos la conexión. El archivo a editar es sshd_config (usualmente esta en /etc/ssh). Agregamos o cambiamos estas lineas:

      AllowTcpForwarding yes
      X11Forwarding yes
      X11UseLocalhost no

Es necesario instalar xauth y xhost (según la distribución varían el nombre de los paquetes).

Si trabajamos desde un escritorio con Linux (o cualquier UNIX) basta con invocar ssh con el switch -X. Un ejemplo:
        ssh -X miservidor.empresa.com.

¿Y en Windows ?


Para quienes utilizan windows como su escritorio, deben instalar un X Server para Windows, adicional al cliente de ssh. Hay varias opciones de servidor, las más populares son XMing y CygWin/X. Si utilizan Putty, es necesario en los parametros de la sesion tildar "Enable X11 Forwarding" y en "X Display Location" poner localhost:0.

lunes, 20 de julio de 2015

Reconstruir una VM en VMware

Una situación que tuve hace pocos días atrás: un proveedor me paso una maquina virtual que no podía arrancar. Los mensajes de error: "An ide controller is found but the virtual machine does not support the option" y "Device 'Hard disk 1' uses a controller that is not supported. This is a general limitation of the virtual machine's virtual hardware version on the selected host". Consulté al proveedor, no medio ayuda concreta. Investigue un poco la maquina habría sido creada con VirtualBOX, luego llevada a VMWare Player.  Decidí reconstruir la configuración de la virtual machine. Estos son los pasos seguidos:

  • Registré los datos relevantes de la máquina con problemas: Memoria, Sistema Operativo (en mi caso, Ubuntu 64 bits).
  • Cree una máquina nueva, desde cero: con los parámetros que obtuve en el paso previo.  Cuando me pide los datos del disco le di "utilizar un disco existente" y le puse como disco el de la maquina que me daba problemas. 
  • Copiar el disco de la máquina con problemas al directorio de la máquina nueva. La maquina que cree "apunta" a un disco alojado con la maquina con problemas. Puede funcionar así, pero quiero dejar todo en orden. 
  • Editar la configuración de la máquina nueva: Allí agrego un segundo disco, el que copie al directorio de la máquina nueva. Borro el disco con el que cree la máquina de la configuración. 
 El procedimiento no es complejo, es necesario estar familiarizado con vSphere.  Es posible resolver esto editando el archivo de configuración, no quise probar esta alternativa. La maquina virtual quedo funcionando sin problemas.

sábado, 27 de junio de 2015

¡Trés Años!

El paso mes de mayo el blog cumplió tres años de vida. No encontré tiempo para escribir unas lineas al respecto. No quería dejar pasar el hito, ni dejar de repasar hitos relevantes del año. 

El año que pasó

He escrito menos en el blog, estuve (y estoy) abocado a la puesta marcha de la nueva planta logística de mi trabajo. Trabajé mucho en la mudanza de la infraestructura de TI del viejo sitio a la nueva planta, algo de lo que quizás escriba en un futuro. Tengo unos cuantos posts en el tintero digital, espero vean la luz en los próximos meses.

El tráfico en el blog no ha parado de crecer, más despacio durante casi todo el año pasado. Pero a mayor ritmo en los últimos 6 meses. Me alegra mucho que buena parte del tráfico viene de países de latinoamerica, seguramente por estar el  blog en agujero del mate. Desde hace dos meses tengo icono propio en ese planeta, así que estoy "agujereado" a la par de los restantes blogueros de agujero del mate.

He escrito más sobre Windows y diversas situaciones que he resuelto en esta familia de sistemas operativos. Windows ha estado presente a lo largo de toda mi vida laboral, en mayor o menor medida. De unos años a la fecha buena parte de mi actividad laborar transcurre entre una cantidad importante de PC con Windows. Y algunas soluciones adquiridas a terceros sobre Windows. Veo evolución en muchos aspectos de Windows, pero nuevos problemas surgen en cada versión nueva que sale a la calle. 

Sigo haciendo poca fotografía, y eso se refleja en el blog. Tengo que reparar mi cámara y escribir algo. Pude participar de una salida de Montevideo Film Society,  que nuclea a interesados en la fotografía analógica. Tengo pendiente participar de salidas de otros colectivos, hay una movida interesante que se comunica y organiza via Facebook. Y estas salidas facilitan acceder a lugares que es bueno ir en grupo o probar equipos (como un gran angular 20mm). Mi archivo (analógico y digital) pide a gritos que le dedique trabajo. Y quiero retomar el escaneado de viejas diapositivas familiares, seguramente escriba de scanners y escaneados.

A futuro ...

Pretendo escribir con mayor regularidad, artículos más largos. Tengo en mente sacar a luz varios artículos que duermen en el "tintero digital". Quiero trabajar en los scripts que están en el blog, alojarlos en algún control de versiones, quizás sitios estilo sourceforge o GNA!. El script del Modem Bandluxe seria más útil con paquetes y algo de documentación

Agradezco a mis lectores, a quienes realizan criticas constructivas y aportes sobre lo escrito en el blog. Una mención especial a aquellos que visitan los avisos que publica addwords. Con el aumento de trafico se ha hecho más frecuente tener ingresos todos los meses. Desde ya agradezco a quienes quieran visitar esos avisos. Me gustaría retribuirlos invirtiendo esos ingresos para generar contenido de calidad para el blog.

lunes, 15 de junio de 2015

Obtener DN en active Directory

He migrado a zimbra los usuarios de un dominio. Y quiero autenticarlos contra active directory. Para esto necesito conocer el DN (Distinguished Name) de cada usuario en AD.

Desde un equipo con Linux puedo usar las "LDAP Tools", conectarme al servidor con ldapsearch(1). Otra alternativa es utilizar algo como JXPlorer, que en forma gráfica permite visualizar y editar los objetos almacenados en el árbol.

En otras oportunidades hice todo lo anterior. Tenia curiosidad de saber si existía algo nativo en Windows para interactuar con Active Directory. En varios foros sugieren utilizar scripts en powershell, me pareció excesivo. Encontré una consola gráfica, el editor ADSI, esta muy bien. En realidad quiero algo de linea de comando similar a ldapsearch. La respuesta la encontré en la WIKI de Zimbra: dsquery.
El editor ADSI.
Si queremos saber el DN de un usuario, nos basta con ejecutar desde linea de comando:
dsquery user forestroot -samid usuario
El parámetro usuario es el nombre de usuario (login name) con el que se autentican en el dominio. Aquí se puede ver más información sobre esta herramienta.

miércoles, 3 de junio de 2015

Limpiar con BleachBit

Muy a mi pesar tengo que dedicar tiempo a limpiar "basura" en diversas versiones de windows. Ya publiqué varias entradas del blog, con lo que he venido haciendo. 

Buscando alguna herramienta adicional, encontré BleachBit. El punto fuerte de este paquete es la calidad de la información que borra, no tanto el volumen de disco recuperado. Sobre este punto los autores citan una recomendación de Bruce Schneier, alentando a utilizarlo.

martes, 2 de junio de 2015

Contar Registros en todas las tablas de SQL Server

Hace un par de años SQL Server entró en mi vida profesional. No he tenido necesidad de hacer grandes cosas en SQL Server, pero seguramente en un futuro post del blog escriba algo para quienes puntualmente tocan SQL Server. 

Como parte de una migración desde otra base de datos, necesite contar la cantidad de registros en cada tabla migrada. Encontré este post, que sugiere un query. Aqui va una version del mismo que corre en SQL Server 2008 o posterior:

          SELECT sysobjects.Name, sysindexes.Rows
          FROM
                  sysobjects
          INNER JOIN sysindexes ON sysobjects.id = sysindexes.id
          WHERE type = 'U' AND sysindexes.IndId < 2
          ORDER BY sysobjects.Name

Si se quiere correr en versiones anteriores de SQL Server, es necesario cambiar en el order by el campo a sysobjects.Namecode.

sábado, 9 de mayo de 2015

Alternativas a Moodle

Nadie discute las prestaciones de Moodle. Sin dudas el LCMS más popular, según el articulo en wikipedia hay más de 45000 instalaciones registradas. Días atrás, a raiz de una conversación,  quise ver que alternativas hay a Moodle.

Encontré esta comparativa. Muy detallada, con buenas descripciones de todos los paquetes presentados. De los nombrados solo tengo experiencia de primera mano con Dokeos. Moodle tiene bien ganado su lugar en este nicho de mercado. Y un tema no menor, al menos en Uruguay,  junto con esa popularidad hay muchos docentes y técnicos con experiencia en Moodle. En este escenario dificilmente otro paquete le gane terreno a Moodle.

jueves, 7 de mayo de 2015

Upgrade OpenSuSE

Hace algunas semanas atrás encaré el upgrade de la distribución de mi notebook. Estaba corriendo OpenSuSE 12.2, quería llevarla por lo menos a la versión 13.1.

El notebook de marras lo compré a fines del 2008, cuando le instalé OpenSuSE 11 (¿o 10.2?) en arranque dual. Y periódicamente le he ido haciendo actualizaciones, pasándolo de una versión a otra. Las primeras actualizaciones las hice a partir de medios físicos, no tenia una conexión a Internet adecuada para hacer la actualización en tiempo razonable.

Hace varios años que vengo realizando actualizaciones en linea, con YUM o Zypper. El procedimiento, a grandes trazos, no es complejo: en un equipo actualizado desactivas los repositorios actuales. Luego apuntas a los repositorios de la nueva versión y actualizas. Es relativamente largo, puede durar hasta 6 horas la actualización.

En la Support Database de OpenSuSE hay una buena descripción del proceso, que se puede ver aqui.

Esta actualización me requirió algo de trabajo extra, por saltear versiones. Con instalar algunos paquetes manualmente quedó todo funcionando. Y resolví un tema de refresco de video, muy molesto.

lunes, 4 de mayo de 2015

De Pilas y Baterias ...

No voy a hablar de este, sino de las que hacen funcionar los múltiples dispositivos y gadgets que nos acompañan en nuestra vida diaria.

Estuve poniendo a funcionar una vieja cámara, que utiliza baterías CR2. Las utilizo habitualmente, pero queria refrescar algunos datos de estas baterías. En la wikipedia encontré esta util tabla, con los principales parámetros de las baterías y pilas. Hay una versión en español de la tabla, encuentro más completa la versión en ingles.

lunes, 13 de abril de 2015

Repuestos y Partes de Vehiculos Nissan

A raíz de un problema con el auto, salí a buscar sitios con información y tiendas en linea. Con un auto anterior, en su momento había investigado sin mucho éxito. 

En concreto me resultó muy útil el sitio NISSAN4U. Con las partes originales y los diagramas allí disponibles me aclaré bastante el panorama. 

Posibles proveedores de repuestos:

  • PARTSGEEK.  Autos Japones y Americanos
  • xportautoparts Trabajan fundamentalmente para el mercado americano. 
  • JP Car parts: Trabajan exclusivamente con vehiculos de fabricantes japoneses, destinados al mercado japones. El mecanismo de Pagos es un tanto engorroso.
  • Partacus: Trabaja en Europa.
El repuesto que necesito en esta ocasión lo voy a comprar en plaza, la espera del repuesto venido desde el exterior no compensa el ahorro. Pero quizás en un futuro remplace algún plástico que no consigo en plaza.


jueves, 2 de abril de 2015

Arduino y Lego

Otra entrada que dormía en el tintero digital, finalmente ve la luz.

Hace un par de años atrás tomé contacto de primera mano con los juguetes lego, específicamente con la linea DUPLO. Esta ultima es orientada a niños pequeños. Hemos comprado varios sets, de uso frecuente.

Por artículos de Linux Journal conocía de la existencia de la linea Lego Mindstorms. Esta linea de juguetes robóticos apuntaba originalmente hacia la robótica educativa. Muy pronto aparecieron soluciones de terceros, libres, que permitían hacer con estos juguetes más de lo originalmente pensado. De eso lo que más me ha sorprendido es automatizar tareas de rutina en un laboratorio de investigación.


Arduino es un proyecto iniciado en el año 2005, por un docente del Instituto Ivrea de Italia. Debe su nombre a Arduino de Ivrea, uno de los fundadores del proyecto solía ir al Bar di Re Arduino. Esta placa, basada en microcontroladores ATMEL, facilita interactuar con el mundo físico a quienes no tienen conocimientos profundos de electrónica. Se puede comprar la placa ya armada, hay muchos fabricantes, o armarla uno mismo. 
Arduino 1 Rev3 (Foto de Wikipedia)
Si bien nacen con objetivos distintos, era de esperarse que Arduino y Lego Mindstorms cruzaran caminos. Es posible utilizar sensores originalmente creados para lego MindStorms en Arduino. Para esto se le adosa al Arduino un shield, una tarjeta que permite la conexión directa de los sensores LEGO.

Arduino Uno y shield para Lego NXT (foto mindsensors.com)
Adicional a los shields, es posible conectar un arduino con un brick lego EV3 para que intercambien informacion. Aqui hay un tutorial para hacer esto.

Veo un campo interesante de aplicación. mas allá de los objetivos originales de cada tecnología. Investigando para esta entrada me sorprendí gratamente con la empresa Vernier. Esta empresa fabrica sensores utilizados en la enseñanza de física, cuenta actualmente con un shield para arduino que permite utilizar sus sensores. Los sensores e interfaces de adquisición de datos Vernier se utilizan mucho en laboratorios de enseñanza universitarios y secundaria. Espero seguir viendo más de estas interacciones.

miércoles, 1 de abril de 2015

April Fools Day

Hoy, 1 de Abril, se celebra en países de tradición  inglesa el análogo a nuestro "día de los inocentes". Hoy me sorprendió Amazon con una portada retro, rememorando la que tenían en 1999.

La portada de hoy
Según lei en wikipedia, esta tradicion es de origen frances. En el siglo XVI este pais adopta el calendario gregoriano, que celebra el año nuevo el 1 de enero. Muchos franceses y las colonias que formarían los Estados Unidos tardaron en adoptar esta reforma; los que se encontraban en esta situacion eran tildados de tontos. Es usual encontrar articulos de prensa absurdos o en tono de broma en esta fecha. 

Para quienes trabajamos en informática o Telecomunicaciones es tradicional el RFC del April Fools Day.  Esta tradición comenzó en 1978, con el RFC 748, que seguía los pasos del  RFC 527. De todos estos, destaco especialmente el RFC 1149.  Este año Tom Limoncelli nos presenta una extension de python.

martes, 17 de marzo de 2015

Calcular sumas MD5 en Windows

Las sumas MD5 son un medio habitual para comprobar la integridad de un archivo. El creador del archivo calcula la suma y la publica junto con el archivo. Esta practica es usual para evitar la distribución de archivos corruptos o conteniendo malware.

Estoy trabajando con varios desarrolladores para resolver un problema con archivos de texto que se corrompen cuando son procesados. Los archivos se generan, intercambian y procesan en sistemas Linux. Los desarrolladores trabajan en Windows, la causa de la corrupción esta en el tratamiento del fin de linea en archivos de texto.Para tranquilidad de todos los involucrados, decidimos compartir los archivos junto con la suma MD5 de los mismos.

En linux el comando md5sum es parte de la instalación usual de cualquier sistema. Hay herramientas de terceros para windows que calculan la suma. En general prefiero evitar esas herramientas, salvo que provengan de fuentes confiables y conocidas. Microsoft proporciona una herramienta para esto, el File Checksum Integrity Verifier. Esta herramienta esta disponible para descarga, sin soporte de Microsoft. Y acá está el enlace para descargarla.La instalación debe hacerse con un usuario administrador.

Una vez instalado tenemos una herramienta de linea de comando para calcular sumas criptograficas MD5 y SHA1: fciv.exe.


viernes, 13 de marzo de 2015

Configurar el BANNER SMTP de zimbra

Tratando de resolver un problema encontré otro: el nombre de host anunciado por el banner del servidor SMTP no coincidía con el nombre anunciado por el DNS.

Hay herramientas para chequear la configuracion de servidores de correo y DNS, que entienden que esto es una mala practica. Y están quienes utilizan esto, junto con el chequeo de reversos, como una herramienta para combatir el SPAM. Es un problema simple de resolver.

El MTA de Zimbra es Postfix, en una instalacion común utilizariamos postconf o editariamos el archivo de configuracion main.cf. En zimbra se cambai con zmlocalconfig

zmlocalconfig -e postfix_smtpd_banner=servidor.empresa.com.uy ESMTP $mail_name

Se podría hacer cambiar con postconf, a riesgo de que se pierda en una actualización o reinicio del sistema.

martes, 3 de marzo de 2015

Corregir configuracion local de zimbra

La configuración local de Zimbra se maneja con el comando zmlocalconfig. Ahí podemos editar distintos valores de variables de configuración. A partir de esas variables se generan los archivos de configuración particulares de cada componente de zimbra (postfix, MySQL, etc.).

Esas variables tienen el formato clave=valor. Meses atrás, por equivocación, una clave quedó con un espacio en blanco. Consulté la documentación y en los foros de zimbra. La solución disponible era dejar la variable sin un valor (parametro -u o --unset) pero la clave seguía existiendo. Y me interesaba eliminarla, varios scripts de linea de comando daban errores por esto.

Finalmente encontré la solución, que compartí en el foro de zimbra y hoy publico acá. zmlocalconfig almacena las claves en el archivo localconfig.xml.En este archivo XML, tenemos las claves como sigue:

         <key name="smtp_notify">
                 <value>yes</value>
         </key>

Para resolver mi problema bastó con eliminar la clave que molestaba. Es recomendable respaldar el archivo antes de editarlo. Despues de editado puede ser necesario recargar o reiniciar algun servicio.

sábado, 24 de enero de 2015

Ajustes a una instalacion de ZIMBRA: comando sendmail

Zimbra es una solución muy redonda, a la hora de implementar soluciones de correo electrónico. En poco tiempo implementas una solución muy completa de correo, multidominio. Cuenta con una muy completa documentación y tutoriales para resolver necesidades o tareas no habituales.Una interface web de administración y un conjunto de herramientas de linea de comando facilitan la vida del administrador de sistemas y los operadores que realizan tareas de rutina.

La instalación usual de Zimbra crea un directorio bajo /opt (usualmente zimbra) e instala allí todos los paquetes y archivos de configuración.Es una buena solución, permite tener una instalación consistente a salvo de las actualizaciones del sistema operativo. La forma correcta de trabajar con zimbra por linea de comando es hacerlo con el usuario zimbra, o agregar al PATH los directorios donde corre zimbra.

Hace algunas semanas atras encontré que correos generados por el cron no se enviaban. La razón de esto es que el cron utiliza el comando sendmail. Conozco dos soluciones posibles a esto. La primera es en el crontab, definir la variable de ambiente PATH, con los directorios de zimbra donde esta el ejecutable de sendmail. La otra, parado en el directorio hacer un symlink al ejecutable de zimbra:

cd /usr/sbin ; mv sendmail sendmail.OLD;  \
ln -s ../../opt/zimbra/postfix-2.10.2.2z/sbin/sendmail

De optar por esta solución es importante que los enlaces simbolicos sean con caminos relativos.

lunes, 12 de enero de 2015

Rotar pantalla de Windows

Cada tanto tengo que atender una llamada con este problema, un usuario que tiene la pantalla de su PC con windows "al reves" o "girada". Y nunca recuerdo como arreglarlo, asi que esta entrada del BLOG es para tener un recordatorio a la mano.

  • Posicion Normal: Pulsar ctrl+alt+flecha arriba.
  • Girado 90º: ctrl+alt+flecha izquierda.
  • Girado 180º: ctrl+alt+flecha abajo.
  • Girado 270º: ctrl+alt+flecha derecha.
Esto funciona con Windows vista o superiores. En XP se podría arreglar en "Propiedades de Adaptador".

jueves, 8 de enero de 2015

¿PERL?

En el año que terminó recibí dos ofertas firmes de empleo, que involucraban este lenguaje. Es habitual que me llamen reclutadores, un par de veces al año, buscando gente con conocimiento de PERL. Me sorprendió las ofertas firmes de empleo, con salarios competitivos y en un caso un paquete de beneficios interesante.

El PERL entró a mi vida hace unos 15 años, con un cambio de empleo. Entre mis tareas como administrador de sistemas debía realizar scripts para automatización de tareas. Muchos de esos scripts se hacían con herramientas de filtros (SED, AWK). Varios scripts se sustituyeron o hicieron desde cero en PERL. Con algunas ventajas frente a programar con filtros, por la claridad de a la hora de entender la lógica del programa. El lenguaje resultaba adecuado para el trabajo.

Con otro cambio de empleo, empecé a trabajar como desarrollador WEB. Mi trabajo inicial era corregir bugs y agregar funcionalidades a KOHA, un sistema de gestión integrado para una biblioteca. Entré a trabajar con plantillas (HTML::Template) y acceso a bases de datos (DBI). Descubrí Date::Manip, una poderosa biblioteca (módulo) de manejo de fechas. También pude conocer de primera mano las limitaciones de trabajar en ambiente de CGI, con mod_perl se hace bastante más llevadero.

En general a mis colegas la mención de PERL les provoca rechazo. A nivel de desarrolladores la cosa no esta mejor, cuando podría ser una alternativa para scripts de backend; tareas simples de datawarehousing (scripts ETL)  o  procesamiento de logs.

No intento en esta entrada hacer una apología del PERL, simplemente ponerlo en el tapete. No tiene por que ser tu lenguaje de favorito, pero debería estar en la caja de herramientas del administrador de sistemas. Cuando menos tener una familiaridad, para instalar scripts o corregir bugs.

¿Quien usa PERL?

No es el lenguaje más popular, pero es utilizado en muchos sitios WEB con volúmenes de tráfico importantes. Una pequeña lista:
A nivel de backend se que hay CDNs que tienen scripts en PERL. Muchos CMS desarrollados in house fueron programados en PERL. Paquetes o aplicaciones desarrollados en PERL:
  • KOHA: Este ILS es utilizado por mas de 50 bibliotecas
  • OTRS: Un poderoso sistema de tickets y gestión de incidentes.
  • SpamAssassin: Filtro de SPAM, utilizado por muchos servidores de correo y firewalls con filtrado de correo.
  • GOSA: Sistema de gestión de usuarios y computadoras con Backend LDAP.
  • Bugzilla: Sistema de seguimiento de BUGS.

Aprender PERL

Si tengo que recomendar un libro, sigo recomendando el Learning PERL. Incluso una edición vieja, como la tercera edición, es una buena ayuda para comenzar.

A nivel de recursos en linea, lo primero es ir a learn.perl.org. Este sitio tiene enlaces a tutoriales y muchos ejemplos de tareas concretas, como validar una direccion de correo o leer una planilla Excell.  En este mismo sitio hay una muy buena página con enlace a tutoriales. PERL.com está muy quieto, pero a veces aparece algo interesante. Otro sitio interesante es PERL Mongers, en Uruguay no hay grupo (¿Habrá?).



lunes, 5 de enero de 2015

Limpiar el directorio winsxs de Windows 2008R2

Muy a mi pesar, sigo lidiando con directorios llenos de basura en equipos con distintas versiones de Windows.  Hace unos meses compartía como limpiar el directorio software distribution. Hoy le tocó al  directorio winsxs. La receta no es original mía, esta inspirada fundamentalmente en el blog happysadm.

¿Que es el directorio winsxs? Es un intento de respuesta a los problemas de utilizar DLLs en Windows 98, 2000 y posteriores. Uno de los problemas es justamente el crecimiento del directorio donde se guardan los manifiestos, esos archivos que especifican la versión correcta de una DLL para una aplicación determinada.

Para poder hacer la limpieza es necesario ejecutar una shell como administrador. Y alli ejecutamos:

DISM.exe /online /Cleanup-Image /spsuperseded


Al menos en mi caso me permitío recuperar unos 3 GB de disco.No es mucho pero trabajando con maquinas virtuales con discos de 20 GB promedio, hace una diferencia.