Graduation Project: Do’s and Don’ts!

In this blog I will try to share some Do’s and Don’ts about college graduation project. The idea is to start a discussion to make this a mini road map so future grads can avoid falling into the traps some of us did.

So, let’s start by a simple yet a key question:

How important is the graduation project after all?

You can’t work hard on a task especially a tough one unless you truly believe it will pay off someday!

I think the answer to this question is the root cause to how we mistakenly choose to perform badly on our graduation projects!

Let me try give you me opinion on how important graduation project to your career by telling you a short story:

A few months ago we held job interviews here at Eptikar to hire two developers, we had 60+ applicants to choose from. We wanted to hire (0-2 years working experience) developers and as a custom software company we wanted someone with great passion for coding and open source philosophy.

So, how did we filter through all the fancy CVs with the amazing bios? you guessed right! graduation projects.

It’s actually so simple to filter applicants who worked on a real project compared to the ones who didn’t. The first are usually waiting for the part when you ask them:

“so, Ahmed. What did you do on your college grad project?”
and Ahmed would get a wide, proud smile and start telling you what they built and how.

On the other hand the other group seems afraid of this part _which will definitely come in any job interview_ and will answer with vague sentences “I am not quite sure why we choose that tool?” “I didn’t really work on that part” “I only did the writing part, .. bla bla bla

Doing good in your graduation project will almost definitely help you secure a job and it will do you a more important favor: it will help you decide what type of  job/career you want.

Passion is key in every line of work but it’s critical in ours, how do you know if you like working with databases, front-end design, APIs building, back-end, System Administration, mobile development, … etc without getting your hands dirty and exploring those fields! You can’t.

When we held the interviews a few months ago, we had very bright candidates from FMS, SUST and other colleges, you could tell they were smart, but most of them lacked passion! they don’t know what they want to do in their career, which path to take and it’s true they are many other causes to this but poor performance in graduation project is a key factor.

Don’t listen to the advice saying “graduation project is just another course, don’t give it any special time/thoughts – Get your “A” and move on!”

Majority of grads take graduation project as just another course with a target to get an “A” and it’s sad many teachers and supervisors advise them to do so!

“Time is not enough” is simply a myth that you will clearly see after moving from student life to work. You will find yourself doing a lot more than you thought you could ever do or handle.

You have plenty of time to get great scores on all your exams and do decent work on your project without the need to be a pure genius. You just need to have the will to do it.

Graduation project is your key to secure a job in no time, i suppose you went through the tough years and exams in college to achieve that? right! well most of IT/CS colleges in Sudan lack proper technical teaching! Some grads never touched linux or worked with Git and many can’t even write very simple programs!

In my college case, UofK-FMS computer science syllabus badly lacked in the implementation side (which is a topic worth another blog post), so graduation projects comes as a life saver to give your CV something tangible you actually built, because after all; your “A”s on algorithms and compiler courses won’t convince a CTO who needs someone to help building not designing architecture.

Don’t fight over supervisors?

I remember when the list of projects were published on the board, groups would fight and brutal races would begin to get this or that supervisor project without really knowing much about the project.

With all due respect to our teachers, I think you shouldn’t overthink this and choose any supervisor, it does not matter that much!

Some great teachers are not very great supervisors and vice versa.

Do choose the scary supervisor?

If you really need to learn and build something you should choose a supervisor who will push you beyond your limits. Yeah, it sounds suicidal and as students many won’t buy it, but it’s the truth.

It’s very easy to sign-up with a supervisor and get a nice big “A” without actually making any effort but then what? Months later college is over and you will step into a very different environment where “A”s don’t count as your ability to deliver results.

Of course by “scary” i mean a smart supervisor who will push you to do your best and guide you, some people are just mean … you don’t need that drama in your graduation project!

Don’t choose your buddy as a team-mate

It starts by: Well, me and Khalid/Mona hang out all the time, we are close friends and it make sense we work together in the graduation project!

Just trust me, 99% of the time it’s a bad idea.

It’s true you need someone who you can successfully communicate with but that’s not the only factor.

Chose someone with whom you can learn and build, someone with a set of skills you lack, someone with good communication skills and most importantly someone with great level of commitment who you can trust to do their part

