Arab World Programmers’ Contribution to Stackoverflow

إقرأ هذا المقال باللغة لعربية

Stackoverflow is a question and answer site started in 2008 to be a forum – so to speak – for programmers from all fields.

Today there are about:

4 million registered users at stackoverflow, with a rate of about 3500 new users every day.

9.2 million questions with 15 million answers about 40 million topics at a rate of 6500 new questions a day.

Ask any developer about their experience with stackoverflow and they’ll list a number of times an answer on the site has saved them enormous time and effort trying to solve some problem.

Using the site is free, and requires no previous experience giving any person the opportunity to contribute. Theres also the fact that most administrative tasks such as removing inappropriate questions or answers is done by ordinary members with a high reputation.

Wait, did I say high reputation?

Yes, the site is based on the simple concept of encouragement through scoring (Gamification). Any correct action you take will be rewarded by points, starting with answers of course, but also editing a question for correction or clarification, and others. On the other hand, asking an inappropriate question or repeated question could deduct from your points.

Stackoverflow has become a complete community, to the degree that elections are held yearly to select the head moderators (who have privileges such as the ability to close off a question). Every member can cast a vote in, after getting familiarized with each candidates program, hopefully to make stackoverflow a better environment for learning.

Working with stackoverflow is considered one of the ways to contribute positively to the programming and computer science worlds. Among the sites members are a number of veterans and experts answering questions comfortable for beginners, as well as the site being a major resource for finding bugs and errors in programs, while being the cornerstone for the development of others.

So, whats the size of the Arab world audience in this giant platform?

This question came to mind a little while ago, an fortunately the platform has opened up a method for searching or extracting data through data.stackexchange.com

We ran some queries on their massive database, then performed some statistical methods using the R language, and the results were as follows:

Size of Arab presence on site:

The following graph presents number of users from each Arab country:

Histogram.Arab_countries

User Age:

The following graph represents users by age:

Arab_Users_Ages

User’s Expertise by Country:

The following graph represents users’ reputation based on country

Reputation2.Arab_countries

Most Popular Languages/Tools/Platforms in the Arab World:

The following graph shows most popularly discussed subjects in the Arab world.

Top_15_Tags_Arab_countries

Difficulties/Issues:

One of the problems we faced while preparing this study is that the location field in the user profile is an open one, allowing user to input whatever they want. This required a lot of data cleanup, for example insuring that all users from Cairo, Port-Said and Sharam-Al-Sheikh were considered to be from Egypt.
Its important to point out that this problem affects the accuracy of the data, because non-arab users could list arab countries as their location due to working there, and arab users on the other hand might not due to living outside their home countries.

The Data has More to Tell:

The data offered through data.stackechange.com is very rich, allowing for  wealth of indicators to be extracted from it. That’s why we’ve put up the code for data cleanup and graph drawing on our company’s account on github, for anybody wishing to dig deeper into this subject

Don’t forget to keep us posted on your results 😉

Contribute with Your Work, Little or Large:

We hope to re-conduct this study in a year to find that both Arab presence and diversity on the site have increased, to better reflect the level of skill and talent we possess 🙂

مساهمة المبرمجين العرب فى موقع StackOverFlow

Read this article in English

Stackoverflowهو موقع أسئلة وأجوبة أنشأ عام 2008 ليكون مُنتدي إن جاز التعبيرللمبرمجين في كل التخصصات.

اليوم هُنالك حوالي:

 4 مليون مبرمج مسجلين في ”Stackoverflowبمعدل 3,500 عضو جديد يومياً

9.2 مليون سؤال تقابلها 15 مليون إجابة, حول 40 مليون رؤوس موضوع بمعدل 6,000 سؤال جديد تقريباً يومياً

إذا سألت أي مبرمج عن تجربته مع ”Stackoverflowسيُعدد لك المرات الكثيرة التي أنقذته إجابة علي الموقع و وفرت عليه الساعات لحل مشكلة ما

