كيف تصمم تجربة استخدام رائعة (UX) ؟

تجربة الإستخدام (User eXperience) هى مدى رضا المستخدم على طريقة استخدام البرنامج، ومدى سهولة وسلاسة استخدام البرنامج (أو الموقع). تجربة الإستخدام هامة جداً ويمكن أن تصبح سبب رئيسى لزيادة الطلب على منتجاتك أو نقص الطلب على منتجاتك وكراهيتها من المُستخدمين. على سبيل المثال: تجربة الإستخدام هى أول سبب ﻹستخدام أجهزة شركة آبل.

تعريف تجربة الإستخدام باللغة الإنجليزية مع الترجمة للغة العربية

عرفنا أن تجربة المستخدم (أو تجربة الإستخدام) هى مدى سهولة استخدام المُنتج الإلكترونى او البرمجى أياً كان موقع أو تطبيق أو برنامج متكامل، ولكن ما الذى يجعل تجربة المُستخدم جميلة وسهلة وممتعة؟!

1. أسلوب تصميم الواجهة وأسلوب التسمية
(Consistent UI & Nomenclature)

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

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

2. تقليل جهد المُستخدم
(Reduce Cognitive Loads)

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

حاول أن تستخدم الطرق الطبيعية أو المعتادة لتصميم تجربة استخدام سهلة وسلسة على كل المستخدمين. ولكى تعرف الفرق بين تجربة الإستخدام الجميلة وتجربة الإستخدام السيئة حاول أن تستخدم أحد منتجات شركة آبل، وأحد منتجات شركة مايكروسوفت أو أى شركة أخرى. ستلاحظ سهولة وجمال تجربة استخدام منتجات آبل بالمقارنة بمُنتجات الشركات الأخرى.

3. تدرج مستوى الإستخدام
(Simple but Advanced)

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

هذه الطريقة فى تدرج مستوى الإستخدام تساعد المستخدم الجديد فى البدء فى استخدام البرنامج من اليوم الأول لتعلم استخدام البرنامج. حتى لو لم يكن يعرف معنى الإعدادات المتقدمة التفصيليه فيمكنه أن يستخدم الإعدادات المبسطة المختصرة التى تظهر فى البداية. ويُمكنك أن أن تضع اختيارات فى قائمة البرنامج ﻹختيار "simple but advanced" بمعنى استخدام مبسط ولكن يُمكنك الوصول إلى الإعدادات المتقدمة والمتطورة الإحترافية بسهولة، وتضغط اختيار آخر وليكن "advanced user" وبذلك تظهر لك دائماً وبشكل افتراضى الإعدادات والخيارات المتقدمة الإحترافية لأنك مُستخدم محترف للبرنامج.

كلمات أخيره..

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

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

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

سيارات ذاتية القيادة فى 2019 😮

نعم، سيارات ذاتية القيادة فى 2019 ويمكنك أن تراها بنفسك فى أمريكا وروسيا. ولكن دعونا نعرف كيف تعمل السيارات ذاتية القيادة؟ وما الذى يُمكن أن تُستخدم فيه؟! ومَنْ جربها بالفيديو!.. فلنبدأ بطريقة عمل السيارة ذاتية القيادة ببساطة وبإختصار..

الذكاء الإصطناعى وتعلم الآلة

من أشهر التقنيات الحديثة التى ظهرت بقوة فى عام 2017 وازدهرت أكثر فى عام 2018 وتزداد ازدهاراً وانتشاراً فى عام 2019 وفى المستقبل هى تقنيات الذكاء الإصطناعى (Artificial Intelligence) وتعلم الآلة (Machine Learning) مما نتج عنه الكثير من التقنيات الذكية التى جعلت الآلة تستطيع القيام بمهام إنسانية جداً ولم يقدر أى كائن آخر القيام بها مثل الحوار والتحدث، واستنتاج قواعد الألعاب، والكثير من المهام الأخرى.

فى أحد أنواع الذكاء الإصطناعى، يُمكننا أن نأتى ببعض المدخلات والمخرجات ثم ندرب الآلة عليهم لكى تستطيع القيام بالمخرجات من النتائج بشكل صحيح. بعد ذلك يُمكننا الحصول على model وهذا الـ Model قادر على الحصول على النتائج أو المخرجات من أى مُدخلات مشابهه! وهذا تطور كبير جداً!.. ولكن هناك تطورات معقدة أكثر بكثير من هذه الكلمات البسيطة التى تحدثت أنا بها هنا فى هذه الفقرة!!!

هذه الطرق والتقنيات الرياضية والبرمجية الذكية التى جعلتنا نتعرف على الحروف والكلمات بالـ OCR ونتعرف على الوجوه بالـ Face Recognition وغيرها جعلتنا نقوم بالكثير من المهام الذكية والرياضية على الصور والفيديوهات وقت التصوير نفسه حتى اصبحت الكاميرا تشبه عين الإنسان حيث ترى الصور ويقوم المعالج ببعض العمليات على الصورة فى لحظة إلتقاطها بشكل مباشرة مما جعل السيارة تستطيع أن ترى من كل الإتجاهات فى نفس الوقت مما يجعلها أكثر أماناً من الإنسان!.. نعم السيارة ذاتية القيادة أأمن من قيادة الإنسان للسيارة!

كيف تعمل السيارات ذاتية القيادة بالفيديو؟

شاهد هذا التقرير عن سيارة ذاتية القيادة فى روسيا على قناة اليوتيوبر الشهير ماركيز براونلى (Marques Brownlee) هنا 👇



