jueves, 24 de noviembre de 2016

Humble Bundle 2016

Tengo idea de que leí hace años de Humble Bundle, si no me falla la memoria en el blog de Fernando Briano. Como la oferta eran juegos, no le presté atención. Años atrás Rodolfo Pilas escribió en su blog sobre otra oferta de juego para jugar en el navegador, tampoco me llamó la atención. Hasta hoy, que leo una entrada en el blog de Rodolfo este año hay un bundle de libros de UNIX, de la editorial O'Reilly. Para quienes trabajamos en Linux/UNIX esta editorial no necesita presentación.

La idea de Humble Bundle es que paguemos por el Bundle lo que entendamos razonable. Desde U$S 1, podemos llevar 5 libros, por U$S 8 o más se agregan 7 libros más. Pagando U$S 15 o más nos agregan 4 libros más, estos últimos para mi son "esenciales"; esos que si trabajas en Linux/UNIX deberías tener a la mano siempre, agregaría a estos 4 últimos Network Warrior

La oferta es por tiempo limitado (termina en 5 días) , mis 8 lectores que quieran beneficiarse pueden verla aca. Hay libros de los "indispensables", algunos de consulta obligada; otros que quiero leer pronto. No soy el primero que escribe de esto en Uruguay,  no quería dejar de mencionarlo.

jueves, 10 de noviembre de 2016

Modulo reflexión de Moodle

Hace cosa de un año me pidieron instalar en una instalacion de Moodle "Modulo reflexion", me costó bastante encontrarlo con ese nombre. Se referian al "Mod_Journal". Bien vale dedicarle unas lineas a este modulo de Moodle. 

¿Que es?

Este modulo permite al estudiante llevar un registro de la elaboracion de una tarea asignada por su profesor. Al dar respuesta a la tarea "reflexiona" sobre la respuesta y queda un registro de el camino seguido para llegar a la misma. 

¿Como se instala?

En alguna version vieja de Moodle (2.1 o anterior) fue parte del core, la instalacion standard de Moodle. De ahi la sopresa de algunos docentes cuando no lo encuentran disponible.  Actualmente es opcional, vale la pena agregarlo como parte de nuestra instalacion "standard". Para instalarlo es necesario bajar una version del modulo compatible con nuestra instalacion. Lo copiamos al directorio  donde estan los pluguines, luego lo registramos por la interface WEB. Aqui se puede ver una discusion avanzada sobre como usarlo. 

lunes, 7 de noviembre de 2016

Medidas y Equivalencias en la cocina.

Mas por necesidad que por gusto, encaro cocinar.  Cuando nos mudamos pasamos a tener parrillero, e hice mis primeras experiencias completas con la parrilla (fuera de algunos chorizos estando de campamento). Aprender los tiempos de cocción y el orden en que pones las piezas en la parrilla, son algunas de las cosas que aprendí para hacer una parrillada aceptable. Y  lograr: "No comer crudo ni quemado". 

A principio de este año compramos una bolsa de harina con levadura incorporada. De allí salieron un par de pizzas y panes. Luego me animé a hacer alguna receta de pan bajada de internet y adaptada a mi gusto (próximamente publico la receta). Con resultados aceptables. Hacer pan con Levadura es interesante, puede ser una fuente de ahorro y es una forma de comer pan sin los aditivos (y mejoradores del panificado) usuales en los panes comerciales.

Pan de Molde con Harina Integral (Hecho por el autor).

Uno de los desafíos con las recetas que encontramos en Internet son los ingredientes: algunos no se consiguen localmente o no tenemos equivalentes. A veces se hace necesario conocer un poco las características de los ingredientes, como la clasificación de las harinas de trigo.  Otro tema son las unidades de medida, muchas recetas de libros de cocina locales miden en Tazas y cucharadas, mientras que las recetas que encontramos en la red suelen ser expresar los volúmenes en mililitros y los pesos en gramos. Muchas soluciones a estos inconvenientes las encontré en esta pagina.
Pan con Harina Común

He consultado esa pagina varias veces, la encuentro muy útil.

jueves, 13 de octubre de 2016

TEDxMontevideo 2016 ...

Una conversación Infinita


Fui favorecido con una entrada a TEDxMontevideo, breve raconto de mi experiencia. 
Entrada a la conferencia, túnel hecho con material reciclable

 Las conferencias TED se hacen desde 1984. Originalmente centradas en Tecnología, Entretenimiento y Diseño (de ahí su nombre). El lema de la conferencias es: "Ideas que vale la pena divulgar" ( ideas worth spreading ).  A la conferencia se asiste por invitación (Paga), luego de las mismas las filmaciones de las conferencias quedan disponibles para quien quiera verlas. Durante la conferencia se entrega el "TED Prize". Este premio fue creado en el año 2005, el ganador recibe un premio en metálico; un trofeo y la posibilidad de presentar en la conferencia un "deseo que puede cambiar el mundo".