لا تتطلب المشاركة علي الموقع أي رسوم أو خبرة محددة فلأي شخص حق المشاركة, كما أن أغلب المهام الإدارية من حذف الأسئلة والأجوبة الغير مناسبة أو غير لائقة يقوم بها أعضاء عاديون يتمتعون بسمعة “Reputation” جيدة!

مهلاً, هل قلت سمعة جيدة؟

نعم, الموقع يقوم علي فكرة بسيطة وهي التشجيع عبر النقاط (Gamification), أي عمل جيد تقوم به تكافأ عليه بدئاً بالإجابة طبعا, ثم تعديل سؤال لتصحيح أو توضيح, وغيرها وفي المقابل طرح سؤال غير لائق أو مكرر قد يعرضك لخسارة نقاط السمعة.

Stackoverflowصار مجتمعا متكاملاً حتي أنه تقام كل عام إنتخابات لتعيين مُراقبين أساسين (مستخدمين لديهم صلاحيات مثل إغلاق سؤال وغيرها). يحق لكل عضو الإدلاء بصوته بعد التعرف علي برنامج كل مرشح و خطته لجعل مجتمع ”StackoverFlow” مكان أفضل للتعلم.

المشاركة في ”Stackoverflowتعتبر أحد الوسائل للمساهمة إيجاباً في مجتمع المبرمجين وعلوم الحاسوب, يوجد بالمجتمع أعلام من خبراء مخضرمين يجاوبون بكل أريحية أسئلة مبتدئين جدد, كما كان الموقع سببا لكشف وحل مئات العيوب في برمجيات معروفة وحجر الأساس لإنشاء أخري!

يا تُري ماهو حجم الحضور للمبرمج والمطور العربي علي هذه المنصة العملاقة؟

خطر علي بالنا هذا السؤال؟ ولحسن الحظ فخلال الأعوام الماضية وفرت المنصة خدمة البحث والتنقيب حول بيانات الموقع عبر data.stackexchange

قمنا بإجراء بعض العمليات علي قاعدة البيانات الضخمة ومن ثم إجراء عمليات إحصائية بإستخدام لغة “R” , إليكم النتائج:

حجم الحضور العربي علي الموقع

الرسم البياني يُبين عدد الأعضاء من كل دولة عربية

  Histogram.Arab_countries

أعمار المستخدمين

الرسم البياني يُبين توزيع الأعضاء العرب علي الفئات العمرية

Arab_Users_Ages

مستوي إحترافية المستخدمين في كل دولة عربية

الرسم البياني يُبين متوسط سمعة الأعضاء في كل دولة عربية

  Reputation2.Arab_countries

أكثر اللغات البرمجية / الأدوات / المنصات شعبية في العالم العربي

الرسم البياني يبين أعلي المواضيع التي يهتم بها المستخدم العربي

    Top_15_Tags_Arab_countries

صعوبات وعيوب:

من الصعوبات التي واجهتنا لإعداد هذه الدراسة أن حقل البلد في الملف التعريفي للمستخدم هو حقل مفتوح فوجب إجراء الكثير من عمليات تنظيف البيانات لكي يتم التجميع, مثلا مستخدمين من القاهرة” , “بورسعيدو شرم الشيخعلي أنهم من مصر

من المهم أيضا الإشارة إلي أن هذه الصعوبة لها أيضا أثر سلبي علي دقة المؤشرات فبعض الأعضاء غير العرب قد يدرجوا البلاد العربية التي يعلمون بها وآخرين عرب قد لايدرجوا بلدانهم الأصلية بل مكان الإقامة الحالية!

البيانات لديها المزيد لتحكيه:

البيانات المتاحة علي data.stackexchange غنية للغاية ويمكن إستخلاص العديد من المؤشرات المفيدة منها, لذا وضعنا كود عمليات التنظيف و تكوين الرسوم البيانية علي حسابنا علي Github لكل من يرغب في البحث أكثر في هذا الموضوع

لاتنسي أن تطلعنا علي إكتشافاتك 😉

ساهم بعلمك قليله وكثيره:

نتمني أن نعيد هذه الدراسة بعد عام من الآن لنجد الحضور العربي أكثر حجما ونوعا ليعكس للعالم مستوي المواهب والخبرات التي نمتلكها 🙂