Don’t be afraid of coding/presenting/technical writing/ ..etc

It’s natural we try to run away from things we don’t understand, but your graduation project is a perfect chance and in fact your last chance to explore all IT fields.

You will be:

– Dealing with your supervisor, carefully capturing project requirements
– Negotiating adding/removing parts of the project if needed
– Managing/Working with a team, assigning tasks
– Designing and implementing software
– Testing and Q/A
– Presenting and Writing Technical Documents

Each of above list could be your future job, as a developer, dba, project manager, IT Sales or CRM, ..etc

Even if there is someone else handling most of the technical writing in your team, make sure to see how is he doing it, offer to help to get a feeling perhaps that’s where you shine!

Anyway, good luck for all grads and enjoy your graduation project and give it your best! 😉

P.S If you have additional advice [Do’s or Don’ts] you think i missed, please do share and i will happily add it to the post.

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 لكل من يرغب في البحث أكثر في هذا الموضوع

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

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

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

We Are Hiring! — فُرص للتوظيف

 

إبتكار شركة ريادة أعمال سودانية تعمل في مجال تقنية المعلومات منذ حوالي 5 أعوام .. نستخدم أدوات التطوير مفتوحة المصدر لبناء حلول برمجية

 

 

إليك بعض الإجابات التي ستساعدك في تحديد ما إذا كان العمل في إبتكار مناسب لك:

ماهي لغة (لغات) البرمجة التي نطور بها؟

ليس لدينا لغة برمجة معينة للتطوير! كل مشروع له مواصفات تجعلنا نحدد الأدوات الأنسب للتطوير

قمنا بإستخدام الأدوات التالية حتي الآن:

Ruby, Ruby on Rails, PHP, Yii, WordPress, MySQL, Sqlite, MongoDB, NodeJs, Android Studio, Git, C++, Java, HTML5, CSS3, Drupal

تتقن أحد هذه الأدوات أو بعضها … جيد .. (أذكرها لنا)

ولاواحدة منها! لابأس

المهم أن تتمتع بروح التعلم الدائمة

ماهي أهم ميزة يجب أن أتمتع بها؟

اﻹتقان

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

ماهو تسلسل تطوري مع إبتكار؟

جميل! نحب من يتمتع بالطموح

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

مع تطور مهاراتك البرمجية ستكون جزئا من فرق تطوير العديد من التطبيقات وستتعلم كيف تدار المشاريع وكيف تستخلص الخصائص من العملاء

مع قليل من الجهد وتحسين مهارات القيادة ستكون لديك فرصة إدارة فريق المطورين الخاص بك وبناء مشاريع متكاملة

يختلف الناس في قدراتهم علي التطور ولكن كن علي ثقة بأنه لايوجد سقف لتطورك معنا

ماهي بيئة العمل في إبتكار؟

نسعي لتوفير بيئة عمل جاذبة ونعمل علي تحسين ذلك كل يوم

فريق العمل صغير نسبيا ولسنا مع التوسع الغير مدروس

لانتقيد بشكليات العمل التقليدية إلا إذا كانت تضر فعلا بالشركة وفي المقابل نتوقع من كل فرد إضافة نوعية تخدم رسالة الإبتكار التي نؤمن بها

:مهارات تزيد من فرص حصولك علي الوظيفة

مهارات التصميم: إذا كنت من هواة التصوير, تصميم الجرافكس, الرسم وغيره فهذه ميزة جيدة إضافية للبرمجة

مهارات الكتابة: سواء علي قنوات التواصل الإجتماعي أو المدونات

مهارات التعليم: نحرص علي مشاركة خبراتنا مع مجتمعنا ونحتاج من يشاركنا الرؤية

التحدث والخطابة: نشارك في العديد من الفعاليات المحلية والعالمية ونسعد بمن يجيد تمثيلنا

🙂 لديك أي مهارة أو هواية أخري؟ أضفها مهما كانت في إستمارة التقديم 

,,, يسعدنا التعرف أكثر عليك

أي سؤال آخر؟ راسلنا الآن علي تويتر

  @Eptikar_IT

و تصفح صفحتنا بموقع لينك إن :http://bit.ly/17aBZhr

خمس خطوات لتطبيق كوها في المكتبة


في شهر أكتوبر الماضي شاركت إثر دعوة من جمعية مخترعي الميكاترونكس بجامعة السودان للعلوم والتكنلوجيا بتقديم سمنار عن برنامج كوها، كان المحتوي بسيطاّ بحيث يتناول نبذة عامة عن أنظمة إدارة المكتبات كعلم قائم بذاته (الفهرسة ، التصنيف ، المعايير الدولية …) ومن ثم البرمجيات التي تسهل هذه المهمة وكيفية عملها وأخيراّ تقديم برنامج “كوها” كأحد هذه البرامج وتعريف الخواص العامة به.
مواصلة في سلسلة مقالات “كوها” فكرت في أخذ أحد شرائح التقديم من ذلك السمنار ،وهي الشريحة التي تتناول الخطوات الأساسية للتطبيق البرنامج وتمثل خارطة الطريق للمشروع
العرض الكامل للسمنار متوفر من خلال هذا الرابط.

بالنظر إلي مشروع تطبيق مكتبة ما لنظام كوها في إدارة مقتنياتها ، توجد خمس خطوات أساسية لإنجاح المشروع تتمثل في التالي:

  1. Installation(التنزيل)
    • Setup LAM
    • لام هذه إختصار ل: لينكس + أباتشي + ماي إس كيو إل، الأول هو نظام التشغيل مفتوح المصدر والثاني هو مخدم إنترنت مفتوح المصدر والأخيرة هي مخدم قواعد بيانات مفتوحة المصدر أيضا. تعمل ثلاثتها معاَ من أجل توفير أي محتوي علي الإنترنت

    • Setup Koha on LAM
    • كوها برنامج مصمم بلغة تدعي “بيرل” و يعمل كتطبيق علي الإنترنت، من أجل تنزيله يجب توفر مترجم بيرل علي نظام التشغيل لينكس ومن ثم إتباع خطوات التنفيذ المتوفرة علي موقع كوها الرسمي

    • Setup Koha Database
    • يجب إعداد قاعدة بيانات ماي إس كيو إل لكي يستخدمها كوها لاحقا

  2. Configuration (الإعدادات)
  3. كوها مصمم لكي يعمل مع قاعدة كبيرة من المكتبات بإختلاف نظم التصنيف والفهرسة وغيرها من الفروقات. لذا فإنه يتطب بعض التوجيه لكي يفهم كيف يجب أن يتصرف تبعاَ لنظم مكتبتك … القائمة أدناه هي بالطبع بغرض المثال ويوجد عدد كبير من الإعدادات غير المذكورة هنا

    • Library Standards (e.g UNIMARC or MARC21)
    • Logo, headers ..etc
  4. Customization (التعديل)
  5. علي الرغم من تصميم كوها بمرونة عالية إلا أنه قد تحتاج المكتبة إلي إجراء تعديل برمجي في كوها حتي تصل لنتيجة معينة ، وهنا تكمن الفائدة في أن كوها مفتوح المصدر ويرحب بالتعديل بل ويشجع عليه

  6. Staff Training (التدريب)
  7. كأي برنامج لإدارة المكتبات فإن كوها يحتاج إلي تدريب ومعرفة طريقة عمله حتي يستطيع المستخدم التحصل علي أكبر فائدة منه

  8. Data Migration or Data Entry (إدخال البيانات / نقل البيانات)

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


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

توقف عن قراءة هذه المدونة وتعلم شيئا

” تدوينة اليوم هي ترجمة من الإنجليزية لمقال شيق ومفيد قرأته.

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

تطوير البرمجيات مجال رائع لكي تكون مبتدئا فيه. ربما أكثر من أي تخصص آخر ، هنالك ثروة من المعلومات المتاحة مجانا علي الويب.

أي شئ إبتداء من كورسات أساسيات عاوم الحاسوب، إلي مجموعات مذكرات التعلم ليلة بليلة لإحتراف البرمجة وحتي ملايين الملايين من أسطر الكود مفتوح المصدر المتاح مجانا للقراءة.

للأسف، هذه النعمة يمكن أن تصير نقمة بأن تصبح عائقا مثلما أن تكون خطوة إنطلاق. إذ في نفس الوقت الذي يمكن أن تتعلم الكثير من هذا الدفق الهائل من المعلومات يمكنك أيضا أن تضيع قدرا كبيرا من الوقت بدون مردود ملحوظ. شخصياّ فإنني في الغالب قد أضعت آلاف الساعات علي مر السنين بهذه الطريقة، وفقط مؤخراّ تمكنت من تعريف النمط المسبب لهذه الخسارة في الوقت.

أأمل بكتابتي هذه أن أساعدك في تجنب الأخطاء التي وقعت فيها.
يبدو النمط كما يلي:

  • ياإلهي … إن أدوات البرمجة علي الويب رااائعة ، لابد من أن أتقن أحادها !!! هممم ، دعنا نري … لكي أتمكن من البرمجة علي الويب يجب أن أتعلم لغة برمجة مناسبة ومخصصة لذلك، لاأريد أن أعلق بلغة سيئة، لذا يجب أن أختار أفضل واحدة بإجراء بحث عام عن كل لغات الويب.

(بذل 3 شهور في القراءة عن: perl, python, ruby and php وربما تجربة كتابة برامج : “hello world”)

  • هممم … حسناَ … برنامج “hello world” بلغة “Blub” كان بالتأكيد أفضل من غيره من اللغات، لكن الآن أحتاج أن أختار مجموعة أدوات متكاملة لتنفيذ فكرة التطبيق الرائعة التي خطرت لي ,,, سأشترك في كل المدونات.

(بذل 3 شهور في القراءة المضنية لمقالات مدونات البرمجة علي الويب)

  • لقد قرأت العديد من المدونات الآن، وفي حين أن معظم المبرمجين يستخدمون “Ruts” … إلا أنها أصبحت غابرة نوعا ما وبعض المنصات المنافسة تبدو أكثر جاذبية. لقد قرأت كل خفايا تصميمها وعلي الرغم من أني لم أكتب إطلاقا أي برنامج ب “Ruts” ولكني أتفق تماما مع نقدهم لها … حسنا لن أعلق مع منصة صممت منذ 6 أشهر وعفا عليها الدهر مثل “Ruts” بالتأكيد. يجب علي أيضا أن أتذكر إستخدام “نمط صندوق السلحفاة” الذي يتحدث عنه الجميع في تطبيقي. ولكن مهلاَ !!!! لقد إكتشفوا للتو أن “نمط صندوق السلحفاة” ليس ممتازاَ للتوسع مثل “نمط خرطوم الفيل”.
  • ههه … ماذا دهاني!! وكيف كنت أفكر بإتباع “نمط صندوق السلحفاة” في حين يوجد حل أفضل مثل “نمط خرطوم الفيل”. مهلا مهلا .. يبدو أن “نمط صندوق السلحفاة” يعود مجددا بنسخة محسنة. نعم بالتأكيد هذا هو الحل الأفضل وخصوصا إذا إستعمل بالطريقة الملائمة. ياإلهي !!! ماهذا المجتمع المتذبذب ؟؟ إنهم متقدمون ومحترفون ومن الصعب المواكبة معهم ، متي سأجد وقتا لأكتب برنامجي ؟؟ 
  • هممم إن البرمجة لمنصات الهواتف النقال حقا في إذدهار !!!

 

قد تكون ممن إحترفوا “البرمجة علي الويب” منذ أعوام ولكن إن كنت ماتزال تتعلمها فلابد أنك تتعامل مع إحدي تقنياتها. ربما مثلي أنا مع ال Javascript والبرمجة من جانب المستخدم ، فتكون متأكداّ من أنها تقنية ملائمة لك، وأنت مهتم بالتأكيد بإحترافها وتدرك أنه توجد عدة خيارات يمكنك البدء من أحدها ولكن علي الرغم من الكمية الوافرة من المعلومات المتاحة … فأنك غير متأكد من أين تبدأ؟؟ بدون مزيد من التسويف إليكم دليلي للبدء في تعلم أي تقنية برمجية جديدة:

      1. لاتقم بالإشتراك في كل المدونات. ففي هذه المرحلة ليست لديك بعد المقدرة علي الفهم الكامل لهذه المقالات الغزيرة والتي غالبا ماستضارب في وجهات النظر.
      2. ضع قائمة بمختلف الخيارات من: اللغات أو المنصات أو المكتبات وماشابه. إختر “الأكثر شعبية منها” ، ويمكنك معرفة ذلك ب:
        1.  كثافة وحيوية ال: القوائم البريدية، قنوات ال IRC ، المنتديات المخصصة حصريا لها بحيث عندما يسأل المبتدؤون يجدون من يجيبهم يوجد كتاب واحد علي الأقل ذو سمعة جيدة.
        2. الكتب ليست مؤشراَ مثالياَ عن مدي إذدهار مستقبل تقنية ما ولكن حقيقة أن أحدهم خصص زمناَ لكي ينظم سلسة من المعرفة عن التقنية يعد مؤشراَ جيدا علي أنها تقنية ذات وزن.
        3. توفر مجموعة مستخدمين حيوية تجتمع دورياَ في مكان ليس ببعيد عنك.
        4.  توفر مجموعة ولو قليلة من المحترفين والمتقدمين في مجتمع التقنية المعينة.
      3. حسناَ، لقد قلت ” الأكثر شعبية” ولم أقل “الأفضل”. ليست لديك المعرفة لكي تميز الأفضل ، ليس بعد، ستصل إلي تلك المرحلة ولكن حالياَ الهدف إختيار مجال بحيث يمكن البحث في Google عن حلول إذا علقت.
      4. إنضم إلي مجموعة مستخدمين وكن فاعلا، ستحتاج هؤلاء الناس.
      5. إشتر وإقرأ كتابا عن المجال، نعم كتاب حقيقي ولايهم إن كان علي جهاز ال IPAD الخص بك أو كتابا ورقيا. للكتب خصائص عديدة تفتقر إليها الوسائل الأخري غلي الويب: الشمولية، حيث أن السلاسل التعليمية المجانية علي ويب غالبا ماتحوي فراغات من نوع: “يكمل لاحقا” وقد يحدث أن تتوقف فجأة في المنتصف. تركز عادة علي “الأساسيات” ولاتهتم بالأساليب الذكية لإنجاز المهمام، وأنت الآن تحتاج “للأساسيات”. لديها هيكل، وأنت الآن بحاجة لهيكل واضح. مؤلفو الكتب عادة مايضعون أمثلة وفي حسبانهم أن القراء سيقومون بتجربتها مما يجعلها مكتملة ومجربة للعمل بفعالية. بها القليل من الروابط مما يعني القليل من التشتت في صفحات وصفحات بعيدا عن هدفك الأساسي.
      6. الآن، قم بإستخدام ماتعلمته في مشروع ولكن رجاءااااا لاتقم بذلك في مشروع تجاري إلا إذا أوضحت لموظفك صراحة أنك لم تجرب هذه التقنية من قبل وأنك غالبا ماستفشل في البدء وتعيد البدء مجددا. وإلا ، قم بإستخدامها في مشروع شخصي، مشروع شخصي صغير.
      7. عندما تواجه مشاكل، ‘سأل وأتشير أولئك الناس في مجموعات المستخدمين والمنتديات، أنت تواظب عليها كما إتفقنا … أليس كذلك؟؟
      8. تهانينا … لديك الآن بدايات المعرفة والإحاطة بهذه التقنية. وجميع الحوارت النظرية التي قرأتها مسبقا سواء في نقدها أو الإشادة بها لم تعد نظرية أو أكادمية إليك بل حقيقية ولتجارب مررت بها شخصياّ. بالنظرة الجديدة التي صارت عندك، قم بمراجعة مجموعة الخيارات في (2) أعلاه وأعد التقييم. تفحص مشروعك مجددا، وبتقييمك الأفضل للأدوات تعرف الأنسب لمتطلبات المشروع. يمكنك الآن قراءة المدونات أو التمارين علي الويب أو مابدا لك فلايوجد سبب مانع الآن.

 

سيكون هذا هو نمطي من الآن فصاعدا وسألتزم به.
إذا قررت أن تجربه معي رجاء أطلعني كيف سارت الأمور معك

مشروع اليونسكو لتطبيق كوها في السودان

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

Koha-logo

 

 