بعد هذا الفيديو الرائع يُمكننا التأكد من أن إمكانية وجود سيارة ذاتية القيادة أصبحت أكيدة ﻷن هذه السيارات ذاتية القيادة تسير الآن فى شوارع روسيا!

مشاكل السيارات ذاتية القيادة

السيارات ذاتية القيادة رائعة، لكن هناك بعض المعضلات والمشكلات الأخلاقية التى تواجهنا عند برمجة هذه السيارات ذاتية القيادة. وإليك أحمد الغندور (الدحيح) يتحدث عن السيارات ذاتية القيادة بطريقتة الجميلة المُعتادة 👇


أنا أرى أن السيارات ذاتية القيادة - بالكامل - هى المستقبل كما تخيلت فى تدوينة سابقة هنا على الموقع. هذه السيارات ذاتية القيادة ستوفر علينا الوقت والجهد الذى نبذله فى الحركة والقيادة. عندما تصبح كل المواصلات هى عبارة عن سيارات ذاتية القيادة ستتحرك السيارات فى الشارع كما تتدفق البيانات فى توصيلات الإنترنت حيث يختار النظام أسرع طريق بأعلى كفاءة ممكنة للنقل السريع والمُريح. أتمنى تفاؤلى لا يكون مجرد وهم!

مواعيد المبرمجين..

فى حديث مع المدير التنفيذى لشركة كانونيكال (Canonical CEO) قال جملته الشهيرة "عندما تكون بصدد تغيير كبير، فإن الأمور تبدو كأنها تأخذ وقت أطول مما تعتقد.. ولكن بعدها تصير أسرع مما تعتقد!" هذه الجملة التى أذهلتنى أنا شخصياً ﻷنها تُلخّص كل المشاريع البرمجية بشكل عام.

When you have really a big change. It always seems to take longer to happen than you thought it would, and then go faster than you thought it could.
Mark Shuttleworth, Canonical CEO

بعد أن شاهدت هذا اللقاء الرائع مع مارك شتيل وورث (Mark Shuttleworth) المدير التنفيذى لشركة كانونيكال على قناة تليكوم تى فى (TelecomTV) على اليوتيوب قررت أن أكتب هذا المقال على الموقع لكى يزداد وعى كل متابعى موقع أبانوب حنا للبرمجيات إلى طبيعة العمل فى المشاريع البرمجية؛ حيث يبدأ التطوير ببطء شديد ويأخذ وقت طويل أكثر من اللازم.. ثم بعد ذلك يسرع التطوير والإنجاز بشكل لا تتوقع أن يحدث إطلاقاً.. وهذه طبائع الأمور فى مجال المشاريع البرمجية.

هذه ملاحظة واقعية هامة من مدير تنفيذى ﻹحدى أكبر الشركات فى مجال البرمجة ومجتمع الأكواد المصدرية (Open Source Community). شركة كانونيكال هى الشركة المطورة لنظام التشغيل الرائع أوبنتو المبنى على نواة لينكس الشهير.

ابدأ فى التنفيذ وركز على الإستمرار ﻷن الإستمرار فى التطوير والإنتاج هو سر النجاح فى مجال البرمجة. طوّر من نفسك ومن قدراتك ومن مشاريعك وبرامجك وتطبيقاتك.. استمر فى التطوير حتى تمر من مرحلة التطور البطئ وتصل إلى مرحلة التطور السريع والإنتشار التى تحدث بعد وقت المعاناه البطئ فى البداية.

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

استبدال ملف محدد بملف آخر فى كل المرات المذكور بها - سطر أوامر لينكس

يُمكنك أن تقوم ببساطة بتغيير كل المرات المذكور فيها ملف معين بالملف الآخر إن كان عدد مرات الإستبدال هو 5 أو 10 أو حتى 20 مرةً.. ولكن إن كان عدد المرات المطلوب استبدال الملف بملف آخر هو 50 مرة أو أكثر فستكون مهمة مملة ورخمة جداً. ولكن.. إن كنت من مستخدمى لينكس أو ماك، فإليك الحل الأفضل والأسرع!

يُمكنك استخدام سطر الأوامر (الطرفية) ﻹجراء هذا الإستبدال بشكل أوتوماتيكى كما يلى:
find . -print -type f -name apple.PNG -execdir cp orange.PNG {} \;
 هذا الأمر يقوم بهذه المهمة الكبيرة والمملة فى لحظات قصيرة! ولكن.. ماذا يفعل هذا الأمر بالتحديد؟!

find 👈 تقوم بالبحث عن شئ معين
. 👈 تقول لـ find أن يقوم بالبحث فى المجلد الحالى
-print 👈 تعنى أن يتم عرض ما يحدث
-type f 👈 تخبر برنامج find أن يقوم بالبحث عن ملفات فقط
-name 👈 تحدد اسم الملف المراد البحث عنه
-execdir 👈 لتنفيذ أمر معين داخل المجلد الداخلى
cp 👈 لعمل نسخ (copy) لملف فى مكان آخر
{} 👈 هذه الأقواس هى مجرد رمز لنتائج برنامج البحث find

يُمكنك أيضاً إعادة تسمية الملف بدلاً من استبداله عن طريق الأمر التالى:
find . -print -type f -name apple.PNG -execdir mv {} orange.PNG \;
حيث يقوم mv بإعادة تسمية كل الملفات (apple.PNG)  إلى (orange.PNG) كما ترى فى الأمر.

تعلم لغة HTML بالكامل فى يوم واحد - برامج كتابة اللغة

