domingo, 9 de diciembre de 2012

Sensibilidad, Velocidad de Obsturador y Apertura de Diafragma

Los tres parámetros afectan la toma fotográfica. Un amigo me refirió a un blog, donde en una sola imagen se relacionan los tres parámetros y su efecto en la foto:

 Un claro caso donde una imagen vale por mil palabras.

miércoles, 5 de diciembre de 2012

Indirecciones en Bash

Escribí un programa en Bash, que itera sobre una lista de nombres, almacenados en una variable. Cada nombre es a su vez una variable, con una serie de valores almacenados. Lo que quiero hacer es recorrer la lista de nombres y acceder al  contenido almacenado en la variable nombrada.

Tenía idea de haber hecho esto antes, un par de consultas a las lista de programacion del UYLUG y en la oficina, me recordaron como se llama esto: "variables de variables".

Un ejemplo para fijar ideas:

var_1="1 2 3 4 5 6"
var_2="lunes martes miercoles"
lista ="var_1 var_2"

for i in lista; do
     echo ${i}
     for j in ${!i} ; do
         echo "  "${j}
     done
done

Usado con cuidado, para no perder claridad en el código, el codigo queda muy compacto.

Sacar lista de Usuarios el lightdm

Estoy armando un PC de escritorio que utiliza autenticación centralizada de usuarios, via Winbind. El comportamiento por defecto de lightdm es mostrar los usuarios que se han logueado en el sistema y pedir la clave.

Quiero que al ingresar al sistema me pida el usuario, ademas de la clave. Y que no muestre la lista de usuarios. Para esto, es necesario editar el archivo /etc/lightdm/lightdm.conf, que controla el comportamiento de este Display Manager. Editando el archivo agregamos o cambiamos las siguientes lineas:

greeter-show-manual-login=true
greeter-hide-users=true

No tenia experiencia previa con lightdm, encuentro que la documentación es bastante escasa, muchos datos se consiguen en foros y blogs. Hay conciencia del problema y se creo un bug en launchpad. Espero encontrar tiempo para contribuir una manpage para el archivo de configuración.

domingo, 4 de noviembre de 2012

Employees: Una base de datos de prueba para MySQL

Un problema frecuente: queremos probar un motor de base de datos. Seria bueno contar con una base de datos con varias tablas y un conjunto de tuplas de tamaño razonable, ni muy grande ni muy pequeño.

Por una entrevista de trabajo, conocí la existencia de la base de datos Employees. Patrick Crews y Giuseppe Maxia, obtuvieron el conjunto de datos original y lo convirtieron en un paquete pronto para ser cargado en MySQL. Simplemente bajamos el paquete desde Launchpad, lo cargamos en nuestro servidor y esta pronto para utilizarlo.

En la documentación tenemos un conjunto de consultas para validar los datos. El set de datos original fue creado por Fusheng Wang y Carlo Zaniolo, de Siemens Corporate Research. Los datos estan en XML, y pueden descargarse de aqui: employeeTemporalDataSet. El README se explaya en  el contenido del archivo.

domingo, 14 de octubre de 2012

Eloy Yerle: Fotografiando la musica popular uruguaya

Pasaba a diario, de camino al trabajo, por el local de Eloy Yerle, en Bvar. España 2222. CEY Fotografía, no pasaba desapercibido. Una canilla de leche en la puerta,un punchball.Cuando fallece me entero de su actividad en cine por unos compañeros de trabajo, vinculados a cinemateca.

Su trabajo como fotógrafo lo descubrí a raíz de una muestra homenaje, que organizó el Centro Municipal de Fotografía. La muestra estuvo abierta al publico a principios del 2009, hoy se puede ver en el sitio del CMDF.

 En la muestra es posible ver trabajos de Eloy Yerle, fundamentalmente de fines de los 70 y principios de los 80. Muchos de esos trabajos fueron luego portadas de discos.
De izquierda a derecha Hugo y Osvaldo Fattoruso. Estudios Sondor. Año 1980 (aprox.)

jueves, 11 de octubre de 2012

PATH a medida en Ubuntu

Quiero usar un par de shellscripts, disponibles en el PATH, pero no quiero instalarlos para todos los usuarios del sistema.

Los shellscripts los instalé en el bin de mi HOME. Hay que hacer cambios en dos scripts de arranque, .profile y .bashrc, para que la variable de ambiente PATH incluya el directorio bin de mi HOME.

Los cambios en el .profile:


# A flag variable BASHRC_PROCESSED='0'
# if running bash if [ -n "$BASH_VERSION" ]; then     # include .bashrc if it exists     if [ -f "$HOME/.bashrc" ]; then     . "$HOME/.bashrc"     BASHRC_PROCESSED='1'     fi fi

# set PATH so it includes user's private bin if it exists
if [ $BASHRC_PROCESSED != '1' -a -d "$HOME/bin" ] ; then
   PATH="$HOME/bin:$PATH"
fi 

El .profile afecta a las shells de login, para que la variable quede  cuando abrimos una shell bash desde el escritorio, es necesario tambien cambiar el .bashrc; si utilizamos bash como shell.Los cambios del .bashrc:

# Configure PATH for non login shells. If a private bin exists,
# include it.
if [ -d "$HOME/bin" ] ; then
   PATH="$HOME/bin:$PATH"
fi

lunes, 1 de octubre de 2012

Vivian Maier, fotógrafa callejera

Poco se sabe de Vivian Maier. Habría nacido en Estados Unidos, quizás en Francia. Trabajó como niñera en los años 50 y 60 en Chicago y  Nueva York.

En sus días libres, recorría las ciudades que habitaba con su cámara; una Rolleiflex. Así acumuló un archivo fotográfico con mas de 100.000 negativos, muchos sin revelar.  Hay que agregar a esta colección, filmaciones caseras y grabaciones de audio.

En su vejez, Vivian pasó apremios económicos y habría estado en situación de calle. Hasta que algunos de esos niños que crió se hicieron cargo de ella, pagando su alojamiento y cuentas.

Su archivo fue descubierto por John Maloof, un agente de bienes raíces. Maloof se encontraba investigando para un libro sobre Portage Park, un barrio de chicago. En una subasta compra unos 30000 negativos, la casa de subastas a su vez los adquirió de un deposito,que los vendió cuando Vivian Maier dejo de pagar el alquiler del mismo.

Maloof compra a otros participantes de la subasta material, que integra a la colección Maloof. La colección esta compuesta por entre 100.000 y 150.000 negativos, que comprende cerca del noventa por ciento de la producción de Vivian Maier. Maloof empieza una discusion en flicker, crea un blog. Finalmente inaugura un sitio, www.vivianmaier.com. Empieza a hacer exhibiciones, publica un libro y un documental.

¿Cuantos archivos esperan ser descubiertos?

Autoretrato de Vivian Maier


martes, 25 de septiembre de 2012

Archivos en un paquete debian

Estoy creando paquetes en formato Debian, para instalar en un Ubuntu LTS.

Para encontrar a que paquete pertenece un archivo me auxilio de apt-file.Si necesito listar el contenido de un paquete que está en repositorios, con dpkg -L PAQUETE resuelvo. Cuando quise listar el contenido de los paquetes que estoy creando, encontré que esto se hace con: dpkg --contents PAQUETE

lunes, 17 de septiembre de 2012

SQuirreL SQL: Cliente SQL Universal

SQuirrel SQL es un cliente SQL Universal. Implantado en JAVA, corre en Windows, Linux y MacOS. Se conecta a las bases de datos por JDBC, soportando todas las bases de datos del mercado.

La instalación es muy simple, tiene como pre requisito tener instalado JAVA. Basta con bajar del sitio el instalador (squirrel-sql-3.4.0-install.jar) y ejecutarlo: java -jar squirrel-sql-3.4.0-install.jar. Sugiero instalar la base de datos bajo /opt, y hacer los symlinks necesarios para correr el ejecutable en /usr/local/bin.

Luego tendremos que instalar los drivers JDBC para acceder a las bases de datos, si ya no lo tenemos hecho. Si nuestro escritorio es Ubuntu y queremos acceder a postgres y mysql, deberiamos instalar lo siguiente:

apt-get install libmysql-java (JDBC MySQL).
apt-get install libpg-java (JDBC PostgreSQL).

Ya podemos ejecutar squirrelSQL y habilitar los drivers que hemos instalado. Hacemos click en la pestaña drivers, y elejimos la base de datos que queremos configurar. Editamos la configuración,Ir a extra class path. Los drivers JDBC de java estan en /usr/share/java.

El ultimo paso es crear la conexión a la base de datos que se quiere acceder. Hacer click en aliases, hacer click en + y completar con los datos de la base de datos a la que se quiere acceder.

miércoles, 12 de septiembre de 2012

