Marcelo Fernández: Nuevo Documento: “HTTP/2. Un nuevo protocolo para la web” (v1.0)

Les comparto el documento que armé dentro del marco del grupo de Teleinformática y Redes de la Universidad Nacional de Luján sobre el protocolo HTTP/2, a modo de recopilación, traducción y simplificación de todo lo que anda dando vueltas en la web. La idea es ir actualizándolo y completándolo a medida que pase el tiempo.

Dejo el link para bajarlo en PDF.

Se aceptan sugerencias, comentarios y críticas, por qué no. 🙂

Saludos

Marcelo Fernández: Nuevo Documento: “HTTP/2. Un nuevo protocolo para la web” (v1.0)

Les comparto el documento que armé dentro del marco del grupo de Teleinformática y Redes de la Universidad Nacional de Luján sobre el protocolo HTTP/2, a modo de recopilación, traducción y simplificación de todo lo que anda dando vueltas en la web. La idea es ir actualizándolo y completándolo a medida que pase el tiempo.

Dejo el link para bajarlo en PDF.

Se aceptan sugerencias, comentarios y críticas, por qué no. 🙂

Saludos

Patricio Molina: Kay Jewelers Celebrates Their Grand Opening at Bristol Plaza

Press Release – May 5, 2017

(May 5, 2017; Bristol, CT)—BLACKLINE Retail Group and Federal Realty proudly announce the opening of Kay Jewelers in Bristol Plaza. Kay Jewelers is part of Signet Jewelers Limited. Signet is the largest specialty jewelry retailer in the US, UK and Canada. The company operates approximately 3,600 stores primarily under the name brands of Kay Jewelers, Zales, Jared The Galleria Of Jewelry, H.Samuel, Ernest Jones, Peoples and Piercing Pagoda.

This is the chains 12th Connecticut location. The new store is located at 594 Farmington Ave and will be open 7 days a week.

BLACKLINE Retail Group based in Newton, MA represented the Landlord in this transaction.

About Bristol Plaza
Bristol Plaza is located in Hartford County at the intersection of Farmington Avenue, Route 6 and Hefbern Road in Bristol, CT. The property has a total of 266,000 square feet of retail space and 1,244 parking spaces. The population in a 5-mile radius is 107,000 + with an average household income of $83,000 and up.

About BLACKLINE Retail Group
Based in Newton, Massachusetts, BLACKLINE Retail Group provides first class shopping center leasing and brokerage services to Landlords from Connecticut to Maine. BLACKLINE leases over 3 Million Square Feet of premium retail in Lifestyle Centers, Power Centers & Neighborhood Centers and have completed hundreds of retail transactions with Anchor Stores, Restaurants, Junior Anchors, Fashion Tenants and Service Users of all types.

BLACKLINE’S expertise includes property marketing, strong local prospecting, lease negotiating, site planning and tenant mix advisory services. With our team’s local and regional market knowledge and range of skills including shopping center marketing, lease negotiating, site planning, engineering and real estate finance, we offer landlords and tenants alike a full picture of the opportunities associated with any particular site. Visit www.blacklinere.com, call 617.553.1820 for more information.

CONTACTS:
BLACKLINE Retail Group, LLC
Marketing Department
617-553-1820
info@blacklinere.com

###

The post Kay Jewelers Celebrates Their Grand Opening at Bristol Plaza appeared first on Blackline Retail Group, LLC.

Marcos Dione: installing-npm-on-debian-testing

TL;DR: How lazy can you be? This post should take you 5 minutes to read... :-P

So npm is out of Debian testing. This means that the hell that is node code handling is now even harder. node's installation instructions is a bloody video from which you can't copy and paste the commands (how useful), and as far as I can tell, it's the official way to install npm.

If you already have a good version of node provided by your trusted distribution, you most probably will cringe on the idea of installing a third party package like this, and probably you don't think containers are the solution, or you just want to install something locally so you can play with it.

If you look closer to the bottom of that page you'll find the "advances user's" guide to install it yourself, but it's only a pattern URL to the distribution .tar.gz, with no further instructions. With a little bit of luck, the instructions will be included. The pattern has a placeholder for the version you want (putatively, the latest), but I can't find, for the life of me, references to which is the latest version.

In the GitHub project page you will find the terrible, unluckily classic curl https://site.com/unknown_script.sh | sh command that downloads this script. The script is in POSIX shell dialect, and has strange constructions:

node=`which node 2>&1`
ret=$?
if [ $ret -eq 0 ] && [ -x "$node" ]; then
  (exit 0)

To me, that exit 0 in a subshell is the equivalent of a NOOP, so I wonder why they decided to write the condition like that.

After checking the availability of a couple of tools (node, tar, make, but not curl), it uses the latter to download JSON from the registry, finding there the actual version (currently 4.5.0, if you're interested). It downloads the package, untars it, and executes:

"$node" cli.js rm npm -gf
"$node" cli.js install -gf

The first removes any old installation. More on that in a minute. The second, obviously, installs the new version. But the -gf options (I hate short options in scripts) are to be guessed, as no help is provided about them. Let's go with --global and --force, which means it will install somewhere in your system and overwriting anything it finds. With the previous command it should have deleted all the files (same options), so you're really nuking whatever was there before.

Nowhere in the instructions so far says anything about root, but obviously this needs to be run as such. There's also this detail:

As of version 0.3, it is recommended to run npm as root. This allows npm to
change the user identifier to the nobody user prior to running any package
build or test commands.

So there's no way to make a local installation of npm... is there? Well, not user wide, only system wide (already explained) and project wide. Here's how to do the latter:

$ wget https://registry.npmjs.org/npm/-/npm-4.5.0.tgz
$ tar xvf npm-4.5.0.tgz  # it's unpacked in a directory called 'package'
$ /usr/bin/node package/cli.js install npm
$ rm -rf package  # clean up after you!
$ ./node_modules/.bin/npm install carto

The third command uses the tarball's CLI interface to install the same version 'the right way'. To be honest, I had already used the old npm version that used to come with Debian to do exactly the same thing. Of course, this works as long as newer version of npm can still be installed with such an old version of the same. Who knows when that's gonna break/be deprecated.

All in all, it's sad to see such an useful tool be dropped like that. I just hope someone can pick up the pieces.


debian nodejs npm

Juanjo Conti: Goodreads review: El informe de Brodie (Jorge Luis Borges)

Saqué el libro de la biblioteca para llevarlo a la segunda clase del seminario sobre Borges y aproveché pare repasarlo.

Mis cuentos preferidos son: La intrusa, El indigno, Historia de Rosendo Juárez, El encuentro, Juan Muraña, El otro duelo, El evangelio según Marcos.

Fuera de los cuentos fantásticos (que en este libro casi no hay), prefiero los de cuchilleros sobre los de próceres y guerras.

El último cuento, El informe de Brodie, no es mejor que El entenado de Saer.

Rating: 4/5

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

Juanjo Conti: Goodreads review: Bajo este sol tremendo (Carlos Busqued)

Es un libro que se lee rápido y no porque sea ligero. Se lee rápido porque a) está bien escrito y fluye y b) querés saber qué va a pasar con esos tres personajes movidos solo por el instinto básico de supervivencia.

Hay un parentesco, no dicho, entre dos personajes que uno imagina y nunca se dice. Mientras leía pensaba que quería que me lo cuenten pero cuando llegué al final (repito que uno no ve la hora del llegar al final, de terminar de desentrañar esas relaciones) no hizo falta.

La escritura es aséptica en cuanto a la interioridad de los personajes y el resultado me convenció.

Tal vez hay demasiados sueños y demasiados fragmentos de documentales en la construcción.

Rating: 4/5

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

Juanjo Conti: Goodreads review: Operacion Bukowski (Enrique Ferrari)

En un par de videos escuché al autor menospreciar el libro: experimental, primerizo, no bien acabado, todavía no tenía el oficio.

Es verdad, pero si ya leíste otras de sus novelas y te gustaron, y leíste a Bukowski y te gustó, el libro es ameno.

La forma de diario hace que la lectura sea ágil (aunque hay un par de días de relleno).

Nota de color: en un momento, el narrador menciona a un tal Kike, fletero, que luego de tener una banda de heavy metal está probando suerte con la literatura (clara autoreferencia). Le critica que le leyó algunos cuentos suyos y que le resultaron muy embebidos en Onetti. Más adelante, el narrador enumero sus gustos y dice: Onetti, varias cabezas adelante de todos los demás (el desdoblamiento falla).

Me sirvió para ejercitar, así que leí casi todo el libro con un lápiz en la mano.

El cuento con el que cierra, Un Réquiem para Henry Chinasky, está bien logrado.

Rating: 3/5

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

Facundo Batista: Texto coloreado en LibreOffice


A los que armamos presentaciones mostrando programitas o pequeñas porciones de código siempre se nos presentó un inconveniente: ¿cómo mostrar ese código apropiadamente coloreado?

Con "apropiadamente coloreado" no me refiero a pintarrajeado como adolescente que sale a bailar, o decorado con florcitas, soles, y/o aviones de guerra, sino a algo que es típico en el mundo de la programación donde los editores le ponen distintos colores a las palabras que forman el código en función de qué tipo de palabra son: un color para las variables, otro para los textos, otro para los nombres de las funciones, otro para...

No voy a entrar en detalle sobre qué es ese coloreado (que en inglés llamamos "syntax highlighting"), pero les muestro un ejemplo:

Ejemplo de código coloreado

En fin, volviendo a meter código coloreado en LibreOffice. Lo charlé bastante en su momento con varias personas, lo mejor parecía capturar una imagen del código y meter eso, pero es una porquería porque no queda bien ante el menor cambio de tamaño, y si encima hay que tocar cualquier cosa de ese texto es imposible.

También buscando encontré Coooder, que es una extensión de LibreOffice que hacía exactamente eso. El verbo hacer de la oración anterior está en pasado porque sólo funciona para los LibreOffice del 3.3 a 3.6 (yo actualmente tengo 5.1).

Finalmente encontré la manera de hacerlo! No es la más directa, pero el resultado es el que estaba buscando: un texto coloreado dentro de LibreOffice. Genial!

Los pasos se dividen en dos partes grandes:

  • generar un documento en formato RTF
  • meter este doc RTF en la presentación

Cómo generar el doc RTF:

  • Abrir el código con gvim
  • Escribir :TOhtml, lo cual abrirá otra ventana con el código HTML correspondiente a nuestro texto coloreado.
  • Escribir :saveas /tmp/cod.html, lo cual grabará ese HTML en el path ahí especificado
  • Cerrar cualquier libreffice abierto (sino el próximo paso falla :/).
  • Desde una terminal, ejecutar unoconv -f rtf /tmp/cod.html lo cual nos dejará un archivo en /tmp/cod.rtf justamente con el código nuestro, en formato RTF.
  • Abrir el LibreOffice Impress
  • Ir al Menu, Insertar, Archivo; un par de clicks en "siguiente" y ya tenemos el texto adentro.
  • Seleccionar el texto que acabamos de insertar, y cambiarle la tipografía a alguna monoespaciada.

Voilà!

Facundo Batista: Teclas multimedia con Exaile en sistemas modernos


Hace rato que Exaile es mi reproductor de música de cabecera. Tiene todo lo que quiero, y el resto de las cosas que no quiero no son intrusivas ni me molestan (no tengo que pelearme con el programa para usarlo, digamos).

Y está hecho en Python :). Es una ventaja a la hora de debuguear algún problema (y si no recuerdo mal algún parche he mandado por algún bug...).

Exaile

Con las idas y venidas de Ubuntu en el escritorio, en algún momento tuve problemas usando la versión oficial o última liberada, y en ese momento lo resolví saltando directamente a usarlo desde el proyecto. Cuando decidí hacer eso probé directamente master, y me anduvo, así que me quedé ahí.

Es un toque riesgoso (a nivel de estabilidad) porque estás probando lo último que meten los desarrolladores, pero por ahora estamos (casi) bien; hay que tener en cuenta que no lo actualizo todo el tiempo, sino cuando estoy buscando alguna corrección específica que se haya hecho.

El otro día vi que habían solucionado algo que me molestaba (un detalle nomás, relacionado con el arrastrar canciones en la playlist), e hice git pull para actualizar a lo último. Algunas cosas mejoraron (puntualmente lo que estaba buscando, joya), pero unos minutos después me di cuenta que no me andaba mi hotkey de teclado para pausar y rearrancar la música.

Yo estoy muy acostumbrado a apretar ctrl-shift-espacio para hacer que la música se frene, y el mismo golpe de teclas para que la música reanude, y de repente no me funcionaba más :(.

Empecé a investigar qué era, y me di cuenta que Exaile no tenía más el plugin gnomemmkeys, que es el que le permite "recibir las teclas de multimedia que uno aprieta" (así muy entre comillas, porque no es la descripción más realista de lo que sucede, pero transmite la idea).

Buscando (en el proyecto mismo) en qué momento eso desapareció encontré un commit que hacía referencia a mpris2, que resulta que es una interfaz de D-Bus para controlar reproductores de sonido/video.

Caution, geek

Aprendiendo sobre esta tecnología encontré que había un cliente de mpris de linea de comandos, así que lo instalé (sudo apt-get install mpris-remote) y configuré en el sistema para que ctrl-shift-espacio sea mpris-remote pause.

Nota: el comando que puse arriba manda la señal "pause", que pausa y "despausa", ojo, no confundir con "play", que arranca la próxima canción (no sigue de donde estaba).

Nota 2: después de que lo había implementado, me dijeron en el canal de IRC de Exaile que directamente podía hacer exaile --play-pause desde la linea de comandos. Me quedé con la implementación original, sin embargo, porque es más rápida (solo manda una señal, no levanta todo un reproductor de música solo para mandarla).