!بالعَـربِـى أحْـلّـى

إبتكار ولغة الضاد:

بصراحة كنا مخطئين فى بداياتنا إذ لم نكن نُولى اللغة العربية إهتمام كثيراً, لعل ذلك يرجع لسهولة التعامل فى مجالنا  باللغة الإنجليزية ، فمصطلحات التقنية أكثر توفراً بالإنجليزية و التعريب كان يشكل عبئاً و نحن نقوم بصناعة برمجية أو إطلاق موقع أو حتي كتابة مقال هنا في المدونة.

لكن خلال العام الماضى 2014, ولخلق تواصل أكبر مع عُملائنا و الجمهور المتابع لقنواتنا الإجتماعية حاولنا إستخدام اللغة العربية بصورة أكبر ، بداية بموقعنا الإلكترونى ليشمل نسخة عربية متكاملة لأول مرة ومن ثم حرصنا علي توفير نسخ عربية لبرامجنا مثل نظامنا الجديد لإدارة العملاء.

نأمل أيضاً فى خططنا المستقبلية إلي تقديم دورات تعليمية لبعض لغات البرمجة باللغة العربية مساهمة فى رفعة اللغة العربية و إثراء المحتوى العربى على الشبكة العنكبوتية.

:فكرة الإحصاءات

خلال متابعتنا لقنوات تواصلنا الإجتماعى و تحديداً صفحتنا على الفيسبوك والتي يبلغ عدد قرائها حتي كتابة هذه المدونة حوالي ألف وثلاثمائة متابع. 

فُوجئت بأن أعداد مشاهدة المواضيع باللغة الإنجليزية تفوق أعداد المواضيع باللغة العربية, والحقيقة أن الملفت ليس المفارقة في النسب مابين الكتابة بالعربية والإنجليزية فحسب و إنما أيضاً في القراءة.

فكرت بجمع هذه البيانات من الصفحة و إستخدام وسائل إحصائية و علم البيانات لإلقاء المزيد من الضوء علي هذه الظاهرة.

:إليكم بعض الإحصاءات

الرسم التالي يبين نسبة مواضيع اللغة العربية إلى الإنجليزية فى صفحة إبتكار على الفيسبوك خلال سنتى 2013 و 2014. سنعمل علي أن تصبح هذه النسبة متساوية أو أكثر للغة العربية خلال العام المقبل بإذن الله 

Pie.AR.EN

عموماً لاحظت أن المواضيع باللغة الإنجليزية تحصل على نسب مشاهدة أعلى من تلك بالعربية, لاحظ مربع اللغة الإنجليزية يعلو مربع اللغة العربية, و الخط الأسود فى المنتصف يمثل متوسط أعداد المشاهدة لكل لغة.

boxplot.AR.EN.2

:الرسم البيانى الأخير يوضح مقارنة بين نسب مشاهدة المواضيع اللغة العربية و اللغة الإنجليزية

AR.vs.EN

     الجدير بالذكر أن مجال الموضوع يشكل عاملاً أساسياً فى اللغة التى يفضل أن يقرأ بها المشاهد, فمثلا نلاحظ أن بعض المواضيع تُقرأ أكثر باللغة العربية, مثل

التعليم –

أخبار التقنية –

 بينما مواضيع أخري تُقرأ أكثر باللغة الإنجليزية, مثل:

الإعلانات –

الأخبار –

معظم المقالات المتعلقة بالخدمات التي نقدمها –

.لكن نسبة لعدم توفر البيانات الكافية حالياً لا نستطيع تحليل الأسباب وراء هذا التباين

دعونا نكتُب أكثر باللغة العربية:

 لغتنا العربية من أقوى اللغات و أكثرها جمالاً وثراء و إعتمادها فى جميع المجالات سيكون سبباً قوياً فى رفعتنا وتقدمنا … و هنا أستحضر قول دكتور المهدى المنجرة

لا توجد أى دولة فى العالم إنطلقت فى المجال التكنولوجى دون الإعتماد على اللغة الأم”

 دورنا فى أن ندعم و نشجع لغتنا أكثر من خلال الكتابة و القراءة بها

