جميل بيلوني

الأعضاء
  • المساهمات

    109
  • تاريخ الانضمام

  • تاريخ آخر زيارة

  • Days Won

    15

السُّمعة بالموقع

65 Excellent

المعلومات الشخصية

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

8 متابعين

  1. أصبحت الفترة التي تزامنت مع ظهور الوسائل والطرق الجديدة التي يحاول المطورون استخدامها لإقناع الزائرين بالصور المتخصصة والمحتوى الديناميكي وإضافة الفيديو فترةً مهمة لتحميل صفحة الموقع ومصدر قلق دائم لمطوري الويب، خاصةً تلك الوسائط التي تحتاج وقت كبير في التحميل. وقد يظهر هذا القلق واضحًا عند إضافة أي محتوى جديد على اختلاف نوعه إلى صفحة الموقع، وهنا يتطلب من الموقع الخاص بك إنشاء طلبيات HTTPS (بروتوكول نقل النص التشعبي الآمن) إضافية تعمل بدورها على إبطاء موقعك بشكل تدريجي. سوف أتحدث في هذا المقال عن طلبيات خادم HTTPS، وعن ماهية الأدوات التي يجب استخدامها لتتبع هذه الطلبيات وأيضًا سوف أوضح الطرق التي يمكنك بها تقليص تلك الطلبيات داخل موقع ووردبريس الخاص بك. ما هي طلبيات خادم HTTPs وهل لها تأثير على تجربة المستخدم؟ بالطبع لا توجد هناك أهمية أكبر من أهمية تجربة المستخدم التي تعمل على جذب الزوار للموقع والاشتراك فيه أو شراء منتجاتك، أو التعرف على المزيد من المعلومات حول خدماتك. فهنا يظهر واضحًا جدًا أن أي خطأ بسيط يمكن أن يعرّض هذه التجربة للخطر فمثلًا لو كان لديك صفحة ويب تستغرق بضع ثوانٍ قليلة للتحميل، فهذا وحده كافٍ أن يعرّض معدل التحويل لديك للخطر. لذا ولتجنب ذلك، عليك التعرف على هذه المعلومات حول طلبيات خادم HTTPS ولماذا تحدث. ففي كل مرة يزور شخص ما موقع الويب الخاص بك أو إحدى صفحاته (وركّز هنا في عدد الصفحات الموجودة على موقعك)، إذ يقدّم متصفحه طلبًا إلى خادم موقع الويب الخاص بك وهذا يتكرر مع كل صفحة يقوم بزيارتها. وهنا تكمن مسؤولية موقع الويب الخاص بك في إرسال كل ملف بما يحتوي عليه (النصوص والصور التي عادة ما يشتمل عليها أغلب المواقع بالإضافة إلى الفيديو، وملفات CSS، وملفات جافاسكربت، …إلخ) ويتلقى كل ملف من تلك الملفات طلب خادم منفصل. وبعد أن تعالج جميع طلبيات الخادم وتنقل الملفات إلى المتصفح، يمكن تحميل موقع الويب الخاص بك على الشاشة، ولكن تخيل ماذا سوف يحدث إذا كان موقع Wordpress الخاص بك يحتوي على عشرات أو حتى مئات الملفات لإرسالها إلى متصفحات من يزوره؟ توقع فعليًا زمن تحميل الصفحات، بالطبع هذا شيء غير مستحب إن كان الزمن كبيرًا! وقد يزداد الأمر سوءًا بشكل كبير مع تزايد شعبية الموقع وتلقي طلبيات خادم HTTPS كثيرة في وقت واحد. مثال على ذلك: 40٪ من الناس لا يتحملون الانتظار وقد يفقدون صبرهم إذا كان عليهم الانتظار أكثر من ثلاث ثوان لتحميل الصفحة. و قد أشارت دراسة كيس ماتريكس إلى أن التأخير لمدة ثانية واحدة في استجابة الصفحة عندما يتفاعل الزائر معها قد يكلف ما يصل إلى 7٪ من التحويلات؛ لذا، تحتاج إلى العثور على طريقة لتقليص عدد الملفات التي يجب إرسالها إلى المتصفح إذا كنت تريد أن تظل أوقات التحميل هذه مقبولة. فمن غير المعقول أن يكون الحل هو تقليل عدد الصور أو المحتوى الديناميكي أو الانتقال إلى الحد الأدنى من التصميم الخاص بك بحيث تخسر بذلك ميزة العرض الخاصة بموقعك و يصبح الأمر مملًا للغاية. بالرغم من أهمية حجم وكمية الملفات، إلا أنه يتوفر هناك العديد من الطرق في ووردبريس للتغلب على ذلك. الأدوات الخاصة بتتبع طلبيات خادم HTTPS وما يتعلق به من حسن الحظ أن هناك عدد من الأدوات تساعدك في تخطي عقبة تخمين السبب وراء ظهور شاشة الموت البيضاء لدى زوار موقعك ومعرفة ما يسبب ذلك. وتعمل أيضًا على تتبع مصدر التأخر في أوقات تحميل موقعك. أعرض هنا إليك بعض الأدوات المجانية والموثوقة. أدوات التطوير في كروم إذا كنت تريد رؤية دقيقة ومتعمقة في المتصفح كروم للمدة التي يستغرقها كل عنصر وملف يعالج على موقع ووردبريس الخاص بك. ابدأ أولًا بفتح نافذة متصفح جوجل ثم انتقل إلى صفحة الإعدادات التي تسمى أدوات المطور (Developer Tools) كما يظهر في الصورة. ستفتح عند الضغط عليها لوحة تحكم جديدة على الجانب الأيمن من الشاشة. حينئذ اضغط فوق علامة التبويب Network "الشبكة"، ومن هنا ستتمكن من معرفة الإجراءات التي تحدث في صفحتك. وستتمكن أيضًا من البحث بحثًا دقيقًا في توقيت كل ملف على حدة للتأكد لمعرفة أيها قد يكون سببًا في زيادة الضغط (الحمل) على صفحتك. أداة PageSpeed Insights لتحليل الأداء والسرعة من غوغل هذه الأداة ليست الوحيدة بالطبع التي تقدمها جوجل لمساعدتك في اكتشاف المشكلات المتعلقة بطلبيات خادم HTTPS من الناحية المثالية، فإذا كنت من مستخدمي أدوات التطوير فمن الواجب عليك الاستفادة من الأداة PageSpeed Insights التي يجب أن تكون ضمن قائمتك. تحلل PageSpeed إحصاءات محتوى صفحة الويب ثم تقدم اقتراحات لتحسين سرعة تلك الصفحة. انتقل إلى صفحة PageSpeed Insights وضع رابط الصفحة التي تريد تحليلها وسوف تقدم لك نتائج تفصيلية تقيّم فيها أداء الصفحة على الجوال وكذلك على سطح المكتب. يقدم لك كل تقييم من هذه التقييمات درجة من 100 تبين مدى جودة الأداء ومن ثم يقدم لك نصائح حول كيفية تحسين موقعك لتحسين الأداء. أداة GTmetrix أداة GTmetrix هي أداة تقييم واختبار سرعة الموقع وستوفر لك درجة تقيِّم موقع الويب الخاص بك. وتتميز أداة GTmetrix أنها تتعامل في عملية شرح أداء موقعك بطريقة أكثر شمولًا وثقة من جوجل لذلك، بالرغم من ظهور العلامات الحمراء و الصفراء (وهي ليست جيدة)، إلا أنه يمكنك التمرير فوق كل نقطة من نقاط البيانات ومعرفة متوسط الدرجات وأوقات التحميل. وهذا سيعطي فكرة أكثر واقعية حول مستوى أداء صفحات موقعك. عند تقييمك من GTmatrix، تتلقى نصائح قياسية حول كيفية تحسين السرعة والأداء لصفحتك. كل تلميح يظهر بجانبه الدرجة المطابقة، وهذا يتيح لك معرفة المكان الذي أنجزت فيه الأمور بشكل جيد، وتعطي مقترحات للتحسين. وإذا كنت تريد المزيد من المساعدة في تلك المناطق الأضعف، فما عليك سوى النقر على السهم المتجه للأسفل وسيخبرك بالملفات التي يمكن أن تستخدم بعض الأعمال. أداة Pingdom الأداة Pingdom تتشابه إلى حد كبير مع أداة GTmetrix في عملها و كيفية تقديم المعلومات. وقد تجد أن الاختلاف الرئيسي بين الأداتين هو في السرعة التي توفر بها نتائجها وأيضًا الواجهة هذه أجمل قليلًا. و لكن من ناحية أخرى، ستتلقى نفس التقييم الدقيق تقريبًا من كلا الأداتين وهذا هو بالضبط ما تحتاجه إذا كنت تحاول توفير الوقت في تقييم مشاكل موقعك وتريد تضييق نطاق ما لا يعمل. الأداة WebPageTest لن يمر ذكر أدوات اختبار صفحات الويب دون ذكر الأداة WebPageTest هنا. مع أن الموقع قليل الشكوك والنتائج ليست سهلة القراءة مثل بعض الأدوات الأخرى، إلا أنني أحب الرسم البياني الشريطي المستخدم لعرض المدة التي يستغرقها كل ملف للتحميل. رغم أنه قد يكون هناك قدر هائل من البيانات في هذه الصفحة ولا توجد نصائح حول كيفية حل مشكلات التباطؤ المحددة، ما زلت أعتقد أن طريقة عرض العناصر الأثقل جيدة نوعًا ما. يمكنك دائمًا استخدام هذا بالاقتران مع أدوات المُطوِّر لتضييق نطاق العناصر ذات الإشكالية في موقعك. كيفية تقليل عدد طلبيات خادم HTTPS لموقع وورد الخاص بك وبعد أن تعرفت على كيفية تحديد المناطق المسببة لضعف أداء موقع الويب الخاص بك، دعنا نتحدث عن كيفية حل المشكلة كاملة من بدايتها وهي تقليل عدد طلبيات خادم HTTPS لموقع ووردبريس الخاص بك. أقدم إليك 9 خطوات يمكنك القيام بها وبذلك تحتفظ على عدد معقول من الطلبيات في موقعك. 1) حذف الصور غير الضرورية هذا ليس معناه أنه يتوجب عليك التضحية بالصور من أجل خفض طلبيات الخادم ولكن بدلًا من ذلك، أعتقد أنه يجب عليك التركيز والحفاظ على مكتبة الوسائط الخاصة بموقعك خالية من أي صور لا ضرورة لها أبدًا. لذا، إذا كانت هناك صور لا تستخدمها أو حتى لو كنت تفكر في استخدامها في المستقبل فيمكنك التخلص منها. في النهاية لن تضيف شيئًا لموقعك سوى إضافة وزن إضافي وطلبيات للخادم وموقعك ليس بحاجة إليها. 2) حذف الملفات الأخرى غير الضرورية وقد تُظهر لك أدوات تقييم سرعة صفحتك التي ذكرتها أن الصور ليست هي التي تسبب المشكلة، وتتفاجأ أن هناك إضافة لتغذية الوسائط الاجتماعية أو وجود فيديو مدمج في الصفحة. فأنصحك أنه إذا كان هناك أي شيء على موقعك ليس ضروريًا ويتسبب في الضغط، فقم بإلغائه. اشمل على ذلك الإضافات والقوالب التي قمت بتثبيتها، ولكن التي لا تستخدمها في الوقت الحالي. 3) ضغط وتقليص حجم الملف من الأشياء الأخرى التي يتوجب عليك فعلها هو تثبيت إضافة تدعى WP Smush التي تتولى عملية ضغط صور موقعك. فإذا كنت ترغب في الحفاظ على صور موقعك الجميلة وذات الدقة عالية على موقعك بجودة سليمة تحتاج إلى ضغطه. 4) إنشاء عفريت صور CSS باستخدام CSS، يمكنك إنشاء ما يعرف باسم عفاريت الصورة (Image Sprite وهي تقنية تقوم على مبدأ استعمال صورة واحدة تحتوي على مجموعة من الخلفيات واستعمالها في جميع أزرار الموقع ويرجع الهدف من استعمال هذه التقنية إلى تسريع تحميل الموقع والتقليل من استخدام موارد استضافة الموقع). فعليًا سوف يجمع ملف CSS هذا جميع ملفات الصور الخاصة بك ويضعها في ملف واحد. استعن بهذا الدليل من W3 Schools لإنشاء عفريت. 5) فعّل خاصية التحميل الكسول هل سمعت عن التحميل الكسول (lazy loading)؟ ربما تسمع به لأول مرة، وسأقرب لك فكرة عمله. هنالك إضافات خاصة ترسل طلبيات للخادم عندما يقوم المستخدم بالتمرير لأسفل إلى صورة على الصفحة، وهذا الإجراء يحفظ موقع الويب الخاص بك ويقلل من الاضطرار إلى إرسال طلبيات الخادم غير الضرورية إلى المتصفح التي لم يسبق لزوارك الوصول إليها من قبل. 6) تجاهل الأصول غير ذات الصلة عملية التجاهل هذه تقوم بها إضافة تسمى WP Asset Cleanup وهي خاصة بووردبريس وتعمل بشكل مشابه لكيفية عمل إضافات التحميل الكسول. فبدلًا من التركيز على تأخير طلبيات الخادم للصور التي لم تتم مشاهدتها، تستكشف هذه الإضافة ما إذا كان هناك إضافة أو ملف أو مادة عرض أخرى موجودة داخل القالب الخاص بك، ولكن ليس على تلك الصفحة المحددة وبعد ذلك تحفظ هذا الأصل من أن يتم تحميله والكشف عنه في تلك الصفحة. وبالتالي، يصبح هناك تقليل لعدد طلبيات الخادم التي تذهب إلى المتصفحات. 7) استخدام الإضافة Hummingbird استعمال إضافة التخزين المؤقت (caching) أمرًا ضروريًا لمواقع ووردبريس، وخصوصًا تكمن أهميته عندما يكون موقع ووردبريس الخاص بك يتعامل مع زوار دائمين للموقع. وبذلك ليست هناك حاجة فعلاً لمعالجة طلبيات الخادم نفسها إذا لم يتغير شيء، وبالتالي فإن إضافة التخزين المؤقت تعمل على ذلك وتزيل كل ما ليس له حاجة. ومن الإضافات المهمة في ووردبريس إضافة Hummingbird التي تؤدي دورها بشكل مثالي مع إدارة التخزين المؤقت للمتصفح، فهي تعتني أيضًا بضغط الملفات، وملفات CSS، وملفات JavaScript وتصغير ملفات html، كما يضيف CDN (أي اختصار شبكة توصيل المحتوى وهي عبارة عن مجموعة من الخوادم الموزعة بكل أنحاء العالم تعمل على إيصال المحتوى الثابت لمواقع الويب إلى المستخدمين حسب موقعهم الجغرافي بأقرب وقت وأقصر مسافة) وتعمل إضافة CDN على تسريع الأمور بشكل أكبر ومنح إمكانية الوصول إلى تقارير الأداء في حالة عدم رغبتك في استخدام أحد العناصر الثلاثة أعلاه لتقييم حالة سرعة موقعك. 8) دمج ملفات الجافا سكريبت و ال سي اس اس تحتوي مواقع ووردبريس على العديد من ملفات CSS وJavaScript فبدلًا من إرسال كل ملف كطلب خادم منفصل إلى متصفحات الزوار، يمكن دمجهم في ملف واحد منفرد لكل نوع. ضع باعتبارك أن ملف CSS المدمج الخاص بك يجب أن يكون داخل رأس موقع الويب الخاص بك، وملف جافاسكربت في التذييل. 9) الحد من الصور الخارجية يظهر هذا واضحًا وأكثر شيوعًا عند تعليقات المدونة. هل تعلم أنه إذا تركت نظام التعليق الافتراضي الخاص بووردبريس في مكانه فإنه سوف يستخدم تلقائيًا Gravatar (صورة تشخيصية ثابتة وهي عبارة عن خاصية أوتوماتيكية لسحب صور المعلقين وسيرهم) وبذلك تصبح هذه الصور طلبيات خادم إضافية يتعين عليك إرسالها إلى كل المتصفحات، فماذا لو كانت المدونة معروفة ومشهورة بالطبع سوف تصبح هناك فوضى. ولكن في ووردبريس يوجد هناك بعض الإضافات الخاصة بالتعليقات وتعمل على تجنب هذه المشكلة. الخلاصة أخيرًا مما يميز تطوير مواقع ووردبريس أن هناك الكثير من الأشياء التي تستطيع القيام بها داخل الموقع و تحسين أداءه، ولكن أحيانًا نغفل كيف يمكن لموقعنا الخاص بما يحتويه من قوالب وإضافات وصور رائعة تبرز جماله أنها قد تكون بشكل مفرط يفوق الحد في نظر المستعرض الذي يحاول ببساطة معالجة الموقع بالكامل. ومع ذلك، في وورد بريس عليك أن لا تخف أبدًا، فإذا استخدمت أداة مراقبة السرعة للصفحة وتابعت عليها دومًا وأيضًا التزمت بنصائح الحد من طلبيات الخادم التسعة التي ذكرتها في الأعلى، أعتقد أنك بذلك سوف تجعل أداء موقعك جيدًا. ترجمة -وبتصرف- للمقال How to Reduce HTTP/S Requests in WordPress لصاحبته Brenda Barron
  2. صار التنوع الثقافي أمرًا ضروريًّا أكثر من أي وقتٍ مضى. إن كنت تتسائل عن السبب أو عن ماذا يعني هذا بالضبط، نحن هنا للمساعدة في إلقاء الضوء عن الوضع الحالي اليوم وعن الأشياء وموقعها في هذا الوضع، وأين سيكون موقعها واتجاهها في المستقبل، ولماذا يُعدُّ هذا العصر أفضل من أي عصرٍ مضى للنهوض بالتعددية الثقافية والادماج. التعددية: ماذا تعني هذه الكلمة بالضبط؟ إذا تكلمنا عن الأمر وخصصناه بمكان العمل، فنقول أن التعددية تعني منظمة تعمل على ضمان أن المواهب التي يتم توظيفها، استبقاؤها وتطويرُها هي مواهب من خلفيات مختلفة ومتنوعة. وهذا يعني بذل الجهد من أجل ضمان أن كل شيء من مُختلف الأجناس والأعراق والأديان والقدرات موجودٌ بين جُدران مؤسستك. وهذا أمرٌ يُمكن أن تنظر كفرصة لا كواجب، أو ممارسة تدخل في نطاق الصواب السياسي. لا تدور الفكرة حول النظر إلى هذا الأمر كمجرد بادرةٍ لضمان التعددية الثقافية في مكان العمل؛ بل تدور حول النظر إلى ما وراءه؛ فيجب النظر إلى هذه المبادرات كفرصة للاستفادة من مجموعة متنوعة من الخبرات، والخلفيات، ووجهات النظر وطرق حل المشاكل. إن عملائك، وزبائنك وجمهورك، بل العالم بأسره مختلفٌ ومتنوعٌ، فكيف تظن إذن أنه بإمكانك النجاح بفريق متماثلٍ لا مكان للتعددية والاختلاف الثقافيّ فيه؟ والأمر المهم معرفته بخصوص التعددية والاختلاف أنها مربوطةٌ بالاحتواء، إذ يمكن القول إذن أن نجاحها أو فشلها مرهونٌ بثقافة شركتك. تنمية ثقافة الاحتواء ليست واجبًا مقتصرًا على قادة الموارد البشرية في شركتك فحسب، بل هي واجب كل فردٍ في الشركة. عندما يتعلق الأمر بالاختلاف والتنوع في الفريق، يقع الاحتواء على عاتق قادة الفريق العاملين في الصفوف الأمامية، فهم لهم أكبر تأثيرٍ على مدى شعور كل موظفٍ بالإحترام وعدم الإقصاء. إذا كان ضمانُ التعددية والاحتواء مهمة مدراء الشركة، فتطبيق هاته القيم هو مهمة قادة الفريق في الشركة، وهذا بدوره له تأثيرٌ مباشرٌ على نتائج الشركة، فالموظف الذي يشعر بأنه مُتقبَّلٌ من الآخر سيكون أكثر إنتاجيَّةً في العمل وسيسهل توظيفه واستبقاؤه، والموظف الذي يشعر أنه تم التعريف به وتمثيله كما يجب سيكون أكثر إيغالًا والتزامًا تجاه عمله. 5 أصناف من التَّنوع في مكان العمل للمساعدة في توضيح هذه النقاط، جمعنا مجموعة من الإحصائيات المتعلقة بالتنوع والإدماج المُستخرجة من الدراسات التي تمت خلال السنوات الخمس الماضية. لقد ظهرت العديد من التقارير والأبحاث على مدى السنين الماضية، وعلى الرغم من أنه لا يُقصد بها إعطاء كل شيءٍ على التنوع، فإن المعلومات الواردة أدناه تعمل على تقديم صورة بسيطة لأصناف التنوع الثقافي الأكثر شيوعًا الموجودة في الفرق والشركات المتبنية لفكرة التنوع الثقافي والإدماج. وتشمل هذه التقارير التنوع فيما يخص الجنس، والعرق، والدين والإعاقة ولكن ضع في اعتبارك أن التنوع قد يشمل أيضًا السن، الوضع الاجتماعي والاقتصادي والتعليم وأكثر. الهدف في نهاية المطاف هو تعزيز ممارسات التوظيف العادل وكذلك التنمية، بل الممارسات اليومية في حياتنا ككل التي قد تؤدي إلى تنوع فكريّ داخل المؤسسة بأكملها. تكشف الإحصاءات الواردة أدناه الطرق التي يمكن أن تؤثر بها تحيّزاتنا الباطنية على عملية التوظيف، وكيف بدأت بعض مجالات التنوع في التحسن نحو الأفضل، والأهم، كم هو طويلٌ طريقنا نحو جعل الأمور مريحةً ومناسبة للموظفين والمؤسسات على حدٍّ سواء. لماذا صار الاختلاف الثقافيّ والاحتواء أمرين ذوي أهمية؟ التنوع هو بحقٍّ مستقبل القوى العاملة، إذا استطعت بنجاحٍ غرس ثقافة التنوع والاحتواء داخل مؤسستك، فستحصد مجموعة من الفوائد، ملموسةً كانت أو غير ملموسة، من تحسّنٍ في كيفية تواصلك مع عملائك إلى تحسُّنٍ أكبر في أداء الفريق وإلى إبداع وابتكارٍ أكثر، ناهيك عن نقلةٍ ضخمةٍ إلى الأمام فيما يخصُّ علامة مديرك التجارية وفيما يخص أيضًا جهوده في التوظيف. إنها في جوهرها واحدة من أكثر الطرق تأثيرًا وأكثرها حملًا لمعنى، فهي تُتيح للشركات الولوج لوجهات نظر الذين تتعامل معهم من الناس كما تُساعد على بلورةِ القيم التي يحملونها. خلاصة القول، التنوع الثقافي هو ميزةٌ يُتنافس عليها، وستُعطي أُكُلها لمن هو مستعِدٌّ للميل نحوها. مع استمرار تحرك القوى العاملة نحو الأتمتة (مصطلح يُقصدُ به التشغيل الذاتي للماكينات أي جعلها تعمل تلقائيًّا) المجالات التي تعتمد على الإبداع والابتكار، ستكون المكان الذي للبشر فيه أكبر تأثير، وفي هذه الحالة؛ الفِرق التي لها وجهات نظر متنوعة ومختلفة لمشروعٍ معين ستكون بداهةً في المقدمة، وبما أن الصناعات من حولهم في تطوّرٍ مستمر، ستكون لهذه الفرق حصانة ضد أي تغيرٍ أو تطوّرٍ سيقع في المستقبل. خلاصة القول، التنوع ميزة يُتنافَس عليها، وستؤتي ثمارها لمن هو مستعدٌّ للميل نحوها وتطبيقها في بيئة العمل. إن الجهد الذي تبذله شركات مثل جوجل، وفيسبوك وأبل، والتي مازالت بعيدة عن الكمال في الوقت الحاضر في سد فجوات التنوع دليلٌ على أن التنوع الثقافيّ والاحتواء هما مستقبل بعضٍ من أكبر الشركات والمنظمات في العالم. وهؤلاء الذين يفشلون في رؤية القيمة في هذا الأمر، سواء من وجهة نظرٍ عملية أو إنسانية، ستتجاوزهم الشركات المنافسة بجولات بينما هم في مكانهم لا يتقدمون. لا توجد حلولٌ تناسب الجميع عندما يتعلق الأمر بالاختلاف والاحتواء، وستحتاج كل مؤسسة لإيجادٍ نهجٍ يتوافق مع تركيبتها، ولكن كما هو الحال مع كل أمر، التقدم يبدأ بتغيرٍ في طريقة التفكير، انفتاحٌ على التغيير، وبالطبع؛، إرادةٌ لاستماع الآخر. ترجمة بتصرف لمقال Diversity in the Workplace للكاتب Justin Fragapane
  3. إنّ إعطاء التقدير الكافِ لمجهودات الموظف أمرٌ مهمٌ حقا وهذا ما قد يجعل تطبيقه مرهقًا بالنسبة لأي قائد. إنّ تقدير كل صغيرةٍ يقوم بها الموظفون والموازنة بين المكافآت الداخلية المعنوية والمكافآت الخارجية المادية ومساعدتهم على النمو كمهنيين أمرٌ لا غنى عنه، وقد تجتهد وتُنفق على هذا الأمرِ أموالًا طائلة ومع ذلك قد لا تحصل على أي نتيجةٍ تُذكر. ونحن نتفهم هذا، لأنه أمرٌ قد حدث لنا. خلال السنتين الماضيتين، تكلمنا مع العديد من الخُبراء حول جميع جوانب تحفيز الموظفين بما في ذلك تقدير الموظفين، وقد كنا قادرين على وضع هذا الدليل الكامل ليُعلمك كيف تصنع ثقافة تقدير مجهودات الموظفين وهكذا ستُسعد كل عضوٍ في الفريق. تقدير الموظفين: القصة وما وراءها واحدةٌ من أكبر الأخطاء التي يقع فيها القادة هي ربطُ إعطاء التقدير لمجهودات الموظف بالمكافآت المادية بينما في الواقع تقديرُ جهود الموظف لا يعني بالضرورة مكافأة وأنت لست مضطرًّا لصرف أي فلسٍ إذا ما أردت الإعتراف بجهد الموظفين. ومع هذا يبدو أن هناك الكثير من القادة الذين مازالوا لم يفهموا ماذا يعني هذا المُصطلحُ بالضبط. وهذا كل ما في الأمر؛ كل ما عليك فعله هو أن تُظهر للموظفين الإحترام الذي يستحقونه، عليك أن تُظهر لهم أنك تُقدّر جهدهم المبذول في سبيل المؤسسة. هي بسيطةٌ نظريًا ولكن هناك الكثير من التفاصيل الصغيرة التي قد تُفسد عليك الأمور وسنتكلم عنها لاحقًا في هذا الدليل. هذا الخطأ قد ينتج عنه مشكلتان؛ ضياع مالٍ وإفسادٌ لحافز الموظفين. لا يريدُ منك الموظف أن تُنفق من أجله عشرون دولارًا كقسيمة شراء بل كل ما يُريده منك هو ملاحظة وتقدير عمله. وفقًا لدراسةٍ قمنا بها مؤخرًا حول التعامل مع الموظفين وجدنا أن 82% من الموظفين يُفضلون من الإدارة أن تقدر مجهوداتهم بالثناء على إعطاءهم هدايا، وهذا يعني أنك تُنفق أموالك هباءًا. إنه من المعروف أنك إن أعطيت أموالًا للموظف نظير قيامه بعمله سيقل حافزه للقيام بالعمل. في علم النفس الإجتماعي، هذا يُعرف بتأثير المبالغة، ومهمةٌ كانت تُنجز على أفضل وجه بسبب حافزٍ معونيٍّ داخليّ ستصير فجأةً ذات حافزٍ خارجي. وإذا أنت لم تُقدم مكافأة أو قللت من قيمة المكافأة التي كان الموظف ينتظرها، ستنزع منه اهتمامه بالمهمة وسيذهب الحافز الداخلي وسيتوجب على الحافز الخارجيّ المادي أن يكون على هيئة عطاءً متواصِلًا، وإياك أن ترتكب هذا الخطأ، عليك إدراك قيمة الإعتراف بالمجهودات وتقديرها ثم عليك أن تُنفذها كما يجب. لماذا يُعدُّ تقدير جهود الموظف أمرًا مهمًا؟ وفقًا لما جاء في كتاب "كم هو ممتلئٌ دلوك" للكاتب الدكتور دونالد كليفتون أن أول سبب يجعل الناس تقدم استقالتها من العمل هو عدم شعورهم بأن جهودهم مُقدرة ومُعترفٌ بها. تقدير العمل يُعدُّ واحدًا من أهم الأشياء التي يمكنك فعلها للمحافظة على الموظفين. وهذا ما جاء في بحثٍ قامت به مؤسسة ديلويت: ولأزيدكم من الشعر بيتًا، وجدت جمعية إدارة الموارد البشرية في دراسةٍ استقصائية قامت بها أن الشركات التي لها برنامج تقدير استراتيجي ستكون قادرة على استبقاء الموظفين بنسبةٍ تصل إلى 86.6 بالمئة أكثر من الشركات التي ليس لها أي برنامج. وهذا أمرٌ مهمٌّ معرفته لأن عملية تغيير الموظفين هي شيئٌ مكلفٌ بحق. مُعظم التقديرات تقول أن متوسط قيمة عملية تغيير موظف معين بآخر تصل إلى ثلاثين بالمئة من دخل الموظف، ولكن البعض يقول أنها قد تُكلف أكثر بل ضعف دخل الموظف؛ خاصة إن كان يحجز منصبًا تنفيذيًا أو منصبًا يتطلب مهارةً عالية، وعندما تفكر في الوقت والجهد والمال المُستثمَر في عملية التوظيف والتدريب ستبدو لك التقديرات معقولة للغاية. وهذه بعض الأمور التي تتطلبها عملية استبدال موظفٍ بآخر: تكاليف التوظيف وما يدخل معها من مقابلة العمل، الفحص والترويج. تكاليف التعلم والتأقلم على طريقة سير المؤسسة. إنعدام الإنتاجية؛ فالموظف يستغرق ثلاثة أشهرٍ على الأقل حتى يبدأ في الإنتاج. تكاليف التدريب. وأكبر من الخسائر المادية هناك الخسائر العاطفية. عليك أن تضع في حساباتك التأثير الذي ستُحدثه استقالة شخصٍ لمعنويات مؤسستك، سينخفض معدل الإنتاجية كثيرًا لأن كل فردٍ في الفريق سيقضي وقته وجهده في التساؤل إن كان سيكون هو التالي. التقدير الذي يسير على نهجٍ منتظم سيجعل الموظف يُريد البقاء معك. في بحثٍ في كتاب "كم هو ممتلئٌ دلوك" وجدوا أن من فوائد حصول الموظف على تقدير من الإدارة منتظم: يزيد من إنتاجية الفرد. يزيد من نسبة التعامل بين الزملاء. يزيد من نسبة المحافظة واستبقاء الموظفين. يزيد من ولاء ورضا الزبناء تجاه الموظفين. ومن بين كل الإحصاءات التي تُبين أهمية اعتراف الإدارة بمجهود الموظف، الإحصائيات التي قدمتها جمعية إدارة الموارد البشرية هي ما تحتاجه المؤسسات بالفعل: اعتراف الزملاء بمجهود بعضهم بعضًا وتقديره يُعدُّ فرصة ضخمة لتطبيق وبناء ثقافة التقدير والإعتراف بالمجهود داخل مؤسستك، وهذا يُريح المدراء من الضغط ويضمن حصول الموظفين على تقديرٍ كافٍ. إحصائيات حول تقدير الموظف إليك بضعة إحصائيات مهمة تُظهِر لك قيمة التقدير والثناء بالنسبة للموظفين: كم هي المرات التي يجب فيها علي أن أثني الموظفين؟ وفقًا لمؤسسة غالوب، عليك أن تُثني على الموظفين مرة في الأسبوع على الأقل. ومما جاء كإجابة على أحد الأسئلة في دراستهم Q12 «لقد تلقيت تقديرًا أو ثناءً على مجهوداتي في السبعة الأيام الماضية». وهم يفهمون أن هذه واحدة من أهم الأمور عندما يتعلق الأمر بالتعامل مع الموظفين، وهذا ما يقوله البحث: قد يبدو هذا جلِلًا ولكن عليك أن تفهم مدى سرعة تأثير الدوبامين. يتوق الموظفون إلى الدوبامين، وهذا أمرٌ بيولوجي لا يمكن التحكم فيه، نحن البشر نحتاج الدوبومين بطريقةٍ أو بأخرى، وإذا لم نحصل عليه من مديرنا في العمل سنحصل عليه من الأطعمة المُشبعة بالدهون. وهذا في الواقع يجب أن يكون أمرًا إيجابيًا بالنسبة لك، لأن الموظف عندما يحصل على تلك الدفعة من الدوبامين لأنه قام بعملٍ جيدٍ سيتوق لتلك الدفعة مجددًّا وسيعمل أكثر ليحصل عليها مرة أخرى. طبّق ثقافة تقدير الزملاء بين بعضهم بعضًا في مؤسستك وفقًا لما جاء في بحثٍ قامت به مؤسسة ديلويت، يتملك الموظف شعورٌ أفضل إذا ما تم تقديرُ عمله من طرف زمليه. ونحن لا نحتاج هذا البحث لندرك أن هذا أمرٌ معقول، فأنت تقضي وقتك مع زميلك في العمل يوميًّا وبالتالي هو يفهم ما تقوم به أكثر من الإدارة وإذا اثنى عليك فسيكون مخلصًا أكثر، وزد على ذلك أن معظم الموظفين يرون أن اعتراف المدير إذا أتى فيأتي منه مكرهًا لأنه يريد منهم العمل أكثر مما يجعل التقدير الآتي من الزملاء ذو معنى أعمق وأكبر. السؤال إذن هو كيف تُطبق ثقافة إشادة الزملاء على بعضهم بعضًا؟ علّم موظفيك الإمتنان. البحوث المُجراة حول الإمتنان قد تكون الحلقة الأخيرة لبناء ثقافة الإعتراف بين الزملاء أين يُقدر كل واحدٍ منهم عمل الآخر ويجزيه بالثناء والكلام الجميل. وأثر الامتنان يتنقل كالعدوى بين الزملاء وقد يستمر لأيام، وإذا أنت خلقت ثقافة شركة مِلئُها الامتنان فسيسعد الموظف أكثر وسيكون أكثر استعدادًا لمساعدة زملائه. ولكن الإشادة بين الزملاء والبرامج الاجتماعية التي تُشجع على تقديم المدح والثناء هي مجرد أجزاءِ من برنامج اعترافٍ وتقدير أكبر. سبعة نقاط مهمة لبرنامج ناجح بناءٌ برنامجٍ ناجحٍ قد يكون مرهقًا وقد يأخذ الكثير من وقتك وجهدك، لذلك وضعنا هذه القائمة التي فيها أهم النقاط التي يجب أن تأخذها بالحسبان إذا ما بدأت في بناء برنامجك. والأمر المهم معرفته هو أن موظفيك يسعون جاهدين لإرضائك، ومن أجل هذا إن أنت أردت إسعادهم فعليك أن تُبيّن لهم أنك ترى وتُقدر مجهودهم. اجعل الثناء مستمرًّا إن برنامج "موظف الشهر" غير كافٍ، الإعتراف بمجهود الموظف هو أمرٌ يجب أن يحدث في الوقت الفعلي، كلما رأيت موظفًا يجتهد بيّن له أنك ملاحظٌ لمجهوده ومحيطٌ بما يقوم به. كن دقيقا كلمةٌ مثل "شكرًا" غير كافية بل يجب أن تُبيّن على ماذا تشكر الموظف. اعلم أن الموظف ليس مهتمًّا بكلمة "شكرًا" بقدر ما هو مهتم بخسلة أنك لاحظت عمله، لذلك من المهم أن تكون دقيقًا كقولك مثلا "شكرًا لأنك ساعدت سارة في مشروعها، وأعلم أنها قدّرت مجهودك وأنا أقدره أيضًا". كن متوازيًا مع قيمك العيش بقيمك الأساسية أمرٌ مهمٌ لإنجاح شركتك والتأكد من أن الجميع يعمل على نفس الهدف ونفس المهمة. كلما ربطت مدحك وثناءك مع قيم مؤسستك، كان أفضل. ستضربُ عصفورين بحجرٍ واحد؛ لأنك سُتقدر مجهود موظفك وفي نفس الوقت ستعزز من قيم مؤسستك. شجّع الجميع على المشاركة في البرنامج عليك أن تُشجع الجميع على المشاركة في البرنامج لأن هذا سيجعله فعّالًا أكثر ولكن لا تفرض عليهم المشاركة فهذا قد يعود عليك. يجب أن تكون أسوةً وأن تشارك كثيرًا بنفسك، خاصة إن كنت تعتمد على برنامج معين فعليك أن تساعد في إطلاقه وأن تغرس بذور المحادثات الأولى. كن دائم البحث عن النقد وردود الفعل قم بجمع ردود الفعل من الموظفين وادرسها لترى إن كانت أي مبادرة قمت بها تعمل بشكل جيدٍ أم لا. يمكنك الاعتماد على استطلاعات الرضا لترى إن أحس الموظفون بأي تحسن بعد التغييرات التي قمت بها. اعتمد على التكنولوجيا استخدام التكنولوجيا والمنصات الإجتماعية لجعل ثنائك عامًّا ويمكن تتبعه يُعدُّ طريقةً جيدة لضمان نجاح البرنامج. ليس من الضروريّ أن تكون معقدة، ولكن التكنولوجيا قد تجعل الأمور أسهل وممتعة أكثر للجميع. بعض الأفكار التي قد تُساعدك: إنشاء قناة لإرسال الثناء في تطبيق سلاك. موقع Bonusly. موقع workstars. كن دائم التواصل مع الموظفين معظم المشاريع تفشل بسبب فشلٍ في التواصل. بعد أي تسويق أوليّ تقوم به للإعلان عن برنامجٍ معين لا تنسَ التواصل مع الموظفين بانتظام. ذكّر الموظفين بسبب مشاركتهم وذكّرهم كيف يمكنهم بتقديرهم لمجهود بعضهم بعضًا بناء هذه الثقافة. أفكارٌ تحتاجها إن كنت تبحث عن أفكار جميلة لإعلام موظفيك أنك تُقدر مجهوداتهم، تفضل هذه الأفكار المجربة والتي نجحت وسرت بشكل جيدٍ جدًّا: استعمل مواقع التواصل الإجتماعي واحدة من الأفكار الرائعة هي تطبيق برنامج "موظف الشهر" ثم نشر صورة الموظف الفائز على أحد حسابات مواقع التواصل الإجتماعي الخاصة بشركتك. هناك أمرٌ قويٌّ في الإشارة إليك من طرف شركة لها آلاف المتابعين في مواقع التواصل الإجتماعي. البطل الخارق هذه إحدى طرقي المفضلة لتطبيق ثقافة الإعتراف بالمجهودات بين الزملاء في المؤسسة. جِدْ شيئًا مادّيًّا يرمُزُ إلى بطلٍ خارق (نحن نستعمل الرداء الأحمر) واجعل البطل يرتديه طوال اليوم إذا ما فعل شيئًا مميزًا، ثم إذا ما فعل موظفٍ آخر شيئًا مميزًا أكثر فعلى البطل أن يسلمه الرداء. أثني عليهم في الاجتماع القادم استثمر دقائق قليلة قبل بداية الإجتماع في تسليط الضوء على الموظف المميز، أعطهم جزءًا يستحقونه من التصفيق، ولا تنسَ أن تكون دقيقًا ووضح على ماذا أنت تشكره. صباح يوم الأحد للامتنان هناك أمرٌ حول الإمتنان يجهله معظم الناس وهو أن أسهل طريقة لنشره هي إخبار الشخص لمِاذا أنت ممتنٌّ له. في صباح يوم الإثنين، شكل دائرةً مع أعضاء فريقك واجعل كل موظفٍ يُعرب عن إمتنانه حيال شيءٍ يقوم به الموظف الذي بجانبه، مثلا: محمد دائما يجيب أسئلتي وبسرعة وأنا ممتنٌّ جدًّا لهذا. ادعُ فريقك لتناول وجبة الغداء من الأمور الجميلة التي يمكنك فعلها لتُظهر امتنانك لموظفيك وتُظهر لهم أنك تُقدّرُ جهدهم هي دعوتهم لتناول الغداء معًا في المطعم المحلي، واحرص على إخبارهم بأنك تُقدّرُ الجهد الذي يبذلونه في سبيل المؤسسة. أعطهم وقت إجازة إضافي إذا رأيت أن موظفًا يبذل جهدًا كبيرًا ويكدح كدحًا مضنٍ فيمكنك أن تعطيَهُ يوم عطلة أو العمل من يوم واحد ليوم أو يومين وهذا أمرٌ بسيطٌ يمكنك أن تستغله لتظهر لموظفك أنه يستحق استراحة. أعطهم قسيمة شراء من لا يحب الحصول على قسيمة شراء؟ وهذا النوع من الهدايا يمكن استثماره حتى مع الزبائن. إن قسيمة شراءٍ لمطعمٍ أو مقهى محلي تُعتبر مكافأةً رائعة، وسترفع الأمور درجة إن كانت قسيمة الشراء تتوافق مع شخصية الموظف، مثلا: إن كان الموظف يحب لعب رياضة الغولف، فستكون قسيمة شراءٍ لمحل بيع عتاد رياضة الغولف فكرة رائعة. نصيحة: يمكنك أن تسأل الموظف عن ماذا يريد لتتجنب خيبات الأمل. كيف يكون ثناؤك فعّالًا؟ يبدو تقديم الثناءِ أمرًا سهلًا نظريًا، فقط كن دقيقًا، قدمه في الوقت المناسب وقدمه بشكلٍ مستمر، ولكن هناك بعض التفاصيل التي قد تُغيّرُ كل شيء. إن انحيازاتنا اللاشعورية والكلمات التي نختار استخدامها عند تقديم الثناء قد تُشجع الموظف وتساعده على النمو ولكنها قد تكون غير مسموعة كذلك. هناك أمران يتوجبُ عليك فهمهما عندما يتعلق الأمر بتقديم الثناء: يجب عليك إدراك حقيقة أن الجميع يستحق أن ينال انتباهك. كما يجب أن تكون مدركا لِمَا سُتقدم ثناءك وكيف تؤطره. نحن نظهر الإنتباه للذين نظنهم يستحقونه. في عام 1964 قام باحثٌ اسمه روبرت روزنتال بإجراء تجربة في مدرسةٍ ابتدائية أراد أن يعرف بها مالذي سيحدُث إن هو أخبر المعلمين أن هناك بعض التلاميذ في أقسامهم مُقدّرٌ لهم النجاح. قام روزنتال بأخذ اختبارٍ للذكاء ووضع ورقة غلافٍ مزيفة فيه كتابةٌ تُشير إلى أن الاختبار قد قامت به جامعة هارفرد، وتم اخبار الاساتذة بأنه سيُمكن التنبؤ عبر هذا الاختبار بالأطفال الذين سينمو ذكاؤهم نموًّا هائلًا. اختار روزنتال تلاميذًا بطريقةٍ عشوائية وأخبر الأساتذة أن هؤلاء التلاميذ هم من يقول الاختبار فيهم أن ذكاءهم سينمو نموّا هائلًا. وقال روبرت روزنتال: إذا ما جُعل بعض الأساتذة يتوقعون نموًّا في معدل الذكاء لبعض التلاميذ، فسينمو معدل ذكاء هؤلاء التلاميذ بالفعل. لقد اكتشف أن هذه التوقعات تؤثر على التفاعلات اليومية بين المعلمين وتلاميذهم، فقد حصل هؤلاء التلاميذ على وقتٍ أطول للإجابة وحصلوا على نقدٍ أكثر تفصيلًا ودقة بعد إجابتهم. وهذا درسٌ مهمٌّ لكل قائد. عندما نتوقع في عقلنا الباطني من شخصٍ النجاح، سنُظهر له اهتمامًا أكبر ونقضي وقتًا أطول في مساعدته للنجاح. على ماذا يجب أن تُركّز ثناءك؟ قامت كارول دويك، عالمة النفس بجامعة ستانفورد، بعمل لا يُصدق حول الكيفية التي تؤثر بها عقلياتنا على نجاحنا، إنها مشهورة بعملها "عقلية ثابتة" ضد "عقلية النمو" ومشهورة بكتابها "عقلية: علم النفس الجديد للنجاح". في واحدة من دراساتها، نظرت إلى كيف يتفاعل الأشخاص ذوي العقلية المختلفة مع الثناء. هذه الدراسة تم إجراؤها على مئات الطلبة الذين واجهتم مشكلات وتطلب منهم حلها ثم تم مدحهم على أدائهم. ولكن لقد قُدّم لهم نوعان من المدح فقط. تم إخبار مجموعة الطلبة المشاركين في الدراسة التالية: «رائع! لقد استطعت أن تحصل على الكثير من الإجابات الصحيحة، هذا أداءٌ جيد، لا شك في أنك ذكي». أما المجموعة الأخرى فتم إخبارهم التالي: »رائع! لقد استطعت أن تحصل على الكثير من الإجابات الصحيحة، هذا أداءٌ جيد، لا شك في أنك إجتهدت كثيرًا من أجل هذا». الطلبة الذين مُدحوا على مجهودهم الخاص كانوا أكثر استعدادًا لمواجهة تحديات أخرى والاستمرار في التعلم. كونك قائد، سيتقبل الموظفون مدحك أفضل إذا أنت ركزت على مجهودهم وليس على مهاراتهم. ملخص الأفكار الرئيسية تقديم التقدير الكافِ لمجهودات الموظفين هو برنامجٌ يتطلب الكثير من العمل ويُلزمك أن تكون محيطًا بالعمل الذي يقومُ به موظفيك. الاعتراف بمجهود موظف هو علامة احترام، والإحترام شيءٌ مهمٌّ للمحافظة على روح الفريق. عندما تبني ثقافة التقدير والاعتراف ستكون بيئة العمل أكثر وديةً، وأكثر سعادةً وأكثر إنتاجية وهي بدورها سوف تجلب أفضل المواهب كما ستُحافظ عليهم. تقدير مجهودات الموظفين لا يعني تقديم مكافأة. تُعتبر قلة الاعتراف بالمجهودات وتقديرها السبب الأول الذي يُقدم الناس بسببه على الإستقالة. التقدير المستمر بمجهودات الموظفين يحافظ على استبقائهم كما يزيد في الإنتاجية. اعتمد على ثقافة تقدير الزملاء لمجهود بعضهم البعض لتحصل على أكبر فائدة. الاعتراف بالمجهودات وتقديرها يعني ببساطة ملاحظة العمل الجيد ثم تقديم الثناء عليه. كن دقيقًا، قدم الثناء بشكلٍ مستمر واحرص على مدح المجهود نفسه لا المهارة. ترجمة بتصرف لمقال Employee Recognition: The Complete Guide للكاتبة Alison Robins
  4. يمكنني القول بصراحةٍ أنني موظفٌ من النوع الذي يجب أن يُحاط بزملاءٍ يُكِنُّ لهم المودة حتى يؤديَ عمله بشكل أفضل؛ إن العمل بين أُناسٍ أُحبهم بصدق يجعل عملي أسهل بألفِ مرة. إني أرى أنّ وُجود أصدقاءٍ جيّدين في العمل يمكنُ أن تكونَ له فائدةٌ كبيرة، فهذا أمرٌ قد يُخفِّفُ بعضًا من التّوترِ الناتجِ عن ساعاتِ العملِ الطِّوال كما يمكن أن يُسهِّل التعامل مع الحالات والمواقف ذات الضغط العالي. لقد وجدنا إحصائيات رائعة تُثبتُ أنّ العمل مع مجموعة جيدة من الأصدقاء ليس فقط أمرًا جميلًا الحصولُ عليه بل يُمكن أن يجعل الجميع يعمل بشكل أفضل. 1. حياةٌ عمليّةٌ أفضل كثيرًا ما تكلمت سابقًا عن ضرورة موازنة حياتك في العمل مع حياتك خارجه وهذا لأنك إن استطعت فعل هذا، فسَتُخفف من وطأة التوتر بدرجةٍ كبيرة وسيصير المزجُ بين الحياتيْنِ سلِسًا، فكأنك المُحارب في ساحات الوغى تخوضُ كلما أشرقت الشمس معركةً ثم تخوض بعد ذلك مع زملائك في العمل دردشةً ليست بالضرورة مرتبطةً به. هذه الطبقة الإضافية من الراحة تجعل عملك أسهل. أنصحك أيضًا بقراءة كيف سيتغير مكان العمل خلال العقود المقبلة. 2. وجودُ الأصدقاء سيُحسّنُ من نسبة الاحتفاظ بالموظفين لن تهجُر مجموعة أصدقاءٍ تُحبهم صحيح؟ لن تقبل بعملٍ حتى ولو كان بأجرٍ مُرتفعٍ إن كنت لن تتآلف مع زملائك في العمل، مُعظم الذين جرت عليهم الدراسة بيّنوا أن قيمة العمل مع مجموعةٍ جميلةٍ متآلفةٍ من الأصحاب تعلو قيمة الأجرِ المرتفع. يمكنني القول إذن أن تكوين علاقات صداقة وثيقة داخل مكان العمل مع بناء ثقافة شركة جيدة أمرٌ جميل لاستبقاء الموظفين لديك، ومن أجل هذا احرص على أن تبذل قُصارى جُهدك في توظيف أشخاصٍ يتمتعون بملائمة ثقافية كبيرة. 3. تزيدُ من رضا الموظفين كما ترفع معنوياتهم عندما تكونُ بين الأصدقاء، ستعمل بشكلٍ أفضل وسترتفع معونياتك كما أنك ستجد نفسك قادرًا على أن تكون أكثر إنتاجيةً في العمل. أعتقد أن مجرد حقيقة أنه يمكنك مُداولةُ العمل باللعب مرةً سيجعلك أكثر إنتاجية، فمثلا أنا وشريكي التأسيسي دان نعملُ بجدٍّ كل يوم ولكننا لا ننسَ أخذ استراحةٍ قصيرة في منتصف النهار للاستمتاع قليلًا؛ أحيانًا تجدُنا نلعبُ تنس الطاولة وأحيانًا ألعاب الفيديو وأحيانًا أخرى نتكلم عما حدث ونتدارك ما فاتنا من أخبارٍ وشؤون حياةِ كلٍ منّا الشخصية، هذا يُخفف من شدة الإرهاق العقليّ الناتج عن الجلوس أمام الحاسوب طوال اليوم. 4. أصدقاءٌ أفضل = بناء ثقافة أفضل في الشركة كما أشرت سابقًا، كلما زاد عدد الأصدقاء في العمل، كانت ثقافة الشركة أو المكتب أفضل. يُمكن القولُ إذن أن كل العلاقات التي تعقدها في مكان العمل لا تجعل حياتك أفضل فحسب بل تُحسن بطريقة غير مباشرة ثقافة شركتك. 5. أفضل علاقات الصداقة تبدأ من مكان العمل فمثلا نحن مدمني العمل في مكتبنا كوّنا صداقاتٍ مع زملائنا في المكتب، ويمكنني القول أن جميع أفراد الفريق مقربون لبعضهم بعضًا ويربطنا رباطٌ وثيقٌ جدا. كان هناك فترةٌ من الزمنِ اعتقدت فيها أن مجموعة أصدقائي قد اكتملت في الكلية ولكني كُنت مخطئًا تمامًا، فتكوين الصداقات في العمل أمرٌ رائعٌ، لأنه على أعضاء الفريق التعرف على بعضهم بعضًا جيدًا حتى يَسهُل عليهم حلُّ المشكلات وإتمام العمل. 6. ثناءٌ أكثر من الزملاء كلما زاد عدد أصدقائك في مكان العمل، زاد الثناء. ثناءُ الزُّملاء يفعل العجب عندما يتعلق الأمر بالاعتراف بمجهوداتك المبذولة، وبدلًا من أن يأتي الثناءُ من الإدارة، يأتي من زُملائك من حولك، طبعا هذا لا يأخذ مكان إعتراف الإدارة فقيمة ثناءها لها وزنٌ أكبر ولكن اعتراف الزُّملاء يخدُمُ غرضًا قيِّمًا أيضًا. 7. وجود أصدقاء في مكان العمل أمرٌ جيدٌ لتنمية شخصك وجود أصدقاء في مكان العمل يُساعدك على النموّ كشخص وكمِهني، هذا طبعًا لوجود أشخاص يُحفِّزونك ويُشعرونك بالراحة أيضًا. لذلك أبقِ أصدقاءك في العمل قريبًا منك لأنهم يُساعدونك في النمو كشخص وكموظف. 8. جودةُ عملٍ أفضل نعم هذا صحيح، العمل مع الأصدقاء يُحسّنُ من جودة عملك. سأفترض أن هذا يحدُث بسبب مراجعة ونقد أقرانك في العمل كما يمكن أن يحدُث لأنك تُريدُ أن تُريَهم بأن أدائك جيد فتتفوق في أداء المهمات الموكلة إليك، فآخر شيءٍ تُريده هو أن تكونَ أنت العضو المترهّل في المجموعة. من المؤكد إذن أن وُجود أصدقاءٍ في العمل سيُساعدك على التفوق وتقديم أفضل ما لديك. 9. ستتلقّى ردود فعلٍ أكثر على الأقل هنا في مكتبنا، نُبقي ردودَ الفعلِ مستمرة؛ فإن وجدنا شيئًا يُمكنُ تحسينه، نبذل قُصارى جهدنا في إصلاحه واختباره. هنا في المكتب، نستخدم ملاحظات الموظفين للحفاظ على سيرِ الأمور، أراه من المهم جدًّا الحصول على رأي وملاحظات أقرانك لتتفوق وتُنجز أكثر، لقد اكتشفنا أننا بالمحافظة على النقد المستمر نحن أكثر حماسًا وإبداعًا وابتكارًا. 10. كسبُ احترامٍ أكبر من الزُّملاء لأنك تعملُ بين الأصدقاء، ستميل إلى احترامهم، ولن تسوء الأمور إلا إذا كنتم تتابعون نفس دوري كرة القدم، ولكن عدا هذا ستكون الأمور على ما يُرام. فأنت عندما تعمل مع زُملاءٍ تُحبهم سيكون الاحترامُ متبادلًا؛ تمنحه وتتلقاه، وإذا طلبت من أحدهم إتمام مهمة فكأنك طلبت منه إسداء خدمةٍ أو معروفٍ إليك، لذلك أبقِ بيئة العمل وكأن مجموعة من الأصدقاء يعملون على مشروعٍ مشترك. 11. ستستمتع أكثر وأنت في العمل أكثر من ضعف الأشخاص الذين تمت عليهم الدراسة قالوا أنه لديهم الفرصة لتقديم أفضل ما لديهم كل يوم. إن المعادلة بسيطة؛ عندما تعمل مع الأصدقاء فإنك ستستمتع أكثر بهذه الوظيفة، ولا يوجد أي عيبٍ في هذا. لنتكلم بصراحة، كثيرٌ من الوظائفِ مملةٌ ومرهقة ولكن إن نحن خُضناها مع الأصدقاء فستصير أسهل. لماذا قد تقضي وقتك في عملٍ لا تستمتع به؟ أو مع زملاءٍ لا تُحبهم حقًّا؟ ابدأ في تكوين صداقاتٍ في مكان عملٍ واخلق بيئة رائعة وممتعة تُسهّل على الجميع العمل. ترجمة بتصرف لمقال Why Having Friends at Work is Important للكاتب Jeff Fermin
  5. تُستخدَم المخرجات والنتائج كثيرا في كلا من إدارة الإنتاج والبحث، لفهم كيفية استخدام الناس لسلعة أو خدمة ما، فنحن دائما ما نقول أننا نود أن نركز على النتائج و ليس المخرجات، حيث أن المخرجات من الممكن أن تكون مضللة وغير مؤثرة أو حتى ضارة. ما الفرق بين المخرجات والنتائج المخرجات هي مقياس لما تم إنشائه. النتيجة هي مستوى الأداء أو الإنجاز الذي تم بناءً على ما تم إنشائه. كيف تخطط للنتائج إن من السهل أن تعلق في التفكير القائم على إيجاد الحلول في محاولة منك لإنجاز العمل لأن ذلك يبدو في البداية أسرع شيء ممكن و لكن التركيز على النتائج بدلًا من المخرجات يساعدنا في تجنب إعادة العمل مرة أخرى لإننا عندما نقوم بذلك فإننا بالفعل نأخذ المشاكل بعين الإعتبار، و نركز على ما الذي يجب على المستخدم اختباره، بالإضافة إلى ما يجب أن توفره الخدمة أو المنتج. يمكنك البدء في التخطيط من أجل النتائج مع فريقك بواسطة القليل من الأسئلة: ما هي المشاكل التي يواجهها المستهلكون عندما يقوموا باستخدام منتجنا؟ ما هو الشيء الذي يحتاجه المستهلك حقا من أجل أن يشعر بإن المنتج رائع؟ و لماذا؟ ما هو الشيء الذي تحتاجه الشركة حقا من أجل أن يكون منتجها ناجحا؟ و لماذا؟ سيساعدك طرح هذه الأسئلة حول منتجاتك أو أثناء البحث على ايجاد حلول أفضل لفريقك ويعطيك مزيد من الثقة بحيث يكون العمل الذي تقوم به ذو تأثير إيجابي. مشكلة النتائج في بورتلاند، لدينا ما يقرب من 563.27 كم من الطرق المخصصة للدراجات، والتي نسير عليها بانتظام؛ 513.38 كم من تلك المسافة يمكن تقسيمها كالآتي: 123.92 كم من الطرق الخضراء في الأحياء. 302.56 كم من ممرات الدراجات. 136.79 كم من المسارات. و يحتوي 27.36 كم من تلك المسافة على حواجز لكي تفصل السيارات عن سائقي الدراجات : 6 مسارات للدراجات. 17 ممر احتياطي للدراجات. ومعظم المسافة 563.27 كم توجد في طرق مشتركة، حيث تسير السيارات والدراجات في نفس الشارع. ففي الأحياء توجد طرق خضراء حيث يوجد عدد قليل من السيارات. ولكن كلما اقتربت من وسط المدينة، فستجد مسارات أكثر وسيارات تسير بسرعات أعلى. كل هذا عبارة عن مخرجات، إنها قياسات لما هو موجود بالفعل. تمتلك المدينة أيضا 80.47 كم إضافية من طرق الدراجات مُخطط لإنشائها في السنين القليلة القادمة. هذا يعني أن هناك طرقا لا تعد ولا تحصى يمكن لأي شخص أن يسير فيها بدراجته في جميع أنحاء بورتلاند. نظريا هذا يبدو جيدا، و لكن هل هو فعلا كذلك؟ إذا كان هناك 563.27 كم من مسارات الدراجات في بورتلاند، فذلك رائع، ولكن كيف يمكن أن نجذب مزيدًا من الناس لإستخدامها؟ التفكير من خلال القياسات القائمة على النتائج توجد طريقة أفضل للنظر إلى مسارات الدراجات في مدينة بورتلاند وهي من خلال النتائج. تُعرّف النتائج ما الذي يجب أن يكون صحيحا حتى يكون الشيء ذو قيمة لكل من الفرد (المستهلك)، ولك (الشركة). فالنتيجة هي ما نريد للناس أن يختبروه عند استخدام الشيء الذي قمنا بصنعه. وكيف يمكنك أن تعرف ذلك؟ من خلال الكلام مع الناس والحصول على آرائهم. إذا ما الذي تريده المدينة عندما يقومون بإنشاء مسارات للدراجات؟ هم يريدون السيطرة على تكاليف البنية التحتية، وحث الناس على المشاركة في الإقتصاد المحلي من خلال وظائفهم، واستهلاكهم، و جعل المكان رائع لزيارته من قِبل السياح، واستثمار المال في مدينتنا. ومسارات الدراجات هي جزء من ذلك لأنها تجعل من السهل التنقل، كما أن تكلفة إصلاح وصيانة البنية التحتية لتلك المسارات منخفضة مقارنة بالطرق المزدحمة، وأيضا وجود اقتصاد أقوى يعني أن عددا أكبر من الناس سيقومون بزيارة المدينة. بدلا من ذلك، قد يرغب راكبي الدراجات في استخدام الطريق للتنقلات اليومية، ورحلات عطلة نهاية الأسبوع، وقد يستخدموها لممارسة الرياضة. وبالرغم من ذلك، هم يريدون أن يشعروا بالأمان أثناء قيامهم بركوب الدراجات. وهذه نقطة هامة، وهي مفهوم الأمان (حواجز، أو مسافات بين المسارات والسيارات)، وتعني أن المزيد من الناس ممن كانوا غير مهتمين بركوب الدراجات سيحاولون أن يجربوها. وكمثال، فأنا خير دليل على ذلك، حيث أعيش الأن في حي به ممرات منفصلة وشوارع مخصصة فقط للدراجات، وأنا استعمل الدراجة الأن أكثر من أي وقت مضى. يقود وضع الحواجز على الطرق لفصل راكبي الدراجات عن السيارات إلى التشجيع على ركوب الدراجات، وحث أنماط مختلفة من الناس على ركوب الدراجات، بما في ذلك الأطفال وكبار السن، هذه نتيجة تم إثباتها بالفعل في مونتريال، وأمستردام، وكوبنهاجن، ونيويورك. ولذا فإننا إذا نظرنا إلى هذا من خلال عدسة النتائج، فسنحصل على العديد من الأفكار، وعلى قصة مختلفة تماما لكيفية جعل ركوب الدراجات أسهل للناس، بينما يساهمون أيضا في تحقيق أهداف المدينة. ولهذا فعندما نقرر القيام بتغييرات جديدة معتمدين على النتائج، فبدلا من التركيز على المخرجات المتمثلة في 80.47 كم إضافية من ممرات الدراجات، سيكون لدينا شروطًا إضافية: يجب أن يكون ممر الدراجات ممتدا أو سهل الوصول من خلاله إلى أحياء مختلفة في جميع أنحاء بورتلاند. يجب وضع حواجز في الطرق المزدحمة. يمكننا الأن بواسطة تلك الشروط أن نعرف ما إذا كانت التغييرات التي نقوم بها جيدة أم لا، وذلك لأننا نعلم أن قراراتنا متعلقة بالسلوكيات (المخرجات) التي نرغب أن يقوم بها الناس، بالإضافة إلى النتائج التي ترغب أن تراها المدينة. في الحقيقة، هذا شيء بدأت بورتلاند في فهمه كخطوة مهمة. حيث أن بورتلاند ملتزمة على الأقل على الورق، بجعل معظم ممرات الدراجات محمية من خلال دليل تصميم ممرات الدراجات الجديد الخاص بها. سأكون سعيدة لرؤية بورتلاند ملتزمة بذلك، حيث أن المدينة تنمو ونحن نركز على مبادرات النقل الهامة، والتي تدعم المساواة، والكثافة السكانية: مثل خطط النقل التي تضع المواصلات العامة، والمارة، وراكبي الدراجات في المقام الأول. ترجمة- وبتصرف- للمقال Output Vs. Outcome لصاحبه Marisa Morby
  6. يبدو أنَّ هذه المقالة قد كُتبَت بصياغة عامة لتشمل جميع من يعملون عملًا مستقلًا وبذلك يمكنك إسقاطها على عملهم. أي كل ما عليك هو إسقاط المقالة على نوعية عملك لتحقيق التكامل وتحصيل الفائدة المرجوة.
  7. بايثون - Python - هي واحدة من أشهر لغات البرمجة وأكثرها استخدامًا، وهي لغة ممتازة ليبدأ بها المبرمجون الجدد. يمكن استخدامها في كل المجالات، بدءًا من ألعاب الفيديو ومعالجة اللغات، وحتى تحليل البيانات والتعلم الآلي. بايثون هي لغة برمجة عالية المستوى، ومُترجمة (interpreted) وتفاعلية وكائنية. وتتمتع بمقروئية عالية، إذ تستخدم كلمات إنجليزية بسيطة، على خلاف اللغات الأخرى التي تستخدم الرموز، كما أنّ قواعدها الإملائية والصياغية بسيطة، ما يجعل تعلم لغة بايثون سهلًا موازنةً بلغات برمجة أخرى. هذا المرجع هو دليلك الشامل إلى تعلم لغة بايثون، إذ يجمع دروسًا ومقالات نظرية وعملية تُسهِّل تعلمها، وكلها باللغة العربية. جدول المحتويات حرصًا على تنظيم المقالة ولتسهيل الوصول إلى القسم الذي تريده بسهولة، سنذكر هنا جدول المحتويات باختصار: تاريخ بايثون مميزات لغة بايثون أين تُستخدَم بايثون؟ لماذا بايثون؟ أريد تعلم لغة بايثون، فمن أين أبدأ؟ سلسلة تعلم البرمجة عبر بايثون 3 دروس تطبيقية وعملية تاريخ بايثون ظهرت لغة بايثون في أواخر الثمانينيات على يد غيدو فان روسوم (Guido van Rossum)، وقد عُدَّت خليفةً للغة ABC). كما استفادت من الكثير من اللغات السابقة لها، مثل Modula-3 و C و C++‎ و Algol-68 و SmallTalk، وغيرها من اللغات. نُشِر الإصدار 2.0 من لغة بايثون عام 2000، وقد قدّم العديد من الميزات الجديدة، مثل القوائم الفهمية (List Comprehensions)، ونظام كنس المُهملات (garbage collection). وفي عام 2008، ظهر الإصدار بايثون 3.0، والذي شكّل طفرة في اللغة، بيْد أنه لم يكن متوافقًا تمامًا مع الإصدارات السابقة، لذلك قرر فريق التطوير الاستمرار في دعم إصدار أخير من سلسلة بايثون ‎2.x‎، وهو بايثون 2.7 حتى عام 2020. مميزات لغة بايثون تتميز بايثون بعدة أمور عن غيرها من لغات البرمجة، منها: سهولة التعلم: يسهل تعلم لغة بايثون، إذ تتألف من عدد قليل من الكلمات المفتاحية، وتتميز بصياغة بسيطة وواضحة. المقروئية: شيفرة لغة بايثون واضحة ومنظمة وسهلة القراءة. سهلة الصيانة: شيفرة بايثون سهلة الصيانة إلى حد بعيد. مكتبة قياسية واسعة: تحتوي مكتبة بايثون القياسية على عدد كبير من الحزم المحمولة التي تتوافق مع أنظمة UNIX و Windows و macOS. الوضع التفاعلي: تدعم بايثون الوضع التفاعلي، مما يتيح إمكانية تنفيذ الشفرات مباشرةً على سطر الأوامر وتنقيح الشفرات. محمولية بايثون: يمكن تشغيل لغة بايثون على طيف واسع من المنصات والأجهزة، مع الاحتفاظ بنفس الواجهة على جميع تلك المنصات. التوسُّعية: من أهم مميزات بايثون، هو توفرها على عدد هائل من الوحدات، التي يمكنها توسيع قدرات اللغة في كل مجالات التطوير، مثل تحليل البيانات والرسوميات ثنائية وثلاثية الأبعاد، وتطوير الألعاب، والأنظمة المدمجة، والبحث العلمي، وتطوير المواقع وغيرها من المجالات. قواعد البيانات: توفر بايثون واجهات لجميع قواعد البيانات الأساسية. الرسوميات: تدعم بايثون التطبيقات الرسومية. دعم البرامج الكبيرة: بايثون مناسبة للبرامج الكبيرة والمعقدة. أين تُستخدَم بايثون؟ تُستخدم لغة بايثون في كل المجالات، فهي لغة برمجة متعددة الأغراض، ومن مجالات استخدامها: تحليل البيانات، والروبوتات، وتعلم الآلة، وتطبيقات REST، وتطوير المواقع والألعاب، والرسوم ثلاثية الأبعاد، والأتمتة وبرمجة الأنظمة المدمجة، والكثير من المجالات الأخرى التي لا يسعنا حصرها هنا. تستخدم الكثير من المواقع والشركات العملاقة لغة بايثون، ومنها Spotify و Google وAmazon، إضافة إلى Facebook التي تستخدم بايثون لمعالجة الصور. وفي كل يوم تتحول شركات جديدة إلى استخدام بايثون، مثل Instagram التي قررت مؤخرًا استخدامها وفضلتها على PHP. تُستخدم بايثون أيضًا من قبل بعض الجهات العلمية والبحثية، مثل وكالة الفضاء الأمريكية ناسا، والتي لها مستودع خاص بالمشاريع المُطورة ببايثون. لماذا بايثون؟ إنّ تحديد أفضل لغة برمجة للتعلم قد يكون مهمةً صعبةً. لو سألت عدة أشخاص عن لغة البرمجة التي يجب تعلمها، فستحصل على عدة إجابات، ويكفي أن تدخل على جوجل وتكتب أفضل لغة برمجة، وستجد آراءً مختلفةً، وجدالًا لا ينتهي حول هذا الموضوع. لا أريد أن أبدأ حرب لغات البرمجة هنا، ولكني سأحاول في هذه الفقرة تقديم بعض الحجج لتبرير لماذا أرى أنّ بايثون هي لغة المستقبل، وأن تعلم لغة بايثون مثالي للمبتدئين الذين يريدون دخول عالم البرمجة وعلوم الحاسوب. الشعبية بحسب استطلاع موقع stackoverflow، بايثون هي لغة البرمجة العامة الأسرع نموًا، كما تمكنت سنة 2019 من التفوق على جافا كأكثر لغة برمجة متعددة الأغراض استخدامًا، كما أنها رابع أكثر لغة تكنولوجيا برمجة استخدامًا وراء JavaScript و HTML/CSS و SQL، كما أنها ثاني أكثر لغة برمجة محبوبة من قبل المبرمجين. بايثون ليست لغة قوية وفعالة وحسب، كما يدل على ذلك حقيقة أنها أكثر لغة برمجة متعددة الأغراض استخدامًا، بل هي فوق ذلك محبوبة من قبل المبرمجين، وهذا مؤشر على سهولتها، ثم فوق كل ذلك جميعًا، فإنّ مستقبلها يبدو مشرقًا، لأنها الأسرع نموًا، فهل لا يزال لديك شك في أن تعلم لغة بايثون هو خيار مثالي لك؟! الرسمان البيانيان التاليان يوضحان شعبية لغة بايثون لدى المبرمجين: أكثر لغات البرمجة شعبية المصدر: https://insights.stackoverflow.com/survey/2019 أكثر لغات البرمجة المحبوبة لدى المبرمجين المصدر: https://insights.stackoverflow.com/survey/2019 بايثون مطلوبة في السوق تُستخدم لغة بايثون من قبل بعض أكبر الشركات في مجال التكنولوجيا، مثل Uber و PayPal و Google و Facebook و Instagram و Netflix و Dropbox و Reddit. إضافةً إلى هذا، تُستخدم بايثون بكثافة في مجال الذكاء الاصطناعي والتعلم الآلي وتحليل البيانات ومراقبة الأنظمة وغير ذلك. يقدر موقع stackoverflow، الدخل السنوي لمطوري بايثون بحوالي 63 ألف دولار، وهو مبلغ كبير، ويدل على أنّ هناك طلبًا كبيرًا على لغة بايثون في سوق العمل. الدعم نظرًا لشعبيتها الكبيرة، تتمتع بايثون بدعم جيد على جميع المستويات تقريبًا. وباعتبارها اللغة المفضلة للمبتدئين، فهناك قناطير من المراجع والمواد والدورات التعليمية التي تشرح مفاهيم البرمجة الأساسية، إضافة إلى صياغة اللغة وتطبيقاتها. سواء كانت هاويًا، وتحب تعلم البرمجة كهواية، أو لأجل استخدامها في مجال عملك، مثل تحليل البيانات ومعالجة اللغات الطبيعية وغير ذلك، أو كنت تريد أن تعمل كمستقل، أو تدخل سوق العمل وتحقق دخلًا من البرمجة، ففي جميع هذه الحالات، سيكون تعلم لغة بايثون خيارًا مثاليًا لك. أريد تعلم لغة بايثون، فمن أين أبدأ؟ حسنًا، إن اقتنعت بضرورة تعلم بايثون، فقد تتساءل: من أين أبدأ، وهل يوجد مرجع شافٍ وكافٍ باللغة العربية يعلمني بايثون؟ الجواب هو نعم. وفرنا في أكاديمية حسوب سلسلة مقالات عن كيفية البرمجة في بايثون 3، والتي تأخذك خطوة بخطوة لتعلم كيفية تثبيت بايثون وإعداد بيئة البرمجة، إضافة إلى المفاهيم الأساسيات للغة، وأنواع البيانات والدوال والأصناف والبرمجة الكائنية وغيرها من المفاهيم. بعد ذلك، سنَستعرض عددًا من المقالات والدروس النظرية والعملية حول بايثون. @media screen and (min-width: 650px) { .response_image { width: 33%; display: inline-block; vertical-align: top; margin-top: 0px; } .response_descrip { width: 64%; display: inline-block; margin-right: 10px; vertical-align: top; margin-top: 0px; } } سلسلة تعلم البرمجة عبر بايثون 3 سأكتب عناوين مقالات سلسلة «تعلم البرمجة عبر بايثون 3»، مع شرح مبسط لكل مقالة، وما ستتعلمه فيها هنا، وذلك لتسهيل الوصول إليها: 1. اعتبارات عملية للاختيار ما بين بايثون 2 و بايثون 3 توازن هذه المقالة بين إصدارَي بايثون 2 وبايثون 3، مع الاختلافات البرمجية الرئيسية بينهما، مثل قسمة الأعداد الصحيحة ودعم محارف اليونيكود، إضافة إلى نقاط أخرى. كما تعطي المقالة فكرة عامة عن إمكانيات كل منهما، إضافة إلى لمحة تاريخية عن الإصدارات الرئيسية الحديثة من بايثون. 2. تثبيت بايثون على مختلف أنظمة التشغيل وإعداد بيئتها البرمجية تشرح هذه المقالة خطوةً بخطوة كيفية تثبيت بايثون 3 على مختلف أنظمة التشغيل، وكيفية تثبيت بيئة برمجة عبر سطر الأوامر. وكذلك متطلبات تثبيت بايثون، إضافة إلى إنشاء برنامج "مرحبا بالعالم!" الشهير للتحقق من أنَّ بيئة العمل التي أعدَدناها تعمل عملًا صحيحًا. 3. كيف تكتب أول برنامج لك ستتعلم في هذه المقالة كيفية كتابة البرنامج الشهير "مرحبا بالعالم!" في بايثون 3، وهو أحد التقاليد الأساسية في مجال البرمجة، ويشكل أول برنامج بسيط وكامل للمبتدئين، وكذلك يُعدُّ اختبارًا لأنظمة وبيئات البرمجة، كما يعطي البرنامج فكرة عن الصياغة الأساسية للغات البرمجة. 4. كيفية استخدام سطر أوامر بايثون التفاعلي تتناول هذه المقالة كيفية العمل بسطر الأوامر التفاعلي لبايثون، وكيفية الاستفادة منها أثناء كتابة الشيفرة لتسريع تنفيذ الأوامر، وتجربة أو اختبار التعليمات البرمجية دون الحاجة إلى إنشاء وكتابة أي شيفرة برمجية، والوصول إلى جميع دوال بايثون المُضمّنة، وتاريخ الأوامر، والإكمال التلقائي. 5. كيفية كتابة التعليقات تشرح هذه المقالة كيفية كتابة التعليقات في بايثون 3، وهي عبارات تكتب في الشيفرات البرمجية وليست جزءًا منها، وتُستخدم لتسهيل قراءة الشيفرة وفهمها ومعرفة وظيفة كل جزء من أجزائها، لأنها توفر معلومات وشروحات حول ما يفعله كل جزء من البرنامج. تشرح المقالة كيفية صياغة التعليقات، بما فيها التعليقات الكتلية والسطرية، وكيفية تعليق أجزاء من الشفرة. 6. فهم أنواع البيانات تشرح هذه المقالة أهم أنواع البيانات الأصلية في لغة بايثون. وتساعد على التعرف على الخيارات المتاحة للمبرمجين في بايثون، هذه المقالة لا تشمل كل أنواع البيانات، ولكنها تتناول أهمها وأكثرها استخداما، وهي الأعداد والسلاسل النصية والقواميس والصفوف والقيم المنطقية. 7. مدخل إلى التعامل مع السلاسل النصية تستعرض هذه المقالة كيفية إنشاء السلاسل النصية، وهي مجموعة من المحارف (أي الأحرف والأرقام والرموز) التي إما أن تكون قيمة ثابتة أو قيمة لمتغير. تشرح المقالة كيفية طباعة السلاسل النصية، وجمعها مع بعضها وتكرارها، وآلية تخزين السلاسل النصية في متغيرات. 8. كيفية تنسيق النصوص هذه المقالة تتمة للمقالة السابقة، وتشرح كيفية التعامل مع السلاسل النصية في بايثون، وكيفية عرض النص الناتج بتنسيقٍ صحيح، كما تشرح بعض المفاهيم المرتبطة بالسلاسل النصية في بايثون، مثل مفهوم تهريب المحارف، والسلاسل النصية الخام وغيرهما. 9. مقدمة إلى دوال التعامل مع السلاسل النصية هذه المقالة امتداد للمَقالتين السابقتين، وتشرح مختلف الدوال التي نستطيع استخدامها للتعامل مع السلاسل النصية في بايثون 3، ومن تلك الدوال، نذكر دوال تصغير الحروف أو تكبيرها، والتأكد من تحقيقها لخاصية معينة، وغير ذلك. 10. آلية فهرسة السلاسل النصية وطريقة تقسيمها تشرح هذه المقالة آليات فهرسة السلاسل النصية في بايثون 3، وكيفية الوصول إلى السلاسل النصية عبر الفهارس، وكيفية تقسيمها إلى مجموعات من المحارف، كما تغطي طرائق إحصاء المحارف، وتحديد مواضعها داخل السلسلة النصية. 11. كيفية تحويل أنواع البيانات تشرح هذه المقالة كيفية تحويل أنواع البيانات من نوع إلى آخر في بايثون 3، مع التركيز على تحويل الأعداد والسلاسل النصية والصفوف واللوائح إلى نوع آخر، بالإضافة إلى تقديم بعض الأمثلة التوضيحية تبيّن آليات تحويل تلك الأنواع. 12. كيفية استخدام المتغيرات تغطي هذه المقالة أحد أهم المفاهيم في لغة بايثون، وهو مفهوم المتغيرات، إذا تشرح أساسيات المتغيرات، وكيفية استخدامها بالشكل الصحيح في شفرات وبرامج بايثون 3، وقواعد تسميتها، وإعادة تعيينها، والتعيين المتعدد، وتشرح الفرق بين المتغيرات العامة والخاصة. 13. كيفية استخدام آلية تنسيق السلاسل النصية تشرح هذه المقالة أشهر الاستخدامات لآلية تنسيق السلاسل النصية في بايثون 3، وهي آلية تسمح لك باستبدال المتغيرات وتنسيق القيم. مما يمنحك القدرة على تجميع العناصر مع بعضها عبر إدخالها في مواضع معينة. كما ستساعدك على جعل شيفرتك وبرنامجك أسهل قراءةً واستخدامًا، إضافة إلى توضيح كيفية إضافة الحواشي. 14. كيفية إجراء العمليات الحسابية تشرح هذه المقالة كيفية إجراء العمليات الحسابية في بايثون 3، وتساعدك على تنفيذ العمليات الرياضية بفعالية في البرمجة، وتشمل تلك العمليات، عمليات الجمع والطرح، وكذلك الضرب والقسمة، والأسّ والقسمة التحتية (floor division) وغيرها من العمليات. 15. الدوال الرياضية المضمّنة تستعرض هذه المقالة بعض أشهر الدوال العددية المُضمّنة التي يمكن استخدامها مع أنواع البيانات العددية في بايثون 3، وتشمل المقالة الدوال العددية التالية: abs()‎ و divmod()‎ و pow()‎ و round()‎ و sum()‎. 16. فهم العمليات المنطقية تشرح هذه المقالة العمليات المنطقية في بايثون 3 والمفاهيم المرتبطة بها، بما في ذلك عمليات المقارنة المنطقية، والعوامل المنطقية، وجداول الحقيقة (truth tables). إضافة إلى كيفية استخدام تلك العمليات المنطقية في الشفرات للتحكم في مسار البرنامج. 17. مدخل إلى القوائم تشرح هذه المقالة أحد أنواع البيانات الأساسية في بايثون 3، وهي القوائم، وتشرح توابعها وكيفية استخدامها، وبعض المفاهيم المرتبطة بها، مثل الفهرسة، وتعديل العناصر، واقتطاع القوائم، وإزالة العناصر من القائمة، وبناء القوائم من قوائم أخرى. 18. كيفية استخدام توابع القوائم هذه المقالة تتمة للمقالة السابقة، وتشرح التوابع المُضمنة التي يمكن استخدامها مع القوائم. وكَيفية إضافة عناصر إلى القائمة، وكيفية إزالة عناصر منها، وكيفية توسيع القوائم، وكيفية ترتيب عناصرها، وغير ذلك من التوابع المفيدة لمعالجة القوائم. 19. فهم كيفية استعمال List Comprehensions هذه المقالة تتمة للمقالتين السابقتين، وتشرح كيفية استعمال نوع خاص من القوائم، وهي القوائم الفهمية (List Comprehensions) في بايثون 3، وتشرح ماهيتها، وبعض استخداماتها، مثل استخدامها في التعابير الشرطية، أو مع الحلقات التكرارية. 20. فهم نوع البيانات Tuples (الصفوف) تشرح هذه المقالة أحد أنواع البيانات الأساسية في بايثون 3، وهي الصفوف (Tuples)، وهي إحدى أنواع البيانات المشابهة للقوائم، لكن مع بعض الاختلافات، كما تشرح المفاهيم المرتبطة بها، مثل الفهرسة، والدوال المستخدمة للتعامل معها وغير ذلك. 21. فهم القواميس تشرح هذه المقالة القواميس في بايثون 3، وهي إحدى أنواع البيانات المُضمّنة، وتتألف من أزواج مفتاح قيمة (key-value)، هذه الأزواج مفيدة لتخزين البيانات في بايثون، كما تشرح المقالة كيفية الوصول إلى عناصر القواميس، وكيفية تعديلها، وإزالة العناصر منها. 22. كيفية استيراد الوحدات تشرح هذه المقالة إحدى التقنيات البرمجية الأساسية في بايثون 3، وهي استيراد الوحدات في بايثون 3، وهي ملفات برمجية مكتوبة بلغة بايثون. كما تلقي المقالةُ نظرة على كيفية البحث عن الوحدات، وكيفية تثبيتها، وإعادة تسميتها (aliasing)، ومختلف الصياغات المرتبطة بها. 23. كيفية كتابة الوحدات هذه المقالة تتمة للمقالة السابقة، وتشرح كيفية كتابة الوحدات في بايثون 3، وكيفية واستيرادها لأجل استخدامها في ملفات البرمجة الأخرى، إضافة إلى كيفية الوصول إلى الوحدات من مجلدات أخرى، وكيفية إضافة الوحدات إلى مسار بايثون (python path). 24. كيفية كتابة التعليمات الشرطية تشرح هذه المقالة إحدى الآليات الأساسية للتحكم في مسار البرنامج في بايثون 3، وهي العبارات الشرطية، تشرح المقالة كيفية كتابة العبارات الشرطية، وتوضح العبارتين ‎if‎ و ‎else‎، كما تلقي نظرة على صياغة العبارات الشرطية المتشعبة، وتعطي بعض الأمثلة على استخداماتها. 25. كيفية إنشاء حلقات تكرار while هذه المقالة تتمة للمقالة السابقة، وتشرح آلية أخرى من آليات التحكم في سير البرامج في بايثون 3، وهي حلقات تكرار while، تشرح المقالة كيفية إنشائها، كما تعطي بعض الأمثلة التوضيحية عن كيفية استخدامها في برامج وشفرات بايثون 3. 26. كيفية إنشاء حلقات تكرار for تشرح هذه المقالة كيفية إنشاء حلقات تكرار for في بايثون 3، وهي آلية لتنفيذ تعليمة برمجية معينة على العناصر المكوِّنة لكائن مُتسلسل، مثل القوائم والصفوف والقواميس، تشرح المقالة كيفية استخدام حلقات تكرار for مع الدالة range()‎، واستخدامها مع أنواع البيانات المتسلسلة، إضافة إلى حلقات for المتشعبة. 27. كيفية استخدام تعليمات break و continue و pass عند التعامل مع حلقات التكرار تشرح هذه المقالة كيفية استخدام بعض التعابير الخاصة في بايثون 3، وهي break و continue و pass، هذه التعابير تُستخدم للتعامل مع حلقات التكرار for و while، وتساعد على التحكم في تلك الحلقات، وإيقافها أو تمريرها، مع إعطاء أمثلة توضيحية عنها. 28. كيفية تعريف الدوال تشرح هذه المقالة أحد أهم مفاهيم لغة بايثون، وهو مفهوم الدوال، وتشرح المقالة كيفية تعريف الدوال، وكيفية استخدامها في البرامج والشفرات. وبعض المفاهيم المرتبطة بها، مثل المعاملات، والوسائط، والوسائط المسماة، والقيم الافتراضية للوسائط، وغير ذلك. 29. كيفية استخدام ‎*args و ‎**kwargs هذه المقالة تتمة للمَقالة السابقة، وفيها ستتعلم كيفية تمرير عدد متغير من الوسائط إلى دالة معينة، وذلك باستخدام الصياغتين الخاصتين ‎*args‎ و ‎**kwargs‎، كما توضح المقالة كيفية ترتيب الوسائط المختلطة وكيفية تمريرها والتعامل معها. 30. كيفية إنشاء الأصناف وتعريف الكائنات تتناول هذه المقالة مفهومي الأصناف والكائنات في بايثون 3، وهما مفهومان مرتبطان بالبرمجة الكائنية. تشرح المقالة كيفية إنشاء الأصناف والكائنات، وكيفية تهيئة الخاصيات باستخدام الباني (constructor method)، والعمل على أكثر من كائن من نفس الصنف. 31. فهم متغيرات الأصناف والنسخ هذه المقالة تتمة للمقالة السابقة، وتشرح نوعين خاصين من المتغيرات في بايثون 3، وهما متغيرات الصنف (class variables)، ومتغيرات النسخة (instance variables)، وكيفية استخدامهما في البرمجة الكائنية في بايثون، وكيفية العمل مع كليهما في نفس الوقت. 32. وراثة الأصناف تستعرض هذه المقالة بعض الجوانب الرئيسية لمفهوم الوراثة في بايثون، بما في ذلك كيفية إنشاء الأصناف الأصلية (parent classes) والأصناف الفرعية (child classes)، وكيفية إعادة تعريف (override) التوابع والخاصيات، وكيفية استخدام التابع ‎super()‎، وكيفية الاستفادة من الوراثة المتعددة (multiple inheritance). 33. كيفية تطبيق التعددية الشكلية (Polymorphism) على الأصناف تشرح هذه المقالة مفهومًا آخر من مفاهيم البرمجة الكائنية في بايثون 3، وهو مفهوم التعددية الشكلية (Polymorphism)، وكيفية تطبيقه على الأصناف في بايثون 3، إضافة إلى شرح لكيفية التعامل مع توابعها، وكذلك التعددية الشكلية في الدوال. 34. كيف تستخدم منقح بايثون تشرح هذه المقالة كيفية تنقيح شفرة بايثون 3، إذ توضح كيفية استخدام المنقح (debugger) في بايثون، وتشرح بعض المفاهيم المستخدمة في التنقيح، مثل مفهوم نقاط الفصل، كما توضح المقالة كيفية تضمين المنقح في الشفرة، وتعديل مسار عمل البرنامج، وجدول أوامر المنقح pdb. 35. كيفية تنقيح شيفرات بايثون من سطر الأوامر التفاعلي هذه المقالة تتمة للمقالة السابقة، وتشرح كيفية تنقيح بايثون من سطر الأوامر التفاعلي، كما توضح كيفية استخدام الوحدة code، وهي إحدى الأدوات المفيدة التي يمكن استخدامها لمحاكاة المترجم (interpreter) التفاعلي. توفر هذه الوحدة أيضًا فرصة لتجربة الشفرة التي تكتبها. 36. كيف تستخدم التسجيل Logging تشرح هذه المقالة كيفية استخدام وحدة التسجيل Logging في بايثون 3، وسبب استخدامها، وطباعة رسائل التنقيح في وحدة التحكم، ومستويات التسجيل. تسمح لك وحدة التسجيل بإعداد كل من التسجيلات التشخيصية التي تسجل الأحداث المقترنة بعمليات التطبيق، بالإضافة إلى تسجيلات التدقيق التي تسجل الأحداث الخاصة بحركات المستخدم بهدف تحليلها. وحدة التسجيل هذه مختصة في حفظ السجلات في ملفات. 37. كيفية ترحيل شفرة بايثون 2 إلى بايثون 3 سترشدك هذه المقالة إلى أفضل آليات وممارسات ترحيل الشفرات البرمجية من بايثون 2 إلى بايثون 3، كما تساعدك على أن تقرر ما إذا كان عليك جعل الشفرة البرمجية متوافقة مع كلا الإصدارين أم لا. إضافة إلى جرد سريع لأهم الاختلافات بين الإصدارين، ثم تختم بفقرة عن التكامل المستمر. دروس تطبيقية وعملية تحتوي الأكاديمية الكثير من المقالات التي ستساعدك على تعلم لغة بايثون، وتشمل تلك المقالات مواضيع متنوعة، وتناسب مستويات متفاوتة. وقد جمعناها لك لتسهيل الوصول إليها، ولتكون لك مرجعًا تستعين أثناء رحلتك في تعلم بايثون. 1. ثلاثة أخطاء عليك تفاديها عند تعلم البرمجة بلغة بايثون تجد في هذه المقالة قائمة بثلاثة أخطاء ينبغي تفاديها أثناء تعلم لغة بايثون، لكي يحاول مبرمجو بايثون الجدد تفاديها وعدم الوقوع فيها، فهذه الأخطاء يمكن أن تؤدي إلى حدوث مشاكل كبيرة قد تأخذ من وقتك ساعات كثيرة. 2. الدليل السريع إلى لغة البرمجة بايثون Python 3 تتناول هذه المقالة بعض المواضيع الأساسية في بايثون، مثل التعليقات، وأنواع البيانات، والمتغيرات والتراكيب، وجمل التحكم والدوال والوحدات والأصناف. 3. كيفية التعامل مع الملفات النصية في بايثون 3 تشرح هذه المقالة باختصار بعض الصيغ والتنسيقات التي تستطيع بايثون التعامل معها. كما تستعرض لمحة عن بعض أنواع الملفات، ثم كيفية فتح وقراءة الملفات والكتابة فيها في بايثون 3. ويُفترض أن تُصبح قادرًا بعد نهاية هذا الدرس على التعامل مع أيّة ملفات نصية في بايثون. 4. أهم 8 مكتبات بلغة البايثون تستخدم في المشاريع الصغيرة تستعرض هذه المقالة بعض أهم مكتبات بايثون، والتي يستخدمها مبرمجو بايثون كثيرًا أثناء تطوير مشاريعهم، هذه المكتبات متنوعة، بعضها متخصص في قواعد البيانات، وأخرى في تطوير المواقع وسطر الأوامر وتحويل الملفات، والتعامل مع متغيرات البيئة، وغير ذلك. 5. كيف تستخدم الإطار المصغر Bottle لتطوير تطبيقات Python للويب تشرح هذه المقالة طريقة ضبط واستعمال إطار العمل المصغّر Bottle لإنشاء تطبيقات ويب بسيطة باستعمال لغة بايثون، كما تتضمن أمثلة توضيحية، وستتعلم فيها إنشاء أول تطبيق باستخدام Bottle. 6. كيف تنشئ تطبيق تويتر باستخدام بايثون هذه المقالة هي مرجع عملي وتطبيقي للغة بايثون، وتتضمن الخطوات اللازمة لإنشاء تطبيق تويتر، وكيفية كتابة سكربت بايثون عبر استخدام مكتبة Tweepy للاستفادة من التطبيق، ونشر التغريدات من خلاله. 7. سلسلة python 101 ستجد في هذه السّلسلة المؤلفة من 12 مقالة ما تحتاج إليه كي تتعلم لغة بايثون وأساسياتها، والتعامل مع المتغيرات، وأنواع البيانات، مثل القوائم والسلاسل النصية والقواميس والصفوف، والتعامل مع العبارات الشرطية، وحلقات التكرار، والدوال والمُزخرِفات والملفات والبرمجة الكائنية والوحدات والحزم. خاتمة تُضاف مزيد من المقالات والدروس في الأكاديمية حول بايثون باستمرار، لذلك تابع مستجدات الأكاديمية، وإن أشكل عليك شيء ما فيمكنك أن تسأل عنه في قسم الأسئلة والأجوبة الخاص بالأكاديمية. إن كنت مهتما بتعلم لغات برمجة أخرى، فيمكنك زيارة قسم البرمجة في الأكاديمية، ولا تنس أيضًا زيارة موسوعة حسوب، التي تضم توثيقات الكثير من لغات البرمجة، بما في ذلك توثيق بايثون. وفّقك الله تعالى.
  8. من السهل التفكير في أن العمل الخاص هو ذلك الشيء الصعب والمعقد والذي يتطلب إما مهارات تحتاج لسنين لثقلها أو أننا ببساطة لا نمتلكها. و لكن العمل الخاص مثله مثل واقع الحياة، فأنت تتحدث إلى الناس وتتواصل معهم، وتكوّن علاقات، وتعيش في تلك الدائرة من الأخذ والعطاء. وفقط كما في الحياة الواقعية، إذا تواريت ولم تكن مميزا، فستضيع فرصة التواصل مع الآخرين، فكلامك يشبه كلام الآخرين، وينطبق الأمر علينا بشكل أكبر الآن حيث أن الكثير من أعمالنا الخاصة صارت تتم عبر الإنترنت. لن تحرز الكثير من التقدم إذا كنت تشبه الآخرين لقد كنت طفلا غريب الأطوار، في الواقع أنا أيضا شخص بالغ غريب الأطوار، و لقد أعتدت أن أفكر في غرابة أطواري كشيء سيء يميزني، و كنت قلقلا من أن ذلك قد جعلني الشخص الغريب الذي أنا عليه الأن، فلم تكن لدي مشكلة كطفل في التحدث إلى الناس، و لكن كانت لدي مشكلة في التعامل مع الأطفال الآخرين، وقضيت فترة طويلة من عام 1992 مرتديا زي قطة(1)، كانت تُدعى "بوسي" لمرات لا تحصى، وقمت بتأليف كتاب التعاويذ الخاص بي لأنني كنت مقتنعا من أنني سأصير ساحرًأ حقيقيًّا يومًا ما. و رغم أني شخص بالغ، و بخاصة شخص بالغ يدير عمله الخاص، فأنا أجد أن غرابة أطواري كانت ذات فائدة كبيرة لي. فهذا ما يجعلني أنا، وهذا ما يجعلني مبدعًا، وفي سوق مليء بالكامل بكتّاب موهوبين وخبراء تواصل آخرين ، فمهاراتي وحدها لم تجلب لي زبائن. بدلًا من ذلك، فالشفافية - وكوني أنا- هي ما تميزني فعلا في التعامل مع الزبائن، وهذا السبب ما جعل غرابة الأطوار شيء مهم جدًا، فأنا لم تكن لتتم ملاحظتي لو أنني فقط أصبحت عادي. إذا أردت أن يلاحظك الناس، فعليك أن تكون جديرا بالملاحظة ما الذي تفعله و الذي يجعلك مختلفًا عن باقي الناس؟ بالنسبة لي، فقد تركت وظيفتي في الشركة، لكي يتسنى لي السفر حول العالم، و لكي أبدأ عملي الخاص خلال رحلتي، يبدو هذا مختلفا تماما. واحدة من أفضل مهاراتي الاجتماعية هي القدرة على معرفة شخصًا ما بعمق في 5 دقائق أو أقل، و القدرة على فهم دوافع الناس، و كذا معرفة ما إذا كان هناك شيء آخر. وربما لم تلحظ ذلك، و لكن كتابتي تتمحور دائما حول تنمية الذكاء العاطفي. وهذا جزء ثالث من شخصيتي يميزني. فقط أضف صوت شخصي حقيقي إليها - يقصد كتاباته- وستحصل بذلك على وصفة للنجاح. كيف تصير مميزًا بين الحشود اطلب حتى 13 مرة لا أعلم ما إذا كنت قد لاحظت ذلك عند حديثك مع شخص لا تعرفه جيدا، و لكنك لم تجد عنده شيء من الكياسة في حديثه بواسطة الرسائل النصية. صديق جديد لا يفهم فكرة الكياسة: هل ترغب بالذهاب إلى مطعم نودلز "رامين" الليلة؟ أنت: سمعت أن هناك مطعم إيطالي جديد يقدم أكلات شهية. صديق جديد لا يفهم فكرة الكياسة: إذا سنظل هناك للساعة 7 في مطعم رامين، رامين طوال الوقت! نفس الشيء ينطبق على الإنترنت، أنا لا أقول لك أنك تحتاج إلى استخدام أساليب فظة و علامات تعجب، و لكن ما أقوله هو إذا كنت ستستخدم صوتك، فعليك أن تستخدم كامل صوتك. كون أفكار، أدلي بتصريحات، و التي تقودني إلى... كن صاحب رأي أتعلم ما الذي يثير جنوني؟ حقيقة أن أمريكا منكسرة جدًا، و جاهلة، و خائفة من أن نسمح لشخص عنصري ضد المرأة، يرغب في أن يكون ديكتاتورًا مثل دونالد ترامب اللعين لكي يحصل على فرصة كمرشح للرئاسة. هذا ... هو رأيي. أنا أعرف انك تعلم ما هي الآراء، و لكن كتابتها تجعلك تشعر بالرهبة، وقد تجعلك عدائيًّا، تجعلك تشعر كما لو كنا نطلب أن نتشاجر. وأحيانا من الممكن أن تفعل ذلك، ولكن يجب أن تكون معركة تستحق العناء. إن امتلاك رأي يجبر الناس على اختيار وتكوين علاقات صداقة حميمة مع الأشخاص الذين يفكرون بنفس العقلية. هل أنت معي أم معهم؟ امتلاكك لرأي أيضا يجعلك إنسان - والإنسان يرغب في العمل مع بشر آخرين. اتخذ موقفًا حينما تكون بالخارج، تتعرف على أفكار وتكًّون آراء، فلما لا تتخذ شيئًا ما لتدافع عنه؟ هل تعبت من رؤية الناس ذوي لون البشرة المختلف يُعاملون بلا مساواة لأنهم ولدوا بلون بشرة أغمق قليلا؟ قل شيئا. سعيد لأننا نعمل ببطء ولكن بثبات نحو إيجاد مصادر بديلة للطاقة؟ اصرخ من أجل ذلك. إن أروع و أبشع شيء أيضا حول الحياة على الإنترنت هي قدرتك على أن توضح من الذي تدعمه، وما الذي تدافع عنه، ووجود حشد من الناس حولك ممن يتفقون مع أفكارك. ومن الواضح أن تلك القدرة يُمكن أن تُستخدم في الخير أو في الشر، و لكن في كل الأحوال فهي ناجحة. كُن أنت حقًا الآن، ربما ترى أن تلك هي وجهة نظري، فعليك أن تكون نفسك حقا على الإنترنت مثلما أنت كذلك في الواقع. وعليك أن تجد طريقة لتوصيل ذلك من خلال المحتوى الذي تروج له، و الصوت الذي تستخدمه، والكلمات التي تختارها، و كيفية تفاعلك مع الناس. تذكر، إنك تحتاج إلى جميع الأنواع لكي تُنشِئ عالما، ونوعية شخصيتك قد تكون هي ما يحتاجه شخصا آخر. تغلب على الحساسية حسنا، حسنا، أنا متأكد تماما أنك الآن تفكر، " نعم تبدو تلك كأفكار متناسقة، وأنا أفهم إنه من المهم أن أكون نفسي، ولكن ماذا لو..."، وعندها فقط تفكر في كل القصص المرعبة و السيناريوهات، والاعتراضات، عوضا عن أن تأخذ فقط بتلك النصيحة، و لذلك دعنا نتكلم عن الاعتراضات الأساسية: ماذا لو لم يحبوا الناس شخصيتي؟ بعض الناس لن يحبوا شخصيتك، ولكن على الأرجح، فإن شخصيتك من الممكن ألا يتقبلها بعض الأشخاص، وهذا طبيعي، فبدلا من التركيز على القلق من الناس الذين قد لا تعجبهم شخصيتك، ركز على الناس الذين يشاركونك نفس اهتماماتك، ومهاراتك، وشخصيتك، وتواصل معهم. و يمكنك القيام بذلك من خلال الإنضمام إلى مجموعات الفيس بوك، والمشاركة في الدردشات على المنتديات والمدونات، أو ابحث عن مجتمعات منفصلة على الإنترنت تشاركك نفس وجهات النظر. ماذا لو لم يحب الناس كلامي؟ حسنا، كما قلت من قبل، بعض الناس لن يعجبوا بما قد تقوله. فأنا لا أحب أحذية "أج" Ugg. فهي تبدو سخيفة في رأيي، ولا أرغب في أن أرتديها. بعض الناس قد يعتقدوا أنهم مضطربين، ولا يستطيعون الانتظار حتى ينزلقوا في طيبتهم الغامضة، فهولاء مسموح لهم بإبداء رأيهم أيضا. أنا لا أقلق بخصوص إسعاد الجميع، لأن ذلك ببساطة غير ممكن، امضي المزيد من الوقت في التأكد من أن ما تقوله هو فعلا ما تفكر به، و رتب تلك الأفكار لتلائم الذوق الخاص بجمهورك، " جوانا ويب" في " كوبي هاكرز" لديها بعض وجهات نظر عظيمة بخصوص هذا الشأن. ماذا لو لم أكن مهتمًا بشكل كافي بأخذ موقف؟ إن الفرص التي تستهين بها كثيرا هي الفرص التي تثير اهتمامك، و بما انك تعلم ذلك ، فذلك بالطبع لا يبدو رائعًا لك. أنا أتذكر جدتي عندما كانت تحكي لي قصصا حول نشأتها في صندوق عربة على السكة الحديدية ( قصة حقيقية)، و على الرغم من أن تلك القصص لم تبدو مثيرة للإهتمام بالنسبة لها، لكنها كانت جذابة بالنسبة لي، لإني لم تكن لدي ادنى فكرة عن كيفية ذلك. تذكر أن قصتك تعدُّ جديدة لكل شخص غريب تقابله، لذلك لا تفترض أنهم لن يجدوها مثيرة للإهتمام، لأنك قلتها مليون مرة. إذن من أنت؟ إن معرفة ذلك كله يأخذ وقتا، و سوف يتغير كلما تعلمت أكثر، واكتسبت خبرات اكثر، ونضجت، وهذا جيد، فالتغيير هو الشيء الوحيد الثابت في الحياة، و إذا لم تقم بعمل استنتاجات جديدة بناء على المعلومات المتزايدة التي تكتسبها، فأنت إذن تعيش بطريقة خاطئة. خذ وقتك لمعرفة نفسك، ثم شاركها مع العالم. ترجمة -وبتصرف- للمقال4ways to make your business stand out and get noticed لصاحبه Marisa Morby 1عمتي الرائعة العظيمة، التي صادف انها تحب الخياطة، قامت بعمل ذيل قطة وقامت بخياطته لزوج من السراويل البيضاء، وعندما شعرت بأنني قطة، قمت بلبس السراويل واخذت ازحف حول المنزل وانا أموء و ازعج كلبي، كلانسي، هل ترى ذلك؟ غريب جدا!
  9. حين تفكر في المشكلات المحتملة التي يمكن أن تتسبب فيها الإضافات لموقع ووردبريس الخاص بك، ستفكر على الأرجح في الإضافات رديئة البرمجة التي تؤدي إلى مشكلات في الأداء وثغرات أمنية، أليس كذلك؟ أو ربما تكون قد قرأت شيئًا مؤخرًا عن الإضافات المزيفة وأصبحت قلقًا بشأن موثوقية إضافاتك والمشكلات الأمنية التي قد تتسبب فيها. لكن هناك مسألة أخرى تتعلق بالإضافات عليك أن تدركها حين تضيف إضافات جديدة لموقعك، أو حتى حين تقوم بتحديث الإضافات الموجودة: تعارض الإضافات من الرائع أن هناك عشرات الآلاف من الإضافات التي صممها مطورون مختلفون، كلها صنعت لتلبية حاجاتٍ مختلفة. لكن لا شيء يضمن أن ما صنعه أحد المطورين لن يتعارض مع شيءٍ آخر على موقعك. تنشأ هذه التعارضات في العادة بسبب: تعارض بين إضافتين تعارض بين القالب الخاص بك وبين إضافة جديدة أو إضافة محدثّة تعارض بين إضافة ونسخة إصدار ووردبريس الحالية للموقع تظهر أعراض تعارض الإضافات عادةً في إحدى صورتين: إما أن يبدأ موقعك في التصرف بغرابة، تحديدًا حين تتوقف الإضافة عن العمل بالطريقة التي يجب أن تعمل بها – أو حين تطل "شاشة الموت البيضاء" برأسها البغيض بعد آخر تحديثٍ أو أحدث تثبيتٍ لإضافةٍ جديدةٍ. إذا ما حدث ذلك لأحد مواقع الووردبريس الخاصة بك، عليك أن تعرف كيف تشخِّص المشكلة وتتصرف بسرعة لعلاج الموقف. يقدم لك الدليل التالي الخطوات التي تحتاجها لتحديد تعارض إضافات ووردبريس ومن ثم تقوم بإصلاح موقعك. كما يتضمن الدليل أيضًا بعض النصائح لتجنب تكرار ذلك التعارض في المستقبل. كيف تشخص مشكلة تعارض إضافات ووردبريس وتحلَّها تقدم ووردبريس ومستودعات الإضافات الأخرى تفاصيل ومواصفات تقنية وتقييمات عملاء كثيرة جدًا لكل إضافة أو قالب لسبب وجيه. ذلك لأنهم يتوقعون أن يطَلع العملاء على هذه المعلومات لاتخاذ قرار واعٍ بشأن اختيار الإضافات المناسبة لمواقعهم. لهذا الأمر أهمية خاصة بالنسبة لأولئك المستخدمين الذين لا يستطيعون فحص البرامج، ويريدون أن يعرفوا إن كانت هناك مشكلات محتملة عليهم الانتباه لها. انتبه جيدًا للتفاصيل المهمة عند مراجعة إضافة جديدة أو قالب جديد في ووردبريس في المثال السابق، يمكنك أن ترى أن كل صفحة إضافة تعطي المستخدم فرصةً كافيةً للتأكد من أن المطور يتابع تحديث الإضافة مع تحديثات ووردبريس. كما يتمكن المستخدم أيضًا أن يرى ما يقوله الآخرون عن الإضافة في قسم "التقييمات والمراجعات"، بالإضافة إلى التعرف على نوعية المشكلات التي واجهتهم في قسم "الدعم". في هذا القسم ستكتشف مشكلات تعارض الإضافات المعروفة قبل أن تحدث على موقعك. لكن لعل تلك المشكلات الناتجة عن تعارض الإضافات لم يُعلن عنها. ماذا تفعل في تلك الحالة إذا ما توقفت إضافةٌ عن العمل أو ظهرت رسالة خطأ على موقعك أو ظهرت لك شاشة الموت البيضاء؟ إليك السيناريوهات الثلاثة التي ستجد نفسك في أحدها على الأرجح، وما الذي عليك فعله حيالها: السيناريو الأول: الموقع يعمل لكن الإضافة لا تعمل إذا كانت إحدى الإضافات على موقعك لا تعمل مطلقًا، أو لا تعمل بكفاءةٍ، لكنك لا تزال قادرًا على الوصول إلى ووردبريس وإلى موقعك، ابحث عن تحديثٍ للإضافة. لعل شيئًا ما متعلقًا ب CSS أو JavaScript فيها تسبب في المشكلة فجأةً. (سنفصِّل في ذلك لاحقًا) اتّبع المسار المعتاد لتحديث الإضافات، ثم تفقّد الموقع. إذا كانت المشكلة قد حُلّت، فهذا يعني أن المطوّر انتبه للتعارض أو المشكلة العامة وحلّها. السيناريو الثاني: بعد تحديث إضافةٍ أو تثبيت إضافةٍ جديدةٍ حدثت مشكلة ما إذا كنت قد ثبتّ للتوّ إضافةٍ جديدةٍ لموقعك أو حدَّثت إضافةً موجودة بالفعل، فمن السهل تحديد سبب المشكلة. لا داعي للقيام بعملية استكشاف لمعرفة السبب. كلُّ ما عليك هو تعطيل الإضافة على موقعك. هل يسير كل شيءٍ على ما يرام؟ إذا كان الأمر كذلك، عليك الإبلاغ عن المشكلة لمطوّر الإضافة لكي يتمكن من إصلاحها. في أثناء انتظارك لذلك، ابحث عن بديلٍ عن تلك الإضافة أو ابحث في مدونة الووردبريس المفضلة لديك لتجد اقتراحاتٍ منتقاةٍ لإضافةٍ بديلةٍ. السيناريو الثالث: بعد التحديثات التلقائية أو الدفعية حدثت الكارثة لا تسئ فهم كلامي: أنا لا أقول أن التحديثات التلقائية للنواة أو القوالب أو الإضافات في ووردبريس أمرٌ سيءٌ. في الواقع، أعتقد أنها حركةٌ ذكيةٌ، بما أن الانسيابية والأتمتة أصبحت من أهم سبل النجاح. ومع ذلك، إذا اخترت التحديث التلقائي على ووردبريس، فكن على علمٍ بأن حلَّ مشكلات تعارض الإضافات قد يحتاج إلى المزيد من الجهد. هناك مسارين مختلفين عليك اتباع أحدهما، وفقًا لكيفية ظهور الخطأ على الموقع: حين يصيب القالب أو الإضافة عطلٌ ما، أو تظهر رسالة خطأ موقعك لا يزال يعمل، (الحمد لله)، وتستطيع الدخول إلى ووردبريس. هذا جيدٌ. إليك ما عليك فعله إذا ما أصاب موقعك عطلٌ كهذا: 1- تفقد أحدث نسخة احتياطية لديك. إذا كانت قد خُزّنت قبل التحديث مباشرة، استعدها، ثم اذهب مباشرة إلى الخطوة 5. 2-إذا لم يكن لديك نسخة احتياطية، إذهب إلى ووردبريس وقم بتعطيل كل الإضافات. تحت قائمة "إضافات"، قم بتعطيل الإضافات كلها عن طريق خيار "التعطيل" الجماعي 3- تفقد موقعك لترى ما إذا كانت المشكلة قد حُلَّت. في تلك الحالة، اعلم أن المشكلة في الإضافة. 4- انتقل من القالب الحالي إلى قالب ووردبريس المبدئي. لستَ مضطرًا للبحث عن قالب ووردبريس المبدئي. اذهب إلى قائمة القوالب (Themes)> أضف قالب جديد (Add New)– ستجده على رأس القائمة أحيانًا يحدث عطل في تحديث القالب إذا ما أضاف المطور وظيفة جديدة تتطابق مع وظيفة في إضافة أنت تستخدمها بالفعل. لذلك، من المهم أن تتأكد من ذلك. تفقّد موقعك مرة أخرى للتأكد من انتهاء المشكلة. إذا وجدت المشكلة مستمرة، اعلم أن هناك عطب ما في القالب، وعليك التواصل مع المطور بشأنه وإيجاد بديل عن ذلك القالب حتى تجد حلًّا للمشكلة. 5- إذا حُلَّت المشكلة عن طريق تبديل القالب، عليك اختبار كل إضافة على حدة. 6- ابدأ بإعادة تفعيل الإضافة الأساسية إذا كان لديك واحدة. هذا في حالة ما إذا كان موقعك متخصص في التجارة الإلكترونية أو الفندقة أو العضويات …إلخ. تأكد من أن موقعك يعمل بلا مشاكل بعد تفعيل تلك الإضافة. 7- فعّل الإضافة التي تظن أنها تُسبّ المشكلة. إذا ظهرت رسالة خطا، فهذا يؤكد أنها بالفعل سبب المشكلة. إذا لم يحدث ذلك، جرب إضافة أخرى. 8- عليك فعل ذلك مع كلِّ إضافةٍ حتى تحدّد أيّها يسبب التعارض. عليك تعطيل كلّ إضافةٍ بعد اختبارها، قبل تفعيل الإضافة التالية. سيقلّل هذا من عدد المتغيرات التي عليك أخذها في الاعتبار في أثناء البحث عن سبب التعارض. 9- حين تعثر على سبب التعارض، عطّله، وبلغ عن المشكلة للمطور في المستودعات أو لفريق الدعم إذا كانت إضافة مدفوعة. أسفل مشكلات الدعم المدونة مسبقًا، لديك فرصة للإبلاغ عن تعارض الإضافات للمطوّر 10- يرجع القرار إليك، ما إذا كنت ستختار العودة للنسخة السابقة من الإضافة، (وأنا لا أنصح بذلك حيث أنك ستواجه نفس المشكلة حتمًا مرة أخرى) أو استبدالها بإضافة أخرى، أو الاستغناء عن تلك الخاصية تمامًا. حين ترى شاشة الموت البيضاء شاشة الموت البيضاء مخيفة لكل مستخدمي ووردبريس. رغم ذلك، إذا كان سببها تحديث دُفَعِي (batch update) قمت به مؤخرًا، سيكون الحل سهلًا: إذا رأيت شاشة الموت البيضاء، لن تكون قادرًا على الوصول إلى ووردبريس، مما يعني أنك لن تستطيع الدخول إلى الإضافات. في تلك الحالة، اذهب لوحة التحكم واستخدم بروتوكول نقل الملفات SFTP للوصول إلى ملفات موقعك. عطل كل الإضافات. يمكنك فعل ذلك عن طريق تغيير اسم مجلد الإضافات إلى اسم آخر. إذا كنت تفضل حذف جميع الملفات (مما سيعطّلها أيضًا)، احتفظ بنسخة احتياطية منهم في مكان آخر أولًا. فور حذفها من المجلد، تستطيع إعادة رفع الإضافات المخزنّة إلى نفس المجلد. لن يعيد ذلك تفعيلها، لكن سيضعها فقط على الخادم الخاص بك. بتعطيل الإضافات، من المفترض أن تكون قادرًا على الدخول إلى ووردبريس مرة أخرى واتباع التعليمات المذكورة أعلاه، كما لو كان لديك صلاحية الوصول منذ البداية. إذا كنت لا تزال ترى شاشة الموت البيضاء بعد إفراغ الذاكرة المؤقتة، فالقالب هو سبب المشكلة. لتعطيل القالب، افعل نفس ما فعلته مع الإضافات: غير اسم مجلد القوالب أو احذف ملف القالب وأعد رفعه إلى المجلد. هكذا، ستستطيع العودة إلى ووردبريس وتبديل القالب. كيف تتجنب تعارضات الإضافات في المستقبل كما رأيت، ليس من الصعب حل مشكلة تعارض الإضافات. فهي لا تطلب سوى القليل من الصبر والوقت لتحديد سبب المشكلة. من السهل إجراء الإصلاح فور الانتهاء من تشخيص سبب العطل. ومع ذلك، فإن الوقت ثمين. رغم سهولة حلّ تلك النوعية من المشكلات، لماذا تعرّض نفسك لها إذا كنت تستطيع تجنُّبها؟ يمكنك الاستفادة من هذا الوقت لإنشاء مواقع أخرى، أو تطوير عمليات أعمالك. إذا أردت تجنب هذا العناء، إليك بعض النصائح التي ستساعدك (وتساعد عملاءك) على تجنب تعارض إضافات ووردبريس في المستقبل: يجب ألا تثبت إضافات ووردبريس دون دراسة وافية. كلما قل عدد الإضافات التي تستخدمها، قل احتمال حدوث المشكلات. اختر إضافاتك بعناية. اقرأ مراجعات الإضافات وتذاكر الدعم وآراء من استخدمها بعناية قبل تثبيت الإضافة الجديدة وتفعيلها. إذا لم يكن لديك الكثير من الوقت، استفد من ترشيحات طرف ثالث موثوق، أو مدوّنة، لكي تختار اختيارًا صحيحًا. حدّث الإضافات أولًا بأول. حدّث الإضافات واحدةً تلو الأخرى، حتى تسهّل على نفسك تحديد سبب المشكلة. (حتى وإن لم تكن تلك الطريقة على الأكثر كفاءة في تحديث الإضافات) إذا كنت تستخدم أداة تحديث أوتوماتيكية، تأكد من أنها تحتفظ بنسخة احتياطية وتستخدم تكنولوجيا ترقية آمنة مثل Automate. تفقّد مجموعة إضافاتك كل عدة أشهر. إذا وجدت أن أيًا منها خسر دعم وتحديثات المطور لأكثر من ستة أشهر، ابحث عن واحدة جديدة. احتفظ بنسخة احتياطية من كل شيء قبل أن تجري أي تحديثات أو تثبّت أي إضافاتٍ جديدةٍ استخدم بيئة اختبار محلية لاستنساخ موقعك الحي هكذا تستطيع اختبار الإضافات الجديدة والتحديثات لاكتشاف أي تعارضات قبل وضعها على موقعك راجع إرشادات معايير الترميز الخاصة بـكوديكس ووردبريس. حتى إذا كنت لا تطور إضافات أو قوالب لمواقعك، لا يزال من المفيد معرفة ما الذي يجعل ممارسات الترميز جيدة إذا كنت تريد فحص الإضافات قبل استخدامها. استثمر بعض الوقت في التعرف على الخطافات. غالبًا ما تحدث تعارضات الإضافات والقوالب عندما لا يعطي المطوّرون الخطافات التي يطورونها اسماءً فريدة. باستخدام الإعداد الافتراضي، ينشأ خطر استخدام خطاف تستخدمه إضافة أخرى أو قالب آخر، الأمر الذي يؤدي بدوره إلى إرباك الخادم وإنشاء خطأ التعارض. ارفع مهاراتك في HTML و PHP و JavaScript. إذا شعرت بالإحباط من عدد الإضافات المتعارضة، يمكنك برمجة هذه الوظيفة في موقعك وتجنب هذه المشكلة في المستقبل. الختام بالطبع هناك طريقة أخرى أكثر ذكاء لتفعيل واستخدام الإضافات في موقع الووردبريس الخاص بك. بدلاً من اخذ إضافة تحسين محركات البحث من هذا المطور، أو إضافة تحسين السرعة من ذاك المطور، أو إضافة تحليلات من مطور آخر، لما لا تأخذها كلها من مصدر واحد موثوق؟ مترجم وبتصرف عن مقال WordPress Plugin Conflicts: How to Check for Them and What to Do بقلم Suzanne Scacca
  10. لا توجد متعة تضاهي متعة تسليم موقع ووردبريس جديد للعميل (إلا متعة استلام الأجر بالطبع). إنها لحظة عظيمة. لقد بذلت جهدًا كبيرًا لتصميم الموقع، لكي يبدو جميلًا ويعمل بكفاءة ويلبي احتياجات العميل. رغم أن تركيزك عادة ما ينصب على التصميم والبرمجة، عليك ألا تنسَ أن تعمل على جعل الأمور في الجهة الخلفية للموقع تسير بسلاسة. فإن لم تكن الصيانة سهلة، ستجد نفسك تتلقى العديد من الأسئلة عن كيفية تنفيذ أمرٍ ما. وهذا، في النهاية، سيتسبب ذلك في الضيق لك وللعميل. لذلك، قبل أن تسلم الموقع للعميل، عليك أن تتوخى تبسيط الأمر لمن سيتولى إدارة الموقع قدر المستطاع. إليك بعض الأشياء التي يجب مراعاتها، والتي لن تكلفك الكثير من الوقت، لكنها ستجنبك الكثير من العناء في المستقبل. قيِّم مدى مهارة العميل في التعامل مع التكنولوجيا لا يتعامل الجميع مع التكنولوجيا بنفس القدر من السهولة. فما قد يجده البعض سهلاً قد يجده آخرون شديد الصعوبة. لذلك، من المهم أن تتعرف على مدى دراية العميل بالتكنولوجيا. ليس عليه بالطبع أن يكون خبيرًا في إصلاح اللوحات الإلكترونية، لكنه يجب أن يكون ملمًا ببعض الأساسيات حتى يستخدم ووردبريس. على سبيل المثال: كيفية رفع ملف من الجهاز القدرة على استخدام محرر الصور إذا كان سيضيف أو يبدل صورًا على الموقع الودجات (Widgets) وشيفرات مختصرة ومزايا أخرى خاصة بووردبريس الفرق بين الصفحة والمنشور وأنواع المنشورات المخصصة بالطبع، هذا فقط الحد الأدنى. بالإضافة إلى ذلك، تعتمد المهارات التي يجب أن يمتلكها العميل على مدى تعقيد الموقع الذي صممته له. الفكرة العامة هي أن العميل يجب أن يكون على دراية بمهارات الحاسوب الأساسية. أفضل طريقة لتقييم مدى إلمام الشخص بمبادئ التكنولوجيا هي أن تسأله. لكنك أيضًا ستحصل على صورة أوضح عن طريق المصطلحات التي يستخدمها ومدى مهارته في إرسال الملفات وما إلى ذلك. بعبارة أخرى، إذا كان دائمًا يرسل لك رسائل البريد الإلكتروني دون مرفقات، فهذه علامة توضح مدى مهارته في التعامل مع الحاسوب. فهذا يظهر ضعف مهاراته. حين تدرك مستوى مهارة العميل، تصبح قادرًا على إيجاد حلول لجعل إدارة المحتوى أسهل بالنسبة له. على سبيل المثال، إذا كان شخص ما لا يجيد التعامل مع الحاسوب، لا تجبره على تذكر أشياء مثل أسماء أصنافCSS أو إعدادات معقدة. صمم الجهة الخلفية للموقع لكي تناسب الشخص الذي سيديرها. أخف المزايا الخلفية التي لا يحتاجها المستخدم إذا كنت ستسلم الموقع لمالكه، يجب أن تتأكد أن العميل لديه صلاحية الوصول لحساب مدير الموقع. ثم تأكد من أنه لن يستخدمه إلا حين يحتاجه حقًا. وإلا، فعليك إنشاء حساب محرر، واقتراح استخدامه بشكل أساسي في الدخول إلى لوحة تحكم ووردبريس. من المنطقي أنه كلما زادت الصلاحيات الممنوحة لشخص ما زادت فرص حدوث أخطاء. حتى إذا كان العميل يتحلى بالمسؤولية ويأخذ مسألة صيانة المواقع بجدية، أحيانًا تحدث أخطاء. ضع في اعتبارك احتمال تعرض بيانات الدخول الخاصة بالحساب للسرقة. من الأفضل أن يكون هذا الحساب محدود الصلاحيات، وليس له صلاحية الوصول الكاملة إلى كل الإعدادات. حين يتعلق الأمر بالمنظمات، يتطلب الأمر أن يكون أكثر من شخص لديه صلاحية الوصول إلى لوحة التحكم، لذا يجب أن تلقي نظرة على الأدوار والصلاحيات في ووردبريس. يمكنك استخدامها لإعطاء المستخدم صلاحية الوصول إلى ما يحتاجه وحسب. أحيانًا تكون الأدوار المدمجة التي تأتي مع ووردبريس غير ملائمة لاحتياجاتك. في تلك الحالة، يمكنك الاستعانة بإضافة مثل Adminimize التي تمكنك من إخفاء بعض العناصر من لوحة التحكم. كما تستطيع أيضًا إنشاء أدوار مستخدم مخصصة باستخدام User Role Editor. قد يتطلب هذا القليل من الجهد الإضافي، لكنه يستحق. خصص كلما استطعت ذلك تتباين أنواع المحتوى من صفحة إلى أخرى، ومن منشور إلى آخر، تباينًا كبيرًا. للتحايل على حدود محرر ووردبريس، عادة ما يضع المصممون خططًا معقدة للتأكد من أن المحتوى يبدو تمامًا كما يريدون. لكن قبل أن تفعل أي شيء، فكر في عملية إجراء تعديلات مستقبلية من وجهة نظر المستخدم. إذا كانت معقدة أكثر من اللازم، أو يسهل معها إعطاب الموقع، فهي ليست الحل الأمثل. هنا تجعل مزايا مثل الحقول المخصصة الأمر أسهل بكثير. حين تستخدم جيدًا، يمكنها أن تزيل الحاجة إلى التخمين من إدارة المحتوى. وهكذا، بدلًا من الاكتفاء بالدعاء ألا يفسد العميل عنصر DIV المصمم بعناية حين يجري تعديلات، يمكننا أن ننشئ حقولًا لتلك البيانات، تطلب منه ملء الفراغات. يمكننا وضع جميع الحاويات والأنماط التي نحتاجها في القالب، مستبعدين بذلك احتمال أن يقوم العميل بإفساد التنسيق دون قصد. إن الإضافات مثل Advanced Custom Fields و Pods و Carbon Fields كلها اختيارات جيدة جدًا لإنشاء الحقول المخصصة. ولكن التعامل معها متعلق قليلًا بمنحنى تعلم. فالحقول لا يتم إنشاؤها في الجهة الخلفية وحسب، بل تحتاج أيضًا إلى رمز ما لتظهر في الجهة الأمامية من الموقع. من الأفضل البداية بحقل أو اثنين فقط. حين تتقن تلك العملية، سيكون العمل معه إجراء بسيط متكرر. قدِّم التدريب حتى أفضل المواقع تصميمًا لن يكون سلسًا مئة في المئة فيما يخص إدارة المحتوى. لذلك، من المفيد تقديم بعض التدريب للعملاء. لا يشترط أن يكون التدريب معقدًا أو طويلًا. في الواقع، الموقع الصغير لن يتطلب أكثر من ساعة تدريب، وربما بضعة رسائل بريد إلكترونية لمتابعة العمل. هنا تكون معرفتك بمدى مهارة العميل في التعامل مع التكنولوجيا مفيدة للغاية. معرفتك بنقاط قوته ونقاط ضعفه يعطيك فكرة عن الأشياء التي يجب عليك أن تؤكد عليها في التدريب. على سبيل المثال، إذا كنت تعلم أن إدراج الصور في الموقع سيكون صعبًا عليه، يمكنك تخصيص وقتًا أطول لهذا الأمر. أما عن المواضيع التي يجب إدراجها في التدريب، من المهم أن يكون العميل قادرًا على القيام بالمهام الأساسية بسهولة. فإذا كان لدى العميل خبرة في التعامل مع ووردبريس، ربما تستطيع تجاهل الأساسيات والتركيز أكثر على المحتوى الأكثر خصوصية. لضمان نجاح التدريب، يجب الانتباه لما يلي: التعرف على قدرات الشخص الذي تعمل معه وما الذي يتقنه التقدم في التدريب بمعدل مريح للعميل التحلي بالصبر والتعاطف حين تجيب على الأسئلة لا تتوقع أن يصل العميل إلى مرحلة الإتقان التام أفضل شيء في تدريب العملاء هو أنك بعد أن تقوم به بضع مرات، ستكوِّن فكرةً أفضل عن كيفية تصميم المواقع لكي تكون سهلة الإدارة والصيانة. سهولة الاستخدام ليست للواجهة الأمامية وحسب عادةً ما يقوم المصممون والمطورون بأدوار عدة خلال المراحل المختلفة من المشروع. علينا التركيز على التأكد من أن تصميماتنا جذابة، وعملية، وسهلة الاستخدام. وبالإضافة إلى ذلك، من الضروري أن ننشئ مزايا سهلة على غير المتخصصين. يجب مراعاة سهولة الاستخدام في هذا الأمر، تمامًا كما نراعيها في أثناء تصميم الواجهة الأمامية. ورغم أن ووردبريس سهل نسبيًا في استخدامه، قد يصبح أكثر تعقيدًا إذا ما تم إنشاء موقعٍ يتناول أنواعًا مختلفةً من المحتوى والوظائف. من أجل ذلك، يتعين علينا، كجزءٍ من عملنا، أن نضع العملاء في اعتبارنا أثناء تطوير عمليات صيانة الموقع. ترجمة -وبتصرف- للمقال Tips for Empowering Non-Technical Users to Maintain a WordPress Website لصاحبه Eric Karkovack
  11. كوني مديرة انتاج في مشروع ناشئ يعني ذلك أنني أقضي وقتا في القراءة من أجل القيام بعملي، فأنا اقرأ كثيرا ومعظم قراءاتي تتمحور حول تقنيات الحديث مع العملاء، واستراتيجيات الإنتاج، وتعلم نمذجة البيانات. ولكني اليوم قرأت مقالًا بعنوان: تخلى عن مكعبات الليجوالخاصة بك: وتوصيات أخرى لتوسيع الشركات الناشئة، وتعتمد المقالة على خبرات "مولي جراهام"، والتي عملت في كلا من شركة جوجل، وفيسبوك، وكويب. وعلى الرغم من التركيز المحدد - للمقال - على الشركات الناشئة والتي تنمو بشكل سريع- ومعرفة ذلك أمر جيد بالنسبة لي حيث أننا نعمل على توسيع موقع جاتسبي (Gatsby) - فقد أثارت عدة نقاط جيدة والتي أعلم انني قد شعرت بها في الماضي. عموما تناقش المقالة كيف يمكن للشركات الناشئة أن تتوسع بفاعلية، وأنه يجب على كل فرد داخل فريق العمل أن يفكر في "كيفية التخلي عن مكعبات الليجوالخاصة به". فالعمل داخل شركة يشبه كثيرا أن تكون طفلا يلعب بمكعبات الليجوالخاصة به. فحينما يكون هناك القليلين منك، يكون هناك الكثير منهم لإستخدامهم - يُقصد مكعبات الليجو- فيمكنك بذلك بناء أي شيء. فبمجرد أن يبدأ ظهور المزيد من الناس، يجب حينها مشاركة مكعبات الليجو- ومن الممكن أن يكون هذا مخيفا حقا. فنحن نعرف كيف يكون الأمر حينما تمتلكها كلها - يُقصد مكعبات الليجو- ونحن نعلم أيضا انه من أجل أن نكون أفضل، فإنه يجب أن تُوزع مكعبات الليجو. وهذا يخلق الكثير من الأسئلة والقلق، ماذا لوأن ذلك الشخص يبني الشيء الخاطئ؟ لقد عملت بجد من أجل ذلك العمل والأن هل علي أن أتخلى عنه؟ ماذا لو كانوا أفضل مني بالعمل؟ التغيير صعب واحدة من أهم الأشياء التي خرجت بها من المقالة، هو إعادة التأكيد على أن التغيير يمكن أن يكون صعبا. فالعمل في شركة صغيرة شيء مثير وممتع، وأيضا يتغير من يوم لأخر... وبالطبع من أسبوع لأسبوع. التغيير صعب، على الأقل بالنسبة إلي، لأنه يحدث بسرعة، فأنا لست متأكدة أبدًا مئة بالمئة ما إذا كنت أسلك الاتجاه الصحيح في العمل، فهناك أناس كافيين يمكن أن نحصل عليهم للقيام بالمطلوب، ولكن فقط قلة من الناس من يمكنهم القيام بكل شيء. هذا يعني أننا كلنا نحصل على الفرصة لنجرب أنفسنا في الكثير من المسئوليات المختلفة، فأنا أجد ذلك ممتعًا حقًا، ولكن لا أريد أيضا أن تغيب عن بالي أهدافي المهنية الرئيسية. التغيير جيد مع كل تغيير قمنا به، وكل عضو جديد بالفريق قمنا بتعيينه، فقد كان شيئًا عظيمًا أن نحصل على مساعدة إضافية على ما كنا نعمل عليه. ومن الجيد أيضا رؤية كيف تتحسن الأفكار بشكل كبير مع كل شخص جديد نضيفه. ولكن إضافة أناس جدد يبدأ بالتأكيد في إثارة الحديث الداخلي مع النفس المتعلق بالقلق. تقول جراهام أن ذلك يحدث حينما يصل عدد الأشخاص من 30 إلى 40 شخصا، ولكنه لا يأخذ في عين الاعتبار الشركات التي تُدار عن بُعد فقط. فعند العمل في شركة مُوزعة بالكامل عن بعد، أعتقد أنه حينها يبدأ القلق مبكرا قليلا، وذلك لأنك لا ترى كل الناس وجها لوجه يوميا. هذا يعني أنك يجب أن تكون واضحا جدا وأن تقوم بالعمل المتعلق بتحديد من هوالمسئول عن ماذا وإرشاده بواسطة أسئلة محددة. وظيفتك لا تحدد هويتك إن أفضل هدية كانت التأكيد على أنك لست وظيفتك، فتخليك عن مكعبات الليجو الخاصة بك كل بضعة أشهر لهي طريقة عظيمة لتذكير نفسك ببعض المبادئ الجوهرية: • وظيفتك لا تحدد قيمتك كشخص. • وظيفتك لا تحدد هويتك. • يمكنك أن تتعلم أي شيء إذا سخرت عقلك لتعلمه. تخلى عن مكعبات الليجوالخاصة بك وكُن سعيدا أعتقد أنه بتخليك عن مكعبات الليجو الخاصة بك، فأنت تتعلم كيفية إظهار الثقة، والتواضع، والتقدير لنفسك وللآخرين، فهي تعلمك في النهاية أن فكرة التخلي، هي طريق لمزيد من الفرص والإبداع، بدلا من الحزن على خسارة السيطرة المزعومة. لقراءة المزيد حول الفِرَق العظيمة، والتنمية الشخصية، فأنا أيضًا أقترح بشدة قراءة كتاب شيفرة الثقافة لمؤلفه دانيال كويل، والذي يعطي نظرة عميقة حول بعضا من أكثر فرق العالم نجاحا وكيفية أداءهم لوظائفهم. ترجمة -وبتصرف- للمقال How it feels to give away your LEGO's لصاحبه Marisa Morby
  12. مفارقة البحث الحياة مليئة بالأشياء المجهولة، ولهذا السبب كنت مندهشة دومًا من طريقة تفكير الشركات فيما يتعلق بالبحث كشيء ثانوي، فعلى الرغم من كل التأكيدات والضمانات التي زعموا رغبتهم فيها، فقد كان هناك فهم نادر لمفهوم " التحدث مباشرة مع الناس يمكن في الواقع أن يوضح ويحدد الأفكار". وبدلًا من ذلك كان يوجد دوما منطق أمني خاطئ حول الإحصائيات. فالبيانات الكمية عُدَّت ذات قيمة أكثر من الكيفية، وقد أدى عدم التوازن ذلك إلى جعل فرق العمل تقلل من قيمة أكثر الأشياء أهمية بخصوص العملاء، وهي حقيقة أنهم بشر ولديهم الكثير من التساؤلات حول " لماذا، كيف، عندما يتخذون قراراتهم". في أخر شركة عملت بها، علمت أنا وزميلة عمل أننا نستطيع أن نقوم بأداء أفضل، علمنا أن البحث أداة قيمة. وقبل أن نبدأ العمل سويا، قامت بتقديم عمليات وتعريفات جديدة للبحث، فنحن الإثنان معا كنا قادرين على إنشاء قوة دفع كافية، حيث قمنا بتأسيس برنامج بحثي كامل وقمنا بتكوين فريق. جلب الأبحاث إلى فريقك الداخلي أولًا، علينا أن نعرف ما الذي جهلناه، ولذا فقد بدأنا من البداية ببحث داخلي، كأي دراسة بحثية، وتأكدنا من أن يكون البحث مركزًا، حيث كان هدفنا الرئيسي هوفهم ما الذي يتوافق حاليا مع عملية البحث وما الذي لا يتوافق. وقد طرحنا على الفريق بعض الأسئلة، من ضمنها الآتي: كيف يمكنك حاليًّا استكمال بحث؟ ما الذي يتوافق مع تلك العملية؟ ما هو الشيء المحبط في تلك العملية؟ كيف ستبدوالنتيجة المثالية؟ ولقد تلقينا الكثير من الأجوبة ووجدنا أن المشاكل الرئيسية تكمن في: غالبا ما كانت عناصر العمل من البحث غامضة للغاية بالنسبة للفريق لكي يستخدموها. لم تُوضح قيمة البحث بشكل واضح إلى أصحاب المصلحة. كان هناك خوف من أن البحث قد يأخذ وقتا طويلا وأن يكون مكلفا للغاية. ولقد منحنا هذا الفرصة لنحل المشاكل الثلاثة الرئيسية التي ذكرها الناس. قمنا بمجهودات كبيرة لإشراك الفريق في عملية البحث منذ البداية. عموما، ساعد ذلك أصحاب المصلحة على الشعور بمزيد من الإندماج والاستثمار في جميع الدراسات البحثية. قمنا بعمل الكثير من التغييرات من ضمنها: قمنا بتحديث واختصار العملية البحثية في خطوات واضحة لكي نطلب مشروعًا بحثيًّا. حيث قدمنا الوقت والتكلفة المُقدرة مقدما قبل بداية المشروع البحثي. لماذا نجح الأمر: لأنه قام بوضع توقعات واقعية وعالج الخوف من الغموض الذي يكتنف المشاريع البحثية. قمنا بتوفير "مستويات" مختلفة للبحث، وهذا يعني أنه قد أصبح في استطاعتنا إجراء دراسات سهلة وسريعة فعلا، أوتقديم دراسات أكثر عمقا وتفصيلا. لماذا نجح الأمر: أصبح على مديري الإنتاج أن يختاروا " مستوى" الدراسة البحثية التي يريدونها، مما ساعدهم على تحمل المسئولية وشعورهم بالملكية المشتركة للبحث. قمنا بإشراك وتدريب مديرين الإنتاج، والمهندسين، والمصممين داخل دراسات بحثية نشطة. لماذا نجح الأمر: ساعد ذلك جميع أفراد الفريق على الشعور بأنهم جزء من العملية البحثية، ولذلك فقد كانوا أكثر إيجابية وحماسا للوصول إلى النتائج داخليا وخارجيا. عملنا مباشرة مع مديرين الإنتاج لإستعراض نتائج البحث والعمل على الحلول معا. لماذا نجح الأمر: لقد جعل الأمر أصحاب المصلحة الداخليين يشعرون بأنهم مساهمين ومسموعي الرأي. أنشأنا قوالب تلخيصية وعروض تقديمية والتي رتبنا فيها بنود العمل المقترحة بشكل دقيق جدا. غالبا ما كنا نسلط الضوء فقط على تغيير واحد أواثنين بناء على البحث، ولكن كنا ندرج جميع الإقتراحات في فهرس خاص. لماذا نجح الأمر: شعر أصحاب المصلحة بامتلاكهم اتجاهًا واضحًا، وخطوات عمل، واستقلال في تقرير الخطوات التالية. في السابق كنا نتحدث فقط بخصوص فكرة البحث مع أعضاء الفريق، الأن نحن نقوم بالبحث. وقد وجدنا في الواقع أن ذلك - الحديث فقط - يعيقنا: ولذلك فقط غيرنا الطريقة التي نتواصل بها مع الفريق على نطاق أوسع: فأنشأنا مجموعة بحثية مركزة لوضع الأهداف، وتحديد أولويات العمل، وتنمية البرنامج البحثي. لماذا نجح الأمر: لقد كنا قادرين على وضع وقياس الأهداف الخاصة بالبرنامج البحثي. تلقينا أيضا باستمرار ردود فعل من المهندسين، والمدراء التنفيذيين، ومديري المشاريع، الذين عملنا معهم للتأكد من أننا نقدم شيء ذوقيمة. قمنا أيضا باستعراض أهمية البحث بشكل موسع في اجتماعات الشركة، من خلال عرض الدراسات البحثية السابقة، وكيف ساعدتنا في الوصول لأهداف عملائنا. لماذا نجح الأمر: لقد أوضحنا أن البحث ليس فقط مهم بالنسبة للعميل، ولكنه مهم أيضا للشركة، حيث من الممكن أن يساعدنا في الحفاظ على العملاء، وتنميتهم، وجذب عملاء جُدد. قمنا بتلخيص واستعراض نتائج البحوث المكتملة والتي لا تزال في طور التنفيذ بصفة دورية في اجتماعات الفريق. لماذا نجح الأمر: تلك التحديثات ساعدت الفريق في معرفة أن الأمور كانت تتقدم بسبب دراسات بحثية معينة. هل نجحت التغييرات؟ نعم!، فقط بعد شهرين من إرسائنا المستمر لتلك التغييرات. فقد وجدنا الناس يتحدثون عن دراسات بحثية ممكنة بصفة دورية. وارتفعت طلبات الأبحاث بشكل مهول منا، ووقعوا المزيد من العملاء على طلب إجراء بحوث مكثفة، أوإجراء بحوث خاصة بالعقود فقط. كيف تبدأ مع فريقك إذا كنت تحاول انشاء برنامج بحثي في شركتك، أوفقط تود أن تحصل على تدريبات بحثية أكثر للفريق، ابدأ بدراستك الداخلية الخاصة بك. أكتشف أي خوف، أوألم، أوارتباك يحبط الناس. عادة، عندما يكون الناس قادرين على رؤية تقدم قابل للقياس للبحث، فإن أهميته تتجلى بوضوح، ويستوعب الناس سهولة قراءة الملخصات و/ أوالنتائج، فهم راغبين كثيرا (أكثر حماسا) لدمج البحوث في عملهم الخاص. ترجمة -وبتصرف- للمقال How to create a research program,even if your company doesn't belive in research لصاحبه Marisa Morby
  13. بعد أن أخذت فكرة عامة عن لغة البرمجة بايثون وتعرف على تاريخها والفرق بين أهم إصدارين لها، الإصدار 2 و الإصدار 3 في الدرس السابق، ستتعلم في هذا الدرس كيفية تثبيت بايثون على نظام تشغيلك وإعداد البيئة البرمجية اللازمة لكتابة البرامج وتنفيذها خلال رحلتك التعليمية هذه. فهرس هذا الدرس -لسهولة الانتقال إلى نظام التشغيل الذي تريده- هو: كيفية تثبيت بايثون 3 وإعداد بيئة برمجية على أوبنتو 16.04 كيفية تثبيت بايثون 3 وإعداد بيئة برمجية على أوبنتو 18.04 كيفية تثبيت بايثون 3 وإعداد بيئة برمجية على ديبيان 8 كيفية تثبيت بايثون 3 وإعداد بيئته البرمجية على CentOS 7 كيفية تثبيت بايثون 3 وإعداد بيئته البرمجية على macOS كيفية تثبيت بايثون 3 وإعداد بيئته البرمجية على ويندوز 10 الأمور التي سنسلط الضوء عليها هي: تثبيت بايثون 3 على نظام تشغيلك ثم إعداد بيئته البرمجية. تتمثل عملية تهيئة البيئة البرمجية بإعداد بيئة وهمية تمكِّنك من إنشاء مساحة معزولة في حاسوبك مخصصة لمشاريع بايثون، مما يعني أنَّ كل مشروع تعمل عليه يملك مجموعة من الاعتماديات (dependencies) والتي لن تؤثِّر على غيرها من المشاريع. يوفِّر لنا ضبط بيئةٍ برمجيةٍ تحكمًا أكبر بمشاريع بايثون وإمكانية التعامل مع إصداراتٍ مختلفةٍ من حزم بايثون وهذا مهمٌ كثيرًا عندما تتعامل مع الحزم الخارجية. بعد تثبيت بايثون وإكمال إعداد البيئة الوهمية، سنعلمك كيفية إنشاء برنامجٍ بسيطٍ يعرض العبارة «Hello World!‎» (أهلًا بالعالم!) الشهيرة، وبهذا سنتحقق من عمل البيئة عملًا صحيحًا، وستصبح آنذاك طريقة إنشاء برامج بايثون وتنفيذها مألوفةً لديك مما يمهد الطريق لكتابة وتنفيذ مشاريع بايثون اللاحقة. اختر مما يلي الدرس الخاص بنظام تشغيل حاسوبك (حاولنا شمل أشهر أنظمة التشغيل، لينكس وويندوز وماك) وانتقل إليه لاتباع الخطوات اللازمة لتنفيذ ما سبق. كيفية تثبيت بايثون 3 وإعداد بيئة برمجية في أوبنتو 16.04 أوبنتو هي إحدى أشهر توزيعات نظام التشغيل لينكس. تأتي أنظمة لينكس غالبًا محملةً بنسخة بايثون مثبتة وجاهزة للعمل. مع ذلك، لا يكون الإصدار المُثبَّت مطابق للإصدار الذي نريده في بعض الأحيان. سيأخذ هذا الدرس بيدك لتعليمك كيفية تثبيت الإصدار 3 من بايثون على أوبنتو 16.04 مع ضبط بيئته البرمجية. سيشرح لك خطوةً بخطوة عملية تثبيت بايثون 3 على جهازك المحلي وضبط البيئة البرمجية عبر سطر الأوامر. صحيح أن هذه الخطوات مخصصة للإصدار 16.04 من أوبنتو، إلا أنه يمكن الاستفادة منها في التوزيعات الأخرى المعتمدة على ديبيان. كيفية تثبيت بايثون 3 وإعداد بيئة برمجية على أوبنتو 18.04 أوبنتو هي إحدى أشهر توزيعات نظام التشغيل لينكس والذي يحوي نسخة بايثون مثبَّتةً وجاهزةً للعمل. مع ذلك، لا يكون الإصدار المُثبَّت مطابقًا للإصدار الذي نريده في بعض الأحيان. سيرشدك هذا الدرس لكيفية تثبيت الإصدار 3 من بايثون على أوبنتو 18.04 مع ضبط بيئته البرمجية. سيشرح لك خطوةً بخطوة عملية تثبيت بايثون 3 على جهازك المحلي وضبط البيئة البرمجية عبر سطر الأوامر. صحيح أن هذه الخطوات مخصصة للإصدار 18.04 من أوبنتو، إلا أنه يمكن الاستفادة منها في التوزيعات الأخرى المعتمدة على ديبيان. كيفية تثبيت بايثون 3 وإعداد بيئة برمجية على ديبيان 8 ديبيان هي إحدى أشهر توزيعات نظام التشغيل لينكس أيضًا. تكون بايثون مثبتة في معظم أنظمة التشغيل لينكس ولكن لا يكون الإصدار المُثبَّت مطابقًا للإصدار الذي نريده في بعض الأحيان. سيرشدك هذا المقال خطوةً بخطوة لتثبيت بايثون 3 على جهازك المحلي ذي نظام التشغيل ديبيان 8 وضبط البيئة البرمجية عبر سطر الأوامر. صحيح أن هذه الخطوات مخصصة للإصدار 8 من ديبيان، إلا أنه يمكن الاستفادة منها في التوزيعات الأخرى المعتمدة على ديبيان. كيفية تثبيت بايثون 3 وإعداد بيئته البرمجية على CentOS 7 CentOS هي إحدى توزيعات نظام التشغيل لينكس أيضًا. تأتي أنظمة لينكس غالبًا محملةً بنسخة بايثون مثبتة وجاهزة للعمل. مع ذلك، لا يكون الإصدار المثبت مطابق للإصدار الذي نريده. سيأخذ هذا الدرس بيدك لتعليمك كيفية تثبيت الإصدار 3 من بايثون على CentOS 7 مع ضبط بيئته البرمجية واختبارها عبر سطر الأوامر. كيفية تثبيت بايثون 3 وإعداد بيئته البرمجية على macOS إن كان نظام تشغيلك هو macOS، فهذا الدرس هو لك. ستتلعم فيه خطوةً بخطوة كيفية تثبيت بايثون 3 على macOS، وتثبيت بيئتها البرمجية عبر سطر الأوامر، ولا تقلق إن لم يكن لديك أدنى فكرة عن استعمال سطر الأوامر. بدايةً، يشرح المقال كيفية تثبيت Xcode -هي بيئة تطوير متكاملة (IDE)- ثم تثبيت وإعداد Homebrew استعدادًا لتثبيت بايثون 3. ينتقل بعدها إلى إعداد البيئة الوهمية وإنشاء وتنفيذ برنامج بسيط (أشرنا إليه في آنفًا). كيفية تثبيت بايثون 3 وإعداد بيئته البرمجية على ويندوز 10 إن كنت من مستخدمي نظام التشغيل الشهير ويندوز، فقد أتيت إلى الدرس الصحيح. سيُرشِدُك هذا الدرس خطوةً بخطوة إلى تثبيت بايثون 3 في ويندوز 10، وتهيئة بيئته البرمجية عبر سطر الأوامر. الخطوة الأولى لإنجاز ذلك هي فتح وإعداد PowerShell -برنامج من ميكروسوفت يوفر واجهة سطر الأوامر- ثم تثبيت مدير الحزم Chocolatey وذلك من أجل تثبيت بايثون 3. يُعرِّج بعدها على إعداد البيئة الوهمية وإنشاء برنامج بسيط وتنفيذه (أشرنا إليه في آنفًا). اقرأ أيضًا الدرس التالي: الدرس السابق: اعتبارات عملية للاختيار ما بين بايثون 2 و بايثون 3 المرجع الشامل إلى تعلم لغة بايثون
  14. ProxySQL هو عبارة عن خادم وكيل (proxy server) مفتوح المصدر لخادم قاعدة البيانات MySQL، أي أنه يعمل كوسيط بين خادم قاعدة البيانات MySQL والتطبيقات التي تتعامل مع قاعدة البيانات هذه. حيث يقوم الخادم الوكيل بتحسين الأداء، وذلك عن طريق توزيع النقل بين خوادم قاعدة البيانات مشتركة. كما يحسّن من عملية توفّر قاعدة البيانات، وذلك من خلال الانتقال الآلي إلى خادم أخر متاح عند فشل أحد خوادم قاعدة البيانات. سيتم في هذه المقالة شرح طريقة تنصيب الخادم الوكيل ProxySQL كموازن تحميل (load balancer، توزيع الحمل) لعدة خوادم بيانات MySQL مع تمكين الانتقال الآلي إلى الخوادم المتاحة عند فشل أحدها. حيث سيتم استخدام مجموعة التناسخ المتماثل Group Replication ذات العُقد الرئيسية المتعددة multi-primary مكونة من ثلاث خوادم MySQL، غير أنه يمكن تطبيق الشرح الوارد في هذه المقالة على أي عدد من الخوادم. المتطلبات قبل البدء يجب أن يتوفر ما يلي: خادم أوبنتو 16.04 يتضمن على حساب مستخدم عادي (غير جزر) بصلاحيات sudo وجدار حماية. ثلاث خوادم بيانات MySQL مهيّأة للعمل كمجموعة تناسخ متماثل، والتي يمكن إعدادها اعتمادًا على هذه المقالة، الفقرة multi-primary. الخطوة الأولى- تنصيب ProxySQL قام مطورو ProxySQL بتوفير حزم أوبنتو رسمية لكل إصدارات ProxySQL، وذلك على صفحتهم في موقع GitHub، لذا سنقوم بتحميل أخر إصدار ProxySQL من هذه الصفحة، حيث تتضمن هذه الصفحة على لائحة بجميع إصدارات ProxySQL، وكل إصدار تَمّت تسميته وفق الصيغة proxysql_version-distribution.deb، إذ version هي عبارة عن رقم إصدار حزمة ProxySQL مثل 1.4.4، و distribution هي عبارة عن توزيعة لينكس المخصصة لها هذه الحزمة مثل ubuntu16_amd64. سنقوم الآن بتحميل أخر إصدار من حزمة ProxySQL (1.4.4 هو آخر إصدار لحظة كتابة هذه المقالة) إلى المسار ‎/tmp، وذلك بتنفيذ الأوامر التالية في موجه أوامر لينكس: $ cd /tmp $ curl -OL https://github.com/sysown/proxysql/releases/download/v1.4.4/ proxysql_1.4.4-ubuntu16_amd64.deb ثم نقوم بعد انتهاء عملية التحميل، بتنصيب هذه الحزمة باستخدام أداة إدارة حزم ‎.deb البرمجية dpkg، وذلك بتنفيذ الأوامر التالية في موجه أوامر لينكس: $ sudo dpkg -i proxysql_* حيث استُخدمت الراية ‎-i للدلالة على رغبتنا بتنصيب الحزمة من ملف محدد. ثم نقوم بعد انتهاء عملية التنصيب بحذف ملف الحزمة المُحمّل لعدم الحاجة إليه بعد الآن، وذلك بتنفيذ الأمر التالي: $ rm proxysql_* نحتاج الآن لتطبيق عميل لقاعدة البيانات MySQL ليتصل مع نسخة ProxySQL المُنصّبة، ذلك لأن ProxySQL يستخدم واجهة تخاطب متوافقة مع MySQL من أجل مهام الإدارة. لذا سنستخدم موجه أوامر MySQL، والذي هو جزء من الحزمة mysql-client المتوفرة على مخازن حزم أوبنتو. لكن قبل البدء بتنصيب هذه الحزمة يجب أن نحدّث مستودع الحزم لضمان تحميل وتنصيب آخر إصدار من هذه الحزمة، وذلك بتنفيذ الأمر التالي: $ sudo apt-get update ثم نقوم بتنصيب الحزمة mysql-client، وذلك بتنفيذ الأمر التالي: $ sudo apt-get install mysql-client أصبح لدينا الآن جميع متطلبات تشغيل ProxySQL، غير أن هذه الخدمة لا تُشَّغل آليًا بعد التنصيب، لذا يتوجب علينا تشغيلها يدويًا وذلك بتنفيذ الأمر التالي: $ sudo systemctl start proxysql سيعمل ProxySQL الآن بإعداداته الافتراضية، والتي يمكن عرضها بتنفيذ الأمر التالي: $ systemctl status proxysql فنحصل على الخرج التالي في نافذة موجه الأوامر: ● proxysql.service - LSB: High Performance Advanced Proxy for MySQL Loaded: loaded (/etc/init.d/proxysql; bad; vendor preset: enabled) Active: active (running) since Thu 2017-12-21 19:19:20 UTC; 5s ago Docs: man:systemd-sysv-generator(8) Process: 12350 ExecStart=/etc/init.d/proxysql start (code=exited، status=0/SUCCESS) Tasks: 23 Memory: 30.9M CPU: 86ms CGroup: /system.slice/proxysql.service ├─12355 proxysql -c /etc/proxysql.cnf -D /var/lib/proxysql └─12356 proxysql -c /etc/proxysql.cnf -D /var/lib/proxysql حيث تدلّ العبارة active (running) على أن ProxySQL مُنصَّب وفي حالة عمل. في الخطوة التالية سنقوم بزيادة الأمان، وذلك بإعداد كلمة السر المستخدمة للدخول إلى الواجهة التخاطبية لإدارة ProxySQL. الخطوة الثانية- إعداد كلمة سر مدير ProxySQL يستخدم ProxySQL في أول مرة يتم تشغيله فيها بعد التنصيب ملف الإعدادات القادم مع الحزمة، وذلك من أجل التهيئة الابتدائية لجميع إعداداته بالقيم الافتراضية، إذ يقوم ProxySQL بعد عملية التهيئة هذه بحفظ هذه الإعدادات في قاعدة البيانات، والتي يمكن إدارتها وتعديلها عن طريق موجه أوامر MySQL. لذا يجب عند إعداد كلمة سر مدير ProxySQL الاتصال بقاعدة البيانات الخاصة بالإعدادات لتعديل الإعدادات الموافقة. لإعداد كلمة السر سنقوم في البداية بالدخول إلى الواجهة التخاطبية لإدارة ProxySQL، وذلك بتنفيذ الأمر التالي: $ mysql -u admin -p -h 127.0.0.1 -P 6032 --prompt='ProxySQLAdmin> ' ‎-u: يُستخدم هذا العلَم لتحديد اسم المستخدم الذي يريد القيام بالمهام الإدارية مثل تغيير الإعدادات، وبما أنه لم يتم بعد إضافة أي مستخدم، لذا تم استخدام اسم المستخدم الافتراضي admin. ‎-h: يُستخدم هذا العلَم لتحديد المضيف المُراد الاتصال به، وبما أننا نريد الاتصال بالواجهة التخاطبية لإدارة ProxySQL المحلي لذا استخدمنا المضيف المحلي 127.0.0.1. ‎-P: يُستخدم هذا العلَم لتحديد منفذ الاتصال بالواجهة التخاطبية لإدارة ProxySQL، حيث تَستخدم هذه الواجهة التخاطبية المنفذ 6032. ‎--prompt: وهو علَم اختياري لتغيير الموجِّه الافتراضي mysql>‎، حيث قمنا هنا بتغييره إلى ProxySQLAdmin>‎ لتوضيح أننا اتصلنا بالواجهة التخاطبية لإدارة ProxySQL، وذلك لتجنب الالتباس لاحقًا عند الاتصال أيضًا بخوادم قاعدة البيانات MySQL. عند تنفيذ الأمر السابق سيطلب منا موجه الأوامر إدخال كلمة سر الدخول إلى الواجهة التخاطبية لإدارة ProxySQL، وبما أننا لم نقم بإعدادها بعد، لذا سنُدخل كلمة السر الافتراضية admin. عند نجاح عملية الدخول إلى الواجهة التخاطبية لإدارة ProxySQL، يتغيّر موجه أوامر النظام إلى الموجه ProxySQLAdmin>‎ الخاص بالواجهة التخاطبية لإدارة ProxySQL كما يلي: ProxySQL administration console prompt Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.5.30 (ProxySQL Admin Module) Copyright (c) 2000، 2017، Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. ProxySQLAdmin> ثم نقوم بتغيير كلمة السر مدير ProxySQL، وذلك بتنفيذ الأمر التالي في موجه أوامر الواجهة التخاطبية لإدارة ProxySQL: ProxySQLAdmin> UPDATE global_variables SET variable_value='admin:password' WHERE variable_name='admin-admin_credentials'; Output Query OK، 1 row affected (0.00 sec) حيث تمّ استخدام الأمر UPDATE من أجل تغيير كلمة السر password للحساب الإداري admin الموجودة في المتغير admin-admin_credentials ضمن قاعدة البيانات global_variables. طبعًا يجب استبدال password في الأمر السابق بكلمة سر قوية قبل تنفيذه. لا تدخل عملية تغيير كلمة السر حيِّز التنفيذ مباشرة، وذلك نتيجة بنية نظام الإعدادات الخاص بالخادم ProxySQL، والذي يتكون من ثلاث طبقات منفصلة هي: طبقة الذاكرة MEMORY: وهي عبارة عن قواعد بيانات الإعدادات المُحمّلة في الذاكرة والتي يتم التفاعل معها والتعديل عليها مباشرة من خلال موجه أوامر الواجهة التخاطبية لإدارة ProxySQL. طبقة وقت التشغيل RUNTIME: يَستعمل ProxySQL هذه الطبقة لتفعيل الإعدادات المعدَّلة ودخولها حيز التنفيذ مباشرة. طبقة القرص DISK: وهي عبارة عن قاعدة بيانات محفوظة على القرص الصلب والتي يتم فيها حفظ الإعدادات، حيث تُحمَّل هذه الإعدادات في طبقة الذاكرة عند إقلاع النظام، وبالتالي تضيع أي تعديلات تم إجرائها على هذه الإعدادات في طبقة وقت التشغيل، وذلك أثناء إعادة تشغيل النظام إن لم يتم حفظها في طبقة القرص. أي أن التعديلات التي قمنا بإجرائها على كلمة السر مازالت في طبقة الذاكرة، ولتدخل حيز التنفيذ يجب نقلها إلى طبقة وقت التشغيل، وذلك بتنفيذ الأمر التالي موجه أوامر الواجهة التخاطبية لإدارة ProxySQL: ProxySQLAdmin> LOAD ADMIN VARIABLES TO RUNTIME; ثم يجب القيام بحفظها في طبقة القرص كي نحافظ عليها بشكل دائم، وذلك بتنفيذ الأمر التالي موجه أوامر الواجهة التخاطبية لإدارة ProxySQL: ProxySQLAdmin> SAVE ADMIN VARIABLES TO DISK; حيث استُخدم الأمر ADMIN من أجل التعامل مع المتغيرات المتعلقة فقط بموجه أوامر الواجهة التخاطبية لإدارة ProxySQL. هذا ويستخدم ProxySQL أوامر مشابهة للتي يستخدمها خادم MySQL، في التعامل مع الأقسام الأخرى من الإعدادات، والتي سيتم استخدامها لاحقًا في هذه المقالة. الآن وبعد أن تم تنصيب ProxySQL وإعداد كلمة سر مدير النظام، سنقوم بإعداد ثلاث عُقد MySQL ليتمكن ProxySQL من مراقبتها. الخطوة الثالثة- إعداد المراقبة في MySQL يجب أن يكون ProxySQL قادرًا على الاتصال بعُقد MySQL ليتمكن من تقدير حالتها، ولتنفيذ ذلك يجب أن يكون قادرًا على الاتصال بكل خادم عن طريق مستخدم مخصص. لذا سنقوم بإعداد المستخدم الضروري في عُقد MySQL وتنصيب وظائف SQL إضافية، والتي تسمح لخادم ProxySQL بالاستعلام عن حالة مجموعة التناسخ المتماثل. وبما أن مجموعة التناسخ المتماثل قد تم إعدادها مسبقًا، لذا يجب أن تُطبَّق الخطوات التالية على عضو وحيد من المجموعة. نفتح نافذة موجه أوامر نظام لينكس ثانية، ثم نسجل الدخول إلى الخادم الذي يحوي أحد عُقد MySQL، وذلك بتنفيذ الأمر التالي: $ ssh sammy@your_mysql_server_ip_1 ثم نحمل ملف SQL الذي يحتوي على بعض الوظائف الضرورية لدعم عمل مجموعة التناسخ المتماثل الخاصة بالخادم الوكيل ProxySQL، وذلك بتنفيذ الأمر التالي في موجه الأوامر: $ curl -OL https://gist.github.com/lefred /77ddbde301c72535381ae7af9f968322/raw /5e40b03333a3c148b78aa348fd2cd5b5dbb36e4d/addition_to_sys.sql ملاحظة: إن هذه الملف مُوفَّر من قبل مطوري ProxySQL غير أنه موجود ضمن مخزن GitHub شخصي، مما يعني أنه قد يُحذف أو يصبح قديمًا. لكنه قد يُضاف في المستقبل لمخزن ProxySQL الرسمي على شكل ملف له إصدار. ولمزيد من المعلومات حول هذا الملف يمكن قراءة المقال التالي: native ProxySQL support for MySQL group replication. يمكن رؤية محتويات هذا الملف بتنفيذ الأمر التالي: $ less addition_to_sys.sql ثم نقوم بتنفيذ الأمر التالي على الملف، حيث سيطلب منا موجه أوامر MySQL إدخال كلمة السر المستخدم الجذر root: $ mysql -u root -p < addition_to_sys.sql في حال نجاح عملية تنفيذ الأمر السابق، فإنه لن يظهر أي خرج في نافذة موجه الأوامر. وتصبح جميع عُقد MySQL قادرة على تأمين الوظائف الضرورية لتمكين قدرة ProxySQL على معرفة حالة مجموعة التناسخ المتماثل. والآن نحتاج لإنشاء مستخدم مخصص ليستخدمه ProxySQL في مراقبة سلامة نسخ البيانات. لكن علينا في البداية الدخول إلى موجه أوامر MySQL والذي سيطلب منا مرة أخرى إدخال كلمة سر المستخدم الجزر root: $ mysql -u root -p نقوم الآن بإنشاء المستخدم المخصص والذي سنسميه monitor، وذلك بتنفيذ الأمر التالي في موجه أوامر MySQL بعد استبدال كلمة السر monitorpassword بأخرى قوية: (member1)mysql> CREATE USER 'monitor'@'%' IDENTIFIED BY 'monitorpassword'; ثم نقوم بمنح هذا المستخدم صلاحية الاستعلام عن حالة خوادم MySQL، وذلك بتنفيذ الأمر: (member1)mysql> GRANT SELECT on sys.* to 'monitor'@'%'; وأخيرًا نُطبِّق التعديلات لتصبح سارية المفعول، وذلك بتنفيذ الأمر التالي: (member1)mysql> FLUSH PRIVILEGES; وبما أننا نعمل ضمن مجموعة التناسخ المتماثل، فإن إضافة مستخدم مخصص لمراقبة حالة أحد عُقد المجموعة، سيُطبَّق على جميع العُقد الأخرى في المجموعة. سيتم في الخطوة التالية تزويد ProxySQL بمعلومات المستخدم المخصص للمراقبة، ليتمكن ProxySQL من الدخول إلى عُقد MySQL. الخطوة الرابعة- إعداد المراقبة في ProxySQL سنقوم بإعداد ProxySQL ليستخدم مستخدم جديد أثناء مراقبة عُقد MySQL، وذلك عن طريق تحديث قيمة المتغيّر الموافق. وذلك بشكل مشابه لطريقة إعداد كلمة سر مدير ProxySQL في الخطوة الثانية. ننتقل إلى موجه أوامر الواجهة التخاطبية لإدارة ProxySQL، ثم نحدّث قيمة المتغير mysql-monitor_username بقيم حساب المستخدم المخصص لمراقبة عُقد MySQL، وذلك بتنفيذ الأمر: ProxySQLAdmin> UPDATE global_variables SET variable_value='monitor' WHERE variable_name='mysql-moniter_username'; ولكي يأخذ هذا التحديث حيّز التنفيذ، يجب تطبيقه على طبقة وقت التشغيل ثم حفظه في طبقة القرص، وذلك بتنفيذ الأوامر التالية في موجه أوامر الواجهة التخاطبية لإدارة ProxySQL: ProxySQLAdmin> LOAD MYSQL VARIABLES TO RUNTIME; ProxySQLAdmin> SAVE MYSQL VARIABLES TO DISK; حيث استخدمنا الأمر MYSQL بدل ADMIN عند تحديث قيمة المتغير، لأننا نتعامل هنا مع متغيرات إعداد MySQL. وهكذا تم إعداد ProxySQL بحساب المستخدم المراقب، وسيتم في الخطوة التالية إضافة عُقد MySQL إلى ProxySQL. الخطوة الخامسة- إضافة عُقد MySQL إلى ProxySQL لجعل ProxySQL مدركاً لعُقد MySQL، يجب إخباره بطريقة توزُّع هذه العُقد في المجموعات المضيفة، والتي هي عبارة عن مجموعة محددة من العُقد. وتعرَّف كل مجموعة مضيفة برقم موجب مثل 1 أو 2. حيث تُستخدم المجموعات المضيفة من أجل توجيه استعلامات SQL المختلفة إلى مجموعات مختلفة من المضيفات عند قيام ProxySQL بتوجيه الاستعلامات. يتم في إعدادات التناسخ الثابتة تعيين المجموعات المضيفة بشكل اعتباطي، غير أن مجموعة التناسخ المتماثل الخاصة بالخادم ProxySQL تقوم آليًا بتقسيم جميع العُقد الموجودة فيها إلى أربع مجموعات مضيفة وذلك حسب حالتها كما يلي: مجموعة عُقد الكتابة: وهي عبارة عن مجموعة عُقد MySQL التي تقبل الاستعلامات الخاصة بتغيير البيانات. حيث يراعي ProxySQL المحافظة على العدد الأعظمي المعرَّف من العقد الرئيسية في هذه المجموعة. مجموعة عُقد الكتابة الاحتياطية: وهي كذلك الأمر مجموعة عُقد MySQL التي تقبل الاستعلامات الخاصة بتغيير البيانات، غير أنه لا يتم تعيينها كعقد كتابة إلا في حال فشل أحد عُقد مجموعة الكتابة. حيث يضع ProxySQL في هذه المجموعة العُقد الرئيسة المتبقية عند تجاوز عدد العُقد الرئيسية العدد الأعظمي المطلوب في مجموعة الكتابة. مجموعة عُقد القراءة: وهي مجموعة العُقد التي لا تقبل الاستعلامات الخاصة بتغيير البيانات، ويتم استخدمها فقط لقراءة البيانات. ولا يضع ProxySQL إلا العُقد الثانوية في هذه المجموعة. مجموعة العُقد المفصولة: وتتضمن هذه المجموعة على العُقد الرديئة من حيث الاتصال ونقل البيانات. إن المعرِّف الرقمي لكل مجموعة مضيفة لا يتم تحديده آليًا، لذا يجب إخبار ProxySQL بالمعرِّف الرقمي الذي سيتم استخدامه لكل مجموعة. سنستخدم في حالتنا هنا المعرِّف 1 لمجموعة العُقد المفصولة، و المعرِّف 2 لمجموعة عُقد الكتابة، والمعرِّف 3 لمجموعة عُقد القراءة، والمعرِّف 4 لمجموعة عُقد الكتابة الاحتياطية. ولتطبيق هذه المعرّفات، سنقوم بإنشاء صف بهذه المتغيرات (المجموعات المضيفة) وقيمها الموافقة (المعرّفات الرقمية) في جدول الإعدادات mysql_group_replication_hostgroups، وذلك بتنفيذ الأمر التالي في موجه أوامر الواجهة التخاطبية لإدارة ProxySQL: ProxySQLAdmin> LOAD INSERT INTO mysql_group_replication_hostgroups (writer_hostgroup، backup_writer_hostgroup، reader_hostgroup، offline_hostgroup، active، max_writers، writer_is_also_reader، max_transactions_behind) VALUES (2، 4، 3، 1، 1، 3، 1، 100); تم في الأمر السابق إعداد متغيرات إضافية ضمن صف هي: active: وهو المتغيّر الخاص بتمكين ProxySQL من مراقبة المجموعات المضيفة، حيث تم إسناده بالقيمة 1 (تمكين). max_writers: وهو المتغير الخاص بتحديد العدد الأعظمي من عُقد الكتابة، حيث تم إسناده بالقيمة 3 كون مجموعة التناسخ المتماثل الخاصة بنا من النوع multi-primary، أي قمنا بتعيين جميع العُقد الثلاثة كعُقد كتابة. writer_is_also_reader: يُستخدم لتفعيل القراءة في عُقد الكتابة. حيث تم إسناده بالقيمة 1 وذلك لإعلام ProxySQL باستخدام جميع عُقد القراءة كعُقد كتابة أيضًا. max_transactions_behind: يُستخدم لتحديد العدد الأعظمي من محاولات الاتصال قبل تصنيف العُقدة كعُقدة مفصولة. ملاحظة: بما أننا نستخدم في مثالنا هنا مجموعة التناسخ المتماثل ذات العُقد الرئيسية المتعددة والتي تستطيع جميع عُقدها الكتابة إلى قاعدة البيانات، لذا سوف نوازن تحميل جميع استعلامات SQL عبر مجموعة عُقد الكتابة. أما في الأنواع الأخرى من مجموعات التناسخ المتماثل، يقوم التقسيم بين عُقد الكتابة (الرئيسية) وعُقد القراءة (الثانوية)، بتوجيه استعلامات القراءة إلى مجوعات مضيفة مختلفة عن المجموعات المضيفة الخاصة باستعلامات الكتابة، غير أن ProxySQL لا يقوم بمعملية التوجيه هذه آليًا، لذا يجب في هذه الحالة إعداد توجيه الاستعلامات باستخدام القواعد. بما أن ProxySQL يعلم الآن طريقة توَّزع عُقد MySQL ضمن المجموعات المضيفة، لذا أصبح بمقدورنا الآن إضافة خوادم MySQL الموافقة لهذه العُقد إلى قائمة الخوادم المرتبطة بالخادم الوكيل ProxySQL. وذلك من خلال إدخال INSERT عنوان IP واسم المجموعة المضيفة الأولية لكل خادم إلى الجدول mysql_servers، والمتضمّن على لائحة بخوادم MySQL التي يستطيع ProxySQL التفاعل معها. وذلك بتنفيذ الأوامر التالية في موجه أوامر الواجهة التخاطبية لإدارة ProxySQL بعد استبدال عناوين IP الخوادم بالقيمة الحقيقية: ProxySQLAdmin> INSERT INTO mysql_servers(hostgroup_id، hostname، port) VALUES (2، '203.0.113.1'، 3306); ProxySQLAdmin> INSERT INTO mysql_servers(hostgroup_id، hostname، port) VALUES (2، '203.0.113.2'، 3306); ProxySQLAdmin> INSERT INTO mysql_servers(hostgroup_id، hostname، port) VALUES (2، '203.0.113.3'، 3306); حيث أُسنِدت القيمة 2 للمعامل hostgroup_id لجعل جميع هذه الخوادم عُقد كتابة، كما تمّ تعيين المنفذ 3306 لجميع خوادم MySQL. ولكي يأخذ هذا التحديث حيّز التنفيذ، يجب تطبيقه على طبقة وقت التشغيل ثم حفظه في طبقة القرص، وذلك بتنفيذ الأوامر التالية في موجه أوامر الواجهة التخاطبية لإدارة ProxySQL: ProxySQLAdmin> LOAD MYSQL VARIABLES TO RUNTIME; ProxySQLAdmin> SAVE MYSQL VARIABLES TO DISK; سيقوم ProxySQL الآن بتوزيع عُقد MySQL الخاصة بنا ضمن المجموعات المضيفة كما هو محدد. وللتأكد من ذلك سنقوم بالاستعلام SELECT عن الجدول runtim330e_mysql_servers والذي يعرض الحالة الآنية لقائمة خوادم MySQL المرتبطة بالخادم ProxySQL، وذلك بتنفيذ الأمر التالي: ProxySQLAdmin> LOAD MYSQL VARIABLES TO RUNTIME; Output +--------------+-------------+--------+ | hostgroup_id | hostname | status | +--------------+-------------+--------+ | 2 | 203.0.113.1 | ONLINE | | 2 | 203.0.113.2 | ONLINE | | 2 | 203.0.113.3 | ONLINE | | 3 | 203.0.113.1 | ONLINE | | 3 | 203.0.113.2 | ONLINE | | 3 | 203.0.113.3 | ONLINE | +--------------+-------------+--------+ 6 rows in set (0.01 sec) نلاحظ من الجدول أنه تم عرض جميع الخوادم في كل من المجموعة المضيفة ذات المعرِّف 2 والمجموعة المضيفة ذات المعرِّف 3، وهذا يدلّ على أن جميع الخوادم هي عُقد كتابة وقراءة في نفس الوقت. كما نلاحظ أن جميع الخوادم بحالة ONLINE أي أنها جميعها بحالة عمل. لكن قبل أن نتمكن من استعمالها، يجب علينا إعداد متطلبات ولوج المستخدم إلى قاعدة البيانات MySQL في كل عُقدة. الخطوة السادسة- إنشاء مستخدمي قاعدة البيانات MySQL يلعب ProxySQL دور موازن تحميل، حيث يقوم المستخدمون بالاتصال بالخادم ProxySQL والذي يقوم بدوره بتمرير هذا الاتصال إلى عُقدة MySQL المختارة. هذا ويتصل ProxySQL بكل عُقدة عن طريق متطلبات الولوج التي استخدمها المستخدم للدخول إلى ProxySQL. لنتمكن من الولوج إلى قواعد البيانات الكائنة في عُقد مجموعة التناسخ، نحتاج لإنشاء حساب مستخدم بنفس متطلبات الولوج الخاصة بالخادم ProxySQL ومنح هذا المستخدم الصلاحيات الضرورية. كما هو الحال في الخطوة الثالثة، يجب أن تُطبّق الخطوات التالية على عضو وحيد من مجموعة التناسخ المتماثل، حيث يمكننا اختيار أي عضو نريد. ننتقل إلى موجه أوامر MySQL، ثم نُنشئ مستخدم جديد اسمه playgrounduser وكلمة سره playgrounduser، وذلك بتنفيذ الأمر التالي: (member1)mysql> CREATE USER 'playgrounduser'@'%' IDENTIFIED BY 'playgroundpassword'; ثم نمنح هذا المستخدم صلاحيات الولوج الكاملة إلى قاعدة البيانات playground، وذلك بتنفيذ الأمر التالي في موجه أوامر MySQL: (member1)mysql> GRANT ALL PRIVILEGES on playground.* to 'playgrounduser'@'%'; ثم نُطبِّق التعديلات، وننهي موجه أوامر MySQL كما يلي: (member1)mysql> FLUSH PRIVILEGES; (member1)mysql> EXIT; للتأكّد من أنه تم إنشاء المستخدم بشكل صحيح، سنقوم باختبار قدرته على الولوج إلى قاعدة البيانات الكائنة في عُقدة MySQL بواسطة متطلبات الولوج التي تم إعدادها، وذلك بإعادة فتح موجه أوامر لينكس والدخول إلى موجه أوامر MySQL بحساب المستخدم الذي تم إنشائه، حيث سيطلب موجه الأوامر إدخال كلمة السر الخاصة بهذا المستخدم: $ mysql -u playgrounduser -p وبعد نجاح الدخول إلى موجه أوامر MySQL بحساب المستخدم playgrounduser، ننفذ استعلام تجريبي على قاعدة البيانات playground، وذلك كما يلي: (member1)mysql> SHOW TABLES FROM playground; Output +----------------------+ | Tables_in_playground | +----------------------+ | equipment | +----------------------+ 1 row in set (0.00 sec) فنلاحظ ظهور لائحة الجداول الموجودة في قاعدة البيانات، حيث تحوي على الجدول equipment الذي تم إنشائه سابقًا، مما يدل على أنه تم إنشاء المستخدم بشكل صحيح على عُقد MySQL. نستطيع الآن إنهاء موجه أوامر MySQL بتنفيذ الأمر EXIT، لكننا سنُبقي عليه متصلًا بالخادم لاستخدامه لاحقًا في تنفيذ اختبارات الخطوة الأخيرة. نحتاج الآن لإنشاء مستخدم موافق في خادم ProxySQL. الخطوة السابعة- إنشاء مستخدم ProxySQL إن آخر خطوة في الإعدادات هو سماح الاتصال بالخادم ProxySQL باستخدام حساب المستخدم playgrounduser، ومرور هذا الاتصال عبره إلى عُقد MySQL. لتحقيق ذلك نحتاج لإعداد المتغيرات الموجودة في الجدول mysql_users والتي تحتفظ بمعلومات حساب المستخدم. وذلك بإدخال اسم المستخدم (في حالتنا playgrounduser) وكلمة مروره ومعرِّف المجموعة المضيفة الافتراضية (في حالتنا المعرّف 2 الموافق لمجموعة الكتابة) في قاعدة بيانات الإعدادات، من خلال موجه أوامر الواجهة التخاطبية لإدارة ProxySQL: ProxySQLAdmin> INSERT INTO mysql_users(username، password، default_hostgroup) VALUES ('playgrounduser'، 'playgroundpassword'، 2); ولكي يأخذ هذا التحديث حيّز التنفيذ، يجب تطبيقه على طبقة وقت التشغيل ثم حفظه في طبقة القرص، وذلك بتنفيذ الأوامر التالية في موجه أوامر الواجهة التخاطبية لإدارة ProxySQL: ProxySQLAdmin> LOAD MYSQL VARIABLES TO RUNTIME; ProxySQLAdmin> SAVE MYSQL VARIABLES TO DISK; للتأكد من أننا قادرين على الاتصال بقاعدة بيانات عُقد MySQL باستخدام حساب المستخدم الذي تم إنشاؤه، سنقوم بفتح نافذة موجه أوامر لينكس أخرى ثم نتصل بخادم ProxySQL باستخدام قناة الاتصال SSH، مع إبقاء موجه أوامر الواجهة التخاطبية لإدارة ProxySQL لأننا سنحتاجه لاحقًا. $ ssh sammy@your_proxysql_server_ip_1 يتنصّت ProxySQL على المنفذ 6033 للاتصالات القادمة من العملاء، لذا سنحاول الاتصال بقاعدة البيانات الحقيقية (ليس بالواجهة الإدارية) باستخدام اسم المستخدم playgrounduser وكلمة مرورهplaygroundpassword (التي سيطلبها موجه الأوامر) والمنفذ 6033: $ mysql -u playgrounduser -p -h 127.0.0.1 -P 6033 --prompt='ProxySQLClient> ' حيث تم استبدال الموجه الافتراضي بالموجه ProxySQLClient>‎ وذلك من أجل تمييزه عن موجه الواجهة التخاطبية لإدارة ProxySQL، كونه سنستخدم كلاهما في الإعدادات النهائية. وعند نجاح عملية الاتصال سيظهر موجه الأوامر ProxySQLClient>‎ للدلالة على أن الخادم ProxySQL قد قبل حساب المستخدم playgrounduser: ProxySQL client prompt Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 31 Server version: 5.5.30 (ProxySQL) Copyright (c) 2000، 2017، Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help.Type '\c' to clear the current input statement. ProxySQLClient> سنقوم بتنفيذ تعبير برمجي بسيط للتأكد من أن الخادم ProxySQL سيتصل بأحد عُقد MySQL، حيث يقوم هذا التعبير البرمجي بالاستعلام في قاعدة البيانات عن اسم المضيف الذي يعمل عليه الخادم، وتكون نتيجة تنفيذ هذا التعبير عبارة عن خرج وحيد يتضمن على اسم مضيف الخادم: ProxySQLClient> SELECT @@hostname; Output +------------+ | @@hostname | +------------+ | member1 | +------------+ 1 row in set (0.00 sec) سيتم بناء على إعداداتنا توجيه الاستعلام من قبل الخادم ProxySQL إلى واحد من عُقد MySQL الثلاث المُسندة للمجموعة المضيفة الخاصة بالكتابة. وتكون نتيجة الاستعلام member1 والذي هو أحد مضيفات عُقد MySQL. وهكذا تم الانتهاء من الإعدادات التي تسمح بعمل ProxySQL كموازن تحميل للاتصالات بين عُقد MySQL. سنقوم في الخطوة الثامنة والأخيرة بالتحقق من قدرة ProxySQL على تنفيذ التعابير البرمجية الخاصة بالقراءة والكتابة في قاعدة البيانات حتى في حال فشل أحد العُقد. الخطوة الثامنة- التحقق من إعدادات ProxySQL لقد تحققنا سابقًا من أن الاتصال يعمل بشكل سليم بين ProxySQL وعُقد MySQL، لذا ستكون الاختبارات الأخيرة للتأكُّد من أن أذونات قاعدة البيانات تسمح بتنفيذ التعابير البرمجية الخاصة بالقراءة والكتابة القادمة من الخادم ProxySQL، والتأكُّد من أن هذه التعابير قابلة للتنفيذ حتى في حال فشل بعض عُقد المجموعة. سنقوم بتنفيذ تعبير القراءة SELECT في موجه أوامر عميل ProxySQL للتحقق من قدرتنا على قراءة البيانات من قاعدة البيانات playground، وذلك كما يلي: ProxySQLClient> SELECT * FROM playground.equipment; Output +----+--------+-------+--------+ | id | type | quant | color | +----+--------+-------+--------+ | 3 | slide | 2 | blue | | 10 | swing | 10 | yellow | | 17 | seesaw | 3 | green | +----+--------+-------+--------+ 3 rows in set (0.00 sec) نلاحظ أن خرج تنفيذ التعبير السابق عبارة عن جدول equipment يحوي على ثلاث مكونات، والذي تم إنشاؤه سابقاً في قاعدة البيانات playground، وهذا يدل على نجاح عملية القراءة من قاعدة بيانات MySQL عن طريق الخادم ProxySQL. والآن سنحاول الكتابة في قاعدة البيانات، وذلك بتنفيذ تعبير الكتابة INSERT لكتابة بيانات جديدة في الجدول equipment الموجود ضمن قاعدة البيانات playground، وذلك كما يلي: ProxySQLClient> INSERT INTO playground.equipment (type، quant، color) VALUES ("drill"، 5، "red"); وللتحقق من أنه تم كتابة البيانات السابقة في قاعدة البيانات playground، نعيد تنفيذ تعبير القراءة SELECT السابق كما يلي: ProxySQLClient> SELECT * FROM playground.equipment; Output +----+--------+-------+--------+ | id | type | quant | color | +----+--------+-------+--------+ | 3 | slide | 2 | blue | | 10 | swing | 10 | yellow | | 17 | seesaw | 3 | green | | 24 | drill | 5 | red | +----+--------+-------+--------+ 4 rows in set (0.00 sec) نلاحظ من الخرج ظهور مكون جديد في الجدول equipment الموجود في قاعدة البيانات، وهذا يدل على نجاح عملية الكتابة في قاعدة بيانات MySQL عن طريق الخادم ProxySQL. وهكذا تأكّدنا من قدرة الخادم ProxySQL على استخدام قاعدة البيانات بشكل كامل، لكن ماذا يحصل في حال فشل أحد خوادم MySQL. سنقوم الآن بمحاكاة فشل أحد خوادم MySQL، وذلك بإيقاف عملية mysql من موجه أوامر أحد خوادم MySQL كما يلي: $ systemctl stop mysql بعد توقف أحد خوادم MySQL، سنحاول ثانيةً الاستعلام عن البيانات الموجودة في الجدول equipment من موجه أوامر عميل ProxySQL كما يلي: ProxySQLClient> SELECT * FROM playground.equipment; فنلاحظ أن الخرج لم يتغير، وهذا يدل على أن ProxySQL لاحظ فشل أحد عُقد MySQL، وقام بالانتقال إلى عُقدة أخرى سليمة لتنفيذ عملية الاستعلام عن البيانات الموجودة في قاعدة بيانات MySQL. هذا ويمكننا التحقق من ذلك عن طريق الاستعلام عن الجدول runtime_mysql_servers من موجه أوامر الواجهة التخاطبية لإدارة ProxySQL، كما ورد في الخطوة الخامسة: ProxySQLAdmin> SELECT hostgroup_id، hostname، status FROM runtime_mysql_servers; Output +--------------+-------------+---------+ | hostgroup_id | hostname | status | +--------------+-------------+---------+ | 1 | 203.0.113.1 | SHUNNED | | 2 | 203.0.113.2 | ONLINE | | 2 | 203.0.113.3 | ONLINE | | 3 | 203.0.113.2 | ONLINE | | 3 | 203.0.113.3 | ONLINE | +--------------+-------------+---------+ 6 rows in set (0.01 sec) نلاحظ من الخرج أن عُقدة MySQL التي قمنا بإيقافها قد أصبحت SHUNNED، وهذا يعني أنها غير قابلة للوصول مؤقتًا، لذا سيتم توزيع كل النقل بين العُقدتين المتبقيتين بحالة عمل. سيقوم ProxySQL بمراقبة حالة العُقدة المتوقفة عن العمل بشكل مستمر، ويعيدها للحالة online في حال عادت للعمل، أو يعتبرها مفصولة offline في حال تجاوزت زمن الانتظار المحدد في الخطوة الخامسة (في المتغير max_transactions_behind). سنقوم الآن باختبار مراقبة ProxySQL لحالة عُقد MySQL، وذلك بإعادة تشغيل خادم MySQL المتوقّف، وبالتالي إعادة العُقدة المتوقّفة إلى العمل ثانيةً: $ systemctl start mysql ثم ننتظر قليلًا ونعيد الاستعلام عن الجدول runtime_mysql_servers من موجه أوامر الواجهة التخاطبية لإدارة ProxySQL: ProxySQLAdmin> SELECT hostgroup_id، hostname، status FROM runtime_mysql_servers; Output +--------------+-------------+--------+ | hostgroup_id | hostname | status | +--------------+-------------+--------+ | 2 | 203.0.113.1 | ONLINE | | 2 | 203.0.113.2 | ONLINE | | 2 | 203.0.113.3 | ONLINE | | 3 | 203.0.113.1 | ONLINE | | 3 | 203.0.113.2 | ONLINE | | 3 | 203.0.113.3 | ONLINE | +--------------+-------------+--------+ 6 rows in set (0.01 sec) نلاحظ من الخرج أن ProxySQL لاحظ فورًا عودة العُقدة للعمل، وقام بإعادة حالتها إلى ONLINE. يمكنك إعادة هذا الاختبار على عُقدة أخرى (أو اثنين منها)، والتحقق من أن وجود عُقدة واحدة على الأقل بحالة عمل، كافي لاستخدام قاعدة البيانات بحرية في عمليتي القراءة والكتابة. ملخص تم في هذه المقالة شرح طريقة إعداد الخادم الوكيل ProxySQL لموازنة تحميل استعلامات SQL عبر العديد من عُقد MySQL القادرة على الكتابة ضمن بنية مجموعة التناسخ المتماثل ذات العُقد الرئيسية المتعددة. حيث يساعد هذا النوع من الإعدادات على تحسين أداء قواعد البيانات الكثيرة الاستخدام، عن طريق توزيع الحمل عبر العديد من الخوادم، كما توفر قابلية الانتقال الآلي إلى الخوادم المتاحة عند فشل أحدها. لم يتم في هذه المقالة تغطية إلاّ البنية القائمة على عُقدة واحدة كمثال. إلا أن إمكانيات ProxySQL الجبارة في الحفاظ على الاستعلامات والتوجيه وتحليل الأداء تعمل كذلك الأمر على الكثير من البنى الأخرى. يمكنك الاضطلاع على المزيد حول ميزات ProxySQL وطريقة استخدامه في حل العديد من مشاكل إدارة قواعد البيانات في مدونة ProxySQL الرسمية. ترجمة المقال بتصرف للمقال How to Use ProxySQL as a Load Balancer for MySQL on Ubuntu 16.04 لصاحبته Mateusz Papiernik
  15. بالنسبة للحاسوب المحمول الـ HP، مناسب جدًا. لكن أخبرتك، إن كنت مستقرًا في مكان السكن وكانت الكهرباء مستقرة لديك، فأنصحك باقتناء حاسوب مكتبي عن تجربة. وإذا كنت متنقلًا والكهرباء غير مستقرة أو كان لديك أوقات فراغ في أماكن معينة يمكنك الاستفادة منها، فالحاسوب المحمول أفضل. أما بالنسبة للأداء، فالحاسوب المكتبي يتفوق على المحمول بأضعاف خصوصًا مع موضوع ارتفاع درجات الحرارة التي تسبب أعطالًا للحاسوب. أرى الحاسوب المكتبي الذي سعره 13775 هو الأفضل ومواصفاته رائعة والحاسوب الثاني يبدو جيد (لم أعرف بعض المواصفات المكتوبة خصوصًا بطاقة الشاشة). قرر أولًا أيهما تود شراءة (مكتبي أم محمول) ثم يمكنك بعدها انتقاء الخيارات المتاحة. أمرٌ آخر، تطوير الحاسوب المكتبي ورفع آداءه مستقبلًا واستبدال القطع فيه وتحديثها أو صيانتها أفضل بكثير من المحمول الذي تنعدم فيه كل تلك الأمور (بعض الأعطاء الحرجة تسبب تلف الحاسوب أو تكلفك ثمن صيانة باهظ بالإضافة إلى أنه لا يمكنك تحديثه باستثناء إضافة ذواكر ورفع سعة الهارد). @هشام ادم