لغة HTML هى لغة خاصة بكتابة صفحات الويب. وتحديداً هى لغة تُكتب لتحديد عناصر الصفحة وتقسيماتها من عناوين إلى فقرات نصية، وصور، وفيديو، وعناوين فرعيه، وروابط،.. وغيرها الكثير. كلمة HTML هى اختصار لـ Hyper Text Markup Language أى لغة تخطيط النصوص.

امتداد ملف أو وثيقة HTML غالباً يكون .html أو .htm كما ترى فى بعض مواقع الانترنت، مثل الصورة التالية.

امتداد صفحة الويب بلغة html لتنسيق وتخطيط الصفحات

يمكنك أن تجرب كل الأكواد (السكربتات) التى سنكتبها اليوم على محرر لغات الويب من هنا، أو يمكنك إنشاء ملف نصّى بإمتداد .htm أو .html وتعرض الملف على المتصفح بسهولة!

إنشاء ملف html

إن لم يُعجبك محرر لغات الويب الذى يعمل أون لاين، فيمكنك أن تستخدم أحد برامج تحرير النصوص العادية (Plain Text Editor) أو بيئات البرمجة المتكاملة (IDE).

أمثلة على بيئات البرمجة المتكاملة (IDEs):

1. Sublime Text : يعمل على ويندوز، ماك، وأنظمة لينكس.
2. VSCode : يعمل على ويندوز، ماك، وأنظمة لينكس وهو من أفضل بيئات تطوير البرامج.
3. Atom : يعمل على ويندوز، ماك، وأنظمة لينكس، وأندرويد.
4. Brackets : يعمل على ويندوز، ماك، وأنظمة لينكس.
5. Code::Blocks : يعمل على ويندوز، ماك، وأنظمة لينكس.
6. NetBeans : يعمل على ويندوز، ماك، وأنظمة لينكس.
7. XCode : يعمل على نظام ماك فقط.

لاحظ! لا يوجد حتى الآن بيئات برمجة متكاملة (برامج) تعمل على الهواتف إطلاقاً.

أمثلة على برامج تحرير النصوص العادية (Plain Text Editors) والأكواد (Code Editors):

1. Notepad plus plus : يعمل على نظام ويندوز.
2. GEdit : يعمل على أنظمة لينكس، وماك.
3. Turbo Editor : يعمل على نظام أندرويد.

لاحظ! هناك الكثير من محررات النصوص العادية، ومحررات الشفرات البرمجية، وللحصول على برامج لكتابة الأكواد لأى نظام تشغيل تستخدمه لهاتف، أو تابلت، أو كمبيوتر (لابتوب، أو دسكتوب) فيمكنك البحث عن "code editor" أو "plain text editor" على جوجل أو متجر التطبيقات الخاص بنظام تشغيل جهازك وستجد العديد من البرامج المجانية والمدفوعة.

لماذا نستخدم برامج خاصة لكتابة الأكواد والبرامج؟! 🤔

البرامج الخاصة بتحرير النصوص مثل برنامج مايكروسوفت وورد (Microsoft Word) تعتبر rich text editor ومعناها برمجيات تحرير النصوص الغنية بالتنسيقات. لكننا عندما نكتب كود فإننا نريد أن نكتب الأسطر البرمجية فى شكل نص عادى دون أى تنسيقات فى اللون والخلفية وثقل الخط والصور وكل هذه الخصائص التى توفرها برامج تحرير النصوص التقليدية.

لكن فى محررات الشفرات البرمجية نحتاج إلى كتابة نصوص عادية دون أى تنسيق (Plain Text Editors) ومن الأفضل وجود خاصية الـ language syntax highlighter وهى خاصية تحول لون الكلمات فى الكود البرمجى إلى ألوان تدل على تصنيف معين ولكى تفهم لاحظ المثال التالى.

الفرق بين النص العادى plain text والنص ذو التظليل البرمجى html syntax highlighter
الفرق بين النص العادى plain text والنص ذو التظليل البرمجى html syntax highlighter

فى هذه الصورة تجد نفس الأسطر البرمجية مكتوبه فى النافذتين، ولكن أحدهما ملونه النص (HTML Syntax Highlighter) والأخرى مجرد نص عادى (Plain Text). المميز فى النص الملون ليس ألوانه الجميلة ولكن التسهيل على المبرمجين فى كتابة الكود حيث تجد الوسوم (tags) بلون معين، والنص العادى بلون آخر، والـ attributes بلون آخر، وقيم الـ attributes بلون آخر محدد،.. وهكذا فإن كل شئ له لون يدل عليه وذلك يسهل على المبرمج معرفة الخطأ فى الكلمات التى يكتبها (ﻷنها لن تكون ملونه بشكل صحيح إن كانت خطأ)، ومعرفة الكلمات المحجوزة للغة لكى لا يستخدمها فى تسميات المتغيرات مثلاً،.. وهكذا الكثير من التسهيلات فى هذه الإمكانيه البسيطة.

أما عن بيئات البرمجة المتكاملة (IDE) فهى بيئات برمجة متكامله 😂 أى أن بها كل ما تريد لكى تكتب كود وتختبره وتنشره. تحتوى البيئات المتكاملة لكتابة البرامج على إمكانية كتابة النص مع وجود بعض التسهيلات مثل التكملة التلقائية (Autocomplete) والتظليل النصى (Syntax Highlighter) والإستدعاء التلقائى (Library Importing) وتشغيل البرنامج أو الكود للتأكد أنه يعمل جيداً. كل هذه الإمكانيات وغيرها الكثير فى برنامج واحد يدخل تحت تصنيف بيئات البرمجة المتكاملة وذكرنا العديد من الأمثلة سابقاً عن بيئات البرمجة المتكاملة مثل VSCode.