Repositorios para una version de Ubuntu no soportada

Me pidieron instalar software en un equipo de escritorio, con Ubuntu 9.04. Los repositorios de esta distribución hace tiempo que no están disponibles.

Buscando encontré una pagina con el procedimiento de actualizacion.  Lo recomendando en estos casos es subir de versión, hasta llegar a una soportada. Por ahora solo queremos instalar un software particular, no hacer el upgrade de todo el equipo.

Se opta por actualizar el archivo /etc/apt/sources.list, para utilizar los repositorios archivados. Se van a utilizar los siguientes repositorios:

deb http://old-releases.ubuntu.com/ubuntu/ CODENAME main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu/ CODENAME-updates main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu/ CODENAME-security main restricted universe multiverse

CODENAME lo sustituimos por el nombre de la version que nos interesa actualizar, en mi caso Jaunty.

domingo, 2 de septiembre de 2012

rssh: restringiendo una cuenta SSH

Me han pedido acceso a un servidor para subir archivos. Tradicionalmente esta tarea se hacia con FTP o rcp. Por motivos de seguridad, de un buen tiempo atras, se utiliza para esto scp o sftp.

El problema que se abre aqui es que la misma cuenta que permite transferir archivos tambien permite acceso shell. Esto ultimo no siempre es deseable. Buscando una forma de restingir la cuenta para que solo sirva para transferir archivos, me tope con rssh.

El paquete esta compilado para la mayoria de las distribuciones Linux, hay binarios para muchas variantes de UNIX o *BSD. Una vez instalado, es necesario configurar como shell del usuario rssh. Y en el archivo de configuracion global establecer las restricciones que entendamos pertinentes.

martes, 21 de agosto de 2012

sshpass: Login interactivo desde shellscripts

Frecuentemente necesito acceder por ssh, a servidores de los que solo tengo usuario y password. Adicionalmente eso es parte de un script que hace varias tareas.

Lo mas fácil en estos casos es generar una llave y loguernos sin usuario y clave. Cuando no se puede hacer esto, sshpass nos resuelve el problema. Tenemos las siguientes alternativas para pasar la clave
  • En la linea de comando del sshpass
  • En una variable de ambiente
  • En un archivo
La contra que presenta esto es que cualquier usuario, utilizando el comando ps podria averiguar la clave. Es una herramienta más, que podemos utilizar cuando no hay otra alternativa.


domingo, 24 de junio de 2012

Enviando adjuntos desde un shellscript

Frecuentemente tengo que enviar la salida de un proceso por correo, como un archivo adjunto. Utilizo un agente de correo muy versatil, el mutt.

Este cliente de correo se puede utilizar en forma interactiva, como los clientes de correo más habituales. Tiene la peculiaridad de ser orientado a consola. Lo que me llevó a considerarlo para enviar adjuntos es la posibilidad de correrlo desde un shellscript, como salida  un proceso batch.Para eso me cree un archivo de configuración (mutt.rc) personalizado:

#
hdr_order From: Date: To: Cc: Subject:
#
set envelope_from_address="a@domain.com"
#
set from="a@domain.com"
# Utiliza el servidor
set smtp_url="smtp://smtp.server.domain.com"

Las personalizaciones son elementales, la dirección de correo del remitente y un servidor SMTP debidamente configurado. Luego en el shellscript invoco el mutt con esa configuración. Opté por guardar los parámetros en variables, para mejorar la legibilidad y eventualmente re aprovechar el shellscript para otra tarea

MUTT=$(which mutt)
REPORT="/tmp/reporte.csv"
MUTTRC="/home/user/mutt_reportes.rc"
RECIPIENTS="a@domain.com b@domain.com"
SUBJECT="REPORTYE DIARIO"

${MUTT} -F ${MUTTRC} -s "${SUBJECT}" -a ${REPORT} -- ${RECIPIENTS}

La ventaja de usar un agente reconocido como el mutt, en lugar scripts ad hoc, esta a la hora de atravesar filtros antispam y antivirus. Estos filtros suelen dar puntaje negativo a correos con cabezales mal formados o provenientes de agentes desconocidos o poco conocidos.

Actualización 21/Oct/2013

Mutt tiene incorporado el cliente nativo SMTP a partir de la versión 1.5.15. Esta salvedad es importante, especialmente para quienes tienen que dar soporte en equipos Linux viejos o en UNIXes (AIX,Solaris). En AIX esta disponible la versión 1.4.2 en RPM.

