Proyecto de Desarrolladores de Wikimedia en África/Alcance de Proyecto
Problema
Deseamos construir un equipo de desarrolladores voluntarios de Wikimedia en África debido a los siguientes problemas afrontados en nuestro continente:
- Hay muy pocos desarrolladores provenientes de África en la Fundación Wikimedia (movimiento). Deseamos aumentar los números para cumplir la visión de los movimientos.
- Desarrolladores de voluntario para añadir más características en proyectos de MediaWiki y sus extensiones que incluyen APIs etc. de África y además, desarrollar las herramientas/proyectos que solucionen problemas comunes dentro del contexto africano, para promover las actividades del movimiento en una aproximación técnica. Por ejemplo, un proyecto como Wiki Ama África o Wiki Ama Las Mujeres, donde puede ser desarrollada una herramienta para analizar los datos a clasificar y producir los resultados de los ganadores para ese año, etc.
- Evita esperar que un pequeño grupo sesgado de desarrolladores solucione los muchos problemas tecnológicos en el movimiento, especialmente los problemas peculiares pertenecientes a voluntarios de nuestro terreno.
- La carencia de participación de los voluntarios africanos en tecnología inclinaron a acontecimientos Globales en el movimiento como Google Summer of Code, Código de Google-En, Programa de divulgación para mujeres, etc...
Solución propuesta
Actualmente somos un equipo de dos preparados para trabajar con mentes muy experimentadas tanto dentro como fuera del movimiento para hacer realidad esta idea. Pretendemos reclutar desarrolladores voluntarios y aprovechar la oportunidad para defender la causa del movimiento.
"Hasta ahora, el plan es conseguir lo siguiente".
- Una lista de correo de desarrolladores voluntarios en África para compartir ideas y temas de discusión con otros para conseguir que se interesen.
- Acceder a afiliados de WMF y grupos de usuarios de diferentes movimientos (GDG, grupo de Python, grupo de Linux, etc.) en cada país, para ver si podríamos conseguir que algunas personas se interesen en contribuir a MediaWiki. Creemos que es razonable en este sentido, ya que a menudo es fácil para los desarrolladores que ya están contribuyendo en el flujo abierto a mover nuevos proyectos similares.
- Usar el boca a boca en instituciones universitarias (al alumnado de ciencias/alumnado de programación/ciencia de la computación) y ver si podemos interesarlos en las actividades del movimiento y contribuir (esto sería hecho por país y se compartirían las estadísticas).
- Capacitar a los probables grupos de desarrolladores en los países seleccionados y motivar sus esfuerzos continuos a través de la lista de correo.
- Organizar una vez al año una reunión/hackathon para realzar y exhibir sus trabajos.
- Por país, mantendríamos la energía activa nominando a algunos voluntarios para construir comunidades de desarrolladores en sus diversas comunidades y trayendo todas estas comunidades juntas, tendríamos una gran comunidad en África basada en desarrolladores.
Metas/Objetivos
Tiene una comunidad de desarrolladores de África.
- Conseguir un total de 20 desarrolladores activos a través del continente.
- Participación de al menos 10 @individuos en el Verano de Código (GSoC) para 2018 de África.
- Crear una solución a al menos una preocupación técnica importante de África.
- Participa en solucionar preocupaciones de la lista de deseos comunitaria.
- Organiza al menos un hackathon continental.
Importancia de proyecto
Esto beneficiaría a la comunidad africana, ya que serían capaces de jugar con MediaWiki y su extensión (aprendiendo cómo funciona MediaWiki y el desarrollo en la Fundación/de trabajos de movimiento).
Consiguiendo un sentimiento de desarrollador de proyectos de Wikimedia y quizás comenzar a pensar en un proyecto para ayudar a la comunidad africana y al movimiento globalmente Para empezar, estaremos trabajando en proyectos convencionales y/o en proyectos existentes, reparando errores y ayudando a construir un ecosistema en crecimiento. Aún así, esperamos comenzar algunos proyectos en el futuro y solucionar asuntos reales que pertenecen al continente.
Con un equipo africano de desarrolladores, podríamos surgir con proyectos que pudieran solucionar problemas comunes dentro del continente. Estos proyectos recorrerán un largo camino para solucionar nuestros problemas comunes. Esto aumentará el nivel de concienciación de las actividades del movimiento en África y conseguirá que más personas se impliquen en el voluntariado para proyectos comunitarios de África, lo que aumentará el número no solo de editores sino también de desarrolladores de África.
Conseguir que los amigos africanos participen en programas globales que los beneficiarán a ellos y a la Fundación, ya que crearán herramientas para resolver problemas y tareas del mundo real (enriqueciendo su trayectoria profesional) como desarrolladores. Programas como Outreach para mujeres (ningún participante de África), GCI (ningún participante de África) y GSoC (1 único participante de África en 2016). Además, preparará a los desarrolladores con habilidades reales dentro del movimiento abierto y ayudará al aprendizaje del uso de una plataforma completamente nueva.
En pocas palabras, nuestro objetivo principal o primario es conseguir desarrolladores voluntarios en el movimiento de África (los activos para trabajar en proyectos de Wikimedia y proyectos relacionados con África orientados hacia los objetivos del movimiento).
Propuesta
Programa de estrenamiento
Pretendemos empezar y finalizar la formación entre los meses de marzo a junio (4 meses). Esto incluirá formación en el país para al menos 3 países pero preferentemente 4 países. Plan A, Dos veces en un mes pero celebrado cada dos meses. Esto deja un mes de planificación y seguridad de logística en el medio para cada lote de acontecimientos que se realizarán en cada ubicación. Plan B, Un acontecimiento por país cada mes. Los países Propusieron países abajo:
Fase 1
- Ghana - Resolvimos en Ghana porque hay un Grupo de Usuario y OFWA para apoyar esta actividad en el país. Es un país fuerte en lo que respecta a la implicación de Wikimedia en el continente africano y es probable que utilicemos el apalancamiento ya con instituciones asociadas para realzar esta causa.
- Côte D’ivoire - Côte D’ivoire es un país fuerte en el movimiento con interés en informática o programación. Somos muy conscientes sobre el entusiasmo por los programas relacionados con desarrolladores, con Google y otras compañías notables en el país. Deseamos aprovechar sus fortalezas e intereses mientras conectamos al grupo de usuarios para aprovechar la oportunidad de fortalecer sus lazos y anunciar su presencia.
- Nigeria: una comunidad muy vibrante en la subregión de África Occidental y las actividades allí atraerán a las multitudes y la conciencia creativa masiva sobre Wikipedia y las oportunidades de desarrollo para voluntarios.
- Camerún -
Fase 2
- Tanzania: acabamos de comenzar una comunidad en crecimiento en el país y la mayoría de los miembros son estudiantes de informática, además de que ya tenemos una asociación con un centro que está dispuesto a darnos su espacio, audiencia y soporte para el proyecto. El centro está vinculado con el gobierno y crea fuertes lazos para defender esta causa.
- Sudáfrica: tiene el único capítulo en el continente y trabajar con ellos traerá la clase de personas que nos imaginamos como desarrolladores para el continente. Actualmente, hay una pareja que conocemos quienes realmente lo están haciendo increíble en MediaWiki y será genial acordonarles.
- Botsuana*-
- Kenya*-
Programa
Día 1
Sesión 1: Introducción a Git, GitHub, Gerrit e instalación de MediaWiki.
- Bienvenida y Ruptura del hielo- 9:00am - 9:20am
- Introducción de Wikimedia Proyectos - 9:20am - 9:40am
- Introducción a Git/GitHub y Gerrit - 9:40am - 10:40am
- <Tentempié/Descanso para Café> -- 10:40am - 11:00am
- Tutorial Gerrit para la instalación de MediaWiki en el entorno local: 11:00 a.m. a 12:30 p.m.
Tutorial Gerrit (Tutorial Gerrit para configurar mediawiki: Instalar Git, claves SSH, descargar MediaWiki, etc.)
- <Almuerzo> -- 12:30 pm - 1:10 pm
- Energizer - 1:10pm - 1:15pm
- Por qué ser voluntario como desarrollador 1? - 1:15 pm - 1:40 pm
- Instalación de la extensión MediaWiki en MediaWiki y cómo utilizar estas extensiones. (los dos puntos anteriores se están trabajando mano-a-mano desde el tutorial Gerrit, la instalación de mediawiki está hecha) - 1:40 pm - 2:40 pm
- <Tentempié/Descanso para Café> -- 2:40 pm - 3:00 pm
Sesión 2: Cómo utilizar IRC para comunicación con otro desarrollador Wikimedia
- Introducción a IRC y comandos IRC - 3:20 pm - 4:30 pm
Tutoriales (Uso de IRC - tutoriales)
Día 2
- Bienvenida - 09:00 am - 09:10 am
- Welcome - 09:00am - 09:10am
Sesión 3: Manos sobre cómo construir extensiones en MediaWiki y pirateando Ejemplo ext
- Tutorial/ejercicio para un ejemplo de desarrollo de una extensión MediaWiki- 09:10 am - 11:10 am
Desarrollando extensiones
(Desarrollando una extensión)
- <Tentempié/Descanso para Café> -- 11:10 am - 11:30 am
- Tutorial de escritura de extensión (Hackeando la extensión de ejemplo) - 11:30 am - 12:30 am
- <Almuerzo> -- 12:30 pm - 1:10 pm
Sesión 4: Cómo utilizar Wikimedia Phabricator como desarrollador
- Cómo usar Phabricator (errores de archivo, resolver problemas, etc.) - 1:10 pm - 2:30 pm
Phabricator (Rastreador de problemas) - <Tentempié/Descanso para Café> -- 2:30 pm - 3:00 pm
- Por qué ser voluntario como desarrollador 2? - 3:00 pm - 3:40 pm
- Despedida y clausura - 3:40 pm - 4:00 pm
Las viñetas anteriores deben cubrir al menos el 85% de lo que los desarrolladores deben saber antes de trabajar en proyectos relacionados con la programación en la Fundación Wikimedia.
Abajo está una lista de los idiomas más utilizados en la Fundación Wikimedia:
- PHP y Hack (PHP es el más recomendado)
- Javascript, JSON y jQuery
- SQL para el idioma de consulta
- MariaDB/MySQL como sistema de administración de la base de datos
Grupos objetivos/Modo de reclutamiento
Tenemos la intención de comunicarnos a través de grupos y comunidades de desarrolladores ya existentes, como:
- Grupos de Desarrolladores de Google
- Grupos de Usuarios de Linux
- Clubs de Mozilla
- Universidades/Instituciones de educación superior
- Desarrolladores independientes
- Miembros de la comunidad de código abierto
Acontecimientos continentales
- Solucionando problemas reales en África con Recursos Wikimedia para el movimiento y en beneficio de los africanos o los propios participantes - Conferencia regional (fin de año 2017)
- Outreach Para Mujeres - octubre 2017
- Programa Código de entrada Google - diciembre - febrero (2017/2018)
- Hackathon Antes, después de o alrededor de Wikimania en Ciudad del cabo - 2018
- Participando en solucionar algún de los problemas comunicados en la lista de deseos 2018
- Google Summer of Code - 2018
Programming Sessions on PHP and Python in 2022
Python Programming Track: Led by Ayobami Tewogbade( User: Roybylon)
The Python programming track was an intensive three-month course designed to provide participants with a thorough understanding of Python and its applications. Sessions were held every Friday from 3 PM to 4 PM, offering a blend of theoretical knowledge and practical experience where participants were taken through the Python Essentials course https://pythoninstitute.org/python-essentials-1.
Course Overview
Duration: 3 months
Schedule: Fridays, 15:00 UTC - 16:00 UTC
Week 1-4: Introduction to Python
- Understanding Python syntax and basic constructs
- Variables, data types, and basic operations
- Control structures: loops and conditionals
Week 5-8: Intermediate Python
- Functions and modularity
- Error handling and exceptions
- Working with files and directories
Week 9-12: Advanced Python
- Introduction to libraries and modules
- Using popular libraries: NumPy, pandas, and matplotlib
- Working with APIs and data manipulation
Practical Projects
- Real-world applications and projects
- Hands-on coding sessions to apply the concepts learned
- Collaborative project development
PHP Programming Track: Led by Caleb Nanigah (User:calebbubune)
The PHP programming track was a comprehensive six-month course aimed at equipping participants with the skills needed for dynamic web development using PHP. Sessions were held every Saturday from 3 PM to 5 PM, combining in-depth lessons with practical web development projects.
Course Overview
Duration: 6 months
Schedule: Saturdays, 15:00 UTC - 17:00 UTC
Monthly Breakdown:
Month 1: Introduction to PHP - 0.1-Introduction to PHP.mov
- Overview of PHP and its uses
- Setting up a development environment (XAMPP or WAMP) - How To Install XAMPP on Windows and run PHP on localhost
- Basic syntax and data types
- Variables and operators
- Control structures (if/else, switch, loops) - 1-Introduction to PHP.mov
- Functions and arrays - 2-PHP Loops & Functions.mov
Month 2: Web Development with PHP
- Creating and processing forms - PHP Forms part 01.mp4
- GET and POST methods
- Cookies and sessions - Cookies and Sessions.mp4
- File handling (uploading and downloading files) - PHP Files Upload and Downloading & DBMS intro.mp4
- Working with databases (MySQL) - Database.mp4
Month 3: Advanced PHP Techniques
- Object-oriented programming in PHP - https://drive.google.com/file/d/1oBXiS285Kj-4tsxB8bmD4s7CjuAxBknQ/view?usp=sharing
- Exception handling
- Regular expressions
- Debugging and error handling
- Creating and using classes and objects
Month 4: Building a CRUD Application
- Designing a database schema
- Connecting to a database
- Retrieving, inserting, updating and deleting data
- Creating a user-friendly interface for the application
Month 5: Advanced Topics
- Working with APIs
- Creating and consuming web services
- Security best practices
- Deployment of PHP applications
Month 6: Project work
- Students will work on a project that utilizes the concepts learned throughout the course
- The facilitator will provide guidance and support as needed
- Students will present their projects to the class and receive feedback
Both the Python and PHP tracks were designed to build a solid foundation in programming, helping participants become proficient in these languages and apply their skills to Wikimedia projects. We look forward to the innovative contributions these newly trained developers will bring to the community.
Onboarding Session at Goethe Institute: Empowering Wikimedia Contributors
In 2019, we held an onboarding session at the Goethe Institute in Ghana, where participants were trained on essential tools for contributing to Wikimedia developer projects. This session focused on equipping new contributors with the skills and knowledge needed to effectively use Git, GitHub, Gerrit, and Phabricator.
Training Highlights:
- Git & GitHub: Participants learned the fundamentals of version control using Git and how to collaborate on projects through GitHub. They were guided through the process of forking repositories, making commits, and submitting pull requests.
- Gerrit: We provided an in-depth introduction to Gerrit, a code review tool that is integral to Wikimedia's development workflow. Attendees gained hands-on experience in reviewing and merging changes, ensuring code quality and collaboration.
- Phabricator: The session also covered Phabricator, a suite of open-source tools for peer code review, task management, and project planning. Participants learned how to create and manage tasks, track project progress, and collaborate effectively with other developers.
This training was designed to build a solid foundation for new contributors, helping them navigate the technical landscape of Wikimedia projects and become active participants in the Wikimedia developer community. We look forward to seeing the innovative contributions that these newly trained developers will bring to Wikimedia.
Wikimedia Tech Safari Program
The Wikimedia Tech Safari was an immersion program organised to provide practical experience and guidance for participants in the Wikimedia technical community. It was aimed to promote creativity and teamwork through various technical projects, allowing participants to contribute significantly to the Wikimedia digital world. The program emphasized experiential learning, allowing participants to improve their technical proficiency and understand Wikimedia platforms. By participating, individuals contribute to strengthening Wikimedia's technological capabilities and ensuring free knowledge accessibility.
Training Highlights:
- Charting Your Course with Kiwix Development & Localization: Kiwix is free, open-source software that enables users to access offline content without an internet connection. It supports multiple languages, uses the ZIM file format for storage, and is portable across different operating systems. It also allows users to create an offline library and contributes to the global mission of making knowledge accessible. Users can contribute by searching for educational content on platforms in their local language, translating wiki content to their local language, and contributing to the platform's development. Developers can contribute by improving code, enhancing features, and providing scalability solutions. Graphic designers can also enhance Kiwix's visual content by creating user interfaces, brand elements, and responsive design principles.
- Building Bridges with Code: Contribute to wikifunctions and Connect the World: wikifunctions is a collaboratively edited catalogue of computer functions to enable the creation, modification, and reuse of source code. It is closely related to Abstract Wikipedia, an extension of Wikidata to create a language-independent version of Wikipedia using its structured data.
- Tool Forge Pass Deep Dive: What is it? how do you deploy your code on it?
Wikimedia Toolforge is a Wikimedia Foundation-provided hosting environment that enables developers to create and deploy tools and applications for Wikimedia projects. Key features include web hosting, shell access, database access, version control, integration with Wikimedia projects, community collaboration, open-source philosophy, and dynamic resource allocation. Tools developed on Toolforge can be integrated with various Wikimedia projects, promoting collaboration and improving the Wikimedia experience. The platform encourages developers to contribute to the improvement of Wikimedia projects worldwide, reflecting the Wikimedia Foundation's collaborative and open nature.
- Cut, Craft, Captivate: Building the Future of Wiki Videos with VideoCutTool: VideoCutTool is a revolutionary tool that revolutionizes the way Wiki videos are crafted. It offers cutting-edge editing, allowing users to refine video content with precision. The tool focuses on crafting engaging narratives with creative features like smooth transitions and impactful overlays. It also provides customizable visuals, allowing users to infuse personality into their videos. The user-friendly design ensures accessibility for all, and it fosters collaboration by allowing users to share projects and receive feedback. VideoCutTool is a vision for the future of wiki videos, empowering creators to transcend traditional boundaries and create extraordinary narratives.
- Akwaaba to Commons for Android: Code the App that Lets Your World Share on Wikimedia:
- Type, Translate, Transform: Unlock Languages with Scribe's Code Magic: Scribe's Code Magic is a tool that uses the magic of code to unlock the mysteries of languages, transforming the way we interact with them. It allows users to effortlessly type in their native language, break language barriers, and create a linguistic tapestry that transcends borders. This enables users to communicate, create, and code in languages that resonate with their cultural identity, breaking down barriers and fostering a global community. As Scribe continues to weave its code magic, the future holds endless possibilities for digital linguistics, where languages converge, cultures intertwine, and the magic of expression knows no bounds.
- Cloud Code Conquest: Build the Future of the Wikiverse with Wikimedia Cloud Services: Cloud services offer free hosting tools for users to deploy websites, applications, and projects without incurring costs. Popular options include GitHub Pages, Netlify, Vercel, Heroku, Firebase Hosting, Glitch, Amazon S3, and Microsoft Azure Static Web Apps. GitHub Pages allows users to host static websites directly from their repositories, while Netlify offers continuous deployment, automatic HTTPS, and serverless functions. Vercel is a front-end deployment platform with serverless functions and basic hosting services. Firebase Hosting offers fast, secure hosting with CDN delivery and automatic SSL. Glitch is a collaborative web app hosting platform suitable for projects built with Node.js. Amazon S3 is a scalable storage service for hosting static websites, while Microsoft Azure Static Web Apps integrates with GitHub for seamless deployment.
- Building Wikifunctions with WikiLambda's Power: Wikifunctions is a collaborative platform within the Wikimedia ecosystem that redefines information curatedness and empowers users to create and share dynamic functions. It is driven by the power of WikiLambda, a powerful programming environment that transcends traditional boundaries. WikiLambda offers a function catalogue, collaborative editing, multilingual capabilities, embedding functions, and an educational impact. The catalogue serves as a repository for users to discover, contribute to, and enhance diverse algorithms. It also supports content creation and consumption in multiple languages, ensuring knowledge is accessible to a global audience. WikiLambda enables users to embed functions directly into Wikimedia projects, enhancing the interactive nature of content. Its user-friendly interface facilitates learning and understanding of programming concepts. Wikifunctions is a transformative force shaping the future of collaborative programming and knowledge sharing.
To read more about The Wikimedia Tech Safari Program, kindly visit the meta page; Wikimedia Tech Safari Program