Cola para entrar al primer bloque de conferencias

Las TEDx son organizadas de forma independiente, con el espíritu de la conferencia TED original. En Uruguay hay conferencias TEDx en Montevideo, Durazno y Cabo Polonio. TEDxMontevideo se viene haciendo desde el 2010. Las entradas se sortearon, la mía la obtuve en en un sorteo de las entradas no retiradas del primer sorteo. Este año se mudó al LATU, buscando un lugar más amplio. Allí se montaron stands de diversos expositores (¡Tengo que visitar synergiaTECH!). Complementados por diversas propuestas gastronómicas, fundamentalmente a cargo de FoodTrucks; con una oferta bien distinta a nuestra habitual "comida al paso".

Hamburguesa de Cordero y Papas (¿Pay?)
Las conferencias transcurrieron en el auditorio del Parque de exposiciones del LATU. Para quienes no pudieron (¿o quisieron?) entrar al auditorio se podía seguir la conferencia en pantalla Gigante. Fueron 3 módulos de conferencias. No se publicó el orden de los oradores, ni los temas a tratar por cada uno de ellos.De todos los oradores me quedé con algo para pensar o charlar luego de la conferencia. Especialmente destaco estas conferencias:
  • Rodrigo Alvarez: Hablando de finanzas personales, algo que muchos tuvimos que aprender como pudimos. ¡Quiero leer su libro, Finanzas Ninja!
  • Veronica Raffo: Y su particular visión del feminismo en el siglo XXI. 
  • Camila Rajchman:  Iba a escuchar a "la rubia de Rombai", me sorprendió hablando de depresión, bullying y ciber acoso. No fui el único sorprendido.
  • Daniel Armand-Ugon: Un excelente explicación de como funciona la crypto moneda BITCOIN, al alcance de legos. 
  • Ramon Mendez: Mi motivación inicial para ir a TEDxMontevideo era escucharlo. No me defraudó.
  • Karen Bruck: Me gusto su charla sobre los Milenials. Me ha tocado trabajar en varias empresas con Milenials, me gustó su punto de vista.
  • Fabricio Ballarini: Este Biólogo me sorprendió, con su punto de vista sobre la memoria y por que recodamos u olvidamos.
  • Jose Cordeiro: Estuvo a cargo de la charla de cierre. Con humor presentó su visión del futuro, con tecnología difícil de distinguir de la magia y lo que el llama "el fin de la muerte".
Me quedo con mucho más que lo que escribi aca, pero esta entrada de blog tiene que terminar. Para los que no pudieron asistir, los videos de las conferencias están disponibles. Espero poder asistir a la proxima.

sábado, 3 de septiembre de 2016

¡20.000 visitas!

En años anteriores, en el mes de mayo o junio, escribí una entrada en el blog por el aniversario. Y una suerte de recorrida de hitos del año. Este año omití deliberadamente hacerlo. Sigo teniendo poco tiempo para escribir en el blog y quería hacer algo distinto. 

Y el hito de las 20000 visitas, es una buena oportunidad. Hace casi 2 meses que llegamos a esa marca. El trafico del blog ha continuado subiendo, a pesar de la poca dedicación que le estoy dando.Y AdSense me informa que días atrás, el 14 de Agosto de 2016, los avisos llegaron a 10000 publicaciones.

Hace un par de meses que tengo cuenta en Twitter y en github. En esta ultima estoy manteniendo un script, del que ya hablaré. Planeo subir a GITHUB buena parte de los scripts que están en este blog, para facilitar su desarrollo.La cuenta de Twitter nació por necesidad, para acceder a los foros de Let's encrypt. Sigo a unos cuantos twitteros y twitteo regularmente. Es un desafío interesante ser conciso en 140 caracteres.

Gracias a los que siguen el blog, a quienes encuentran interesante lo que publico acá. 

viernes, 19 de agosto de 2016

Dia de la Fotografia

El 19 de agosto se celebra el día Mundial de la fotografía. A diferencia de otros "dia de .." no es la fecha de nacimiento o muerte de nadie. Ese día, en 1839, el gobierno Francés anuncia la compra de la patente del invento de Louis Daguerre. Le otorga a Daguerre, y al hijo de Joseph Niépce,  una pensión vitalicia anual y pone a disposición del mundo el invento. Esta acción del gobierno Francés permitió una rápida difusión del Daguerrotipo por el Mundo. El daguerrotipo fue el primer proceso fotográfico exitoso.