sábado, 2 de junio de 2012

Upgrade a Ubuntu 12.04 con alternate CD

Seguí buscando como actualizar el Ubuntu. Es un PC que se le instaló ubuntu 9:10, luego se le hizo un upgrade a 10.04. Se quería actualizar a 12.04 desde Internet. Según el sitio de ubuntu bastaba con ejecutar do-release-upgrade o update-manager. Intente esto sin éxito, por lo que vi mucha gente tenia el mismo problema.

Investigando me enteré de la existencia del alternate CD. Este CD proporciona otros mecanismos de instalación. Bajé el CD, lo monte en loopback y largue a correr la actualización. Algunas horas después, estaba utilizando el PC en Ubuntu 12.04.

Otra Idea para probar: Mientras escribía esta entrada en el blog me tope con esta pagina. La solución estaría en correr do-release-upgrade -d o update-manager -d. O esperar al mes de Julio.

domingo, 27 de mayo de 2012

Informix en PHP

Hace poco me pidieron que configurara el PHP de un servidor para trabajar con una base de datos Informix. Usualmente el PHP que proveen las distribuciones trae el soporte a PostgreSQL y MySQL.

Encontré varias guías que explicaban como instalar el soporte en PDO, pero andaba necesitando acceder con las funciones ifx*, no orientadas a objetos. Para cualquiera de las dos opciones tuve que bajar e instalar el SDK (Kit de desarrollador). EL driver PDO como las funciones ifx_* compilan contra las bibliotecas del SDK. Una de las guias que utilicé para el driver PDO es esta.Pero seguia sin encontrar rastros de las funciones ifx_*. Hasta que me topé con este sitio. Las funciones ifx_* son parte de PECL, un repositorio de extensiones de PHP. Por lo que vi en la pagina de ifx_* actualmente el driver no tiene mantenimiento, pero no dio problemas para compilarlo.

Lo instalé siguiendo la guía, corrí algunos programas de pruebas y listo.

miércoles, 23 de mayo de 2012

Releases de Ubuntu

Tratando de actualizar un PC con ubuntu a la ultima versión me encontré con un artículo de la wikipedia donde se describen las distintas versiones.

El articulo termina con una muy útil linea de tiempo de las distintas versiones de ubuntu, comparando contra windows y MacOS.


miércoles, 16 de mayo de 2012

Lentes "Rosca Pentax (M42)" ....

Los lentes con montura Rosca Pentax o M42 son una alternativa económica para quien quiere acceder a lentes de calidad para su camara Reflex (SLR) o alguna filmadora 16mm. Esta montura fue creada por Zeiss, pero en los estados unidos la populariza pentax, de ahí que se le llame "Rosca Pentax".

En Uruguay es fácil encontrar muchas camaras Zenit, Praktica o Pentax de película con esta montura. Son buenas opciones para iniciarse en la fotografía en cámaras manuales de película.  El atractivo de estos lentes esta en que es posible acceder a opticas de calidad a precios razonables, pudiendo compartirlos entre camaras de pelicula y digitales; incluso de distintos fabricantes. Mediante el uso de adaptadores, pueden utilizarse en muchas cámaras con montura bayoneta, como Canon o Nikon.

Al evaluar estos lentes no confundirlos con los de montura T2 o Tamron. Estos lentes también tienen una rosca de 42 mm de diámetro, pero el paso es más fino (0.75 mm).

Estos lentes los he encontrado en subastas en Internet, ferias y locales de venta de equipo fotográfico usado. Cuando buscaba adquirir mi primera cámara reflex, consideré la opción de comprar una Zenit. La mayoría de las cámaras de esta marca utilizan esta montura. Terminé comprando una praktica, a mi juicio con más posibilidades que la zenit. Es posible comprar lentes nuevos, en las tiendas de fotografía a veces los llaman "montura universal" o "rosca universal".

Hay poco o nada de material sobre estos lentes en español, seguramente en otra entrada del blog vuelva a escribir sobre estos.

martes, 15 de mayo de 2012

What the Duck ????

What the Duck es una tira publicada diariamente,  presenta situaciones a las que se enfrenta un pato (fotografo).Con un humor ácido, cubre muchas situaciones y lugares comunes de quienes trabajan o se interesan en fotografía

lunes, 14 de mayo de 2012

Hola Mundo !!!!!


Como el primer programa que escribes en un nuevo lenguaje, esa es mi primera entrada en este blog.