كٌتـــــاب : الدليل الإلكترونى للمدارس السودانية

فى إبتكارنقدر كثيراً دور التعليم و بناء المعرفة فى تطور الامم , حيث يمثل التعليم و القدرة على التعلم عامل أساسى للريادة فى مجالٌنا – مجال تقنية المعلومات .كفريق إبتكار دائماً نبحث عن وسائل لتطوير أنفسنا, كما نبحث عن طرق لتطوير العملية التعليمية بالسودان, فبدأنا بمجال المكتبات حيث قدمنا مشروع حِكمـــة “نظام إدارة المكتبات المتكامل”. ثم جاء كٌتاب ليكون أول إِسهام لنا فى مجال التعليم الأساسى و ما قبل المدرسى .

كلنا نعلم ان عدد المدارس و الرياض فى تذايد كل يوم, و أصبح من الصعب على الأباء إختيار المدرسة المناسبة لأبنائهم بسهولة , حيث لا يوجد حصر لهذه المدارس, و لايوجد طريقة معتمدة سريعة و محايدة لمراجعة مواصفات المدارس و الرياض المختلفة , ليتم إختيار الأنسب .

و من هنا جاءت فكرة كٌتاب – أول دليل إلكترونى للمدارس و الرياض السودانية . إنطلق الموقع رسمياَ فى يوليو 2013. يقدم كٌتاب حالياَ قاعدة بيانات لكل المدارس الخاصة بالخرطوم, و يخدم الموقع طرفين أساسيين على حد سواء الأباء و المدارس .

kuttab-detailed-Information

بالنسبة للأباء “المستخدمين”, خدمات كٌتاب مجانية, يٌمكِنهم الموقع من البحث عن المدارس بمواصفات معينة على حسب الموقع الجغرافى للمدرسة, المنهج المتبع , لغة الدراسة … إلخ المعلومات الأساسية التى تشكل عوامل الإختيار للمدرسة الأنسب لأبنائهم . يتميز البحث عن المدارس فى كُتاب بالسهولة و السرعة , حيث يقلص نطاق البحث الى المدارس التى توافق شروط و معايير الأباء , فى أقل من ثانية. بعد ذلك يمكن للأباء تصفح صفحة المدرسة بكٌتاب, لمعرفة مزيداً من التفاصيل التى تٌهمهم من خريطة موقع المدرسة و معلومات الإتصال الأساسية, المناهج و اللغات, منشأت المدرسة, الأنشطة, و بالإضافة لمعرض صور المدرسة الملحق فى الصفحة .

ثانياَ نأتى لخدمة كٌتاب للمدارس, حيث يمثل كٌتاب وسيلة إستثنائية للمدارس للتعريف بإمكانيتها, عبر العنوان الإلكترونى للمدرسة ضمن مجال كٌتاب الذى يوصل لصفحة المدرسة بكٌتاب والتى تُغنى المدرسة عن إنشاء موقع إلكترونى خاص بها, شاملةً كل متطلبات الموقع الإلكترونى من معرض صور, و خرائط مواقع, و قالب مرتب لعرض معلومات المدرسة, كل هذا فى تصميم أنيق و بسيط سهل الإستخدام .

بالإضافة الى ذلك يقدم الموقع فرصة للمدارس و الأباء للتفاعل و التواصل, عبر مواقع التواصل الإجتماعى , و الرسائل النصية القصيرة. حيث يمكن للأباء التعليق فى صفحات مدارس و التصويت لمدارسهم المفضلة مستخدمين حسابتهم الإلكترونية بمواقع التواصل الإجتماعى مثل فيسبوك و تويتر, تمثل هذه الخاصية مرجعية شفافة لتقييم المدارس من قبل الأباء, حيث يتم ترتيب المدارس بكٌتاب بناءَ على مجموع الأصوات التى حصلت عليها المدرسة .

ومن جانب اّخر, يمكن للمدرسة التواصل مع الأباء و أولياء الإمور عن طريق الرسائل النصية القصيرة التى يقدمها الموقع ضمن خدماته للمدرسة, تعتبر هذه الطريقة سريعة و غير مكلفة للمدرسة لتوصيل أخبارها و فعاليتها لجميع أولياء إمور طلاب المدرسة .