مؤخراّ تم تفعيل مشروع لتحديد وتطبيق نظام متكامل لخدمة مكتبات ثلاث من أكبر الجامعات السودانية وهي: جامعة الخرطوم، جامعة السودان للعلوم والتكنلوجيا وجامعة النيلين بحيث يمكن تعميم هذه التجربة لاحقاّ في بقية الجامعات. المشروع يأتي بدعم من منظمة الأمم المتحدة للتربية والعلم والثقافة (اليونسكو).

أنظمة المكتبات المتكاملة هي برامج تقوم بجميع الوظائف اليومية في أي مكتبة ، وعلي الرغم من حجم التباين بين المكتبات إلا أنه توجد نقاط مشتركة يقوم عليها البرنامج مثل: الفهرسة ، الإعارة ، التزويد، والفهرس الآلي.

تم إختيار نظام مفتوح المصدر ذو صيت عالي في هذا المجال وهو نظام “كوها”.

تبدأ قصة “كوها” في نيوزلندا في أوروبا، وبالتحديد في أحد أعرق المكتبات العامة في نيوزلندا تدعي “مكتبة هورونيويا العامة” التي كانت تستخدم نظاماّ مغلق المصدر وفي العام 1999 إضطرت هذه المكتبات إلي تقليل ميزانيتها بصورة كبيرة مما يعني بالتأكيد تقليل النفقات، حتي لاتلجأ هذه المكتبة العريقة إلي الإستغناء عن بعض الموظفين أو تقليل جودة الخدمة للمستخدمين قررت أن تستغني عن النظام المتكامل مغلق المصدر الذي يكلفها سنوياَ مبالغ كبيرة وإستبداله بنظام مفتوح المصدر، ولكن بعد البحث في الأنظمة مفتوحة المصدر المتوافرة في ذلك الوقت لم يجد المسؤولون عن المكتبة الحل الذي يناسبهم ويفي بإحتياج مستخدميهم. ومن هنا نبعت فكرة تطوير حل جديد بشراكة مع شركة محلية تدعي “كاتيبو لحلول تقنية المعلومات” متخصصة في الأنظمة المبنية علي الويب.

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

تمت برمجة النظام علي منصة “LAMP” ولام هذه إختصار لمجموعة من البرامج مفتوحة المصدر تشمل نظام التشغيل “Linux” ومخدم ويب “Apache” ومدير قواعد بيانات “MySQL”.

تم إختيار إسم “كوها” وهي كلمة بلغة “المايرو” شعب نيوزلندا الأصليين وتعني الهدية أو الهبة وذلك لأن المكتبة كانت تهدي أول نظام متكامل لخدمة المكتبات للعالم.

اليوم وبعد 11 عاما فإن أحدث إصدارة متوفرة من “كوها” هي الإصدارة “3.6.0” وقد تم توفيرها للتحميل في يوم 22 أكتوبر الماضي.

“كوها” مازال يصنف كمشروع مفتوح المصدر نشط، أي أنه يتمتع بقاعدة كبيرة من المطورين من أخصائيي المكتبات والمبرمجين يعملون علي توفير إصدارات حديثة منه خالية من العيوب وأكثر مواكبة لمتطلبات المكتبات حول العالم.

 

Sudan libraries: It’s time to change

One thing I feel embarrassed about is the fact that I can easily count how many times I went to the library at college, well … they aren’t that many!!
But when I came to see the reasons behind that, I find out it was the library’s fault. OK, maybe I played a small part of that , but still,  the library wasn’t organized that well.

One of the major issues our library suffered from, (among most of the libraries in Sudan) is the lack of a computerized system to help its users, as my school library was running manually 100%.
Of course running a library manually impacts its development in all means, especially for the educational & institutions ones.

My mother is a librarian, that’s why I know all this and I have been close to the librarian community here in Sudan, and to some degree I figured out some of their problems finding suitable software to use.
So, we thought, why not to develop a free open source software to help narrow the gap between our libraries (and libraries in similar conditions around the world) and the modern libraries out there.

We call it “Hikma™” which is Arabic for wisdom, the story behind that is library catalogues were first introduced in the House of Wisdom, “Dar El Hikma” and other medieval Islamic libraries where books were organized into specific genres and categories.

We are in the first designing stages now and we are very excited about this project and I will try to keep you up to date. (inshalah)