Gorkula

Selecciona una imagen destacada usando ActionText en Rails

A veces comparto enlaces a este blog en Twitter, la única red social que utilizo.

Las URL que genero no son nada descriptivas. Las hice así a propósito. Para que sean cortas y no tener que pensar. No me importa nada el SEO.

Entonces pensé que al menos podría añadir las etiquetas necesarias al HTML para que al compartir los enlaces en las redes sociales se mostrara automáticamente el título, la descripción y una imagen.

Este blog está montado con Rails. Lo utilizo para aprender. He ideado una manera, espero que funcional, de seleccionar una de las imágenes insertadas en un artículo como imagen principal y que se muestre en las redes sociales.

Inicialmente publiqué el código en el foro de GoRails pero no obtuvo ni una sola respuesta. No tengo ni idea de si lo que he hecho es una barbaridad o tiene algún sentido, pero aquí lo dejo.

Lo primero de todo es que he añadido un campo cover_attachment_id al modelo Post.

En el formulario de edición de un post he añadido el siguiente código:

<% if post.content.embeds.any? %>
  <p>Select cover image:</p>
  <div class="post_cover_select">
    <%= collection_radio_buttons(:post, :cover_attachment_id, post.content.embeds.all, :id, :created_at) do |b|
      b.label(class: "post_cover_radio_button") {
        image_tag(b.object.variant(resize_to_fit: [150, 150])) + b.radio_button
      }
    end %>
  </div>
<% end %>

Si el post tiene algún embed itera y muestra una miniatura junto a un radio button para poder seleccionar la imagen destacada del post.

Originalmente había creado un helper para renderizar la imagen pasando el attachment_id, pero me pareció un poco salvaje hacer una consulta a la base de datos en un helper de una vista, así que acabé añadiendo un método al modelo. Así también es más fácil de usar.

El helper de la vista (desechado):
def cover_image(attachment_id)
  full_url_for ActiveStorage::Attachment.find(attachment_id).variant(resize_to_limit: [600, 600])
end

El método en el modelo (lo que uso ahora):
def cover
  if cover_attachment_id
    content.embeds.find_by(id: cover_attachment_id).variant(resize_to_limit: [600, 600])
  end
end

Para renderizar la imagen de un post basta con:
<%= image_tag post.cover if post.cover %>

Si lo que quiero usar es la url, entonces uso:
<%= full_url_for post.cover if post.cover %>

Y eso es todo. Creo que no ha quedado mal.
#old.gorkula.com

They Live

Salgo de casa con mi camiseta de They Live puesta. La de la película de Carpenter.

No es mi camiseta preferida pero guardo muy buenos recuerdos de ella:
  • La compré como auto regalo de cumpleaños durante un festival de cine de Sitges.
  • La llevaba puesta el día que conocí a mi mujer.
  • En la oficina me preguntaron por qué llevaba puesta una camiseta de Einstein.



El camino de casa a la oficina es interesante. Voy hacia la oficina cuando escucho que alguien se dirige insistentemente hacia mi. No entiendo muy bien lo que dice pero entonces señala mi camiseta y entiendo: "Es de una película".

De repente estoy hablando de cine con un desconocido en la calle. Sobre la película They Live en concreto. Hablamos sobre los actores y me doy cuenta de que no recuerdo quien era el protagonista. Primero afirmo que es Kurt Russell. Aparece en varias películas de Carpenter y es el primero que me viene a la cabeza. Pero el desconocido me hace ver que estoy equivocado. El actor es Roddy Piper. Me da un poco de vergüenza equivocarme así. Con la camiseta puesta.

Hablamos un poco más y sigo camino a la oficina. Lo primero que hago al abrir el ordenador es pedir una copia de la película.
#old.gorkula.com

Show your work! (Austin Kleon)

Show your work! es la continuación de Steal like an artist, ambos libros de Austin Kleon. El primero lo compré y lo leí hace tiempo. Me gustó y dejé pendiente leer los otros dos libros de la serie que ha sacado el autor hasta el momento

¿De qué va el libro? Creo que la mejor manera de describirlo es usando el último párrafo.

Look for something new to learn, and when you find it, dedicate yourself to learning it out in the open.
Document your progress and share as you go so that others can learn along with you. Show your work, and when the right people show up, pay close attention to them, because they'll have a lot to show you.

Que he traducido así:

Busca algo nuevo que aprender y, cuando lo encuentres, dedícate a aprenderlo abiertamente.
Documenta tu progreso y comparte lo que aprendas de tal manera que otros puedan aprender contigo. Enseña tu trabajo y, cuando la gente correcta aparezca, préstales atención, porque ellos tendrán un montón que enseñarte.



Los puntos que sirven de guía para el libro son:

  1. You don’t have to be a genius.
  2. Think process, not product.
  3. Share something small every day.
  4. Open up your cabinet of curiosities.
  5. Tell good stories.
  6. Teach what you know.
  7. Don’t turn into human spam.
  8. Learn to take a punch.
  9. Sell out.
  10. Stick around.

Es imposible ir punto a punto resumiendo porque son bastante claros. El libro tiene 200 páginas aproximadamente, así que me atrevo a decir que dedica unas 20 a cada punto.

La manera de desarrollar cada punto varía. Muchas veces son párrafos sueltos en los que relata una pequeña historia. Va alternando entre historias personales e historias que ha leído o escuchado en alguna parte. Siempre cita las fuentes, por lo que es fácil ampliar la información si una cita o historia te llama la atención. También hay muchos dibujos y newspaper blackouts.

Si nunca has leído nada de Kleon, es posible que algunas anécdotas te suenen pues son de dominio popular. Si lees su blog o estás suscrito a sus newsletters lo más probable es que conozcas casi todas, pues muchas de estas páginas salen de su blog.

Esto no es malo en absoluto. En mi caso la familiaridad con algunas de las citas y las historias ha hecho que las lea con otro enfoque. A veces incluso las recordaba de forma ligeramente diferente.

El libro se lee muy rápido y han sido varias las veces que me he encontrado releyendo páginas o volviendo atrás. Está lleno de ideas poderosas que en cuanto las dejas reposar unos instantes vuelven a la mente.

La cita que más me ha gustado de todo el libro es de su mujer, Meghan:

"If you never go to work, you never get to leave work."

Que en castellano viene a decir algo así como:

Si nunca vas al trabajo, nunca podrás salir del trabajo.

En estos tiempos de trabajo en remoto viene bien recordarlo. Hace unas semanas alquilé un escritorio en un espacio de coworking porque se me estaba haciendo difícil trabajar desde casa.
#old.gorkula.com
He añadido un servicio de monitorización para saber si el blog se cae. La página de estado es pública y se puede ver desde este enlace.

El servicio que he elegido se llama updown.io. Al crear una cuenta nueva te regalan 100.000 créditos. He configurado para que compruebe cada 30 minutos. A este ritmo tengo casi 7 años de monitorización gratis.
#old.gorkula.com

Tomateras

El verano pasado estuve un mes cuidando una casa y un perro mientras los dueños estaban de viaje. En el jardín había un montón de plantas. Sobre todo tomateras de diferentes tipos. También había jalapeños y demás pimientos picantes.

Cada tarde, cuando el sol se empezaba a poner, salía a recoger lo que estaba listo. Si no lo recogía, por la noche venían los conejos y se lo comían. Luego regaba el jardín y las plantas.

Me gustó la experiencia y durante todo este tiempo he venido fantaseando con la idea de tener un pequeño huerto. Viviendo en un piso es tarea complicada.



Hace un par de días, de camino al parque, vimos una caja con pequeñas tomateras. En uno de los laterales de la caja estaba escrito FREE. Vamos, que te sientas libre de coger lo que quieras. Como no quería ser muy gorrón cogí dos plantas y las llevé a casa.

Por la tarde volvimos a pasar y vimos que ahí seguía la caja. La foto es de este segundo viaje. Las plantas empezaban a estar mustias después de todo el día al sol. Decidimos acoger un par de plantas más.



Las tomateras son plantas que necesitan cantidad de tierra, agua y espacio vertical. De momento las tengo en una ventana pero en breve las voy a tener que cambiar a unas macetas más grandes.

Tenemos un pequeño espacio común en las escaleras de atrás donde otros vecinos han puesto mesas, sillas y plantas. Buscaré unos maceteros y las pondré ahí.

A ver si da tiempo a que salga algún tomate, ya que he leído que tardan entre 2 y 3 meses una vez transplantados y en ese tiempo aquí comenzará a hacer demasiado frío.
#old.gorkula.com