نحن فى إبتكار فخورون بكٌتاب, بإعتباره خطوة كبيرة فى تسهيل عملية إختيار المدارس, حيث يعتبر وجود دليل إلكترونى و قاعدة بيانات للمؤسسات التعليمية من أبسط الوسائل فى الدول المتقدمة. و فى خطتنا المستقبلية المٌمرحلة للمشروع , لدينا الكثير لنقدمه بإذن الله, ليشمل الموقع كل انواع المدارس و كل مدن السودان . و نتوقع أيضاً ان يقدم كٌتاب خدمات إحصائية مثل مؤشرات عن التعليم  و المؤسسات التعليمية فى السودان فى المدى القريب إن شاء الله.

Implementing ITSM – Incident Management on kuttab.sd using Trello

Kuttab is an online schools directory presented by Eptikar. The service provides users with a listing of all schools in Khartoum, where each school’s page presents the school’s information and photos plus location map.

Users are able to search and filter schools ,where they can rate and comment on their favorite schools using social media plugins.

In this project we decided to start implementing an Incident management system based on ITSM, in order to improve : service quality, customer satisfaction and IT staff efficiency. We established service desk functionality first to act as single point of contact to receive quires, service requests and incidents which usually come through phone calls or emails.

As a startup company we consist of a single core Dev team, we adopted scrum agile methodology in our project management (SCRUM Development), hence our team construction is based on typical scrum roles:developers, a scrum master and a product owner.

We used Trello , the awesome free web based management application as a tool to implement incident management, we have already had a satisfying experience utilizing Trello for project management using SCRUM Agile methodology.

Trello provides a simple platform for management processes and an easy way to track issues, through this article we share the way we are using Trello for Implementing ITSM Incident management for kuttab online service.  

The goal of Incident Management process is to restore a normal service operation as quickly as possible and to minimize the impact on business operations, thus ensuring that the best possible levels of service quality and availability are maintained.

Incident prioritization:

Priority is assessed in terms of two factors; Urgency and Impact, based on ITSM Incident Management the effective way to calculate these elements and deriving an overall priority level for each incident is illustrated using the tables below:

 

 

 

 

Impact

 

 

 

High

Medium

Low

 

High

1

2

3

Urgency

Medium

2

3

4

 

Low

3

4

5

 

Priority code

Description

Target resolution time

1

Critical

1 hour

2

High

2 hours

3

Medium

24 hours

4

Low

48 hours

5

Planning

Planned

 

Incident Escalation:

As you remember we are a single Scrum developing team and we have one scrum master act as the team leader, so according to SCRUM process we response to technical issues collectively and collaboratively with guidance from our scrum master. Although one person might work on an issue but the whole team remains accountable for the result.For this reason we don’t have escalation process in our incident management process flow diagram.

Below is a screen shot of how our Incident management board looks like and as you can see its pretty simple:  

Board

A card of an incident looks like this:

Card#1

Card #2 “related incident”  to the card above had been closed after resolving card #1 (Yaay)… and this how it looks like  :

Card#2

So, In order to address all ITSM Incident management standards we need , we used existing features in Trello and just to summarize the post, here is a mapping between the standard and how we applied it with Trello.

Incident record Items Implementation using Trello
Incident unique reference Card#
Incident categorization 'incident type' After card title between brackets
Prioritization, Impact and Urgency Card colored Labels
Incident logging Date and Time Card creation date and time
Person recorded the incident Card creator
Incident Status Board lists Active Waiting and Closed
Person who will solve the incident Assigned card member
Description of incident, user raised it, call back method First comment on card
Related Incidents, activities to solve Comments on cards and tag of related cards #
Incident closure status, date and time  last comment indicates (Resolved/Closed)

 

Of course, this is an ongoing experiment and we add and remove things everyday but so far we don’t feel the need to move to any specialized software (issue tracking, bugs reporting , …etc). We like to keep it simple …   for now 🙂