Entradas

Mostrando entradas de 2012

Sensibilidad, Velocidad de Obsturador y Apertura de Diafragma

Imagen
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.

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.

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.

Eloy Yerle: Fotografiando la musica popular uruguaya

Imagen
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.

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 .ba...

Vivian Maier, fotógrafa callejera

Imagen
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...

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

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 config...

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.

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.

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.

Programación Macho ®: el paradigma perdido

Programación Macho ®: Programación Macho ® , el paradigma perdido : Programación a la vieja usanza. Ya estan disponibles las camisetas

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 eventualmen...

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.

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.

Releases de Ubuntu

Imagen
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.

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

Imagen
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...

What the Duck ????

Imagen
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

Hola Mundo !!!!!

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