والآن لنبدأ فى معرفة مما تتكون لغة HTML لتخطيط صفحات الويب!

وظيفة HTML هى تحديد بنية صفحة الويب، أى تحديد مخطط الصفحة وعناصرها. تذكر هذا جيداً فهذه هى وظيفة اللغة وهدفها وليس شيئاً آخر!

أكمل قراءة الشرح التفصيلى لمكونات HTML:
  • تكوين صفحة HTML
  • كتابة العناوين Headings
  • كتابة الفقرات النصية Paragraphs
  • انشاء الوصلات والروابط بين الصفحات Links
  • اضافة الصور لصفحات HTML
  • اضافة الأزرار إلى صفحات الويب
  • انشاء القوائم فى صفحات الويب HTML Lists
  • خصائص الوسوم HTML Tags Attributes
  • اضافة التنسيقات Styling
  • تنسيقات النصوص الأساسية Text Formatting
  • كتابة الإقتباسات Quotations
  • طريقة كتابة الملاحظات داخل الكود HTML Comment Tags
  • كتابة الجداول فى صفحات الويب HTML Table
  • أجزاء صفحات الويب HTML Blocks
  • HTML Classes & Id
  • تصميم صفحة ويب داخل صفحة ويب HTML Iframe
  • اضافة سكربتات جافاسكربت داخل صفحات الويب JavaScript in HTML
  • شرح مسار الملفات File Path
  • تصميم صفحات الويب HTML Layout
  • تصميم صفحة ويب تعمل على كل أحجام الشاشات Responsive Design
  • الرموز والكيانات Symbols & Entities
  • عناوين الويب Web Address URL
  • اضافة استمارة لصفحة الويب HTML Form
  • استخدام HTML Canvas
  • استخدام صور SVG
  • ما هى الـ XHTML وبلوجر Blogger CMS
  • اضافة واستخدام الميديا فى صفحات الويب (صوت، فيديو، ويوتيوب)
  • تحديد المكان الجغرافى HTML Geo-location
  • Drag & Drop
  • تخزين الويب HTML Web Storage
  • HTML Web Workers
  • رسائل وأحداث السيرفر SSE
لاحظ: سأقوم بكتابة كل موضوع من الموضوعات السابقة فى موضوع منفصل، انتظر المزيد من الموضوعات غداً إن شاء الله.

أراكم فى باقى شروحات لغة HTML لتخطيط صفحات والويب وتحديد مكوناتها وعناصرها. أتمنى لكم التوفيق والإستمرار.. إن كان لديك أى سؤال أو استفسار أكتب تعليق هنا أو راسلنى على صفحة موقع أبانوب حنا للبرمجيات على فيسبوك.

حل مشكلة عدم فتح الفيس بوك على الموبايل

حل مشكلة توقف الفيس بوك فى خطوات سريعة وبسيطة، هذه طريقة الحل لمَنْ لا يفتح لديه الفيس بوك على الموبايل. بدون كلام كثير دعونا نبدأ فى خطوات الحل.

الطريقة الأولى: حذف بيانات التطبيق من داخل الإعدادات

ادخلى إلى الإعدادات ثم إعدادات التطبيقات ثم اختر تطبيق الفيسبوك لايت أو فيسبوك الأزرق العادى، واضغط على مسح بيانات التطبيق أو مسح البيانات أو Clear Data أو Clear App Data.

وبعد ذلك قم بتسجيل الدخول على تطبيق فيسبوك، ولكن إن لم يعمل التطبيق بشكل جيد أو توقف عن العمل، فنفذ الخطوة التالية.

الطريقة الثانية: تحديث تطبيق فيسبوك إن توفر له تحديث

أحياناً يكون حل بعض المشكلات فى التحديثات الجديدة فى التطبيقات. لذلك قم بتحديث تطبيق فيس بوك عن طريق متجر جوجل بلاى (Google Play Store). بعد تحديث التطبيق حاول استخدام تطبيق فيسبوك فإن كان مازال لا يعمل بشكل جيد فنفذ الخطوة التالية.

الطريقة الثالثة: الإبلاغ عن مشكلة فى تطبيق الفيسبوك (Report a Problem)

إن كنت تستخدم فيسبوك الأزرق العادى، فيمكنك الضغط على زر الرجوع أسفل الموبايل مع الإستمرار واختر "Report a Problem" ثم تختار نوع المشكلة لكى يقوم فريق التطوير فى الفيسبوك بحل المشكلة فى التطبيق لديك. حل المشكلة غالباً يأخذ أقل من يوم.

بعد فتح تطبيق فيسبوك، اضغط على زر الرجوع مع الإستمرار، ثم اختر إبلاغ عن مشكلة أو report a problem
بعد فتح تطبيق فيسبوك، اضغط على زر الرجوع مع الإستمرار، ثم اختر إبلاغ عن مشكلة أو report a problem
اختر نوع المشكلة من هذه الإختيارات لكى تقوم ادارة فيسبوك بإصلاح المشكلة
اختر نوع المشكلة من هذه الإختيارات لكى تقوم ادارة فيسبوك بإصلاح المشكلة

ويُمكنك أيضاً أن تفتح القائمة الرئيسية فى تطبيق فيسبوك وتختار Help and Support ثم الإبلاغ عن مشكلة Report a Problem وتختار نوع المشكلة كما ترى فى الصورة التالية.

