Felipe Lerena: Empezando de nuevo

En 1997 empece un blog, antes de que la palabra blog siquiera existiera. Pasaron un monton de años, un monton de versiones. Pase por un monton de engines Lo ultimo que puse fue un Wordpress. Habia muchas cosas que no me gustaban. No solo sobre Wordpress, sino sobre mi blog, cada vez escribi menos y menos y sin darme cuenta durante un año no escribi nada. Un dia me atacaron el wordpress pro que no lo actualizaba y decidi poner un cartel en vez del blog que decia: "Aca habia un blog" esperando algun dia tener ganas y tiempo de hacer un blog.

En el interin desde esa fecha (hace 2 años ya) fui creando paginas estaticas para cada cosa que necesitaba hacer. Terminé con un caos de cosas...

Por suerte Roberto Alsina creó Nikola un framework que me va a permitir hacer un sitio un poco mas "custom"

Espero poder ordenar todo el lio de cosas que tengo y poder empezar a contar aca todas las cosas que estoy haciendo.

Gabriel Patiño: Consejos para actualizar Ubuntu

Soy usuario de Ubuntu desde la primer version, 4.10. Casi ocho años de Ubuntu en varias máquinas, pero en todas hubo una constante: se instala Ubuntu y se actualiza cada seis meses. Nada de reinstalar, actualización tras actualización.
Solo en un caso, en una de las versiones del año pasado, falló la actualización y fué por no seguir los pasos que siempre sigo, y paso a comentarles.

Limpieza previa

Antes que nada, no esta nada mal hacer una limpieza antes de actualizar. De esta forma mantenés tu instalación con el mínimo de paquetes necesarios para el uso que le des a tu máquina, y a la vez el proceso de actualización tarda menos.
Las herramientas que uso son synaptic y deborphan.

Synaptic

Synaptic es muy conocido por los ubunteros mas viejos ya que era la única interfaz gráfica para instalar o actualizar paquetes. Lo bueno es que tiene unos filtros por estado de los paquetes que ayudan mucho a la hora de limpiar.
Los filtros a revisar para una limpieza son 'Locales y obsoletos', 'Auto eliminables' y 'Instalados a mano'. Ahí podemos ir repasando que cosas realmente necesitamos, y al resto le ponemos 'Eliminar Completamente.
Si sugiere eliminar otros paquetes, dale que sí a menos que los paquetes empiezen con 'ubuntu-*' (ubuntu-desktop, ubuntu-standard, etc). Esos paquetes son los meta paquetes que definen todas las dependencias de la versión que tengas y son necesarios para actualizar correctamente a la nueva versión.
Es posible que después de ejecutar la limpieza, queden nuevos paquetes en estado de eliminables, así que hay que repetir la limpieza una o dos veces.

Deborphan

deborphan es una utlilidad de línea de comando que te lista los paquetes que no están siendo usados por ningún otro paquete. Es muy útil para eliminar librerías que ya no son usadas (ya que generalmente no sabemos para que es exactamente cada lib).
Generalmente lo ejecuto en dos pasos (como super usuario), aunque si sos valiente podes hacer solo el último (que elimina todos los paquetes que lista deborphan):

deborphan
deborphan | xargs apt-get remove --purge -y

En este caso también hay que repetir el proceso hasta que quede todo limpio.

Actualización

La actualización de Ubuntu es muy simple: abrís el update-manager, y le das al botoncito que aparece cuando hay una nueva release, y esperas, y esperas, y esperas (o mejor anda a hacer alguna otra cosa).
Un solo tema a tener en cuenta: si hay paquetes para actualizar en tu versión actual, actualizalos. No cuesta nada y si llega a haber algún cambio importante en el update manager, apt o alguno de sus amigos, es mejor tener la última versión para actualizar correctamente.

Volver a limpiar

Luego de actualizar y reiniciar, tomate unos minutos más y volvé a ejecutar los dos pasos de limpieza. Luego de las actualizaciones es común que algunos paquetes queden huerfanos, o ya no sean soportados oficialmente.
Si sabes que no los usas, eliminalos, así mantenés tu instalación limpia.



Ideas? Aportes?

Espero que estos concejos te sirvan para mantenter tu Ubuntu limpio y liviano cada seis meses.

Gabriel Patiño: Perrito con ruedas

Y salió el primer juguete de madera!

Esta vez un poco más prolijo que el primer juego de ingenio, y aunque quedan cosas por aprender y mejorar, quedó muy lindo y simpatico:


La próxima vez voy a sacar mas fotos desde el principio, pero acá va una descripción para los interesados.

