アフリカウィキメディア技術コミュニティ/プロジェクトの趣旨
問題点
私たちはアフリカ大陸で次のような問題に直面しているため、アフリカからウィキメディアのボランティア開発者のチームを結成したいと考えています。:
- ウィキメディア財団(運動)にはアフリカ出身の開発者はほとんどいません。 運動のビジョンを実現するために、その数を増やしていきたいと考えています。
- Volunteer developers to add more features on MediaWiki projects and its extensions including APIs etc. from Africa and in addition, develop tools/projects that solve common problems within the African context to promote the movement’s activities in a technical approach.
For example a project like Wiki Loves Africa or Wiki Loves Women where a tool can be developed to analyze the data to rank and produce the results of the winners for that year etc.
- Avoid waiting on a small skewed group of developers to solve the many tech problems in the movement especially peculiar problems pertaining to volunteers from our terrain.
- Lack of participation from African volunteers in tech inclined Global events in the movement such as Google Summer of Code, Google Code-In, Outreach program for women etc...
解決の提案
We are currently a team of two ready to work with very experienced minds both in and out of the movement to make this idea a realized one. We intend to recruit volunteer developers and use the opportunity to champion the cause of the movement.
The plan so far is getting the following;
- A mailing list of volunteer developers in Africa to share ideas and topics of discussion with others to get them interested.
- Tap into affiliates of the WMF and user groups of different movements (GDG, Python group, Linux group etc.) in each country to see if we could get some people interested in contributing to MediaWiki.
We believe it is reasonable in this sense as it's often easy for developers already contributing in the open stream to move to similar new projects.
- Use word of mouth in university institutions (to the science students/programming students/computer science) and see if we could get them interested in the movement's activities and to contribute (this would be done per country and stats will be shared).
- Train prospective groups of developers in the select countries and motivate their continued efforts through the mailing list.
- Organize a once a year meeting/hackathon to enhance and showcase their works.
- Per country, we would keep the energy active by nominating some volunteers to build developer communities in their various communities and bringing all these communities together, we would have a large community in Africa which are developer based.
目標と目的
アフリカ出身の開発者コミュニティを創設。
- アフリカ全土に開発者合計20人を確保。
- アフリカ出身の Summer of Code (GSoC) に10名以上、個人参加。
- アフリカに特化した技術上の重要な課題を1件以上、解決。
- コミュニティ要望調査に上がった懸念事項の対策に参加。
- 初回のアフリカ大陸ハッカソンの主催。
プロジェクトの特徴
This would benefit the African community in that they would be able to play around with MediaWiki and its extension (them learning how MediaWiki and development in the Foundation/movement works).
Getting a developer feel of Wikimedia projects and maybe start thinking of a project to help the African community and the movement as a whole. For a start we will be working on projects in the mainstream and/or on existing projects, fixing bugs and helping to build a growing ecosystem. However we look up to starting some projects in the future and solving real issues that pertains to the continent.
With an African team of developers, we could come up with projects that could solve common problems within the continent. These projects will go a long way to solving our common problems. This will increase the level of awareness of the movement's activities in Africa and get more people involved in volunteering in community projects from Africa leading to an increase in the number of not only the editors but developers from Africa.
Getting Africans folks to participate in global programs which will benefit them and the Foundation as they will build tools to solve problems and real world tasks (enriching their career path) as developers. Programs such as Outreach for women (no participant from Africa), GCI (no participant from Africa) and GSoC (only 1 participant from Africa in 2016). In addition, it will groom developers with real skills within the open movement and aid the learning of the use of a completely new platform.
In a nutshell, our prime or primary objective is getting volunteer developers in the movement from Africa (active ones to work on Wikimedia projects and African related projects geared towards the movement's goals).
提案
研修の日程
We intend to start and end training within the duration of March - June (4 months). This will include in country training for at least 3 countries but preferably 4 countries. Plan A, Twice in a month but held every other month. This leaves a month of planning and securing of logistics in between for each batch of events to be held at each location. Plan B, One event per country each month. Countries Proposed countries below:
フェーズ1
- ガーナ - 開催地として選んだ理由は利用者グループが既存で、国内の活動を支援する OFWA があるため。 It’s a strong country when it comes to Wikimedia involvement on the African continent and we are likely to use the leverage already with partnering institutions to enhance this cause.
- コートジボワール- ウィキメディア運動での強みはコンピュータ科学やプログラミングに関心が高いこと。 We are very much aware about the enthusiasm for developer related programs with Google and other notable companies in the country. We wish to leverage their strengths and interests while roping in the user group to use the opportunity to strengthen their ties and announce their presence.
- ナイジェリア - アフリカ西部という区域でとても活発なコミュニティで、活動により大衆を引き寄せてウィキペディアへの認知度を大幅に伸ばし、そこで開発者が参加するボランティア活動を実現。
- カメルーン -
フェーズ2
- Tanzania - We have just started a growing community in the country and majority of the members are computer science students, plus we already have a partnership with a hub that is willing to give us their space, audience and support for the project.
The hub is linked with the government and creates strong ties to champion this cause.
- South Africa - Has the only chapter on the continent and working with them will bring the kind of people we envisage as developers for the continent.
Currently there are a couple we know who are really doing amazing on the MediaWiki and will be great to rope them in.
- ボツワナ* -
- ケニヤ* -
プログラム
初日
Session 1: Introduction to Git, GitHub, Gerrit and installation of MediaWiki.
- Welcome and Icebreaker - 9:00am - 9:20am
- Introduction of Wikimedia Projects - 9:20am - 9:40am
- Introduction to Git/GitHub and Gerrit - 9:40am - 10:40am
- <Snack/Coffee Break> - 10:40am - 11:00am
- Gerrit Tutorials for installation of MediaWiki on Local Env.: - 11:00am - 12:30pm
Gerrit Tutorials (Gerrit Tutorials to setup mediawiki: Setting up Git, SSH Keys, downloading MediaWiki, etc.)
- <Lunch Break> - 12:30pm - 1:10pm
- Energizer - 1:10pm - 1:15pm
- Why volunteer as a developer 1? - 1:15pm - 1:40pm
- Installation of MediaWiki extension onto MediaWiki and how to use these extensions. (the above two points are working hand-in-hand since in the Gerrit tutorials, installation of mediawiki is done) - 1:40pm - 2:40pm
- <Snack/Coffee Break> - 2:40 pm - 3:00pm
Session 2: How to use IRC for communication with other Wikimedia developers
- Introduction into IRC and IRC commands - 3:20pm - 4:30pm
チュートリアル (チャットを活用)
2日目
- Welcome - 09:00am - 09:10am
Session 3: Hands on how to build extensions on MediaWiki & hacking Example ext
- Tutorial/exercise to an example of developing a MediaWiki extension - 09:10am - 11:10am
拡張機能の開発 (拡張機能を作成)
- <Snack/Coffee Break> - 11:10am - 11:30am
- 拡張機能の執筆チュートリアル (サンプルをハッキング) - 11:30am - 12:30am
- <Lunch Break> - 12:30pm - 1:10pm
Session 4: How to use Wikimedia Phabricator as a developer
- How to use Phabricator (file bugs, solve issues, etc…) - 1:10pm - 2:30pm
Phabricator (問題の追跡機能)
- <Snack/Coffee Break> - 2:30pm - 3:00pm
- Why volunteer as a developer 2? - 3:00pm - 3:40pm
- Wrap up & Closure - 3:40pm - 4:00pm
The above bullets should cover at least 85% of what developers should know before working on programming related projects in the Wikimedia Foundation.
以下はウィキメディア財団で最も使われるプログラミング言語の一覧です:
- PHP and Hack (PHP is the most recommended)
- JavaScript、JSONとjQuery
- SQL for the query language
- MariaDB/MySQL (データベース管理システムとして)
対象グループ、募集方法
We intend to communicate through already existing developer groups and communities, such as:
- Google開発者グループ
- Linux User Groups
- Mozilla Clubs
- 大学/高等教育機関
- フリーランスの開発者
- Members of the open source community
大陸共通のイベント
- 2017年末 - 区域カンファレンス - ウィキメディア・リソースを活用し、ウィキメディア運動におけるアフリカのリアルな問題を解決、アフリカ出身者もしくは参加者が個人レベルで何かを得る機会
- 2017年10月 - Outreach for Women
- 2017年末から2018年初 - Google Code-In program (12月 - 2月)
- 2018年ウィキマニア・ケープタウン前後もしくは周辺の日程でハッカソン主催
- 2018年 要望アンケートに上がった数件の問題解決に参加
- 2018年 - Google Summer of Code
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