اضغط على الثلاث شرط العرضية فى تطبيق فيس بوك لفتح قائمة الخيارات داخل التطبيق
اضغط على الثلاث شرط العرضية فى تطبيق فيس بوك لفتح قائمة الخيارات داخل التطبيق
اضغط على المساعدة والدعم أو Help & Support ثم اختر إبلاغ عن مشكلة أو report a problem
اضغط على المساعدة والدعم أو Help & Support ثم اختر إبلاغ عن مشكلة أو report a problem
اختر تصنيف المشكلة التى تواجهة فى تطبيق فيسبوك لكى يتم اصلاحها فوراً
اختر تصنيف المشكلة التى تواجهة فى تطبيق فيسبوك لكى يتم اصلاحها فوراً

أما إن كنت تستخدم تطبيق فيسبوك لايت وهى الفيسبوك الأبيض، فيمكنك فتح القائمة الرئيسية داخل تطبيق فيسبوك لايت ثم اختر Report a Problem أو إبلاغ عن مشكلة ثم اختر نوع المشكلة التى تحدث لديك كما ترى فى الصورة.

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

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

معنى حروف E و T و K و V فى شروحات البرمجة الكائنية

عندما نرجع للـ documentation للغات البرمجة المختلفة والمنصات مثل لغة دارت (Dart Documentation) ومنصة أندرويد (Android Documentation) بلغة جافا ولغة كوتلن نجد بعض الرموز التى نحتاج أن نفهمها، وفى هذه التدوينة سنتكلم عن هذه الرموز الغير مفهومة.

معنى حروف E و T و K و V فى شروحات البرمجة الكائنية

مثل حرف الـ E الموجود فى الصورة السابقة فى توثيق لغة دارت (Dartlang Docs). هذه الرموز تُسمى tokens وسنفهمها مع بعض الآن.

هذه الـ tokens تُعتبر متغيرات لتحديد نوع المتغير الذى يمكن استخدامه فى هذه الأماكن. وهذه الطريقة منتشرة فى اللغات كائنية التوجة (object-oriented) والمكتوبة بطريقة استاتيكية (statically-typed) ويظهر ذلك فى موضوع الـ Generics.

الـ Generics تعطى إمكانية للـ Compiler أن يعرف نوع المتغير المُستخدم، ويعرف كيف يتعرف على نوع المتغير المُستخدَم.

الـ <E> يتعرف عليها الكومبيلر كـ List<String> وهى قائمة من المتغيرات النصية أى List of String. حيث أن الـ E تعتبر عن عنصر Element فى القائمة.

معنى كل الحروف المُستخدمه:
  • حرف الـ T يعنى نوع المتغير Type
  • حرف الـ E يعنى عنصر Element مثل List<E> قائمة عناصر
  • حرف الـ K يعنى Key مثل Map<K, V> وهى قائمة مزدوجة من المتغيرات وقيمها
  • حرف الـ V يعنى Value وهى قيمة الـ Key أو القيمة المُرجعة Return V

ويمكنك قراءة المزيد من المعلومات والشروحات عن الـ Generics من هنا:
سيتم تطوير وتحسين هذا الموضوع فيما بعد بالأمثلة لتسهيل فهم الفكرة إن شاء الله. أراكم فى موضوع آخر مفيد على موقع أبانوب حنا للبرمجيات.

لماذا فشل نظام أوبنتو تاتش للموبايلات؟

نظام التشغيل أوبنتو تاتش (Touch) هو عبارة عن توزيعة أوبنتو الشهيرة المبنية على نواة لينكس ولكن هذه المرة للهواتف الذكية. نظام أوبنتو تاتش يتميز بعدم وجود أى أزرار أسفل الشاشة ولكنه يعتمد بالكامل على حركات اللمس (touch gestures).

مشروع نظام أوبنتو تاتش بدأ فى عام 2011 وفى هذا الوقت كان نظام الأندرويد يعتمد على الثلاث أزرار السفلية، وأيضاً نظام الآيوس (iOS) الخاص بالآيفون يعتمد على الزر السفلى. ولكن نظام أوبنتو تاتش شابه بعض أنظمة التشغيل التى كانت موجوده فى ذلك الوقت مثل فايرفوكس أو إس (Firefox OS)، ونظام ويب أو إس (WebOS) حيث اعتمد على حركات اللمس بشكل كامل وكانت هذه طريقة حديثة وذكية فى ذلك الوقت.

نظام أوبنتو تاتش هو نظام مفتوح المصدر، ومجانى، ولكنه لم ينتشر بين المستخدمين! لماذا؟


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

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

تخلت شركة أوبنتو عن نظام التشغيل أوبنتو تاتش، وبدأت مجموعة من المبرمجين المتطوعين فى تطوير وتحسين النظام بإسم UBPort ولكنه لم يصبح نظام تشغيل أساسى ﻷى ماركة من ماركات الهواتف الذكية حتى الآن!

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

شركة آبل تقيم سنوياً مؤتمر WWDC واسم المؤتمر هو اختصار لـ Worldwide Developers Conference. وتقيم شركة جوجل الكثير من المؤتمرات للمبرمجين مثل:

  • Chrome Dev Summit وهو خاص لمبرمجى جوجل كروم
  • Google Developer Days وهو خاص لمبرمجى منتجات جوجل المختلفه
  • Google Cloud Next وهو خاص بالمبرمجين الذى يستخدمون جوجل كلاود فى تطبيقاتهم
  • TensorFlow Dev Summit وهو خاص لمبرمجى الذكاء الإصطناعى
  • Google I/O وهو المؤتمر الذى يشمل أخبار كل منتجات جوجل سنوياً
  • Android Dev Summit وهو مؤتمر خاص ببرمجة الأندرويد
  • Flutter Live وهو خاص بتقنية فلاتر الحديثة الخاصة بتطوير تطبيقات بلغة دارت تعمل على أنظمة تشغيل مختلفه.
