Juanjo Conti: Nikola, intento... 3? 4?

Como cada año, vuelvo a intentar pasarme a Nikola. Esta vez, la patada inicial vino por otro lado.

Tengo un grupo de amigos, el LugCOS (originalmente Linux Users Group del Centro Oeste Santafesino) que hace un par de años (desde que nos reencontramos gracias a Whatsapp) vienen reclamándome que vuelva a poner en línea nuestro viejo sitio. Uno quería subir artículos de electrónica, otro una guía sobre cómo armar una impresonar 3D con piezas recicladas de la basura y el resto simplemente me pinchaba por deporte.

Una noche, mientras nos comunicábamos, cual grupo de radioaficionados modernos, me volvieron a mojar la oreja. No aguanté más.

De cero a Nikola en diez minuotas

Entré al Getting Started de Nikola y a lo caballo con anteojeras seguí las instrucciones. Funcionaron de una. Tenía un blog andando en mi máquina. ¿Y ahora? Necesitaba que esté en Internet.

Algo que tenía en claro que no quería, y es por esto que retracé tanto levantar un sitio para el grupo, era encargarme del hosting del mismo. Se me ocurrió, entonces, usar Github Pages y tener en un sistema de control de versiones tanto el código fuente de la página como su versión compilada.

Tunning

El resto fue tunnear un poco el sitio:

Una comunidad con barrera de entrada muy baja

Mientras acomodaba un poco el theme a las necesidades de un blog multi-usuario pregunté cómo se hacía en Nikola para linkear a los posts escritos por un author. Quería que cuando se mostrara el nombre de un autor, por ejemplo bajo el título de cada post, este esté linkedo a todos sus artículos. La respuesta fue que no se generaban páginas por autor, por lo que no se podía. Se me ocurrió que podía hacer una contribución.

Ya había estado aportando cambios menores como pequeños fixes en la documentación, pero esto era algo más grande. Hice un fork del repo y trabajé unas horas en privado. Cuando no supe como seguir, ralsina me sugirió que haga un pull request agregándole WIP (Work in progress) al título: https://github.com/getnikola/nikola/pull/1972.

En pocos días la feature estaba funcionando gracias a los comentarios de los desarrolladores de Nikola, el fin de semana terminé los cambios que me sugirieron y hoy se mergió.

Continuará

Puede ser que este sea el año en el que me pase a Nikola. Realmente quiero hacerlo desde hace rato, quiero una forma simple (para una definición de simple dada por un programador) de publicar mi contenido en la web, pero también quiero otras cosas. Me gustaría por ejemplo, importar "posts" que escribí en distintas plataformas. Este es el plan:

Algo que siempre me tira para atrás es que mi posts de WordPress no se ven muy bien en Nikola apenas los importás. I'll try to not overthink it too much.

Marcos Dione: ayrton-0.5

I forgot to mention: last night I finally got to release ayrton-0.5. This has a major update to the language, thanks to our new parser, craftily thieved out of pypy. Other similar changes might come soon. Meanwhile, here's the ChangeLog:

  • Much better command detection.
  • CommandNotFound exception is now a subclass of NameError.
  • Allow Command keywords be named like -l and --long-option, so it supports options with single dashes (-long-option, à la find).
  • This also means that long-option is no longer passed as --long-option; you have to put the dashes explicitly.
  • bash() does not return a single string by default; override with single=True.
  • Way more tests.
  • Updated docs.

Get it on github or pypi! You can always find everything about ayrton in its GitHub page.


python ayrton

Marcos Dione: using-snapshot-debian-org-for-downgrading-debian-packages

Nice tricks I found out trying to unfuck my laptop's setup, all my fault:

  • You can use snapshot.debian.org to recover packages for any date for any release that was available at that date. I actually new this, but somehow I forgot. I used deb http://snapshot.debian.org/archive/debian/20150720T214439Z/ testing main.

  • For that you have to disable the Packages-file-too-old check, which I have never seen, ever. Put this in any file in your /etc/apt.conf.d dir:

Acquire {
    Check-Valid-Until "false";
}
  • aptitude has a menu bar (activate with C-t), a preferences dialog, and you can set it up so any operation with a package moves down the cursor. Finally I figure that out.

  • It also has a dselect theme, but I was not brave enough to try it (for the record, I love dselect, I miss the fact that it shows how dependencies are resolved in the moment they're needed).

  • You can disable aptitude's resolver (-o Aptitude::ProblemResolver::StepLimit=0), but it doesn't make the UI that much more responsive (???).

  • digikam is not on testing right now. It FTBFS with gcc5 and has a licence problem.

  • Don't ride Debian sid right now, it's suffering a gcc transition and it might take a while.


debian

Juanjo Conti: Goodreads review: Una suerte pequeña (Claudia Piñeiro)

Disfruté mucho de este libro. Como ese chocolate que la gorda no se quiere terminar y va escondiendo en la heladera, lo fui leyendo de a ratos, cuando no tenía otra cosa "importante" que hacer. Leí los fines de semana, antes de dormir, esperando en la cola de algún trámite.

Lo hice mientras pude, cuando llegué a la última parte (el libro consta de 3 partes) tuve que dejar lo que estaba haciendo, suspender un poco la vida, para terminar de conocer la vida de la protagonista.

El libro comienza contando una historia a medias, una historia que tras una penumbra no se alcanza a ver del todo. En estos pasajes se habla de un "él". No sabemos a quién se refiere. Uno de los momentos del libro que más me gustó fuente justamente cuando, antes de la mitad, se revela quién es.

La segunda parte, la de las revelaciones, también es muy atrapante, siendo su último capítulo (tal vez el más largo?) el mejor del libro.

A la mitad de la última parte imaginé cual podría ser el final del libro y acerté :)

Rating: 4/5

Original: https://www.goodreads.com/review/show/1363662354

Mariano Draghi (cHagHi): La sal de la Tierra

Portrait of the Artist — the photography of Sebastião Salgado

Portrait of the Artist — the photography of Sebastião Salgado by Steve Jurvetson

La sal de la Tierra me hizo llorar de tristeza. Y de alegría. Me produjo por momentos un profundo pesimismo por la humanidad. Y por momentos me llenó de esperanza, me mostró que somos capaces de hacer cosas inmensas con muy poco. Me mostró la cara más terrible del ser humano. También la belleza de la Naturaleza. Refleja las profundas desigualdades que imperan en el mundo. Me hizo sentir que todos, absolutamente todos mis problemas son una estupidez frente al sufrimiento y la realidad de millones y millones de personas.

Me recordó que la fotografía es mucho más que sacar fotos, lo bella que puede ser como arte, lo impactante que es como medio de comunicación. Me recordó por que me gusta tanto.

Me contó un poco de la historia de Sebastião Salgado, y me hizo descubrir a un ser humano de una enorme sensibilidad, que recorrió practicamente todos los rincones del planeta para retratar un sinfín de cosas, algunas terribles, otras hermosas, que muchas veces elegimos ignorar.

Hacía mucho que una película no me generaba tantas emociones juntas.

La sal de la Tierra es de esas películas que todos deberían ver.

Mariano Draghi (cHagHi): La sal de la Tierra

Portrait of the Artist — the photography of Sebastião Salgado

Portrait of the Artist — the photography of Sebastião Salgado by Steve Jurvetson

La sal de la Tierra me hizo llorar de tristeza. Y de alegría. Me produjo por momentos un profundo pesimismo por la humanidad. Y por momentos me llenó de esperanza, me mostró que somos capaces de hacer cosas inmensas con muy poco. Me mostró la cara más terrible del ser humano. También la belleza de la Naturaleza. Refleja las profundas desigualdades que imperan en el mundo. Me hizo sentir que todos, absolutamente todos mis problemas son una estupidez frente al sufrimiento y la realidad de millones y millones de personas.

Me recordó que la fotografía es mucho más que sacar fotos, lo bella que puede ser como arte, lo impactante que es como medio de comunicación. Me recordó por que me gusta tanto.

Me contó un poco de la historia de Sebastião Salgado, y me hizo descubrir a un ser humano de una enorme sensibilidad, que recorrió practicamente todos los rincones del planeta para retratar un sinfín de cosas, algunas terribles, otras hermosas, que muchas veces elegimos ignorar.

Hacía mucho que una película no me generaba tantas emociones juntas.

La sal de la Tierra es de esas películas que todos deberían ver.

Joaquin Sorianello: Algo mas de 140 caracteres.

