Jump to content

Nuevos desarrolladores/Introducción al Ecosistema Técnico de Wikimedia

From mediawiki.org
This page is a translated version of the page New Developers/Introduction to the Wikimedia Technical Ecosystem and the translation is 100% complete.

Esta página ofrece un panorama del software e infraestructura Wikimedia para nuevos colaboradores técnicos. Su objetivo es ayudar a los desarrolladores a comprender las áreas principales donde pueden aplicar sus habilidades técnicas para apoyar y hacer crecer al Movimiento.

Principios básicos y tecnología

Codigo abierto

El ecosistema técnico de Wikimedia se guía por los principios del software libre y de código abierto (FLOSS). Los colaboradores de todo el mundo ofrecen su tiempo como voluntarios para mantener y ampliar la tecnología detrás de los proyectos de Wikimedia. Esto significa que el ecosistema técnico de Wikimedia está formado por muchos proyectos únicos con distintas pautas de contribución, patrones de diseño, lugares de alojamiento y procesos de revisión de código.

Los valores de código abierto como la propiedad compartida y los fuertes compromisos de privacidad son fundamentales para la infraestructura técnica, el software y los servicios de Wikimedia. Por ejemplo:

  • Para el control de versiones y la revisión de código, la Fundación Wikimedia (FWM) utiliza Git y Gerrit. Git es un sistema de control de versiones distribuido, gratuito y de código abierto, y Gerrit es una herramienta de revisión de código colaborativa, gratuita y basada en la web que se integra con Git.
  • Los Servicios en la Nube de Wikimedia (WMCS) proporcionan infraestructura de computación en la nube, alojamiento compartido (plataforma como servicio) y servicios de datos para quienes contribuyen a los proyectos de software de Wikimedia. Puedes usar estos servicios para alojar tus herramientas de software para el movimiento Wikimedia, de forma gratuita, en lugar de usar servicios propietarios, de pago o de código abierto.

Además de proporcionar herramientas y servicios a los colaboradores técnicos, FWM mantiene la infraestructura básica, como centros de datos, búsqueda, redes y enrutamiento de tráfico global. No es necesario conocerlos para contribuir a proyectos wiki, pero sí conviene conocer el software principal que impulsa Wikipedia y otras wikis: MediaWiki.

MediaWiki

Los proyectos Wikimedia, incluyendo Wikipedia, se ejecutan en la plataforma de software MediaWiki. MediaWiki es un software libre y de código abierto, diseñado específicamente para recopilar y organizar conocimiento libre y abierto. Es multilingüe, extensible, personalizable y fiable. MediaWiki permite a usuarios de todo el mundo editar, organizar, mantener y colaborar en wikis. Gestiona la visualización de contenido como texto, fotos, formato y revisiones. MediaWiki es más que un simple sistema de gestión de contenido: también proporciona herramientas para gestionar el spam y el vandalismo, así como otras funciones que facilitan la conservación comunitaria de conocimiento libremente reutilizable en una plataforma abierta.

Áreas clave en las que los desarrolladores pueden contribuir

Desarrollar MediaWiki, aplicaciones y extensiones

Núcleo y extensiones de MediaWiki

El software MediaWiki es desarrollado en colaboración por personas de todo el mundo. La comunidad técnica de Wikimedia ha añadido muchas características clave a MediaWiki y ha construido un gran ecosistema de extensiones al software principal. Debido a su complejidad, contribuir a MediaWiki puede ser más difícil que otros tipos de contribuciones técnicas. Como nuevo colaborador, concéntrate en características y errores que solo tocan una pequeña región de código. Aquí puedes encontrar buenas primeras tareas para el núcleo de MediaWiki. Evite construir nuevas skins y extensiones de MediaWiki: cada nueva extensión aumenta la carga de mantenimiento general del software y puede bloquear el lanzamiento de nuevas características cruciales. En lugar de eso, considere trabajar en una de las muchas extensiones existentes.

Ejemplo de extensión: traducir texto y administrar wikis multilingües

La extensión Translate (Traducir) permite la localización de MediaWiki y la traducción de todo tipo de texto.

Apoya la traducción basada en la web, la corrección y la colaboración entre traductores de todo el mundo, al tiempo que hace que la integración de back-end con el código fuente sea lo más fácil posible.

Captura de pantalla de una página de traducción generada por la extensión Translate.

Para obtener más información, visite $Become-a-hacker.

Aplicaciones móviles de Wikimedia

Las aplicaciones móviles amplían el alcance del contenido de Wikimedia permitiendo a los usuarios interactuar con Wikimedia sin usar un navegador web. Hay aplicaciones para las plataformas Android, iOS y KaiOS, aplicaciones para diferentes proyectos de Wikimedia como Commons, Wikipedia y Wikcionario, y aplicaciones para actividades como leer, contribuir y más. Muchas aplicaciones tienen comunidades de desarrolladores vibrantes y dan la bienvenida a nuevos colaboradores.

