About the First Blog
It's my pleasure to write my first blog with MediaWiki (which is my first blog ever by the way). I would love to Introduce myself, tell my story in Programming and with MediaWiki, and Describe my GSoC Project. Finally I would love to thank my First Programming Teacher who Guided my until this point, and I hope he will read this, and some other people who I would love to Appreciate.
Who is Amr El-Absy
My Name is Amr Mustafa El-Absy, a Junior Student at The Faculty of Computer and Information Technology, Software Engineering Department, Kafr El-Shiekh University, Egypt. I am from Damanhur City. I love my City, my Major, and I love every thing related to them. After Thanwya Amma (The Third Stage of The Secondary School) I had a chance to join the Faculty of Engineering, Alexandria University, but I loved the Computer since I was a child, so I decided to join the Faculty of Computer and Information Technology, and I do Believe this is the right choice for me. Since then, I started a great Journey to the center of Programming, Computer Science and Software Engineering. Every day, I learn something new, something great, something exciting, something that makes me love what I do much more.
My Experience in Civil Work
For about four years, I have worked for many teams in Civil Work and Volunteering. This thing is what shaped my personality. Before civil work I was just a Nerd who was studying all the time, and didn't have any ideas for the future. But Thanks to Khamsa Netfahem (Khamsa means Five, Netfahem is a verb means to Discuss, and the whole name means "Let's Take Five Minutes to Discuss". It is a Workshop held by the British Council), I explored new horizons in my Personality. They taught me that I had ambition to do great things.
I want to Thank Muhamed Shalaby and Mustafa Basiouny, The Facilitators of Khamsa Netfahem. They were very effective, active, useful, and they gave us many advises. Thanks Shalaby, Thanks Basiouny.
My next step was joining TEDxDamanhur. TED (Technology, Entertainment, Design) is a nonpartisan nonprofit devoted to spreading Ideas, usually in the form of short, powerful talks. TEDx is a grassroots initiative, created in the spirit of TED's overall mission to research and discover “ideas worth spreading”, and the "x" stands for "Independently Organized TED Event". I started in TEDxDamanhur as an Archiving Manger, but also I worked as Fundraiser, Researcher and finally Translator with TED.com. I have Translated Three Talks into Arabic, you can Find them here:-
- You don't have to be an expert to solve big problems
- The Third Eye: How to See in the Absence of Light
- A one-man musical phenomenon
I want to Thank Eman Sabry, my Translation Mentor, who gave me the chance to get into the Translation Community in TED. She is a Great Manager, Translator, and Mentor. Thanks Eman.
After TEDx I had a brand new experience with IEEE KSB (Kafr El-Shiekh Student Branch). I joined the Team as a Web Developer. This was my first time to be a Technical Member, but I needed my soft skills any way. During being a member, we held an Event called "Engineering Scope", I was responsible to develop the website of the Event, which is a Technical Task, right?! but also, I was the Host of the Event, which needed my presentation Skills, this was my first time to be a host in an Event, it was such a great Experience.
In the next Season in IEEE KSB, I was chosen to be the Web Team Leader. I had a great team to deal with, and I appreciate every member in the team. I was an Instructor in a workshop for Programming Fundamentals, and Event Director for a Technical Event.
My Journey in the Civil Work hasn't ended yet, I am a member in GDG Damahour (Google Developers Group). But the journey is just in the beginning.
My Work in the University
It was my Honor to be the First Student Developer in Kafr El-Shiekh University to Develop a Web-Based System for the Faculty of Arts. Fatma Abdelhameed and I managed to develop an E-Admission System for the Faculty of Arts, the first of his kind in Egypt. With The large number of Applicants who enroll with The Faculty of Arts (more than 3000 students), the Manual work becomes harder and harder. This Web-Based System Facilitates the Process of Accepting Students in The Departments of The Faculty depending on their Desires and Marks.
I would love to thank Fatma Abdelhameed, the Front-End Developer who developed the System with me. She is very collaborative, creative, smart worker. Thanks Fatma for Every thing you have done.
My Journey in Programming
I had tried many ways to start programming. I have learnt C# in Sololearn (which is a great website, I recommend it), and I studied CS50 (which is one of the greatest Courses ever) and finally I learnt web in Elzero Web School, may be the Best Channel on Youtube for the web (unfortunately, in Arabic only, I hope someone may translate all the courses one day).
The Journey in Programming for any one must have many questions, about how to start, what courses to take, good resources. I believe that both CS50 and Elzero Web School are great ways to start. Another track you may take is:
- Programming Fundamentals: this maybe in any Programming Language, but I prefer to start with C++.
- Object Oriented Programming (OOP)
- Data Structure and Algorithms
- Design Patterns
After learning those five points, you will be qualified to get into any programming field easily.
My Journey in GSoC & MediaWiki
This is my first participation in Open Source, so it was very Difficult. I start by searching for a suitable project in GSoC Organizations. Wikimedia Foundation was the best choice for me and my qualifications. I downloaded the Source Code, and I was shocked when I found about 16.000 Files. I didn't know how to start or where to start, I didn't even know what I have should searched for.
After Searching on Google, Wikipedia, MediaWiki and YouTube for some terms like ("MediaWiki Documentation", "MediaWiki Developer", "MediaWiki Database" and many other terms I cannot even remember) I found some links I would love to share with you.
- Manual:Database layout: If you are interested in the Database of MediaWiki, you should explore this Manual Page. The Database may be a little different than what you are used to, a little relationships between the relations, and the use the BLOB data type.
- Wikimedia Open Source: This Site has the whole documentation of the Framework. If you start here you may get lost, so I recommend one of the two next points (Depending on you needs).
- PHP Documentation: Probably This is a great start point to understand the PHP Code in MediaWiki. This is well organized (not the best but good enough)
- JavsScript Documentation: You Would need to understand main three things, the Usage of jQuery, The Object mw and the Library OOUI.
- Wiki works: This Book will help help you to understand the whole process in MediaWiki and the used tags there.
- Tutorial for Gerrit: MediaWiki uses Gerrit as a Code Review, so you will need to understand how to use it due to make contributions with MediaWiki.
Those 6 points helped me to make some contributions with MediaWiki, all of them are in the Extension:PageForms
- Fix The Appearance of Checkboxes
- Add parsing to "Values from namespace/category/concept" and Add parsing to "unique for namespace/category/concept"
- Replace the last comma in list from #arraymap with a conjunction and Handle the "\n" in the conjunction.
My Project in GSoC
I am working on Remove use of jQuery UI From Page Forms. The Library jQuery UI (which is based on jQuery) is deprecated from MediaWiki. In spite of that, it is still used in Extension:PageForms. The Project Aims to remove it and replace it with another suitable Libraries.
My First Programming Teacher That I want to thank
I would love to write this section in Arabic and English. My First and Greatest Teacher is Engineer Osama Muhamed, the owner of Elzero Web School. He is a Great, Humble, Creative Person. He has many gifts, his way in teaching is Legendary. I really do thank him for every thing he does, He is teaching hundreds of thousands FOR FREE. Thanks Eng Osama.
في الواقع فإنني أود إن أكتب تلك الجزئية بكلا اللغتين، العربية والإنجليزية. إن أول وأعظم معلم للبرمجة لي هو المهندس أسامة محمد، صاحب قناة الزيرو ويب سكول. هو شخص عظيم جدا، متواضع للغاية، مبدع بشكل متألق. لديه العديد من الهبات والسمات والمواهب، فطريقته في الشرح أسطورية. شكرًا جدًا للأستاذ أسامة محمد على كل ما يفعله، فهو يعلم مئات الآلاف عبر الانترنت، بشكل مجاني تمامًا
شكرًا بشمهندس أسامة.