El cuerpo y la cabeza los hice con un pedazo de la lenga que estuve cepillando. Esta vez aproveché el regalo de cumpleaños de la empresa y me compré una caladora, así que ahora se me simplificó mucho el tema de cortar la madera.

Para las orejas y cola usé una tabla de cedrillo, es una madera firme pero muy blanda para cortar y lijar así que fue muy fácil manejarla.

Las ruedas fueron un tema... Compre recortes de varias cosas en Maderera Córdoba, y entre ellos encontré un rodillo de viraró que me salió bastante caro, pero me imaginé que era ideal para las ruedas. La madera es muy linda, pero es durísima. Cuando la corte con la caladora no me dí cuenta, pero cuando quise hacer los agujeros para los ejes se me complicó bastante por no tener un taladro de banco.

Terminación

Después de lijar bastante (parece que la carpintería es por lo menos un 60% de lijado) pasé al terminado: tres manos de aceite de tung, y una lija fina (320) entre manos. Para que se seque bien hay que esperar 24 horas, así que esto llevó tiempo pero quedo muy lindo y es algo que se puede hacer a la noche durante la semana, mientras los chicos duermen.


Armado

Al momento de empezar el armado, me di cuenta de un detalle, sin un taladro de banco fue muy difícil hacer los agujeros de las orejas y ruedas en ángulo recto.


Las ruedas las arregle haciendo unas arandelas de madera con una varilla a la que le hice un agujero y después la corte en fetas. Las orejas me quedaron fuera de escuadra y las tuve que lijar para que no se traben con el cuerpo.


Para el cuello tenía una varilla muy gruesa así que improvisé un torno poniendo la varilla en el taladro y dandole con la lija. Funcionó bastanten bien. Me parece que la próxima vez, si encuentro la forma de sujetar bien el taladro, pruebo directamente con un formón para hacer mas rápido.


Perrito terminado

A Oli le encantó desde que se lo dí. Salimos a pasear y lo llevó por veredas rotas, subidas de cordones y hasta algunos escalones. Me sorprendió que todavía no se haya desarmado, parece que la cola de carptintero pega en serio.


Por ratos tambíen lo uso Juan, y el perrito también resistió, eso que el petiso es un poco más bruto... lo llevaba como un banderín para todos lados, ni le importaba que estaba de costado en vez de parado sobre las ruedas, asi que el perrito se ligo unos rayones, pero para eso son los juguetes.

Juan casi arranca la colita a los tirones, y se despegó del cuerpo, pero de alguna forma quedo enganchada y no se salió. Ahora juegan a moverle la cola como si fuera la antena de un viejo televisor, espero que no la pierdan o voy a tener que hacer una nueva.

Lecciones aprendidas

  • Es difícil hacer agujeros en ángulo recto.
  • Aunque para las ruedas quedo bien porque el perro se mueve de forma muy graciosa.
  • Revisar la escuadra antes que seque el pegamento (si decía cola no quedaba muy bien :))
  • Salir de las figuras geométricas y hacer cosas más curvas.

Ramiro Algozino: Generando Certificados / Diplomas con Python + rst2pdf

Resulta que este 28 de Abril es la FLISoL 2012 y junto a otros integrantes de SanLuiX (el grupo de usuarios de software libre de San Luis) vamos a estar en la sede de Villa Mercedes de la Universidad Católica de Cuyo colaborando con la comunidad y llevando adelante el festival :-). A que viene todo esto se preguntarán; viene a que para emitir certificados de asistencia a la FLISoL nos surgió la necesidad de contar con algún método para generar los certificados masivamente usando software libre, y aquí es donde entra en juego Python y rst2pdf.

Después de pensar un rato, terminé con la siguiente estructura de archivos:

  • filsol (directorio)
    • asistentes.csv
    • certificado.rst
    • escudo.png
    • generar_certificados.py
    • pdf (directorio)

Veamos uno por uno:

asistentes.csv

Es un archivo .csv con la información personal de los asistentes; para las pruebas que hice usé el siguiente contenido de ejemplo:

dni1,apellido1,nombre1
dni2,apellido2,nombre2
etc...

certificado.rst

Es la estrucutra del certificado a imprimir, con los campos a reemplazar enumerados entre {}. Usemos por ejemplo el siguiente:

===========
FLISOL 2012
===========

.. image:: escudo.png
 :scale: 70

----------------------------
Universidad Católica de Cuyo
----------------------------