ويمكنك معرفة كل المؤتمرات والحفلات التى تقيمها شركة جوجل للمبرمجين من هنا. ويتضح لك من هذه الأمثلة سبب موت وحياة أنظمة التشغيل المختلفة. ولهذا السبب أيضاً لن ينتهى نظام التشغيل ويندوز على الحواسيب الشخصية ﻷن به كم هائل من البرامج والألعاب الخاصة بكل تفاصيل الحياة!

نظام التشغيل أوبنتو تاتش للهواتف الذكية

يمكنك معرفة المزيد عن نظام التشغيل أوبنتو تاتش للهواتف الذكية من هنا:

ولكن لماذا كتبت هذا الموضوع هنا على موقع أبانوب حنا للبرمجيات؟🤔


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

لكى تستمر أى شركة فى الإنتشار والربح لابد أن يكون لديها خطه عمل، وخطة العمل لابد أن تحتوى على business model يحدد أساليب الربح عبر المنصات التى يطوروها، وكيفية التعاون مع المبرمجين لتبادل الفائدة والمساهمة فى تطوير تطبيقات للمنصة (نظام تشغيل أو برنامج معين).

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

وإن كانت الشركة تطور نظام تشغيل فيقوم المبرمجين بكتابة التطبيقات والبرامج التى تعمل على نظام التشغيل وتساعد بعض مستخدمى النظام لكتابة الملفات النصية، أو إنشاء ملفات الـ PDF، أو تعديل الصور، أو تصفح الإنترنت،.. وغيرها من الأشياء والمهام التى يحتاجها المستخدم مما يجعل النظام مناسب ﻷكبر عدد ممكن من الناس حسب اختلاف احتياجاتهم.

انتهينا من الحديث عن نظام التشغيل الرائع أوبنتو تاتش الذى بطأ تطويره -للأسف- وشبه توقف وعرفنا الأسباب لنستفيد منها. أراكم فى موضوع آخر على موقع أبانوب حنا للبرمجيات.

5 نصائح لتتعلم بشكل أسرع

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

1. جزّء المهارة واستخدم مبدأ باريتو

عندما تريد أن تتعلم مهارة أو علم معين، حاول أن تجزء المهارة إلى مجموعة من الأشياء وتحدد الأجزاء الأهم (أو الضرورية) وتتعلمها أولاً. أى تستخدم مبدأ باريتو فى تجزأة المهارة. مبدأ بايتو يقول لك أن 80% من النتائج تحصل عليها من 20% من المجهود، مما يجعلك تحدد الـ 20% من المهارة أو العلم التى تجعلك تصل إلى 80% من الإتقان فى أقرب وقت ممكن ثم تكمل الـ 20% الباقين من النتائج عن طريق المجهود الطويل (80% مجهود).

2. ركز جيداً واستخدم أسلوب بومودورو

أسلوب بومودورو هو عبارة عن عزل نفسك على كل المُشتات (هاتف، حاسوب، أصدقاء،.. ) لمدة 25 دقيقة ثم تأخذ 5 دقائق استرخاء، ثم تعود إلى عزل نفسك لمدة 25 دقيقة، ثم تأخذ 5 دقائق نشاط عادى، .. وهكذا. وكل ساعتين تأخذ استراحة لمدة نصف ساعة.

هذه الطريقة الرائعة تجعلك تركز فى شئ واحد فقط وهو المذاكرة والدراسة والتعليم والفهم والتعمق فى المعلومات مما يجعلك تستوعب الأمور بشكل أفضل وأعمق. حاول أن تستخدم هذه الطريقة بشكل دائم.

3. تعلّم بالتنفيذ والممارسة

حسب بعض الدراسات والإحصائيات العلمية فإن البشر يتعلمون بنسبة إتقان 10% من خلال القراءة، و 20% عن طريق الفيديوهات التوضيحية والصور، و 50% عن طريق الشروحات العملية عن طريق الفيديو أو مباشرةً فى أرض الواقع، و 70% بالممارسة والتدريب، و 90% بالممارسة والإستخدام للمهارة أو العلم.

لذلك اهتم أن تنفذ المعلومات والمهارات التى تتعلمها وليس مجرد أن تعرفها نظرياً. اهتم أن تنفذ المهارات وتمارسها لكى تتعلمها بشكل أعمق وأفضل وتستوعب التفاصيل وتحصل على أكبر قدر من الفهم والإتقان للمهارة فى أسرع وقت ممكن.

4. الإستمرار

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

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

5. نوم كافى وراحة مناسبة

النوم من الأشياء اليومية التى لابد من أن تأخذ قسطاً مناسباً منها ﻷنها تساعدك فى تكوين الأفكار والمفاهيم والذكريات بشكل جيد. ﻷن مخك يقوم بالكثير من العمليات التنظيمية أثناء النوم مما يُحسّن مهاراتك وتعليمك.

تكلمنا عن أهم 5 نصائح للتعلم بشكل سريع عن طريق التركيز على الجزء المهم من المهارات، والتركيز لفترة قليلة من الوقت، والممارسة والتدريب، والإستمرار فى التعليم، والإهتمام بالنوم. أراكم فى موضوع آخر مفيد على موقع أبانوب حنا للبرمجيات.

مشكلة لينكس الدائمة..

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

