اذهب إلى المحتوى

أسامة دمراني

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

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

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

  • عدد الأيام التي تصدر بها

    24

كل منشورات العضو أسامة دمراني

  1. تستخدِم محركات البحث تقنية بحث النصوص الكاملة (Full-Text Search (FTS للبحث عن نتائج في قاعدة بيانات ما، وهي تقنية مفيدة في تقوية نتائج البحث في مواقع مثل المتاجر الرقمية ومحركات البحث والجرائد وغيرها. ويتلخص ما تفعله FTS في جلب المستندات “documents” وهي وحدات من قواعد البيانات تحتوي بيانات نصية ﻻ تتطابق بشكل كامل مع نصوص البحث، فمثلًا حين يبحث مستخدم ما عن “cats and dogs” فإن التطبيق المزوّد بـتقنية بحث النصوص الكاملة سيُظهر نتائج تحتوي الكلمتين dogs وcats بشكل منفصل، أو بترتيب معكوس “dogs and cats”، أو صور مختلفة من هذه الكلمات (cat أو dog)، وذلك يعطي أفضلية للتطبيقات في تخمين قصد المستخدم وإظهار نتائج بحث مرتبطة بما يريده وبسرعة أكبر. وتسمح أنظمة إدارة قواعد البيانات مثل PostgreSQL بعمليات بحث نصية بشكل جزئي باستخدام بنود LIKE، لكن هذه العمليات تعطي عادةً أداء دون المستوى مع البيانات الكبيرة، كما أنها مقيَّدة بمطابقة مدخلات المستخدم الحرفية، وهذا يعني أن استعلامًا ما أو بحثًا عن بيانات معينة قد ﻻ يعطي أي نتائج، حتى لو كانت هناك مستندات عن معلومات مرتبطة بهذا البحث. أما باستخدام FTS فيمكنك بناء محرك بحث قوي للنصوص دون الحاجة لاعتماديات جديدة على أدوات أكثر تطورًا، وسنستخدم نظام PostgreSQL في هذا المقال لتخزين بيانات تحتوي مقالات لموقع أخبار افتراضي، ثم نتعلم كيف نبحث في قاعدة البيانات باستخدام FTS، واختيار أفضل النتائج فقط. ثم سنقوم ببعض التحسينات في الأداء لعمليات بحث النصوص الكاملة. المتطلبات خادم مثبت عليه أوبنتو 16.04 به مستخدم يملك صلاحيات `sudo`، ﻻ أن يكون هو المستخدم الجذر. خادمPostgreSQL، وسنستخدم نحن قاعدة بيانات ومستخدم باسم `sammy` كمثال. ملاحظة: تأكد أن يكون لديك حزمة postgresql-conrib عبر تنفيذ الأمر التالي في الطرفية: sudo apt-get list postgresql-contrib الخطوة الأولى: إنشاء بيانات وهمية من أجل الشرح سنحتاج إلى بعض البيانات من أجل استخدامها في اختبار إضافة FTS، لكن إن كان لديك جدول به قيم نصية جاهزة فيمكنك أن تنتقل إلى الخطوة التالية مباشرة وتستبدل قيمك بالقيم الموجودة هنا، أما إن لم يكن لديك فاتبع ما يلي: اتصل بقاعدة بيانات PostgreSQL من خلال الخادم الخاص بها، ولن تحتاج كلمة مرور لأنك تتصل من نفس المضيف “host”: sudo -u postgres psql sammy وهذا الأمر سيفتح جلسة PostgreSQL تفاعلية ظاهر بها اسم قاعدة البيانات الذي نعمل عليها -sammy في حالتنا-، فيجب أن ترى =#sammy في محث قاعدة البيانات. أنشئ جدولًا وسمّه news، وسيمثِّل كل مدخل في هذا الجدول مقالًا بعنوان وجزء من المحتوى والكاتب، إضافة إلى معرّف فريد: sammy=# CREATE TABLE news ( sammy=# id SERIAL PRIMARY KEY, sammy=# title TEXT NOT NULL, sammy=# content TEXT NOT NULL, sammy=# author TEXT NOT NULL sammy=# ); إن نظرنا للجدول السابق، فإن id هو معرّف الجدول الأساسي مع النوع الخاص SERIAL المسؤول عن زيادة هذا المعرف بشكل تلقائي للجدول، وذلك معرّف فريد سنتحدث عنه أكثر في الخطوة الثالثة حين ننظر في تحسينات الأداء. واﻵن أضف بعض البيانات للجدول باستخدام أمر INESRT، ستمثل هذه البيانات الوهمية بالأسفل بعض مقالات الأخبار: sammy=# INSERT INTO news (id, title, content, author) VALUES sammy=# (1, 'Pacific Northwest high-speed rail line', 'Currently there are only a few options for traveling the 140 miles between Seattle and Vancouver and none of them are ideal.', 'Greg'), sammy=# (2, 'Hitting the beach was voted the best part of life in the region', 'Exploring tracks and trails was second most popular, followed by visiting the shops and then checking out local parks.', 'Ethan'), sammy=# (3, 'Machine Learning from scratch', 'Bare bones implementations of some of the foundational models and algorithms.', 'Jo'); سنجرب الآن بعض عمليات البحث بما أننا أدخلنا بعض البيانات التي يمكن البحث والاستعلام عنها. الخطوة الثانية: تجهيز المستندات والبحث فيها أول خطوة هنا هي بناء مستند واحد بأعمدة نصوص متعددة من جدول قاعدة البيانات، ثم يمكننا تحويل النتائج بعدها إلى متَّجَه من الكلمات نستخدمه في عمليات البحث. ملاحظة: يستخدم خرج psql في هذا الدليل تهيئة expanded display والتي تعرض كل عمود من الخرج في سطر جديد لتسهيل عرضها على الشاشة. يمكننا تفعيلها كما يلي: sammydb=# \x يجب أن يكون الخرج هكذا: Expanded display is on. سنحتاج أولًا إلى جمع كل الأعمدة معًا باستخدام دالتي التسلسل `||` والتحويل `()to_tsvector` في PostgreSQL: sammy=# SELECT title || '. ' || content as document, to_tsvector(title || '. ' || content) as metadata FROM news WHERE id = 1; سيخرج لنا هذا أول سجلّ كمستند كامل باﻹضافة إلى نسخته التي سنستخدمها في البحث: -[ RECORD 1 ]----------------------------------------------------- document | Pacific Northwest high-speed rail line. Currently there are only a few options for traveling the 140 miles between Seattle and Vancouver and none of them are ideal. metadata | '140':18 'current':8 'high':4 'high-spe':3 'ideal':29 'line':7 'mile':19 'none':25 'northwest':2 'option':14 'pacif':1 'rail':6 'seattl':21 'speed':5 'travel':16 'vancouv':23 ربما تلاحظ أن هناك كلمات أقل في النسخة المحوّلة metadata في الخرج السابق عن النسخة الأصلية document، وبعض الكلمات مختلفة، وكل كلمة لديها فاصلة منقوطة ; ورقم ملحق بها، وذلك ﻷن دالة ()to_tsvector تنسّق كل كلمة كي نستطيع إيجاد صور مختلفة منها، ثم تصنف النتائج أبجديًا، وذلك الرقم هو موضع الكلمة في document، قد تكون هناك مواضع أخرى للكلمة بينها فواصل , إن كانت الكلمة المنسّقة تظهر أكثر من مرة. يمكننا الآن استغلال إمكانيات FTS عبر استخدام هذا المستند المحوّل في البحث عن كلمة “Explorations”: sammy=# SELECT * FROM news WHERE to_tsvector(title || '. ' || content) @@ to_tsquery('Explorations'); وسنقوم الآن بتحليل الدوال والمشغِّلات التي استخدمناها في اﻷمر أعلاه: تترجم دالةُ ()to_tsquery المعاملَ “parameter” -الذي يمكن أن يكون تعديلًا مباشرًا أو طفيفًا في بحث المستخدم- إلى معيار بحث نصي يقلل المدخلات بنفس طريقة ()to_tsvector. وإضافة إلى ذلك فإن الدالة تتيح لك تحديد اللغة التي تريد استخدامها وما إن يجب أن تكون كل الكلمات موجودة في النتائج أو واحدة منهم فقط. ويحدد مشغِّل @@ ما إن كان tsvector مماثلًا لـ tsquery أم لـ tsvector آخر، عبر عرض إحدى نتيجتين (true أو false)، مما يسهّل استخدامه كجزء من معيار WHERE. الخرج: -[ RECORD 1 ]----------------------------------------------------- id | 2 title | Hitting the beach was voted the best part of life in the region content | Exploring tracks and trails was second most popular, followed by visiting the shops and then checking out local parks. author | Ethan أظهرت عمليةُ البحث المستندَ الذي يحتوي كلمة Exploring، رغم أن الكلمة التي بحثنا عنها هي Exploration، أما لو استخدمنا مشغّل LIKE لكنّا حصلنا على نتيجة فارغة. واﻵن بما أننا عرفنا كيفية تجهيز المستندات لها وكيفية هيكلة المستندات، فسننظر في كيفية تحسين أداء FTS. الخطوة الثالثة: تحسين أداء FTS قد يشكّل توليد مستند في كل مرة نستخدم فيها استعلام FTS مشكلة في الأداء إن كنا نستخدم خوادم صغيرة أو بيانات كبيرة. وأحد الحلول الجيدة لهذا الأمر هو توليد المستند المحوّل أثناء إدخال المستند الأصلي وتخزينه مع البيانات الأخرى، وبهذه الطريقة يمكننا استرجاعه باستعلام صغير عوضًا عن توليده في كل مرة. أولًا ننشئ عمودًا إضافيًا اسمه document في جدول news الذي أنشأناه قبل قليل: sammy=# ALTER TABLE news ADD "document" tsvector; سنحتاج الآن أن نستخدم استعلامًا جديدًا ﻹدخال البيانات في الجدول، لكن على عكس الخطوة الثانية، سنحتاج هنا إلى تجهيز المستند المحوّل وإضافته إلى عمود document الجديد: sammy=# INSERT INTO news (id, title, content, author, document) sammy=# VALUES (4, 'Sleep deprivation curing depression', 'Clinicians have long known that there is a strong link between sleep, sunlight and mood.', 'Patel', to_tsvector('Sleep deprivation curing depression' || '. ' || 'Clinicians have long known that there is a strong link between sleep, sunlight and mood.')); تتطلب إضافة عمود جديد إلى الجدول الموجود مسبقًا أن نضيف قيمًا فارغة لعمود document أولًا، وسنحدّثه الآن بالقيم المولَّدة. استخدم أمر UPDATE لإضافة البيانات الناقصة. sammy=# UPDATE news SET document = to_tsvector(title || '. ' || content) WHERE document IS NULL; وهذه الأسطر التي أضفناها إلى جدولنا تحسّن من أداء FTS، لكن قد نواجه مشاكل أخرى في حالة البيانات الكبيرة بسبب أن قاعدة البيانات ﻻ تزال في حاجة إلى فحص الجدول كله ﻹيجاد الأسطر التي توافق مدخلات البحث، وحل هذا أن نستخدم الفهارس “indexes”. فهرس قاعدة البيانات database index هو هيكل بيانات يخزّن البيانات بشكل منفصل من البيانات الأساسية التي تحسّن عمليات استرجاع البيانات، ويتم تحديثها بعد أي تغيّر في محتوى الجدول وﻻ تتكلف إﻻ الكتابة الجديدة ومساحة تخزين صغيرة نسبيًا. وتسمح المساحة الصغيرة وهيكل البيانات المهيّأ جيدًا للفهارس أن تعمل بكفاءة أكبر من استخدام مساحة الجدول لاختيار الاستعلامات. وبشكل عام، فإن الفهارس تسرّع إيجاد قواعد البيانات للصفوف من خلال البحث باستخدام خوارزميات وهياكل بيانات خاصة. ويمتاز نظام PostgreSQL بأن به عدة أنواع من الفهارس التي تناسب أنواعًا محددة من الاستعلامات، وأقرب هذه الأنواع إلى حالتنا هنا هي فهارس GiST وGIN. والفرق البارز بينهما هو السرعة التي يجلب كل منهما البيانات من الجدول، فـGIN أبطأ أثناء إضافة بيانات جديدة لكنه أسرع في الاستعلام، أما GiST فأسرع في بناء البيانات الجديدة لكنه يحتاج إلى قراءات إضافية للبيانات. وسننشئ فهرس GIN هنا ﻷن GiST أبطأ بثلاث مرات في جلب البيانات: sammy=# CREATE INDEX idx_fts_search ON news USING gin(document); وسيصبح استعلام SELECT أبسط باستخدام عمود document المفهرس: sammy=# SELECT title, content FROM news WHERE document @@ to_tsquery('Travel | Cure'); ويجب أن يكون الخرج شيئًا كهذا: -[ RECORD 1 ]----------------------------------------------------- title | Sleep deprivation curing depression content | Clinicians have long known that there is a strong link between sleep, sunlight and mood. -[ RECORD 2 ]----------------------------------------------------- title | Pacific Northwest high-speed rail line content | Currently there are only a few options for traveling the 140 miles between Seattle and Vancouver and none of them are ideal. واﻵن يمكنك الخروج من لوحة التحكم الخاصة بقاعدة البيانات عبر كتابة q\. الخلاصة يغطي هذا الدليل كيفية استخدام تقنية بحث النصوص الكاملة في PostgreSQL، بما في ذلك تجهيز وتخزين مستند البيانات الوصفية metadata واستخدام فهرس لتحسين أداء البحث. وإن أردت مزيدًا من الشرح حول FTS في PostgreSQL فألق نظرة على التوثيق الرسمي لنظام PostgreSQL حول بحث النصوص الكاملة. ترجمة -بتصرف- لمقال How to Use Full-Text Search in PostgreSQL on Ubuntu 16.04 لصاحبه Ilya Kotov
  2. تبدو فكرة العمل عن بعد أثناء الترحال مثيرة وشيقة، وطريقة مغامرة لكسب الرزق، لكن هناك جانب مظلم لها أيضًا يجب أن أذكره. إذ أن التحدي الأساسي الذي تواجهه كونك تريد تجربة هذا النمط من الحياة هو أنك ستخرّب روتينك اليومي تمامًا، إضافة إلى أن الإغراءات تنتظرك خلف كل منعطف، تريدك أن تضحي بصحتك في مقابل جرعة صغيرة من المرح أو المتعة. والطريقة الوحيدة التي تكافح بها نظامًا يتكالب عليك هكذا هو باستخدام حيل تسمح لك بالتحكم في هذه اللعبة كي تتمكن من تناول كعكتك أو باد ثاي إن شئت! 4 طرق للحفاظ على صحتك كرحالة رقمي 1. اجعل روتينك الرياضي ﻻ يعتمد على معدات خاصة ليس بخافٍ على أحد أنك تشعر بثقة أكبر في نفسك وبطاقة أكثر إن كانت صحتك أفضل، بل تشعر أن حياتك كلها تبدو أفضل، فيجب أن يكون الحفاظ على صحتك أولوية سواء كنت في المنزل أو بعيدًا عنه. تخصص بعض الفنادق صالات رياضية فيها، لكن قد ﻻ تجد ذلك إن كنت تستأجر عبر خدمة مثل Airbnb، فأفضل حل حينها لاتباع نظام صحي رياضي أثناء سفرك هو أن تجعله غير معتمد على صالة رياضية. وأفضّل شخصيًا أن أخصص برنامجًا من ثلاثين دقيقة يتضمن تمارين تعتمد على أثقال الجسد – مثل تمارين ضغط الذراعين والفخذين-، وتمارين أخرى ﻻ تحتاج إلى معدات، وأنفّذها في غرفتي أو في منتزه قريب أول شيء في الصباح، وحقيقة هذا أفضل شيء تبدأ به يومك. وإن كنت لم تجرب تمارين أثقال الجسد من قبل، فأنصحك بكتاب مارك لورين في هذا الشأن وتطبيقه المصاحب له أيضًا من متجر هاتفك. 2. تمرّن على وضعيات صحيحة للظهر والرقبة نحن نعرف الآن جيدًا أن الجلوس يقتلنا، فالوضعيات الخاطئة ﻻ تسبب الآلام فقط، بل تتسبب فعلًا في مقتلك، فحين تكون على سفر فإنك تجد نفسك متنقلًا بين المقاعد غير المريحة على الطائرات وفي الفنادق والمقاهي، وسيكون الأمر مسألة وقت فقط حتى تعاني مشاكل الرقبة أو الظهر. وإليك بعض النصائح للحفاظ على رقبتك وظهرك أثناء السفر: في الطائرة: لا تجلس إﻻ للنوم، أما باقي الوقت فقف ما استطعت في مؤخرة الطائرة -حين يكون إشعار حزام اﻷمان مطفأً، واستغل هذا الوقت في قراءة كتاب أو الاستماع إلى كتاب صوتي أو بودكاست. فوضعية الوقوف تسمح بالتمدد والتمرّن، فبعض تمارين القرفصاء ستحافظ على مرونة جسدك حين تصل إلى وجهتك. في العمل: يقول سام كروس، مؤسس Proxyrack أن نمط العمل الخاطئ وما تبعه من آلام في الرقبة والظهر قد أثّر على نومه ومزاجه وإنتاجه بشكل عام، فتصبح الحياة أصعب بشكل عام. والحل الذي يقترحه هو تجنب الجلوس أو العمل حين تكون بيئة العمل غير مناسبة، وهو يعمل من الفنادق ومساحات العمل المشتركة التي يمكنه أن ينصب فيها مكتبًا محمولًا يعمل عليه واقفًا، انظر الصورة: مكتب محمول كهذا يمكن أن يخفف بعض الآلام التي تأتي من السفر والعمل في ظروف غير مريحة. مرونة الجسد: قد يتسبب الجلوس الطويل في الطائرات والسيارات في آﻻم مزعجة في عضلاتك، وللتغلب على ذلك، احمل كرة تنس في حقيبتك أو كرة مساج صلبة، تستخدمها حين تصل إلى وجهتك، فتستلقي عليها كي تضغط بدورها على عضلاتك لتحررها من تشنجها، وكأنك أحضرت معالجك الشخصي معك! 3. ﻻ تأكل كأنك دومًا في إجازة سترى أن الطعام لمن يسافر كثيرًا يمثّل أحد الأمور المحببة إليه، لكنه كابوس مزعج أحيانًا حين ﻻ تستطيع الحصول على طعام صحي وطازج، وإليك بعض النصائح للحفاظ على حمية صحية أثناء سفرك: أعدّ طعامك بنفسك: تقول كريستي ثومبسون، عضو فريق الدعم في Help Scout، ورحّالة رقمية "الاستمتاع بالمطبخ المحلي هو الجزء المرِح والمسلّي في السفر، لكن إعداد بعض وجباتك على الأقل بنفسك يوفر عليك مالًا وييسّر عليك تناول طعام صحي". خذ طعامك معك: قد تكون وجبة الإفطار أمرًا صعبًا في البلاد التي تحب أن تبدأ يومها بطبقة كثيفة من الزيت، فأنا مثلًا أحب اصطحاب الموسلي -طعام من الحبوب والفواكه مع اللبن- معي، حيث أمزجه بالفواكه المحلية. وبشكل عام، إن كنت تقيم في فنادق تقدم إفطارًا مجانيًا، حاول أن تأخذ حصة جيدة من البروتين والفواكه كي تعينك على الاستمرار في يومك بنشاط 4. حافظ على صحتك العقلية ﻻ يمثّل اعتناؤك بجسدك إﻻ نصف المعادلة فقط، فلا تنسى أن السفر يأخذ ضريبة أيضًا في صورة الإجهاد الذي ينتج من تغير مخططاتك، وحواجز اللغة، وجودة الإنترنت السيئة في الفنادق، … . وإن الأمر يحتاج تخطيطًا حتى لمن في المنزل كي يحافظوا على سلامتهم العقلية، إليك بعض النصائح: التزم بجدول نوم: يجب أن تجرب الحصول على سبع ساعات من النوم كل ليلة وفقًا لعيادة Mayo، واذهب إلى فراشك في نفس التوقيت أو قريب منه كل يوم. وإن هذا الكلام سهل لكنّ تطبيقه صعب إن كنت تعاني من أثر السفر الناتج من اختلاف التوقيتات المحلية، واجتماعاتك مع العملاء، ومواعيد تسليم أعمالك، لكن حاول بقدر إمكانك أن تنظم جدول نوم، فهو يستحق الجهد الذي ستبذله في الالتزام به. صمم بيئة هادئة: قد تكون بعض غرف الفنادق مزعجة بشكل كبير، لذا أصطحب زوجًا من سدادات الأذن كي أضمن الحصول على بيئة تساعدني على النوم. كذلك من المفيد أن تتوقف عن النظر إلى شاشاتك -هاتفك، حاسوبك، إلخ ...، قبل ساعة أو اثنتين من نومك، وأسدل الستائر أيضًا كي لا يزعجك النور أثناء نومك، فإن لم تستطع فاجعل معك قناعًا لعينك تلبسه أثناء النوم. التعامل مع القلق: حاول تصفية ذهنك كل يوم بالطريقة التي تناسبك، إذ أجد أني أتأثر كثيرًا بالمحفزات التي أقابلها أثناء العمل في السفر، لهذا أحاول تصفية ذهني كل ليلة لمدة عشرين دقيقة، وأستخدم تطبيق Headspace أو أستمع إلى بعض الضوضاء البيضاء، إضافة إلى أن الضوضاء البيضاء مفيدة أيضًا في العمل في الأماكن ذات الأصوات العالية. حافظ على صحتك لتبقى سعيدًا صحيح أن كثيرًا من جوانب الحياة تخرج عن نطاق سيطرتنا، وهذا صحيح أثناء العمل في السفر وأثناء الترحال أيضًا، ما بين تأخيرات الرحلات الجوية إلى اختلاف المناطق الزمنية إلى إجهاد السفر وغيرهم، وليس لدينا سوى تقبل ذلك ومحاولة التعايش معه بأفضل صورة ممكنة. وأفضل ما يمكنك فعله للحفاظ على صحتك العقلية والجسدية هو تسكين تلك المجهِدات في الحياة على الطريق، كي تنجز أعمالك بكفاءة وتستمتع بالترحال والمغامرة أيضًا. كيف تحافظ أنت على صحتك وسعادتك إن كنت تعمل عن بعد؟ أخبرنا في التعليقات! ترجمة -بتصرف- لمقال How to maintain your health as a digital nomad لصاحبه James Moore
  3. PostgreSQL، هو نظام متطور مفتوح المصدر، كائنيّ الارتباط-Object Relational ﻹدارة قواعد البيانات، وهو نظام قابل للتوسع، بمعنى أنه يستطيع معالجة اﻷحمال المختلفة بدءًا من تطبيقات جهاز واحد إلى خدمات الويب التجارية التي تتعامل مع مستخدمين كثر في نفس الوقت. وهذا النظام Transactional أي يعامل النقل المتسلسل للبيانات -مثل تحديث قاعدة البيانات- كوحدة واحدة لضمان سلامتها، ويحقق خصائص ACID (Atomicity – Consistency – Isolation – Durability). وكذلك يدعم قسمًا كبيرًا من معايير SQL. فائدة: خصائص ACID هي أربعة خصائص يجب توافرها في تعاملات قواعد البيانات، وهي الذرية-Atomicity -أن تُنفَّذ العملية كوحدة واحدة-، والتناسق-Consistency، والعزل-Isolation، والثبات-Durability. ويوفر PostgreSQL العديد من المزايا مثل: الاستعلامات المعقدة-Complex Queries المفاتيح الأجنبية-Foreign Keys المشاهدات القابلة للتحديث-Updatable Views سلامة عمليات نقل البيانات-Transactional Integrity التحكم في التزامن متعدد الإصدارات-Multiversion Concurrency Control وذكرنا قبل قليل أنه قابل للتمدد والتوسع بواسطة مستخدميه عبر إضافة دوال-Functions جديدة، ومشغّلات-operators، وأنواع بيانات، وطرق فهرسة، ولغات إجرائية-Procedural Languages. ويقدّم PostgreSQL طرقًا عديدة لتكرار قاعدة بيانات، وسنتعلم في هذا الدليل كيفية إعداد تكرار من نوع (الرئيسي-Master/الثانوي-Slave)، وهي عملية مزامنة بين قاعدتي بيانات من خلال النسخ من قاعدة بيانات على خادم (الرئيسي) إلى قاعدة بيانات أخرى في خادم آخر (الثانوي)، وسننفذ هذه العملية على خادم يعمل بتوزيعة أوبنتو 16.04. المتطلبات أن يكون PostgreSQL 9.6 مثبتًا على خادم أوبنتو 16.04 إعداد UFW ثبّت جدار الحماية الناري غير المعقّد-Uncomplicated Firewall على خوادم أوبنتو، وهو أداة ﻹدارة جدار الحماية المعتمِد على iptables. استخدم الأمر التالي في الطرفية: # apt-get install -y ufw واﻵن، أضف PostgreSQL وخدمة SSH إلى جدار الحماية، عبر تنفيذ اﻷمر التالي: # ufw allow ssh # ufw allow postgresql فعّل جدار الحماية: # ufw enable إعداد خادم PostgreSQL الرئيسي سيمتلك الخادم الرئيسي صلاحيات القراءة والكتابة لقاعدة البيانات، وسيكون هو القادر على نقل البيانات إلى الخادم الثانوي. • افتح محررًا نصيًا وعدّل إعدادات PostgreSQL الرئيسية كما يلي: (ملاحظة: استبدل EDITOR$ بالمحرر النصي الذي تفضّله) # $EDITOR /etc/postgresql/9.6/main/postgresql.conf أزل التعليق (#) من سطر listen_addresses وأضف عنوان IP للخادم الرئيسي: listen_addresses = 'master_server_IP_address' واﻵن، أزل التعليق من سطر wal_level لتغيير قيمته: wal_level = hot_standby وأزل التعليق من السطر التالي كي تستخدم المزامنة المحلية-Local Syncing لمستوى المزامنة "Synchronization Level" synchronous_commit = local ثم أزل التعليق من السطرين التاليين، وعدلهما كما يلي، بما أننا نستخدم خادمين: max_wal_senders = 2 wal_keep_segments = 10 واﻵن احفظ الملف وأغلقه. عدّل ملف pg_hba.conf من أجل إعدادات التوثيق-Authentication، كما يلي: افتح الملف عبر هذا الأمر: # $EDITOR /etc/postgresql/9.6/main/pg_hba.conf الصق الإعدادات التالية: # Localhost host replication replica 127.0.0.1/32 md5 # PostgreSQL Master IP address host replication replica master_IP_address/32 md5 # PostgreSQL SLave IP address host replication replica slave_IP_address/32 md5 احفظ الملف وأغلقه، ثم أعد تشغيل PostgreSQL باستخدام systemctl # systemctl restart postgresql إنشاء مستخدم من أجل التكرار سننشئ مستخدم PostgreSQL من أجل عملية التكرار، فسجّل الدخول أولًا إلى حساب المستخدم المسمّىpostgres وافتح صدفة PostgreSQL، من خلال الأوامر التالية: # su - postgres $ psql أنشئ مستخدمًا جديدًا: postgres=# CREATE USER replica REPLICATION LOGIN ENCRYPTED PASSWORD 'usr_strong_pwd'; أغلق الصَّدَفة، وهكذا تنتهي إعدادات الخادم الرئيسي. إعداد الخادم الثانوي لن تكون للخادم الثانوي صلاحيات الكتابة في قاعدة البيانات، وستكون وظيفته الوحيدة هي استقبال البيانات من الخادم الرئيسي، أي ستكون له صلاحية القراءة فقط. • سنوقف أولًا خدمة PostgreSQL: # systemctl stop postgresql افتح ملف الإعدادات الرئيسية لـ PostgreSQL: # $EDITOR /etc/postgresql/9.6/main/postgresql.conf أزل التعليق من سطر listen_addresses وغيّر قيمته: listen_addresses = 'slave_IP_address' أزل التعليق من سطر wal_level وغيّره كما يلي: wal_level = hot_standby وأزل التعليق أيضًا من سطر synchronous_commit كما في الخادم الرئيسي للاستفادة من المزامنة المحلية-local syncing: synchronous_commit = local ثم أزل التعليق من السطرين التاليين وغيّر قيمهما كما يلي: max_wal_senders = 2 wal_keep_segments = 10 أزل التعليق من السطر التالي وغيّر قيمته كما يلي من أجل تفعيل hot_standby للخادم الثانوي: hot_standby = on احفظ الملف وأغلقه. نسخ البيانات من الخادم الرئيسي إلى الثانوي لكي نزامن بيانات الخادم الرئيسي مع الثانوي، فيجب أن يحل المجلد الأساسي “main” في الخادم الرئيسي محل المجلد الرئيسي في الخادم الثانوي، ونفعل هذا كما يلي: • سجل الدخول إلى مستخدم postgres: # su – postgres خذ نسخة احتياطية من مجلد البيانات الفعلي: $ cd/var/lib/postgresql/9.6/ $ mv main main_bak أنشئ مجلد أساسيًا جديدًا: $ mkdir main/ غيّر صلاحياته: $ chmod 700 main وهنا، انسخ المجلد الأساسي من الخادم الرئيسي إلى الخادم الثانوي باستخدام pg_basebackup: # pg_basebackup -h master_IP_address -U replica -D /var/lib/postgresql/9.6/main /-P –xlog وحين ينتهي النسخ، أنشئ ملف recovery.conf داخل المجلد الأساسي "main” وانسخ المحتوى التالي فيه: standby_mode = 'on' primary_conninfo = 'host=10.0.15.10 port=5432 user=replica password=usr_strong_pwd' trigger_file = '/tmp/postgresql.trigger.5432' واﻵن، احفظ الملف وأغلقه، ثم غير صلاحياته كما يلي: # chmod 600 recovery.conf شغّل خدمة PostgreSQL: # systemctl start postgresql وهنا تنتهي إعدادات الخادم الثانوي. الخلاصة لقد رأينا في هذا الدليل المبسّط كيفية ضبط تكرار Master/Slave في PostgreSQL عبر استخدام خادمين يعملان بأوبنتو. وهذه الطريقة في التكرار ما هي إﻻ إحدى طرق عديدة يوفرها نظام PostgreSQL لإدارة قواعد البيانات. ترجمة -بتصرف- لمقال PostgreSQL Replication on Ubuntu Tutorial لصاحبه Giuseppe Molica
  4. أنا أقابل عددًا ﻻ حصر له من الناس وأحظى معهم بنقاشات عمل رائعة بحكم عملي المستقل، وقد صار كثير من هؤلاء الناس من عملائي، ثم أصبح بعض هؤﻻء أصدقاء لي. ولعلك تعلم أن كونك مستقلًا يعني أيضًا أن تكون المساعد الشخصي لنفسك -إﻻ إن وظّفت واحدًا طبعًا-، والمحاسب وربما المحامي أيضًا -رغم أني أنصحك بشدة أن تستشير محاميًا متخصصًا إن أمكنك-، فالشاهد أن ذلك يعني قضاء ساعات وربما أيام بين الرسائل البريدية التي تناقش المشاريع ومواصفاتها وأبعادها، وبين مكالمات سكايب أو الاجتماعات الحقيقية وكتابة العقود وتوقيعها، كل ذلك قبل أن أصل إلى الجزء الذي أحسنه، وهو كتابة الشفرة البرمجية. وإنني أعرف كثيرًا من المطورين الذين لا يفضّلون هذه الأبعاد “غير البرمجية” من حياتهم المهنية أو من كونهم مبرمجين، لذا يلجأ بعضهم إلى توكيل أحد لمعالجة “مرحلة اﻻحتكاك بالعميل” كما تسمّى، ﻻ عجب أن توجد خدمات قائمة على هذا النموذج الربحي خاصة. ومبدأ هذه الخدمات بسيط ومباشر، وهو إيجاد عميل ومستقل مناسبين لبعضهما ومعالجة مرحلة الاحتكاك الأولي بينهما، هذا يعني أن الشركات التي تريد مستقلين (مطورين، مصممين، .. إلخ) ليس عليها أن تبحث عنهم بنفسها، فتلك الخدمات الوسيطة تقدم لهم المطور المناسب الذي سيلبي احتياجاتهم من مجتمع من المطورين الموهوبين الذين جمعتهم تلك الخدمات. وليس على ذاك المطور أن يشغل باله بمواصفات المشروع ونقاشاته، بل يقفز مباشرة إلى العمل بمجرد موافقته على المواصفات المذكورة في المشروع. وتعتمد هذه الخدمات على أسلوب التسعير بالساعة -في نطاق معيّن من الأسعار عادة-، من أجل جعل عملية تقدير تكلفة المشاريع مباشرة و”حسابية”. وقد تواصلت معي ممثلة لإحدى هذه الشركات الخدمية لتعرض علي أن أكون جزءًا من مجتمع الموهوبين لديهم من المطورين المستقلين، وتعدني بالمشاريع العظيمة مع نطاق واسع من الشركات الكبيرة والصغيرة على السواء، كل ذلك بينما أركّز أنا على العمل الأساسي في المشروع دون أن أشغل نفسي بمفاوضات المشروع مع العميل ﻷنهم سيقومون بذلك عني. ثم أعطتني نبذة عن الشركة وطريقة عملها، وكيف يتم اختيار وترشيح أعضاء مجتمعهم قبل أن يوظفوهم فعليًا، وعرضت علي فرصة الانضمام إلى هذا المجتمع، وهو إطراء أقدّره كثيرًا ﻷنهم يختارون الأشخاص الذين يرون فيهم مهارة عالية في مجالاتهم كي يقدّموهم إلى العملاء. وبعيدًا عن النموذج الربحي الذي ﻻ أتّبعه شخصيًا في عملي، فإن السبب الرئيسي الذي جعلني أرفض هذا العرض هو أنهم يعدونني بمعالجة الاحتكاك بيني وبين العملاء المحتملين، إذ أني ﻻ أريد تخطي تلك المرحلة أصلًا، بل على العكس تمامًا، فأنا أحبها. صحيح أن ذلك يعني مزيدًا من الساعات التي سأقضيها في المناقشات وساعات أقل للعمل، لكني أعدّ هذا جزءًا أساسيًا من حياتي في العمل المستقلّ، وهو الطريق الذي اخترته لنفسي قبل سنوات ولم أنظر للوراء ثانية بعدها، وتلك الساعات التي تقضيها في الحديث مع العملاء هي أحد الوسائل التي يمكنك أن تطوّر نفسك من خلالها كمستقل وكإنسان أيضًا. وأنا أحب الحديث إلى عملائي والاجتماع بهم في سكايب، أتعرف عليهم وعلى أهداف شركاتهم ومشاريعهم، وأسمعهم يتحدثون عن مشاريعهم بشغف ولماذا اختاروها وأين يريدون أن يصلوا بها، والأهم من ذلك كله هو سماعهم يذكرون السبب الذي جعلهم يختارون العمل معي لمساعدتهم على تحقيق هذه الأهداف، وذلك كله كنت سأفقده لو وافقت على العمل من خلال تلك الشركة الخدمية آنفة الذكر. إضافة إلى أن الحديث مع عملائي له أبعاد أكثر من احتياجات المشروع، فقد كنت على تواصل دائم وثابت مع الفرق التي تعمل على المشاريع التي أعمل عليها، من المصممين إلى المبرمجين من أمثالي وحتى المدراء التنفيذيين، ونتواصل عبر قناة Slack مثلًا، ونخصصها لمناقشة تفاصيل المشروع، وطبعًا فإن طبيعة عملي في المشروع تتعدى مجرد تحويل التصميم إلى شفرة برمجية، فهناك نقاشات حول تصميم تجربة الاستخدام من حيث علاقتها بملائمتها لشرائح العملاء المختلفة مثلًا. إن أحد الأسباب التي تجعل الشركات الوسيطة تعتمد أسلوب التسعير بالساعة هو أنهم يريدون إراحة المستقلين والعملاء على حد سواء من الإرهاق الذي ينتج من تغيرات أبعاد ومواصفات المشروع، لكن ذلك لم يكن مصدر قلق لي، ذلك أني أتواصل مع العميل وأتحدث معه مباشرة. بل إن هذا “الاحتكاك” هو ما يجعلني أتناقش مع العميل بكل حرية بما في ذلك مناقشة مستقبل المشروع، واحتمال تدخلي في مراحله المختلفة، وهو ما جعلني أصل إلى العمل مع عملاء مثل Provata مرة بعد مرة على مر السنوات الفائتة، وقد كان واضحًا بين وبين عملائي أن أي تغير في أبعاد ومواصفات المشروع ينعكس على العقد بيننا، ويحدث ذلك بسلاسة ﻷننا تناقشنا مسبقًا حول احتمال حدوث هذا من أول تواصلنا في المشروع، أثناء مرحلة “الاحتكاك” إن شئت أن تسمّيها. ﻻ تتوقع أن تنمو علاقة ما إن كنت تبني حائطًا بينك وبين الشخص الذي معك في تلك العلاقة، وذلك صحيح في حالة علاقات العمل كما هو صحيح في العلاقات الشخصية، فالعمل مع عملاء ﻻ أستطيع مناقشة تفاصيل المشروع معهم ولا أستطيع التواصل معهم لن يسمح لي أبدًا أن أكوّن صداقات مع الأشخاص الذين يعملون في الناحية الأخرى من المشروع، لكن العمل مع أشخاص مختلفين على مشاريع مختلفة هو أحد اﻷبعاد التي أفضّلها في عملي المستقل، وهو أحد الأسباب التي جعلتني أتجه إلى هذا النمط من العمل قبل سنوات من الآن، بدلًا من العمل لصالح شركة كبيرة. وربما تعرف ذلك الشعور بالوحدة الذي يخيم على نمط عملك وأنت تجلس خلف شاشة تتحدث إلى أشخاص يجلسون خلف شاشات أخرى في مكان آخر من العالم، وقد يخفف عنك هذه الوحدة ذهابك للمؤتمرات التي تهتم بمجالك وحديثك إلى أشخاص يشاركونك نفس الاهتمامات، لكن ذلك يحدث بضع مرات في العام، ما يجعل بنائي لحائط بيني وبين العملاء الذين يمثّلون فرصة للاختلاط بالناس -ولو من وراء شاشة- أمرًا لا أستطيع تحمله، فإن هذا أشبه بآلة شفرة برمجية تحصل على معطيات (تفاصيل المشروع)، وتنتج مخرجات (الشفرة البرمجية) بشكل يومي، دون الجانب الإنساني من هذا العمل. لذلك فإن كل ما وعدتني به تلك الشركة الخدمية لم يكن يمثّل مصدر قلق لي إطلاقًا، ولهذا رفضت عرضها للانضمام إلى مجتمعها. لكن مع هذا، فإني ﻻ أقصد تقليل قيمة ما تقدّمه هذه الشركات الوسيطة، بل على العكس، فأنا أدرك كيف تكون مثل تلك الشركات مفيدة للغاية إن كان المستقل يقدر أجره بالساعة، إذ يمكنه العمل على أكثر من مشروع في نفس الوقت إن خصص بضع ساعات كل أسبوع لكل مشروع، أو إن كان لديه وظيفة بدوام كامل ويريد أن يعمل بضع ساعات إضافية دون أن يرهق نفسه بتفاصيل ونقاشات حول كل مشروع. لهذا فإني أرى بوضوح كيف يمكن أن تساعد هذه الشركاتُ المستقلين على أن يعملوا أكثر ويعملوا بشكل أفضل، فربما تكون فكرة تلافي الاحتكاك بينك وبين العميل مقبولة لك من الأساس إن كنت ﻻ تحب أن تشغل نفسك بالشؤون الإدارية كثيرًا، فاﻷمر مرده إلى التفضيل الشخصي في النهاية. هل الاحتكاك مع العميل سيء لهذه الدرجة؟ كلا، قطعًا، على الأقل ليس بالنسبة إلي، فبدون ذلك الاحتكاك لم أكن لأكسب صداقات مع أولئك الأشخاص الرائعين الذين أعرفهم اليوم، لذا حاول أن تستمتع بالأمر إن كنت مستقلًا وتستخرج منه أقصى ما يمكنك. ابن جسورًا، وليس حوائط. ترجمة -بتصرف- لمقال Build Bridges, Not Walls لصاحبته سارة سويدان. حقوق الصورة البارزة محفوظة لـ Freepik
  5. يشتكي أغلب العاملين عن بعد أن أحد التحديات الرئيسية في نمط العمل عن بعد هو غياب علاقات الحياة اليومية الحقيقية بينهم وبين زملائهم في العمل، ولعلك هكذا أيضًا ما لم تكن انطوائيًا للغاية. ويمكننا أن نعزي قليلًا من ازدهار مساحات العمل المشتركة وخلوات الرحّالة إلى الرغبة الجماعية للعاملين عن بعد في أن يكونوا وسط جماعات، أو جزءًا من فريق حتى لو لم يكن لهم نفس الهدف. ولعل ما يجعل البعض يفضّلون العمل عن بعد هو قسوة العلاقات الشخصية في المكاتب التقليدية للشركات، وقد تظن أن التسييس الداخلي والتحزّب والسلوك الخارج قد يختفي مع العمل عن بعد، وقد يختفي بعضها فعلًا، لكن هناك أمور أخرى قد تظهر على السطح، مثل ضعف التواصل والفشل في تنظيم جدول عمل يناسب المناطق الزمنية المختلفة، وصعوبة كسب الاحترام من الزملاء. وإليك الآن بعض النصائح التي أريدك أن تتبعها لتجنب هذه العقبات التي ظهرت كلها أو بعضها في طريقك منذ أن تركت حياة الشركات والمكاتب التقليدية كي تحسّن علاقاتك مع زملاءك في العمل. اهتم بإظهار هويتك سيكون عليك أن تعرّف عن نفسك بطريقة أكثر وضوحًا وشفافية من مجرد قبول طلبات الصداقة والتعارف في سكايب أو سلاك أو فيس بوك أو غيرهم، وذلك بإظهار وجهك منذ البداية، فاختر صورة احترافية مبهجة لنفسك وضعها في أي مكان تستخدم فيه صورة شخصية لك، حتى إذا استلم زميل لك رسالة منك رأى صورتك أنت مرفقة معها، وليس صورة شعار لشركة تحبها أو شخصية سينمائية تعجب بها. وكذلك كلما فكروا فيك كشخصية حقيقية، استجابوا لاقتراحاتك واحتياجاتك وأفكارك. وللسعي شوطًا آخر في هذا، لم ﻻ تعقد اتصالًا مرئيًا مع كل زميل لك، تتعرف فيها عليه وتعرّفه بنفسك؟ فبدء العمل بتواصل بشري منذ البداية كانطباع أولي سيفيدك ﻻحقًا في كسب ثقة زملائك. كن منتبهًا لاختلاف المناطق الزمنية لقد عملت ككاتب ومحرر عن بعد لشركة تسويقية في لندن، حيث كان أحد زملائي في العمل يسكن في المملكة المتحدة، ما يجعله أسبق مني بخمس ساعات في كل يوم، لكنه لم ينتبه لهذا يومًا إذ كان يراسلني مرات ومرات كل يوم سائلًا إياي عن أماكن بعض الملفات التي اكتملت، أو عن موعد انتهاء هذا وذاك. وكل ذلك ولم يدر بذهنه أبدًا أن موعد غدائه هو بالكاد موعد استيقاظي أنا من النوم، فكن منتبهًا لهذه الفروق في التوقيتات مع بقية زملائك واحترمها لئلا يتعثر كل منكم في صاحبه بين الحين والآخر. وإن كنت تنسى مواعيد العمل لزملائك فاستخدم موقعًا مثل Time and Date لتيسير الأمر عليك، وإن كان الأمر في رأيي ذوقًا أكثر منه حسابًا للتوقيتات، فانتبه لجداول عمل زملائك، وتجنب عقد اجتماعات عمل أو اتصالات أثناء أوقات راحتهم. اعقد اجتماع تعارف لمدة 60 ثانية كنت جزءًا من عملية كبيرة لمدونة تقنية في العام الماضي، ضمن جمع من المحررين والكتّّاب من جميع أنحاء أمريكا، وقد جمعتنا مكالمة جماعية في أول يوم للعمل، ومُنح كل شخص دقيقة واحدة ليعرّف نفسه لباقي الفريق. وأدهشتنا النتائج من هذه المكالمة التي تبدو بسيطة في ظاهرها، فقد ذكرت أنا مثلًا أني من تكساس، وأنّ ابنتيّ توأمتان، وأحب سلسلة Star Wars. ولا شك أن هذه الأمور توافقت مع شخص واحد على الأقل، فقد كنت كلما راسلت أحدًا أتلقى قصصًا عن تكساس ولكنتها ومن لديه توائم في عائلته ومن أخذ يومًا إجازة من العمل يوم إطلاق نسخة The Force Awakens من Star Wars، كل ذلك لمجرد تعريف من ستين ثانية فقط! ﻻ أظن أن بإمكانك بناء علاقة مترابطة بين فريق عمل بهذه الصورة بتلك السرعة. كن صادقًا وواضحًا احرص على أن تكون مرآة لكل كلمة تخرج من فمك إن أردت بناء علاقة قوية مع زملائك العاملين عن بعد، فإن قلت أنك ستسلّم عملًا في موعد معين فلا تتجاوزه، وإن حدث طارئ ما فاحرص على إشعار كل من له علاقة بهذا العمل في أقرب وقت ممكن. وهكذا فإن كفاءتك كعامل عن بعد بشكل عام مبنية على قدرتك على إدارة مهامك دون وجود من يسألك باستمرار عن موعد تسليمك لها، فإظهار نفسك كنموذج للالتزام يجعل الناس تعتمد عليك، وتزيد قيمة أدائك في عملك. بيّن ما تقصده، نصًا أو مرئيًا من السهل أن تسيء الظن بنوايا أحدهم أو كلماته أو مشاعره إن كنتما بعيدين عن بعضكما، أو حين تفرّق بينكما حواجز اللغة والثقافة، فحاول أن تنتبه لهذه الحدود وتبيّن مشاعرك أو نواياك من الكلام في محادثاتك مع زملائك، في رسائل نصية أو -أفضل- في مكالمات مرئية. ذلك أن صراحتك ووضوحك معهم ليست أمرًا مستحبًا في ظروف عملك عن بعد معهم، بل هي من الواجبات اللازمة للحفاظ على كفاءة إنتاج الفريق وسعادته وتناغم أفراده. فاتّبع أسلوب عمل صريح منذ البداية-ومحترم في نفس الوقت- إن كنت تدير فريقك، كي يعرفوا أن لا بأس في إبداء الرأي أو النقد أو طرح الأسئلة التي تدور برؤوسهم. وإن لم تكن أنت المدير فلا تخش أن تتحدث عن المشاكل التي تواجهك في محادثات قصيرة ثنائية، لكن اجعل المحادثة تدور حول رغبتك في الحفاظ على كفاءتك في عملك، وقدّم اقتراحات لتطويرها إن كان لديك. إن الحياة التي يحياها العاملون عن بعد قد تكون مختلفة تماماً عن تلك التي يعيشها زملاؤهم في المكاتب التقليدية، لكنهم جميعًا يعملون لأهداف متشابهة وقد تكون مشتركة بينهم أيضًا، فتذكر أن زملاءنا على الطرف الآخر بشر مثلنا، وأن التعاطف والصراحة ستشد من أزر العلاقة التي بيننا. ترجمة -بتصرف- لمقال How to Bolster Work Relationships When You’re Remote لصاحبه Nick Georgandis حقوق الصورة البارزة محفوظة لـ Freepik
  6. تستهلك الرسائل البريدية وقتًا في الكتابة والصياغة والتحرير وﻻ أحد يحب قضاء وقت في مهمة مملة كهذه، لكنك تضطر إلى التعامل معها كل يوم في عملك كمطوّر ويب، وهذا يعني أنك ستنفق ساعات كل يوم في كتابتها ومراجعتها. لكن من ناحية أخرى، فهذا التكرار يعني أيضًا أنك ستكسب وقتًا وجهدًا كبيرين إن جعلت هذه العملية أبسط، ويصبح لديك وقت لتقديم دعم أفضل وتوليد المزيد من الأرباح وبناء علامتك التجارية بشكل عام، وأنت في حاجة إلى قوالب بريدية من أجل تبسيط كتابة الرسائل البريدية وأتمتتها، كما فعل كل المستقلين الناجحين من قبلك. لذا إليك عشرة قوالب مفيدة تضيفها إلى برنامج البريد الذي تستخدمه، كي توفّر وقتًا لنفسك وتزيد من إنتاجيتك. القالب اﻷول: طلب التوصية بك لعملاء جدد لو لاحظت طريقة عمل العاملين في المبيعات لرأيتهم يطلبون من عملائهم ترشيح خدماتهم لعملاء جدد بمجرد إنهاء الصفقة، تمامًا كما لو أن طلب التوصية هو آخر خطوة من عملية الصفقة نفسها! فكن مثلهم، إذ يجب عليك أيضًا طلب هذه التوصيات كجزء من عملية تسليمك للمشروع، إليك نموذجًا لقالب رسالة بريدية يمكنك إرساله: فائدة 1: اذكر شخصًا محددًا باسمه من معارف عميلك يمكن أن يوظّفك. أضف تلك الفقرة إلى النموذج: ﻻ أريدك أن تظن هذه الرسالة مشبوهة أو تجعلك تبدو مثل من يتعقب الناس خلسة، بل هذا محض ذكاء منك كي ينقل العميل اسمك وسمعتك لمن يعرفه. فائدة 2: تنصح بيا كايلن من مجلة Smashing أن تبادر بطلب التوصية من عميلك لأصدقائه، فهذا يزيل القلق من نفس ذلك الصديق بما أن من يرشحك صديقه، عبر إرفاق صيغة نصية جاهزة يعدّلها عميلك ثم يرسلها إلى معارفه لترشيحك لهم، كما هو موضح أدناه: إن الهدف من هذا التقديم الجاهز هو توفير عناء الكتابة على العميل، وهو أمر سيقدّروه لك إذ قد يكسل بعضهم عن صياغة مثل تلك الرسالة. القالب الثاني: العملاء الجدد حين تحصل على مشروع مع عميل وتكون على وشك البدء فيه، فإن الوقت مناسب ﻹرسال رسالة ترحيبية، وهذه الرسالة فرصتك ﻹخبار العميل كيف سيتم العمل في المشروع، وتقلل من المراسلات المبدئية حين ﻻ يعلم العميل شيئًا عما يجري من طرفك. فائدة: إن كنت تستخدم أداة ﻹدارة مشاريعك مثل Basecamp أو Trello، فقدّمها إلى عميلك في رسالة الترحيب، وضع له فقرة مثل هذه: القالب الثالث: طلب الشهادات إن أفضل توقيت لطلب شهادة أو تقييم من عميلك هو عند تسليم المشروع، إذ سيكون تجاوب العميل عاليًا معك حينها، إليك نموذجًا عن كيفية طلب ذلك: فائدة 1: كن دائمًا مستعدًا لطلب تقييم عميلك أو شهادته عن عملك معه. ﻻ أذكر أين قرأت هذه النصيحة لكنها مفيدة على أي حال. فمثلًا، إن أرسلت نسخة من المشروع للمراجعة أو نموذجًا أوليًا وأبهر العميل وأرسل لك ردًا يشكرك فيه، فأرسل له فورًا رسالة تستأذنه فيها أن تستخدم كلماته تلك كشهادة منه على عملك، إليك نموذجًا عن الرسالة التي يمكنك أن ترسلها إليه: فائدة 2: تجنب استخدام عبارات عامة وغامضة في نص الشهادة الذي تقترحه عليه مثل “مقدّم خدمات ممتاز” أو “متعاقد يمكن الاعتماد عليه”. وركز بدلًا من ذلك على الكيفية التي حللت بها مشاكل العميل، جرب البحث عن بعض أفضل مطوري ووردبريس لترى صفحات شهادات عملائهم، إليك صفحة شهادات العملاء لمطور اسمه بيل إريكسون. تذكّر أﻻ تجري خلف شهادة مبهرة، وإنما شهادة تجعل العملاء المحتملين يرغبون في توظيفك. فائدة3: جرب هذه الصيغة في نص الشهادة الذي ستقترحه على العميل، هذا النص تنصح به جوانا ويب: كما يمكنك أيضًا أن ترسل إليه رسالة طلب الشهادة تلك عبر لينكدإن. القالب الرابع: عرض عملك كدراسة حالة تعدّ دراسات الحالة للعملاء أقوى مئة مرة من الشهادات ﻷنها تظهر للعميل المحتمل كيف حللت مشكلة عميلك السابق، بينما الشهادة ﻻ تحتوي إﻻ على تجربة العميل معك. إليك مثالًا عن طلب للعميل أن تعرض تجربتك معه كدراسة حالة: لن يتردد العميل بمساعدتك إن أعجبه عملك، وأغلب العملاء يسعد بالمشاركة حقيقة ﻷنهم يرغبون بمساعدتك لإعجابهم بجودة عملك، لكن لا تعِد العميل بروابط إلى شركته أو بالترويج له (خاصة إن لم يكن معرض أعمالك مشهورًا) وتجنب إرسال أسئلة دراسة الحالة كنص داخل الرسالة نفسها، إذ سيخلق هذا فوضى في الرد على كل الأسئلة التي ستضعها، وستضطر للتنقل بين الرسائل وردودها ذهابًا وعودة مرات كثيرة، واﻷفضل أن تستخدم أداة مثل Typeform كي تنشئ استمارات أسئلة جميلة ومرتبة. القالب الخامس: التقديم على وظائف استخدم هذا القالب الذي سأذكره باﻷسفل حين تقل طلبات المشاريع التي تأتيك من توصيات العملاء والطرق الطبيعية الأخرى التي ﻻ تتضمن رسائل العروض الباردة مثلًا. أنت في حاجة بالطبع إلى تخصيص اجزاء من الرسالة بناء على عرض الوظيفة أو المشروع الذي تتقدم إليه، دعنا ننظر في مثال لنرى كيف يمكن تنفيذ هذا التخصيص على مطالب محددة للعميل في عرض الوظيفة: دعنا نستخدم هذه المعطيات الآن لنخصص نموذج العرض الذي سترسله للعميل: سنختار أفضل ثلاثة متطلبات تظن أن العميل قد يوظفك من أجلها، وإليك تطبيقًا عمليًا لتقييم تلك المتطلبات: طلاقة في الإنجليزية. سيعرف العميل تلقائيًا تمكّنك من هذه المهارة إن كنت سترسل العرض بالإنجليزية، فهذه الخطوة غير مهمة، لكن ربما تحتاجها لعميل عربي. خبرة في PHP/MySQL. هذه عامة، تخطّاها أيضًا. كتابة شفرة نظيفة ومتوافقة مع المعايير القياسية. هذه يمكن استخدامها. خبرة في ووردبريس (+5 سنوات). هذه مهمة، لكن يمكن تغطيتها في مقدمة الرسالة. متابعة لتطورات الويب. عامة أيضًا وغير محددة، تخطاها. متاح للعمل من 9-5. يمكنك استخدامها بما أنها محددة بتوقيت قد يكون خارج منطقتك الزمنية. قدرة على التركيز على إنشاء مواقع رائعة. يمكن استخدامها. رغبة في العمل مع فريق. تخطاها. واﻵن، لنحوّل هذه القائمة المصغّرة التي خرجنا بها إلى نقاط ترفع من احتمال توظيفك: يمكن التعبير عن نقطة بناء شفرة نظيفة بقولك شيئًا مثل “لم أرسل شفرة سيئة أو بها سخام من قبل، بل أتأكد من أن شفرتي تمر على كل المصغّرات minifiers كجزء من عملية مراجعتي لها، وأنها أيضًا شفرة رشيقة lean”. هل وضحت الفكرة؟ القالب السادس: رفض المشاريع تكمن فائدة إرسال رسائل الرفض للعملاء أن العميل حينها يمكن أن ينظر في توظيف شخص آخر، كما يجنبك رسائل المتابعة-follow up emails.إليك مثالًا عن الرسالة التي يمكن أن تستخدمها: القالب السابع: جدولة المكالمات تتضمن مشاريع التطوير الكبيرة تواصلًا كثيفًا في العادة، ويحدث أغلب ذلك التواصل على سكايب وليس في الرسائل البريدية، لذا فإن الاحتفاظ بنموذج رسالة لجدولة اتصال سيوفر وقتًا في صياغتها كل مرة. فبمثل هذا النموذج تساعد العميل على تحديد مدى أهمية الاتصال، وما إن كان بإمكانهم تأجيله. ﻻ تنس أيضًا أن تلخص اجتماعكما في رسالة موجزة بأهم ما تحدثتما فيه لترسلها إليه بعد الاجتماع مباشرة. كما يمكن أن تسجّل المكالمة إن لم ترغب في أخذ ملاحظات أثناء الاجتماع، كي تراجعها فيما بعد وتلخصها، لكن أخبر العميل مسبقًا أنك ستسجل الاجتماع. إليك بعض الأدوات التي تسجل لك الاجتماع في سكايب. القالب الثامن: المتابعة إن لم يرد عليك عميل محتمل قد راسلته من قبل، فلا يعني هذا أنه ﻻ يريد العمل معك مرة أخرى، بل ربما هو مشغول أو لم ير رسالتك، وهنا يأتي دور رسائل المتابعة. تقول هيذر مورجن، المدير التنفيذي لشركة Salesfolks، وهي شركة تساعد شركات البرمجيات الخدمية SaaS على كتابة الرسائل الباردة، أن عليك إرسال رسائل متابعة مرة بعد مرة، ربما حتى سبعة رسائل، ذلك أنه على حد قولها: كذلك تنصح هيذر بعد تكرار النص في رسائل المتابعة. القالب التاسع: الإبلاغ عن تأخير في التسليم قد تخرج أمور عن سيطرتك أحيانًا وتضطر إلى قضاء مزيد من الوقت الإضافي ﻹنجاز المشروع، وأنصحك بإخبار عميلك مباشرة أنك قد تتأخر في إرسال المشروع عن الوقت المتفق عليه بينكما. إن كان التأخير يزعج العميل فيمكن أن تعرض خصمًا مما ستقبضه كتعويض عن هذا التأخير، فتضيف مثل هذا السطر إلى الرسالة السابقة: القالب العاشر: الرسائل الباردة لن يفلح أي قالب معك في الرسائل الباردة إلى العملاء، والطريقة الوحيدة التي تحصل بها على رد من عميل محتمل في رسالة باردة هي بالبحث وتعلم فن كتابة الرسائل الباردة. لكن سأعطيك هنا فكرة عن الرسائل الباردة التي تنجح في استخراج رد من العميل المحتمل عبر هذين النموذجين الرائعين: النموذج الأول من Masswerks، وهو بسيط ومباشر وفعّال أيضًا، بل إن هذا النموذج قد جعل Masswerks تكسب مشروعًا استشاريًا بقيمة 15 ألف دولار. تظهر الرسالة أن الرسائل الباردة يمكن أن تكون مؤثرة بدون انتهاج أساليب ملتوية، وﻻحظ كيف أن الشركة تتحدث من منظور النتائج التي ستحققها للعميل دون أن تبدو كمن يحاول كسب المال فقط. أما النموذج الثاني فإنه من مصمم مستقل اسمه جيك جورجوفان، وقد كسب من تلك الرسالة 4250 دولار. تنصح هيذر مورجن أن تحافظ على الرسالة الباردة الأولى قصيرة، ربما 3-5 جمل، كما تعطي نصيحة جميلة عن كيفية جعل عنوان الرسالة جاذبًا للانتباه: إن أردت أن يلاحظ عميلك المحتمل رسالتك فيجب أن تشركه فيها على مستوى عميق، وتفعل هذا عن طريق أمرين: إما أن تطرح سؤالًا عن تجارته، مثل “سؤال عن معدلات تحويل العملاء لـ(اسم الشركة)”، وإما أن تعرض نصيحة قيّمة له، مثل “اقتراح لزيادة معدل تحويل العملاء بعشر مرات في (اسم الشركة)”. وهذا كل ما لدي بشأن نماذج الرسائل، لكن ستحتاج أن تفعّّل الردود المعلّبة Canned Responses في Gmail كي ﻻ تضطر إلى نسخ تلك النماذج في كل مرة تريد استخدام أحدها. لذا دعنا ننظر في كيفية عمل هذه الردود. استخدام الردود المعلّبة في Gmail الردود المعلّبة هي قوالب في Gmail تستطيع إدراجها في رسائل بثلاث نقرات فقط. لتفعيلها، اذهب إلى Gmail settings، ثم Labs، ثم Canned Responses. اضغط على Enable ثم Save Changes. ولحفظ رد معلّب، انسخ أحد النماذج باﻷعلى مع عنوان رسالته وألصقه في Gmail -تذكر أن تزيل التنسيق من النص كله وتضغط على أيقونة remove formatting-. واﻵن أضف هذه الرسالة كنموذج، اضغط على الأيقونة الصغيرة في أسفل اليمين واختر Canned Responses، ثم اختر New Canned Response. وهكذا يكون نموذجك جاهزًا للاستخدام. وفي المرة التالية التي تريد استخدام رد معلب فيها، يمكنك اختيار واحد مما حفظته مسبقًا بهذه الطريقة. وإضافة إلى تفعيل الردود المعلبة في Gmail، فإني أشير عليك بتثبيت هذه الإضافات في Gmail أيضًا لتعطيك مزيدًا من التحكم في كيفية حدوث المناقشة. 3 إضافات مجانية في Gmail Boomerang for Gmail تتيح لك هذه الإضافة جدولة الرسائل، وهي مفيدة للمستقلين خاصة والشركات التي تخدم عملاء في مناطق زمنية مختلفة. فسواء كانت رسالة عروض أو تحديث حالة، فإن هذه الإضافة ستساعدك على توصيل هذه الرسائل في أوقات العمل لعملائك. وتسمح لك الباقة المجانية في الإضافة بجدولة عشر رسائل، ويمكنك الترقية للحصول على مزايا أكثر مثل جدولة رسائل أكثر والرسائل الراجعة Recurring Messages، والتعقب غير المحدود Unlimited tracking، وغيرها … . UglyEmail تتيح لك هذه اﻹضافة تحديد الرسائل التي لديها متعقبات للفتح والنقرات، فقد يتعقب أحد عملائك أحيانًا توقيت فتحك للرسالة كي يعرف هل تجاهلته أم ﻻ، وقد تكون حقيقة مشغولًا ولا تود الرد مباشرة، لذا يفضل أﻻ تقرأ هذه الرسائل إن لم تستطع الرد مباشرة، وتضع هذه الإضافة أيقونة عين أمام كل الرسائل التي تحاول تعقبك. PixelBlock قد تتيح لك الإضافة السابقة تحديد الرسائل التي تحاول مراقبة سلوكك فيها، لكن إضافة PixelBlock تحظر كل محاولات التعقب. وهي إضافة يجب على أي مطور أو شركة استخدامها، لأنك ﻻ تريد أن يعرف أحد أنك قرأت رسالته في الواحدة صباحًا على هاتفك، وقد يشعر العميل أنك غير محترف ﻷن عملك يقتطع من وقت فراغك أيضًا. وستكفي هذه الإضافات لأغلب المستقلين، لكن إن نما عملك إلى الحد الذي تحتاج فيه إلى مزايا جديدة، فجرب أدوات ﻹدارة علاقاتك مع العملاء-CRM مثل Hubspot أو MixMax أو Streak، وأغلب هذه الأدوات تدعم عشر نماذج في نسخها المجانية. الخلاصة إن إعداد مثل هذه النماذج التي ترسلها بضغطة زر إلى عملائك بعد تعديلات بسيطة توفّر عليك ساعات تذهب في كتابة وتنقيح الرسائل مرة بعد مرة، وإني أضعها بين يديك كي تستخدمها كما تشاء وتعدّل فيها لتناسب نبرة حديثك مع عملائك. ترجمة -بتصرف- لمقال 10 Email Templates Every Web Developer Needs to Keep Handy لصاحبته Disha Sharma حقوق الصورة البارزة محفوظة لـ Freepik
  7. تزيد أحجام قواعد البيانات مع الوقت حتى تتجاوز أحيانًا المساحة اﻷصلية التي خُصِّصت لها، وقد تواجهك مشاكل في المدخلات والمخرجات I/O إن كانت قاعدة البيانات موجودة في نفس القسم “Partition” الموجود به بقية نظام التشغيل. وسنتعلم في هذا الدليل كيفية نقل مجلد البيانات في نظام PostgreSQL لإدارة قواعد البيانات إلى مكان جديد في حالة كنت تريد إضافة مساحة جديدة أو تبحث في طرق لتحسين الأداء، أو الاستفادة من مزايا التخزين الأخرى التي توفرها أنظمة مصفوفات الأقراص المستقلة RAID، أو عُقّدُ التخزين الشبكية “Network Block Storages”، أو غيرها من الأجهزة وأنظمة التخزين. المتطلبات خادم يعمل بتوزيعة أوبنتو 16.04، عليها مستخدم له صلاحية sudo -انتبه، ليس المستخدم الجذر root-. خادم PostgreSQL، يمكنك قراءة كيفية تثبيت واستخدام PostgreSQL على أوبنتو في هذا المقال. وسننقل البيانات إلى وحدة تخزينية “Block Storage Device” لها نقطة الضم التالية /mnt/volume-nyc1-01. فائدة: تكون اﻷقراص أو اﻷجهزة/الوحدات “Devices”بشكل عام في أنظمة لينكس عبارة عن ملفات، وكل جهاز “قسم/partition من القرص الصلب مثلًا” له نقطة ضم “mount point” يكون فيها محتواه. الخطوة الأولى: نقل مجلد بيانات PostgreSQL سنبدأ جلسة PostgreSQL تفاعلية أولًا كي نتحقق من المكان الحالي للمجلد، وسنستخدم أمر psql للدخول إلى شاشة تفاعلية “interactive monitor”، ثم نضيفu postgres- لتخبر sudo أن ينفِّذ أمر psql كمستخدم postgre. $ sudo -u postgres psql وبمجرد دخولك إلى الشاشة، اطلب عرض مجلد البيانات: postgres=# SHOW data_directory; وسيكون الخرج في حالتنا هكذا: data_directory ------------------------------ /var/lib/postgresql/9.5/main (1 row) ويؤكد هذا الخرج أن PostgreSQL مُعدَّ لاستخدام مجلد البيانات الافتراضي main الموجود في المسار ذي اللون الأحمر بالأعلى، إذًا هذا هو المجلد الذي سننقله. اكتب q\ للخروج بمجرد أن تتأكد من وجود المجلد في النظام. سنوقف PostgreSQL لضمان سلامة البيانات، قبل أن نغيّر شيئًا في مجلد main: $ sudo systemctl stop postgresql ثم نستعلم عن حالة PostgreSQL لنتأكد أنها أُوقِفَت، إذ أن systemctl ﻻ يعرض نتائج أوامر إدارة الخدمات في النظام: $ sudo systemctl status postgresql وتتأكد أنها أوقفت إن كان السطر الأخير في الخرج يقول لك إن الخادم قد توقف: . . . Jul 22 16:22:44 ubuntu-512mb-nyc1-01 systemd[1]: Stopped PostgreSQL RDBMS. والآن، سننسخ مجلد البيانات الحالي إلى مكان جديد باستخدام rsync، مع استخدام لاحقة a- للحفاظ على الصلاحيات وبقية خصائص المجلد، وv- لعرض خرج مفصّل كي تتابع ما يحدث. ملاحظة: تأكد من عدم وجود شرطة مائلة بعد اسم المجلد، والتي قد تضاف تلقائيًا إن استخدمت زر tab لإكمال النصوص، إذ أن rsync سيضع محتوى المجلد في نقطة الضم بدلًا من مجلد محتوي لـ PostgreSQL. سنبدأ rsync من مجلد postgresql من أجل محاكاة هيكل المجلد الأصلي في المكان الجديد، وسنتجنب مشاكل الصلاحيات للترقيات المستقبلية عبر إنشاء مجلد postgresql داخل نقطة الضم “mount point” والإبقاء على ملكيته لمستخدم PostgreSQL. ونحن لا نحتاج هنا إلى مجلد الإصدار 9.5 بما أننا حددنا مكان المجلد بوضوح في ملفpostgresql.conf، لكن ﻻ بأس باتباع أسلوب المشروع خاصة إن كانت هناك حاجة في المستقبل لتشغيل عدة إصدارات من PostgreSQL: $ sudo rsync -av /var/lib/postgresql /mnt/volume-nyc1-01 وسنعيد تسمية المجلد الحالي مع امتداد bak. ونبقي عليه حتى نتأكد أن النقل تم بنجاح، ونحن نعيد تسميته من أجل تجنب أي لبس قد يحدث من ملفات موجودة في كلا من المكان القديم والجديد: $ sudo mv /var/lib/postgresql/9.5/main /var/lib/postgresql/9.5/main.bak وبهذا نكون جاهزين لننتقل إلى ضبط إعدادات PostgreSQL. الخطوة الثانية: التوجيه إلى المكان الجديد للبيانات تُضبط القيمة الافتراضية لـ data_directory في إعدادات PostgreSQL على أنه موجود في هذا المسار: /var/lib/postgresql/9.5/main وتوجد هذه الإعدادات في ملف postgresql.conf، وسنغيّر الآن تلك الإعدادات لنضع المكان الجديد لمجلد البيانات: $ sudo nano /etc/postgresql/9.5/main/postgresql.conf ابحث عن السطر الذي يبدأ بكلمة data_directory وغيّر مساره إلى المسار الموجود فيه المجلد الجديد، وفي حالتنا فإن هذا السطر يجب أن يبدو هكذا بعد تغيير المسار: . . . data_directory = '/mnt/volume-nyc1-01/postgresql/9.5/main' . . . الخطوة الثالثة: إعادة تشغيل PostgreSQL نحن الآن جاهزون لتشغيل PostgreSQL، الصق الأمر الأول لتشغيله، والثاني لمعرفة حالته: $ sudo systemctl start postgresql $ sudo systemctl status postgresql افتح شاشة PostgreSQL التفاعلية: $ sudo -u postgres psql اطلب عرض قيمة data_directory لنتأكد أن مجلد البيانات الجديد هو المستخدَم الآن: postgres=# SHOW data_directory; يجب أن يكون الخرج هكذا في حالتنا: data_directory ----------------------------------------- /mnt/volume-nyc1-01/postgresql/9.5/main (1 row) وننتهز هذه الفرصة بما أننا أعدنا تشغيل PostgreSQL وتأكدنا أنه يستخدم المكان الجديد، كي نتأكد أن قاعدة البيانات تعمل بكفاءة. احذف مجلد البيانات الاحتياطي -القديم- بمجرد أن تتأكد من سلامة أي بيانات موجودة مسبقًا: $ sudo rm -Rf /var/lib/postgresql/9.5/main.bak أعد تشغيل PostgreSQL مرة أخيرة للتأكد من أنها تعمل كما يجب: $ sudo systemctl start postgresql $ sudo systemctl status postgresql الخلاصة يجب أن تستخدم قاعدةُ بياناتك الآن المجلدَ الجديد في المكان الذي اخترتَه له، وهذا يعني أنك تستطيع الآن زيادة حجم قاعدة البيانات بما أنك نقلتها من المكان القديم ذي المساحة المحدودة. ترجمة -بتصرف- لمقال How To Move a PostgreSQL Data Directory to a New Location on Ubuntu 16.04 لصاحبته Melissa Anderson
  8. چانجو هو إطار عمل مرن يستخدم ﻹنشاء تطبيقات بلغة بايثون، وهذه التطبيقات مُجهزة تلقائيًا لتخزين البيانات في ملف قاعدة بيانات SQLite خفيف ويعمل بشكل جيد في الاستعمالات العادية والصغيرة، لكن استخدام نظام إدارة قواعد بيانات تقليدي سيطوِّر أداء التطبيق تحت ضغط زيادة المستخدمين أو زيادة حجم البيانات. وسنستعرض في هذا الدليل كيفية تثبيت وتهيئة PostgreSQL لاستخدامها مع تطبيقات Django، وسنثبّت الحزم اللازمة وننشئ اعتماديات قاعدة البيانات للتطبيق، ثم نبدأ مشروع Django جديد ونجهّزه ليستخدم هذه اﻹعدادات. المتطلبات خادم يعمل بتوزيعة ديبيان جنو/لينكس إصدار 8 “Jessie” مع مستخدم -غير الجذر- له صلاحية sudo. تثبيت الحزم من مستودعات ديبيان سنثبّت أولًا pip -مدير حزم بايثون- لتثبيت وإدارة حزم بايثون، وسنثبّت أيضًا برنامج قاعدة البيانات والمكتبات اللازمة للتفاعل معهم. يحتاج إصدار بايثون 2 و3 إلى حزم مختلفة قليلًا عن بعضها، لذا اختر الأوامر التي تتوافق مع إصدار بايثون لديك. انسخ الأوامر التالية إن كنت تستخدم بايثون 2: $ sudo apt-get update $ sudo apt-get install python-pip python-dev libpq-dev postgresql postgresql-contrib وهذه إن كنت تستخدم بايثون 3: $ sudo apt-get update $ sudo apt-get install python3-pip python3-dev libpq-dev postgresql postgresql-contrib إنشاء قاعدة البيانات والمستخدم الخاص بها يستخدم Postgres نظام توثيق للاتصالات المحلية اسمه “توثيق النِّدّ Peer Authentication”. وهذا يعني أنه إذا كان اسم المستخدم في نظام التشغيل يطابق اسم Postgres صالح، فإن هذا المستخدم يمكنه الولوج دون الحاجة إلى توثيق. وقد أُنشئ مستخدم للنظام اسمه postgres ليتوافق مع مستخدم postgres المدير لنظام PostgreSQL، وسنحتاج هذا المستخدم لتنفيذ مهام إدارية، ويمكننا أيضًا أن نستخدم sudo وندخل اسم المستخدم من خلال لاحقة u-. سجل الدخول إلى جلسة Postgres تفاعلية عبر كتابة الأمر التالي: $ sudo -u postgres psql وسننشئ أولًا قاعدة بيانات لمشروع Django، ويجب أن يكون لكل مشروع قاعدة البيانات الخاصة به للدواعي الأمنية. وسنسمّي قاعدة البيانات في هذا المقال باسم myproject، لكن من اﻷفضل طبعًا أن تختار اسمًا يصلح لمشروع حقيقي. postgres=# CREATE DATABASE myproject; سيكون الخرج هكذا: CREATE DATABASE أنشئ مستخدمًا لقاعدة البيانات، وسنستعمله للاتصال بقاعدة البيانات والتفاعل معها، وﻻ تنس أن تستبدل myprojectuser باسم قاعدة البيانات الذي اخترته، وتغيّر password بكلمة سر قوية: postgres=# CREATE USER myprojectuser WITH PASSWORD 'password'; سيكون الخرج هكذا: CREATE ROLE واﻵن سنعدّل بعض معاملات الاتصال لهذا المستخدم لتسريع عمليات قاعدة البيانات بما أن القيم الصحيحة لن تضطر إلى أن تمر بعمليات استعلام وضبط في كل مرة يحدث اتصال. فسنضبط الترميز الافتراضي على UTF-8 وهو الترميز الافتراضي الذي يتوقعه Django. وسنضبط القاعدة الافترضية لعزل التعاملات “default transactio isolation scheme” على read committed، والتي تحظر القراءة من التعاملات غير المرسلة “uncommitted transactions”. وأخيرًا، سنضبط المنطقة الزمنية الافتراضية لمشاريع Django على UTC. وهذه الإعدادات يُنصح بها في التوثيق الرسمي لمشروع Django، دعنا نكتب ذلك الآن: postgres=# ALTER ROLE myprojectuser SET client_encoding TO 'utf8'; postgres=# ALTER ROLE myprojectuser SET default_transaction_isolation TO 'read committed'; postgres=# ALTER ROLE myprojectuser SET timezone TO 'UTC'; ويكون الخرج هكذا: ALTER ROLE ALTER ROLE ALTER ROLE وكل ما نحتاجه الآن هو إعطاء مستخدم قاعدة البيانات صلاحيات الوصول لقاعدة البيانات التي أنشأناها للتو: postgres=# GRANT ALL PRIVILEGES ON DATABASE myproject TO myprojectuser; ويكون الخرج هكذا: GRANT اخرج الآن من محث SQL: postgres=# \q يجب أن تعود الطرفية بك الآن إلى جلسة shell السابقة. تثبيت Django في بيئة افتراضية يمكننا تثبيت Django الآن بما أن قاعدة بياناتنا قد صارت جاهزة، وسنثبته وكل اعتمادياته داخل بيئة بايثون افتراضية لتحقيق مرونة أكثر، وستتيح لنا حزمة virtualenv إنشاء هذه البيئات بسهولة. اكتب هذا السطر في الطرفية لتثبيت virtualenv إن كنت تستخدم Python 2: $ sudo pip install virtualenv وهذا إن كنت تستخدم Python 3: $ sudo pip3 install virtualenv أنشئ مجلدًا جديدًا باسم مشروعك (استبدل اسم مشروعك بـ myproject الذي اخترناه هنا لغرض المثال فقط)، ثم انتقل داخله: $ mkdir ~/myproject $ cd ~/myproject اكتب السطر التالي لإنشاء بيئة افتراضية لتخزين متطلبات بايثون لمشروع Django الخاص بنا: $ virtualenv venv وذلك سيثبّت نسخة محلية من بايثون وأمر pip محلي داخل مجلد اسمه venv داخل مجلد مشروعك. نحتاج الآن إلى تفعيل البيئة الافتراضية قبل تثبيت البرامج داخلها، ويمكننا فعل ذلك عبر الأمر التالي: $ source venv/bin/activate سيتغير المحثّ الآن ليشير إلى أنك تعمل الآن داخل بيئة افتراضية وسيبدو شبيهًا بهذا: (venv)user@host:~/myproject$ ويمكننا الآن تثبيت Django باستخدام pip، ثم سنثبت psycopg2 التي ستتيح لنا استخدام قاعدة البيانات التي أعددناها: (venv) $ pip install django psycopg2 يمكننا الآن أن نبدأ مشروع Django داخل مجلد المشروع (myproject في حالتنا)، وسينشئ هذا مجلدًا فرعيًا بنفس اسم مجلد المشروع ليحتوي الشفرة البرمجية، إضافة إلى مخطوطة إدارية “management script” داخل المجلد الحالي: (venv) $ django-admin.py startproject myproject . ملاحظة: تأكد من إضافة النقطة في نهاية الأمر السابق، فنحن ﻻ نحتاج مستوىً فرعيًا آخر في المجلد بما أننا أنشأنا مجلدًا أبًا للمشروع “parent directory” ليحتوي مجلد البيئة الوهمية، وهو ما كان سيحدث لو لم نضع النقطة في نهاية سطر الأوامر السابق. يجب أن تكون هيكلة مجلدك الحالي شبيهة بهذا: . └── ./myproject/ ├── manage.py ├── myproject/ │ ├── __init__.py │ ├── settings.py │ ├── urls.py │ └── wsgi.py └── venv/ └── . . . وكما ترى فإن لدينا مجلدًا أبًا للمشروع يحتوي مخطوطة manage.py، ومجلد داخلي للمشروع، ومجلد البيئة الوهمية venv الذي أنشأناه قبل قليل. ضبط إعدادات قاعدة بيانات Django سنضبط الآن مشروعنا كي نستخدم قاعدة البيانات التي أنشأناها، افتح ملف الإعدادات الرئيسية لمشروع Django الموجود في المجلد الفرعي للمشروع: (ملاحظة: استبدل مشروعك بـmyproject) (venv) $ nano ~/myproject/myproject/settings.py قد تحتاج أيضًا إلى تعديل تعليمة ALLOWED_HOSTS قبل إعداد قاعدة البيانات، وتلك التعليمةتحدد قائمة عناوين أو أسماء نطاقات مسموح باستخدامها للاتصال مع مشروع Django، فأي طلب اتصال بترويسة HOST ليس في هذه القائمة سيتم اعتراضه. ويتطلّب Django أن تعدّل هذه التعليمة كي يمنع فئة معينة من الاختراقات الأمنية. ولتعديل هذه التعليمة، أدخل -بين قوسين مربعيْن- عناوين IP أو أسماء النطاقات المرتبطة بخادم Django الخاص بك ويجب أن يكون كل نطاق أو عنوان IP داخل علامتي تنصيص مفردتيْن، وتفصل بين كل واحد منهم فاصلة “,”. وإن رغبت في الاستجابة لطلبات من نطاق ما إضافة إلى النطاقات الفرعية له فضع نقطة قبله أثناء كتابته. إليك أمثلة تعرض لك الطريقة الصحيحة لصيغة هذه التعليمة، استبدل النطاقات وعناوين الـ IP التي تريدها بالأمثلة الموجودة هنا: . . . # أبسط حالة: اكتب العناوين وأسماء النطاقات لخادم چانجو الخاص بك # ALLOWED_HOSTS = [ 'example.com', '203.0.113.5'] # ابدأ اسم النطاق بنقطة للاستجابة له ولأي نطاق فرعي # ALLOWED_HOSTS = ['.example.com', '203.0.113.5'] ALLOWED_HOSTS = ['your_server_domain_or_IP', 'second_domain_or_IP', . . .] واﻵن ابحث عن قسم DATABASES الذي يبدو كهذا: . . . DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), } } . . . هذا القسم يستخدم SQLite كقاعدة بيانات، ونريد تعديل هذه لكي يستخدم قاعدة بيانات PostgreSQL الخاصة بنا. فأول ما نفعله هو تغيير المحرك كي يستخدم محوّل postgresql_psycopg2 بدلًا من sqlite3، ثم نستخدم اسم قاعدة بياناتنا (myproject في مثالنا) في خانة NAME، ونضيف بعض بيانات تسجيل الدخول مثل اسم المستخدم وكلمة المرور، والمضيف الذي سيتصل به، وسنضيف خانة Port ونتركها فارغة كي يتم اختيار المنفذ الافتراضي: . . . DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': 'myproject', 'USER': 'myprojectuser', 'PASSWORD': 'password', 'HOST': 'localhost', 'PORT': '', } } . . . واﻵن احفظ الملف وأغلقه. نقل قاعدة البيانات واختبار مشروعك يمكننا الآن نقل هياكل البيانات -بما أننا أنهينا ضبط إعدادات Django- إلى قاعدة بياناتنا واختبار الخادم، سنبدأ بإنشاء هيكل ابتدائي لقاعدة البيانات بما أننا ﻻ نملك أي بيانات حقيقية بعد: (venv) $ cd ~/myproject (venv) $ ./manage.py makemigrations (venv) $ ./manage.py migrate أنشئ حسابًا إداريًا: (venv) $ ./manage.py createsuperuser وسيطلب منك النظام اختيار اسم لمستخدم هذا الحساب وعنوان بريد وكلمة مرور له. ملاحظة: قبل أن تجرب خادم التطوير، تأكد أن تفتح منفذًا في جدارك الناري، وإن كنت تستخدم جدار ufw، فإن فتح المنفذ المناسب يتم عبر كتابة هذا الأمر: (venv) $ sudo ufw allow 8000 أما إن كنت تستخدم جدار iptables، فإن الأمر الذي تحتاجه يعتمد على اﻹعدادات التي تستخدمها، الأمر التالي يصلح ﻷغلب الإعدادات: (venv) $ sudo iptables -I INPUT -p tcp --dport 8000 -j ACCEPT يمكنك الآن اختبار عمل قاعدة بياناتك بشكل صحيح من خلال بدء تشغيل خادم تطوير Django: (venv) $ ./manage.py runserver 0.0.0.0:8000 اذهب إلى عنوان IP الخاص بالخادم أو اسم النطاق الخاص به متبوعًا بـ 8000: للوصول إلى الصفحة الجذر الافتراضية لـDjango: http://server_domain_or_IP:8000 يجب أن ترى صفحة index الافتراضية: ضع admin/ في نهاية الرابط، يجب أن تكون قادرًا على الوصول لشاشة تسجيل الدخول إلى واجهة التحكم: أدخل اسم المستخدم وكلمة المرور اللتان أنشأتهما قبل قليل باستخدام createsuperuser، فتدخل إلى لوحة التحكم: وبدخولنا للوحة التحكم نكون قد تأكدنا أن قاعدة البيانات قد خزّنت معلومات حساب المستخدم الخاص بنا ويمكننا الدخول إليه دون مشاكل. يمكنك الآن إيقاف الخادم حين تنتهي من تحققك بالضغط على ctrl-c داخل شاشة الطرفية. وإن أردت وسيلة أخرى لاختبار قاعدة البيانات يمكنك الاستعلام داخل قاعدة بيانات Postgres نفسها باستخدام psql، فمثلًا يمكنك الاتصال بقاعدة بيانات مشروعك (myproject) عن طريق المستخدم myprojectuser وإظهار كل الجداول المتاحة بكتابة الأمر التالي: (venv) $ psql -W myproject myprojectuser -h 127.0.0.1 -f <(echo '\dt') لتفصيل اﻷمر السابق، فإنه يجب أن نستخدم ﻻحقة h- من أجل الاتصال بالمضيف المحلي localhost عبر الشبكة لتحديد أننا نريد توثيق كلمة المرور بدلًا من توثيق النّدّ. أما W- فستجعل psql يسألك عن كلمة المرور المناسبة، وf- لتمرير الأمر الوصفي “meta-command” في psql لتنفيذه، وdt\ لعرض كل الجداول في قاعدة البيانات. List of relations Schema | Name | Type | Owner --------+----------------------------+-------+--------------- public | auth_group | table | myprojectuser public | auth_group_permissions | table | myprojectuser public | auth_permission | table | myprojectuser public | auth_user | table | myprojectuser public | auth_user_groups | table | myprojectuser public | auth_user_user_permissions | table | myprojectuser public | django_admin_log | table | myprojectuser public | django_content_type | table | myprojectuser public | django_migrations | table | myprojectuser public | django_session | table | myprojectuser (10 rows) وكما ترى فإن Django قد أنشأ بعض الجداول داخل قاعدة البيانات الخاصة بنا، وهذا يؤكد لنا أن إعداداتنا كانت صحيحة. الخلاصة قد عرضنا في هذا الدليل كيفية تثبيت وإعداد PostgreSQL كقاعدة بيانات في النهاية الخلفية لمشروع Django، إذ تستفيد أغلب المشاريع من استخدام نظم إدارة متطورة لقواعد البيانات، رغم أن SQLite تتعامل بشكل جيد أثناء تطوير المشروع وأثناء الاستخدام الخفيف له. ترجمة -بتصرف- لمقال How To Use Postgresql with your Django Application on Debian 8 لصاحبه Justin Ellingwood.
  9. أقدّم لك في هذا المقال طرقًا محددة ومجرّبة ويمكنك تطبيقها مباشرة، كي تقنع العميل أنك من يبحث عنه وأنك الأفضل من بين خمس مصممين -أو مستقلين- آخرين تواصلَ معهم قبلك، فأنا أرغب بمساعدتك في التميز في هذا البحر من المنافسة بما أني عملت مع مئات الشركات من قبل وعرفت الطرق التي تنجح وتلك التي تفشل. وما هذا المقال إﻻ محاولة لمساعدتك في تجنب أخطاء وقعت أنا فيها من قبل كي يتطور عملك بشكل أسرع وأكثر كفاءة، ذلك أنك إن لم تستطع الفوز بعملاء فهذا يعني نهاية نشاطك التجاري. دعنا نلق نظرة على هذه الطرق: 1. اظفر بثقة العميل بسرعة ﻻ شك أن تحقيق الثقة هو حجر الزاوية في الفوز بأي عمل، وإحدى أسرع الطرق التي تظفر بها بعميل محتمل هي أن تريه أنك أهل لثقته، لكن كيف يمكن تحقيق هذا مع شخص تتحدث معه لأول مرة؟ إليك الطريقة: انقل تركيز الحديث بسرعة عليه وعلى شركته، وأظهر له أنك تريد التعرف حقًا على ما يرغب في إنجازه، واعرف قصته وأهدافه وجمهوره وما يفضّله ومنافسيه، … إلخ. باختصار، سل أسئلة عملية وتتعلق مباشرة به وبشركته، فتلك المكانة التي تسمع عنها للانطباع الأول حقيقية، فضع كل الاهتمام عليه من البداية كي يثق أكثر بك، فالثقة هي أصل كل انطباع أولي ناجح، ومن ثمّ تفوز به كعميل لك. 2. حافظ على استمارة التواصل الخاصة بك قصيرة ومحدودة قد تظن أن تقليل عدد الحقول في استمارة التواصل لن يؤثر من قريب أو بعيد على معدل تحويل عملائك المحتملين، لكن شركة Hubspot قد حللت أكثر من 40 ألف صفحة هبوط لعملائها، ووجد دان زاريلّا -عالم شبكات اجتماعية ومؤلف- أن تقليل عدد حقول استمارة التواصل من 4 حقول إلى 3 قد زاد معدل تحويل العملاء بنسبة 50%، هذا يعني زيادة 50% في الأرباح لمجرد إحداث تغيير بسيط كهذا. استخدم أدوات بسيطة مثل Typeform وGravity Forms من أجل إنشاء استمارات قصيرة وفعّالة. 3. اتصل بهم هاتفيًا ﻻ تقلل من أهمية الاتصال الهاتفي التقليدي، فهو طريقة سريعة لكسب ثقة عميلك المحتمل، ولقد استغرقت وقتًا طويلًا قبل أن أسأل السؤال البديهي “أي طريقة أكثر فعالية في تحويل العملاء، الهاتف أم البريد؟”، وقد جربت كلا الطريقتين بنفسي، وإليك النتيجة: كان معدل تحول العملاء حين أستجيب لمشروع ما عبر البريد هو 21%، بينما تزيد تلك النسبة إلى 65% حين أتحدث إليهم عبر الهاتف! هذه زيادة بمقدار 44% حين أستخدم الهاتف، وذاك وحده قد يغيّر حال عملك. لاحظ أنك تستطيع إعداد أداة جدولة مثل Calendly حيث يستطيع العملاء جدولة اتصالات هاتفية معك وفق اﻷوقات المتاحة مسبقًا في جدولك. 4. شهادة العميل المثالية لعلك تتوقع أنك يجب أن تحصل على شهادات ترتبط بعملك، لكن كيف تبدو تلك الشهادة المثالية التي تفيدك؟ يزعم ديريك هالبرن مؤسس مدونة Social Triggers الشهيرة أنه قد توصّل إلى مكونات شهادة العميل المثالية، وهي كالتالي: المشكلة (أو المعتقد) الحل (أو المعتقد الجديد) النتائج (أو الإنجازات) ومهمتنا نحن كعاملين في مجال إبداعي مثل التصميم هي البحث عن المشكلة وإيجاد حل لها، وحين تتكامل شهادات عملائك السابقين مع الحل الذي تعرضه فإن العميل يلاحظ ذلك، وسيشجعه هذا على توظيفك، لماذا؟ ﻷن لديه إثباتًا عن عملك السابق. وتظهر قوة المعاملة بالمثل هنا عند طلب شهادات أو تقييمات من عملاء حين تستخدمها في التوقيت الصحيح، فمثلًا لنقل أنك تعمل على تصميم شعار لعميل ما، وقد أعجبته النسخ الجديدة من الشعار النهائي له، فهنا تكون فرصتك سانحة لطلب شهادة منه أو تقييم عن عملك معه، إليك نموذجًا مما يجب أن تكون عليه رسالتك إليه لطلب تقييم: أرأيت كيف أن أسلوب الرسالة باﻷعلى خفيف ومناسب لطلب شيء ما؟ لم أجد عميلًا يرفض إرسال تقييمه كرد على هذا اﻷسلوب في الطلب، وإنني أضعها لك ها هنا كي تستخدمها كما تشاء، لكن ﻻ تنس اتباع النقاط الثلاث التي ذكرتها لك قبل قليل في هيكلة شهادة العميل التي ترغب فيها، وستساعد تلك الهيكلة على تنظيم أفكاره أثناء كتابة التقييم كي يسهل عليه كتابته. كذلك من المهم ملاحظة أن أيًا مما ذكرت لك لن يصلح إن كان تواصلك مع عميلك سيئًا خلال المشروع، كأن تفوّت مواعيد التسليم أو تقدّم إنتاجًا ﻻ يرضيه، لذا ابدأ الآن في جمع شهادات من عملائك، وستشكر نفسك لاحقًا. 5. اذكر قصتك بكل ما فيها وإني أريدك أن تفكر بعكس المثل القائل “زيّف النجاح إلى أن تحققه”، فالناس ميّالة إلى أولئك الذين يتحدثون بصراحة، ذلك أن المرات التي نفشل فيها فيها تجعلنا أقوى، وبالتالي تكون قصتك أكثر مصداقية وقوة، كما قال توماس إديسون من قبل “إنني لم أفشل، بل وجدت 10000 طريقة لم تنجح”. وأنا أعلم أن إظهار فشلك وأخطائك للناس قد يكون منافيًا للبديهة، لكن الناس تتأثر بها، إذ أن كل مستمع لتجربتك خاض أو يخوض منعطفًا صعبًا في حياته بشكل ما، وإن حذفت الأخطاء التي مررت بها من قصتك في عملك فسيحجب ذلك اﻷثر الذي يمكن أن تحدثه قصتك، فكن شخصيتك الحقيقية كي تكسب عملاء أكثر يتعاطفون معك أو حتى يشاركونك قصة مشابهة من حيواتهم. 6. عوامل تحويل العملاء عن طريق المواقع نحن ننسى عادة أن هدف موقعنا على الإنترنت هو تحويل الزوار إلى عملاء، ذلك أن فكرة التصميم المرتكز على التحويل يمكن أن تكون غريبة، دعنا نلق نظرة الآن على كيفية زيادة معدل التحويل من الموقع من أجل كسب عملاء جدد. ولقد أصبحت سرعة صفحة ما عاملًا في نظر جوجل ضمن مئتي عامل آخر لتهيئة المواقع لمحركات البحث -بصراحة، أحتاج أن أطبّق هذه النقطة في موقعي الشخصي-. وقد أجرت Kissmetrics دراسة وجدت فيها أن نصف الزوّار غادروا الموقع بعد انتظار 3 ثوان أو أكثر من أجل تحميل الصفحة على حواسيبهم المكتبية -حين يأتي أحدهم إلى موقعك ويغادر دون زيارة صفحة أخرى فإن هذا يسمّى ارتداد-. وهكذا تخسر نصف عملاءك المحتملين ﻷن صفحتك أبطأ من الحد المقبول، فحاول أﻻ تزيد مدة تحميل صفحتك عن ثانيتين إلى ثلاث، واستخدام أدوات مثل GTMetrix وPingdom لقياس سرعة تحميل موقعك، وستعطيك GTMetrix نصائح لتهيئة موقعك كي يعمل بكفاءة. 7. معرض أعمال الموقع نحن نتعلم بأعيننا بشكل أفضل، فالدماغ يعالج المعلومات البصرية أسرع من النصوص المكتوبة بستين ألف مرة، فهل يعرض معرضك أفضل الأعمال التي نفّذتها؟ هل يظهر تنوعها؟ هل يبدأ وينتهي بقطع فريدة من أعمالك؟ لقد تحدثنا سابقًا عن تطوير الثقة بينك وبين العميل، ويبرز معرض أعمالك استحقاقك لهذه الثقة، فالعملاء المحتملين يبحثون عن الاهتمام والجودة والإبداع الذي تضعه في أعمالك، وسيقارنون أعمالك مباشرة مع غيرك كي يقرروا من اﻷنسب لهم. وإني ﻷذكر كلمة الأستاذ مازيلان من كلية التصميم “إن مهارتك تساوي أقل قطعة في معرض أعمالك”، فهناك حكمة بالغة في هذه الكلمة، فلا تخف من تقليل عدد أعمالك في معرضك إلى عدد قليل من أفضل ما نفّذته، فإن كان لديك ثلاثين تصميمًا وثمانية منهم أفضل من الباقي، فليكن معرض أعمالك ثمانية فقط، فالجودة تتفوق على الكم دومًا هنا. 8. جمال المتابعة لنقل أنك تتصل بعميل محتمل وتشعر بوجود مبشّرات لحدوث صفقة بينكما، وتنتظر الرد منه بمباشرة تنفيذ المشروع، لكن الرد لا يأتي، ويطول انتظارك ليمتد إلى شهر دون أن تسمع إجابة من عميلك. وهنا يأتي دور المتابعة، فبعد محادثتك الأولى، انتظر يومين أو ثلاثة قبل أن تراجع عميلك، ولقد وجدت أن البريد يصلح للمتابعة أفضل من الهاتف، ذلك أنك ﻻ تزال في منتصف عملية اتخاذ للقرار، أو أن العميل لم يفكر في المشروع بعمق، فهنا تكون الرسالة البريدية أقل إلحاحًا هنا. وحين تراجع عميلك للسؤال عن المشروع، ﻻ تقل فقط “هل تريد المضي قدمًا في مشروعك؟”، لكن أرسل نماذج من أعمالك بدلًا من ذلك، بالتوازي مع العناصر التي يحتاجها، وأرسل تقييمات عملائك، والمنافع التي سيحصل عليها مرتّبة، وعملاء يمكن أن يرجع إليهم، وروابط مباشرة إلى أعمالك، إلخ. إليك مثالًا على رسالة يمكنك استخدامها كي تضمن فوزك بعملاء جدد: لذا ﻻ تنس متابعة عملائك دون أن تلحّ عليهم، ففي أحيان كثيرة يكون العميل مشغولًا ويحتاج تذكرة بسيطة كي يسعى في تنفيذ مشروعه أو إتمامه. 9. ابن علاقات أصيلة مع مؤثرين في مجالك قد أثرّت هذه النقطة على عملي في التصميم بشكل إيجابي، وأرغب في أن يكون لك مثل ذلك أيضًا، ولدي قصة قصيرة ستساعدك على تصوّر هذه النقطة. تواصلت قبل بضع سنين مع جيكوب كاس الذي يدير مدونة التصميم الشهيرة Just Creative ، وتابعت مدونته عن قرب، ثم قررت أن أتواصل معه يومًا ﻷسأله عن رأيه في الدليل الذي كتبتُه في تصميم الشعارات، والذي زاد عن عشرين ألف كلمة. فأدهشني أن رد علي سريعًا، وذكر في رده أنه قرأ الدليل كله، وأشار علي بتحويله إلى كتاب إلكتروني أو مطبوع. صراحة لم يدر بخلدي أن أحول الدليل لكتاب من قبل، ثم صرّح في وقت ﻻحق بكلمة قوية عن الدليل فقال: “الدليل المثالي لتصميم الشعارات-The Ultimate Guide to Logo Design” هو أكثر مصدر شامل رأيته إلى الآن، وﻻ يكلّف وقتًا كبيرًا لقراءته، فأسلوب كايل -الكاتب الأجنبي، قابل للتطبيق وسهل الفهم، ولديه نبرة تحدد مفاتيح النجاح من تجربته الخاصة في العمل مع مئات الشركات الكبيرة والصغيرة. وقد حوّلت الدليل إلى كتاب إلكتروني أخذًا بنصيحته، واشتراه كثير من المصممين من 43 دولة في ست قارات، كل ذلك من مجرد رسالة بريدية صغيرة تسأله عن رأيه. واﻵن أنا وجيكوب على تواصل منتظم، وأعدّه صديقًا جيدًا لي، وأنا ممتن لرغبته في متابعة الترويج لدليل الشعارات وعرضه هنا وهنا في مدونته. لذا فإن السؤال الذي يطرح نفسه هو “من هم المؤثرين الذين تحترمهم والمرشدين المبدعين الذين تتطلع إليهم؟” ﻻ تخش التواصل معهم وبدء محادثة صادقة حقيقية، فليس لديك ما تخسره، بل على العكس قد تكسب كما كسبت أنا من ورائه، فقد يقدموك في مواقعهم، وتكتب ضيفًا في مدوناتهم، وتقدّم أعمالًا في مقابل روابط إلى معرض أعمالك. واعلم أن مصداقيتك ومكانتك ستزيد بشكل كبير حين يقدّمك مؤثر ما في مجالك، وستزيد فرصتك في الفوز بعملاء جدد. 10. ﻻ تخف من الشفافية أنا أخبر عملائي بوضوح أني لست أرخص مصمم في السوق، لكن إن كانوا يريدون مصممًا يسعى للتميّز في إنتاج حلول ممتازة لشركاتهم، فإنني الخيار الأمثل لهم. وإن هذه الصراحة مع العملاء تحقق لك فائدتين: مستوى أعلى من الصراحة (أني لست أرخص مصمم…) سيعود الاستثمار معي بفائدة عليهم (إنتاج حلول ممتازة…) لذا ﻻ تخف من كونك صريحًا مع عملائك، فلا شك أن ستجني منافع تلك الصراحة فيما بعد. 11. سل هذا السؤال البسيط لم أرَ شركة أو منظمة ممن عملت معها سابقًا ﻻ تذكر لي أنها مقيدة بميزانية، لذا دعنا نخاطبهم بنفس اللغة، وهذا السؤال البسيط سيساعدك على الفوز بعملاء أكثر مما يمكنك تحمله، صدقًا. إليك الأمر: كيف يتناسب سعري مع ميزانيتك؟ اذكر هذا مباشرة بعد ذكرك لسعرك، وستفتح على نفسك طرقًا جديدة للفوز بالعميل، لكن ما الذي يجعل هذا السؤال مميزًا؟ هناك ثلاث حالات يمكن أن تقع فيها إجابتهم: الحالة الأولى: متوافق مع ميزانيتك أنت موافق على الميزانية. ممتاز. الحالة الثانية: قريب من الميزانية إن كانت ميزانية العميل أقل قليلًا مما تطلبه، فيمكن أن نتطور في الأمر إلى اتفاق في صالح الطرفين، تذكّر أن تحدد قيمة خدماتك وكم يساوي هذا المشروع بالنسبة لك. لكن على أي حال، اعلم أن هناك حالات يكون فيها التفاوض على السعر من مصلحة الطرفين، فيمكن أن تقدّم خصمًا بسيطًا لهذا المشروع، في مقابل عمل متواصل فيما بعد، فقد تخصم 50. فلا تفعل هذا بنفسك وﻻ بزملائك من المصممين ولا بصناعة التصميم ككل، فأنا وأنت ونحن، كلنا مسؤولون، وكل مصمم يمكن أن يكون له بصمة إيجابية أو سلبية في قيمة أعمالنا لعملائنا، فنحن نعرف كم أن التواصل المرئي الفعّال مؤثر على أي مؤسسة، فلنقيّم أعمالنا بما تستحق، كي يفعل عملاؤنا ذلك أيضًا معنا. واﻵن اخبرني، هل جربت طرقًا للفوز بعميل ونجحت معك؟ ترجمة -بتصرف- لمقال Creative, Win More Clients – 14 Proven Ways لصاحبه Kyle Courtright حقوق الصورة البارزة محفوظة لـ Freepik
  10. سنتعلم في هذا الدرس كيفية ترسيخ هويّة بصرية قوية لموقعك عبر تصميم أيقونة الهوية “fav icon” واستخدامها في ووردبريس، ليراها الزائر إلى موقعك بمجرد وصوله، وإبراز الموقع وسط زحام ألسنة المواقع التي لديه في المتصفح عن يمين موقعك وشماله، وسنتعرّف أيضًا كيف ننقل نفس الهوية البصرية عبر الأجهزة المختلفة التي قد يزورك منها المستخدمون. تعريفٌ بأيقونة الهوية Favorite Icon هي تلك الصور الصغيرة التي تراها في ألسنة المتصفح بجانب عنوان الموقع، وتراها أيضًا في تاريخ التصفح والمواقع المفضّلة، سواء في المتصفح العادي أو على الأجهزة المحمولة، وتكون عادة بمقاس 16*16 أو 32*32 بكسل وتلعب تلك الرموز الصغيرة دورًا هامًا في إبراز هوية موقعك فهي تميزه وسط الألسنة الكثيرة التي قد تكون لدى المستخدم في نفس الوقت، ووجود ذلك الرمز في لسان موقعك يعني أن المستخدم لن يجد صعوبة تذكر في العودة إليه بمجرد التفكير في ذلك، وهذا في مصلحة موقعك والمحتوى الموجود به. الصيغ المستخدمة في أيقونات الهويّة شقّت أيقونات الهويّة طريقها بصورة رسمية لأول مرة في متصفح ميكروسوفت “إنترنت إكسبلورر” إصدار 5، في عام 1999، أي حين كان الإنترنت في أيام طفولته، وقد اعتمدتها W3C (اتحاد الويب العالمي) في غضون بضعة أشهر، واستخدمها مطورو الويب من حينها. وتدعم أغلب متصفحات الويب الآن صيغ الصور الحديثة التي يمكن إخراج أيقونة الهوية بها، مثل png – gif – svg، إضافة إلى صيغة ico القديمة، وسنمر سريعًا على أشهرهم سريعًا فيما يلي: صيغة ICO تظل هذه الصيغة أكثر صيغة مدعومة لأيقونات الهوية عبر المتصفحات والأجهزة المختلفة، ويفضَل أن تُخرج نسخة من أيقونة الهوية لموقعك بهذه الصيغة، حتى لو كنت تستخدم صيغة حديثة مثل PNG. لماذا؟ ببساطة لأن الصيغ الأحدث مثل PNG وGIF غير مدعومة من بعض المتصفحات القديمة، ولأن المكان الذي تبحث فيه المتصفحات عن أيقونة الهوية للموقع يختلف بشكل كبير من متصفح لآخر، وهناك احتمال لحدوث خطأ 404 إن لم يجد المتصفح أيقونة الهوية في المكان الافتراضي الذي يبحث فيه. كما أن صيغة ICO تسمح بحفظ أكثر من صورة في نفس الملف، كأنها حاوية لمجموعة صور، وهذا يفيدنا في حفظ عدة نسخ من أيقونة الهوية بأكثر من كثافة نقطية في ملف واحد -مثلًا 16*16 و32*32 و48*48 كما تنصح مايكروسوفت-، كي يقرر المتصفح أي صورة أفضل للعرض حال فتح الموقع من جهاز بعينه. ذلك أن نسخة 16*16 مثلًا لن تكفي وحدها، فهي لا تناسب العرض في شريط المهام أو على سطح المكتب للمستخدم مثلًا وإن كانت مناسبة تمامًا للعرض في لسان المتصفح، فحينها يكون وجود أكثر من نسخة في مصلحة هوية الموقع البصرية. صيغة PNG أحد المزايا الرئيسية لاستخدام صور PNG أن تصميمها وإخراجها سهل، وأن البرامج التي تقوم بذلك متوفرة للمختص وغير المختص، مثل PhotoShop وGIMP، كما أنها تدعم خيارات شفافية متطورة، ويدعمها اتحاد الويب العالمي كذلك W3C. ورغم أن صيغة ICO تدعم شفافية قناة ألفا 8-بت “8bit alpha channel transparency”، إلا أن إيجاد برامج لتصميم الصورة وإظهار تأثير الشفافية من الصعوبة بمكان. الاختيار بين الصيغتين الإجابة المختصرة لسؤال “أي الصيغتين أستخدم؟” هي أن تستخدم كليهما، فيمكنك ضبط إعدادات أيقونة الهوية باستخدام وسم ، عبر تحديد المكان الذي يحتوي على أيقونة الهوية بصيغة PNG، مع الإبقاء على نسخة أخرى .ICO متاحة كخيار احتياطي في مجلد الجذر للموقع. وبهذا فإنك تضمن تغطية أكبر قدر ممكن من إصدارات المتصفحات التي قد يدخل منها المستخدمون إلى موقعك مع تقليل احتمال ظهور خطأ 404. ماذا عن الأجهزة المحمولة؟ لا شك أن أغلب حركة الويب تأتي من أجهزة محمولة سواء كانت هواتف أو حواسيب لوحية، لذا يجب ألا تهمل ذلك أثناء تصميم أيقونة الهوية. لكن تلك الأجهزة متشعبة ومتنوعة أكثر من المتصفحات نفسه،ا حين نفكر في مقاسات الصورة المناسبة وأحجام الشاشات وأنظمة تشغيل تلك الأجهزة أيضًا، فليس هناك حل واحد يناسبهم جميعًا. وحينها يجب أن يكون لديك نسخ بصيغة PNG، ونسخ لأيقونات Apple Touch، وأخرى لرسوميات Windows 8 Tile Graphics، وهكذا .. كي تغطي كافة النسخ المحتملة لأيقونة الهوية لموقعك أو هويتك البصرية بشكل عام. ولكن بداعي التبسيط في هذا المقال، فإننا سنكتفي بإنشاء أيقونة هوية بصيغة ico فقط، أما إن أردت التوسع بعدها فاطلع إن شئت على هذه الخيارات للأجهزة المحمولة، وهذا الدليل الجامع لخيارات أيقونات الهوية. كيفية إنشاء أيقونة هوية “Fav Icon” إننا ننصح باستخدام برامج تصميم احترافية لإنشاء هويتك البصرية بشكل عام ولأيقونة الهوية في حالتنا هذه، وسنستخدم برنامج PhotoShop CS6 من شركة أدوبي لهذا الدليل، لكن لديك خيارات مجانية مثل GIMP أيضًا، وستجد الخيارات متشابهة نوعًا ما. حمّل إضافة ICO Format الخاصة ببرنامج فوتوشوب، والتي سنحفظ صورتنا بامتداد ico من خلالها. داخل فوتوشوب، اضغط File، ثم New، ثم أنشئ صورة بأبعاد 512*512 بكسل، بكثافة نقطية قدرها 72 بكسل/بوصة. صمم أيقونتك داخل مساحة الصورة الفارغة التي أنشأناها قبل قليل. حين يكون تصميمك جاهزًا، اضغط Image، ثم Image Size. تأكد من تنشيط خيار Constrain Proportions واضبط أبعاد الصورة على 16*16 بكسل. استخدم فلتر Unsharp Mask لتقليل التشويش في الأيقونة. اضغط File ثم حفظ باسم، واحفظ تصميمك بامتداد ICO وإليك مثالًا لأيقونة موقعي الخاص: وهناك أدوات على الإنترنت يمكن أن تستخدمها إن لم تكن ترغب في تصميم أيقونتك بنفسك، وكل ما عليك فعله هو رفع الصورة التي ترغب فيها إلى أحد هذه المواقع -معظم تلك الأدوات يمكنها إخراج ملفات ICO تحتوي على أحجام مختلفة للصورة- : Dynamic Drive – Favicon Generator Favicon.cc Favicon Generator انتبه إلى أن المظهر الافتراضي لصورتك في لسان المتصفح ستكون بكثافة 16*16 بكسل، فلا تجعل تصميمك به تفاصيل كثيرة تجعل من الصعب رؤية تفاصيل منها، فألق نظرة على الأيقونات التي تستخدمها أغلب المواقع المشهورة -أو يمكنك النظر إلى أيقونة أكاديمية حسوب في أعلى لسان المتصفح لديك-، وستلاحظ أنها بسيطة ومباشرة. والآن بما أن لديك أيقونة هوية لموقعك، دعنا نضيفها داخل ووردبريس: كيفية إضافة أيقونة الهوية إلى ووردبريس إن كنت تعرف ووردبريس فستقول لابد أن يكون أحدهم قد كتب إضافة هنا أو هناك تقوم بهذا عني، وصحيح أنه يمكنك استخدام إضافات لتنفيذ هذا بدلًا عنك لكن يجب أن تكون لديك هذه المعرفة على أي حال بشيء صغير كهذا، بدلًا من تحميل موقعك بإضافة أخرى لمجرد تنفيذ شيء صغير كهذا. وفي هذا الدليل المختصر، سنرى كيف نضيف ايقونة الهوية إلى ووردبريس 4.3 -هذا الإصدار وقت كتابة المقال الأصلي، لكن يمكن تطبيقه على نسخة ووردبريس لديك، نسخة 4.8 وقت ترجمة المقال-: سجّل دخولك إلى لوحة إدارة ووردبريس. اضغط على Appearence (مظهر)، ثم Customize (تخصيص). اضغط على Site Identity أو (هوية الموقع) إن كنت تستخدم النسخة العربية من ووردبريس. اضغط على Select file (اختر ملفًا) في الجزء الذي تجد مكتوبًا فيه Site Icon (أيقونة الموقع)، واختر أيقونة الهوية التي صممتها. ستظهر أيقونة الهوية الآن تحت ترويسة Site Icon في Site Identity، اضغط Save and Publish (حفظ ونشر). وهكذا نكون قد غيرنا أيقونة الهوية. لاحظ أن ووردبريس تسمح لك بتعديل عملك قبل نشره باختيار جزء الصورة التي ترغب فيها كي تكون أيقونة الهوية، في حالة أن تكون الصورة التي رفعتها مستطيلة مثلًا وليست مربعة. كيف تضيف أيقونة الهوية في ووردبريس 4.2 (والإصدارات الأقدم) لأولئك الذين لم يرقّوا إصدرات ووردبريس لديهم لأي سبب كان، يمكن اتباع الخطوات التالية لإضافة أيقونة الهوية: ارفع الصورة التي أنشأتها إلى المجلد الجذر لموقعك باستخدام برنامج لبروتوكول نقل الملفات FTP. الصق الشفرة التالية في ملف header.php داخل السمة التي تستخدمها للموقع: https://gist.github.com/midoriberlin/111a3ce34672106eb620، انتبه إلى أنك ستغير الرابط وامتداد الملف إن كنت تستخدم صيغة أخرى غير PNG. ارفع صورة أيقونة الهوية إلى مجلد السمة الرئيسي. تأكد أن ترفع صورة الأيقونة إلى المجلد الجذر للموقع والمجلد الرئيسي للسمة، فلا تهمل هذه الخطوة الثالثة كي تضمن ظهور أيقونة الهوية حتى لمن يتصفح محتوى الموقع من قارئات الأخبار “feed readers”. الخلاصة آمل أنك بنهاية المقال قد رأيت أن تلك الأيقونة الصغيرة مهمة لهوية موقعك ومستخدميه، وأنها سهلة في إضافتها لووردبريس أيضًا -على الأقل في الإصدارات الحديثة منها-، أما الآن فدعني أعيد لك ملخص المقال في عجالة: أضف كلا الصيغتين ICO وPNG لتغطية أكبر قدر ممكن من المتصفحات الموجودة الآن. اطلع على الدليل الجامع لأيقونات الهوية كي تستهدف أكبر شريحة ممكنة من الأجهزة المحمولة (أو حالات الاستخدام عمومًا). استغل أدوات مثل Favicon.cc كي تخرج أكثر من حجم لأيقونتك في ملف واحد بكفاءة ويسر. استخدم خاصية Site Icon في ووردبريس 4.3+ كي تريح رأسك من عناء تثبيتها بالطريقة التقليدية في الإصدارات القديمة، لكن الإصدار القديم متوفر إن شئت. دعنا نعرف في التعليقات إن واجهت مشكلة في عرضها في موقعك! ترجمة -وبتصرّف- لمقال How to Add a Favicon to Your WordPress Site لصاحبه Tom Ewer
  11. قد تصاب بحيرة في بداية استخدامك لووردبريس حين تبدأ في التعمق فيها كنظام إدارة للمحتوى لديك لتواجه مصطلحات مثل التصنيفات-Taxonomy والتصنيفات الخاصة-Custom Taxonomies بعد أن كنت تتعامل بسلاسة مع الفئات-Categories والوسوم-Tags. وسنتناول في هذا المقال الفرق بين كل منهم، وكيفية استخدامهم في موقعك، مع بعض الأمثلة على كيفية استخدامهم، ونظرة أيضًا على كيفية استخدام إضافاتنا لهم لإضافة إمكانيات جديدة لموقعك. التعريفات دعنا نبدأ ببعض التمهيد أولًا كي ندرك أبعاد ما نتحدث عنه، فنبدأ بالتصنيفات-taxonomies إذ أنها أوسع المصطلحات التي سنتعامل معها وأشملها. التصنيف Taxonomy أتى هذا المصطلح أصلًا من علم الأحياء، حيث يستخدم في تصنيفات الأنواع الحية وممالك الكائنات، ويعرّفه قاموس أوكسفورد على أنه “نظام يستخدم في التقسيم أو التصنيف”. أما لدينا في ووردبريس فهو يشير إلى “تقنية جمع لبعض المنشورات أو الروابط أو أنواع مخصصة من المنشورات”، وهيا ننظر الآن في بعض الأمثلة التي ستزيل اللبس نهائيًا عن فهم التصنيف في ووردبريس. فقد عرفنا إلى الآن أنه نظام تجميع تستخدمه أنت لتحديد نوع أي منشور في ووردبريس، فالفئة-category تُعدّ تصنيفًا، وكذلك الوسم-tag ما هو إلا تصنيف أيضًا، وتستطيع إنشاء تصنيفاتك الخاصة التي تضع المنشورات العادية والمخصصة تحتها، حيث يكثر استخدام التصنيفات لتمييز منشورات عادية عن نوع مخصص من المنشورات-Custom Post Type، من أجل تلافي أي خلط بين المنشورات العادية والمخصصة منها. فمثلًا ستجد أن إضافة “Support System Plugin” تضيف نوعي منشورات خاصة حين تثبتّها في موقعك، وهما “Support Ticket” و”FAQ”. كما ستنشئ تصنيفين مخصصين هما “Ticket Category” و”FAQ Category”. وذلك التقسيم يفصل بين البطاقات “Tickets” التي لديك والأسئلة الشائعة “FAQ”، وبين منشورات عادية كمقالات مدونة الموقع. ما هو الفصل Term؟ هو عنصر داخل التصنيف، تستخدمه لتمييز منشوراتك عن بعضها، ويمكن أن يجمع عدة عناصر فرعية أخرى فيه. فإن كنت تستخدم إضافة “Support” التي ذكرناها قبل قليل وأنشأت فئات-categories لكل فريق من فِرَق الدعم لديك، فكل واحد من تلك الفِرَق يشكّل فصلًا في تصنيف “Ticket Category” الذي أنشأَته الإضافة حين ثبّتّها. ويمكنك أن تنشئ فصولًا مختلفة لتصنيف “FAQ Category” كذلك إلا أنك قد ترى عناصر مكررة، لكن بالنسبة لووردبريس فهذه فصول مختلفة وستُخَزَّن منفصلة في قاعدة البيانات، حتى لو أعطيتها نفس الأسماء. إضافة Support System تضيف نوعين مخصصين من المنشورات، وتصنيفين ما هي الفئة Category؟ يخلط الناس عادة بين الفئات-Categories والتصنيفات-Taxonomies، إليك وظيفة كل منهما وموقعه: • الفئة عبارة عن تصنيف. • فئة س التي تضيفها داخل تصنيف ص، هي فصل-Term داخل هذا التصنيف وأحد عناصره. فإذا أنشأت فئات لمنشوراتك مثل “الأخيرة” و”المميزة”، فستكون تلك فصولًا في تصنيف واحد، تمامًا كما أن المبيعات والدعم مثلًا عبارة عن فصول في تصنيف “Ticket Categories” داخل إضافة “Support System”. ما هو الوسم-Tag إذًا؟ الوسم يشبه الفئة كثيرًا، فهو فصل في تصنيف “post_tag”، فإن كان لديك “ووردبريس” و”شروح” كوسوم لمنشوراتك، فهما فصلان في تصنيف “post_tag”. ولا تسألني لماذا سُمّيت الوسوم في ووردبريس “post_tags” ولم تُسمّ الفئات “post_categories”، فهذا أحد ألغاز ووردبريس العجيبة. لكن ما الفرق بين الوسم والفئة، ولمَ نحتاج إلى الاثنين؟ ألا يغني أحدهما عن الآخر؟ تختلف الفئات عن الوسوم في أن بنيتها هرمية، فيمكن أن تنشئ فئة فرعية من فئة موجودة أصلًا، لكن لا يمكن فعل هذا في الوسوم، لهذا ستجد نفسك تستخدم الفئات لهيكلة موقعك أكثر من الوسوم، بما أن لكل منهما بنية منفصلة. أما التصنيفات ففيها مرونة أكبر، إذ يمكن تشكيلها لتكون هرمية مثل الفئات، ويمكن استخدامها مثل الوسوم بحيث لا يتفرع تصنيف من آخر، لذا يمكن اعتبارها تتصرف مثل الفئات، غير أن الفرق بينهما أن التصنيف يمكن أن يحتوي فئة بينما العكس غير صحيح. إنشاء التصنيفات والفصول ننتقل الآن إلى كيفية إنشاء فصل أو تصنيف بما أننا فصّلنا في معانيها قبل قليل، ستجد ابتداءًا أن ووردبريس لديها تصنيفات قليلة موجودة افتراضيًا، وهي: Category Tag Link category: لا يُستخدم هذا مع المنشورات العادية، لكن مع منشورات الروابط. وهو أحد الآثار الموجودة في ووردبريس أيام ميزة كان اسمها blogroll. خلاصة الأمر أنك تستطيع تجاهل هذا التصنيف. Post format: يستخدم هذا التصنيف مع المنشورات العادية، ولتحديد نوع المنشور كذلك -فيديو، نص، إلخ-. أتخيل أن يكون هذا مفيدًا للمدونين رغم أني لم أستخدمه بنفسي أو أرى حالات استخدام كثيرة له. ومما سبق يتبيّن أن ووردبريس تأتي بأربع تصنيفات أساسية مباشرة، يمكننا الاستفادة مباشرة من اثنين منهما. وستجد تصنيف “Category” به فصل واحد وهو “uncategorized”، أما تصنيف “post_tag” لا يحتوي أي فصول حتى تضيف أنت بنفسك فيه. لكن هذا لا يشكّل نهاية الطريق للتصنيفات والفصول في موقعك، فإن ووردبريس تسمح لك بإنشاء تصنيفاتك الخاصة وتضع تحتها أي نوع من المنشورات تراه مناسبًا. ولديك طريقتين لإنشاء تصنيف خاص بك، وهي إما عبر دالة ()register_taxonomy بكتابة شفرة برمجية ، أو باستخدام إضافة CustomPress لإنشاء تصنيفات جديدة دون كتابة أي شفرة. وأي من تلك الطريقتين ستنشئ تصنيفًا جديدًا، كما يمكنك إنشاء فصول برمجيًا باستخدام دالة ()wp_insert_term . قد يفيدك هذا إن كنت تكتب إضافة بتصنيف تريد تجهيزه بفصول مسبقًا، لذا إن كنت تكتب إضافة لتذاكر الدعم كإضافتنا التي تحدثنا عنها في أول المقال واستخدمناها كمثال، فربما تود إضافة تصنيف مثل”priority” مثلًا، وتضع فيه فصولًا بأسماء مثل “high” و”medium” و”low”. غير أن أسهل طريقة يمكن إنشاء فصل بها هي من خلال صفحة داخل لوحة تحكم ووردبريس في إضافة “Support System”، تختص بإنشاء فئة تذاكر جديدة، وستجد أن إضافة فصل جديد هنا يشبه إضافة فئة جديدة في صفحة الفئات “categories” إليك صورة منها: استخدام مختلف للتصنيفات والفئات والفصول توضع الفئات منفصلة عن التصنيفات المخصصة وفصولها، لا بأس بهذا إن كنت تستخدم إضافة من طرف ثالث يجب أن تعمل على أنواع عديدة من المواقع إن كان المطور لا يعرف كيف ستستخدم التصنيفات أو المنشورات العادية في موقعك، فعندهاا لن يجعل التصنيفات التي أنشأتها الإضافة تتفاعل مع تلك العادية التي ستستخدمها. لكن إن كنت تكتب إضافتك بنفسك، فلا بأس أن تستخدم خيالك قليلًا، كما سنرى الآن: استخدام التصنيفات الخاصة لإضافة طابع مميز للمنشورات العادية قد يأتي عليك وقت لا تكفي فيه فئات موقعك لتصنيف المنشورات إن كان الموقع مبنيًا بشكل أساسي على المنشورات/المقالات وحدها، وستجد أنك تستخدم عدة طبقات من الفئات الفرعية إلى حد أن الفئات الرئيسية يجب أن تكون تصنيفات بحد ذاتها. وإحدى الطرق التي تحدد بها أن هذه هي حالتك أن تسأل نفسك إن كان هناك أي تفاعل بين الفئات الفرعية، وما إن كنت تربط الفئات الرئيسية إلى منشوراتك أم لا. فإن كان كل محتوى مدونتك عن الكتب مثلًا، ولديك فئتين رئيسيتين هما المؤلِّف ومجال الكتاب، مع فئات فرعية لعدة مؤلفين وأنواع كثيرة للكتب، فيجب أن تنشئ تصنيفين رئيسيين هما المؤلف، ومجال الكتاب، لماذا؟ لأن كل مقال عن كتاب سيكون تحت فئة واحدة فقط في تصنيف المؤلف. لن تربط تصنيفي المؤلف ومجال الكتاب لأي مقال بعد الآن. كما أن إنشاء تصنيفات جديدة يتيح لك كتابة شفرة برمجية لاستعلامات مخصصة تبحث عن الكتب في مجال ما لمؤلف معين، قد تستطيع فعل هذا باستخدام الفئات، لكن لن تكون بنفس الكفاءة. استخدام التصنيفات الخاصة مع المنشورات وأنواع المنشورات الخاصة لا يوجد سبب يمنعك من تسجيل تصنيف مخصص وتضع تحته نوع معينًا من المنشورات خصصته ليكون الخيار الافتراضي لما تنشره، فلنقل مثلًا أنك تعمل على مدونة الكتب السالفة الذكر، وأنشأت نوع منشورات سميته “review” تستخدمه لكتابة مراجعات عن الكتب التي قرأتها، فإن هذا يختلف قطعًا عن المقالات العادية في مدونتك والتي ستتحدث عن موضوعات أكثر شمولية حول الكتب. فيمكن أن تنشئ تصنيفًا مخصصًا-Custom Taxonomy من مجال الكتاب لمراجعة الكتب، كي يعرف القراء أنك تحت هذا التصنيف تكتب مراجعات لكتب في هذا المجال أو ذاك. وإن أردت استخدام التصنيفات لمنشورات مدونتك أيضًا فيمكنك كتابة منشورات عن كل مجال تهتم به ثم تستخدم خطاف pre_get_posts لترتيب المنشورات والمراجعات في هذا المجال أو ذاك في صفحة أرشيفات الفصل الخاص به. أو تنشئ قالبًا مخصصًا لهذا التصنيف (اسمه taxonomy-genre.php) كي يبدأ حلقتين-loops، واحد للمراجعات وآخر للمنشورات. إضافة التصنيفات للصفحات يمكنك أيضًا أن تضيف التصنيفات لأنواع منشورات ليس لديها تصنيف افتراضي ملحقة به، كالصفحات مثلًا. ولفعل هذا نستخدم دالة ()register_taxonomy_for_object_type ، إذ يسمح لك ذلك بإضافة أي تصنيفات موجودة مسبقًا إلى أي نوع منشور موجود أيضًا من قبل. فكي تضيف تصنيفات إلى الصفحات مثلًا ستضيف هذا إلى دوال السمة التي تستخدمها أو إلى إضافة -plugin: <?php register_taxonomy_for_object_type( 'category', 'page' ); ?> وإن أردت فعل هذا مع تصنيف أنشأته بنفسك، فأضف هذا السطر إلى شفرة إنشاء التصنيف باستخدام دالة ()register_taxonomy ، والعامل الثاني في هذه الدالة هو نوع المنشور الذي سيدخل تحت هذا التصنيف، وإن كنت تريد استخدام أكثر من نوع منشور فيجب أن تضعهم في مصفوفة. إذًا، إذا أنشأت نوع منشورات اسمه “review” وأردت إنشاء تصنيفًا اسمه “genre” سيدخل تحته أي”review” أو”page” أو”post”، فإن شفرة إنشاء التصنيف تكون هكذا: <?php register_taxonomy( 'genre', array( 'review', 'post', 'page' ), $args ); ?> وكمل تلاحظ فإن أول عامل متغير هنا هو معرّف التصنيف “genre”، ثم الثاني هو مصفوفة أنواع المنشورات، والثالث هو معاملات للتصنيف الذي أنشأته. وفائدة استخدام التصنيفات هنا هي إمكانية إنشاء تصميمات لعناصر بعينها في هذا المجال -review،posts،page لتصنيف genre في حالتنا-، كما يمكن تحديد مكان أي صفحة في أي فئة ثم إجراء استعلام-query في قالب صفحتك يخرج لك منشورات ومراجعات من تلك الفئة بعد محتوى الصفحة التي حددتها، أو عرض محتويات الصفحة بمراجعاتها، أو المنشورات في صفحة أرشيفات التصنيف. خاتمة إن القدرة على إنشاء تصنيفاتك الخاصة في ووردبريس هو أحد الأمور التي جعلتها نظام إدارة محتوى بدلًا من منصة تدوين، عبر استغلال كل طرق التصنيف الممكنة للمحتوى التي يمكنك إنشاء مواقع تعرض المحتوى الذي تريده بدقة. المهم ألا تترك نفسك تغرق في الاختلافات بين التصنيف والفئة، فالتصنيف-taxonomy هو الأشمل، وداخله فصول-terms، كل منها يمكن أن يكون فئة-category بذاتها. ترجمة -بتصرف- لمقال Using Categories, Tags and Taxonomies Properly in WordPress لصاحبته ريتشل ماكّولن.
  12. نحن نعرف أن الإنترنت يحفل بأوامر لينكس البسيطة التي رأيتها أو استخدمتها عشرات المرات من قبل، مثل ls لسرد محتوى مجلد أو pwd لمعرفة أين أنت الآن داخل النظام، وcd للتنقل بين المجلدات، وغير أولئك كلهم مما يشتهر من أوامر لينكس وينتشر في الإنترنت. ولا شك أنك مللت من رؤيتها هنا وهناك في عشرات المواقع التي تعرض استخدامات الطرفية في لينكس، فأنت تريد تطوير مهاراتك في استخدام الطرفية لتنجز مهامًا بشكل أفضل، فإنك تعرف أن الطرفية مفيدة في أمور مثل إنهاء مهمة عالقة أو تستهلك الذاكرة، أو تحميل فيديو من يوتيوب بخيارات مختلفة بين الصوت والفيديو، أو الحصول على معلومات من ملف معين، أو حتى تصفح الإنترنت حين تريد الحفاظ على سعة باقة الإنترنت. وفي هذا الجزء من المقال سنعرض بعض الأساليب التي تزيد من استفادتك من الطرفية وأوامرها. كيفية استخدام أمر cat بشكل أفضل يحسب كثير من المبتدئين في لينكس أن cat يستخدم لعرض محتويات ملف في الطرفية، لكن هذا ليس صحيحًا. فقد يكون من المفيد عرض ملف .json في الطرفية، خاصة حين يكون لديك بيانات JSON من أجل طلب لـ rest api. وعلى سبيل المثال، فهذا الأمر سيعرض محتويات ملف باستخدام أمر cat: cat temperature.json وخرج هذا الأمر هو محتويات الملف: { "measured_at":"2015-12-25 21:55:57.188743+00:00", "sensor_id":"somekey", "temperature":14 } وسأستخدم ملف temperature.json من أجل طلب POST باستخدام أمر curl، لكن هذا لوقت آخر، دعنا نركّز الآن على أننا كلنا نعرف طريقة استخدام أمر cat بالطريقة السابقة من أجل عرض محتويات ملف ما، لكن هل جربت إنشاء ملف جديد باستخدامه من قبل؟ 1. طريقة إنشاء ملف جديد باستخدام cat هي هكذا: cat >newfile.txt 2. ولنقل أني أريد نقل محتويات ملف قديم إلى آخر جديد، أستطيع هذا باستخدام cat أيضًا: cat oldfile.txt >newfile.txt سينسخ الأمر السابق كل محتويات oldfile، وينشئ ملفًا جديدًا باسم newfile، ويلصق المحتويات فيه، وإنني أفضّل هذه الطريقة على أمر cp في نسخ الملفات وعمل النسخ الاحتياطية إذ إنها أكثر عملية. 3. ولدي أمر آخر أفعله باستخدام cat، وهو عرض أرقام الأسطر في الملف، حين أرغب في تحديد خطأ في سطر ما أو معرفة كم سطر في الملف cat -n temperature.json وسيكون خرج هذا الأمر هو التالي: 1 { 2 "measured_at":"2015-12-25 21:55:57.188743+00:00", 3 "sensor_id":"somekey", 4 "temperature":14 5 } 4. ويمكننا عرض الملف بشكل معكوس من الأسفل إلى الأعلى باستخدام نفس الأمر معكوسًا، هكذا: tac temperature.json ويكون الخرج هكذا: } "temperature":14 "sensor_id":"somekey", "measured_at":"2015-12-25 21:55:57.188743+00:00", { كيفية استخدام أمر ls بشكل عملي 1. قد يبدو أمر ls أمرًا بسيطًا لمعظم مستخدمي لينكس، لكن ذلك الأمر يخفي كثيرًا من العملية والقوة، فيمكننا أن نعرف هل يوجد ملف باسم معين داخل مجلد ما، دون أن نبحث يدويًا عن الملف، من خلال استخدام أنبوب-pipe: ls | grep somefile هذا الأمر السابق هو دمج بين أمرين، وهما ls الذي نستخدمه لعرض محتوى المجلد وgrep الذي يأتي لنا بنص معين إن كان موجودًا، لذا فإن ls في الأمر السابق سيعرض محتويات المجلد، لكنه سيمررها إلى grep عبر الأنبوب “|” فيبحث الأخير عن الملف الذي نريده ويخبرنا أموجود هو أم لا. ويكون الخرج هو الملف الذي نريده فقط إن كان موجودًا. 2. إن كنت أريد عرض المحتويات المخفية داخل المجلد فأستخدمه مع -a ls -a لاحظ أن الملفات التي يبدأ اسمها بنقطة(.) يعتبرها لينكس ملفات مخفية، وهذا الأمر بالأعلى يعرضها. 3. إن كنت أرغب في عرض الملفات حسب آخر تاريخ تعديل لها نضيف لاحقة -t ls -t 4. ويمكن أن نضيف وظيفة أخرى إليه، وهي جعل الخرج أكثر قابلية للقراءة، بإضافة حرف l إليه كي يظهر لنا صلاحيات الملفات والحجم وغير ذلك، هكذا: ls -lt 5. ولتحديد نوع المحتويات داخل مجلد ما، نضيف لاحقة -F إلى أمر ls، كي يظهر لنا ما إذا كان هذا مجلد فرعي أو ملف تنفيذي أو غير ذلك، هكذا: سنستخدم الأمر العادي ls لإظهار محتويات مجلد ما، فيخرج لنا هذا المحتوى: normal.txt unixmen أما حين نكتب ls -F، يكون الخرج هكذا: normal.txt unixmen/ وهنا يمكننا رؤية أن unixmen هو مجلد وليس ملف، بما أن لينكس يلحق أسماء المجلدات بـ /. كيف أعرف إن كان اتصالي بالإنترنت سليمًا؟ تحدث هذه الحالة حين تريد زيارة موقع ولا تستطيع، وتتحير هل المشكلة منك ومن إعدادات الشبكة أم من الموقع نفسه، والحل هو أمر ping: مثال على جوجل: ping www.google.com وإن أخرج لك الأمر ردًا فهذا يعني أن المشكلة ليست من عندك. كيف أعدّل الملفات من الطرفية؟ لعلك سمعت بمحرر ViM الشهير، وهو محرر يعمل من الطرفية، ويفيدني جدًا حين أريد كتابة بعض بياناتjson لطلب POST، يمكنك تثبيته بهذا الأمر (إن كنت تستخدم أوبنتو): sudo apt-get install vim ثم نفتح به ملفًا لتعديله، نكتب vim ثم اسم الملف: vim file2editinhere ولدخول وضع التعديل في الملف نضغط حرف i، ثم نكتب ونعدّل كما نشاء، ثم نضغط Esc للخروج من وضع التعديل، ونكتب نقطتين فوق بعضهما كهذه (:)ثم wq، كل ذلك دون مسافات، لنحفظ الملف ونغلقه، :wq أما إن أردت الحفظ فقط، فنكتب : ثم w. :w ترجمة -بتصرف- لمقال How to use the linux terminal like a bro, First part لصاحبه SureSwift Content
  13. مقدمة: إطار التحليل الشبكي Bro هو إطار عمل مفتوح المصدر لتحليل الشبكات يركز على مراقبة أمانها، وهو نتاج خمس عشرة سنة من البحث واستخدمته جامعات كثيرة ومعامل بحثية ومراكز حواسيب خارقة وعدد من مجتمعات العلوم المفتوحة-Open Science. وقد بدأ تطويره بشكل أساسي في المعهد الدولي لعلوم الحاسوب في بيركلي والمركز الوطني لتطبيقات الحواسيب الخارقة في أوربانا-شامبين في إيلينوي. وتتلخص مزايا Bro فيما يلي: سياسات مراقبة خاصة بكل موقع، إذ تسمح لغة Bro النصية-scripting language بذلك استهداف الشبكات عالية الأداء. محللات للعديد من البروتوكولات، مما يسمح بالتحليل الدلالي عالي المستوى-High Level Semantic Analysis حتى على مستوى التطبيق. جمع إحصائيات شاملة على مستوى التطبيق للشبكة التي يراقبها. تسجّيل كل شيء يراقبه، ويوفّر أرشيفًا عالي المستوى لنشاط الشبكة. متطلبات Bro للعمل على الخادم يحتاج Bro إلى الاعتماديات-Dependencies التالية: Libpcap مكتبات Open SSL مكتبة BIND8 Libz Bash (نحتاجها من أجل BroControl) Python إصدار 2.6 أو أحدث (من أجل BroControl) كما يتطلب بناؤه من المصدر ما يلي: CMake 2.8 أو أحدث Make GCC 4.8 فأحدث، أو Clang 3.3 فأحدث SWIG GNU Bison Flex Libpcap headers OpenSSL headers zlib headers بدء العمل ثبّت الاعتماديات المطلوبة بتنفيذ الأمر التالي: # apt-get install cmake make gcc g++ flex bison libpcap-dev libssl-dev python-dev swig zlib1g-dev تثبيت قاعدة بيانات GeoIP من أجل موقع IP الجغرافي يعتمد Bro على GeoIP لتحديد الموقع الجغرافي للعنوان، فثبّت إصدارات IPv4، وIPv6 عبر هذه الأوامر: $ wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz $ wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCityv6-beta/GeoLiteCityv6.dat.gz فُكّ ضغط تلك الأرشيفات التي حملناها: $ gzip -d GeoLiteCity.dat.gz $ gzip -d GeoLiteCityv6.dat.gz انقل الملفات التي فككناها إلى مجلد GeoIP: # mvGeoLiteCity.dat /usr/share/GeoIP/GeoIPCity.dat # mv GeoLiteCityv6.dat /usr/share/GeoIP/GeoIPCityv6.dat بناء Bro من المصدر سنحصل على احدث إصدار من مستودعات git (اقرأ هذا المقال لتثبيتgit وإعداده إن لم يكن مثبتًا لديك)، عبر الأمر التالي: $ git clone --recursive git://git.bro.org/bro نذهب إلى هذا المجلد المنسوخ-cloned directory، ونبني bro بهذه الأوامر: $ cd bro $ ./configure $ make سيستغرق أمر make بعض الوقت للبناء، ويتوقف هذا الوقت على قوة الخادم نفسه. ويمكن تنفيذ شفرة configure النصية مع بعض المعاملات-arguments لتحديد أي الاعتماديات تريد بناءها، خاصة خيارات (–with-*) تثبيت Bro داخل مجلد bro سابق الذكر، نفذ الأمر التالي، حيث سيكون مجلد التثبيت هو usr/local/bro/ # make install تهيئة وإعداد Bro تقع ملفات تهيئة Bro وضبطه في مجلد etc، في مسار usr/local/bro/etc/، وستجد ثلاثة ملفات: node.cfg، يستخدم لتحديد أي عقدة-node أو مجموعة عُقّد سيراقبها (العقدة في الشبكات هي جهاز يتلقى/يشكّل/يحوّل المعلومات الواردة عبره). broctl.cfg، ملف تهيئة BroControl. networks.cgf، يحتوي قائمة بالشبكات في ترميز التوجيه غير الفئوي-CIDR Notation. ضبط إعدادات البريد افتح ملف broctl.cfg، حيث تستبدل $EDITOR في الأمر التالي بالمحرر النصي الذي تفضله: # $EDITOR /usr/local/bro/etc/broctl.cfg ابحث في الملف عن قسم Mail Options، وعدل سطر MailTo كما يلي: # Recipient address for emails sent out by Bro and BroControl MailTo = admin@example.com استبدل عنوان البريد بالعنوان الذي تريد، ثم احفظ الملف وأغلقه. لديك الكثير من الخيارات هنا، لكن الخيارات الافتراضية جيدة ولا تحتاج تعديلات. اختيار العُقَد التي ستُراقَب إن Bro مجهز افتراضيًا ليعمل في الوضع المستقل-Standalone، وهو ما نشرحه في هذا المقال، لذا لن تحتاج إلى تغيير الكثير، لكن سننظر على أي حال في ملف node.cfg: # $EDITOR /usr/local/bro/etc/node.cfg يجب أن ترى شيئًا كهذا في قسم [bro]: [bro] type=standalone host=localhost interface=eth0 تأكد أن تكون الواجهة-interface مطابقة لواجهة خادم أوبنتو 16.04، ثم احفظ الملف وأغلقه. ضبط شبكات العقدة-Node’s Networks آخر ملف سنعدّل فيه هو network.cfg، افتحه باستخدام المحرر النصي الذي تفضله: # $EDITOR /usr/local/bro/etc/networks.cfg يجب أن ترى المحتوى التالي: # List of local networks in CIDR notation, optionally followed by a # descriptive tag. # For example, "10.0.0.0/8" or "fe80::/64" are valid prefixes. 10.0.0.0/8 Private IP space 172.16.0.0/12 Private IP space 192.168.0.0/16 Private IP space احذف المدخلات الثلاثة (التي هي أمثلة فقط لكيفية استخدام الملف)، وأدخل مساحةIP العامة والخاصة للخادم الخاص بك، على هذه الهيئة: X.X.X.X/X مساحة IP العامة X.X.X.X/X مساحة IP الخاصة احفظ الملف وأغلقه. إدارة تثبيت Bro باستخدام BroControl تحتاج إلى استخدام BroControl من أجل إدارة Bro، وهو يأتي في صورة صَدفة تفاعلية-interactive shell وأداة سطر أوامر، افتح الصدفة بالآتي: # /usr/local/bro/bin/broctl ولتستخدمها كأداة سطر أوامر، أضف معاملًا-argument إلى الأمر السابق، مثال: # /usr/local/bro/bin/broctl status سيتحقق هذا الأمر من حالة Bro بإخراج نتيجة كهذه: Name Type Host Status Pid Started bro standalone localhost running 6807 20 Jul 12:30:50 خاتمة ما شرحناه في هذا المقال يلخص دليل تثبيت Bro، وقد استخدمنا طريقة التثبيت من المصدر لأنها أكفأ طريقة ممكنة للحصول على آخر إصدار متوفر، لكن اعلم أن أداة تحليل الشبكات هذه يمكن تحميلها أيضًا في صورة ملف ثنائي/تنفيذي إن لم ترغب ببنائها من الصفر. ترجمة -بتصرف- لمقال Network Analysis: How To Install Bro On Ubuntu 16.04 لصاحبه Giuseppe Molica حقوق الصورة البارزة محفوظة لـ Freepik
  14. رغم حدوث التقييمات السنوية في الشركات مرة واحدة كل عام، إلا أن أثرها يظل باقيًا ومخيّمًا على روح الشركة وثقافتها ، فهي تولّد عقيدة عند الموظف تتحكم في الطريقة التي يؤدي بها مهامه، وتجعله يركّز على المحفز الخارجي -نتيجته في التقييم- بدلًا من المحفز الداخلي -القيم الخاصة بالشركة-، وهي عقيدة مبنية على الخوف من النتيجة السلبية، مما يؤدي إلى قتل الإبداع و النمو في الشركات والأفراد على حد سواء. لذا فقد جلسنا مع كاهينا أويردين وجوانا أواجني، الإداريتان في فريق الثقافة والتنظيم في شركة GSOFT -الشركة الأم لشركتنا Officevibe-، وقد شرحتا لنا السبب الذي جعل مؤسستنا تسير عكس التيار وتوقف التقييم السنوي من دورات النقد والتغذية الراجعة إلى الأبد. من أين يبدأ التغيير تشرح كاهينا تلك الجملة قائلة بأن هناك انتقال من الدوافع الجوهرية الداخلية لتنفيذ مهمة بعينها إلى الدوافع العرَضية، ويضيع الهدف والمعنى في هذا الانتقال، فهناك متعة تُقتطع من العملية حين تعلم أنك تعمل من أجل التقييم، وأرى أنك حينها تعمل من أجل سبب خاطئ. ذلك أن محاولة التعلم بصوره المختلفة -في المدرسة أو بيئة العمل- من أجل الدرجات والمكافآت يزيل الأصالة من الفعل نفسه ويحجّم التفكير والإبداع، وهما العنصران اللذان تنمو الشركة وتنجح بهما. ما وراء الدرجات تبيّن كل من كاهينا وجوانا أن التقييمات السنوية لم تعد طريقة يُعتمد علها في التقييم، ذلك أنها تتأثر كثيرًا بالنتائج القريبة قصيرة المدى، إضافة إلى أن الثقة في الملاحظات التي يجمعها المدراء على مدار العام طريقة غير فعّالة ومفرطة في التفاؤل. ويظهر قصور هذا الأسلوب أيضًا في تثبيط همة الموظفين إذ سيشعرون أن أداءهم صار مرتبطًا بالتقييم الذي أُعطي لهم، ويصبح الموظف حبيس تلك القيمة الرقمية التي أعطيتها له، ويتعامل معه مديره وزملاؤه بناءً على تلك القيمة. لذلك فإننا في حاجة إلى تغيير تلك التقييمات الرقمية واستبدال شيء أقل اعتمادًا على القيم الرياضية بها، لكن يجب أن يكون ذلك البديل ذا معنى ولا يحُدّ من مستوى إنتاج الموظف. لماذا تتعارض التقييمات السنوية مع أنظمة التقييم والتغذية الراجعة الأخرى تستنكر كاهينا اعتماد بعض الشركات نظام التقييم السنوي رغم استخدامها لأنظمة تقييم وتغذية راجعة مختلفة في نفس الوقت قائلة: إن الاتجاه الحالي الذي يركّز على جعل الموظفين في مركز اهتمام المؤسسات من أجل زيادة مستوى الآدمية فيها يتعارض مع أسلوب التقييمات السنوية التي تزيد من الخوف. مستقبل الإدارة في غياب التقييم السنوي يمكن القول بأننا ننتقل إلى عهد جديد في الإدارة، نميل فيه إلى الابتعاد عن الأمر والتحكم، ونجنح إلى تشجيع الفرق ذاتية التنظيم والقيادة المشتركة. إن هذا يسمح للناس بالتركيز على غايتهم من العمل بدلًا من إبهار أشخاص بعينهم من أجل التقييم الذي يتمنون الحصول عليه منهم، كما يفتح للموظف بابًا لتجربة حياة العمل بعيدًا عن عامل الخوف من التقييم، ممهدًا الطريق إلى النمو والإبداع في مسيرته المهنية، حين ينظر إلى السبب والغاية التي يعمل من أجلهما، بدلًا من النظر إلى عواقب كل فعل يقوم به. إن مستقبل العمل الذي نراه يركّز أكثر على تشجيع المخاطرة وتقبل الأخطاء التي نتجت عن الفضول والسعي للاختبار والاكتشاف بدلًا من عدّ مرات الفشل للموظف. لماذا تصر الشركات على الإبقاء على التقييم السنوي إن تغيير منظومة التغذية الراجعة التي ظلّت تلك المنظمات تستخدمها لعقود يتطلب تفكيرًا عميقًا، ذلك أن التخلي عن إحدى عادات الشركة يزداد صعوبة بزيادة حجم الشركة وتعقيدها، خاصة حين يكون لديك نظام نظيف وبسيط يجعلك تجمع السنة كلها في تقييم نهائي. حتى لو أدركت الشركة أن تلك العملية بها عيوب أو قصور فإن عملية التغيير ستكون ثقيلة عليها في تطبيقها دون إرشادات واضحة للبدائل التي تتبعها الشركة. صحيح أن التغيير قد يكون مخيفًا لكنه يستحق المحاولة، ولا يهم إن كنت شركة جديدة أو لك خمسين عامًا في السوق، فيجب أن تبدأ الآن في حركة التغيير إن كنت تريد البقاء كمنظّمة تفكر في المستقبل. ما يريده الموظفون حقًا تستطرد جوانا هنا أن الأمر مناف للمنطق أصلًا بما أن التقييم السنوي يقيّد نفسه إلى الماضي في حين أن التطور يجب أن يسير للأمام، فالتخلص من التقييم المبني على الدرجات ضروري لأي بيئة تعلم ناجح، وإن الموظفين يهتمون بفرصة التعلم والنمو أكثر من المال والمنح، وأول خطوة لتحقيق ذلك هو التواصل المستمر، وفرصة استمرار التغذية الراجعة على مدار السنة. وبما أن التعليم لا نهاية له، فإن إنهاء العام بتقييم سنوي يجعل دورة التعلم ذات بداية ونهاية مرتبطة بذلك التقييم، على عكس التقييم المستمر طيلة العام. لغة التقييم التي يجب أن نتوقف عنها نحن نحتاج إلى تغيير اللغة والمصطلحات التي نستخدمها مع تغيير نظام التقييم السنوي، فالكلمات نفسها تحتوي معاني ودلالات، لذا يجب أن تنظر المنظمة بعناية إلى المصطلحات التي تستخدمها لأنها ستغير ثقافتها وطاقتها ونبرتها، ومن ثَمّ طريقة تصرف الموظفين فيها. تشرح كل من كاهينا وجوانا أن كلمات مثل السيطرة والغلبة قد طغت على ثقافة الفِرَق بدلًا من الفوز المشترك وقوة الجماعة، وإن الكيانات التي نريد إنشاءها لن تكون أفضل بأجزائها المفردة، وإنما عن طريق مشاركة كل فرد فيها وتعاونه مع باقي فريقه. كيف تغير أسلوبك في الخطاب النقاش – التحدي. بدلًا من "أريد أن أرى مهارتك في هذا"، حاول استخدام لهجة ودودة مثل "دعنا ننظر في هذا الأمر بعمق أكبر". الإبداع المشترك – التعاون. حين تجرد كلمة التعاون من معناها، فلن يكون ضروريًا أن تعني العمل الجماعي المباشر، فالتعاون على مشروع قد يعني أن أجلس في زاوية وأؤلف كتابًا بينما تجلس في زاوية أخرى تصمم له رسومات توضيحية، ثم ندمج ما كتبته مع ما رسمته أنت، فالإبداع المشترك ينطوي على العمل معًا حقيقة على مشروع ما. التقييم – التقدير. كلمة التقييم هي أكثر كلمة قد تكون مكروهة في اللغة بالنسبة للموظفين، لذا إني أدعو إلى تغيير الطريقة التي ننظر بها إلى الأداء، فنستبدل التقدير بالتقييم، حيث أن التقدير كلمة إيجابية وقوية في نفس الوقت. الحل: ربط الأداء بالقيم وليس الأرقام أول خطوة نحو تغيير نظم تقييم الأداء في الشركة هي تحديد القيَم الأساسية لشركتك، وتوضيحها جيدًا، ثم انشرها بعد ذلك في الفِرَق في شركتك، وأكّد عليها كل حين. فالمهم هو الفريق والتحرك الجماعي نحو هدف مشترك مبني على نظام قيمي، وليس الأداء الشخصي والدرجات الفردية، فهذين لا ينتميان إلى بيئة العمل. تطبيق الحل سنقسّم القيَم إلى معايير مختلفة أطلقنا عليها "خريطة الحرارة"، والتي سنستخدمها كل ثلاثة أشهر لقياس مدى تطور الموظفين بين الاجتماعات الثنائية الشهرية، وستزودنا الاجتماعات الثنائية ببيانات نتابع بها ذلك التطور. إليك مثالًا يوضح الأمر: معيار قيمة "العائلة": الإبداع المشترك. الحساسية. المجتمع. الاهتمام بالآخرين. استخدم الألوان بدلًا عن الأرقام: أخضر – مستوى جيد، تابع ما تفعله. أصفر – مستوى متوسط، يمكن العمل على تحسينه بالتدريج. أزرق – مستوى ضعيف يحتاج إلى التحسين الفوري. لا أحد سيركز هنا على أرقام، بل بدلًا من هذا فإن الألوان ستستخدم للتعبير عن حالة تطور الموظف مقارنة بمنظومة القيم الخاصة بالشركة. ستلهم هذه الطريقة الجديدة الموظفين كي ينظروا إلى الهدف الأسمى والسبب الذي يعملون من أجله، وسيركّز على التطوير المستمر الذي يجعل الموظفين يعلمون أن هناك دومًا مساحة للنمو. الخلاصة تخصيص الدرجات لتقييم التعليم يقتل الإبداع لأنه يجعل المحفز خارجيًا وليس داخليًا. الخوف من التقييم السنوي يقتل الإبداع في بيئة العمل. التغذية الراجعة تحتاج إلى أن تكون على مدار العام، وليس مرة واحدة فقط فيه. يحتاج الموظفون إلى التواصل المستمر للتعلم والنمو. نحتاج أن ننتبه إلى مصطلحاتنا التي نستخدمها ونتجنب استخدام كلمات تحفز الردود الدفاعية لدى الموظف. ربط أداء الموظفين بأرقام يؤثر على الطريقة التي ينظرون بها إلى أنفسهم والطريقة التي ينظر بها مدراؤهم إليهم ويعاملونهم على أساسها. يجب ربط الأداء بالقيم للحفاظ على تحقيق جميع أفراد المنظمة للهدف المشترك. هل جربت مثل ذلك الأسلوب ورأيت نفعه من قبل؟ أو كنت تتمنى تطبيقه في شركتك؟ دعنا نسمع منك في التعليقات. ترجمة -بتصرّف- لمقال Why We Got Rid Of The Annual Review, For Good لصاحبته Ali Robins حقوق الصورة البارزة محفوظة لـ Freepik
  15. تابعنا في الجزء السابق من الدرس الأدوات الخاصة بالميزانيات الكبيرة والمتوسطة وسنتابع اليوم سرد أهم الأدوات المجانية وأدوات البحث.. أدوات تهيئة المحتوى المجانية قبل أن تشتري أيًا من الأدوات التي ذكرناها في المقال، يجب أن تعرف أولًا بعض أشهر أدوات تهيئة المحتوى المجانية، فكيف ستعامل مع المزايا الكثيرة والمتشعبة للأدوات المدفوعة إن لم تستطع استخدام الأدوات المجانية بإمكانياتها البسيطة؟ وتكفي الأدوات التي سنذكرها الآن لتنفيذ مهام تهيئة المحتوى الخاصة بموقع تجاري صغير، وستعمل كدعامة حين تستخدم الأدوات المدفوعة فيما بعد. 1. Answer The Public هي أداة بحث بصرية للكلمات المفتاحية، وتجمع بين جامع الاقتراحات التلقائية من جوجل “Google AutoSuggest Scraping” مع جامع أسئلة “question scraper”، وتمنحك وصولًا سهلًا للأسئلة التي يسألها عملاؤك على جوجل، الأمر الذي يفيدك في تطوير موضوعات المحتوى لديك وإيجاد كلمات مفتاحية دلالية. 2. Bloomberry / Question Analyzer هي أداة مجانية تابعة لـ BuzzSumo، وتعرف أيضًا باسم Question Analyzer، وتيسّر هذه الأداة البحث عن الأسئلة عبر المنتديات المشهورة مثل ريدديت وقورا وأمازون، وكسابقتها فهي تساعدك على أن تجد كلمات مفتاحية مرتبطة بمحتواك وتبحث في أسئلة العملاء في الإنترنت. 3. UberSuggest استخدم هذه الأداة للبحث عن كلمات مفتاحية غير موجودة في مخطِّط جوجل للكلمات المفتاحية، فهي أداة بحث تُستَخدم كأداة لاقتراح الموضوعات التي يجب أن تكتب فيها، وعدد مرات البحث فيها غير محدود، كما أنها تنفِّذ مهمتها بشكل ممتاز، وهذا شيء جيد بالنسبة لأداة مجانية. 4. Carrot2 Search Engine هي أداة مفتوحة المصدر لتجميع نتائج البحث، وتساعدك على تنظيم نتائج البحث في تصنيفات موضوعية لتعطيك لمحة سريعة وتقدم لك استعراضًا أكثر كفاءة، وهي أيضًا كسابقتيها مناسبة كأداة للبحث واختيار الموضوعات. 5. LSI Graph هو مولّد للكلمات المفتاحية الكامنة المفهرسة والمرتبطة بالكلمة المستهدفة لخدمة مهام تهيئة المحتوى، والكلمات المفتاحية التي يولّدها ترتبط بكلمة مفتاحية أساسية. وباختصار فهذه الأداة تساعدك على إيجاد كلمات مفتاحية تتعلق بالكلمة الأساسية لديك. أدوات جوجل المجانية 1. مخطِّط جوجل للكلمات المفتاحية Google Keyword Planner لعله أشهر الأدوات التي تستخدم في البحث عن الكلمات المفتاحية في الإنترنت، وهو مباشر وبسيط: ابحث عن الكلمة المفتاحية وستحصل على بيانات مفيدة كثيرة. وتُقسَّم البيانات فيه إلى أعمدة مثل مستوى المنافسة، والعرض المتوقع Estimated Bid، والتي تخبرك كم يتوقع أن تحوّل زوارك إلى عملاء باستخدام الكلمة المفتاحية التي بحثت عنها. 2. منصة بحث جوجل Google Search Consol منصة بحث جوجل هي خدمة مجانية تقدمها جوجل لتساعد موقعك على أن يُعثر عليه في الإنترنت، ويساعدك في مراقبة ومتابعة حالة موقعك وحضوره في الإنترنت، ويحدد ما إن كان لديك بيانات وصفية “meta data” مكررة أم لا، ويتفقد المشاكل الأمنية المحتملة بصفة دورية، ويقدم قائمة من الصفحات التي فهرستها إضافة إلى مزايا أخرى كثيرة. 3. معلومات سرعة الصفحات من جوجل Google PageSpeed Insights أحد أهم عوامل الترتيب التقني في تهيئة المحتوى هي سرعة تحميل الموقع، وهذه الأداة تمسح موقعك لتحدد سرعة تحميله بناءً على الوقت الذي يستغرقه جوجل في تفسيره، وتخبرك على إثر ذلك إن كان موقعك بطيئًا أو مناسبًا أو يحتاج مزيدًا من العمل عليه لتطويره، كما ستظهر لك بعض المشاكل التي قد تكون لديك وحلولها أيضًا. أدوات البحث في منصات معيّنة 1. أداة البحث عن الكلمات المفتاحية في Reddit (keyworddit) تتيح لك هذه الأداة استخراج كلمات مفتاحية من مجتمع فرعي في ريدديت “Subreddit”، عبر كتابة اسم المجتمع الفرعي ثم اختيار واحد من القائمة التي سيولدها البرنامج تلقائيًا، ثم استخرج الكلمات المفتاحية من المجتمع الفرعي. 2. Pinterest Keyword tool تساعدك هذه الأداة في تهيئة عناوين لوحات Pinterest Boards، وإن كنت تستهدف فئة المراهقين والشباب فاعلم أن Pinterest من المنصات المهمة لك، إذ تذكر تقارير أنهم يستخدمونها بنفس قدر استخدام إنستجرام. وشأنها كمخطِّط جوجل للكلمات المفتاحية، فإن أداة pinterest المجانية للبحث عن الكلمات المفتاحية تتيح لك البحث عن “عبارات” مفتاحية -جُمل تتكون من ثلاث كلمات على الأقل وتستهدف شرائح محددة من السوق عوضًا عن استهداف كل السوق أو كل شريحة ممكنة-. كما تتيح لك تفقُّد تاريخ بحثك عن الكلمات المفتاحية، وتحميل الكلمات إن شئت. خاتمة لا تمثّل هذه القائمة إلا غيضًا من فيض تلك الأدوات المتاحة على الإنترنت، وقد يكون من بينها ما هو أصلح لك اعتمادًا على المهام التي تريد تنفيذها. وتحديد أي أداة أنسب لك يجب أن يمر عبر محاولات من التجربة والخطأ، لذا استغلّ فترات التجربة المجانية التي تقدمها بعض البرامج. ترجمة -بتصرف- لمقال WordPress SEO Tools for Every Budget لصاحبته Maddy Osman
  16. ما هي Let’s Encrypt هي هيئة شهادات مجانية تابعة لمجموعة أبحاث أمن الإنترنت-Internet Security Research Group (ISRG)، وتقدم هذه الهيئة طريقة سهلة ومؤتمتة للحصول على شهادات SSL/TLS مجانية لجعل الزيارات على خادم الويب مشفرة وعبر بروتوكول HTTPS. ومعظم خطوات الحصول على الشهادة وتثبيتها يمكن جعلها تتم تلقائيًا باستخدام أداة Certbot. وهذه الأداة يمكن استخدامها حين يتسنى الاتصال بالخادم عبر SSH، أي حين يوجد دخول من الصدفة “Shell” على الخادم. وسنرى في هذا المقال كيف نستخدم Certbot للحصول على شهادة SSL مجانية ومن ثم استخدامها مع NGINX على خادم أوبنتو 16.04 تثبيت Certbot سنضيف مستودع Certbot أولًا، لماذا؟ لأن مطوريه يقومون على صيانة وتحديث هذا المستودع بآخر إصدار من Certbot أولًا بأول، بشكل أسرع مما تفعله أوبنتو بالبرنامج في مستودعاتها، فأوبنتو تحتاج وقتًا لمراجعة كل برنامج يدخل مستودعاتها، خاصة إن كان في إصدار LTS مثل 16.04، وبالتالي فمن الطبيعي أن يتأخر كل برنامج قليلًا حتى يدخل تلك المستودعات. والآن، لإضافة مستودع Certbot: # add-apt-repository ppa:certbot/certbot ثم نحدّث قائمة APT # apt-get update ونثبّت البرنامج # apt-get install certbot الحصول على الشهادة هناك العديد من إضافات Certbot التي يمكن الحصول على شهادة SSL من خلالها، ويقوم مدير الخادم بتثبيتها وتهيئة الخادم بعد ذلك بنفسه. وسنستخدم إضافة Webroot في هذا المقال، وهي إضافة تصلح للحالات التي يمكن فيها تعديل المحتوى، ولسنا في حاجة لإيقاف الخادم أثناء عملية تصدير الشهادة. تهيئة NGINX تنشئ Webroot ملفًا مؤقتًا لكل نطاق في مجلد مخفي اسمه well-known، موجود في المجلد الجذر لـweb، وفي حالتنا فإن مجلد web موجود في var/www/html/. تأكد أن Let’s Encrypt لديها صلاحية الوصول لهذا المجلد، من خلال تعديل تهيئة NGINX. ولفعل ذلك، نفذ هذا الأمر لفتح الملف الذي سنعدّل فيه (استبدل $EDITOR بمحرر نصي من تفضيلك): # $EDITOR /etc/nginx/sites-available/default ضع هذه الأسطر في قسم server داخل الملف: location ~ /.well-known { allow all; } احفظ الملف واخرج، ثم تفقد تهيئة NGINX عبر الأمر التالي: # nginx -t ويجب أن ترى هذين السطرين -بفرض نجاح الأمر-: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful والآن أعد تشغيل NGINX: # systemctl restart nginx الحصول على الشهادة باستخدام Certbot الخطوة التالية هي الحصول على شهادة جديدة باستخدام Certbot مع إضافة Webroot. وسنؤمّن في هذا الشرح (كمثال) نطاق www.example.com عبر الأمر التالي: (لا تنسى أنك يجب أن تحدد كل نطاق تريد تأمينه بهذه الشهادة). # certbot certonly --webroot --webroot-path=/var/www/html -d www.example.com سيسألك Certbot خلال العملية عن بريد إلكتروني صالح من أجل الإشعارات، وسيطلب منك مشاركته مع EFF، غير أن ذلك غير ضروري، وسيكون لديك الشهادةبعد الموافقة على شروط الخدمة. وبعد انتهاء العملية، سيحتوى مجلد etc/letsencrypt/archive/ على الملفات التالية: chain.pem: شهادة السلسلة-Chain Certificate الخاصة بـLet’s Encrypt. cert.pem: شهادة النطاق. fullchain.pem: دمج للشهادتين السابقتين. privkey.pem: المفتاح الخاص للشهادة. كما سينشئ Certbot روابط رمزية لآخر ملفات الشهادة في etc/letsencrypt/live/domain_name/، وهو المسار الذي سنستخدمه في تهيئة الخادم. تهيئة SSL/TLS على NGINX الخطوة التالية هي تهيئة الخادم، أنشئ قصاصة-snippet جديدة في etc/nginx/snippets، تلك القصاصة هي جزء من ملف تهيئة يمكن إدراجه في ملفات تهيئة المضيف الوهمي-virtual host. أنشئ ملف جديد (استخدم محررك النصي بدلًا من $EDITOR) # $EDITOR /etc/nginx/snippets/secure-example.conf محتويات هذا الملف ستكون الموجّهات التي تحدد مواقع الشهادة والمفتاح، الصق المحتوى التالي في الملف: ssl_certificate /etc/letsencrypt/live/domain_name/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/domain_name/privkey.pem; في مثالنا الذي نشرحه، سيكون domain_name هو example.com. تعديل تهيئة NGINX افتح الملف الافتراضي للمضيف الوهمي: # $EDITOR /etc/nginx/sites-available/default عدل محتواه كما يلي: server { listen 80 default_server; listen [::]:80 default_server; server_name www.example.com return 301 https://$server_name$request_uri; # SSL configuration # listen 443 ssl default_server; listen [::]:443 ssl default_server; include snippets/secure-example.conf # # Note: You should disable gzip for SSL traffic. # See: https://bugs.debian.org/773332 … كان هذا الكود من أجل تفعيل التشفير في NGINX، احفظ الملف واخرج ثم تأكد من ملف تهيئة NGINX: # nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful أعد تشغيل NGINX: # systemctl restart nginx خاتمة إن اتبعت الخطوات السابقة فيجب أن يكون لديك الآن خادم آمن مبني على NGINX، مع تشفير من Certbot وLet’s Encrypt. وهذه إعدادات أساسية قطعًا، فيمكنك استخدام معاملات-parameters كثيرة في NGINX لتعديل تهيئته وتخصيصه، حسب حاجة خادم الويب. ترجمة -بتصرف- لمقال Encryption: How To Secure an NGINX web server on Ubuntu 16.04 لصاحبه Giuseppe Molica
  17. يبدو للبعض أن تحقيق رضى الموظف عن حاله في وظيفته أمرًا مثاليًا بعيد عن الواقع، استنادًا إلى النتائج المخيبة للآمال التي خرجت بها الأبحاث التي تقيس تفاعل الموظفين طيلة الأعوام الماضية، والشركات التي أنفقت ملايين الدولارات لتحسين نشاط موظفيها وزيادة تفاعلهم، ومئات المقالات التي تقدم نصائح لزيادة تفاعل الموظفين ورضاهم في العمل. لكن رغم تلك الجهود كلها فإن مؤشر سعادة الموظفين لم يتحسن كثيرًا عن وضعه منذ خمس عشرة سنة. وقد يكون الحل لإسعاد الموظفين سهلًا ولا يكلف شيئًا في كثير من الأحيان إلا أن القول أسهل كثيرًا من الفعل، إذ أن نسبة الموظفين السعداء لا تتجاوز 13% فقط، وفقًا لإحصائية من Gallup. ولأننا نبتغي زيادة تلك النسبة من الموظفين السعداء في أعمالهم، فإننا نستعرض في هذا المقال اثنتي عشرة طريقة بسيطة ومجرّبة لتحقيق ذلك. كيفية زيادة رضى الموظفين يجب أن أشير في البداية أن أصل سعادة الموظف يعود قبل أي شيء إلى الثقة، فأهميتها تكمن في أن ما تفعله يجب أن يخرج من مشكاة ثقتك بأفراد فريقك، فلا يُعقل أن تعطي الموظف مرونة واستقلالًا ومسؤوليات أكثر إن لم تثق به من البداية! كما أن أحد أفضل الأمور التي يمكنك فعلها كقائد هي تطوير ذكائك العاطفي، فسيكون لديك حينها تعاطف أكثر، وشفقة عليهم وعرفان وتقدير لمجهودهم. دعنا ننظر الآن في الطرق التي تزيد من رضا الموظف وسعادته: 1. اجعل توقعاتك منطقية حين نظرنا في تقرير خرجنا به من دراسة حالة تفاعل الموظفين أجريناها قبل مدة أن 60% من الموظفين يلاحظون أن وظيفتهم تضر بحياتهم الشخصية، فنحن لا نملّ من القراءة في نصائح تخبرنا كيف ننجز أكثر في وقت أقل، لكن كان يجب أن ننظر في الطريقة التي نحيا بها حياة صحية ومتوازنة بين العمل والحياة الشخصية بدلًا من محاولة عصر أوقاتنا لاستخراج مزيد من العمل منها. وإنها مسؤوليتك كقائد ألا يشعر الموظف لديك أنه غارق إلى أذنيه في العمل، فإن الموظف نفسه يخشى أن يشتكي من كثرة العمل لئلا يتهم بالكسل والتخاذل. فحاول قدر وسعك أن تشجع الموظف على التحدث في مثل تلك المسألة إن وجدها أو اشتكى منها، فقد يكون من الصعب عليك أحيانًا أن تقلل من المهام في فريقك لتحقيق ذلك التوازن وفقًا لحالة المؤسسة التي تعمل فيها، فلا تهمل الاجتماعات الصادقة مع فريقك كل حين لتعيد النظر في التوقعات المرجوة منكم وما إن كانت أكثر من اللازم، ولتحث الفريق على البوح بالمشاكل التي تضايقهم. 2. قدِّر العمل الجيد اعلم أن تقدير المجهود الذي يقوم به العاملون معك في الفريق هو أسهل وأرخص الطرق لزيادة سعادتهم ورضاهم عن وظائفهم، ولا يتطلب ذلك منك إلا أن تكون واعيًا لمجهودهم الذي يبذلونه كي تبدي تقديرك لهم عليه لاحقًا. وهنا يأتي دور الذكاء العاطفي الذي تحدثنا عنه قبل قليل، فهو ما سيعينك على إدراك حاجتهم إلى إظهار التقدير لمجهودهم. وقد أظهرت أبحاثنا أن 63% من الموظفين لا يرون أنهم يتلقون التقدير الكافي، فهذه فرصة عظيمة للقادة أن يجعلوا موظفيهم فخورين بما ينجزوه. ولنأتي الآن إلى الطريقة التي ستظهر بها ذكاءك العاطفي الذي تحدثنا عنه، فلديك أداة مثل Bonusly التي استخدمناها بأنفسنا فيما مضى، كما يمكنك ذكر الأمر بأسلوب بسيط مثل إنشاء قناة عامة في Slack لتذكر فيها تلك الإشارة اللطيفة إلى مجهود أعضاء فريقك. 3. ركّز على المدى البعيد إن التفكير قصير المدى أو البحث عن تلك النجاحات السريعة لا يضر بشركتك فحسب، بل يسبب إحباطًا للموظفين أيضًا، فهم يحتاجون لمعرفة نفس الرؤية بعيدة المدى التي يراها طاقم إدارة الشركة، فذلك يرسخ قيم الشركة ورسالتها، ذلك أن رسالة الشركة شيء بعيد المدى، وارتباط الموظفين بهذه الرسالة يزيد من حماستهم للعمل. فسَلِ الموظفين لديك أين يرون الشركة بعد عشر سنين من الآن؟ وناقش إجاباتهم معهم كفريق، وسترى مقدار الحماسة التي ستدب في أوصالهم لشعورهم أن أفكارهم قد تقرر مصير الشركة. 4. تواصل أكثر من المعتاد تذكّر أن قلة التواصل هي أصل كثير من مشاكل الإحباط في العمل، وأنه لا يوجد سقف لمعدّل التواصل مع فريقك، وهذا يعني أنك يجب أن تتواصل أكثر من المعدل الذي تراه طبيعيًا، فالمعرفة قوة، وكلما تواصلت مع فريقك وزادت البيانات التي لديهم عن أدائهم وعن الشركة كان أفضل. فاعمل على خلق ثقافة مفتوحة وتواصل صادق بين فريقك، فهذا الشعور بالأمان والراحة لقول ما تشاء لأي فرد في فريقك هو عنصر أساسي لبناء فريق ناجح. 5. اهتم بسلامة الموظفين إن إظهار اهتمامك الصادق بسلامة الموظف أحد أنجح الطرق لزيادة رضاه عن الوظيفة، سواء كانت سلامة الموظف البدنية أو العقلية، وسيعود عليك بشركة هادئة خالية من الإجهاد والضغط والقلق. وبمكنك إظهار هذا الاهتمام بتوفير جدول عمل مرن أحيانًا، وإظهار ثقتك بالعاملين معك، وبتفقد أحوالهم كل حين لترى ما يمكنك فعله لمساعدتهم. أما الاهتمام بالسلامة الجسدية للعاملين فلن تحتاج إلى ميزانية كبيرة للاستثمار فيها مقارنة بالأموال التي ستخسرها نتيجة إصابة أحد الموظفين بمرض جراء إجهاد أو قلق أو قلة حركة، فيمكن أن توفر اشتراكات في صالة ألعاب رياضية، أو تخصص مكانًا لفاكهة طازجة في المكتب، أو تساعدهم في بدء نشاطات رياضية، فكل ذلك يظهر للموظفين أنك تهتم بهم. 6. اعرض عليهم فرصًا للتعلم لا شك أن النمو الشخصي هو أهم عنصر لتفاعل الموظف، فحين يتوقف الموظف عن التعلم فإنه يصاب بالملل ويبدأ بالبحث في أماكن أخرى عن محفّزات له، ولتمنع بحثه عن العمل في مكان غير شركتك عليك أن توفّر له برامج للتعلم المستمر، فسيحبك الموظف من أجل ذلك. وكمثال على ذلك، أعلنت شركة buffer مؤخرًا أنها ستمنح كل موظفيها ميزانية خاصة للتعلم لتظهر لهم أنها تقدّر نموّهم على الصعيد الشخصي. تخيل منح كل موظف ميزانية في حدود 50$ شهريًا من أجل إنفاقها على أي دورة يريدها، هذا يظهر له جليًّا أن شركته تهتم به. وأهم من هذا أن توفر وقتًا لهم كي يتعلموا فيه، فلا يُعقل أن تصرف لهم ميزانية للتعلم ثم تطلب منهم أن يعملوا 60 ساعة أسبوعيًا أو أكثر! 7. قدّم تغذية راجعة بصِفة دورية يتجنب أغلب المدراء نقد للعاملين معهم، لكن الموظف في حاجة إلى من ينتقده ويوجّهه، وليس كل موظف يتحسس من النقد كما تظن، وليس شرطًا أيضًا أن تكون أنت وقحًا في نقدك، بل يكفيك أن تكون مباشرًا وصادقًا، فسيحترمك الموظف لهذا. فخصص وقتًا للنقد الدوري عبر اجتماعات ثنائية مُجدولة مرة في الشهر مع كل فرد في فريقك، وحاول إيجاد فرصة غير رسمية للحديث كلما أمكن. 8. قِس مستوى التفاعل بشكل دوري لم تعد الاستبيانات السنوية كافية هذه الأيام، فإظهار اهتمامك بتفاعل موظفيك من أجل زيادة مستوى رضاهم عن العمل في شركتك يتطلب منك أكثر من هذا. وسواء كنت تستخدم استبيان النبضة (Pulse Survey) أو مؤشر ترويج الموظف(eNPS) أو أي استبيان آخر يقيس مدى تفاعل الموظفين، فإن العنصر الذي يجعل هذا الاستبيان فعّالًا هو تكراره على فترات مجدولة ومتقاربة. 9. لا تركّز على المِنَح فقط تحدّث جيم هارتر -كبير العلماء في gallup- في مقابلة معه عن أن المنح والمزايا التي تعطى للموظفين لا تُحدث الأثر المتوقع منها، قائلًا: وبذا نعرف أن المنح ليست سيئة في ذاتها، وإنما من الخطأ أن نركّز عليها كثيرًا ونعطيها أكبر من حقها، لكن هناك استثناء لهذا، فيقال أن المنحة/الميزة الوحيدة التي تحدث فرقًا في مستوى رضى الموظف هو الجدول المرن، ذلك أن الموظفين يحبون شعور أنهم أهل للثقة التي تسمح لهم ببعض المرونة في جدول العمل. 10. توثيق العلاقات في العمل لا يمكنك إجبار اثنين على تكوين صداقة في العمل، لكن تستطيع خلق بيئة لهذه العلاقة كي تحدث من تلقاء نفسها، عبر تنظيم أنشطة مثل الغداء الجماعي أو المشاريع الجماعية، أو أوقات ترفيه للفريق كله. ويجب أن يكون هدفك من هذا هو أن تعرّف العاملين معك أن لا بأس في أخذ استراحة خلال اليوم للتحدث مع زميل تخففًا من العمل، وهي مسؤوليتك كقائد للفريق أن تضمن نشأة وبقاء تلك العلاقات. 11. أخبر الموظف عن مستقبله المهني أحد أقوى الطرق لزيادة رضى الموظف في وظيفته هي تقديم شيء يتطلع إليه في المستقبل، فمساعدته للتخطيط على المدى البعيد لحياته المهنية يُظهر له أنك تلزم نفسك بضمان نجاحه في مسيرته المهنية، وأنك مستعد للاستثمار فيه على المدى البعيد. وتفعل هذا عبر جلسات تدريب وإرشاد لتطويره وتوثيق علاقاته في العمل، وكلما عملت معه على رسم خارطة لأهدافه المهنية كان أكثر رضى في وظيفته. 12. امنح القوة للعاملين معك يحتاج أن يشعر العاملون معك أن بيدهم قوة واستقلالية تخوّلانهم في التحكم بمهام عملهم إلى الحد الذي يمكّنهم من الانطلاق في تنفيذ العمل بالطريقة التي يحبونها. ولا يحدث هذا إلا إن وثقت بهم، لكن تلك الثقة غير كافية، فيجب أن تشعرهم أن بإمكانهم اتخاذ قرارات بأنفسهم، فدعهم يختارون المهام التي يريدون العمل عليها، والوقت الذي يرغبون في العمل عليها فيه إن كان ذلك مناسبًا، ويقتصر دورك بعدها على الإرشاد فقط. هل لديك نصائح جربتها مع الموظفين لديك لزيادة مستوى رضاهم في العمل؟ لم لا تخبرنا بها في التعليقات! ترجمة -بتصرف- لمقال Twelve Proven Strategies To Increase Job Satisfaction لصاحبه Jacob Shriar حقوق الصورة البارزة محفوظة لـ Freepik
  18. لعلك تتساءل عن السبب الذي يجعلنا نستخدم Docker لتثبيت lamp أو lemp في حين أننا نستطيع تثبيتهما يدويًا؟ فتثبيتهما سهل ولا يحتاج إلى الكثير من التعقيد، لماذا نلجأ إلى Docker؟ دعني أجيب عن هذا السؤال، إنّ docker برنامج خفيف ويغنينا عن الحاجة إلى الآلات الوهمية مثل Virtualbox أو Xen أو غيرهما لنختبر أو نثبت أنظمة التشغيل. وفائدته معنا في هذا المقال أننا نستطيع استخدامه لسحب نسخ جاهزة من LAMP أو LEMP لتشغيلها في بضع دقائق، بدلًا من التثبيت اليدوي لأباتشي، ثم قاعدة بيانات مثل MariaDB أو mySQL، ثم PHP. وتحدث هذه الحالة التي تحتاج فيها إلى نسخة جاهزة وسريعة لاختبار شيء ما عليها إن كنت مطورًا أو مختبرًا أو شغوفًا بالبرمجة وتريد أن تختبر تطبيقًا يعمل في الويب، فتجد نفسك في حاجة إلى تثبيت كل تلك الخطوات التي ذكرتها في الفقرة السابقة، ولعلك جربت هذا من قبل ووجدتها عملية مرهقة وطويلة، وهنا تبرز ميزة Docker حيث يمكننا تثبيت وتشغيل برامج جاهزة ومعدة مسبقًا مباشرة دون الحاجة إلى خوض تفاصيلها التقنية كأننا نثبتها لأول مرة بأنفسنا. وهو ما سنشرحه في هذا المقال على LAMP أو LEMP. تثبيت LAMP/LEMP باستخدام Docker دعنا نبحث في docker عن نسخ جاهزة من LAMP أو LEMP: $ sudo docker search lamp وسيكون الخرج مشابهًا لهذا: NAME DESCRIPTION STARS OFFICIAL AUTOMATED reinblau/lamp Dockerfile for PHP-Projects with MySql client 17 [OK] dockie/lamp 6 [OK] nickistre/ubuntu-lamp LAMP server on Ubuntu 4 [OK] nickistre/ubuntu-lamp-wordpress LAMP on Ubuntu with wp-cli installed 4 [OK] nickistre/centos-lamp LAMP on centos setup 3 [OK] damienlagae/lamp Docker LAMP with supervisord 3 [OK] boolean93/lamp LAMP based on linode/lamp 2 [OK] drunomics/lamp 1 [OK] avatao/lamp LAMP base image 1 [OK] nickistre/ubuntu-lamp-xdebug LAMP on Ubuntu with xdebug installed 1 [OK] nickistre/centos-lamp-wordpress LAMP on CentOS setups with wp-cli installed 1 [OK] linuxconfig/lamp Automated build LAMP stack environment for... 1 [OK] greyltc/lamp a super secure, up-to-date and lightweight... 0 [OK] kazaoki/lamp ローカルフォルダをマウントす... 0 [OK] greyltc/lamp-gateone LAMP stack with gateone server & webdav 0 [OK] fauria/lamp Modern, developer friendly LAMP stack. Inc... 0 [OK] drunomics/lamp-memcached LAMP + Memcached base image. 0 [OK] rpawel/lamp Apache 2.4 + php5-fpm container 0 [OK] lioshi/lamp Docker image for LAMP + MySql under debian 0 [OK] nickistre/centos-lamp-xdebug LAMP on centos with xDebug 0 [OK] greyltc/lamp-aur LAMP stack (in Arch with php7) with AUR ac... 0 [OK] alledia/lamp General LAMP for our tests, based on phusi... 0 [OK] greatfox/lamp 0 [OK] cnrk/lamp LAMP stack Docker image. 0 [OK] grmanit/lamp Based on tutum/lamp with additional settin... 0 [OK] وكما ترى من النتيجة أعلاه، فهناك الكثير من نسخ LAMP المتوفرة لتوزيعات آرتش وCent OS وأوبنتو، وهي مرتبة وفق تقييم المستخدمين لها. وبالمثل يمكننا أن نبحث عن LEMP أيضًا: $ sudo docker search lemp ثم اختر نسخة lemp مناسبة لك، سأحمّل أنا مثلًا nickistre/ubuntu-lamp: $ docker pull nickistre/ubuntu-lamp ويكون الخرج مشابهًا لهذا: Using default tag: latest latest: Pulling from nickistre/ubuntu-lamp faecf96fd5ab: Pull complete 995977506e98: Pull complete efb63fb8dcb6: Pull complete a3ed95caeb02: Pull complete 61626f5cc06d: Pull complete d42e54d21590: Pull complete 4a32d1f581a1: Pull complete 52f44a8dd6d0: Pull complete ce6c1074ae9e: Pull complete 2fa559435609: Pull complete 93a433221384: Pull complete 521d09b9a2d1: Pull complete 6222edddc59d: Pull complete 8fa401b50efc: Pull complete 683063a5d5e0: Pull complete 1f87fa5088b3: Pull complete c5ee1c14048f: Pull complete Digest: sha256:e913d43c204b3cdb931156c1a680c712acfe8db531225ec7b9e4708fc7ebe93c Status: Downloaded newer image for nickistre/ubuntu-lamp:latest سيحمّل الأمر أعلاه نسخة LAMP لأوبنتو، يمكنك تحميل نسختك الخاصة لتوزيعتك كما أوضحنا قبل قليل. وإن لم ترغب في تحميل واستخدام النسخ التي يوفرها docker من الطرفية، فيمكنك تحميلها من Docker hub حيث تجد آلاف النسخ المستضافة هناك. اذهب إلى الرابط أعلاه وابحث عن نسخة LAMP التي تريدها وحمّلها. في حالتي أنا، فقد اخترت نسخة nickistre/ubuntu-lamp كما قلت قبل قليل: اضغط على النسخة التي تريد لمعرفة مزيد من البيانات عنها مثل كيفية تثبيتها واستخدامها: ستجد النسخ التي تحملها في مجلد var/lib/docker/، ولسرد تلك النسخ نفذ الأمر التالي: $ docker images مثال للخرج: REPOSITORY TAG IMAGE ID CREATED SIZE nickistre/ubuntu-lamp latest 5e750e4f49e4 2 days ago 633 MB reinblau/lamp latest 2813b461f843 9 days ago 697.9 MB hello-world latest 690ed74de00f 5 months ago 960 B والآن نشغّل النسخة بعد أن حمّلناها: $ docker run -it nickistre/ubuntu-lamp /bin/bash ستجد نفسك قد دخلت بشكل آلي إلى المجلد الجذر للحاوية على الويب كمستخدم جذر: root@184851ac9ebd:/# شغّل خدمة أباتشي: # service apache2 start ثم خدمة MySQL: # service mysql start تأكد ما إن كان خادم أباتشي يعمل أم لا، بفتح هذه الصفحة في متصفحك http://container_IP/. ولكي تجد عنوان IP، اكتب ifconfig أو ip addr في طرفية الحاوية، يجب أن ترى هنا صفحة اختبار خادم أباتشي. ويمكنك معرفة إصدارات أباتشي وMySQL وPHP بهذه الأوامر بالترتيب: # apache2 -v # mysql -v # php -v وهكذا نكون قد ثبتنا LAMP في أوبنتو واستخدمناه، ويمكنك الآن أن تختبر تطبيقك كما كنت تريد، دون أن تشغل بالك بتثبيت كل تلك الحزم يدويًا أو على حاسوبك، حتى لو كان في آلة وهمية. ترجمة -بتصرف- لمقال Deploy LAMP and/or LEMP stacks easily using Docker لصاحبه SK
  19. يمكن شرح مبدأ نظام التكامل المستمر Continuous Integration System في هندسة البرمجيات ببساطة على أنه دمج مجهود أفراد فريق عمل بشكل مستمر ويومي، فكل مرة تضيف شفرة جديدة لفرع master مثلًا، يحاول خادم CI أن يبني البرنامج (يجمّع البرنامج ويختبر الوحدات والتكامل ويحلل الجودة، إلخ). نظام Concourse للتكامل المستمر تحدث أخطاء غير مقصودة في المتغيرات التي لديك أثناء انتقالك من أحد أنظمة التكامل المستمر إلى غيره لمجرد استخدام واجهة النظام الجديد، ولأن عدد تلك المتغيرات كبير فإن احتمال حدوث الخطأ كبير أيضًا. وهنا يأتي Concourse CI، حيث يهدف إلى توفير نظام تكامل بسيط وقابل للتوسع وبه أقل عدد ممكن من الأجزاء المتحركة، عبر استخدام بنية تفسيرية Declarative syntax يمكن من خلالها نمذجة أي أنبوب pipeline سواء كان بسيطًا مثل (الوحدة unit، التكامل integration ، التطبيق deploy، الشحن ship)، أو كان أنبوبًا معقدًا مثل إجراء اختبارات على بنى تحتية infrastructures متعددة. وسنعرف في هذا المقال طريقة تثبيت Concourse CI على خادم أوبنتو 16.04 باستخدام PostgreSQL. الخطوة الأولى – تثبيت PostgreSQL نبدأ أولًا وقبل أي شيء بتثبيت PostgreSQL على الخادم، حيث سيستخدمها Concourse لتخزين بيانات الأنبوب الخاص به: # apt-get install postgresql postgresql-contrib ثم ننشئ مستخدم PostgreSQL، سيدير هذا المستخدم بيانات Concourse في قاعدة البيانات: $ sudo -u postgres createuser concourseusr يبحث Concourse بشكل افتراضي عن قاعدة بيانات اسمها atc، وسيحاول الاتصال بها، فننشئ قاعدة بيانات جديدة: $ sudo -u postgres createdb --owner=concourse atc تثبيت Concourse CI سنحمّل الآن الملفات التنفيذية الخاصة بلينكس في مجلد tmp (نُشر المقال في 3 أغسطس من هذا العام، واستخدم إصدار 3.3.2 من Concourse، وسنستخدم إصدار 3.4.1 في هذا المقال حيث أنه آخر إصدار متوفر إلى الآن، اطّلع على صفحة التحميلات وانظر الإصدار المناسب لك وغيّر رقم الإصدار في أوامر التحميل التالية: للذهاب إلى tmp: # cd /tmp والآن نفذ الأمر التالي لتحميل إصدار 3.4.1 : # curl -LO https://github.com/concourse/concourse/releases/download/v3.4.1/concourse_linux_amd64 ثم نحمّل الإصدار الأخير المتوفر من fly (إصدار 3.4.1) في مجلد tmp أيضًا: # curl -LO https://github.com/concourse/concourse/releases/download/v3.4.1/fly_linux_amd64 بعد تحميل الملفين، ننقلهما إلى هذا مجلد bin: # mv concourse* /usr/local/bin/concourse # mv fly* /usr/local/bin/fly نتأكد الآن من سلامة الملفات بفحص إصدارها $ concourse --version $ fly –version ويجب أن يظهر لك أن الإصدار هو 3.4.1 (هذا آخر إصدار متوفر وقت ترجمة المقال، وهو الذي استخدمناه). ضبط وإعداد Concourse CI ننشئ أولًا مجلدًا لضبط وإعداد Concourse: # mkdir /etc/concourse 1. إنشاء مفاتيح تشفير تحتاج العناصر التي يتكون منها concourse إلى التواصل فيما بينها بأمان، خاصة TSA وWorkers TSA: خادم SSH بني خصيصًا لتسجيل workers مع ATC Workers: آلات تستخدم خوادم Garden وbaggageclaim وتسجّل نفسها من خلال TSA ولضمان أمان ذلك التواصل فإننا نحتاج إلى إنشاء هذه المفاتيح: مفاتيح لـ Worker مفاتيح لـ TSA مفاتيح تسجيل الجلسة (Session Signing Keys) من أجل تسجيل الرموز (Tokens) ستُستخدم تلك المفاتيح تلقائيًا حين يبدأ عنصر ما، لذا من المهم ألا تستخدم كلمة مرور لقفل المفاتيح. والآن، سننشئ تلك المفاتيح اللازمة، عبر هذه الأوامر: # ssh-keygen -t rsa -q -N '' -f /etc/concourse/worker_key # ssh-keygen -t rsa -q -N '' -f /etc/concourse/tsa_key # ssh-keygen -t rsa -q -N '' -f /etc/concourse/session_key سيقرر خادم TSA آلات workers التي يسمح لها بالاتصال بالنظام، لذا يجب أن نمنح تلك الصلاحية لمفتاح worker العام، وسنكتفي في حالتنا بتنفيذ هذا الأمر: # cp /etc/concourse/worker_key.pub /etc/concourse/authorized_worker_keys 2. تهيئة البيئة Environment Configuration لا يقرأ ملف Concourse التنفيذي أي ملفات تهيئة (Configuration)، لكن هذا لا يعني أنه لا يمكن تهيئته، فهو يأخذ قِيَمه من متغيرات البيئة التي أُدخلت في بداية العملية. 1- أنشئ ملفًا جديدًا لتهيئة عملية web: # $EDITOR /etc/concourse/web_env 2- ألصق هذا المحتوى داخل الملف: CONCOURSE_SESSION_SIGNING_KEY=/etc/concourse/session_key CONCOURSE_TSA_HOST_KEY=/etc/concourse/tsa_key CONCOURSE_TSA_AUTHORIZED_KEYS=/etc/concourse/authorized_worker_keys CONCOURSE_POSTGRES_SOCKET=/var/run/postgresql # Match your environment CONCOURSE_BASIC_AUTH_USERNAME=your_usr_name CONCOURSE_BASIC_AUTH_PASSWORD=strong_pwd CONCOURSE_EXTERNAL_URL=http://server_IP:8080 3- احفظ الملف وأغلقه. 4- أنشئ ملفًا جديدًا من أجل worker # $EDITOR /etc/concourse/worker_env 5- ألصق هذا المحتوى فيه: CONCOURSE_WORK_DIR=/var/lib/concourse CONCOURSE_TSA_WORKER_PRIVATE_KEY=/etc/concourse/worker_key CONCOURSE_TSA_PUBLIC_KEY=/etc/concourse/tsa_key.pub CONCOURSE_TSA_HOST=127.0.0.1 6- عدّل الصلاحيات لملفات البيئة: # chmod 600 /etc/concourse/w*_env 3. إنشاء المستخدم 1- سننشئ مستخدمًا جديدًا لتشغيل عملية web، ويجب أن يطابق هذا المستخدم اسم المستخدم الذي أنشأناه لـ PostgreSQL من قبل: # adduser --system --group concourseusr 2- أعط هذا المستخدم ملكية مجلد تهيئة Concourse CI: chown -R concourse:concourse /etc/concourse 3- أنشئ ملف concourse-web.service في مجلد system: # $EDITOR /etc/systemd/system/concourse-web.service 4- ألصق هذا المحتوى فيه: [Unit] Description=Concourse CI web process (ATC and TSA) After=postgresql.service [Service] User=concourse Restart=on-failure EnvironmentFile=/etc/concourse/web_env ExecStart=/usr/local/bin/concourse web [Install] WantedBy=multi-user.target 5- احفظ وأغلق الملف. 6- أنشئ ملفًا من أجل عملية Worker # $EDITOR /etc/systemd/system/concourse-worker.service 7- ألصق فيه هذا المحتوى: [Unit] Description=Concourse CI worker process After=concourse-web.service [Service] User=root Restart=on-failure EnvironmentFile=/etc/concourse/worker_env ExecStart=/usr/local/bin/concourse worker [Install] WantedBy=multi-user.target 4. ضبط (UFW (Uncomplicated FireWall تستمع عملية web للاتصالات التي على منفذ 8080، لذلك سنتيح الدخول إلى هذا المنفذ بتنفيذ أمر ufw: # ufw allow 8080 وسنحتاج إلى السماح بتصدير الدخول (forwarding access): # ufw default allow routed 5. بدء الخدمات هنا نصل إلى خطوة تشغيل كلا الخدمتين: # systemctl start concourse-worker concourse-web ثم نضبطهما ليعملا في وقت إقلاع الخادم (Server Boot Time): # systemctl enable concourse-worker concourse-web والآن صار الخادم جاهزًا لتنفيذ كل مزايا التكامل المستمر التي يوفرها Concourse CI في أوبنتو 16.04. ترجمة -بتصرف- لمقال Continuous Integration: Concourse CI on Ubuntu 16.04 لصاحبه Giuseppe Molica
  20. تؤثر معنويات الموظف المنخفضة سلبًا على مستوى التعاون بين الفِرَق المختلفة فيها وعلى ثقافة الشركة بشكل عام، كما تتعدى الشركة إلى الطريقة التي يُعامَل بها العملاء أيضًا. ويتجه المدير عادة إلى حلول سريعة، لكن هذا لايصلح على المدى البعيد، إذ الأمر ليس بتلك البساطة. فقد يبدو أن الأمر سهل لأول وهلة، إذ لا بد أن الخطأ من قسم التوظيف أو من الموظف س أو ص، لكن اللوم في الحقيقة يقع على المدراء أنفسهم، فالمسؤولية تنتهي إليك، ويجب أن تتحمل كامل المسؤولية عن أي انخفاض لمعنويات العاملين معك. ذلك أن البيئة التي تخلقها عبر سلوكك ومواقفك وسياساتك بل وحتى انحيازاتك تؤثر بشكل مباشر على الحالة المعنوية في الشركة. ودعنا ننظر أولًا في الأسباب التي تُحدِث تلك الحالة المعنوية المنخفضة للعاملين معك قبل سرد طرق إصلاحها، فكل موظَّف له أسبابه الخاصة التي تمنعه من إنجاز أعمال رائعة لمصلحة الشركة. أسباب الحالة المعنوية المنخفضة للموظفين هناك عدة أسباب لانخفاض معنويات الموظف قطعًا سنتحدث عنها الآن، لكني أود الإشارة إلى أن افتقار الثقة والاحترام هو أكثر ما يبرز من تلك الأسباب، إذ يدفعك إلى لوم الموظّف أو التدقيق في التفاصيل الصغيرة في العمل، والتي كان يجب أن تترك للموظف حرية التصرف في “كيفية” إنجازها. 1. لا يوجد تطوّر أو نموّ من السهل أن يملّ الموظفون ويفقدوا حماسهم إن لم تكن الشركة تنمو وليس هناك أي حركة أو نشاط فيها، وهذا صحيح على مستوى الشركة أو الفرد، فقد يمل الموظف إن لم تكن وظيفته بها تحديات تثير اهتمامه وتحفِّزه، لذا تُظهر دراسات أن الموظفين في حاجة إلى نمو وازدهار الشركة من أجل أن يحافظوا على مستوى أدائهم فيها، وإلا فسينتهي بهم الأمر بترك العمل والبحث عن دور أكثر تحديًا. 2. انعدام الوضوح إن كان الموظّف لا يعرف ما يتوقعه المدير منه أو كان ذلك التوقع غير واضح، فإن ذلك يجهده ويفقده نشاطه، ومن ثم تنخفض معنوياته. لهذا من المهم أن نضع أهدافًا واضحة لكل عضو في الفريق، ونجدول اجتماعات ثنائية معهم بصفة شهرية، كي نتحقق ما إن كان لديهم لبس في فهمهم لتلك الأهداف. 3. التغيّر في القيادة لا شك أن أي شكل من أشكال التغيير يصعب على النفس التعامل معه في البداية، وفي عالم الشركات قد تتأثر معنويات الموظفين سلبًا بسبب اهتزاز الثقة لديهم إن حدث دمج مع شركة أخرى أو إعادة تنظيم للقيادة في الشركة لتوقع تغير ثقافة الشركة. لذلك من المهم أن تبقي عينك على معنويات الموظفين خلال أي تغيّر كبير في الشركة. 4. مشاكل في القيادة يحتاج القادة أن يفهموا كيف يؤثر أسلوبهم على من يعملون معهم، ورغم صعوبة هذا خاصة إن كنت مديرًا تعمل تحت كبار القيادات في الشركة بشكل مباشر، إلا أن انخفاض معنويات الموظفين تستحق ذكرها لدى أولئك القيادات، ذلك أن مشاكل القيادة هي أحد أكبر الأسباب لانخفاض الحالة المعنوية في الشركة. كيف تتعامل مع انخفاض معنويات الموظف رغم سهولة علاج هذه الحالة، إلا أنها تحتاج التزامًا وجهدًا واعيين. إليك الطرق التي وعدناك بها في أول المقال لعلاجها: 1. الشفافية قد يكون من السهل التظاهر بعدم وجود مشكلة أصلًا وإخفاء الأمر أو حجب وصول الأخبار السيئة التي تصل إليك من القيادة العليا للشركة إلى موظفيك كي تتجنب تأثر معنوياتهم، لكن سيكون أفضل لو تعاملت بشفافية معهم، فسيحترمون ذلك الصدق ويعملون معك على حل المشكلة التي حدثت. 2. أظهر تقديرك من المهم أن تركز على الجانب الإيجابي وتظهر تقديرك للعمل الجيّد، فقد لا تكون المشكلة التي تمر بها الشركة هي ما تؤثر على معنويات الموظفين، بل عدم إظهارك للتقدير إزاء مجهود العاملين معك في ذلك الوقت العصيب عليهم. فانعدام التقدير هو أكثر سبب يجعل الموظف يترك عمله، وفقًا لكتاب How Full Is Your Bucket، فإن لم يحصل الموظف على تقدير لوقته وطاقته التي يصرفها في العمل، فستتأثر معنوياته لا ريب. 3. درّب المدير إن مدير الفريق بيده أكبر تأثير على نشاط الفريق ومعنوياته، لذا فإن تدريبه من أهم أولوياتك التي تضعها نصب عينيك لحل مشكلة الحالة المعنوية. وتذكّر أن المدير إن لم يكن هو السبب المباشر لحالة الفريق المعنوية، فإن من مسؤولياته إصلاح الأمر، لذا يحتاج إلى تدريبات في هذه الأمور: الذكاء العاطفي. التواصل. أساليب إدارة مختلفة. تقديم النصح وإظهار التقدير. 4. الشركة الهادئة قد يكون وضع أهداف قاسية للشركة ودفع نفسك وفريقك إلى أقصى حدودكم أمرًا مثيرًا وملهمًا، لكن يجب أن يكون هدفك الأساسي إدارة شركة هادئة تهدف إلى تقليل الضغط والإجهاد والحفاظ على التوازن بين الحياة والعمل. يتحدث Jason Fried -المدير التنفيذي لشركة BaseCamp- عن أهمية إدارة شركة هادئة في استعراض لكتابه الجديد “الشركة الهادئة”، فيقول: 5. عرض فرصة التطور أعط الموظفين لديك إحساسًا بالتقدم وأن لديهم شيئًا يتطلعون إليه كي تبقي على نشاطهم وحماستهم، حتى لو لم يكن الأمر ترقية لوظيفة، فمجرد مساعدتهم على دراسة بعض الدورات أو حضور مؤتمرات تطور مهاراتهم سيؤدي الغرض. 6. اجمع تغذية راجعة من المهم أيضًا إظهار أنك تستمع إلى فريقك عبر طلب التغذية الراجعة منهم، فيمكنك تهيئة منصة تفاعل لهم مثل Officevibe أو تهيئ اجتماعات غير رسمية، ولا تنس شكرهم واتخاذ إجراءات بناء على تلك الاقتراحات التي يقدمونها، حتى لو لم تطبقها بحذافيرها جميعها. 7. نشاطات تزيد من ترابط الفريق يمكنك تنظيم نشاطات خارج نطاق العمل، مثل غداء غير رسمي أو ليلة تخييم في البادية من أجل زيادة ترابط أعضاء الفريق ورفع معنوياته. قد لا يكون هذا حلًا أنصح به كعلاج على المدى الطويل، لكنه يعطي دفعة لطيفة لمعنويات فريقك، ويزيد من ترابطهم الشخصي لتحسين مستوى تعاملهم معًا. والآن، ما الطرق التي تتبعها أنت لرفع معنويات فريقك، دعنا نسمع منك في التعليقات! ترجمة -بتصرف- للمقال Seven Effective Ways To Deal With Low Employee Morale لصاحبه jacob Shriar حقوق الصورة البارزة محفوظة لـ Vecteezy
  21. لم تكن تهيئة المحتوى لمحركات البحث SEO تمثّل أولوية لمطوري الويب المتخصصين في ووردبريس منذ خمس سنوات مثلًا، لكنها بدأت تكتسب سمعة من حينها إلى الآن في جذب الزيارات الطبيعية “Organic Traffic” إلى الموقع ومحتواه. فبدون تقنية SEO لا يكون أمامك إلا فرض تخمينات لما يبحث عنه الناس، وكم منهم يريد إجابات، وأين تضعهم غاياتهم من ذلك البحث في قمع المبيعات لديك. ولا شك أن هناك مئات من أدوات SEO التي يمكنك استخدامها، ويتوقف قرارك في استخدام هذه الأداة أو تلك دونًا عن غيرها على كونها ضرورية لا تستطيع تحقيق نتائج جيدة بدونها أم أنها إضافة لا بأس بها إلى العمل لكنه لن يتأثر لو لم تكن موجودة، خاصة إن مثّلت تهيئة المحتوى جزءًا صغيرًا من عملك أو إن كنت تعمل مستقلًا بدون دعم من مؤسسة/شركة ما، إذ ستكون دقيقًا في اختيار أداة تهيئة المحتوى المناسبة إلى طقم أدواتك بسبب ميزانيتك المتاحة وأسعار خدماتك التي تتأثر بارتفاع تكلفة ما تستخدمه من برامج. وسننظر في هذا المقال في بعض أدوات تهيئة المحتوى التي تغطي شرائح عريضة من مستويات الإنفاق التي قد تكون متاحة لديك، فستجد أداة تناسبك من بينهم سواء كنت تملك مالًا فائضًا في ميزانيتك أو كنت تخطو خطواتك الأولى وتحتاج أن تقيّم نجاح كل أداة تضعها في جعبتك. أدوات تهيئة المحتوى للميزانيات الكبيرة/غير المحدودة: الأفضل ستجد أدوات مجانية منتشرة في أرجاء الإنترنت -كما سيأتي بعد قليل-، لكنها لن تعطيك نفس الأداء الذي ستحصل عليه من الأدوات التي سنذكرها الآن، فلا شك أنك تحصل على أداء أفضل مقابل المال الذي ستدفعه. 1. Moz هي شركة استشارية تساعد الشركات على رفع ترتيبها في نتائج البحث، وقد أطلقت منتج Moz Pro في 2007، ولديها خدمات مجانية أيضًا لا بأس بأدائها، إلى جانب تلك المدفوعة. Moz Pro Moz Pro هي أفضل باقة لديهم تقدّم لك مزايا مثل البحث بالكلمات المفتاحية Keyword Research، وبناء الروابط Link Building، والتحليل الشامل لكل ما يتعلق برؤية موقعك في نتائج البحث Site Audits، إضافة إلى بيانات عن تهيئة الصفحات Page Optimization Insights. تبدأ أسعار MozPro من 100 للشركات، ولديها فترة تجربة مجانية أيضًا، أما مزاياها فما يلي: متابعة تغير نتائج البحث SERP Position Tracking. تحليل الروابط الخلفية. بحث عن الكلمات المفتاحية. التحليل الشامل للموقع Site Audit. تحليل المنافسين. 2. SE Ranking هي أحد الأدوات التي تعتمد على التخزين السحابي، وتوفر مزايا عديدة مثل متابعة نتائج البحث وتحليل المنافسين وتفقُّد الروابط الخلفية ومراقبتها، والتحليل العميق للموقع، ولديها إعدادات مناسبة لمن يتعاملون مع عدة عملاء كالشركات مثلًا. وتبدأ أسعارها من 7$/شهريًا للحساب الشخصي مع فترة تجربة مجانية. 3. Majestic SEO يمكن وضع تلك الأداة في مقارنة مع أداة Ahref السالفة الذكر، إذ تختص بالتهيئة المتعلقة بالروابط، ولديها قاعدة روابط كبيرة تدّعي أنها الأكبر في العالم. ولديها مزايا مثل TrustFlow وcitationFlow لقياس جودة المواقع التي ترغب في أن تحصل على رابط منها، فتعرف إن كانت تلك المواقع سبام أم لا. تبدأ أسعارها من 80$/شهريًا لباقة Lite. 4. SmartCrawl SEO Plugin هي إضافة ووردبريس أنشأتها WPMU DEV -شركة تنتج حلولًا لووردبريس-، وتهدف إلى زيادة الـ PageRank وجلب مزيد من الزيارات إلى موقعك، وتحتاج هذه الإضافة إلى إعداد بسيط في البداية كي تعطيك نتائج تهيئة سريعة وممتازة من أجل أن تراك محركات بحث مثل Google وbing. كل ما عليك هو تحميلها وتثبيتها ثم تفعيلها، وستولّد خريطة لموقعك تلقائيًا، ويمكنك ضبط إعداداتها من لوحة التحكم “wordpress dashboard” > ثم إعدادات “Settings” > ثم SmartCrawl. 5. The SEO Framework هي إضافة حديثة نسبيًا لتهيئة المحتوى كتبها سايبر واجر -أحد أعضاء WPMU DEV- وبدأت تحصل على انتشار سريع، وبدأ الأمر حين كان يعمل على مشروع لعميل يستخدم سمة ليس فيها إعدادات متطورة لتهيئة المحتوى، فقرر أن يكتب إضافة تقوم بهذا. وقد نشرها لأعضاء WPMU DEV في مايو2015 وجعلها متاحة لهم، إذ شعر أنه تعلم الكثير من مجتمع WPMU DEV ومن المناسب أن يرد لهم الجميل بشيء ما، ثم أطلق الإضافة إلى مستودع ووردبريس للإضافات حين حصل على نقد إيجابي من غيره من الأعضاء. ويفضّلها الناس عادة على بعض إضافات تهيئة المحتوى التقليدية، إذ أنها خالية من الإعلانات والسَُخام -bloatware-، لذا فهي مثالية لمهام تهيئة المحتوى وتفقُّد موقعك. 6. Screaming Frog SEO Spider هو برنامج لسطح المكتب -ويندوز أو ماك أو لينكس- تثبّته على حاسوبك محليًّا، وينتشر في الإنترنت عن طريق زاحفات “crawlers” بحثًا عن روابط المواقع والصور والنصوص والتطبيقات لتقييم أي عنصر على الإنترنت من منظور SEO. وهذه الأداة مناسبة لتحليل موقعك والحصول على تحليل لأي مشكلة تقنية، ولديهم باقة مدفوعة بـ150$ في العام، إضافة إلى باقة مجانية. وسنتابع في الدرس القادم بقية الأدوات… ترجمة -بتصرف- لمقال WordPress SEO Tools for Every Budget لصاحبته Maddy Osman
  22. من السهل أن يتحول قياس نشاط الموظفين ومتابعة تفاعلهم في أي منظمة إلى عملية مرهقة، فأنّى لك أن تعرف ما عليك قياسه؟ أهذا المقياس أهم من غيره؟ أم هل يكفي سؤال الموظفين عن مستوى سعادتهم؟ وقد توصلنا عبر عقود من أبحاثنا إلى عشرة مقاييس مهمة يجب أن تنتبه إليها أثناء قياسك لأداء الموظفين، وهي ما سنتعرض لها هنا لنشرح سبب أهميتها وما الذي يجب أن تفعله كي تضمن قياس أداء الموظف من منظورها باستمرار. لكني أريد تذكيرك بأمرين أولًا: كيف تحدد المعيار الذي تقيس إليه؟ هذا أحد الأسئلة التي تطرح نفسها حين تبدأ في قياس أداء العاملين لديك، وأفضل نصيحة لدينا عن المعيارية هي أنك يجب أن تركز أكثر على تطوير نفسك بدلًا من الاهتمام بالمعايير، فقياس مستواك مقارنة بالشهر الماضي أفضل من قياس نفسك إلى معيار الأداء الثابت. متى يجب أن أكرر قياس الأداء؟ ذاك سؤال آخر يتكرر أيضًا، وليست هناك قاعدة ثابتة لذلك، لكن كلما قست أدائك على فترات متقاربة كان أفضل، فهذا يعطيك نتائج دقيقة وبيانات كاملة. المقاييس العشرة اعلم أن بعض تلك المقاييس التي سنذكرها أهم من غيرها، فتوفير فرص النمو للموظفين أفضل وأشد أثرًا من تقديم المنح المجانية مثل الإجازات، لكن هذا لا يعني أن تعتمد على مقياس بعينه وتهمل الباقي، كأن تعتمد على مقياس سعادة الموظف أو مستوى علاقته بمديره فقط دون أخذ باقي المقاييس في الحسبان. 1. النمو الشخصي هذا أحد أهم المقاييس التي يجب أن تراقبها -إن لم يكن أهمّها-، فالموظف ينتظر نموّا وزيادة في موقعه في الشركة بكل ما تحمله الكلمة من معنى، سواء بزيادة الراتب أو المسؤوليات أو الثقة، أو حتى زيادة استقلاله في عمله. ويجب أن يكون هذا المقياس هو أصل إدارة الأداء في شركتك وليس فقط مجرد أحد الإجراءات الروتينية التي تقوم بها. وعلى كل مدير في الشركة أن يكون هدفه ضمان نموّ كل عضو في فريقه. فائدة: اتبِع هذا السؤال -والأسئلة التالية في المقال- بسؤال “لماذا”، كي تصل إلى أصل المشكلة التي يراها الموظف. 2. السعادة ربما يكون مؤشر سعادة الموظف مقياسًا هامًا لا يجب أن تغفله، لكن كثيرًا من الشركات تخطئ باعتمادها هذا المؤشر وحده في قياس نشاط الموظفين لديها، فتفوِّت على نفسها بيانات كثيرة هي في حاجة إليها. وتبين الدراسات التي تُجرى على الموظفين السعداء في وظائفهم أن إنتاجهم أكثر بمقدار 12% مقارنة بغيرهم، فكما يقال أن الموظف السعيد مشغول، لهذا من المهم أن تنظر إلى مدى رضى موظفيك عن أدوارهم في الشركة بعينٍ يقظة. وكي تجعل الموظف سعيدًا يجب أن تنظر في ما يحتاجه شخصيًا في حياته أو في العمل، فقد يكون في حاجة إلى موازنة حياته الشخصية والعملية، أو يريد العمل على مشاريع فيها تحديات أكثر، أو يريد استقلالية أكبر في العمل. لكن من ناحية أخرى، انتبه إلى الأوقات التي يكون السبب في نقص مستوى إنتاج الموظف وسعادته خارجٌ عن إرادتك، كأن يكون حدثًا عائليًا خاصًا به، فحاول حينها أن تستمع إلى موقفه منه شخصيًا، ثم اعرض فرصة المساعدة التي يراها مناسبة والتي تستطيع تقديمها. 3. السفارة يمكن وصف هذا المقياس بأنه مؤشر الولاء للشركة، لكننا نسميه السفارة لأننا ننظر إلى الموظف كسفير لهوية الشركة في كل مكان يسأل فيه عن عمله، وإن كان سعيدًا في عمله داخل الشركة فسينشر سيرتها الحسنة حيثما ذهب، وسترى بريقًا في عينيه حين يتحدث عن الشركة إن سأله أحد عنها أو عما يفعله في الشركة. وذلك هو الهدف الأسمى من قياس نشاط الموظفين داخل الشركة، أن يصلوا إلى هذه المرحلة. وقد بُني هذا المقياس على مؤشر Net Promoter الذي صممته مؤسسة Bain الاستشارية قبل سنوات كمؤشر لخدمة العملاء. 4. العلاقة مع الزملاء في العمل إن إحدى مسؤولياتك كمدير للفريق أن تضمن تناغم أعضاء الفريق معًا وشعورهم أنهم مرتبطون ببعضهم ويستطيعون العمل معًا، رغم أن الكلام أسهل من الفعل هنا، فالفريق الواحد يضم شخصيات مختلفة، لكن جودة العلاقة بين الزملاء في العمل تعني زيادة في التعاون والتواصل، ومن ثَم زيادة في الإنتاج. واعلم أن شعور الموظف بالتجاهل داخل الفريق أسوأ من التنمّر عليه، فاحرص على بذل كل ما في وسعك لضم فريقك كله تحت مظلة واحدة وعادلة. 5. العلاقة مع المدير تستمد علاقة الموظف مع مديره قوتها من شدة الأثر الذي يحدثه المدير في الموظف، وتحتاج هنا إلى بناء علاقة صادقة ومفتوحة ومبنية على الثقة مع كل موظف كي لا يحجم عن التصريح برأيه خشية التعرّض لمشكلة أو مضايقات في عمله. فاحرص على الحديث مع أعضاء فريقك بصدق وأدب بشكل دوري كي تتجنب إجهادًا ونقصًا في مستوى أداء الموظفين كان يمكن تفاديهما بالحوار والتواصل الفعّال. 6. التقدير لا أريدك أن تخلط بين المكافأة والتقدير، فهذين أمرين مختلفين، والموظف يحتاج إلى التقدير أكثر من حاجته إلى المكافأة، فهو يريد أن يشعر أن عمله قد حقق المستوى المطلوب، ليس في نظره فقط، بل في نظر الإدارة أيضًا، فهذا يزيد الثقة في نفسه، ويُظهر له أنك تقدر مساهمته في الفريق. وقد يصيبه القلق والإجهاد حين لا يحصل على هذا التقدير، لإحساسه أنه عمله أقل من المطلوب، ويقع على عاتقك حينها كمدير أن تحرص على تجنيبه هذا الشعور، بإظهار تقديرك لعمله مرة أسبوعيًا على الأقل. 7. التغذية الراجعة إن رأيت أن الموظفين لا يحصلون على نقد بشأن مستوى أدائهم بشكل يعدّل من الأخطاء التي قد تحدث منهم في العمل، فبادر إلى توفير الأدوات المناسبة التي يستطيع المدراء من خلالها تقديم النقد البنّاء لأعضاء فِرَقهم. ولدينا منصة تفاعل للموظفين في Officevibe قد تساعدك في تطوير وتحسين ذلك النقد بين المدير والموظفين. ويجب أن تؤكد على أولوية النقد وأهمية تكراره بصورة دورية ومجدولة على شكل اجتماعات مع أعضاء كل فريق، ربما عن طريق اجتماعات ثنائية بينك وبين الموظف، أو عن طريق الاجتماعات غير الرسمية التي تعطي الموظف راحة أكبر في التعبير عن نفسه وفي تلقي النقد بصدر رحب. ومن المهم أن تكون النقاط التي تنتقد الموظف فيها واضحة ويتبعها أفعال قابلة للتنفيذ والقياس، فما اجتماعاتك مع الموظفين لتقديم النقد والنصح لهم إلا نصف الطريق فقط، ويجب أن تعطيهم الإرشادات التي يصلحون على ضوئها ما كان في حاجة إلى النقد في المقام الأول. 8. الصحة سواء كانت البدنية أو الذهنية، فصحة الموظف مؤشر مهم يؤخذ في الحسبان، ذلك أن أغلب الموظفين حول العالم معرضون للأمراض الناتجة عن الإجهاد والإرهاق وساعات العمل الزائدة. ويجب أن تكون واعيًا لأي مؤشر قد يؤثر سلبًا على صحة الموظف العقلية أو الجسدية، وتذكِّره أن لا بأس في طلب التخفف من المهام الموكلة إليه حين يحتاج إلى ذلك، فأنت في غنىً عن إصابة أحد أعضاء فريقك بالإرهاق أو الإجهاد. 9. المحاذاة إن الصورة المثلى للثقافة في أي شركة هي أن تتوافق قيم الشركة مع القيم الشخصية للعاملين فيها، فسيكون من السهل حينها تشجيع الموظفين على العمل بسبب أنهم يؤمنون بما تؤمن به، ومن ثَم تلاحظ زيادة في نمو واتساع هويتك وشركتك. وإحدى الطرق التي تزيد بها التوافق بين قيم الموظفين وقيم الشركة هي أن تشرح لهم الأسباب التي أقمت الشركة من أجلها، والأهداف التي تجعل السوق في حاجة إلى شركتك، وتساعدهم في رؤية الشريحة المستهدفة من عملائك، ومن هم منافسوك في السوق، وكيف تتصرف كي تميّز نفسك عن أولئك المنافسين. وإنك لَتساعدُهم على فهم الوجهة التي تسير إليها الشركة كلما ركّزت على تلك النظرة المستقبلية بعيدة المدى لشركتك. 10. الرضى إننا نشير إلى ثلاثة أمور أساسية حين نتحدث عن رضى الموظف: المقابل المادي (الراتب+المزايا). بيئة العمل. دور الموظف (وضوح في التوقعات، مستوى الرضى عن دوره اليومي). يجب أن تتفقد تلك الأمور بشكل دوري كل ترى إن كان هناك ما يحتاجه وما إن كان لديه أي لبس يمكن توضيحه. وإن كنت تريد تجنب الحديث عن الراتب بما أنه موضوع حساس، فيمكنك التركيز على المزايا التي يستطيع الموظف الحصول عليها، كأن يعمل من المنزل في أيام معينة، ذلك أن الثقة والاحترام الذي ستحصل عليه من توفير مزايا كهذه له أفضل من أي زيادة في الراتب يحصل عليها. هل ترى مؤشرات أداء وتفاعل أخرى للموظفين تزيد أهميتها بالنسبة لك عما ذكرناه؟ دعنا نسمع منك في التعليقات. ترجمة -بتصرّف- للمقال The 10 employee engagement metrics that matter لصاحبه jacob Shriar حقوق الصورة البارزة محفوظة لـ Freepik
  23. نحن نبني أغلب أعمالنا على خوادم مبنية على Apache أو NGNIX، وربما حان الوقت لتجربة خادم ويب جديد بدأ يحصد شعبية بسبب بساطته، وهو خادم Caddy. وقد أُطلق هذا الخادم لأول مرة في 2015 مكتوبًابالكامل بلغة Go، وتعتمد تهيئته على caddyfile، وهي ملفات يسهل كتابتها وإدارتها كما سنرى في هذا المثال، وما حمّسنا له حقيقة هو أنه يتكامل مع Let’s Encrypt بشكل افتراضي ودون أي تهيئة يدوية. مزايا Caddy Automatic HTTPS مفعّلة افتراضيًا من خلال Let’s Encrypt. HTTP/2 افتراضيًا. Static Files في مجلد العمل الحالي. كل أنواع الخوادم، والموجّهات-directives، ومزودو DNS، ومزايا أخرى، كل ذلك موجود في صورة إضافات. يمكن استخدامه كمكتبة في برامج أخرى بلغة Go. يمكن تهيئته ليشغّل أوامر خاصة بالنظام عند بدء التشغيل أو إيقافه. ملف تنفيذي واحد لا يحتاج إلى اعتماديات إلا فيما يتعلق بالنواة-kernel. كل هؤلاء إضافة إلى مزايا أخرى عديدة، أما الآن فسنلقي نظرة على كيفية تثبيته واستخدامه على خادم أوبنتو 16.04. تثبيت خادم ويب Caddy يوفّر Caddy شفرة نصية-script للتثبيت، تحمّل وتثبت الملف التنفيذي له -فهو لا يحتاج إلى اعتماديات كما ذكرنا-، نفذ الأمر التالي لتنفيذ الشفرة: $ curl https://getcaddy.com | bash وستسألك الشفرة أثناء التثبيت عن كلمة المرور من أجل الحصول على صلاحيات إدارية، فيكون الخرج هكذا: % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 5593 100 5593 0 0 3696 0 0:00:01 0:00:01 --:--:-- 3696 Downloading Caddy for linux/amd64... https://caddyserver.com/download/linux/amd64?plugins= Download verification OK Extracting... Putting caddy in /usr/local/bin (may require password) [sudo] password for gmolica: Caddy 0.10.6 Successfully installed ستتغير gmolica إلى اسم المستخدم الخاص بك طبعًا، وسيكون Caddy مثبتًا وجاهزًا بمجرد انتهاء الشفرة من عملها. جدير بالذكر أن عملية التثبيت لن تطبق إعدادات أو تهيئة على مستوى النظام-system wide، لذا سيكون عليك تنفيذ هذا الجزء، كما سنرى فيما يلي. تهيئة Caddy سيعتبر Caddy أن المجلد الجذر للموقع هو المجلد الذي نفّذته منه، فإن نفّذت Caddy من مجلد $HOME فسيستخدمه كمجلد جذر له، وهذا يعني بعبارة أخرى أن من السهل استخدام Caddy في العمل على المواقع محلّيًا. - لبدء Caddy: $ caddy ستظهر الطرفية الرسالة التالية: Activating privacy features... done. http://:2015 WARNING: File descriptor limit 1024 is too low for production servers. At least 8192 is recommended. Fix with "ulimit -n 8192". لاحظ أن Caddy يعمل على مضيف محلي-localhost، في منفذ 2015. قد يؤدي فتح صفحة http://your_server_IP:2015 -استبدل عنوان خادمك بـyour server IP-إلى صفحة خطأ 404، هذا بسبب أن المجلد الذي يستخدمه Caddy لا يحتوي على موقع، فيجب أن ننشئ تلك المجلدات المطلوبة أولًا: إنشاء المجلدات المطلوبة أولًا، ننشئ مجلدًا يحتوي ملف caddyfile الأساسي: # mkdir /etc/caddy نغير ملكيته إلى المستخدم الجذر ومجموعته إلى www-data: # chown -R root:www-data /etc/caddy أنشئ مجلدًا ثانيًا ليخزن فيه Caddy شهادات SSL والمفاتيح الخاصة: # mkdir /etc/ssl/caddy غير مالكه إلى www-data: # chown -R www-data /etc/ssl/caddy غيّر صلاحياته كما يلي: # chmod 0770 /etc/ssl/caddy والآن أنشئ المجلد الذي سيحتوي الموقع: # mkdir /var/www وغيّر مالكه إلى www-data: # chown www-data:www-data /var/www تحميل ملف Caddy Unit لن يثبّت Caddy نفسه افتراضيًا كخدمة systemd، لكنه يوفّر رسميًا ملف unit، حمّله بالأمر التالي: # curl -s https://raw.githubusercontent.com/mholt/caddy/master/dist/init/linux-systemd/caddy.service -o /etc/systemd/system/caddy.service بفتح الملف، سنلاحظ هذه السطور: ; Letsencrypt-issued certificates will be written to this directory. Environment=CADDYPATH=/etc/ssl/caddy ; Always set "-root" to something safe in case it gets forgotten in the Caddyfile. ExecStart=/usr/local/bin/caddy -log stdout -agree=true -conf=/etc/caddy/Caddyfile -root=/var/tmp لاحظ مسارات المجلدات في تلك السطور، لهذا قد أنشأنا المجلدات قبل قليل. والآن أنشئ ملفًا فارغًا باسم caddyfile: # sudo touch /etc/caddy/Caddyfile نفّذ الأمر التالي كي يعمل Caddy عند الإقلاع: # systemctl daemon-reload # systemctl enable caddy تفقد حالته بهذا الأمر: # systemctl status caddy يجب أن يكون الخرج هكذا: ---------------------------------- â caddy.service - Caddy HTTP/2 web server Loaded: loaded (/etc/systemd/system/caddy.service; enabled; vendor preset: en Active: inactive (dead) Docs: https://caddyserver.com/docs السماح باتصالات HTTP وHTTPS سنسمح لاتصالات HTTP وHTTPS عبر UFW (Uncomplicated Firewall)، كي يتمكن Caddy من خدمة المستخدمين بشكل سليم، نفّذ هذه الأوامر في الطرفية للسماح بهذه الاتصالات: # ufw allow http # ufw allow https اختبار Caddy آخر خطوة هي اختبار Caddy للتأكد أن كل شيء تم بشكل سليم: تعديل Caddyfile لقد أنشأنا ملف caddyfile فارغ من قبل، الآن سنبدأ الكتابة فيه: - افتح الملف باستخدام المحرر النصي الذي تفضّله: # $EDITOR /etc/caddy/Caddyfile الصق هذا المحتوى في الملف: example.com { root /var/www gzip tls gmolica@example.com } ملاحظة: سطر tls يحتوي على عنوان بريد يستخدمه Caddy ليحصل على شهادات SSL من Let’s Encrypt. - احفظ الملف وأغلقه. - شغّل Caddy: # systemctl start caddy أنشئ صفحة ويب سننشئ صفحة ويب لاختبار Caddy: $ echo '<h1>Website using Caddy</h1>' | sudo tee /var/www/index.html استخدم نفس الجذر الذي ثبتنا فيه ملف caddyfile. خاتمة لقد رأينا الآن كيفية تثبيت واستخدام Caddy، ولاحظنا كيفية سهولة التثبيت وإنشاء ملف caddyfile لتخصيص سلوك الخادم. لاحظ أن سهولة الاستخدام يتبيّن فضلها في بيئات التشغيل المعقدة. ترجمة -بتصرف- لمقال Caddy Web Server On Ubuntu 16.04 لصاحبه Giuseppe Molica
  24. إن التاجر الذي يبيع بضاعته في متجر عادي يعلم أنه ربحه محدود بالسوق المحلّي وبمن يستطيع الحضور إلى متجره دون كثير مشقّة أو تعب، وحين يريد عرض منتجاته في سوق جديد فإنه يذهب بنفسه وبضاعته إلى ذلك السوق -كما كان يحدث قديمًا في رحلات التجارة- أو يفتتح أفرعًا جديدة له في ذلك السوق الذي يريد التوسع فيه، وهذا ما يحدث إلى الآن في كثير من الشركات والمتاجر. لكن مع بداية الألفية الجديدة فقد خرجت علينا أنظمة وبرامج رقمية تتيح ﻷصحاب المتاجر وضع منتجاتهم على الإنترنت في هيئة متاجر افتراضية على الإنترنت، وبهذا تتوسع تجارتك إلى كل شخص لديه اتصال بالإنترنت، وليس محيطك المحلّي فقط، وبدون الدخول في تفاصيل وتعقيدات إقامة أفرع حقيقية في الدول التي سمحت لها بالدخول إلى متجرك الإلكتروني. وسنتعرف في هذا المقال على أشهر تلك البرامج والأنظمة وأهم الخصائص التي تميِّز كلًّا منها، ومتى يكون استخدام أحدها مناسبًا لك عما سواه. برامج وأنظمة إدارة المتاجر الرقمية إن المتاجر الرقمية التي سأتحدث عنها في هذا المقال من أمثلة Shopify وWooCommerce تعطيك ملكية متجرك في مقابل مبلغ مالي تدفعه لقاء استخدام خدماتها، سواء مرة واحدة أو بشكل شهري أو غير ذلك من طرق الدفع أو حتى بشكل مجاني أحيانًا، لكنك تكون المسؤول عن التسويق لمتجرك بنفسك، على خلاف مواقع مثل eBay أو Amazon التي لا تملك متجرًا فيها لنفسك، وإنما تدفع نسبة من أرباحك مقابل التسويق لك ومقابل سماحهم لك بعرض منتجاتك على الجمهور الذي يشتري منهم، لكنك لا تأمن أن يأتي يوم ويٌحظَر حسابك بسبب تقييمات من العملاء رغم ذلك. وتتنوع حالات استخدام تلك المتاجر من الشركات التي تبيع منتجات رقمية وتريد متاجر على مواقعها لأن أغلب عمليات الشراء لتلك المنتجات تتم على الإنترنت، إلى مواقع التسوّق وتجار التجزئة الذين يبيعون منتجاتهم –الرقمية أو الحقيقية- عبر الإنترنت لزيادة عمليات الشراء من خارج السوق المحلّي. وتتيح تلك البرامج والمنصّات لزائري المتجر -زبائنك في هذه الحالة- أن يختاروا المنتجات التي يريدونها، ويقارنوا بينها، ويقيِّموها ويضيفوها إلى سلّات التسوق الخاصة بهم، ثم تحسب لهم حاسبة في صفحة الدفع التكاليف النهائية بعد الضرائب والشحن وأي تكاليف أخرى. وسننظر الآن في بعض أشهر تلك الأنظمة كي نتعرف على مزاياها ومدى مناسبتها لتجارتك. Shopify تقدم منصة Shopify نظامًا سهلًا لإطلاق المتاجر الإلكترونية وإدارتها كي تبدأ مشروعك في أسرع وقت ممكن، فما عليك إﻻ تسجيل حساب جديد وإضافة المنتجات وأسعارها كي تبدأ البيع، ثم تضيف قليلًا من التخصيص لمتجرك كي يتوافق مع علامتك التجارية، كأن تغير من شكل ولون قالب التصميم الذي اخترته أثناء تسجيل حسابك، أو تختار قالبًا جديدًا من تشكيلة جاهزة من متجر Shopify، شيء يشبه قوالب ووردبريس تمامًا. كما يمكنك إضافة نطاقك الخاص ليكون عنوان المتجر، فبدلًا من العنوان الافتراضي الذي اخترناه لهذا الشرح (https://hsacadmy.myShopify.com)، فإن متجرك يجب أن يكون ممثلًا لعلامتك التجارية. ولا تقلق إن كنت ﻻ تدري كيف تخصص متجرك ولا ما الأمور التي يجب أن تنتبه إليها، فإن واجهة Shopify سهلة التصميم وتقودك مباشرة إلى إتمام الأجزاء الناقصة في حسابك أو متجرك خطوة بخطوة. مزايا Shopify دعم مباشر من اللحظة الأولى لاستخدامك، عبر واجهة المنصّة والرسائل البريدية. تخصيص الرسائل والفواتير بهويتك التجارية. تحليلات وتقارير لمتجرك عن سلوك عملائك مع المتجر والمنتجات المختلفة. إعادة المال للعميل في حالة إرجاع السلعة. مدونة لمتجرك. شهادة SSL مجانية. دعم لأكثر من منصة (ماك، ويندوز، أندرويد .. ). وجود متجر تطبيقات لإضافة أدوات تزيد من كفاءة متجرك. عيوب Shopify ثمن اشتراك الباقات مناسب لما تقدّمه، لكن قد تزيد التكلفة إن أردت إضافة بعض التطبيقات من متجر Shopify. توجيه العميل إلى صفحة دفع خاصة بـShopify عوضًا عن نطاقك الخاص. أبلغ بعض العملاء عن أوقات تعطلت فيها خوادم Shopify في ذروة مواسم الشراء. وتقدم Shopify ثلاث باقات لعملائها يختارون أيها تبعًا لحجم تجارتهم وما يحتاجون إليه، نستعرضها فيما يلي: Shopify Lite تناسب هذه الباقة أصحاب الأعمال الصغيرة الذين يرغبون في البيع على فيس بوك مثلًا ولديهم موقع قائم بالفعل يبيعون منه عبر إضافة أزرار للشراء، إذ أنها لا تعطيك متجرًا رقميًا كاملًا، بل الأدوات الأساسية التي تمكّن الناس من شراء ما تبيعه إضافة إلى طريقة لتحصيل ذلك المال في مقابل زهيد لا يتجاوز 9$، وقد أضيفت خاصية التحدث مع العملاء عبر برنامج ماسنجر في فيس بوك مؤخرًا إلى هذه الخطة، من أجل تواصل أسرع مع عملائك. ويجب أن تعلم أن هذه الباقة تتطلب أكثر من مجرد شراء استضافة، فهي موجّهة إلى من يريد إضافة إمكانية الشراء إلى كيان موجود بالفعل مثل مدونة أو موقع، لهذا تحتاج إلى موقع واستضافة ونطاق قبل دفع مالك في Shopify. Basic Shopify اشتراك هذه الباقة يقارب 30$، وهي مناسبة حين يزداد العمل في تجارتك الصغيرة وتبدأ في توظيف غيرك أو حين تبدأ تجارة مع واحد أو اثنين غيرك، إذ أنها تتيح لك إضافة حسابين غيرك لاثنين من العاملين معك، ولا تحدّك بعدد معين للمنتجات التي تبيعها أو حجم الملفات التي تتعامل معها. كما تقدم لك مزايا مثل شهادة SSL المجانية إضافة إلى موقع ومدونة، وأكواد للخصومات، ودعم على مدار الساعة، والإنشاء اليدوي للطلبات. Shopify تزيد تلك الباقة عن سابقتها في أنها ترفع عدد حسابات الموظفين إلى خمسة حسابات، وتقدم لك مزايا مثل بطاقات الهدايا واستعادة سلات الشراء والتقارير الاحترافية، في مقابل زيادة اشتراكك إلى نحو 80$. Advanced Shopify ترفع هذه الباقة عدد حسابات الموظفين التي يمكنك إنشاءها إلى 15 حسابًا، وتقدم لك أفضل خصم على تكاليف الشحن من بين الباقات الثلاث، وعرض تكاليف الشحن من الطرف الثالث مثل FedEx وغيرها، وصياغة التقارير المتقدمة، وذلك في مقابل زيادة اشتراكك إلى نحو 300$. خدمة نقاط البيع ولا تتوقف خدمات Shopify على التجارة الرقمية، فتستطيع شراء بعض العتاد لمتجرك الحقيقي مثل قارئات البطاقات البنكية وماكينات تحصيل الأموال التي يمكنك استخدامها بتوصيلها بهاتفك الذكي أو حاسوبك اللوحي، وقارئات barcode، وطابعات فواتير وغير ذلك، كي تبيع منتجاتك في متجرك الحقيقي أو في أي مكان تريد. 3dCart تعتمد 3dCart أسلوب تقديم البرنامج نفسه كخدمة (SaaS: Software as a Service) مثل Shopify، فهي تريحك من الأمور التقنية لمتجرك مثل الاستضافة وتحديث برمجيات الخوادم أو إدراة تلك الخوادم، ما يعني أنك لا تحتاج إلى توظيف مطور ويب في الغالب. وهي تقدم ثلاث باقات يُدفع اشتراكها بشكل شهري تبدأ من 30$، وذلك يجعلها مناسبة للأعمال الصغيرة والكبيرة على السواء، وحتى الباقة الأساسية منها تتضمن البيع في فيس بوك ومنتجات وسعة تخزين غير محدودتين، ومدونة جاهزة ومراجعات للمنتجات وحاسبات ضرائب، كما أنها تتكامل مع أمازون وeBay أيضًا، فهذا يجعلك تبدأ متجرك الرقمي الصغير بمزايا كثيرة كنت تظن أنك ستدفع الكثير من المال لقاءها. ملخص باقات 3dCart باقة Basic لقاء نحو 30$ شهريًا، تعطيك المزايا الأساسية إضافة إلى حسابين للموظفين. باقة Plus لقاء نحو 80$، تعطيك مزايا جديدة مثل التسويق بالبريد الإلكتروني وتقديم العروض الخاصة وحافظات لسلات الشراء، إضافة إلى خمس حسابات للموظفين. باقة Pro لقاء 230$، للشركات التي بدأت في التوسع والنمو، فتعطيك مزايا مثل حملات البريد ذات الردود الآلية، الشحن الآلي للمنتجات (في حالة شراء العميل للمنتج مرة بعد مرة، فيختار إرسال المنتج له بشكل آلي على الفترات الزمنية التي يرغب بها)، إضافة إلى مزايا جديدة تعِدُ 3dCart بقدومها إلى هذه الباقة قريبًا، مثل الطلبات المسبقة وإعلانات فيس بوك الديناميكية. تعطيك هذه الباقة 15 حسابًا للموظفين. مزايا 3dCart بيع منتجات رقمية وحقيقية. إمكانية إنشاء خصومات وهدايا. إنشاء قوائم انتظار للمنتجات التي يكثر الطلب عليها حتى تتوفر من جديد في المخزن. حاسبات شحن وضرائب. حصولك على مدونة لمتجرك. أدوات استيراد وتصدير من أجل إجراء تعديلات بالجملة أو نقل قواعد بياناتك. إمكانية البيع عبر نقاط البيع POS (مثل Shopify). قوالب بريدية كي تستخدمها في التسويق بالبريد الإلكتروني. مزامنة مخزنك مع قنوات بيعك في أمازون وeBay كي تدير متاجرك من مكان واحد. وإعداد متجر 3dCart لا يحتاج إلى خبرة برمجية، فهو مثل Shopify يقودك عبر خطوات بسيطة لإعداد متجرك، وإن كان يختلف عن Shopify في تصميم تلك الخطوات قليلًا حيث يضعهم لك بالترتيب في اللوحة الرئيسية. ويتابعك برسائل محادثات آلية مع ممثلي خدمة العملاء في كل قسم تدخله لأول مرة، وتستطيع الرد على تلك المحادثات إن شئت، وسيرد عليك أحد ممثلي خدمة العملاء الموجودين في أقرب فرصة (قد تصل إلى خمس ساعات حسب قولهم، لكنهم لم يردوا في أحد المرات التي راسلتهم فيها إلا بعد نحو اثني عشر ساعة تقريبًا). ولأنها قريبة من Shopify في نموذج عملها، فستجد هنا أيضًا متجر تطبيقات ملحقًا بها، تضيف منه تطبيقات تساعدك في التسويق بالبريد أو حساب الضرائب أو أنظمة الحسابات. عيوب 3dCart تدور أغلب المشاكل التي رأيتها في 3dCart حول خدمة العملاء السيئة، لكن تلك التقييمات والمشاكل تعود إلى أكثر من عام مضى (منذ 2016)، لذا فقد تكون تلك الخدمة قد تحسنت منذ ذلك الوقت، خاصة أني رأيت ردودًا لمؤسس 3dCart على كثير من تلك التقييمات التي مر عليها أكثر من عام أو عامين وهو يؤكد تجديدهم الكامل والجذري لقسم خدمة العملاء. وهكذا ترى أن 3dCart مناسبة أيضًا لجميع أحجام الشركات التي ترغب بوجود متاجر رقمية لها، والتي ليس لديها خلفية تقنية ولا تريد التفكير في أعباء الخوادم والاستضافات وغير ذلك، وإنما تود التركيز على البيع والشراء وزيادة أرباحها. Magento تأتي ماجنتو مع إصدار مجاني مفتوح المصدر يمكنك البدء باستخدامه مجانًا، لكن لا تتوقع نفس الدعم الذي تحصل عليه مع الإصدارات المدفوعة، وإنما عليك الاعتماد على البحث في مجتمعات المطورين المهتمين بماجنتو في الويب، أو في التوثيق الخاص بها أو دليل الاستخدام. وتثبيت هذه النسخة المجانية من ماجنتو يتطلب خلفية تقنية أو على الأقل معرفة بالتعامل مع سطر الأوامر وإدارة الخوادم، ويمكنك الاطلاع على هذه المقالة لمعرفة تفاصيل أكثر عن Magento، وعلى هذه لبيان كيفية تثبيتها على نظام تشغيل أوبنتو. مزايا Magento قابلية التخصيص العالية. سهولة زيادة حجم المتجر. إنشاء مجموعات مستخدمين من أجل التسويق الموجّه. عرض المنتجات المعروضة مؤخرًا ومقارنة المنتجات. عرض المنتجات المرتبطة لزيادة حجم التسوّق. حفظ سلة الشراء حتى بعد مغادرة الموقع. كتابة بيانات وصفية للمنتجات (meta data). إدارة عدة مواقع من مكان واحد. استيراد بيانات أو تصديرها بالجملة من خلال ملفات csv. ربط تحليلات جوجل بالمتجر. عيوب Magento فقر الدعم الفني، بما أن الخدمة مجانية، فستضطر إلى البحث بنفسك في جوجل ومنتديات الدعم عن حل مشاكلك. صعوبة التعود عليها، بما أنها تحتاج إلى خبرة برمجية. تقودك إلى إنفاق أموال كثيرة فيما بعد رغم توفير إصدار مجاني للتحميل، إذ أنك مسؤول عن حماية خوادمك بنفسك، وعن ضبط وإعداد المتجر، بل وشراء قوالب له أيضًا، ومن ثمّ توظيف مطور خبير بهيكلة ماجنتو كي يتعامل مع الطرف الخلفي للمتجر (الخوادم التي تستضيف متجرك). يقول بريت ويليامز -مؤلف أربعة كتب حول ماجنتو-: من يستخدم النسخة المجانية من ماجنتو فلا يتوقع أن يحصل على أي دعم تقني، إذ أنك تحصل على مقابل ما تدفعه. كما أن ماجنتو ليست بالخيار الرخيص، وستحتاج إلى توظيف مطوِّر ويب معتمد من ماجنتو، كما يجب أن تكون مستعدًا لإنفاق قرابة 10.000$ على الأقل في البداية ثم 200$ شهريًا للاستضافة. لذا يمكننا القول أن ماجنتو مناسبة للشركات المتوسطة إلى كبيرة الحجم، والتي لديها ميزانية تسمح بالإنفاق على تشغيل وصيانة الخوادم التي ستحمل متاجرها الرقمية. وهذا يقودنا إلى ذكر أنها ليست من فئة البرمجيات الخدمية Saas، وإنما تدفع أنت مقابل حق استخدامها، أي ثمن رخصتها، في مقابل البرمجيات الخدمية التي تدفع لها اشتراكًا شهريًا مقابل اهتمامهم بالجانب التقني كي تركّز أنت على تجارتك. OpenCart تصنّف منصة OpenCart أيضًا ضمن البرمجيات مفتوحة المصدر والتي توفّر نسخة مجانية للتحميل كسابقتها ماجنتو، وهي تشبهها أيضًا في ضرورة توفّر خلفية برمجية لمن يستخدمها، هذا يعني أنك بحاجة إلى مطور ويب أيضًا حال استخدامك لهذه المنصة إن لم تكن لديك معرفة تقنية بأدوات التعامل مع خوادم الويب ولغة مثل PHP وقواعد البيانات. مزايا OpenCart إضافة تصنيفات ومنتجات كما تشاء دون تقييد بعدد معين. تغيير اللغة التي تستخدمها، إذ أنها تدعم لغات متعددة يمكنك تحميلها وإضافتها. تغيير العملات التي تستخدمها في تسعير منتجاتك. إدارة عدة متاجر من لوحة تحكم واحدة. تهيئة صفحات متاجرك لمحركات البحث عبر تخصيص الوسوم الوصفية meta tags الخاصة بمنتجاتك. أدوات نسخ احتياطي لقواعد بياناتك. تقارير عن مبيعاتك والمنتجات التي استعرضها عملاؤك. مراجعات للمنتجات وتقييمات لها. إضافة منتجات رقمية قابلة للتحميل. ورغم مجانية OpenCart إلا أنك ستدفع ثمن النطاق وإيجار الاستضافة والأمان لبياناتك، وكذلك بالنسبة للقوالب التي يمكنك استخدامها لمتجرك، فهي متوفرة من طرف ثالث -themeforest مثلًا، وستكون محدودًا بالمنتديات التي تقدم نصائح وإجابات فنية للمشاكل التي ستواجهك بسبب مجانية المنصة التي لا تغطي تكلفة الدعم الفني، لكن يمكنك توظيف مطور من طرف ثالث تقترحه عليك OpenCart بمقابل مادي طبعًا. ويمكنك تجربة المنصة مجانًا عبر تحميلها بشكل كامل وتثبيتها، لكن إن كنت تود تجربتها على عجل فإن المنصة تتيح لك تجربتها مباشرة دون أي تفاصيل أو تعقيدات، يمكنك تجربتها فورًا من هنا. لكن هذه التجربة ليست كاملة، بمعنى أنك لا تستطيع إضافة منتج مثلًا، وإنما هي للعرض التوضيحي فقط لما ستكون عليه واجهة المتجر بالنسبة للعميل، ولوحة التحكم بالنسبة لمدير المتجر. عيوب OpenCart يمكن قول نفس عيوب Magento هنا: كونها مفتوحة المصدر أو مجانية التحميل يعني أنك ستعتمد على نفسك في الدعم الفني. حاجتها إلى الإضافات (Add-ons) كي تعمل بكفاءة يعني زيادة التكلفة والحاجة إلى توظيف مطور ويب من أجل التعامل مع الأمور الفنية. بطء التحديثات وقلة الخيارات والباقات التي تقدمها. تصلح منصة OpenCart للأعمال الصغيرة والمتوسطة، لذا أنصحك بها إن كنت قد جربت ماجنتو ولم تعجبك لكنك ما زلت تود استخدام منصة مفتوحة المصدر ومجانية. PrestaShop تصنّف منصة PrestaShop أيضًا ضمن المنصات مفتوحة المصدر، وتوفِّر خيار التحميل المجاني، لكن لعلك خمنت أن هذا لا يعني أنها مجانية تمامًا، فإضافة إلى التكاليف التي ستدفعها للاستضافة، فإنك مضطر إلى شراء عدة وحدات (modules) من أجل أن تجعل موقعك يعمل بشكل مثالي كمتجر إلكتروني، ويفضّل أن توظِّف مطور ويب إن لم تكن لك خلفية تقنية للتعامل مع الطرف الخلفي (backend) للمتجر. وتوفّر PrestaShop إمكانية استعراض نسخة نموذجية منها إن لم ترد تحميلها وتجربتها بنفسك كي ترى لوحة التحكم والواجهة الأمامية التي سيراها المستخدم، وأنصحك هنا أيضًا بتوظيف مطور ويب من أجل ضبط وإعداد prestashop من أجلك. مزايا prestashop رسائل متابعة مع العملاء يمكن تخصيصها بهويتك التجارية. تحليلات في الوقت الحقيقي realtime analytics (يمكنك استبدالها بخدمة google analytics). خيارات الدفع المتعددة التي يمكن دمجها من طرف ثالث. ضبط متجرك ليظهر بلغات متعددة (تدعم المنصة أكثر من 60 لغة وتقبل عملات متعددة). حرية في اختيار خدمة الشحن التي تناسبك. زيادة الزيارات الطبيعية Organic Visits إلى متجرك. ولأنها مجانية فهي تعتمد على الربح من الإضافات التي تضيفها إلى متجرك من أجل توسعة نشاطك التجاري، مثل الإضافة التي تربط متجرك بإنستجرام كي تنشر منتجاتك الجديدة هناك، أو إضافة ebay أو أمازون التي تسمح لك بالبيع هناك مباشرة وإدارة متجرك من prestashop، فتلك الإضافات تتراوح أسعارها من 30$ إلى 300$. لكن ستحتاج مرة أخرى إلى توظيف مطور من أجل حل أي مشكلة قد تطرأ نتيجة أي خلل يحدث في تكامل الإضافات إذ أن أغلب الإضافات التي ستستخدمها من طرف ثالث، ومن ثم لا تستطيع prestashop أن تقدم لك دعمًا فنيًا لكل حالة تواجهها. عيوب prestashop مشاكل تكامل الإضافات والوحدات التي تستخدمها مع بعضها، والتي تحتاج إلى معرفة تقنية وبعض البحث في منتديات الدعم الفني أو إلى توظيف مطور ويب. التكاليف الإضافية التي تدفعها بعد تثبيت المنصة على خادمك، فإضافة إلى تكاليف الاستضافة، هناك تكاليف الوحدات والإضافات التي ستدخلها على المتجر، والتي قد تفوق تكلفة المنصات الأخرى التي تعمل بشكل خدمي Saas. ضرورة الخبرة التقنية لضبط وإعداد المتجر والإضافات. قد تناسب هذه المنصة الشركات متوسطة الحجم إلى الكبيرة أكثر من ملاءمتها للشركات والأعمال الصغيرة، وأنصحك باستخدامها إن كنت تعرف لغات مثل PHP، CSS، HTML أو كنت مستعدًا لتوظيف مطور. WooCommerce على عكس الأنظمة السابقة والتي كانت منصات بحد ذاتها، فإن WooCommerce تأتي في هيئة ملحق (plugin) لموقع يدار بووردبريس، وهي مثالية لمن لديه موقع يديره باستخدام ووردبريس ويريد أن يربح منه بشكل مباشر عن طريق إضافة سلات التسوق وأزرار الشراء وغيرها. ويستخدم تلك المنصة أكثر من 12% من المواقع التي تستخدم أدوات للتجارة الرقمية، تليها ماجنتو بنسبة 11%، ثم تأتي بعدها Shopify بنسبة 8%. وتستطيع تثبيت WooCommerce بشكل مجاني من متجر ووردبريس، لكنك ستتحمل تكلفة النطاق والخادم، كما تحتاج إلى حساب wordpress.com من أجل استخدام المنصة، ثم هناك تكاليف الإضافات التي تختلف حسب نشاطك التجاري، والتي قد تصل أثمانها إلى مئات الدولارات أحيانًا، لكن قد تكون التكاليف الكلية أقل من خيارات مثل Shopify و3dCart بما أنك ستدفعها مرة واحدة فقط وليس بشكل شهري. ويمكنك قراءة المزيد عن WooCommerce في السلسلة المفصلة في الأكاديمية، والتي تشرح لك بأسلوب سهل ما هي WooCommerce وكيف تضيف المنتجات وإعدادات الشحن والضرائب والحسابات والواجهة البرمجية وانواع المنتجات وغيرها من تفاصيل هذه المنصة. مزايا WooCommerce تدعم بيع المنتجات الافتراضية والحقيقية أيضًا. تحديد عناوين عملائك من أجل نجاح عمليات الشحن وحساب الضرائب. نظام شراء سهل وذكي، لا يحتاج إلى إعادة تحميل الصفحة في كل مرة يضيف العميل منتجًا إلى سلة شرائه. إدارة مخزونك من المنتجات. عرض حاسبة لتكاليف الشحن في صفحة الدفع. تهيئة محتوى متجرك لمحركات البحث. التحليلات والتقارير التي تتابع أرباحك وطلبياتك (يمكنك دمج Google Analytics مجانًا). إنشاء خصومات على المنتجات. أداة Storefront Powerpack التي تتيح لك تعديل تصميم متجرك حتى لو لم يكن لديك خبرة برمجية. ويمكنك تثبيت إضافات من متجر WooCommerce إن احتجت إلى زيادة وظائف متجرك، مثل إضافة حاسبة ضرائب أو وسائل شحن لمنتجاتك أو غيرها. كما تدعم طرق الدفع الشهيرة مثل التحويلات البنكية والشيكات وpayPal وstripe وغيرها. عيوب WooCommerce الدعم المحدود، بسبب أنها مجانية، إلا أنك تستطيع فتح تذكرة في Woocommerce forums إن واجهتك مشكلة، يردون عادة في خلال بضعة أيام. صعوبة التعامل معها في البداية، إن لم تكن معتادًا على تصميم ولهجة ووردبريس في القوائم والأزرار. بطء تحديثات القوالب التي من خارج متجر woocommerce. تحمل المستخدم -الذي هو أنت- مسؤولية أمان الخوادم التي تحميل بيانات المتجر. استخدم منصة WooCommerce إن لم تكن لديك مشكلة في قضاء بعض الوقت في تخصيص وإعداد متجرك الرقمي وشراء بعض الإضافات التي يحتاجها متجرك، أو إن كنت تجرب جدوى نموذج ربحي لموقع قائم بالفعل تريد توسيع نشاطه ليبيع منتجاتك فيه وتخشى من دفع المال في منصة عالية التكلفة في البداية. وهي مناسبة للشركات الصغيرة ومتوسطة الحجم، ولن تجد صعوبة في استخدامها إن كنت معتادًا على ووردبريس، فعملية إضافة المنتجات تشبه كتابة تدوينة في موقعك، فلوحة التحكم لا تختلف كثيرًا عن لوحة تحكم ووردبريس. هذا لا يعني أن WooCommerce منصة تجارب فقط، وإنما هي مناسبة للأعمال الصغيرة أو التي لديها أذرع في العالم الرقمي وتريد استغلالها، مثل موقع أو مدونة تريد البيع من خلالها. نقل قاعدة بياناتك إذا كان لديك متجر بالفعل يدار بنظام ما وأردت التحوّل لاستخدام أحد الأنظمة التي ذكرناها هنا في المقال، أو كنت تفكّر في تجربة أحد تلك الأنظمة لكنك تخشى من الوقت والجهد الذي سيضيع في نقل قاعدة بياناتك إلى النظام الجديد، فلتعلم أن هناك شركات تقدم تلك الخدمة -أي نقل قاعدة بياناتك من نظام لآخر- في بضع ساعات، وينقلون لك كل شيء بما في ذلك تاريخ الطلبيات التي كانت في النظام الأول. والشركة التي نعرضها عليك في هذا المجال هي Cart2Cart، ولديهم حاسبة تحسب لك تكلفة نقل قاعدة بياناتك بناءً على عدد المنتجات والعملاء والطلبيات التي تريد نقلها، فتكلفة نقل قاعدة بيانات بها 1000 منتج و500 عميل و500 طلبية من Opencart إلى Magento تصل إلى 70 دولارًا، وفي أقل من ساعة واحدة. اختيار البرنامج المناسب قبل أن تختار برنامج لإدارة التسوّق في متجرك، عليك أن تجرّب الخيارات التي تناسب عملك وتجارتك حيث توفر عدة منصات نسخًا مجانية أو فترات تجريبية من منتجاتها كما رأينا في المقال، كي تضع يدك على العناصر التي تريدها وتحتاجها من الأداة التي ستستخدمها في النهاية، وتقيس تحقيق الأدوات التي ستجرّبها لتلك العناصر. ثم هناك اعتبارات أخرى تضعها في حساباتك، مثل إمكانية إنشاء العروض (offers)، والقسائم (coupons)، والصفحات والإعلانات بسهولة، وكذلك مدى سهولة إجراءات الشحن وإدارة الطلبيات، وهي أمور يجب أن تجرب المنصة بنفسك كي ترى مدى فعاليتها بالنسبة لحالتك. أما أهم سؤال يجب أن تجيب عليه هو هل شركتي يناسبها برنامج ذو رخصة أدفع ثمنه مرة واحدة، أم برنامج سحابي أدفع له اشتراكًا كل حين؟ فالحلول السحابية تأتي من شركات تعطيك النظام الذي ستدير به متجرك في مقابل اشتراك شهري أو سنوي، على أن تقوم هي على صيانة خوادمك التي تحمل بياناتك وبيانات عملائك، وتحدّثها بآخر إصدارات البرامج والإضافات التي تحتاجها، لتركّز أنت على إدارة عملك دون التفكير في أمور تقنية أو توظيف من يقوم عليها. إليك بعض المحاسن والعيوب للبرامج السحابية: محاسن الحلول السحابية تكلفة تشغيل أوليّة قليلة. التكاليف تشمل الاستضافة. سهولة التثبيت والإعداد. عيوب الحلول السحابية قد يصعب عليك إعداد موقعك إن لم تكن لديك الإضافات المناسبة. قد يزيد السعر مع زيادة الاستخدام. أغلب الإضافات والمزايا بنظام اشتراك شهري. لا تستطيع تغيير الشركات المستضيفة لبياناتك إن لم تعجبك. وعلى الناحية الأخرى فهناك شركات تقدم أنظمة تشتري ترخيص استخدامها أو توفره بشكل مجاني، لكن هذا يعني أنك ستضيف تكلفة الاستضافة وصيانة الخوادم وتحديث برامجها وغير ذلك. إليك بعض المحاسن والعيوب أيضًا لهذا النوع: محاسن الأنظمة ذات الرخصة مرونة وقابلية توسع عالية. توفّر الإضافات عادة لخطط الأسعار التي تدفع على مرة واحدة. لا حدود للتخزين ولا المنتجات ولا سعة الإنترنت المخصصة لك. حرية تغيير الشركات المستضيفة لبياناتك إن شئت. عيوب الأنظمة ذات الرخصة تثبيتها معقّد لمن ليس له خلفية أو خبرة بها، كما أنها تستغرق وقتًا أطول من الخدمات السحابية في الإعداد. ستحتاج إلى تحديثها باستمرار بنفسك. دعم فني أقل جودة. ستحتاج إلى توظيف مصممين ومطورين للقيام على تحديث النظام وضبطه وتهيئته. وهكذا يظهر أن الخدمات السحابية أسهل في الإعداد والاستخدام، لذا فإنها مناسبة للشركات الصغيرة والمتناهية الصغر، لكن اعلم أن التكلفة في تلك الخدمات قد ترتفع إلى الحد الذي يجعلك تدفع مالًا أكثر من لو كنت قد استخدمت برنامجًا بنظام رخصة الاستخدام، لكنك تدفع هنا ثمن صيانة وإعداد وتهيئة متجرك، حيث أنك لا تريد تحمل تكلفة المصممين أو المطورين الذين سيقومون على ضبط وتهيئة متجرك. خاتمة لقد وجّهنا هذا المقال إلى أصحاب المتاجر والشركات الصغيرة بشكل خاص، وباقي الشركات بشكل عام، ممن يرغبون بفتح متاجر رقمية لبيع منتجاتهم على الإنترنت سواء الرقمية منها أو الحقيقية كي يكون دليلًا لأشهر أنظمة إدارة المتاجر الرقمية، ومزايا استخدام نماذجها المختلفة. حقوق الصورة البارزة محفوظة لـ Freepik
  25. اعلم أنك لا تقود الفريق وتكسب طاعته لك بشراء أثاث المكتب الفخم ولا بمنح العطلات والإجازات والطعام المجاني للموظفين، فكل ذلك يكسبك إعجابهم دون الثقة، وليس لذلك قيمة دون ثقتهم فيك. ولا تتوقع أن يثق الناس بك لمجرد أنك تسلمت مهام المدير أو القائد، فإن الثقة تكتسب ولا تُمنح، لكن هذا لا يعني أن تيأس من كسب ثقتهم فيك، ذلك أن نجاح الفريق يتوقف على قوة الثقة في العلاقة بين أعضائه. أهمية الثقة في بيئة العمل إن المكتب بالنسبة للموظف كالبيت الثاني، وإن البيوت تؤسس على الثقة، فإن كان الأساس ضعيفًا تصدّع البناء، وانهار تركيب الشركة واختفى تأثير القائد الذي يجمع الموظفين على هدف مشترك. وكذلك فإن غابت الثقة من علاقة الموظفين بالقائد فإن السعادة تغيب عن الساحة أيضًا، ويتهاوى مستوى أداء الموظفين نتيجة افتقارهم إلى الحماسة. ومن أثر الثقة في بيئة العمل أيضًا أنها تُشعر الموظفين أنهم يعملون على بيّنة من أجل الأهداف التي فُصِّلت لهم بوضوح، وبغياب هذه الثقة تتهاوى الرابطة التي تجمع بينهم أو تنقطع كلية بهجر الموظفين للشركة، وذلك ليس في صالح أي مؤسسة بسبب تكلفة استبدال الموظفين القدامى بالجدد وتوظيفهم وتدريبهم، سواء على صعيد الوقت أو المال. نقاط أهمية الثقة في بيئة العمل تساعد الثقة على تجنّب العدائية في الفريق بأشكالها المختلفة، بما فيها العنف السلبي -العناد، المماطلة، التسلّط، إلخ. تجعل الموظفين أكثر تقبلًا للتغيير. تجعل الموظفين أكثر تقبلًا للنقد السلبي، خاصة إن علموا أنك تبتغي مصلحتهم من نقدك لهم. تعطي الموظفين حافزًا للعمل. تزيد من ولاء العاملين للشركة، ومن ثَمّ يصبحون سفراء لها -يزكّونها في حديثهم عنها خارج الشركة-، وذلك تظهر فائدته كأداة لاستقطاب الأيدي الماهرة إلى الشركة. تُشجع الموظفين على نشر أفكارهم لتطوير الشركة. تزكّي الأخلاق الحميدة في ثقافة الشركة. تزيد إنتاج الموظفين وتشجعهم على تحسين جودة ذلك الإنتاج، وبالتالي تخرج بعملاء راضين عن خدماتك. كيف تبني ثقة الموظّف بك 1. أظهر الشغف إن كنت تريد أن يعمل فريقك بشغف لتحقيق هدف الشركة وتكون جودة إنتاجكم عالية فيجب أن تكون أنت أيضًا قدوة لهم في هذا، فأظهر لهم أنك تهتم بالصورة الكبيرة للشركة، وأنك تعمل من أجل أهدافها الحقيقية، فهكذا تضع نفسك على طريق واحد مع قيم الشركة ورسالتها، وذلك يكفي كتعبير صادق عن نواياك وأهدافك من العمل في الشركة. كيف تظهر الشغف: انشط في حسابات الشركة الاجتماعية، واحرص على إبراز الملابس والأدوات التي تحمل هوية الشركة في حضورك، وشارك ما استطعت في الأنشطة المتعلقة بالعمل مثل جلسات الغداء والتعلم -محاضرات تلقى أثناء الغداء-، والمناسبات التي تقيمها الشركة. 2. انشر معرفتك إن معرفتك بمجال صناعتك أو تفاصيل المنتج الذي تعملون عليه ترسّخ الثقة في نفوس الموظفين معك إذ ينظرون إليك كمرجع لهم يستطيعون سؤاله والحديث إليه، وبالتالي يتقبلون انتقاداتك و قراراتك بشكل أفضل، كما يبين هذا المقال من هارفارد بيزنس ريفيو أنهم اكتشفوا رغبة الموظفين في معرفة ما إن كان المدير يستطيع القيام بنفس مهامهم -إن دعت الحاجة-، وما إن كانت كفاءتهم في مجال عملهم تتعدى كفاءة الموظفين. فننظر مثلًا إلى مدير لورشة تصليح سيارات ونرى إن كان قد أصلح سيارة من قبل، أو إلى مدير مشفى هل أنقذ حياة إنسان من قبل؟ كيف تنشر معرفتك: أثناء جلسات الغداء والتعلم التي يمكنك تنظيمها لتمرير خبرتك إلى باقي زملائك، كما تشجعهم على إقامة جلساتهم الخاصة بهم. 3. حافظ على وعودك الأمر بسيط هنا، لا تعط وعدًا لا تستطيع الوفاء به، لكن في حالة المدير -خاصة إن كان أول منصب إداري لك- فستجد رغبة جامحة في منح الوعود هنا وهناك من أجل الحصول على إعجاب فريقك، لكن الحقيقة أن الإعجاب الحقيقي يأتي من الثقة والاحترام أكثر من أي شيء آخر. فإن التعافي من آثار الوعود الكاذبة ولو لمرة واحدة صعب جدًّا، لذا من الأفضل أن تكتسب ثقتك بالطريقة الصحيحة، ولا تحاول شراءها، واحرص أن يكون كلامك هو ما تقصده، وما تنوي فعله حقيقة. تذكّر جيدًا ما يخرج من فمك: فكّر قبل أن تتكلم، واعلم أن كلامك يتردد صداه بين موظفيك، فإن وعدتهم بمشروبات بعد إنهاء مشروع فلا تنس كلماتك، وإن وعدتهم بالنظر في فرص تطوير مهني فافعل، وإن طلبت من موظف إرسال تغذية راجعة فانظر فيها واتخذ إجراءً بناءً عليها. 4. ثق بهم اعلم أن أمرًا مثل الثقة يجب أن يكون منك إلى موظفيك والعكس، وكي يثقوا بك فلتبدأ أنت أولًا بهذا، وأظهر لهم ثقتك بقدراتهم وقراراتهم، فإن القيادة لا تدور حولك أنت فقط، بل إن تمثيلها الأفضل يكون في مساعدتك لفريقك أن يعطي أفضل أداء ممكن، وفي النهاية يكون نجاحك أنت كقائد نتيجة لنجاح فريقك في تحقيق الأهداف التي وُضعت له. كيف تظهر ثقتك لموظفيك: اطلب منهم أن يكونوا في مقدمة المشروع الذي تعملون عليه عبر تقديم مبادرات واقتراحات، أو اعرض عليهم فرصة العمل عن بعد متى كان ذلك مناسبًا، فهذا يظهر لهم ثقتك بهم وبنواياهم نحو الشركة سواء كانوا داخل مكاتب الشركة أو بعيدًا عنها. 5. تواصل معهم كيف تثق بشخص لا تعرفه؟! أتعلم أن 31% من الموظفين يقولون بأنهم يتمنوا لو أن مدراؤهم تواصلوا معهم أكثر، فلا شك أن أحد علامات القائد الجيد هي التواصل مع أفراد وحدته أو فريقه، فبادر إلى إطراء موظف حين ينفّذ مهمة بإحسان، وتكلم معه حين ترى أمرًا يحتاج إلى تطوير لتناقشا معًا الحلول الممكنة، وليكن الهدف من هذا التواصل هو زيادة الثقة، عبر توضيح كل شيء ممكن، دون أن تترك شيئًا مبهمًا. نصائح للتواصل الفعّال: اطلب من موظفيك تغذية راجعة بشكل أسبوعي لتكون على اطلاع بما يشعر به فريقك، وإن كنت تستطيع استخدام أدوات تسمح لهم بإرسال النقد بصورة مجهولة فذلك أفضل لتقليل الرهبة والحياء من النقد المباشر، إضافة إلى الاجتماعات الثنائية والتواصل اليومي بالطبع. 6. ابنِ علاقات خارج نطاق العمل لعلي ذكرت في هذا المقال بشكل أو بآخر أن الثقة تدور حول العلاقات البشرية، وكلما توطدت تلك العلاقات على صعيد شخصي وغير مهني -خارج نطاق مصلحة العمل- كان أفضل لبناء تلك الثقة، فخصص وقتًا لاجتماعات شخصية معهم، وتفقد أحوالهم خلال اليوم، وأظهر لهم اهتمامك بهم كما تحب أن يهتم بك غيرك. كيف تتعرّف عليهم أكثر: ابدؤوا أسبوع العمل الجديد بحديث عما فات في أيام العطلة، فربما يدهشكم بعض الأعمال والأنشطة التي يحلو للبعض فعلها في العطلة، وسترى السعادة على وجوههم لاهتمامك بشؤونهم، دون تخطي الحدود الشخصية طبعًا. 7. حافظ على أسلوب عمل شفاف وواضح تزيد أهمية الشفافية أثناء الأوقات الصعبة في الشركة، حين يحدث كساد فيها أو مشكلة، فلا تهمل توضيح الأمر بصدق للموظفين آنذاك، فإنه مفتاح بناء ثقة بينكم، ذلك أنك جعلتهم جزءًا من صورة أكبر، وأنك تراهم أهلًا للثقة بإخبارهم لمشكلة مثل تلك قد يساهموا في حلها. نصائح لشفافية ناجحة: اعقد اجتماعات شهرية لمناقشة ما تم في الشهر المنقضي بنجاحاته وخسائره، وشاركهم كل شيء يثير اهتمامك أو قلقك سواء بإحصائيات أو بدونها، فعرض جزء من موقفك الشخصي أمامهم يزيد من فرصة ثقتهم بك، بما أنهم يرون أنك وثقت بهم أيضًا بإطلاعهم على تلك المعلومات. 8. اعترف بأخطائك، وكذلك جهد غيرك يصعب على الكثير -خاصة المدراء- أن يتحملوا مسؤولية الأخطاء التي تحدث، لكن القائد الجيد يدرك قوة الاعتراف بالخطأ وتصحيحه، فتحمُّل المسؤولية يظهر إنسانيتك كأي فرد في الفريق يصيب ويخطئ، ويرسل إشارة أن هناك دومًا فرصة للتحسين. وكذلك على الناحية الأخرى فإن القائد الفطن لا ينسى شكر كل من في فريقه بدلًا من الاكتفاء باستقبال عبارات الثناء والمديح لنفسه، فحين يرى الموظفون شكرك لمجهودهم، فسيتحفزون أكثر للإتقان، ويثقون بك. أظهر رغبتك في التطور: سل الموظفين في اجتماعاتك الثنائية معهم عن تقييمهم لأدائك وما إن كان لديهم نصائح لتطوير ذلك الأداء. إن إخبارهم أنك مدرك لأوجه قصورك ورغبتك في التطور يعطي انطباعًا بأنك أهل للثقة. والآن، كيف تبني الثقة في فريقك أنت؟ ترجمة -بتصرف- لمقال 8 Secrets For Building Trust As A Leader لصاحبته Ali Robins حقوق الصورة البارزة محفوظة لـ Freepik
×
×
  • أضف...