Daguerrotipo de 1828, por Joseph Niepce (de Wikipedia)
Daguerre era Pintor y Decorador Teatral. Su contribución mas notable al desarrollo de las artes escénicas es la invención del Diorama. Esto es un modelo tridimensional de Paisajes, acontecimientos históricos o ciudades. Esto daba un mayor realismo a la representaciones teatrales, al combinar los dioramas con Luces, Sonido o imágenes móviles. Buscando mejorar el realismo de sus Dioramas Daguerre se interesa en la cámara obscura.

Ruinas de la Capilla HolyRod, muestra de la actividad como pintor de Daguerre.
Piensa en la reproducción en serie de sus dioramas. De su contacto con el óptico Charles Chevalier entra en conocimiento de los experimentos de Niépce; tendientes a fijar las imágenes obtenidas mediante una cámara obscura. Y en 1829 firman un contrato donde Daguerre reconoce que Niepce "había encontrado un nuevo procedimiento para fijar, sin necesidad de recurrir al dibujo, las vistas que ofrece la naturaleza". Tras la muerte de Niepce este continua investigado. En 1835 descubre por accidente que el vapor de Mercurio actúa como revelador sobre una de sus placas expuestas. Quedando así la imagen fijada permanentemente.



viernes, 12 de agosto de 2016

Sketchup: CAD para los que no sabemos dibujar.

Cada tanto, necesito esquemas o dibujos técnicos o un simple croquis. Por celeridad, suelo recurrir a lo que conozco. Usualmente termino en un bloc de papel, dibujando con regla y compás.

Croquis de un armario (dibujado con regla y escuadra)


 Alguna vez he utilizado el XFIG, un viejo programa de dibujo para Linux/UNIX. Difícil del aprender, con opciones intrincadas y poco claras. Con algo de esfuerzo se sacan gráficos claros. Pero claramente su fuerte no es hacer dibujos para asistir trabajos en construcción, instalaciones eléctricas o sanitarias ni carpintería. En varias oportunidades, intente por la mía aprender a utilizar paquetes de CAD, con resultados desastrosos. Encuentro útil que estos esquemas estén una computadora.
Captura de pantalla de XFIG (De Wikipedia)

Decidí darle una prueba a Sketchup. No es un paquete nuevo, esta en el mercado hace tiempo. Me lo menciono un amigo y colega, cuya esposa lo utilizaba bastante en arquitectura y construcción. Lo instalé en un PC con Windows, no corre en Linux. Elegí un tutorial y empece a hacer mis primeras armas. Con algo de trabajo y dedicación, salieron las patas de una mesa y un tablón.

Primer Intento de Mesa en Sketchup.
Estoy lejos de dominar este paquete, mucha veces me veo tentado de dejarlo. Volver al lápiz y el papel. Creo que el esfuerzo tener recompensas interesantes y encarar proyectos más complicados. O contar con mejor documentación de reformas o refacciones en mi casa.

domingo, 7 de agosto de 2016

Repositorio para SLES 10 y 11

Semanas atrás, necesitaba una versión más nueva de zlib, en un servidor con SLES 11. SLES, como buena parte de las distribuciones empresariales, son bastante conservadoras en los paquetes que soportan. Cuando necesitamos alguna versión mas nueva, las opciones son: compilar o instalar desde fuentes, portar paquetes desde OpenSuSE o recurrir a repositorios de terceros.

Opté por la ultima opción, y buscando en OpenSuSE encontré este repositorio para SLES 10 y 11. Para utilizar el repositorio podemos agregarlo con YaST o simplemente bajar aquellos paquetes que nos sirvan e instalarlos con RPM.

miércoles, 15 de junio de 2016

Script para arrancar NRPE en AIX

La instalacion de NRPE, agente de monitoreo remoto de nagios, es un poco mas trabajosa en AIX que en Linux. Una de las tareas adicionales es crear el script de arranque.

Hice este sencillo script, para empezar a monitorear mis servidores.

#!/bin/ksh
##################################################
# name: nrpe
# purpose: script that will start or stop the nrpe daemon.
##################################################

NRPE="/usr/local/nagios/bin/nrpe"
NRPE_CFG="/usr/local/nagios/etc/nrpe.cfg"

case "$1" in
start )
         $NRPE -c $NRPE_CFG -n -d
         ;;
stop )
         for i in $(ps -e|grep nrpe|cut -f2 -d' '); do
            kill -9 $i
        done
        ;;
status )
       COUNT=$(ps -e|grep nrpe|cut -f2 -d' '|wc -l)
       if [ $COUNT -ge 1 ] ; then
           echo "NRPE is Running"
       else
          echo "NRPE is Dead"
       fi
      ;;
* )
     echo "Usage: $0 (start | stop)"
     exit 1
esac


El script admite mejoras, para utilizar las funcionalidades propias de AIX para iniciar y terminar servicios.

jueves, 9 de junio de 2016

Configuracion personalizada de Unity

Ha transcurrido mucho tiempo desde que trabajé en esto. Finalmente encontré tiempo para publicarlo.

Estuve trabajando para implementar una estación de trabajo estandarizada, para una organización grande. Se quiere establecer un escritorio consistente, que el usuario no pueda cambiar o borrar iconos de la barra o del escritorio.Estas reglas draconianas vienen impuestas por la realidad de la organización. Una gran cantidad de puestos de trabajo, dispersos en múltiples edificios. Poco personal para dar soporte y mucha resistencia al cambio por parte de los usuarios.

Me vi en la necesidad de investigar más en el funcionamiento interno de Unity, el escritorio de Ubuntu presentado en la versión 10.10. Decidimos que en cada inicio de sesión fijaríamos ciertos iconos en la barra. La solución fue correr en el inicio un script, que invocando a gsettings fijara el escritorio acorde a lo pedido.

La mayoría de los usuarios tienen poca o nula familiaridad con escritorios usuales en Linux. Se decide configurar el escritorio similar al de Windows 2000/XP, que les es familiar. Habrá un icono "Mi Computadora", "Papelera" y "Entorno de Red".  Para encontrar que propiedades teníamos que alterar tuvimos que investigar un buen rato, para encontrar artículos o discusiones como esta. Para hacer visibles los iconos mencionados podemos ejecutar lo que sigue desde linea de comando o un script:

        gsettings set org.gnome.nautilus.desktop home-icon-visible true 
        gsettings set org.gnome.nautilus.desktop computer-icon-visible true 
        gsettings set org.gnome.nautilus.desktop trash-icon-visible true 
        gsettings set org.gnome.nautilus.desktop network-icon-visible true

Adicionalmente los iconos tendrán nombres familiares a los usuarios. Resolvemos esto con gsettings:

gsettings set org.gnome.nautilus.desktop home­icon­name "Mis Archivos"
gsettings set org.gnome.nautilus.desktop computer­icon­name "Computadora $(hostname ­s)"
gsettings set org.gnome.nautilus.desktop trash­icon­name  "Papelera"
gsettings set org.gnome.nautilus.desktop network­icon­name "Red Local"

También queremos mostrar iconos en el escritorio:

gsettings set org.gnome.desktop.background show­desktop­icons true

Y para terminar queremos fijar en el launcher los iconos de las aplicaciones mas usuales. En nuestro caso, un cliente de correo, navegador, procesador de texto y planilla de calculo.

gsettings set com.canonical.Unity.Launcher favorites
        ['libreoffice­writer.desktop', 'libreoffice­calc.desktop', 'firefox.desktop', 'thunderbird.desktop']

Para que esta configuración se corra cada vez que el usuario es necesario que esto corra en un script en el inicio de sesion. El script debe estar en el directorio /etc/X11/Xsession.d . El Archivo debe tener nombre S99script, podría ser un symlink a un archivo en otro directorio.

viernes, 27 de mayo de 2016

Desbordado ...

No hablo de ningún curso de agua, quiero informar que no abandoné el blog. Espero a la brevedad estar publicando varios articulo. Tengo varios en el tintero, que no he terminado de escribir o pulir.

Estoy haciendo un curso de introducción a IPV6, en el campus virtual de LACNIC. Con bastante trabajo y poco tiempo para escribir en el blog.

Más noticias a la brevedad ... "Stay tuned".

lunes, 25 de abril de 2016

Whatsapp sin Google Play

A un compañero de trabajo le traen un celular para "desbloquear". Y quiere instalar en el celular whatsapp, pero no configurarle una cuenta de google play.  He instalado en dispositivos móviles de mi trabajo varias aplicaciones a partir del paquete, pero son desarrollos a medida para la empresa.

Buscando encontré un enlace del desarrollador para descargarlo. Lo instalamos y quedó pronto.

¿Otras aplicaciones?