ولكن لا يستخدم هذا النظام عدد كبير من الناس! وغالباً مستخدمى أنظمة لينكس هم من مهندسى الشبكات والمبرمجين! ومن النادر أن تجد موظف عادى فى أى مجال آخر يستخدم أحد توزيعات لينكس. بدأ هذا الأمر فى التغير فى الثلاث سنوات الماضية (2016، 2017، و2018) ولكن لم يصل الأمر إلى رقم جيد فى المنافسة حتى الآن!

حصة السوق لكل أنظمة التشغيل المكتبية من ويكيبديا

كما ترى فى الصورة السابقة فإن كل توزيعات لينكس لا تتعدى الـ 2% من كل أنظمة التشغيل المكتبية المستخدمة فى كل الحواسيب المكتبية والمحمولة (لابتوب).

لماذا لم ينتشر استخدام نظام لينكس رغم أنه مجانى؟!🤔

نظام لينكس به العديد من المميزات مثل أنه من أنظمة يونكس (Unix-based OS)، ومجانى، ومفتوح المصدر (Open Source)، وسريع الإستجابة، وآمن بشكل عام، .. والكثير من المميزات التى يصعب كتابتها كلها هنا. ولكن..

المشكلة الأولى: نظام تحزيم البرامج فى لينكس

ولكن ليس هناك نظام اسمه لينكس! لينكس هو نواه نظام التشغيل، وموجوده فى مئات أنظمة التشغيل المبنية على لينكس (توزيعات لينكس). بسبب هذه التقسيمة الشديدة فى أنظمة التشغيل نشأت الكثير من الاختلافات بين توزيعات لينكس أهمها الإختلاف فى برنامج ادارة الحزمة (package manager) وهى أسوأ شئ حدث فى أنظمة لينكس!

كل توزيعة بها على الأقل مدير توزيعة واحد على الأقل! مشكلة وجود برامج مختلفة ﻹدارة التوزيعات جعلت من الصعب على المبرمجين كتابة برامج تعمل بشكل جيد على كل أنظمة لينكس مما ساهم فى تقليل عدد البرامج التى يحتاجها المستخدم العادى!

المشكلة الثانية: مجانى فقط

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

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

هناك بعض البرامج الإحترافيه المجانية مثل محرر الصور جمب (GIMP) ولكنه بشكل واقعى ليس فى قوة برنامج أدوبى فوتوشوب (Photoshop) إطلاقاً! أنا استخدمت كلا البرنامجين ويكمننى اتمام أكثر من 90% من نفس التعديلات التى فعلتها على فوتوشوب على جمب ولكن فوتوشوب يتفوق كثيراً على جمب! (مع العلم أنى استخدم برنامج جمب فقط حالياً ﻷنى لا استخدم إلا نظام أوبنتو فقط).

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

المشكلة الثالثة: كثرة توزيعات لينكس

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

هناك حالياً جهود لتسهيل تطوير البرامج ﻷنظمة لينكس عن طريق توحيد نظام تحزيم البرامج مثل نظام snap ونظام flatpak وظهور البرنامجين أيضاً شئ محزن أيضاً ﻷن الجهود موزعه على نظامين وليس نظام واحد وهذه تفرقة مما يجعل التطوير ﻷنظمة لينكس لا يزال صعب!

الإنشغال بإنشاء توزيعات جديدة بفلسفات ومبادئ جديدة يعمل على زيادة التشتت والتخبط من جانب المستخدمين! ولكن الأفضل هو الإنشغال بإنشاء وكتابة برامج احترافيه مدفوعة لنظام لينكس.. ﻷن هناك الكثير من البرامج الإحترافية المتخصصة التى تنقص فى بيئة لينكس مثل تحسين برنامج جمب المتخصص فى تحرير الصور، تطوير برنامج احترافى لمونتاج الفيديو، تحسين برنامج بلندر للتصميم ثلاثى الأبعاد، تحسين برنامج دارك تيبول (darktable) المتخصص فى تحسين الصور، انشاء برامج المحاسبة الإحترافية، كتابة برنامج ادارة مخازن، تحسين برنامج أوداسيتى (Audacity) لتعديل الصوتيات، انشاء برنامج تحريك و animation احترافى، .. والكثير من البرامج التى يحتاجها مستخدمى لينكس الذين يريدون أن يؤدون عملهم بسهولة.

صورة بطريق نائم يحلم بنظام لينكس

المشكلة الرابعة: دعم أنواع كثيرة جداً من الهارد وير

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

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

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

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

المشكلة السادسة: صعوبة تثبيت البرامج بدون انترنت

من السهل أن تقوم بتثبيت البرامج فى حالة وجود إنترنت، إما من خلال مستودع التطبيقات (app store) أو من خلال التيرمينال عن طريق أوامر معينة مثل apt install مثلاً.

ولكن فى حالة عدم وجود انترنت، سيكون الأمر صعب وخاصةً إن كان البرنامج يحتاج إلى برامج أخرى لكى يعمل (dependencies) مما يجعل الأمر صعباً جداً على كل المستخدمين وخاصةً على المستخدم البسيط..

المشكلة السابعة: التركيز على واجهة سطر الأوامر

أنا شخصياً أحب واجهة سطر الأوامر (CLI) جداً ﻷسباب كثيرة أهمها القوة والسرعة وقلة الإستهلاك. ولكن المستخدم البسيط لابد أن لا يُجبر على استخدام واجهة سطر الأوامر أثناء تعامله مع لينكس.

التركيز على واجهة سطر الأوامر يجعل استخدام أنظمة لينكس صعب على كل الناس ماعدا مهندسى الشبكات والمبرمجين فقط!