Ejemplo de una aplicación móvil: leer Wikipedia sin acceso a Internet

Kiwix es un lector fuera de línea - hace que Wikipedia sea accesible para personas sin acceso a Internet.

Proporciona contenido en más de 100 idiomas de Wikipedia, Wikiquote, Wiktionary y otros recursos en línea.

El desarrollo de Kiwix utiliza Java/Kotlin (Android), Swift (iOS), Qt (escritorio), NodeJS (mediawiki offliner) y C++.

Para obtener más información, visite las Aplicaciones de Wikimedia .

Personaliza MediaWiki mediante el desarrollo intra-wiki

Plantillas y módulos

Las plantillas permiten que un mismo contenido aparezca en varias páginas wiki ("transclusión"). Muchas wikis dependen en gran medida de las plantillas: existen miles, se usan en casi todas las páginas y son esenciales para su funcionalidad. Se pueden pasar parámetros a las plantillas para personalizar la gestión del contenido en diferentes contextos.

Ejemplo de plantilla: formato de citas en bloque

La plantilla Blockquote proporciona formato para citas en bloque e incluye parámetros de atribución preformateados para el autor y la fuente de una cita.

Esto permite a los editores usar el marcado de wikitexto para diseñar de manera sencilla y consistente cómo se muestran las citas en bloque en las páginas wiki.

Captura de pantalla de la documentación de Template:Blockquote que muestra cómo funciona.

No necesitas una cuenta de desarrollador para editar o crear una plantilla, y están escritas en wikitexto. Esto hace que las plantillas sean una forma sencilla de empezar a personalizar el comportamiento de la wiki.

Los módulos son similares a las plantillas, pero en lugar de estar escritos en wikitexto, utilizan el lenguaje de programación Lua. Si bien las plantillas son parte de la aplicación principal MediaWiki, el soporte para módulos se implementa mediante una extensión llamada Scribunto .

Ejemplo de módulo: formatear mapas de rutas complejos

El módulo Módulo de mapa de ruta admite un lenguaje especial, complejo y personalizado para mostrar mapas ferroviarios. Se utiliza en miles de artículos sobre ferrocarriles en varios idiomas. El uso de Lua permite que este módulo reemplace las plantillas de mapas de ruta heredadas con una implementación más rápida y compatible con dispositivos móviles.

Captura de pantalla de un artículo que utiliza el módulo Routemap en la Wikipedia en coreano.
Código de ejemplo y representación de la documentación de Mapa de ruta.

Para obtener más información sobre las plantillas, visite las Ayuda:Plantillas . Para obtener más información sobre los módulos y cómo se utiliza Lua en MediaWiki, visita el manual de Lua de Scribunto.

Scripts y gadgets de usuario

MediaWiki admite la personalización front-end, o desarrollo "en wiki", para mejorar la funcionalidad principal del software. Los scripts de usuario son JavaScript y/o CSS que proporcionan funciones adicionales a MediaWiki. El código vive en la wiki, y se inyecta desde el lado del cliente en MediaWiki a través de las preferencias del usuario. Puede modificar su JavaScript y CSS locales para cambiar la apariencia y el comportamiento de su propia interfaz. Los usuarios individuales pueden agregar funciones por sí mismos siempre y cuando cumplan con las expectativas y pautas al respecto. Si construyes algo que otros puedan usar, puedes compartir tus scripts de forma informal, o trabajar con una comunidad wiki para investigar cómo hacer tus personalizaciones disponibles para otros usuarios y proyectos como un "gadget".

Ejemplo de script de usuario: muestra contenido calculado

Este script de usuario calcula el tiempo de lectura de un artículo y lo muestra en la página.

var numWords = $("#mw-content-text > div").text().split(" ").length;
var headerWords = $("h1").text().split(" ").length;
var totalWords = numWords + headerWords;
var timeInMinutes = totalWords / 200;
var header = $("h1").text();
$("h1").text(header + " (it will take you " + timeInMinutes + " mins to read this article)");
Captura de pantalla del artículo de Wikipedia en inglés que muestra el tiempo de lectura.

Los gadgets son personalizaciones generadas por el usuario que se pueden instalar en una wiki mediante la extensión Gadgets MediaWiki. Muchos gadgets surgieron como scripts de usuario que se generalizaron en su wiki principal, y los administradores querían que fueran más fáciles de encontrar y usar. Los administradores pueden configurar qué gadgets están disponibles y habilitados por defecto para todo un sitio o skin de MediaWiki.

Ejemplo de gadget: ayuda a los editores a categorizar el contenido

HotCat ayuda a los usuarios a eliminar, cambiar y agregar categorías a las páginas de Wikipedia fácilmente.

Tiene una lista de sugerencias que propone categorías existentes para la autocomplementación.

Captura de pantalla de la funcionalidad HotCat en la Wikipedia francesa.
Ejemplo de gadget: ayuda a los moderadores a arreglar el contenido

