Erico Andrei: Construyendo una plataforma colaborativa de noticias con Plone

Spanish Translation of the summary of the talk “Erico Andrei: Building a Collaborative News Platform with Plone” at Plone Conference 2020, taken from Maurits van Rees‘ Weblog.


Traducción del resumen de la charla “Erico Andrei: Building a Collaborative News Platform with Plone” en Plone Conference 2020, tomado del Weblog de Maurits van Rees.

Building a Collaborative News Platform with Plone

Erico Andrei: Building a Collaborative News Platform with Plone

Erico Andrei: Building a Collaborative News Platform with Plone

Plone es una increíble combinación de visión, software y comunidad. Pero qué define a Plone, cuál es la esencia y cómo cambia con el tiempo.

Junto a otras personas he creado pendect.com . La idea era construir una plataforma TL; DR (Too Long, Did not Read). Cree tarjetas breves con enlaces a artículos extensos. Las tarjetas son enviadas por nuestra comunidad (Pentributors). Además: por cada tarjeta, plantamos un árbol.

Logo de PENDECT

Logo de PENDECT

Requerimientos técnicos:

  • Flujo de trabajo colaborativo.
  • Control de permisos, quién puede hacer qué, dónde y cuándo.
  • Metadatos, categorización.
  • Somos un emprendimiento, por eso necesitamos SEO.
  • Código abierto.

Nos decidimos por Plone como Content Management System. Tiene la mayoría de funciones listas para usar. Conozco a Plone, por supuesto. Pero consideré construir una API simple sobre Pyramid. Pero con Plone podríamos salir al mercado de inmediato. Tiene un historial probado con portales de noticias y también una comunidad amigable con gente inteligente.

Sitio web pendect.com

Sitio web pendect.com

Usamos DBpedia para metadatos y categorización. Esto funciona en un conjunto de datos de Wikipedia. Tienen una herramienta Spotlight para detectar entidades en textos. Usamos una conexión Sparql a DBpedia para consultar más información.

Usamos un poco de todo lo demás: Cloudflare, nginx, Varnish, HAProxy, Ansible, Thumbor, Sentry, Mailgun, IFTTT, Zapier, Gravatar. Ya sobrevivimos a doce subidas de tráfico diferentes de Reddit. Tenemos decenas de miles de usuarios. Usamos Thumbor para escalas de imagen. Realmente fácil de integrar en Plone.

Conjunto de herramientas

Nuestro conjunto de herramientas y complementos:

  • Tenemos velocidad de desarrollo gracias a algunos amigos, como Python 3:
    • Uso de las técnicas f-strings.
    • Uso de las técnicas type hints (las puse desde el principio, ayudándome a pensar en mi código).
    • Uso de clases de datos (es mejor que devolver diccionarios en todas partes).
  • Además se uso las siguientes herramientas:
    • black, proporciona un formateador de código inflexible. Al usarlo, acepta ceder el control sobre las minucias del formateo manual, le brinda velocidad, determinismo y libertad frente a las molestias del pycodestyle sobre el formato.
    • isort, proporciona una utilidad/biblioteca de Python para ordenar las importaciones alfabéticamente y automáticamente separadas en secciones y por tipo.
    • flake8, proporciona un verificador de código fuente modular para pep8, pyflakes y co.
    • PyCharm, el IDE de Python para desarrolladores.
  • No utilizamos muchos complementos de Plone:

Tipos de contenido

Los tipos de contenido usados son:

Adaptaciones hechas

Las adaptaciones realizadas a Plone fueron:

Nuevas características:

  • Páginas de agregación para etiquetas, personas, ubicaciones, organizaciones.
  • Desarrollo con souper.plone: ​​puede seguir categorías, etiquetas, personas, ubicaciones, organizaciones y Pentributors (comunidad de Pendect).

Sincronizar con archive.org. Lleva demasiado tiempo, por lo que debe ser asincrónico. También otros servicios externos, como la traducción.

Lecciones aprendidas

  • Siempre cree pasos de actualización con GenericSetup. Tenga en cuenta las configuraciones de registro existentes: use purge = false.
  • Los materiales de formación de Plone son la documentación de fábrica de Plone.
  • Odio los registros de recursos (resource registries) actuales.
  • Plone carece de una solución asincrónica/retardada simple y funcional.
  • Las imágenes de WebP no son para todos. Tenga cuidado con almacenarlos en caché.

Futuro

  • Traducción y auto resumen a todos los Pentributors (comunidad de Pendect).
  • Hilos de tarjetas, similares a los hilos de Twitter, que utilizan relaciones de contenido.
  • Utilizar ElasticSearch.
  • Mover a RelStorage, el cual proporciona un backend para ZODB que almacena pickles en una base de datos relacional SQL.
  • Plone como headless CMS, con Volto CMS para el frontend y aplicaciones móviles.
  • Aléjese de la carpeta de usuario predeterminada, ya se está volviendo más lento.

Referencias

¡Haz tu donativo!

Si te gusto este articulo, por favor, ayúdame a seguir escribiendo este tipo de articulo, haciendo donativos en Dólares vía el servicio Paypal haciendo clic aquí o en la siguiente imagen.


PayPal - The safer, easier way to pay online!


También puede realizar su donativo con Bitcoin (BTC) en escaneando el siguiente código QR:

¡Ayúdame a continuar Blog de lcaballero.wordpress.com!

O usando en la siguiente dirección:

bitcoin:13uZUXXqLP3Ct3ksWHXnDqSrbMbhDV9hGz

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Salir /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s