Por la presente se deja constancia que **{1} {2}**, *D.N.I. {0}* ha participado del evento FLISol 2012 en calidad de asistente. Realizado en la sede Villa Mercedes de la Universidad Católica de Cuyo el día 28 de abril de 2012.

escudo.pg

Como su nombre lo indica, es el escudo de la universidad, podría ser el logo de la FLISol o cualquier imagen que quisieran. Vale aclarar que este archivo no es obligatorio y depende de lo que hayan hecho en su archivo rst como maqueta del certificado.

generar_certificados.py

Este es el script de Python que genera todos los certificados a partir del listado en csv de asistentes. El código creo que se explica por sí mismo, se los dejo a continuación:

#!/usr/bin/env python
#-*- encoding: utf-8 -*-

from csv import reader
import subprocess

print 'Abriendo listado...',
# Esto se puede poner feo...
listado = reader(open('asistentes.csv','r'))
total = len(list(listado))
listado = reader(open('asistentes.csv','r'))
print 'listo.'

print 'Abriendo certificado...',
certificado = open('certificado.rst').read()
print 'listo.'

print listado
print 'Encontrados', total, 'asistentes:'
for nro, asistente in enumerate(listado):
    dni = asistente[0]
    apellido = asistente[1]
    nombre = asistente[2]
    certificado_final = certificado.format(dni,apellido,nombre)

    print 'Generando certificado para', apellido.upper(), nombre + '...',

    p = subprocess.Popen(['rst2pdf',
                        '-s',
                        'freetype-serif,a4-landscape,twelvepoint',
                        '-o',
                        './pdf/' + dni + '-' + apellido + '-' + nombre + '.pdf'
                        ],
                        stdin=subprocess.PIPE
                        )
    p.stdin.write(certificado_final)
    p.communicate()
    print 'listo', str(nro+1), 'de', str(total) +'.'

Seguramente se puede mejorar (mucho) el código, pero como prueba de concepto resultó ser más que suficiente :-D. El script genera un pdf en la carpeta (adivinen…) pdf a partir del archivo rst por cada asistente, reemplazando el nombre y DNI que corresponde. Para ello utiliza el ejecutable de rst2pdf, seguramente se podría hacer llamando a la librería, pero la verdad no me puse a investigar cómo hacerlo.

Uso una PIPE de subprocess para alimentar a rst2pdf con el rst modificado con los datos del asistente directamente y no tener así que guardar un archivo rst distinto a disco por cada persona.

Creo que quedó bastante bien, en un puñado de líneas y nos vino al pelo! Cuando lo probemos bien les cuento cómo se portó.

Gabriel Patiño: Maestro Japonés haciendo un mueble a mano

No me canso de ver esta serie de videos de un maestro carpintero japonés haciendo un mueble a mano.
No entiendo una goma de japonés, y esto está más allá de cualquier cosa que se me pueda ocurrir hacer con madera, pero un montón para aprender de solo verlo.
Es más, cuando alguien trabaja de esta forma, creo que da gusto verlo aunque no te guste la carpintería.

Toda la serie dura media hora, lo mismo que un capítulo de los Simpsons que viste 1 millón de veces.


Ver el resto de los videos después del link...







Mariano Draghi (cHagHi): El Señor Capital

Creo que los recursos hidrocarburíferos, como todo recurso no renovable, y del que depende toda la estructura productiva de un país, debe estar bajo el control del Estado. Porque el Estado tiene que poder administrar esos recursos en función del plan productivo del país como un todo, y no de la renta de la empresa que controla la explotación de los recursos.

Sería lindo que la matriz productiva del planeta funcionara con energías alternativas, pero el mundo funciona así, en gran parte porque los petrodólares son un gran negocio para esos poquísimos seres humanos que se reparten la mayor parte de la torta de poder y dinero del planeta, y no les interesa ni conviene fomentar el desarrollo de otras tecnologías y de fuentes de energía alternativas que no dependan de los recursos escasos y finitos que ellos controlan.

¿Y a qué vengo con todo esto? No vengo a aplaudir de pie la expropiación de YPF, no al menos efusivamente, porque si bien el espíritu de la medida me parece correcta (por lo que planteaba al principio), tengo dudas con las formas, y con los reales motivos atrás de esto, y con la capacidad del gobierno para administrar correctamente los recursos, y de si realmente el gobierno tiene un plan energético integral y coherente previsto para implementar. Y no me olvido que los impulsores de la expropiación son los mismos que hace años festejaron la privatización (y fueron jugadores claves para habilitarla). Y son los mismos que gobernaron mientras se produjo el vaciamiento, sin decir/hacer practicamente nada hasta que el tema les explotó en la cara y no les quedó más remedio.