Este gadget implementado en Wikipedia en persa ayuda a los moderadores de contenido a corregir letras, gramática, números, URL, estructura de artículos y más en árabe.

Captura de pantalla de JavaScript del gadget de Wikipedia persa.
Captura de pantalla de JavaScript del gadget de Wikipedia persa.

Para obtener más información sobre scripts de usuario y gadgets, visita Gadget kitchen .

Crear herramientas y bots para ayudar a los proyectos de Wikimedia

Las API de MediaWiki proporcionan acceso directo a los datos de la base de datos de MediaWiki. Esto incluye contenido wiki, metadatos, datos analíticos y más. Puedes usar estas API para crear aplicaciones que aporten contenido o nuevas funcionalidades al ecosistema Wikimedia. Los módulos de la API proporcionan acceso programático a gran parte de las mismas funciones que ofrece la interfaz web de MediaWiki.

Bots

Los bots son programas automatizados que ayudan a los proyectos wiki realizando tareas cruciales pero repetitivas. Los bots ahorran esfuerzo humano corrigiendo espacios extra o faltantes, sugiriendo artículos a los recién llegados, arreglando enlaces rotos, y mucho más. La automatización de bots apoya a los voluntarios de Wikimedia permitiéndole pasar más tiempo en tareas que requieren inteligencia humana, como escribir artículos, encontrar fuentes, verificar hechos y sintetizar múltiples puntos de vista.

Ejemplo de bot: fight link rot (Combate contra los enlaces rotos)
InternetArchiveBot (IABot) es un bot avanzado que identifica y reemplaza enlaces externos rotos.

También completa plantillas de referencia y agrega enlaces a recursos, cuando corresponde.

Este bot funciona como un servicio del Internet Archive en asociación con la comunidad Wikimedia.

En octubre de 2022, IABot se ejecuta en más de 150 wikis de Wikimedia.

IABot también tiene una interfaz basada en navegador web (aplicación web) que proporciona acceso fácil a algunos de los servicios y configuraciones del bot.

Los bots pueden solicitar páginas y enviar ediciones a wikis de la misma manera que los usuarios realizan las mismas tareas en un navegador web. Dado que los bots acceden a las páginas de la misma manera que las personas, pueden verse atrapados en conflictos de edición, tiempos de espera de página o encontrarse con otras complicaciones inesperadas al solicitar páginas o realizar ediciones. Dado que los bots suelen realizar un gran volumen de trabajo, debes considerar estas situaciones al crear un bot.

Para obtener más información sobre los bots, visita Manual:Creating a bot .

Herramientas

Las herramientas son aplicaciones de software que ayudan a quienes trabajan en proyectos de Wikimedia. Pueden realizar diversas tareas, como ayudar a los editores a descubrir contenido para mejorar, simplificar la planificación de editatones, visualizar el contenido wiki, ayudar a combatir el vandalismo y mucho más.

Ejemplo de herramienta: mejorar imágenes

CropTool es una herramienta de MediaWiki para recortar imágenes en Wikimedia Commons y otros sitios de Wikimedia.

Admite archivos JPEG, PNG, TIFF y GIF (animados), y también puede extraer páginas individuales de archivos DJVU y PDF como JPEG para recortar.

Captura de pantalla del elemento de menú CropTool en una wiki.

La API de Acción de MediaWiki te da acceso programático al contenido de cualquier wiki de Wikimedia. Puedes usar la API de Acción para buscar y mostrar páginas wiki, obtener archivos multimedia, editar páginas y administrar wikis. Las bibliotecas cliente que implementan la API de MediaWiki están disponibles en varios lenguajes, incluyendo Python y JavaScript.

Ejemplo de herramienta: conectar artículos de Wikipedia y elementos de Wikidata

La herramienta Duplicidad elige un artículo wiki aleatorio que no tiene un elemento Wikidata asociado y ofrece algunas posibles coincidencias en Wikidata.

Facilita la adición de datos estructurados para capturar los temas, conceptos o entidades tratados en un artículo.

Captura de pantalla de la interfaz de la herramienta Duplicity.
Captura de pantalla de la interfaz de la herramienta Duplicity.

Para explorar más herramientas de Wikimedia, visita Toolhub. Or, learn about hosting your tools and bots for free on Toolforge.

Únete a la comunidad tecnológica de Wikimedia

Una excelente manera de contribuir es conectar con la comunidad técnica. Puedes conocer gente y debatir sobre el trabajo de desarrollo en diversos canales de comunicación y en eventos como los hackatones (o hackathons en inglés). La Fundación Wikimedia también ofrece programas de divulgación para asesorar a nuevos desarrolladores.

Participantes en el Hackathon de Wikimedia en Praga, 2019.
Participantes en el Hackathon de Wikimedia en Praga, 2019.

Comienza como nuevo colaborador