Amazon permite descargar directamente kindle. No encontré como bajar directamente acrobat reader. Sitios como softonic ofrecen descargas para dispositivos android, pero no me inspiran confianza. En APKMirror hay muchos paquetes para bajar, no conozco el sitio como para recomendarlo.

Al menos con dispositivos android se aplica el supuesto de que son dispositivos de uso personal, hay aplicaciones de dispositivos mobiles donde no interesa configurar una cuenta google o estar instalando aplicaciones frecuentemente. No encontré nada para esta situación.

lunes, 21 de marzo de 2016

getline y getdelim: alternativas a gets o fgets

Quiero leer archivos de texto linea a linea, desconozco el largo de la linea. Esto es útil tenerlo encapsulado en una función para procesar archivos de log u otros archivos con lineas de largo variable, usuales en sistemas que intercambian información mediante archivos de texto.

La funcion gets(3), deprecada por largo tiempo, no es una buena opción. Si la linea es mas larga que el buffer, esta función permite leer mas allá del final del buffer que recibe como parámetro. Esto se explotado para romper la seguridad de una computadora, en ataques de desbordamiento de buffers

La función fgets(3), es un remplazo "seguro" de gets. Esta función lee hasta que el buffer se llene o encuentre el fin de linea. Si la linea es más larga que el buffer, va a ser necesario otra lectura. Y no tenemos certeza de saber si la función terminó por llegar al final de la linea o por que se llenó el buffer.

Buscando mejores alternativas encontré las funciones de biblioteca getline(3) y getdelim(3). Originalmente ambas funciones eran extensiones del proyecto GNU a la glibc. Fueron integradas al standard POSIX a partir de la revisión POSIX.1-2008. Reciben como parámetros un puntero a un buffer, puntero al tamaño inicial del mismo y un puntero FILE al archivo que se quiere leer. Adicionalmente getdelim recibe un carácter que se utilizará como fin de lectura (en vez de '\n'). Si el buffer no resulta suficiente para completar la lectura, la función lo agranda llamando a realloc(3), actualizando el valor del tamaño del mismo.

Estas funciones son una buena opción para leer archivos con lineas de largo variable o desconocido. Incluso, con algo de cuidado, se pueden leer archivos creados en otros sistemas operativos (Windows/MS-DOS). En la manpage hay un ejemplo de uso.

sábado, 19 de marzo de 2016

Punteros a Cadenas en C

Estoy escribiendo una biblioteca en C para levantar archivos de texto. Mirando la documentación de getline(3) me entraron dudas sobre punteros. He trabajado poco en C, buen momento para repasar.

Esta discusión me refresco las diferencias entre char * y char**. Esta pagina es bastante didáctica, con muchos ejemplos. Y esta discusión cubre Arrays de cadenas.

viernes, 11 de marzo de 2016

Backdoor SSH en Fortigate 4.x hasta 5.0.7

Juniper tenia (¿tiene?) una puerta trasera (backdoor) en sus firewalls, conocida hace años. A esto se sumó que de acuerdo a la propia Juniper, estarían utilizando el algoritmo de encriptación DUAL_EC_DBRG. Este algoritmo tendría debilidades explotables por sus creadores. Le llegó el turno a equipos fortigate, con una vulnerabilidad explotable en aquellos equipos que tienen habilitada la administración via SSH.

A fines de Enero, un colega me pasó un mensaje de una lista. Allí hay un script en Python para explotar esta vulnerabilidad. Lo bajé y lo corrí, previa instalación de algunos paquetes extra de Python. Una vez que habilité el acceso (temporalmente) vía SSH a un equipo fortigate, entré sin necesidad de contraseña.  Fortinet publicó una recomendación y una entrada en el blog. Se recomienda actualizar los productos de acuerdo a las directivas de Fortinet a versiones que no presenten esta vulnerabilidad o deshabilitar el acceso vía SSH a los dispositivos afectados.





miércoles, 13 de enero de 2016

Repositorio Python para SLES/OpenSuSE

A diferencia de OpenSuSE, SLES trae nativo un conjunto de paquetes más limitado. Sin ser una instalación minimalista es bastante austera. En un servidor con SLES SP 11 quise instalar pip, al ver que me faltaban dependencias y que la instalación desde los fuentes venia trabajosa, salí a buscar paquetes binarios.

Hay un repositorio de OpenSuSE con una serie de paquetes que no integran el sistema base:

http://download.opensuse.org/repositories/devel:/languages:/python/

En este repositorio podemos encontrar paquetes útiles que no integran la versión estable de Enterprise Server o OpenSuSE.