المشكلة الثامنة: تحتاج إلى تعليم

التعامل مع أنظمة لينكس يحتاج إلى تعليم، وكلما احتجت اجراء شئ جديد لابد أن تتعلمه أولاً فربما يكون الأمر ليس كما توقعته. هذا الأمر دائم فى أنظمة لينكس فلابد أن تتعلم نظام الملفات مثلاً (File System).

أتمنى أن تتغير الأمور ويصبح تركيزنا على انشاء وتطوير البرامج، وليس التوزيعات. ونركز على تسهيل التعامل مع نظام التشغيل لكى يستطيع كل الناس التعامل مع النظام. القبول بوجود برامج احترافية مدفوعة تعمل على لينكس هى أحد أهم الخطوات لتطور وانتشار لينكس بشكل كبير (ﻷن نقص هذه البرامج هو أول سبب فى عدم انتشار لينكس). أراكم فى موضوع آخر هنا على موقع أبانوب حنا للبرمجيات.

5 نصائح قبل أن تبحث عن أول وظيفة لك فى مجال البرمجة

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

1. فكّر فى التدريب أولاً (Internship)

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

2. أطلب فرص عمل!

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

أهم 6 نصائح للتقديم على أول وظيفة فى مجال البرمجة

3. لا تسعى للشركات الكُبرى فقط

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

4. احتياجاتك مهمه أيضاً

مسئولى التوظيف فى الشركات يركزون على امتحان قدراتك ومهاراتك الخاصة بالتواصل الإجتماعى والإبداع والتفاوض والبرمجة نفسها وحل المشكلات وغيرها من المهارات التى ستنفعهم أنت بها فى العمل ولكن عليك أنت أيضاً أن تتأكد إن كان جو العمل فى الشركة مناسب لك أم لا؟! هل الراتب مناسب لك أم لا؟! هل هذه الشركة ستبنيك وتطورك أم لا؟! ما هى مسئولياتك الوظيفية؟!

مقابلة العمل هى اختبار من الطرفين! هم يتأكدون من امتلاكك للمهارات والخبرات التى تجعلك تقوم بالوظيفة المطلوبة، وأنت تتأكد من المقابل الذى تحصل عليه وبيئة العمل وتطورك المستقبلى داخل بيئة العمل فى الشركة.

5. الناس هم الأهم!

حاول أن تتعرف على الموظفين داخل الشركة، ورأى الناس فى الشركة والسئولين فيها، هل بيئة العمل جميلة أم أنها متوترة! هل المسئولين فى هذه الشركة يميلون للمساعدة والتطوير أم مهتمون بجمع المال فقط فى جو من التوتر والعصبية!

حاول أن تهتم بالرفيق قبل الطريق ﻷن بيئة العمل من تشجيع أو إحباط ستؤثر فيك وفى مستقبلك بشكل لن تتخيله إلا عندما تقع فيه! حاول أن تهتم بحاضرك وتطور منه لكى تصل لمستقبلك!

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

3 نصائح لتصميم شعار احترافى

الشعار (Logo) هو الواجهه التى تعبر عن المؤسسة أو الشركة وتساعد او تقلل من انتشار العلامة التجارية (Brand) لذلك عليك أن تقوم بتصميم شعار به كل المواصفات التى تجعله مميز وسهل التعرف عليه وجذاب لكى تساعد فى انتشار العلامة التجارية التى تملك هذا الشعار. والآن لنبدأ مباشرةً فى معرفة النصائح الثلاثة لكى تصمم شعار احترافى يعتبر عن قوة وجمال وأهمية البراند!

1. شعار يمكن التعرف عليه من جميع الإتجاهات (Identifiable In All Directions)

من العلامات المميزة للشعارات الخاصة بالشركات والمؤسسات الكبرى مثل آبل، وجوجل، وتسلا، ويوتيوب، وأندرويد، وكروم، وويندوز، ولينكس،.. وكل الشركات الكبرى.

أى أن الشعار أو اللوجو يمكن تمييزه ومعرفته إن كان مقلوباً أو إن كنت تراه من الخلف مثال لوجو شركة آبل وهى التفاحة؛ ستعرف أن هذا هو لوجو شركة آبل إن رأيت التفاحة مقلوبة أو حتى معكوسة ففى جميع الأحوال اللوجو واضح وسهل التعرف عليه.

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

صور بها آيفون عليه لوجو التفاحة وتحته ورقة عليه شعار آبل مقلوب

2. يمكن معرفة الشعار حتى وإن كان مجرد أيقونة صغيرة جداً (Readable If Tiny Or Huge)

يجب أن تتأكد أن الشعار به مسافات جيدة (Spacing) تسمح له بأن يكون واضح وسهل معرفته حتى وإن كان صغير جداً فى شكل أيقونة صغيرة فى متصفح (Favicon) أو أيقونة كبيرة على جدار مؤسسة.

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

3. استخدم الأشكال الهندسية (Geometric Shapes)

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

لا تستخدم الصور التى بها الكثير من التفاصيل، بل ارسم شكل جميل وبسيط بإستخدام الأشكال الهندسية. لا تجعل اللوجو واقعى ولكنه حاول أن تجعله بسيط وسهل التعرف عليه وجذاب فى حالة اللوجو الملون (chrome) واللوجو أحادى اللون (monochrome).

عرفنا أهم ثلاث نصائح لتصميم لوجو احترافى مثل الشركات الكبرى. أراكم فى موضوع آخر مفيد على موقع أبانوب حنا للبرمجيات.