Desde hace un tiempo, lo único que cuento lo hago por twitter. Cientos de mensajes cortos que intentan comunicar lo que pasa con la causa.

Hay días que también hablo sutilmente, de como me siento yo.

Pero, releyéndolos, me encuentro con que en el fondo, no logro expresar del todo las cosas. Esos 140 caracteres obligan a reducir, recortar, y de alguna manera auto censurarnos.

Es que los últimos 64 días que pasaron desde el reporte de la vulnerabilidad y el ataque informático que estaba sufriendo MSA, fueron muy intensos.

Antes del allanamiento, miedo a que las personas responsables del ataque informático me hicieran daño a mi o a mi familia.

Después, miedo a que la justicia no opere de forma correcta, que me condenen sin pruebas, que la causa sea solo para meter miedo.

Alrededor de esas cosas quedan otras: el desgaste sobre los afectos, el estrés, y la enorme impotencia de ser considerado culpable por amistades.

Si, adentro de MSA, hay varias personas que, mas allá de las diferencias políticas e ideológicas que podamos tener, consideraba amigas.

¿Será acaso que, por estar en contra de los sistemas de votación electrónica que ellos proponen, piensen que no tengo ética profesional?

¿O que consideren que soy capaz de hacer daño en sus servidores solo para demostrar los riesgos?

Están equivocados.

Porque en el momento en que les avisé, pude separar mis propias convicciones, de lo estrictamente ético y profesional.

Les pido, a aquellos que trabajan en MSA con los que compartimos cosas en espacios de las comunidades de software libre, que traten de hacer lo mismo.

Porque con lo que está pasando, perdemos todos.

Mariano Guerra: Forward syslog messages to flume with rsyslog

As usual, brain dump, just instructions, not much content.

download flume from here: https://flume.apache.org/download.html

I'm using this one: http://www.apache.org/dyn/closer.cgi/flume/1.6.0/apache-flume-1.6.0-bin.tar.gz

unpack and put it somewhere.

create a file with the following content, I will name it flume-syslog.conf and place it in ~/tmp/, you should too if you are lazy and don't want to change the commands:

# Name the components on this agent
a1.sources = r1
a1.sinks = k1
a1.channels = c1

# I'll be using TCP based Syslog source
a1.sources.r1.type = syslogtcp
# the port that Flume Syslog source will listen on
a1.sources.r1.port = 7077
# the hostname that Flume Syslog source will be running on
a1.sources.r1.host = localhost

# Describe the sink
a1.sinks.k1.type = logger

# Use a channel which buffers events in memory
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100

# Bind the source and sink to the channel
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1

Install rsyslog if you don't have it and start it, I'm using fedora 22, change for your distro:

sudo dnf install rsyslog
sudo service rsyslog start

Note

For Fedora Users

I had to disable selinux since it was blocking some ports, YMMV

Configure rsyslog with your rule, you can do it directly on /etc/rsyslog.conf or better, check that the following line is uncommented:

$IncludeConfig /etc/rsyslog.d/*.conf

And put your config under /etc/rsyslog.d/50-default.conf (create it if it doesn't exist)

We are going to forward only messages with a given tag, since we are interested on a subset of the logs, in this case we only want log lines with the tag "test", add this to the rsyslog config file:

:syslogtag, isequal, "test:" @@127.0.0.1:7077

Save and restart rsyslog:

sudo service rsyslog start

Start flume with your configuration:

./bin/flume-ng agent --conf conf --conf-file ~/tmp/flume-syslog.conf --name a1 -Dflume.root.logger=INFO,console  -Dorg.apache.flume.lifecycle.LifecycleSuperviso=INFO,console

Note

You should run the flume-ng command from the flume folder otherwise a log4j warning will appear and you won't see the output of the sink

Now generate a log line with our tag:

logger -t test 'Testing Flume with Syslog!

you should see a line like this:

2015-08-27 18:06:25,096 (SinkRunner-PollingRunner-DefaultSinkProcessor) [INFO - org.apache.flume.sink.LoggerSink.process(LoggerSink.java:94)] Event: { headers:{host=ganesha, Severity=5, Facility=1, priority=13, timestamp=1440695180000} body: 74 65 73 74 3A 20 54 65 73 74 69 6E 67 20 46 6C test: Testing Fl }

If you don't see the line check /var/log/messages to see if your message is there:

sudo vim /var/log/messages

Bonus track! sending apache logs to syslog and from there to flume.

for this install apache 2, on fedora:

sudo dnf install httpd
sudo service httpd start
sudo bash -c "echo 'welcome!' > /var/www/html/index.html"

curl localhost

The output should be:

welcome!

Now configure apache to forward logs to syslog, open /etc/httpd/conf.d/welcome.conf and add at the bottom:

CustomLog "|/usr/bin/logger -t test" combined

Restar apache:

sudo service httpd restart

Now open the page or use curl to get a page:

/etc/httpd/conf.d/welcome.conf

You should see a new log on flume.

Where to go from here?

  • Put flume on another machine, change the ip address 127.0.0.1 to that address
  • change the tag (test) on rsyslog and on welcome.conf to something else
  • Buy me a beer

Hernán Grecco: The state of the PyVISA ecosystem (and more)

Yesterday we released several packages of the Python Instrumentation Ecosystem. You can upgrade to PyVISA 1.8, PyVISA-py 0.2 and PyVISA-sim 0.3  by:

pip install -U pyvisa pyvisa-py pyvisa-sim

For those of you who are new to instrumentation in Python, PyVISA is a Python frontend for the VISA specification that enables controlling all kinds of measurement equipment through GPIB, RS232, USB and Ethernet among others interfaces. If you are familiar with VISA instruments in LabVIEW, Matlab, C or .NET you already know how it works and you can make use of PyVISA as a nice Pythonic API to write your programs. If you have never done any instrumentation, Python and PyVISA is great combination to start.


As I mentioned before PyVISA is a frontend for the VISA specification, but what does this means in terms of software? PyVISA can connect to multiple backends, which are the ones doing part of the hard work. We currently have 3:

ni: is a wrapper to the NI-VISA library, which is the de facto standard implementation of VISA. It is feature complete but requires that you install the proprietary library provided by National Instruments. This is the default backend and is bundled with PyVISA. (Notice that we provide the wrapper, you need to install NI-VISA yourself as explained in the PyVISA docs)

py: is an implementation of the VISA specification using popular python packages to talk over the different interfaces: PySerial, PyUSB, linux-gpib and socket (which is inside the Python standard library). It is almost feature complete for Message Based Instruments (ASRL, USB, TCPIP, GPIB). It is available through the PyVISA-py.



sim: allows you create simulated instruments using simple text files. It is great for testing and off-line developing of complex instrumentation applications. It is available through the PyVISA-sim.


As always, these releases would not have been possible without our awesome community that provides code, bug reports, testing and support.

Finally I would like to mention that PyVISA is great but is kind of middle level. For complex applications you want better abstractions that allow you to forget about how the voltage is asked to a particular Voltmeter. For that purpose, I created Lantz a few years ago. It provides a very nice way to write drivers that encapsulate instrument specific information to then use them in scripts and GUI apps. It is not a replacement for PyVISA. Lantz builds on top of it to do the low level communication.

It turned out that I was not the only one thinking and coding in these direction. And I have always felt that dividing the community among many projects is a waste of time and energy. Particular in this type of projects in which the community is not as large the numerical programming and there is already an established standard.

That is is why triggered by his contribution to PintMatthieuDartiailh and I have decided to work together. He did some awesome instrumentation related coding in eapii and HQCMeas. Other people joined these initial conversations and a python instrumentation initiative that we have called LabPy was bornWe have created an organization in GitHub to host Lantz and other projects with a common goal: making instrumentation better in Python.

Matthieu has been championing the refactoring of Lantz, putting the best of the different toolkits together in a cohesive package. I have no doubt that Lantz 0.4 will be even better than 0.3

Join us at https://github.com/LabPy

Facundo Batista: Hostería sede del PyCamp


Entre las fotos que saqué del PyCamp de hace un par de semanas está esta, que me gustó tanto que la pongo acá aparte, un poco más grande...

Hostería sede del PyCamp 2015 en La Serranita

Es la hostería donde fue sede el evento (donde dormíamos y trabajábamos... las comidas fueron en otro lugar). Una construcción en múltiples niveles muy muy linda.

Más fotos del PyCamp acá.