Pero... tampoco me chupo el dedo. Y toda esta discusión sobre "seguridad jurídica", "confianza de los inversores", el malestar del "capital financiero internacional", etc., me saca de las casillas. Pónganme un ejemplo de una vez que el "capital" se haya preocupado por algo o alguien que no sea su renta. Pónganme un ejemplo en donde la responsabilidad social y ambiental, o los derechos humanos, o la solidaridad, o la ética hayan tenido prioridad por sobre la renta. ¿Saben que van a encontrar? Que si la renta no estuvo primero, fue porque hubo una ley y un Estado presente aplicando la ley y regulando la economía.

Todo bien con el Señor Mercado, pero cuando se trata de recursos estratégicos, de servicios públicos, no necesariamente se puede ganar plata, no necesariamente la renta puede ir de la mano de las políticas que hay que aplicar.

Basta de defender al Señor Mercado. Basta. El Señor Mercado bien que sabe defenderse solito. Discutamos la medida desde cualquier otro ángulo, pero no me vengas con "pobres accionistas" o "pobre capital" o "pobre confianza de los inversores". Esta lógica capitalista por la cual una empresa tiene derecho a depredar y cagarse en los seres humanos porque "así son los negocios", y que a la sociedad no le importe, pero al mismo tiempo cuando viene alguien y les mete el dedo en el culo salgan a gritar que el Estado es arbitrario, o que quiebra la confianza, o lo que fuere, es ridícula.

Si el bienamado capital quiere tener piedra libre para especular y ganar a costa de romper e hipotecar el futuro del planeta, y de enriquecerse a costa de comunidades, pueblos y a veces naciones enteras, entonces que se la aguante cuando le patean el tablero de un día para el otro. Si querés vivir en la jungla, aguantate las reglas.

Por mi parte... me gustaría más que la humanidad empiece a tomar nota de estas cosas, y empecemos a tener un Señor Capital que sea responsable con la vida de la gente, la Naturaleza y los recursos del planeta. Sí, suena a utopía, pero me gusta cerrar los ojos e imaginarme una realidad alternativa en donde es posible.

¿y saben qué? es una realidad mucho más linda.

César Portela: Un cacho de cultura…

El pasado 17 de Marzo la Sinfónica de Entre Ríos inició su temporada 2012 en el Teatro 3 de Febrero. Asistí al estreno acompañado de mi padre y mi ahijada. Ayer fue la segunda presentación en Paraná, tercera en la provincia (la sinfónica recorre la provincia durante todo el año), pero ayer fui solo por […]

César Portela: Arcos y Flechas

Entre las actividades que podían apreciarse durante el fin de semana pasado en el parque Urquiza de Paraná estaba el tiro con arco y flecha organizado por Arqueros del C.B.N.. Con la posterior excusa de comprar empanadas fritas de pescado en un lugar cercano ;-), estacioné el auto cerca y con mi viejo fuimos a […]

Martín Cerdeira: Cloud.obj - Objetos Python en la nube

Primero que nada, un poco de historia. Estaba pensando: Se pueden importar módulos que estén en un servidor remoto? Y, si es sí, se puede hacer fácil, con poco código y, portable?

Todo eso, en Python, fue un SI.

La idea es, Cloud.Obj es un repositorio de modulos de Python, de donde todo el mundo puede hacer sus "imports", sin modificar demasiado el código que usarían para importarlo localmente.

Lo único que se necesita es bajar un modulito, "cloud.py" y ya está listo para usar, sin dependencias ni nada más extra.

Aquí, un ejemplo de uso:

  1. #A simple, example
  2.      
  3. import cloud
  4. o = cloud.Obj("http://cloudobj.appspot.com/sys") #o is the module sys
  5. print "The path is ", o.path
  6. print o

Por supuesto, si picara la curiosidad o si, simplemente, quisieran montar su propio servicio, el código del "server", también está en GitHub, listo para que lo bajen, en sus versiones "Servidor local" y "listo para deploy en GAE"

Más adelante, tendrá dos sabores:

Public Repo: Módulos importables públicos, para todos.
Private Repo: Con login, para quienes quieran subir código importable, protegido con password.

Cabe aclarar que, si bien hablo de repositorios, la idea no es ser un github, sino, un lugar común y en la nube, desde donde importar la última versión del módulo X.

Aquí los links:

Servicio en GAE
Download
GitHub

Y, cómo siempre, se aceptan ideas, críticas y quien quiera participar, bienvenidisimo!