Ir al contenido principal

This is my blog, more about me at marianoguerra.github.io

🦋 @marianoguerra.org 🐘 @marianoguerra@hachyderm.io 🐦 @warianoguerra

pylint en vim y como decirle que no sea tan denso

para tener pylint en vim (o para el caso cualquier linter de casi cualquier lenguaje) instala syntastic.

https://github.com/scrooloose/syntastic

hacelo por este caballo:


               ,
/ \,,_ .'|
,{{| /}}}}/_.' _____________________________________________
}}}}` '{{' '. / \
{{{{{ _ ;, \ / Gentlemen, \
,}}}}}} /o`\ ` ;) | |
{{{{{{ / ( | this is ... |
}}}}}} | \ | |
{{{{{{{{ \ \ | |
}}}}}}}}} '.__ _ | | _____ __ __ _ |
{{{{{{{{ /`._ (_\ / | / ___/__ ______ / /_____ ______/ /_(_)____ |
}}}}}}' | //___/ --=: \__ \/ / / / __ \/ __/ __ `/ ___/ __/ / ___/ |
jgs `{{{{` | '--' | ___/ / /_/ / / / / /_/ /_/ (__ ) /_/ / /__ |
}}}` | /____/\__, /_/ /_/\__/\__,_/____/\__/_/\___/ |
| /____/ |
| /
\_____________________________________________/

para decirle que no sea tan denso podes empezar dumpeando un pylintrc en la ubicación por defecto:

pylint --generate-rcfile > .pylintrc

y editandolo a conciencia

EDIT: acá esta mi pylintrc

para decirle asyntastic que use pylint y no pyflake o similar agrega esta linea en tu vimrc:

let g:syntastic_python_checker = 'pylint'

y todos felices, incluso serj tankian


achicar pdf en linux

con ghostscript

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf

con image magic

convert -compress JPEG -quality 90 input.pdf output.pdf

Camping en Königsee, Bayern, Alemania (Into the wild version burguesa)

viaje de camping al sur este de Alemania, a Bavaria, lindando con los alpes suizos y a unos cuantos kilómetros de Salzburg con Pato, Sole y Dominik.




salimos el sábado al mediodía de la casa de los padres de Dominik para llegar a eso de las 4 al destino señalado.


luego de armar la carpa nos fuimos a pasear por un pueblo cercano cuyo nombre, tantas veces mal pronunciado, me evita buscarlo en google maps.


Luego de comer en un restaurant típico de la cuna del Oktoberfest, Audi, BMW y el Bayern München volvimos a nuestras carpas a descansar para un día de idealizadas actividades.

al día siguiente, despiertos por la luz del sol y el fresco de la noche anterior (lo cual explica la escueta ofertas de campings para carpas) salimos caminando para el pueblo cercano cuyo nombre no he de pronunciar correctamente, para tomar un colectivo que nos llevaría hasta otro colectivo, que nos llevaría hasta una base a 124 metros de la punta de una montaña, que gracias a un ascensor al final de 124 metros de un túnel hasta el centro de la misma nos permitiría acceder a una casa de vacaciones de un tal Adolfo.

luego de pasear y sacar fotos retornamos al pueblo a la base de la montaña, luego al camping para procurarnos de Bávaro alimento, continuamos viaje en dirección contraria para ver algo del lago que da titulo a este articulo antes que el sol nos deje tras la montaña (no, el sol no nos iba a tele-transportar tras la montaña, el sol nos dejaba, como en abandonar, tras la montaña).

<caption estilo="gracioso"/>



a la mañana siguiente luego de un desayuno alemán y mas tarde de lo planeado fuimos a tomar un barco que nos dejaría en una iglesia que dada su inaccesibilidad parece confirmar la caída en numero de fieles al cristianismo (caída como en descender, no como en caerse).



luego de caminar por sus alrededores y ser sorprendidos por una lluvia que solo tenia la intención de hacernos subir al bote de regreso para mostrarnos sarcásticamente el sol en medio del trayecto, volvimos al camping a empacar y emprender retorno a la civilización, cuna de la internet, herramienta utilizada por seres como yo para inmortalizar un viaje y así justificar la realización del mismo.


porque, para que uno hace cosas en la vida sino es para postearlas en facebook y parecer mas interesante?


PD: cuando no tengo ganas de escribir escribo de esta forma, sepan disculpar las molestias, sucede que hace mucho que no escribo nada interesante en el blog y me estoy obligando a fuerza de una prolongada reflexión en esta postdata que usted, lector anónimo, lee mientras comienza a preguntarse porque soporta los delirios del autor.


Namespaces are one honking great idea -- let's do more of those!

me puse en campania para hacer algo que venia pensando hace mucho, la patada inicial fue que al escribir una librería en scala y tener que pensar un namespace, seguí la convención de java y escribí

package org.marianoguerra.jsonpath

y pensé, esta ocupado marianoguerra.org?

fui, mire, no estaba, desempolve mi bloqueada cuenta de paypal que resulta que tenia plata adentro, pague el dominio por 5 anios, manosee los DNSs por un rato y el resultado es el siguiente:

la razón es un poco de nioniada de tener un dominio en un TLD, tener urls simples y como reza el dicho:

Any problem in computer science can be solved with another layer of indirection. But that usually will create another problem.—David Wheeler

lo cual me permite cambiarme de proveedor de hosting de imágenes, blog y mail sin tener que actualizar links*** y redireccionar gente.

 * la pagina principal es cualquiera, en algún momento la haré mejor.
 ** voy a empezar un lento proceso para forzar a la gente a escribirme al nuevo, si querés agendar mi nuevo mail mandame un mail contándome lo que se cante :)
 *** cosa que probablemente nunca haga, pero tengo pensado migrar mi blog a algo mas estático, quizás nikola, quizás alguna otra cosa hecha a mano.

Enable gzip compression in jetty webserver (static and dinamic content)

GZIP Compression

Guest post from Javier Dall' Amore

GZIP Compression can be used to reduce the amount of data being sent "over the wire". Compression is applied as a transport encoding. This can greatly improve webapplication performance, however it can also consume more CPU and some content (eg images) cannot be well compressed.

Static Content

The Jetty Default Servlet can serve precompressed static content as a transport encoding and avoid the expense of on-the-fly compression. This servlet, normally mapped to /, provides the handling for static content, OPTIONS and TRACE methods for the context. One of its init parameters is "gzip". If set to true, then static content will be served as gzip content encoded if a matching resource is found ending with ".gz". So if a request for "jquery.js" is received and the file "jquery.js.gz" exists, then it will be served as "jquery.js" with a gzip transport encoding.


<init-param>

<param-name>gzip</param-name>

<param-value>true</param-value>

</init-param>

GzipFilter(dynamic content)

The Jetty Gzip Filter is a compression filter that can be applied to almost any dynamic resource (servlet). It fixes many of the bugs in commonly available compression filters (eg handles all ways that content length may be set) and has been testing with Jetty continuations and suspending requests.

This filter will gzip or deflate the content of a response if:

  1. The filter is mapped to a matching path
  2. accept-encoding header is set to either gzip, deflate or a combination of those
  3. The response status code is >=200 and <300
  4. The content length is unknown or more than the minGzipSize initParameter or the minGzipSize is 0(default)
  5. The content-type is in the comma separated list of mimeTypes set in the mimeTypes initParameter or if no mimeTypes are defined the content-type is not "application/gzip"
  6. No content-encoding is specified by the resource

If both gzip and deflate are specified in the accept-encoding header, then gzip will be used.

Compressing the content can greatly improve the network bandwidth usage, but at a cost of memory and CPU cycles.

To enable gzip dynamic compression, add the this filter definition to your "web.xml". This works for jetty 7 but for jetty 6 you should replace the filter-class for org.mortbay.servlet.GzipFilter:


<filter>

<filter-name>GzipFilter</filter-name>

<filter-class>org.eclipse.jetty.servlets.GzipFilter</filter-class>

<init-param>

<param-name>mimeTypes</param-name>

<param-value>text/html,text/plain,text/xml,application/xhtml+xml,text/css,application/javascript,application/json,image/svg+xml</param-value>

</init-param>

</filter>

<filter-mapping>

<filter-name>GzipFilter</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

quiero (se puede?)

quiero que grep me deje decirle que ignore las lineas que matchean pero son mas largas que N caracteres.

caso: haces "grep -R algo *" y te matchea un js comprimido, feliz búsqueda 10000 lineas mas abajo.

se puede? lo hacen?

PS: no, no quiero aprender awk :)

Update: Roberto Alsina acaba de ahorrarme mucho tiempo a futuro proponiendo esta solución:

grep cosa * | cut -c1-80 

que corta cada linea.

esto de ser vago y preguntar en broadcast funciona :P

por 50 centavos mas agrandamos tu paranoia?

The Buzzer

UZB76 (sometimes referred to as UVB76, but recently MDZhB) is the call sign of a shortwave radio station that usually broadcasts on the frequency 4625 kHz (AM suppressed lower sideband). It is known among radio listeners by the nickname The Buzzer. It features a short, monotonous About this sound buzz tone , repeating at a rate of approximately 25 tones per minute, for 24 hours per day. The station has been observed since around 1982.[1] On rare occasions, the buzzer signal is interrupted and a voice transmission in Russian takes place

The Conet Project

The Conet Project: Recordings of Shortwave Numbers Stations is a four-CD set of recordings of numbers stations, mysterious shortwave radio stations of uncertain origin believed to be operated by government agencies to communicate with spies "in the field".

mas info: