أسامه دمراني

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

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

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

  • Days Won

    21

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

95 Excellent

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

  • النبذة الشخصية كاتب في أراجيك، متطوع في FossBuzz.
  • الموقع
  1. إن مجال الرسوم المتحركة مجالٌ قوي به تخصصات كثيرة وأدوات ربما أكثر من أجل تصميم أسلوب أو مظهر معيّن، فلدينا مثلًا برنامج Krita للرسوم المتحركة المرسومة باليد للقصص المصورة مثلًا، وStopGo لفن التصوير المتعاقب، وبرنامج Blender الشهير للرسم والتصميم ثلاثي الأبعاد، وكذلك برنامج openToonz الذي جُعل مفتوح المصدر مؤخرًا، وبرنامج GIMP الذي يمكن تثبيت إضافة GAP للرسوم المتحركة فيه، وغيرهم كثير. وسنستكشف في هذا المقال برنامج Synfig Studio، وهو برنامج صمم لتسريع عملية تحريك الرسوم عبر استخدام النقوش المتحركة Sprites والبينيّة الرقمية Digital tweening بدلًا من فعل ذلك بالتصميمات اليدوية، لهذا فإنه مثالي في حالة الفنان المستقل أو فريق صغير الحجم. وهذا البرنامج جاهز للإنتاج مباشرة بسبب مساهمات جهات مثل استديو Morenva Project الذي يساهم في تطويره، هو وبقية البّرامج مفتوحة المصدر التي يستخدمها للتصميم. التثبيت قد يكون البرنامج موجودًا داخل مستودعات توزيعتك، لكن إن أردت النسخة الأحدث فيمكنك تحميلها من موقع البرنامج، وستجد نسخًا بتحزيم deb وrpm ونسخة tar عامة، واستخدم مدير الحِزَم لتثبيته، أو إن حمّلت نسخة tar ففك ضغطها ثم ضعها في دليل/مجلد directory مناسب مثل "~/bin"، ثم شغّل أمر synfigstudio. الواجهة واجهة Synfig مألوفة غالبًا لمن استخدم برنامج رسوم متحركة من قبل أو حتى برنامج تصميم بشكل عام، فاللوحة التي في أعلى اليسار بها الأدوات، والوسطى بها مساحة العمل، والسفلى بها الخط الزمني والإطارات، أما لوحة الخصائص Property فتوجد على اليمين. وقبل أن نبدأ أريدك أن تذهب إلى قائمة Canvas التي في شريط القوائم وتختار Properties -أو استخدم اختصار مفتاح F8 الوظيفي-، وأدخل مساحة العمل التي تريدها في نافذة Canvas. ربما تود أن تبدأ بأبعاد 1920*1080 -Full HD- إن كان لديك حاسوب قوي نوعًا ما. شخصيًا، أشعر بالأمان حين أختار أبعادًا أكبر من التي أستهدفها ولو بمستوىً واحد إن سمحت مواصفات حاسوبي بذلك لكي أوفر على نفسي تحديث عملي في المستقبل الفريب، لكن طبعًا تبقى احتياجات عملك هي المحددة للأبعاد التي تستخدمها. كذلك تجد في نافذة الخصائص تلك مقدار الوقت الذي تريد أن يكون في الخط الزّمني لملفك، واعلم أن وحدات الزمن بالنسبة للرسوم المتحركة تقاس بالإطارات، وتترجمها إلى المفهوم البشري بعدد الإطارات التي سيشغّلها العمل الفني في الثانية الواحدة، فكلما زاد عدد الإطارات في الثانية زادت سلاسة الحركة فيه، لكني سأستخدم لهذا الشرح 16 إطارًا/ث، وخطًا زمنيًا قدره 128 إطارًا، إذ أني أبتغي به التوضيح لا أكثر. احفظ الملف بعد أن تختار الخصائص التي تناسبك. الرسم والاستيراد ستحتاج إلى عناصر من أجل تحريكها داخل عملك الفني، وSynfig به العديد من أدوات الرسم، لكن أغلب من رأيتهم يستخدموه يفضّلون الرسم في مكان آخر ثم استيراد تلك العناصر. وإن المبدأ وراء تقنية Synfig للرسوم المتحركة هو مبدأ "Paper Cutout" القديم، كما في عمل "Monty Python" لتيري جيلَم أو سلسلة "South Park" التلفزيونية، فكل عنصر تريد تحريكه يتم تثبيته إلى منصة مما يسمح لك بتسجيل كل حركة تنفّذها على هذه المنصة، ويكون الناتج النهائي هو عمل فني لرسوم متحركة. وإن أردت استخدام أدوات Synfig، فستجدها أعلى الناحية اليسرى من البرنامج، وهي الأدوات المعتادة في أي برنامج رسم، مثل أدوات الأشكال التي ترسم مستطيلات وأشكالًا بيضاوية، والقلم bezier pen، وأداة دلو الطلاء paint bucket، وهكذا. ولكي ترى خصائص أي عنصر ترسمه، اضغط عليه سواء في مساحة الرسم أو في لوحة الطبقات -الموجودة في أسفل يمين البرنامج افتراضيًا- وستظهر خصائصه في لوحة الخصائص في أسفل يسار البرنامج. وأفضل طريقة للعمل على أي عنصر سواء رسمته بنفسك أو استوردته من برنامج آخر هي باستخدام مساحة العمل canvas والطبقات layers معًا، فحتى اللقطات البسيطة قد تتطور لتصبح معقدة للغاية، لذا استخدم منظور on set في مساحة العمل، وdope sheet في الطبقات. ولاستيراد عناصر إلى لقطتك، استخدم قائمة File ثم Import. وإذا استوردتَ عنصرًا أو أنشأته فإنه يحصل على مدخل entry في لوحة الطبقات، وكذلك إن استوردت أكثر من عنصر فإن البرنامج يضيف كل واحد كطبقة مستقلة، وتكون الطبقات الأعلى في الترتيب "فوق" الطبقات التي تحتها. ستجد أن هذه مهمة لاحقًا. وسواء رسمتَ عنصرًا أو استوردته فإن أي عنصر في لقطتك سيكون له نقاط/أذرع تحكم Handles، وقد يختلط الأمر على المستخدم في البداية بسبب وجود أكثر من نوع لهم. دعنا نفصّل أنواعهم هنا: نقطة التحكم الخضراء التي في المنتصف هي التي تحرك العنصر بإحداثيات أفقية ورأسية، اسحبها لتحرك العنصر. النقطة البنّية في أعلى اليمين تغير حجم العنصر مع الحفاظ على نسب أبعاده. النقاط الصفراء تغير حجم العنصر أيضًا لكنها لا تحفظ شكله الأصلي ولا أبعاده. النقطة الزرقاء تدير العنصر حول النقطة الخضراء المركزية، لكن يمكنك تغيير محور الدوران بالضغط على Ctrl والنقطة الخضراء لتسحبها إلى المكان الذي تريد أن يكون المحور. النقطة الحمراء تعطي تأثيرًا مائلًا Skew. جرب الآن أن ترسم عنصرًا أو تستورده ثم عدّل شكله باستخدام نقاط التحكم هذه كي تعتاد عليها، فهذا أفضل من محاولة إنتاج عمل فني دون القدرة على استخدام أدوات البرنامج بسلاسة. التحريك Animation قد قطعتَ نصف الطريق إلى تحريك عنصرك إن كنت قد جربتَ التعديل عليه باستخدام النقاط التي ذكرتها لتوي، والخطوة الباقية هي أن تضغط على Record وتبدأ بالتحريك الذي تريده لعناصرك. وسترى على زر التسجيل شكلًا رمزيًا لشخص صغير، اضغط عليه ليتحول إلى شخص أحمر اللون في وضعية حركة، ستجد الزر قرب أسفل يمين مساحة العمل، وسترى أيضًا أن مساحة العمل سيحيطها إطار أحمر لتنبيهك إلى أن حركاتك مسجّلة، فكل شيء تفعله بالعنصر سيسجَّل كإطار Keyframe في الخط الزمني للبرنامج. الإطارات والبينيّات Keyframes and Tweens كان أسلوب الرسوم المتحركة قديمًا يبدأ برسم الأوضاع الأساسية لشخصيتك على طول الخط الزمني، فالوضع 1 في إطار 0 والوضع الثاني في الإطار السادس عشر، وهكذا، ثم يعود الفنان إلى رسم إطارات بين تلك الإطارات الرئيسية، وسمّيَت هذه العملية باسم الرسم البينيّ Tweening إشارة إلى الرسم الثانوي بين إطارات الأوضاع الرئيسية. وميزة برنامج مثل Synfig في تلك النقطة هي أنه يقوم بمهمة الرسم البيني عنك، إذ يكتشف بنفسه أسلوب الحركة من الإطار 0 إلى الإطار السادس عشر -وهما الإطاران اللذان في مثال الفقرة السابقة- دون أي رسم بينيّ منك. جرب بنفسك: ارسم أو استورد شكلًا، فمثلًا أنا رسمت pierogi باستخدام Inkscape ثم استوردت أجزاءه منفصلة إلى Synfig كصور png. حدد كل الطبقات التي اخترتها واضغط بالزر الأيمن في لوحة الطبقات لتختار Group Layers لجمعهم في مجلد واحد، كي يتحرك العنصر كوحدة واحدة. لكني لا زلت أستطيع تحريك الأجزاء المختلفة فيه وحدها إن شئت. بعد أن تجمع كل الأجزاء في وحدة واحدة، ستجد أن التعديل في نقاط التحكم سيؤثر في الرسم ككل، فإن أدرتُ شخصيتي فإن جسدها وفمها وعيناها ستتحرك جميعًا معًا. ولنبدأ التحريك، اذهب إلى اللوحة التي في أسفل يسار نافذة البرنامج، واضغط على رمز المفتاح الموجود فيها لتنتقل إلى منظور الخط الزمني. ولكي ندخل وضع التسجيل، اضغط على زر التحريك -الرمز الأخضر- في أسفل يمين لوحة مساحة العمل، وسيتحول لونه إلى الأحمر، وسترى الإطار الأحمر الذي سيحيط بمساحة العمل، ومنذ هذه اللحظة فإن أي شيء تقوم به سيتم تسجيله لذا احرص على عدم تنفيذ حركات لا تريد أن تظهر في العمل النهائي. استخدم نقاط التحكم في العنصر لتحرك العنصر إلى المكان الابتدائي له، وفي مثالي هذا فإني سأجعل الشكل يرقص، لذا سأبدأ بإمالته إلى أحد جانبيه. حرك الخط الأحمر المنقّط -وهو رأس التشغيل playhead- إلى الإطار الرابع لتحرّك الشخصية إلى موضع جديد. وبما أني أريده أن يؤدي رقصة بسيطة، فإني سأجعله يميل إلى الجانب الآخر. كرر هذه العملية إلى أن تصل الشخصية الخاصة بك إلى موضعها الأخير. اضغط على زر Animate لتخرج من وضع التسجيل بداعي الأمان فقط، وهنا يمكنك أن تستعرض الخط الزمني لترى معاينة للنتيجة النهائية، أو تضغط زر play لترى إخراجًا في الوقت الحقيقي للعمل النهائي. وإن كان العنصر الذي تحركه مكونًا من أجزاء منفصلة، فيمكنك أن تحرك هذه الأجزاء بشكل منفصل أثناء تفعيل وضع التسجيل. أنواع الطبقات والتأثيرات من الصعب تنفيذ كل ما تريد من صور التحريك لشخصياتك باستخدام نقاط التحكم فقط، لهذا توجد أنواع أخرى للطبقات من أجل تأثيرات إضافية للحركة، وأحد الطرق الشائعة لتحريك الفم من أجل محاكاة الكلام هو بتبديل أشكال الفم، فلهذه الحالات لن تحتاج مطابقة حركة الشفاه للحروف بشكل دقيق إلا نادرًا، لذا فإن الحل الأسهل هو تبديل أشكال مختلفة للفم. وبما أن البرنامج مبني لتحريك النقوش Sprites أكثر من الرسوم اليدوية، فإني سأحصل على نفس التأثير لو غيّرت نقشًا مكان آخر، بمعنى أني سأخفي الفم المبتسم باستخدام شكل آخر للفم به تعبير مختلف. ولتجربة هذه التقنية، اذهب إلى لوحة الطبقات واضغط بالزر الأيمن، واختر New Layer، ثم Switch من تصنيف other، وسيضع هذا طبقة تبديل switch في لوحة الطبقات، فاسحبها وألقها في المجموعة التي تريد، ففي مثالي هنا فإني سألقيها داخل مجلد الشخصية pierogi التي رسمتُها ﻷضيفها إلى مجموعة Pierogi. لاحظ الخط الأسود الذي يحدد المكان الذي سأضع فيه طبقة Switch. واعلم أن طبقة Switch هذه ما هي إﻻ تأثير، وكل ما تحتويه من طبقات يتأثر بها أيضًا، وكل التأثيرات داخل برنامج Synfig تعمل بنفس الطريقة، فلوحة الطبقات تمثّل شجرة، على عكس القائمة المتراكبة للطبقات في gimp أو inkscape، وﻷن الهدف من طبقة الاستبدال هو التبديل بين نقشين sprites مختلفيْن فإني سأضيف وضعًا آخر للفم تحت طبقة الاستبدال، وﻻ يهم ترتيب تلك الطبقات طالما أنها تحت نفس الطبقة الأم. وبما أن تأثير طبقة الاستبدال صار الآن جاهزًا، فسنستخدم أداة التبديل في خصائص مجموعة الطبقات "layer group's properties"، فاضغط على المجموعة اﻷم لعرض خصائصها، ففي مثالي هنا، إن حددتُ الطبقة التي بها switch والأوضاع المختلفة للفم فستظهر الخصائص في لوحة Properties أسفل يسار نافذة البرنامج. ويجب أن تكون داخل وضع التسجيل كي تجعل تأثيرًا ما يتحرك، تمامًا كما لو كنت ستحرّك أي شيء آخر داخل البرنامج: ادخل وضع التسجيل ثم ضع رأس التشغيل Playhead -ذلك الخط الرأسي المنقّط- على الإطار رقم 0. حدد اسم الطبقة النشطة حتى لو كانت على الطبقة التي تريد البدء بها، قد يكون هذا غير رسميّ داخل البرنامج لكنه يسمّى عادة بالقلقلة "Jiggling"، بمعنى أنك تحرك إعدادًا أو تغيره دون أن يحدث أي تأثير لكنك تجبر الحاسوب على أن يلاحظها ويسجّل الحركة. فافعل ذلك للطبقة النشطة التي تريد البدء بها، ثم حرك رأس التشغيل بعيدًا على طول الخط الزمني وغيّر حقل اسم الطبقة النشطة إلى طبقة بديلة، وسيظهر نتيجة لذلك إطار جديد، وسيتغير -في مثال المقال- شكل الفم من ابتسامة إلى دهشة. ﻻ ينشئ synfig بينيّات من وضع فم ﻵخر ﻷنه لم يتحوّل شيء، فما قمنا بشيء سوى تغيير سريع للنقش، فالفائدة التي أريد إيصالها إليك من الأمر هو أنك إن أردت تعطيل إنشاء البينيّات آليًا، فتأثير switch هو المناسب. وهناك تأثيرات أخرى عديدة في synfig، وهي غير تقنية على عكس switch، فهناك تأثيرات للألوان والغباشة Blur، ومولدّات، وحلقات زمنية Time Loops، وغيرها. الصوت يوجد محرر صوتيات داخل Synfig لكنه ليس متطورًا، لذا أنصحك أن تستخدم ملفًا صوتيًا جاهزًا وﻻ يحتاج إلى تعديل، وﻹضافة ملف صوتي اتّبع الخطوات التالية: أضف طبقة Sound من تصنيف other إلى لوحة الطبقات. اضغط على Sound لتظهر خصائصها أسفل يسار نافذة البرنامج. اضغط على الثلاث نقاط [...] بجانب حقل filename، ﻷن البرنامج سيظن أنك ﻻ تزال تختار الملف الصوتي إن لم تضغط عليها. اضغط على زر Play كي ترى وتسمع العمل الفني حين تنتهي من ملف الصوت، ستجد الزر تحت مساحة العمل. الإخراج إن إخراج الرسوم المتحركة أقرب للتفضيل الشخصي منه إلى مجرد تقنية، فالطريقة التقليدية تقتضي أنك تخرج مشروعك إلى سلسلة من الإطارات ثم تحوّلهم إلى فيديو ﻻحقًا، لكن إن لم يكن لديك وقت فيمكنك الاستفادة من برنامج ffmpeg لإخراجه مباشرة إلى فيديو رغم أن الصوت لن يكون مدمجًا -على الأقل في هذه النسخة من البرنامج- وستدمجه يدويًا ﻻحقًا. ولقد وجدت أن الأسهل هو أن أخرج العمل في سلسلة إطارات، ذلك أني سأحصل على نسخة master من العمل يمكنني التعديل عليها فيما بعد، وسنفعل ذلك الآن: اذهب إلى قائمة file واخترrender، واختر مسارًا لمجلد فارغ تريد أن تحفظ فيه الصور، ويجب أن يكون اسم الملف -لكل صورة- هو الاسم الذي تريده للعمل، إذ سيضيف Synfig ترقيمًا آليًا للصور يكون أساسه الاسم الذي تختاره. اختر cairo_png من قائمة Target من أجل تسلسل الصور. غيّر قيمة Quality لتكون 9، وAnti-Aliasing لتكون 31. ربما تود أن تعدّل حجم الصورة هنا أيضًا، في حالة لو أردت تصغير أبعاد العمل الفني، إضافة إلى عدد الإطارات التي تريد إخراجها، وهكذا. اضغط على زر Render حين تنتهي. قد يستغرق الأمر بعض الوقت للملف حتى ينتهي، وستظهر رسالة تحت مساحة العمل مباشرة لبيان تقدّم عملية الإخراج. استخدم ffmpeg لتحميل الصور التي أخرجتها إلى فيديو، مثال: ffmpeg -r 16 -f image2 -s hd480 -i dance.%04d.png -vcodec vp8 -an dance-video.web- وسواء كنت ستخرج العمل كملف فيديو أو كتسلسل صور، فإن دمج الصوت معه سهل أيضًا، مثال: ffmpeg -i bounce.webm -i music.flac -acodec libopus dance.webm Your browser does not appear to support HTML5 media. Try updating your browser or (if you are not already) using an open source browser like Firefox or Brave." وهكذا نكون قد أنهينا استعراض برنامج Synfig لتصميم الرسوم المتحركة، ذي المزايا التي ﻻ غنى عنها لأي برنامج تصميم وأكثر، فهو أفضل خيار لك إن كنت تبحث عن إخراج سريع وكفء لرسوم متحركة. ورغم أنه يأخذ منحى تعليمي نوعًا ما إﻻ أنه يستحق بسبب قدرته على إنشاء البنييات تلقائيًا. ترجمة -بتصرف- لمقال How to use Synfig Studio for animation لصاحبه Seth Kenlon
  2. في وقت نشر هذا المقال سأكون موجود في ريف أوروبي، ولن يكون هناك صور من فيس بوك أو سناب شات، أو حتى تغريدات. ولم أعلن عن رحلتي تلك على مدونتي أو قناتي في يوتيوب، ولم أخبر أحداً من أصدقائي، كما سأترك حاسوبي وأعلّق أغلب أعمالي الحرة. كل ذلك من أجل البحث عن شيء واحد: الهدوء. قضية الهدوء كل مشاكل البشرية تنبعث من عجز الإنسان أن يجلس بهدوء في غرفة بمفرده. __ بلايز باسكال إن العالم مكان مليء بالضوضاء، فقد قدّر الباحثون في 2014 أن هناك 104 مليون أمريكي كانوا عرضة لفقد السمع نتيجة الضوضاء، أما منظمة الصحة العالمية تقدر أن هناك مليون سنة صحية تُفقَدُ في كل عام بسبب ظروف مثل أمراض القلب والضعف الإدراكي، والطنين الناتج عن ضجيج الزحام. لكن الضجيج يتعدى حاجز المسموع، فقوائم المهام المتناقضة، ومواعيد التسليم وصرخات القلق موجودة داخل رأس كل رائد أعمال. وهي تزعجنا جميعًا سواء كانت كبيرة أو تافهة، فكم ليلة تقلبت فيها في سريري لأني تذكرت رسالة لم أرد عليها، فالضجيج بالنسبة لي هو كل شيء يشتت اهتمامنا عما هو ضروري. ولعلك تعلم إن كنت رائد أعمال تقني أننا على اتصال دائم بالعالم الافتراضي، فإن الشخص الأمريكي العادي يتفقد هاتفه زهاء 46 مرة في اليوم، وفقًا لدراسة من ديلويت، وأزعم أن ذلك الرقم أقل مما نقضيه نحن معشر رواد الأعمال. فإننا نُغمر كل يوم بأدوات جديدة وخطط يجب أن نستخدمها لأعمالنا، ونكنز عندنا اشتراكات لبرامج ودورات عبر الإنترنت، وننظر كل حين إلى صناديق بريدنا انتظارًا لعملاء جدد أو مبيعات جديدة أو طلبات طارئة. وكمثال حي على ذلك فإني أرتشف قهوتي الآن بينما أكتب هذه الكلمات، وأتفقد تويتر في حاسوب لوحي بجانبي، وأحدّث صندوق بريدي على هاتفي. ونحن نعتقد أن كوننا في شركة أو تجارة مزدهرة يعني أن نعمل أكثر، لكن هل نحتاج حقًا أن نكون على كل شبكة اجتماعية؟ هل تستحق هذه المكالمة أن تقطع عليك العشاء مع عائلتك؟ هل يقاس النجاح بعدد العملاء الذين لديك في ساعة ما؟ إن أغلبنا يحاول الفرار من هذا السباق المجنون ليجد نفسه قد وقع في واحد جديد دون أن يدري. وأفضل طريقة برأيي لإسكات هذه الضجيج وتقليل هذا الصخب أن تطالب بالهدوء، وتزيل تلك الفوضى. التقليص قد يعني أن تمتلك أكثر لقد تركت أكثر عميل كان يدفع لي، وقللت كل شيء أمتلكه في هذا العالم إلى ما يمكن حمله في ثلاث صناديق وبضعة حقائب، وفعلت ذلك قبل أن أتوجه إلى أوربا هذا الشهر. وقد شعرت بالقلق إزاء تقليل ممتلكاتي ودخلي بهذه الطريقة، لكني أظن أن النتيجة تستحق المخاطرة، وهي مزيد من الوقت والطاقة للتركيز على الكتابة وبعض الأمور الأخرى. ثم انتابتني بعض الوعكات الصحية في اﻷسابيع التي سبقت انتقائي لما أملك بسبب كثرة التصنيف لكل هذه الخردة التي لدي وسؤال نفسي لماذا أبقيْت على الأشياء التي استنزفت طاقتي. فقد انتابتني بعض نوبات الغثيان وكافحت للحصول على ست ساعات من النوم المتقطع في كل ليلة، لكني كنت أشعر براحة أكبر كلما تخلصت من بعض ممتلكاتي، فقد ذهب الفزع والإجهاد وحل محلهما الهدوء والفرح، وأحسست أني أستطيع التنفس مرة أخرى. أوليس هذا هو الخوف بعينه، إذ نفترض أن التقليص يعني أن نفتقد بعض الأشياء؟ فقد أُخبِرت في العام الماضي مثلًا أني يجب أن أفتح حسابًا في إنستجرام إن كنت أريد زيادة حجم أرباحي، فالتحقت بدورة عبر الإنترنت لسيدة بنَت تجارة مليونية من هذه المنصة، ثم جلست أقضي الساعات في التقاط وقص ومعالجة الصور في هاتفي. لكن بحلول الشهر الثاني فقط كنت قد وصلت إلى حدي، فسحبت وجودي من إنستجرام، واستطعت زيادة الزيارات إلى مدونتي بنسبة 64% وضاعفت أرباحي منها. الحقيقة أن التقليص عاد عليَّ بأكثر مما أريده فعلاً.. تعلّم كيف تحب الحياة الهادئة إن أرواحنا لا تفتقر إٍلى الشهرة أو الراحة أو الثروة أو القوة، بل هي عطشى للقيمة، لإحساس أننا اكتشفنا كيف نحيا حياة لها قيمة. __ هارولد كوشنر. قابلت في الشهر الماضي أحد أصدقائي من الجامعة، و أمطرني بوابل من الأسئلة حين عرف أني أعمل بشكل حر، مثل هل تكسبين المال حقًا؟ يعني تكسبين مثل أجر دوام كامل؟ ثم أتبعه بسؤال إذًا من هم عملاؤك؟ هل من بينهم من أعرفه؟. من الطبيعي أن نرغب في المنافسة وإبهار من حولنا، لكني مستعدة للتخلي عن المشاركة في هذه المسرحية، فلم أبدأ حياتي المهنية كي أكون محل أنظار الناس في حفل عشاء. فنحن نتحدث دومًا عن إطلاق هذا المشروع أو ذاك، والنمو، والتوسع، لكني كنت أشعر بالسعادة أكثر حين كنت أحيا ببساطة، فما تعلمته أثناء محاولتي لعيش حياة هادئة كرائدة أعمال أني ﻻ أريد إطلاق مشروع بمئة ألف دولار، ولا شركة بمليون، أو فريقًا من العاملين حول العالم، أو لصق صورتي في المدونات هنا وهناك. بل كل ما أردت هو كتابة كلمات لها قيمة حقيقية، حتى لو لم تدر عليَّ دخلًا ماديًا، أردت أن أختفي في الخلفية وأدع عملي يتحدث عن نفسه، وأن أخدم العملاء المهمّين بالنسبة لي، حتى لو لم يعرف أحد أسماءهم. كيف تزكّي الهدوء في حياتك من السهل أن تحيا بين الناس وفق ما يرونه، ومن السهل في خلوتك أن تحيا وفق ما تراه أنت، لكن الإنسان العظيم هو الذي يحافظ على حلاوة الاستقلال الخاصة بالخلوات وهو بين جموع الناس. __رالف والدو ايمرسون. ربما لا تستطيع الذهاب إلى دولة أجنبية طلبًا للخلوة والهدوء، لكنك تستطيع إزكاء هذا الهدوء في حياتك بغض النظر عن مكانك الآن، جرب البدء بإحدى هذه النصائح التالية: ابدأ صباحك ببطء وهدوء: هذه طريقتي المفضلة في عيش حياة هادئة، فأحاول بدء يومي دون هاتفي أو حاسوبي، وآخذ وقتي في صنع إفطاري وقهوتي قبل البدء في العمل. ﻻ تتفقد هاتفك أثناء عملك أو طعامك: ﻻ زلت أجاهد نفسي في هذه النقطة، إذ لاحظت أني غير قادرة على التركيز لفترات طويلة كما كنت أفعل من قبل، وأظن أن جزءًا من اللوم يقع على التفقد المستمر للإشعارات من هنا وهناك، فجرب أن تفعل أمرًا واحدًا فقط دون إلهاء، سواءً كان عملًا مدفوعًا أو حتى صنع وجبة منزلية. أوقف شبكة اجتماعية تظنها تستغرق أغلب وقتك: لقد زادت قيمة حياتي كثيرًا بعد تركي لفيس بوك في العام الماضي، رغم أني قضيت بضعة أشهر صعبة في البداية حين شعرت أني سأفتقد كل ذلك المرح في حياة كل أحد، لكني ﻻ أفتقده الآن ولا أظنني سأقع في فخ مقارنة نفسي بالآخرين بسهولة. اجلس في صمت إلى أحدهم: حين تطرأ فرجة في نقاش ما يخيّم عليها الصمت فإننا نميل إلى محاولة ملء ذلك الفراغ بأي حديث ولو كان ﻻ معنى له، فجرّب في المرة التالية التي تجد تلك الهنيهة الصامتة أن تتركها هكذا، ﻻ تحاول ملأها، بل اجلس في صمت وانظر ماذا سيحدث. أوقف الموسيقى: إن كنت تستمع إلى الموسيقى أثناء العمل أو قيادة السيارة، جرب إيقافها، وإن كان ذلك صعبًا عليك فابدأ بخطوات صغيرة. وفكّر أيضًا في السبب الذي يجعل من الصعب عليك تقبّل الهدوء والصمت، أتستخدم الموسيقى لتشتتك عن مشكلة تواجهك؟ ربما يكون الوقت قد حان لمواجهة تلك المشكلة. ألغ اشتراكك من القوائم البريدية: لقد قضيتُ وقتًا ﻻ بأس به مؤخرًا في تنظيف صندوق بريدي، فأغلب الرسائل التي تأتيني لم أفتحها مطلقًا، وقد كان مريحًا أن أقلل من الفوضى في حياتي بإلغاء الاشتراك من قائمة بريدية ﻻ تهمني. كيف تنظر إلى الهدوء والبساطة في حياتك؟ شاركنا نصائحك في التعليقات! ترجمة -بتصرف- لمقال Minimalism for freelancers: letting go to live a life you love لصاحبته Amy Rigby
  3. إن كان النقاب يسترك بين الناس فإنه يسترك على يوتيوب أيضًا. وإن لم تخضعي بالقول بين الناس فلا تخضعي بالقول في يوتيوب، وانتهى الأمر. ربما يُفضّل من باب الأمان أن تهيئي محتواك وطريقة الإلقاء لتناسب عرضها على رجال، فما يخرق حجاب المرأة بين الرجال في المواقف الشخصية يخرقه أيضًا في المشاهدات على الانترنت. -- مثال: هذا أول نتائج البحث التي تجدينها إن بحثت عن محاضرة منتقبة مثلًا. لكن طريقة الإلقاء واللهجة لا تقيدك بالطبع.
  4. لا تزال التقنية تغيّر مجال خدمة العملاء بصور شتى ومؤثرة على السوق، فقديمًا كان المستهلك يضطر إلى الذهاب إلى المتجر من أجل مشكلة يواجهها أو من أجل استفسار بسيط، فلما جاء الهاتف صار يتحدّث إلى الشركات والمتاجر التي يتعامل معها من خلاله، إلا أنه سرعان ما سئم من المشاكل التي ظهرت جراء ظهور الهاتف. ثم أتى الإنترنت بعد ذلك، ومكّنت الأدواتِ التي صحبَتْهُ أو لحِقَتْ به الشركاتِ من التعامل مع عدة مشاكل في نفس الوقت فصارت أزمنة الردود أقصر، لكن لا زال لتلك الأدوات من بريد أو شبكات اجتماعية جوانبها المظلمة السلبية في التعامل مع العملاء من أجل تقديم الدعم لهم. وأرى أن المحاولة الأخيرة إلى الآن للإجابة عن أسئلة العميل ومشاكله بأسلوب منضبط هي المحادثة الفورية التي تجمع فضائل كلًا من الانترنت والهاتف. ظهرت المحادثات الفورية أول مرة في أواخر الثمانينات من القرن الماضي حين أنشأت Quantum Link برنامج On-Line Messages لحاسوب كومودور 64، ممهدة الطريق لبرامج المحادثات الفورية فيما بعد، ثم تحولت Q-Link إلى ما عرفت بعد ذلك بشركة AOL، شركة الاتصالات الشهيرة. وربما يُنظر إلى المحادثات الفورية على أنها مجرد طريقة يصل بها المستهلك إلى البائع، لكني أرى أنها لم تأخذ حقها في التطبيق في السوق بسبب وجود وسائط أخرى توفر خدمة دعم للعملاء، رغم أنها تزيد من رضى العملاء ومن ثم تزيد من المبيعات. أهمية المحادثات الفورية إن من ينظر للمحادثات الفورية على أنها مجرد تقنية أو وسيلة أخرى يمكن استخدامها للتعامل مع العملاء يتجاهل الفوائد الكثيرة التي تأتي من ورائها، فإن المستخدم مثلًا يراها حلًا أفضل له لأنه لن يضطر إلى الخروج من الموقع من أجل استفسار بسيط طرأ في ذهنه عن المنتج، بل يمكنه الحصول على المساعدة بضغطة زر. وقد قال 51% من المستخدمين أنهم أُعجبوا بالمحادثات الفورية لأنهم يستطيعون تنفيذ أكثر من عملية في نفس الوقت (تسوق – استفسار - ..) أثناء إجراء هذه المحادثة، أما ممثلي الدعم الفني فإن بإمكانهم إجراء أكثر من محادثة نصية في نفس الوقت أيضًا، مما يقلل من نفقات الشركة إذ أنها لن تضطر إلى توظيف المزيد من العاملين، على عكس الشركات التي تستخدم المكالمات الصوتية للدعم الفني. كما أن المحادثات الفورية تحسّن تجربة المستخدم لأنها توفّر توقيتات استجابة منضبطة، فقد وجدت دراسة أن 93% من الشركات لا تتبع قاعدة الخمس دقائق في الرد على العملاء، بل 7% فقط هم من يستجيبون للعملاء في أقل من خمس دقائق. فهذا جدير بالإشارة إليه، إذ أن خمس دقائق تأخير في الرد على الزائر للموقع تتسبب في خسارة الفوز به كعميل بنسبة 400%، وجدير بالذكر أيضًا أن العامل المشترك بين الشركات التي تقع تحت نسبة 7% السابقة هو أنها جميعًا تستخدم المحادثات الفورية. فليس بخافٍ أن خدمة العملاء الممتازة تزيد من المبيعات، فإن 38% من العملاء يقولون أنهم قد اشتروا منتجًا ما نتيجة محادثة فورية مع ممثل للشركة، كما وجدت دراسة للتسويق الإلكتروني أن 63% من العملاء يعودون إلى الموقع الذي أجروْا فيه محادثة فورية. والأهم من كل ذلك أن 92% من العملاء الذين يتسوقون عبر الإنترنت يفضّلون هذه الطريقة في خدمة العملاء، فما أريد قوله هو أن استخدام أدوات للتحدث مباشرة مع العملاء ليس صعبًا، بل هو مربح أيضًا إن نظرت إلى الإحصاءات التي تذكر رضى العملاء عن هذه الطريقة في التعامل معهم. إضافات محادثة فورية لووردبريس 1. Live Chat تُعد هذه الإضافة أفضل الأدوات الموجودة في السوق لتقديم خدمات الدعم الفني للعملاء للمواقع العاملة بووردبريس، وتسمح لأصحاب الموقع أن يتواصلوا مع العملاء من أجهزتهم المكتبية أو اللوحية أو حتى الهواتف، إضافة إلى أنهم لا يحتاجون أن يسجلوا الدخول إلى لوحة تحكم ووردبريس كي يستخدموا الإضافة. وبها خاصية تسمح لممثلي خدمة العملاء أن يرسلوا دعوات محادثة إلى العملاء بُناءً على معايير محددة مثل عدد الصفحات التي زاروها أو الوقت الذي قضوْه على الموقع، إضافة إلى مزايا أخرى مثل المراقبة في الوقت الحقيقي -real time monitoring-، ومشاركة الملفات، ونظام بطاقات يوفر دعمًا على مدار الساعة للعملاء، وهذه الأخيرة تمكّن العملاء من مراسلتك حتى لو لم تكن متاحًا مباشرة على الموقع. وتتكامل live chat مع تطبيقات الطرف الثالث مثل Zendesk أو إحصاءات جوجل أو تطبيقات إدارة العلاقات مع المستخدمين مثل Hubspot وSalesforce، إضافة إلى مواقع الشبكات الاجتماعية مثل فيس بوك وتويتر. وتبدأ أسعار هذه الإضافة من 16$ شهريًا لكل ممثل دعم فني في الشركة، إن دفعت الباقة بشكل سنوي على دفعة واحدة. 2. Zendesk Chat تأتي إضافة Zendesk chat من منصة خدمة العملاء الشهيرة Zendesk، وتتميز بواجهة جميلة التصميم يمكن تغيير القوالب المرئية فيها، إضافة إلى سهولة تثبيتها. كما توفر هذه الإضافة بادئات آلية للمحادثات مع العملاء يمكن تخصيصها (كأن تُفتح محادثةٌ مع العميل حين يبقى فترة معينة على الموقع أو يفتح عددًا معينًا من الصفحات)، وبها ويدجت-widget- مهيأة لتعمل على الهواتف، ولوحة تحليل متطورة. وهناك خطة أسعار مجانية لهذه الإضافة لكنها تسمح بممثل خدمة عملاء واحد فقط، وبمحادثة واحدة مفتوحة، بمعنى أنك ستتعامل مع العملاء واحدًا تلو الآخر. وقد تناسبك هذه الخطة إن كنت المالك الوحيد لموقعك وتقوم بنفسك على تجارتك بدون مساعدة أو توظيف لأحد، أما للاستخدام التجاري فإن خطط الأسعار تبدأ من 14$ شهريًا لكل ممثل دعم فني. 3. Olark يمكنك استخدام هذه الإضافة بعد إضافة شفرة قصيرة إلى القالب الفرعي"child theme” الذي تستخدمه، أو عبر رابطها في موقع ووردبريس. وإليك بعض من مزايا هذه الإضافة: تقارير عن المحادثات تكامل مع برامج Help Desk و CRM مثل Salesforce وZendesk وGroove. تصنيف ممثلي الدعم إلى مجموعات حسب الوظيفة التي يقومون بها. البحث في تاريخ المحادثات، حيث تحصل كل محادثة على تصنيف مفصّل لنشاط المستخدم على الموقع، ويمكن له أن يقيّم المحادثة بعد انتهائها. رؤية ما بداخل سلة تسوق المستخدم. وتبدأ أسعار Olark من 17$ شهريًا لكل ممثل دعم. 4. WP Live Chat Support تهدف إضافة WP Live Chat Support إلى خدمة الشركات التي تبحث عن حلول غير مكلفة للمحادثات الفورية مع العملاء، وتأتي بست قوالب لصندوق المحادثات، وإمكانية نقل صندوق المحادثة في أي مكان في صفحتك، وفتح محادثات مع العملاء دون حد أقصى لعددها، وتخزين محلي للرسائل، وتكامل مع تحليلات جوجل، إضافة إلى أنها لا تحتوي على إعلانات أو روابط، ويمكنك حجب الزوار من عناوين IP بعينها. والإضافة نفسها مجانية، لكن الباقة المدفوعة التي تشتريها لمرة واحدة مقابل 40$ تعطيك مزايا مثل عدد غير محدود من ممثلي الدعم الفني، والردود المحددة مسبقًا، ومعدلات رضى العملاء، والقدرة على إضافة صورة ممثل الدعم الفني لنافذة المحادثة. 5. Tidio Live Chat تعد إضافة Tidio من أسهل الإضافات في تثبيتها، حيث لا تتطلب إلا تفعيلها فقط، وتأتي في ثلاث تصميمات، وتستطيع تعديل اللون إلى ما يناسب هوية شركتك. وتوفر Tidio تطبيقات مخصصة لأجهزة سطح المكتب والهواتف، حيث يمكنك إدارة محادثاتك مباشرة منها، إضافة إلى ودجة تدعم المحادثات المباشرة بأكثر من 140 لغة. ويمكن للمستخدمين أن يصلوا إليك إن لم تكن متاحًا من خلال إرسال أسئلتهم عبر البريد الإلكتروني، ويمكنك الرد عليهم من خلال البريد أيضًا، بل إن Tidio تتكامل مع Zendesk وGetResponse وSalesforce وMailChimp. ويمكنك استخدام باقة مجانية في tidio تدعم ممثل دعم فني واحد ومحادثة واحدة مفتوحة، أما الباقات المدفوعة فتبدأ من 15$ شهريًا لكل ثلاثة موظفين للدعم الفني، ، مع إمكانية إضافة موظفين أكثر بتكلفة 10$ شهريًا للموظف. أو يمكنك اختيار باقة تكلفك 15$ شهريًا لكل 5000 زيارة فريدة للموقع. خاتمة لعلي أكون قد وُفِّقت في بيان هذه الإضافات وتوضيح مزاياها، وأرجو أن تكون قد رأيتَ وجهة نظري في أهمية المحادثات الفورية لكثير من المواقع هذه الأيام -خاصة مواقع التجارة الإلكترونية- حيث تطرأ تساؤلات في أذهان المستخدمين قبل أن يقرروا شراء منتج ما. ولتعلم أن إضافات المحادثة الفورية تقرّب المسافات بين موظفي الشركة وبين المستهلكين ليجيبوا عن أسئلتهم بسرعة، فيزداد ولاؤهم للشركة ومن ثم تزيد مبيعاتهم. وما عليك أن تشغل بالك بشيء بعد تثبيت هذه الإضافات إلا أن تتأكد أن لديك موظفين كفاية للرد على أسئلة العملاء. ترجمة -بتصرف- لمقال How to Setup Live Chat on WordPress لصاحبته Maddy Osman.
  5. سواء كنت تبحث عن عملاء جدد أو تتبع محادثة هاتفية مع عميل أو حتى تقدّم توثيقًا لمواصفات منتجك، فإنك ستضطر إلى إرسال رسالة بريدية في النهاية، بل سيكون عليك في الحقيقة أن ترسل عشرات الرسائل المتشابهة كل يوم، ذلك يعني أنك ستكرر كثيرًا مما تكتبه في كل رسالة لكن مع تغييرات طفيفة هنا وهناك كي ﻻ تبدو رسالتك آلية لكل العملاء، فلا أحد يرغب أن يتلقى رسالة منواضح أنها آلية وليست مخصصة له، لكن ذلك لا يعني أنك مضطر إلى كتابة نفس الرسالة مرة بعد مرة، كما سيكون أفضل أن تركز على الأجزاء التي ستحدث فرقًا معك، وهنا يأتي دور القوالب البريدية. 4 أساليب لاستخدام وتخصيص القوالب البريدية يحفظ لك استخدام القوالب البريدية وقتًا لا بأس به ويسمح لك بزيادة عدد من تصل إليه، وإن اختيار أو تخصيص قالبك البريدي ليس صعبًا حتى لو كان لديك أسلوبك الخاص في جذب الانتباه، فهناك بعض النقاط التي يجب أن تبقيها في ذهنك إن كنت تريد أن تحصل على أكبر نسبة نجاح من رسائل البريد التي ترسلها. 1. انتبه إلى سطر العنوان تزيد نسبة فتح الشخص للرسائل البريدية إن كانت تحتوي على اسمه في سطر العنوان، هذه ظاهرة تم توثيقها جيدًا من قبل، لذا احرص –إن كان ذلك ممكنًا- على إدراج اسم المستقبِل في سطر العنوان في الرسالة. وتزيد أهمية هذه النقطة إن كنت ترسل رسائل باردة، حيث تكون غريبًا تمامًا على من ترسل إليه، وأضف إلى ذلك أنك يجب أن تبقي الرسالة مختصرة ومحددة وشخصية. إليك أمثلة على أسطر العناوين الشائعة: “{تقديم، مثل “مرحبًا”} {الاسم}”، أو “{تقديم} {اسمك/شركتك} <> {اسم المرسل إليه/شركته}” “{اسم شركة المرسل إليه}” “محاولة للتواصل” “طلب سريع” 2. متن الرسالة، ادخل في صلب الموضوع مباشرة إن أول جملة في متن الرسالة أهم مما تظن، ذلك أن أغلب برامج البريد تعرض أول جزء من متن رسالتك إلى جانب سطر العنوان، هذا يعني أن أول رسالتك سيكون ظاهرًا حتى دون فتح الرسالة أصلًا. لذلك فكر جيدًا ما الذي يمكن أن يجذب انتباهك أنت في أول خمس ثوان من قراءة الرسالة. 3. اجعل الرسالة شخصية سيكون هذا هو النص الوحيد الذي ستكتبه فعليًا، تلك الأنباء التي ستزفّها إلى عميلك لتلمس شخصه خاصة، وهنا يقوم القالب الجاهز بأغلب العمل ويذرك تصرف جهدك في أجزاء الرسالة التي تريدها أن تصل جيدًا إلى عميلك المحتمل. وتلك الخطوة مهمة جدًا في حالة رسائل المتابعة وإعادة فتح قنوات التواصل، وتتضمن طرق إضافة تلك اللمسة الشخصية إلى رسالتك ما يلي: استخدام أسماء الأشخاص والشركات والمنتجات. تأييد ما يفعل عميلك أو تأييد مهمة شركته. ذكر أي مخاوف أو مخاطر أو مشاكل تواجهه، وكيف يمكنك مساعدته في حلها. ذكر أي ملاحظات كنتَ قد ذكرتَها في محادثات سابقة. 4. احصل على نقد وطبّق ما فيه من المهم أن تحصل على نقد حول كيفية دخولك على العميل –أو إلى صندوق وارده-، فقد يطلب البعض ذلك النقد من عملائهم أو المستثمرين معهم ليساعدوهم على تجميع نقد حول قوالبهم البريدية. إليك بعض الأسئلة التي يمكن أن تطرحها: هل تفتح هذه الرسالة لو وصلتك؟ هل سترد عليها؟ ما هو الواضح فيها وما الأجزاء التي بدت غامضة؟ كيف أثّرَت تلك الرسالة على مشاعرك؟ خمس قوالب بريدية للمبيعات كتبها محترفون بما أننا تكلمنا قليلًا فيما سبق حول الطرق المثلى لاستخدام القوالب البريدية، دعنا الآن ننظر على هذه القوالب البسيطة التي يمكنها استخدامها في أي وقت تشاء. 1. اسم القالب: قالب الرسالة الباردة عنوان الرسالة: طلب سريع مرحبًا (اسم العميل) سأحاول اختصار هذه الرسالة لعلمي أنك قد تكون مشغولًا، أنا أعمل مع شركات مثل (اسم الشركات) لمساعدتها على (اذكر الفائدة التي تجنيها الشركات منك، مثل تسجيلات عملاء جدد). وأكثر ما يحبه عملاؤنا في شركتنا أننا (نقطة قوتكم الرئيسية، مثل أن جودة العملاء المحتملين قد زادت في منصتكم على مدار الستة أشهر الماضية، ومن ثم فقد رادت معدلات الاستجابة مرتين أو ثلاثة عن متوسط باقي السوق). وأنا أتمنى أن أعطيك أنت أو زميلًا لك عرضًا من عشرين دقيقة، هل يناسبك الثلاثاء القادم أو الأربعاء القادم؟ أطيب التحيات، (اسمك) 2. اسم القالب: متابعة عنوان الرسالة: متابعة بشأن اجتماعنا مرحبًا (اسم العميل) أشكرك على وقتك الذي قضيته هذا اليوم في تصفح شراكتنا المستقبلية، لقد شعرت أن منتجنا قد يساعدك في حل بعض المشاكل التي تجدها في شركتك، خاصة في هذه النقاط التالية: (ميزة 1) ستساعدك في (تحقيق هدف س) (ميزة 2) ستساعدك في (التغلب على عقبة ص) (ميزة 3) ستساعدك في (مسألة ل) وسأرفق لك بعض المصارد التي ستعطيك فهمًا أفضل للطريقة التي يمكننا أن نساعدك بها. إنني أتفهم أنك ستتناقش حول النقطة التالية في شركتك، وأرجو أن تطلعني إن كان لديك أية أسئلة أو إن كانت هناك أي طريقة يمكنني أن أساعدك بها، وإن لم يكن هنالك شيء فسأحدثك في (تاريخ/وقت). تحياتي، (الاسم) 3. اسم القالب: المواد بعد التواصل عنوان الرسالة: المواد بعد محادثتنا مرحبًا (اسم العميل) لقد استمتعت بحديثنا اليوم، خاصة ما ذكرت بشأن دورك في الشركة، وقد فهمت أنك تواجه بعض التحديات حول (المشاكل التي تناقشتما حولها)، وتأثيرها عليك. وكما وعدتك فإني أرفقت لك المصادر والمواد التي قد تساعدك على فهم كيف يمكننا مساعدتك بشكل أفضل لمعالجة هذه المشاكل وإحداث التغيير الذي تريد. أرجو أن تطلعني على أية أسئلة قد تكون لديك، وإن لم تكن ثمة أسئلة فأنا أتطلع إلى الحديث معك مجددًا في (تاريخ/وقت). تحياتي، (اسمك) 4. اسم القالب: إعادة فتح قنوات التواصل عنوان الرسالة: مرحبًا (اسم العميل) كيف الحال؟ أرجو أن تكون أمورك بخير. قد تذكرت أنك كنت مهتمًا بميزة (س) في المرة الماضية، وقد أحدثنا تطورًا ملحوظًا بشأنها وقد أعجب الحل الجديد كثيرًا من عملائنا. وأحب أن أشاركك بعض هذه التحديثات في أقرب وقت يناسبك، أخبرني رجاءًا إن كان (تاريخ/وقت) يناسبك، أو لا تتردد في أن تختار وقتًا أفضل. كما أتمنى أن تخبرني إن كان لديك أي أسئلة مسبقًا كي أجهز الإجابات لدي. تحياتي، (اسمك) 5. اسم القالب: قالب التقديم عنوان الرسالة: طلب مرحبًا (اسم العميل) لقد مر وقت منذ أن تحدثنا آخر مرة، وأتمنى أن تكون بصحة جيدة. دعني أولًا أسألك كيف هي أمورك وأخبار شركتك، وهل هناك فرصة لمساعدتك إلى جانب ما نفعله؟ ثانيًا، لدي طلب وأتمنى ألا تخيّب رجائي: باختصار، هل تعرف أحدًا من معارفك يمكنني أن أتواصل معه كي أرى إن كان بإمكاني مساعدته بنفس الطريقة التي عملنا بها معًا؟ إن كنت تستطيع تقديمي باختصار إلى شخص تظن أن بإمكاني مقابلته والتحدث معه حول تعاون مشترك فسأكون شاكرًا لك، وأعدك أن أعامل جيدًا. لكن يمكنك أن ترد على هذه الرسالة بـ"لا أستطيع التفكير في أحد الآن" إن شئت، وأنا شاكر في كل الأحوال لك على وقتك الذي ستمنحنا إياه. أطيب التحيات، (اسمك) ترجمة –بتصرف- لمقال Five Sales Email Templates to Get You Started – and How to Use Them Effectively لصاحبه James Campbell حقوق الصورة البارزة محفوظة لـ Freepik
  6. لعلك تدرك أن عملاءك الذين بنيت لهم مواقعهم باستخدام ووردبريس يرغبون أن يتواصلوا معك من أجل طرح أسئلتهم أو عرض مشاكلهم، وقد توفِّرُ لهم قناة تواصل من خلال لوحة إدارة الموقع، لكني أرى أن منتدى خاص للدعم الفني تجعله في الواجهة الأمامية (front end) لموقعك سيكون أفضل. وقد رأينا منافع مثل هذا المنتدى بأنفسنا إذ لدينا واحد في WMPU DEV، وهو منتدى نشط جدًا بالمناسبة، وإليك المنافع التي أقصدها: يعرض هذا المنتدى للأعضاء الحاليين والمحتملين الإمكانيات التي توفرها منتديات الدعم الخاصة بنا. يجيب عن أسئلة الأعضاء المشتركين فيه دون أن يضطروا لفتح تذاكر دعم فني جديدة. يزيد من كفاءة فريق الدعم إذ يوجّهون الأعضاء إلى منشورات سابقة إن كان السؤال مكررًا بدلًا من إجابة السؤال من جديد في كل مرة. يمكن أن تنظر إليه على أنه مرجع لمجتمع ووردبريس ككل، إذ أن أي مستخدم لووردبريس يمكنه استخدامه والاستفادة منه. وإن كنت تدير شبكة بها مواقع عديدة لأكثر من مستخدم واحد أو تقدّم خدمة الدعم الفني لعملائك عبر لوحات الإدارة الخاصة بمواقعهم فلعلك تستخدم إضافة Support System، وقد بدأت أنا شخصيًا باستخدامها حين أنشأت شبكة متعددة المواقع (Multisite Network) تتيح للمستخدمين أن ينشئوا مواقعهم الخاصة، ولا تزال تقدّم هذه الشبكة خدمة الدعم لمستخدميها عبر توفير طريقة يتصلون بي من خلالها من أجل الدعم الفني. لكن هذه الإضافة تمتد إلى ما وراء لوحات التحكم للمواقع، فيمكن أن تنشئ مساحات للدعم الفني في واجهة موقعك وتنشر البطاقات التي أجيب عليها في صفحة الدعم الخاصة بك، وذلك يسمح للمستخدمين أن يروا كل البطاقات التي أُجيب عليها، كما تقوم هي نفسها -مساحة الدعم الفني- مقام الدليل على خبرتك في ووردبريس وعلى الخدمة الممتازة التي تقدمها لعملائك، إضافة إلى كونها مرجعًا لمجتمع مستخدمي ووردبريس. وسأعرض لك في هذا المقال كيف تستخدم إضافة Support System لإنشاء منتدى للدعم الفني، إضافة إلى إنشاء نافذة للمستخدمين كي يطرحوا أسئلتهم، ثم نشر الإجابات على تلك الأسئلة في موقعك. وسيكون كل ذلك في الواجهة الأمامية لموقعك، رغم أن المستخدمين لديك سيرون بطاقات الدعم من خلال نوافذ لوحات التحكم الخاصة بهم. تثبيت وإعداد إضافة Support System سنضيف بعض التصنيفات للبطاقات ونضبط إعدادات الإضافة بمجرد تفعيلها -قم بتثبيتها إن لم تكن قد فعلت-. ونبدأ مباشرة في التصنيفات: اذهب إلى Support ثم Ticket Categories، وأنشئ تصنيفات كما لو كنت ستنشئ تصنيفات لمنشور عادي، ولأني أنشئ منتدى وهمي في ووردبريس من أجل الشرح فقط، فإن أسماء تصنيفاتي ستكون لها علاقة بهذا: والآن سنهيئ إعدادات الإضافة، اذهب إلى Support ثم Settings كي ترى صفحة الإعدادات العامة للإضافة، وسترى أنها تعطيك خيارات تتعلق بقائمة الدعم والرسائل البريدية وصلاحيات رؤية البطاقات. غيّر اسم القائمة، وحقل email from وعنوان البريد إن كان ضروريًا في حالتك. ثم ننتقل إلى صلاحيات الرؤية، قم بتحديد كل الخيارات من أجل أن يصل جميع المستخدمين إلى البطاقات. بمجرد أن تضغط على حفظ التغييرات نكون قد انتهينا من إعداد الإضافة وتهيئتها. إنشاء صفحات للمنتدى نحتاج أن ننشئ صفحة في الموقع للمنتدى من أجل أن يكون عامًا ويراه الناس ويفتحوا بطاقات دعم جديدة، فأنشئ صفحة ثابتة (static page) جديدة بالطريقة العادية، وسمّها Support، ثم لا تضف أي شيء إليها. كرر هذه الخطوة مع صفحتين أخرتين، وهما الصفحة التي سيرسل المستخدمون فيها بطاقات جديدة، والأخرى من أجل الأسئلة الشائعة، حيث ستكتب الأسئلة الشائعة لتجيب عن أكثر الأسئلة التي تدور بين المستخدمين. إليك مثالًا عن الصفحات التي أنشأتها: تفعيل واجهة الدعم الأمامية من أجل تفعيل الجزء الأمامي من الإضافة، اذهب إلى Support ثم Settings ثم Front End، وحدد المربع الخاص بخيار Activate Front End. وستظهر الآن عدة خيارات، فأتمّها كما يلي: Use Support System styles: اترك هذا الخيار محددًا ما لم ترد إضافة إعداداتك الخاصة. شخصيًا، لن أغيّر هذا إلا إن كان تخصيص السمة يتعارض مع تخصيص الإضافة. Support Page: اختر صفحة الدعم التي أنشأتها قبل قليل. Submit new ticket Page: اختر الصفحة التي أنشأتها قبل قليل لإرسال البطاقات. FAQs Page: اختر الصفحة التي أنشأتها للأسئلة الشائعة.- اضغط الآن على زر Save changes. إثراء صفحات الدعم بعد أن اخترتَ صفحاتك وفعّلتَ الواجهة الأمامية، يجب أن تضيف كودًا مختصرًا لكل صفحة من صفحات الدعم، عُد إلى صفحات الدعم وأضف الأكواد التالية: صفحة الدعم (Support Page): [support-system-tickets-index] صفحة إرسال البطاقات الجديدة (Submit new ticket Page): [support-system-submit-tickets-form] صفحة الأسئلة الشائعة (FAQs Page): [support-system-faqs] احفظ كل صفحة من تلك الصفحات، ثم أضفهم إلى قائمة التنقل في موقعك. لاحظ أنك لا تحتاج إلى تفعيل صفحة الأسئلة الشائعة في موقعك إن كنت تريد منتدى للدعم فقط ولا تريد أن تنشر الأسئلة الشائعة، لكن إن كنت تجد أن لديك أسئلة تتكرر كثيرًا فربما تكون هذه الصفحة مفيدة حينها. والآن حين يريد مستخدم أن يطرح سؤالًا فإنه سيذهب إلى صفحة الدعم ويختار Submit new ticket ليذهب إلى صفحة إرسال البطاقة. نشر بطاقات المشاكل التي حُلَّت يستطيع المستخدمون الآن أن يرسلوا بطاقاتهم بما أن المنتدى قد صار جاهزًا -ربما تود إضافة بعض تلك البطاقات بنفسك-، وستُنشَر تلك البطاقات بشكل آلي في موقعك بمجرد أن يتم حل المشاكل التي تُذكر فيها. إليك بعض البطاقات العشوائية التي أضفتها إلى موقعي من أجل توضيح المثال: والخطوة التالية الآن هي الإجابة على هذه البطاقات التي أُرسلت إليك، وحاول أن تفصّل الإجابة وتبيّنها إذ أنها ستُنشر على موقعك، إليك صفحة الدعم الخاصة بي: يستطيع المستخدمون في هذه المرحلة أن يرسلوا بطاقات جديدة أو يبحثوا في الموجودة مسبقًا، أو يقرؤوا البطاقات الموجودة مباشرة، وسأرى إجابة كل بطاقة قد أجيب عليها بمجرد النقر عليها: وأستطيع إضافة رد جديد إن مررت للأسفل، أو حتى شكر الشخص الذي أجاب وإخباره أن الحل قد نجح معي. وهنا تبدأ ثمرة هذا المنتدى بالظهور إذ يرى الناس حجم التجاوب والفائدة التي قد يحصلون عليها من المشاركة فيه. إضافة صفحات للتصنيفات سترى أنك إن ذهبت إلى صفحة الدعم في موقعك واخترت أي تصنيف فستظهر كل البطاقات التي تحت هذا التصنيف، ويمكنك استغلال هذا باستخدام ذلك الرابط الذي تم توليده لإنشاء صفحات في موقعك كما يلي: اذهب إلى كل تصنيف عبر النقر على الرابط في صفحة الدعم الخاصة بك، ثم انسخ الرابط الموجود في اللسان الذي ستأخذك إليه تلك النقرة، وأضف هذه الروابط كروابط مخصصة (custom URLs) في قائمة موقعك. يستطيع المستخدمون الآن أن ينتقلوا إلى تصنيف محدد في منتدى الدعم بالنقر على الروابط المخصصة في قائمة الموقع، إضافة إلى النقر على التصنيف في صفحة الدعم الأساسية. خاتمة إن إضافة منتدى للدعم الفني من شأنه أن يخدم عملاءك ويزكّي سمعتك، كما يقدم مرجعًا مفيدًا لعملائك وأي متابع أو مستخدم، وهذا صحيح في حالة منتدى الدعم عندنا في WMPU DEV، إذ يمثّل المنتدى مكانًا نساعد فيه مشتركينا على الاستفادة من ووردبريس بشكل عام، ومن منتجاتنا بشكل خاص. أضف إلى هذا أنك ستعرض مدى خبرتك بمجالك، فإن كنت تقدم إجابات مفيدة لأسئلة الناس فسيثقوا أنك خبير في ووردبريس، وهكذا تساعدك إضافة Support System على إنشاء منتدى دعم فني يخدمك ويخدم عملاءك على حد سواء. والآن أخبرني، هل تقدّم خدمات دعم فني لعملائك؟ وإن كان فكيف تفعلها، وهل جربت الإضافة الخاصة بنا والتي استعرضناها في هذا المقال؟ ترجمة -بتصرف- لمقال How to Set Up a Support Forum with the Support System Plugin لصاحبته Rachel McCollin
  7. قد يكون الاجتماع الذي يجب أن يعقده المدير مع الموظف حول الراتب هو أحد الاجتماعات غير المتوقعة على مدار العام، فهذا الموضوع حساس قليلًا سواء كان في محيط العائلة أو العمل أو الأصدقاء. ويجب أن يلعب المدير دورًا في المنتصف بين قسم الموارد البشرية والموظفين في مناقشة الزيادات في الرواتب، وفرص الحصول على علاوات -أوعدمها-، وكذلك عليه أن يتّبع خطوطًا حازمة في ذلك، لكن مع الحفاظ على سعادة الموظف في نفس الوقت. وقد ذهب فريق من Officevibe إلى أوستن -عاصمة تكساس- لحضور مؤتمر Compference الذي يقام لمدة يومين وينظمه فريق من خبراء المجال في PayScale، وسنلخص لك في هذا المقال ما تعلمناه في ذلك المؤتمر كي تتخلص من المشاكل التي تواجهك أثناء مناقشة الأجور. لاحظ أن الكلمات التي يجب أن تبقيها في ذهنك هي “السياق، والتواصل”، كما أني أريد أن أخبرك قبل أن نبدأ أنه حين نخوض نقاشات صعبة مع الموظفين، فليس المهم ما نقوله فقط، بل كيف نقوله أيضًا. أهمية التواصل بالسياق حول الأجور انظر معي إلى هذه الأرقام من PayScale كي تدرك أهمية السياق أثناء الحديث عن الأجور: يظن77% من الموظفين أن قرارات الأجور تبنى على بيانات قليلة. يظن 54% من الموظفين ذوي الأداء العالي أنهم يتقاضون رواتب أقل مما يستحقون. يظن 50% من الموظفين أنهم يتقاضون رواتب أقل من باقي السوق لمثل وظائفهم، وإن كانوا يتقاضون رواتب مثل السوق أو أعلى. إن الكلمة التي تكررت معنا في النقاط السابقة هي “يظن”، فما هي إﻻ افتراضات ﻷنهم ﻻ يملكون بيانات أو معلومات عن السياق، وهذه هي المشكلة. دعنا الآن ننظر في أهمية ذكر السياق في معادلة الحديث حول الأجور. أولًا: ذكر السياق يضع الأمور في نصابها ويشرح السبب وراء الأرقام المطروحة ولماذا تم اقتراحها. ثانيًا: ﻻ يوجد أحد يحب أن يبقى في الظلام، خاصة حين يتعلق الأمر بالطريقة التي يقيّمك بها شخص آخر. تخيل أن تُعطى رقمًا لكنك ﻻ تفهم معناه وﻻ دلالته، إن ذلك قد يدفع الموظف للجنون، ويشغل حيزًا كبيرًا في حقل أفكاره اليومية. ثالثًا: تخيل شعور المدراء حين يضطرون إلى إعطاء رقم -راتب- لموظف مع تقديم دلالة له، لكن دون معرفة حقيقية لكيفية تفسير دلالته، إن الأمر يشبه طلب التعليق على مباراة هوكي من شخص لم يشاهد مباراة في حياته. اﻷجر مسألة حساسة إن مسألة الأجور تحمل قدرًا عاليًا من الحساسية بذاتها، لذا فإن إعطاء معلومات خاطئة أو حتى التعبير عن المعلومات الصحيحة بطريقة خاطئة قد يؤدي إلى فقدان موظفيك للثقة فيك. ذلك أن مناقشة قيمة أحدهم بأي شكل كان لا تدور حول معادلات وحسابات فقط، فهناك مشاعر بشرية تتدخل في الأمر، لذلك يجب أن يكون المدراء قادرين على أن يقدموا تفسيرات صحيحة ومفصّلة. وتؤكد مجلة هارفارد بيزنس ريفيو بشدة على الحاجة لذكر السياق في مسألة الحديث حول الأجور مع الموظفين: ما هي مخاطر عدم النقاش حول الأجور؟ ببساطة، سيصل الموظفون إلى افتراضاتهم الخاصة حول الأجر الذي يتقاضوه، وحين تترك عقولنا طليقة فإنها تخرج بافتراضات قد تشطح بعيدًا بصاحبها. يقول مايكل ميتزيجر، المدير التنفيذي لpayScale: هذا يعني أن المشكلة لا تتعلق بمقدار المال فحسب، بل بالطريقة التي نتحدث بها عنه أيضًا، فهناك انفصام كبير بين الواقع وفهم واستقبال ذلك الواقع حين نتحدث عن اﻷجور، ونتيجة غياب هذه الشفافية أن الموظفين يتركون الشركة بحثًا عما يظنوه أفضل. الأمور الأساسية التي يجب أن يفهمها المدراء قبل الحديث حول الأجور حان الوقت لجعل المحادثة تسد تلك الفجوة بين ما يفهمه قسم الموارد البشرية عن الأجور، وبين ما يجهله الموظفون، وهنا يأتي دورك أيها المدير، وما سيلي هو ما يجب أن تعرفه، فإن لم تكن تتلقى تفسيرات حول الأجور فاطلب هذه التفسيرات وراء تلك الأرقام التي يُطلب منك إعطاؤها للموظفين، ﻷنها ستحدث فارقًا في علاقتك معهم. 1. فلسفة أجور الشركة ترتبط فلسفة أجور الشركة بأهدافها والقِيَم التي بُنِيَت عليها، ويجب أن يكون المدراء قادرين على الإجابة عن أي أسئلة لدى الموظفين حول الأجور بالتناسق مع تلك الفلسفة كي تتفق وجهات النظر عند الطرفين. الأسئلة المعتادة من الموظفين حول الأجور: لماذا تلك النسبة بالتحديد في الزيادة؟ لماذا حصلت على هذه العلاوة تحديدًا؟ كم سيزيد راتبي في العام المقبل؟ واعلم أنه كلما حصل الموظف على بيانات حول هذه الأسئلة كان سفيرًا لشركتك بدلًا من منتقِصٍ منها، فحيثما كان الفهم فإن التقدير ملازم له. 2. منظور تسعير السوق يجب تدريب المدراء على فهم موضع الشركة في السوق، فالقدرة على شرح هذه النقطة للموظفين الحاليين يعمل كأداة استبقاء لهؤﻻء الموظفين، تذكّر أن السياق يرجح بكفة أي شيء. إليك بعض العناصر المهمة التي يجب أن تبقى على اطلاع بها في شأن الأجور: كيف تضع الشركة أجورها تحديدًا. كيف تحافظ الشركة على تنافسيتها. من الذي تقارن نفسها به في السوق. هل للشركة سبق في السوق أم أنها متخلفة عن الركب. 3. منظور الشركة لتعديلات الأجور يجب أن يوفّر قسم الموارد البشرية في الشركة دليلًا لمناقشة الأجور مع كل الموظفين، سواء الجدد منهم حال توظيفهم في الشركة أو أولئك الحاليين الموجودين في الشركة، فقد تجذب بعض الأيدي العاملة إليك، ويجب اﻵن أن تحافظ عليهم، والطريقة التي تحافظ بها عليهم هي أن تبقى مطلعًا أنت وفريقك على نظرة الشركة للأجور، من خلال النقاط التالية: كيف تناقش زيادة الراتب مع الموظفين الحاليين. كيف تناقش الترقيات. كيف تناقش خفض درجة الموظف. كيف تناقش العلاوات. كيف تناقش تغير دور الموظف أو تغير المسمّى الوظيفي له. كيف تناقش إعادة تصنيف الوظائف. الحقيقة حول الأجور وتفاعل الموظفين لقد استنتجنا من الأبحاث الأخيرة أن الناس -خاصة جيل الألفية- ﻻ ينظرون إلى المال فقط حين يبحثون عن وظيفة، فهم يرغبون في التعلم والنمو والتواصل مع زملائهم، وأن يكونوا جزءًا من كيان أكبر، ويريدون أن يجدوا دافعًا وقيمة في كل يوم لهم في العمل. لكن هذا ﻻ يعني أن المال غير مهم أو أن الموظفين سيرضون بأقل مما يستحقون، بل يعني أنهم ما إن يحصلوا على أجر عادل ويشعروا بأن الشركة تقدّرهم، فسيهتموا أكثر بالنمو عوضًا عن المال. فالأجر في النهاية يحكي الطريقة التي تنظر بها الشركة إلى العاملين لديها، ولو رأى الموظف أن الأجر غير عادل ومجزئ فإنه سيغادر تلك الشركة، وتتحدث هارفارد بيزنس ريفيو عن تلك النقطة قائلة: الصلة بين الأجر وثقافة الشركة كما أن كل فرد في أي مؤسسة مسؤول عن تمثيل ثقافة الشركة وقيمها، فإن كل فرد فيها يجب أن يفهم أسلوب الشركة في الأجور، ﻷن ذلك جزء من الثقافة أيضًا داخل الشركة. هل لديك نصائح تشاركنا بها حول اﻷجور في التعليقات؟ كيف تتحدث مع الموظفين حول ذلك الموضوع؟ ترجمة -بتصرف- لمقال The secret to discussing pay with employees لصاحبته Ali Robins حقوق الصورة البارزة محفوظة لـ Freepik
  8. "بالتأكيد، يمكنني إنهاء ذلك المقال في ساعتين.”. إنني أعلم أن المقال الجيد يحتاج إلى أكثر من ذلك في الغالب، أنا أعلم هذا، ومديري يعلم هذا، لكننا وافقنا على تلك المهزلة رغم ذلك، وفي خلال ساعتين كنت قد جمعت بعض الكلمات ورميتها داخل مستند مع بعض الصور وأرسلتها إليه قائلًة: “ها هو المقال، أهو مناسب؟ أنا جاهزة للتعديلات إن وجدت.”. ثم جلست أنتظر رده الحتمي بفارغ صبر : “وهل تلك كلمات أصلًا؟ أعيدي كتابته.”. إن مثل هذه المواقف تشكل نقاطًا فارقة في حياتي، مواقف فظيعة ومؤلمة بدون داعي ﻷني كنت أمنح وعودًا فوق طاقتي. لكن من ناحية أخرى، من يريد أن يعِدَ بالقليل؟ فهذا يبدو سيئًا، أﻻ يجب أن نعدَ بأكثر من اللازم ثم نفعل ما بوسعنا؟ أليس الجهد هو الفيصل؟ كلا! ربما يرجع تاريخ استخدام البشر للوعود إلى آﻻف السنين، حيث مثّلت تقليدًا اجتماعيًا معقدًا، وتتفاقم عواقب خرق تلك الوعود التي عجز أصحابها عن الوفاء بها، وإليك في هذا المقال الأسباب التي أنصحك من أجلها أن تعِدَ بأقل مما ستسلّمه حقًا: لماذا نقطع وعودًا على أنفسنا؟ مثّلت الوعود ضمانة على أن شيئًا ما سيتم تنفيذه، فقد كانت الوسيلة الأبرز قبل المحاكم والقوانين والأنظمة الاجتماعية المعقدة، وﻻ زالت إحدى أهم الأدوات التي تساعدنا على التواصل مع غيرنا، وهذه هي الأسباب الأربعة التي نقطع وعودًا من أجلها: خلْق الالتزام. تنظيم وإرشاد السلوك. تقليل الحيرة. بناء الثقة. ويحفظ الناس وعودهم ﻷنها تساعدهم على بناء الأساسات اللازمة لحفظ علاقاتهم البشرية وتطويرها، فكلما كبر الوعد زادت ضرورة الالتزام بتنفيذه، فإن الوعود الكبيرة يتبعها توقعات كبيرة، وفي حالة الفشل في تحقيق تلك التوقعات فإن العقل يستجيب بتقليل إفراز الدوبامين، على عكس الحالة التي نحقق فيها تلك التوقعات أو نزيد عليها، إذ يزيد الدماغ من إفراز الدوبامين الذي يجعلنا نشعر بالسعادة، نحن ومن قطعنا له الوعد. إضافة إلى أن الوعود تخبر العالم من حولنا بمدى أهليتنا للثقة: في حالة حفظ الوعد: في حالة خرق الوعد: يحتاج عقلك إلى بعض الثبات، لذا نحن نصدّق من يخبرنا أنه سيفعل كذا وكذا ﻷن هذا يريح العقل البشري، لكن هذا الثبات يبدأ بالتلاشي إن لم يتم الوفاء بذلك الوعد، ﻷن ذلك ليس خرقًا للثقة والتوقعات فقط، بل هو انتهاك لأحد التقاليد الأساسية لدى البشر، ويتعدى أثر عدم الوفاء بذلك الوعدِ خيبةَ اﻷمل ليغيّر طريقة استقبال الناس لنا وتفاعلهم معنا. وعد الحر ديْن عليه وجدت دراسة أجرتها الباحثة الهولندية مانيلا فيث أن الوعود التي لا يوفَ بها تجعلنا نرغب في معاقبة أولئك الذين لم يفوا بها، بل والانتقام منهم أيضًا، وتؤثر تلك المشاعر على أي تفاعل مستقبلي بين الطرفين. تحليل لوعد لم يوفَ به إن عقلك يعرف أنك ستخرق الوعد الذي قطعته من قبل أن تنوي الاعتراف بذلك لنفسك، فقد اكتشف باحثون في سويسرا أن بإمكانهم توقع من سيخرق وعدًا قد قطعه بناءً على تفاعل الدماغ أثناء نموذج من ثلاث مراحل لوضع وعد بتنفيذ شيء ما. مرحلة الوعد لنقل أنك أخبرت زملاءك في العمل أنك ستساعدهم على إنهاء مشروع ما، فأنت لم تقرر قطعًا في هذه المرحلة ما إن كنت ستفي بهذا الوعد أم ﻻ، لكن عقلك سيدرك تناقضًا في نفسك لأنه يعرف أنك ﻻ تنوي الوفاء، وعليه فإنه ينشّط مراكز معالجة المشاعر السلبية. مرحلة الترقّب ستنتظر الآن رد فعل زملائك الذين أخبرتهم أنك ستساعدهم، لترى ما إن كانوا سيثقون بك أم لا، لكن ذلك الترقّب يرفع معدل اﻹجهاد عليك، وهو ما يلتقطه دماغك طبعًا إذ كان يجهزك للعواقب السلبية المحتملة لهذا الوعد. مرحلة اتخاذ القرار لقد قررت أن تخرق وعدك لزملائك بسبب انشغالك الزائد، لكن ذلك القرار سيعزز رد فعل في دماغك يشبه ذلك الذي يحدث عند الكذب أو الخداع، فتشعر ببعض الذنب والخوف من تأثير خرقك لهذا الوعد. وسيكافح دماغك هذا الشعور بتذكيرك بالسبب الذي جعلك تخرق وعدك من الأساس عبر تنشيط الجزء المسؤول عن صناعة القرار المرتبط بالمكافأة في دماغك. ثلاث طرق تساعدك على الوفاء بوعودك 1. سل نفس إن كان يجب أن تعطي وعدًا يجب أن يكون وعدك نابعًا من رغبة حقيقية في تنفيذ ما تريد أن تعِد به، فانظر ما تريد أن تحققه بإعطائك لهذا الوعد وما إن كان يمكن إعطاء وعد أقل منه. **فمثلًا: **لنقل أن اليوم هو الأربعاء، ولم تنه حتى نصف مشروعك، لكنك تعد بأنه سيكون منتهيًا بنهاية الأسبوع لأنك تريد أن تبهر زملاءك في العمل، لكنك نسيت المهام الأخرى التي يجب أن تنهيها. فقم بتقسيم المشروع إلى أجزاء صغيرة، وبدلًا من إعطاء وعد بأنك ستنهي المشروع في وقت غير منطقي، قل أن اﻷجزاء الفلانية من المشروع ستنتهي بتاريخ كذا، فإن ذلك يسمح لك بالتحكم في توقعات من حولك، ومتابعة إنجازك لما عليك من مهام، وستحافظ على إعجاب زملائك بك وعلى حفظك لوعدك. 2. عِد بأقل مما ستفعله قدّر الوقت الذي سيحتاجه المشروع ثم زد على ذلك ضعفه أو ثلاثة أمثاله -وفق حدود معقولة-، ولا تعط إجابة إن سئلت عن المدة اللازمة للمشروع إن لم تكن تعرف بالتحديد، وأخبرهم بدلًا من ذلك أنك سترد عليهم لاحقًا. مثال: إن كان المقال يستغرق مني ثلاثة أيام لكتابته، فسأقول أربعًا كي أحظى بوقت إضافي لربما استغرق بعض المقال أطول من المتوقع، أما إن أنجزته في أقل من أربعة أيام فإن ذلك سيجعل العميل سعيدًا. 3. في حالة الأسوأ قد نضطر أحيانًا إلى خرق وعودنا، فكن صريحًا وقدّم اعتذارًا فوريًا، فذلك يساعدك على حفظ علاقتك على المدى الطويل. فمثلًا: لنقل أني وعدت أن أنهي خمسة مقالات بنهاية الأسبوع، لكني لم أكتب إﻻ أربعة، إليك ما سأقول لمديري مباشرة: “قد استغرقت المقالات أطول مما توقعت لها، لذا سأنهي أربعًا فقط بنهاية الأسبوع، وسأختار موضوعات ليس فيها هذا التوسع في المرة القادمة.”. أرأيت؟ لقد وضحت السبب -وليس العذر- إضافة إلى الحل لتجنب حدوث هذا الموقف في المستقبل. وقد جعلتني الوعود المبالغ فيها أشعر أني في لعبة مطاردة، فأنجز نصف المشروع أحيانًا لمجرد أن أقول "أرأيت، إنه شبه تام …”، أما حين أعِد بأقل مما سأفعله فإني أبهر من حولي ونفسي أيضًا، فهذا يعطيني مساحة لإخراج أفضل ما بداخلي ويشعرني بالسعادة والفخر. واﻷمر في حقيقته يدور حول إعطاء نفسك زخمًا في كل مرة تنجح في تنفيذ وعد ما، إذ ستشعر أنك أكثر ثقة في نفسك وفي قدراتك، وسيرتبط اسمك بالثقة والإيجابية، وستتمكن من بناء أي علاقة تريدها في حياتك وتحافظ عليها أيضًا. ترجمة -بتصرف- لمقال Why you should always under-promise and over-deliver لصاحبته أندريا أيْريس
  9. قد تكون أول عملية تعاقد مع العملاء مصدر رهبة لبعض المستقلين الذين يشقّون طريقهم في العمل الحر، إذ أنها تبدو معضلة تناقض نفسها، فلكي تحصل على أول عميل يجب أن يكون لديك عملاء سابقين يشهدوا لك بجودة عملك. لكن هذه الحالة لا تحدث دائمًا، وقد أتينا لك اليوم بثمانية مستقلين يشهدون على ذلك. فقد سألت مجتمع CloudPeeps أن يشاركونا بعضًا من قصص تعاقدهم مع أول عميل، ولم أجد فيما ذكروا قصة تشبه الأخرى! ليز كوتنهام، مصممة ومسوّقة - كيف حصلت على أول عميل لك في العمل الحر؟ "كنت أعمل كمديرة للتسويق في شركة كبيرة، وحدث أن نصحت زميلة لي غير سعيدة في وظيفتها أن تستقيل وتتجه إلى العمل الحر، وقد ردّت لي هذا الجميل حين قررت أنا أن أحذو حذوها بأن أوصت بي إلى أحد عملائها. وهكذا فإن هذه الوظيفة الأولى قد منحتني ثقة -ومالًا أيضًا- كي أستقيل وأنتقل إلى العمل الحر.” - هل لديك درس خرجت به من هذه التجربة تخبريننا به؟ "أحسن إلى كل من تقابله، فإن إحسانك ﻻ يضيع أبدًا، وتأكد أن تبقى على اتصال مع من حولك بين الحين والآخر كي ﻻ تخشى الاتصال بهم حين تحتاجهم من أجل عمل ما، فتلك الرسائل بين الحين والآخر تجنّبك اللوم على التواصل بعد أعوام من الهجر.” لوكلين ماكدونالد، مسوِّق رقمي وكاتب إعلانات - كيف حصلت على أول عميل لك؟ "كان أول عميل لي صديقًا لأحد أصدقائي قابلته قبل عدة أعوام وظللنا على اتصال على الفيس بوك، وقد كان في حاجة إلى محرر لنص كانت تعمل عليه شركته إذ كان يعمل في مجال إنتاج الأفلام، وتواصل معي بما أنه يعرف خلفيتي في الكتابة والتحرير.” - هل لديك درس خرجت به من هذه التجربة تخبرنا به؟ "يكاد كل العمل الحر الذي أحصل عليه يأتيني من طريق مشابهة للقصة التي ذكرتُ، وبرأيي فليس مهمًا أن تكون خبيرًا بمجالك، وإنما أن تعرف أشخاصًا يريدون توظيف شخص مثلك، وهنا تكمن أهمية العلاقات مع الناس بالنسبة للمستقلين.” أماندا جويراسيو، مصممة ومفسّرة علامات تجارية - كيف حصلت على أول عميل لك؟ "كان موقع Craigslist مصدرًا جيدًا للعملاء حين بدأت العمل الحر قبل عشر سنوات، وكنت أنشر إعلانات لخدماتي إضافة إلى الرد على إعلانات الوظائف التي أراها مناسبة لي، وكنت أمشّط كثيرًا من المدن الكبرى في الولايات المتحدة وليس فقط المدينة التي أسكن بها. لقد مررت بتلك المرحلة التي أرسل فيها إلى عشر عملاء وﻻ أتلقى ردًا إلا من واحد فقط، لكن ذلك الأسلوب أتى لي بأول بضعة عملاء ﻻ زال أحدهم عميلًا لي، رغم مرور عشر سنوات من أول عمل لنا معًا.” - هل لديك درس خرجت به من هذه التجربة؟ "أحيانًا تضطر إلى إرسال الكثير من الرسائل والعروض والاستعلامات كي تبدأ العجلة بالدوران، ربما تكون قد سمعت هذه النصيحة من قبل، لكن الأمر مجرد أرقام في حقيقته. أيضًا، فإن وجود موقع مميز لك -ليس حسابًا في فيس بوك أو بيهانس … إلخ- لهو نقطة كبيرة في صالحك من منظور العميل المحتمل.” إيرين فتزجيبن، كاتبة ومصوّرة - كيف حصلت على أول عميل لك؟ "إنني أرى الكتابة والتصوير زوجان ﻻ يفترقان، ولقد وقعت على الكتابة الحرة قدرًا إذ اشتركت في منحة صغيرة للأعمال ووظّفتني مرشدتي كي أكتب عن كرة القدم النسائية في كندا وأصور منها بعض المشاهد. وقد نصحتني أن أتواصل مع المجلات لأعرض خدمات الكتابة والتصوير معًا من أجل أن أزيد من فرصة قبول الناشرين لخدماتي، وساعدتني درجتي الجامعية في اللغة الإنجليزية على صقل مهاراتي.” - هل لديك درس خرجت به من هذه التجربة؟ "تعلّمت أن هناك الكثير من البرامج التي يمكنها أن تساعد رواد الأعمال على أن ينجحوا، وتعلّمت أن المرء يجب أن يستغل كل الفرص التي تأتي أمامه، فاقصد مركز الأعمال المحلّي في مدينتك واحرص على أن تستفيد من أولئك الناس الرائعين الذين ستقابلهم.” جولي، مسوّقة في LiuPierre - كيف حصلت على أول عميل لك؟ "بدأت في تقوية علاقاتي حين قررت أني سأترك وظيفتي، وتواصلت مع كل معارفي أخبرهم أني سأترك وظيفتي وأني سأكون متاحة للعمل بدوام جزئي. فتواصلت معي زميلة سابقة لي قائلة أن لديها عميلة في حاجة إلى من ينفّذ لها أعمالًا، وهكذا وقّعت على أول شراكة لي بعد بضع مقابلات.” - هل لديك درس خرجت به من هذه التجربة؟ "ﻻ تخشَ من طلب المساعدة” ميشيل زابوروجتز، مديرة شبكات اجتماعية - كيف حصلت على أول عميل لك؟ "لقد حصلت على أول عميل لي من خلال صفحة اﻷخبار في حسابي في فيسبوك!ن فقد نشر أحد أصدقائي من الجامعة منشورًا عن وظيفة تسويق حرة، وقد أوصى بي لمدير التوظيف، وحصلت على الوظيفة بعد اتصالين هاتفيين!” - هل لديك درس خرجت به من هذه التجربة؟ "ابحث في أي مكان عن الوظائف الحرة، لا أعرف كيف أشدّد أكثر على هذه النقطة، فإن انتشار العمل الحر يزيد يومًا بعد يوم، وإن الشركات ﻻ تهمل ذلك التوجه هذه الأيام، وقد وجدت وظائف حرة في كل مكان، من فيس بوك إلى CloudPeeps إلى لينكدإن، فكل ما عليك أن تبحث بعمق في كل موقع توظيف.” أكشاي ساكديفا، مستشار تسويق - كيف حصلت على أول عميل لك؟ "كنت جديدًا على عالم العمل الحر، فقد كنت أسافر كثيرًا وأردت أن أجد أول عميل لي بأسرع ما يمكن لتمويل أسفاري ولدفع فواتيري، فسجلت في منصات عمل حر كثيرة لكن لم أحصل على عملاء في أي منها، ووجدت الوظائف المتاحة فيها ذات أجور زهيدة. ثم سجّلت في CloudPeeps، وبدأت في وضع عروضي لكن لم أحصل على عملاء أيضًا، فجربت التواصل في مجتمع CloudPeeps على فيس بوك، وتحدثت مع ديفيد هاثاويي وأخبرته أني أبحث عن وظيفة، فأعطاني بعض النصائح لتطوير ملفي الشخصي، فطبّقتها مباشرة. وتواصل معي مرة أخرى بعدها بأيام قائلًا أن لديه عميلًا يبحث عن كاتب، وليس لديه وقت للعمل معه، وسألني ما إن كنت مهتمًا باﻷمر، فوافقت ﻻ شك.” - هل لديك درس خرجت به من هذه التجربة؟ “تواصل مع زملائك المستقلين وابحث عن فرص للمشاركة، واحرص على أن يكون معرض أعمالك مميزًا” ماريا ثومبسون، مخطِّطة تسويق بالمحتوى وكاتبة إعلانات - كيف حصلت على أول عميل لك؟ "كان أول عميل لي هي مدرِّبتي الصحية التي تعاقدت معها لبضعة أشهر، وكنا قد تحدثنا في مناقشات سريعة عن محتوى موقعها وتصميمه، ولما عرفت أني سأتجه للعمل الحر أرادت أن نعمل معًا.” - هل لديك درس خرجت به من هذه التجربة؟ "احرص على أن تطلب نقدًا من عملائك حين ينتهي المشروع، فمن السهل أن تنزع يدك من مشروع لتضعها في المشروع الذي يليه، لكن ذلك الوقت الذي تقضيه بعد كل مشروع في مثل هذا النقد يطوّر من مهاراتك في المستقبل، كما أن الأمر يقوّي أواصر العلاقة بينك وبين عميلك. واحرص كذلك على تجميع بيانات تستخدمها في كتابة دراسة حالة لذلك المشروع، فهذا سيخبر عملاءك المحتملين في المستقبل عن أعمالك بشكل أكثر وضوحًا.” وهكذا، من إعلانات Craigslist إلى فيس بوك، هناك الكثير من الطرق التي يمكن أن تحصل بها على عميلك الأول، خاصة إن كنت تفكر خارج الصندوق. وإنني أتمنى أن تكون هذه القائمة قد أعطتك بعض الأفكار العملية التي يمكنك تطبيقها للحصول على عملاء جدد. ترجمة -بتصرف- لمقال Eight freelancers reveal how they got their first client لصاحبته Amy Rigby حقوق الصورة البارزة محفوظة لـ FreeVector
  10. Django هو إطار عمل مرن يستخدم ﻹنشاء تطبيقات بلغة بايثون، وهذه التطبيقات مُجهزة تلقائيًا لتخزين البيانات في ملف قاعدة بيانات SQLite خفيف ويعمل بشكل جيد في الاستعمالات العادية والصغيرة، لكن استخدام نظام إدارة قواعد بيانات تقليدي سيطوِّر أداء التطبيق تحت ضغط زيادة المستخدمين أو زيادة حجم البيانات. وسنستعرض في هذا الدرس كيفية تثبيت وتهيئة PostgreSQL لاستخدامها مع تطبيقات Django، وسنثبّت الحزم اللازمة وننشئ اعتماديات قاعدة البيانات للتطبيق، ثم نبدأ مشروع Django جديد ونجهّزه ليستخدم هذه اﻹعدادات. المتطلبات خادم يعمل بتوزيعة أوبنتو 16.04 مع مستخدم -غير الجذر- له صلاحية 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، لكن من اﻷفضل طبعًا أن تختار اسمًا يصلح لمشروع حقيقي. ملاحظة: تذكر أن تنهي كل الأوامر في محث SQL بفاصلة منقوطة ; postgres=# CREATE DATABASE myproject; أنشئ مستخدمًا لقاعدة البيانات، وسنستعمله للاتصال بقاعدة البيانات والتفاعل معها، وﻻ تنسَ أن تستبدل myprojectuser باسم قاعدة البيانات الذي اخترته، وتغيّر password بكلمة سر قوية: postgres=# CREATE USER myprojectuser WITH PASSWORD 'password'; واﻵن سنعدّل بعض معاملات الاتصال لهذا المستخدم لتسريع عمليات قاعدة البيانات بما أن القيم الصحيحة لن تضطر إلى أن تمر بعمليات استعلام وضبط في كل مرة يحدث اتصال. فسنضبط الترميز الافتراضي على 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'; وكل ما نحتاجه الآن هو إعطاء مستخدم قاعدة البيانات صلاحيات الوصول لقاعدة البيانات التي أنشأناها للتو: postgres=# GRANT ALL PRIVILEGES ON DATABASE myproject TO myprojectuser; اخرج الآن من محث SQL: postgres=# \q تثبيت Django في بيئة افتراضية يمكننا تثبيت Django الآن بما أن قاعدة بياناتنا قد صارت جاهزة، وسنثبته وكل اعتمادياته داخل بيئة بايثون افتراضية لتحقيق مرونة أكثر، وستتيح لنا حزمة virtualenv إنشاء هذه البيئات بسهولة. اكتب هذا السطر في الطرفية لتثبيت virtualenv إن كنت تستخدم Python 2: $ sudo pip install virtualenv وهذا إن كنت تستخدم Python 3: $ sudo pip3 install virtualenv أنشئ مجلدًا جديدًا باسم مشروعك (استبدل اسم مشروعك بـ myproject الذي اخترناه هنا لغرض المثال فقط)، ثم انتقل داخله: $ mkdir ~/myproject $ cd ~/myproject اكتب السطر التالي لإنشاء بيئة افتراضية لتخزين متطلبات بايثون لمشروع Django الخاص بنا: $ virtualenv myprojectenv وذلك سيثبّت نسخة محلية من بايثون وأمر pip محلي داخل مجلد اسمه myprojectenv داخل مجلد مشروعك. نحتاج الآن إلى تفعيل البيئة الافتراضية قبل تثبيت البرامج داخلها، ويمكننا فعل ذلك عبر الأمر التالي: $ source myprojectenv/bin/activate سيتغير المحثّ الآن ليشير إلى أنك تعمل الآن داخل بيئة افتراضية وسيبدو شبيهًا بهذا: (myprojectenv)user@host:~/myproject$ ويمكننا الآن تثبيت Django باستخدام pip، ثم سنثبت psycopg2 التي ستتيح لنا استخدام قاعدة البيانات التي أعددناها: (ﻻحظ أنه يجب استخدام أمر pip وليس pip3 داخل البيئة الافتراضية بغض النظر عن نسخة بايثون التي لديك) (venv) $ pip install django psycopg2 يمكننا الآن أن نبدأ مشروع Django داخل مجلد المشروع (myproject في حالتنا)، وسينشئ هذا مجلدًا فرعيًا بنفس اسم مجلد المشروع ليحتوي الشفرة البرمجية، إضافة إلى مخطوطة إدارية "management script” داخل المجلد الحالي، ﻻ تنس إضافة النقطة التي في آخر الأمر التالي كي ﻻ يُنشأ مستوى فرعي جديد في المجلد: (venv) $ django-admin.py startproject myproject . سنضبط الآن مشروعنا ليستخدم قاعدة البيانات التي أنشأناها، افتح ملف الإعدادات الرئيسية لمشروع Django الموجود في المجلد الفرعي للمشروع: (ملاحظة: استبدل مشروعك بـmyproject) (myprojectenv) $ nano ~/myproject/myproject/settings.py ستجد قسم DATABASE في نهاية الملف، وسيبدو مشابهًا لهذا: . . . 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': '', } } . . . وبما أننا في الملف، فقد تحتاج إلى تعديل تعليمة 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', . . .] واﻵن احفظ الملف وأغلقه. نقل قاعدة البيانات واختبار مشروعك يمكننا الآن نقل هياكل البيانات -بما أننا أنهينا ضبط إعدادات Django- إلى قاعدة بياناتنا واختبار الخادم. سنبدأ بإنشاء هيكل ابتدائي لقاعدة البيانات بما أننا ﻻ نملك أي بيانات حقيقية بعد: (myprojectenv) $ cd ~/myproject (myprojectenv) $ python manage.py makemigrations (myprojectenv) $ python manage.py migrate أنشئ حسابًا إداريًا: (myprojectenv) $ python manage.py createsuperuser وسيطلب منك النظام اختيار اسم لمستخدم هذا الحساب وعنوان بريد وكلمة مرور له. انتبه هنا إلى أنه يجب فتح المنفذ الذي سنستخدمه في الجدار الناري كي نتمكن من الدخول إلى خادم تطوير Django، إن كنت تستخدم UFW فإن فتح المنفذ المناسب يتم بكتابة هذا الأمر: (myprojectenv) $ sudo ufw allow 8000 وبمجرد أن تفتح المنفذ يمكنك اختبار عمل قاعدة البيانات بتشغيل خادم Django: http://server_domain_or_IP:8000 يجب أن ترى صفحة index الافتراضية: ضعadmin/ في نهاية الرابط، يجب أن يدخلك هذا لشاشة تسجيل الدخول إلى واجهة التحكم: أدخل اسم المستخدم وكلمة المرور اللتان أنشأتهما قبل قليل باستخدام createsuperuser، فتدخل إلى لوحة التحكم: وبدخولنا للوحة التحكم نكون قد تأكدنا أن قاعدة البيانات قد خزّنت معلومات حساب المستخدم الخاص بنا ويمكننا الدخول إليه دون مشاكل. يمكنك الآن إيقاف الخادم حين تنتهي من تحققك بالضغط على ctrl-c داخل شاشة الطرفية. الخلاصة قد عرضنا في هذا الدليل كيفية تثبيت وإعداد PostgreSQL كقاعدة بيانات في النهاية الخلفية لمشروع Django، إذ تستفيد أغلب المشاريع من استخدام نظم إدارة متطورة لقواعد البيانات، رغم أن SQLite تتعامل بشكل جيد أثناء تطوير المشروع وأثناء الاستخدام الخفيف له. ترجمة -بتصرف- لمقال How To Use PostgreSQL with your Django Application on Ubuntu 16.04 لصاحبه Justin Ellingwood.
  11. إن بحثًا سريعًا في جوجل عن "Working from home” سيعطيك نتائج متباينة من شخص جالس على الأرض محاطًا بحيوانات أليفة إلى أشخاص يحملون أطفالهم أثناء تلقي مكالمات هاتفية، أو يرتدون ملابس النوم أثناء العمل. وصحيح أن كثيرًا من هذه الأمور ﻻ يمكنك فعلها دومًا في شركة عادية ذات مكتب تقليدي، إﻻ أن ما تحاول هذه الصور أن ترسمه هو أن الناس تربط العمل عن بعد بالحرية، سواء حرية ارتداء ما تريد، أو حرية قضاء وقت أكثر مع عائلتك، أو حتى حرية التواجد حول حيوانات أليفة، إن كان هذا ما تريده! وأميل إلى أن العمل عن بعد وخاصة من المنزل يتيح حرية أكبر من المكتب التقليدي، لكن من منظور آخر، فإن ذلك النمط يحتاج إلى تحكم في النفس وحدودًا للعمل، على عكس العمل من مساحات العمل المشتركة أو المقاهي حيث يمكنك الفصل بين المنزل والعمل. أضف إلى هذا أن العمل من المنزل يعني أن من السهل قضاء اليوم كله في السرير، وهذا ما يفعله بعض الناس وفقًا لدراسة وجدت أن 80% من العاملين الشباب يعملون وهم في أسرّتهم. وقد تجنبت ذلك النمط طيلة حياتي المهنية حتى الآن، فوضعت قاعدة لنفسي حين بدأت العمل في Buffer أني لن أعمل أبدًا في السرير، وسأوضح لك في هذا المقال ثلاثة أسباب لهذا. 1. غرفة النوم لن تكون مريحة من الجيد أن تأكل في مكان ﻻ ترتاح فيه، وتنام في مكان ﻻ تعمل فيه، فقد عملت فترة من شقتي واستطعت أن أخصص مساحات مختلفة للأكل والعمل والنوم، رغم أن العمل وتناول الطعام في مكان واحد كان ليكون أسهل بكثير. ويؤكد قسم طب النوم في هارفارد فكرة أن العمل يجب ألا يكون من نفس المكان الذي تنام فيه، فيقولون "إبقاء الحواسيب وأجهزة التلفاز ومواد العمل خارج غرفة الراحة سيزيد من العلاقة بين النوم وغرفة النوم في ذهنك". ذلك يعني أنك إن كنت تعمل من سريرك فسيصبح من الصعب عليك أن تنام بينما ﻻ يزال عقلك يظن أنك في مكان للعمل. 2. الفصل بين العمل والمنزل قد يصعب التفرقة بين عملك وحياتك العادية إن كنت تعمل من المنزل ما لم تغادره إلى مقهى أو مساحة عمل مشتركة، ذلك أن مكان العمل والراحة قريبان من بعضهما، فمن السهل أن تخلط الاثنين معًا، رغم أن الأفضل طبعًا ألا تفعل. فوفقًا لدليل من مراجعات أعمال هارفارد HBR لزيادة إنتاج الفرد العامل:“قد تبدأ في الإحساس أنك دومًا في العمل، وتفقد مكانًا تخصصه كبيت لك". ذلك أن كونك "دومًا في العمل" ليس فكرة سديدة لحياة متوازنة، فهذا سبب آخر لكي تبقى بعيدًا عن السرير أثناء العمل، مع الحفاظ على تخصيص مساحة للعمل وأخرى للراحة. 3. قلة جودة النوم إن عملي من السرير يعني أني أصطحب حاسوبي المحمول أو هاتفي أحيانًا إلى السرير، وأكاد أجزم أن هذا يحدث لكثير من الناس من أمثالي أيضًا، لكن هذا سيؤثر سلبًا على جودة نومي، فالعمل قبل النوم مباشرة -خاصة مع النظر إلى شاشة زاهية- يقلل الميلاتونين الذي تحتاجه للنوم، هذا يعني أنك ستعاني أكثر من أجل نوم أفضل، ومن ثمّ سيتأثر إنتاجك في اليوم التالي. فهذه تعد معادلة خاسرة من كلا الطرفين، إذ أنك ستخسر حياتك العملية بسبب قلة إنتاجك، وراحتك في المنزل بسبب سوء نومك. ما يجب أن تفعله بدلًا من العمل من السرير هناك الكثير من الأمور التي يمكننا فعلها لتجنب العمل من السرير مع الحفاظ على نوم صحي وضمان إحساسنا بالراحة في منازلنا، ولزيادة إنتاجنا في اليوم التالي، إليك اثنين من هذه الأمور: 1. احفظ أجهزتك بعيدًا عن السرير ﻻ تحضر هاتفك أو حاسوبك المحمول إلى سريرك كي ﻻ تضطر إلى العمل من هناك، ذلك يعزز في نفسك أهمية خلق مساحة لسريرك وغرفة نومك ﻻ ينازعها العمل. وهكذا تنام بشكل أفضل وتفصل بين العمل والمنزل، كي ﻻ تشعر أنك تعمل طول اليوم. 2. أنشئ مساحة خاصة للعمل بما أن العمل ﻻ يجب أن يكون في سرير نومك كما ذكرنا مرارًا هنا، فإن المنطق يقتضي أن يكون له مساحة خاصة به، ولو كانت في منزلك، فقد تكون منطقة في المنزل أو مجرد منضدة، وإن كان الفصل صعبًا عليك في حالتك، فربما يحسن بك أن تبحث في مقهى قريب أو مساحة عمل مشتركة كي تساعدك على تحقيق هذا العازل بين المنزل والعمل. مزيد من نصائح العمل عن بعد لقد صممنا هذا المقال ليكون مصاحبًا لدليل تريللو : كيف تقدّر العمل عن بعد، فألق نظرة عليه للاطلاع على خطط جديدة لتنظيم العمل عن بعد. واعلم أن نومًا سليمًا يعني إنتاجية أكثر في اليوم التالي ونشاطًا أكبر كذلك، إضافة إلى أن ذلك أساسي لمن يعملون عن بعد على المدى البعيد لتحقيق هذا العازل الذهني والجسدي بين المنزل والعمل. هل جربت أن تعمل من سريرك أنت أيضًا؟ أحب سماع خواطرك حول الأمر، وعن أي طريقة تتبعها للفصل بين راحتك وعملك في التعليقات هنا! ترجمة -بتصرف- لمقال The Science Behind Why We Should Never Work From Bed لصاحبته Hailley Griffis حقوق الصورة البارزة محفوظة لـ Freepik
  12. تستخدِم محركات البحث تقنية بحث النصوص الكاملة (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
  13. تبدو فكرة العمل عن بعد أثناء الترحال مثيرة وشيقة، وطريقة مغامرة لكسب الرزق، لكن هناك جانب مظلم لها أيضًا يجب أن أذكره. إذ أن التحدي الأساسي الذي تواجهه كونك تريد تجربة هذا النمط من الحياة هو أنك ستخرّب روتينك اليومي تمامًا، إضافة إلى أن الإغراءات تنتظرك خلف كل منعطف، تريدك أن تضحي بصحتك في مقابل جرعة صغيرة من المرح أو المتعة. والطريقة الوحيدة التي تكافح بها نظامًا يتكالب عليك هكذا هو باستخدام حيل تسمح لك بالتحكم في هذه اللعبة كي تتمكن من تناول كعكتك أو باد ثاي إن شئت! 4 طرق للحفاظ على صحتك كرحالة رقمي 1. اجعل روتينك الرياضي ﻻ يعتمد على معدات خاصة ليس بخافٍ على أحد أنك تشعر بثقة أكبر في نفسك وبطاقة أكثر إن كانت صحتك أفضل، بل تشعر أن حياتك كلها تبدو أفضل، فيجب أن يكون الحفاظ على صحتك أولوية سواء كنت في المنزل أو بعيدًا عنه. تخصص بعض الفنادق صالات رياضية فيها، لكن قد ﻻ تجد ذلك إن كنت تستأجر عبر خدمة مثل Airbnb، فأفضل حل حينها لاتباع نظام صحي رياضي أثناء سفرك هو أن تجعله غير معتمد على صالة رياضية. وأفضّل شخصيًا أن أخصص برنامجًا من ثلاثين دقيقة يتضمن تمارين تعتمد على أثقال الجسد – مثل تمارين ضغط الذراعين والفخذين-، وتمارين أخرى ﻻ تحتاج إلى معدات، وأنفّذها في غرفتي أو في منتزه قريب أول شيء في الصباح، وحقيقة هذا أفضل شيء تبدأ به يومك. وإن كنت لم تجرب تمارين أثقال الجسد من قبل، فأنصحك بكتاب مارك لورين في هذا الشأن وتطبيقه المصاحب له أيضًا من متجر هاتفك. 2. تمرّن على وضعيات صحيحة للظهر والرقبة نحن نعرف الآن جيدًا أن الجلوس يقتلنا، فالوضعيات الخاطئة ﻻ تسبب الآلام فقط، بل تتسبب فعلًا في مقتلك، فحين تكون على سفر فإنك تجد نفسك متنقلًا بين المقاعد غير المريحة على الطائرات وفي الفنادق والمقاهي، وسيكون الأمر مسألة وقت فقط حتى تعاني مشاكل الرقبة أو الظهر. وإليك بعض النصائح للحفاظ على رقبتك وظهرك أثناء السفر: في الطائرة: لا تجلس إﻻ للنوم، أما باقي الوقت فقف ما استطعت في مؤخرة الطائرة -حين يكون إشعار حزام اﻷمان مطفأً، واستغل هذا الوقت في قراءة كتاب أو الاستماع إلى كتاب صوتي أو بودكاست. فوضعية الوقوف تسمح بالتمدد والتمرّن، فبعض تمارين القرفصاء ستحافظ على مرونة جسدك حين تصل إلى وجهتك. في العمل: يقول سام كروس، مؤسس Proxyrack أن نمط العمل الخاطئ وما تبعه من آلام في الرقبة والظهر قد أثّر على نومه ومزاجه وإنتاجه بشكل عام، فتصبح الحياة أصعب بشكل عام. والحل الذي يقترحه هو تجنب الجلوس أو العمل حين تكون بيئة العمل غير مناسبة، وهو يعمل من الفنادق ومساحات العمل المشتركة التي يمكنه أن ينصب فيها مكتبًا محمولًا يعمل عليه واقفًا، انظر الصورة: مكتب محمول كهذا يمكن أن يخفف بعض الآلام التي تأتي من السفر والعمل في ظروف غير مريحة. مرونة الجسد: قد يتسبب الجلوس الطويل في الطائرات والسيارات في آﻻم مزعجة في عضلاتك، وللتغلب على ذلك، احمل كرة تنس في حقيبتك أو كرة مساج صلبة، تستخدمها حين تصل إلى وجهتك، فتستلقي عليها كي تضغط بدورها على عضلاتك لتحررها من تشنجها، وكأنك أحضرت معالجك الشخصي معك! 3. ﻻ تأكل كأنك دومًا في إجازة سترى أن الطعام لمن يسافر كثيرًا يمثّل أحد الأمور المحببة إليه، لكنه كابوس مزعج أحيانًا حين ﻻ تستطيع الحصول على طعام صحي وطازج، وإليك بعض النصائح للحفاظ على حمية صحية أثناء سفرك: أعدّ طعامك بنفسك: تقول كريستي ثومبسون، عضو فريق الدعم في Help Scout، ورحّالة رقمية "الاستمتاع بالمطبخ المحلي هو الجزء المرِح والمسلّي في السفر، لكن إعداد بعض وجباتك على الأقل بنفسك يوفر عليك مالًا وييسّر عليك تناول طعام صحي". خذ طعامك معك: قد تكون وجبة الإفطار أمرًا صعبًا في البلاد التي تحب أن تبدأ يومها بطبقة كثيفة من الزيت، فأنا مثلًا أحب اصطحاب الموسلي -طعام من الحبوب والفواكه مع اللبن- معي، حيث أمزجه بالفواكه المحلية. وبشكل عام، إن كنت تقيم في فنادق تقدم إفطارًا مجانيًا، حاول أن تأخذ حصة جيدة من البروتين والفواكه كي تعينك على الاستمرار في يومك بنشاط 4. حافظ على صحتك العقلية ﻻ يمثّل اعتناؤك بجسدك إﻻ نصف المعادلة فقط، فلا تنسى أن السفر يأخذ ضريبة أيضًا في صورة الإجهاد الذي ينتج من تغير مخططاتك، وحواجز اللغة، وجودة الإنترنت السيئة في الفنادق، … . وإن الأمر يحتاج تخطيطًا حتى لمن في المنزل كي يحافظوا على سلامتهم العقلية، إليك بعض النصائح: التزم بجدول نوم: يجب أن تجرب الحصول على سبع ساعات من النوم كل ليلة وفقًا لعيادة Mayo، واذهب إلى فراشك في نفس التوقيت أو قريب منه كل يوم. وإن هذا الكلام سهل لكنّ تطبيقه صعب إن كنت تعاني من أثر السفر الناتج من اختلاف التوقيتات المحلية، واجتماعاتك مع العملاء، ومواعيد تسليم أعمالك، لكن حاول بقدر إمكانك أن تنظم جدول نوم، فهو يستحق الجهد الذي ستبذله في الالتزام به. صمم بيئة هادئة: قد تكون بعض غرف الفنادق مزعجة بشكل كبير، لذا أصطحب زوجًا من سدادات الأذن كي أضمن الحصول على بيئة تساعدني على النوم. كذلك من المفيد أن تتوقف عن النظر إلى شاشاتك -هاتفك، حاسوبك، إلخ ...، قبل ساعة أو اثنتين من نومك، وأسدل الستائر أيضًا كي لا يزعجك النور أثناء نومك، فإن لم تستطع فاجعل معك قناعًا لعينك تلبسه أثناء النوم. التعامل مع القلق: حاول تصفية ذهنك كل يوم بالطريقة التي تناسبك، إذ أجد أني أتأثر كثيرًا بالمحفزات التي أقابلها أثناء العمل في السفر، لهذا أحاول تصفية ذهني كل ليلة لمدة عشرين دقيقة، وأستخدم تطبيق Headspace أو أستمع إلى بعض الضوضاء البيضاء، إضافة إلى أن الضوضاء البيضاء مفيدة أيضًا في العمل في الأماكن ذات الأصوات العالية. حافظ على صحتك لتبقى سعيدًا صحيح أن كثيرًا من جوانب الحياة تخرج عن نطاق سيطرتنا، وهذا صحيح أثناء العمل في السفر وأثناء الترحال أيضًا، ما بين تأخيرات الرحلات الجوية إلى اختلاف المناطق الزمنية إلى إجهاد السفر وغيرهم، وليس لدينا سوى تقبل ذلك ومحاولة التعايش معه بأفضل صورة ممكنة. وأفضل ما يمكنك فعله للحفاظ على صحتك العقلية والجسدية هو تسكين تلك المجهِدات في الحياة على الطريق، كي تنجز أعمالك بكفاءة وتستمتع بالترحال والمغامرة أيضًا. كيف تحافظ أنت على صحتك وسعادتك إن كنت تعمل عن بعد؟ أخبرنا في التعليقات! ترجمة -بتصرف- لمقال How to maintain your health as a digital nomad لصاحبه James Moore
  14. 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
  15. أنا أقابل عددًا ﻻ حصر له من الناس وأحظى معهم بنقاشات عمل رائعة بحكم عملي المستقل، وقد صار كثير من هؤلاء الناس من عملائي، ثم أصبح بعض هؤﻻء أصدقاء لي. ولعلك تعلم أن كونك مستقلًا يعني أيضًا أن تكون المساعد الشخصي لنفسك -إﻻ إن وظّفت واحدًا طبعًا-، والمحاسب وربما المحامي أيضًا -رغم أني أنصحك بشدة أن تستشير محاميًا متخصصًا إن أمكنك-، فالشاهد أن ذلك يعني قضاء ساعات وربما أيام بين الرسائل البريدية التي تناقش المشاريع ومواصفاتها وأبعادها، وبين مكالمات سكايب أو الاجتماعات الحقيقية وكتابة العقود وتوقيعها، كل ذلك قبل أن أصل إلى الجزء الذي أحسنه، وهو كتابة الشفرة البرمجية. وإنني أعرف كثيرًا من المطورين الذين لا يفضّلون هذه الأبعاد “غير البرمجية” من حياتهم المهنية أو من كونهم مبرمجين، لذا يلجأ بعضهم إلى توكيل أحد لمعالجة “مرحلة اﻻحتكاك بالعميل” كما تسمّى، ﻻ عجب أن توجد خدمات قائمة على هذا النموذج الربحي خاصة. ومبدأ هذه الخدمات بسيط ومباشر، وهو إيجاد عميل ومستقل مناسبين لبعضهما ومعالجة مرحلة الاحتكاك الأولي بينهما، هذا يعني أن الشركات التي تريد مستقلين (مطورين، مصممين، .. إلخ) ليس عليها أن تبحث عنهم بنفسها، فتلك الخدمات الوسيطة تقدم لهم المطور المناسب الذي سيلبي احتياجاتهم من مجتمع من المطورين الموهوبين الذين جمعتهم تلك الخدمات. وليس على ذاك المطور أن يشغل باله بمواصفات المشروع ونقاشاته، بل يقفز مباشرة إلى العمل بمجرد موافقته على المواصفات المذكورة في المشروع. وتعتمد هذه الخدمات على أسلوب التسعير بالساعة -في نطاق معيّن من الأسعار عادة-، من أجل جعل عملية تقدير تكلفة المشاريع مباشرة و”حسابية”. وقد تواصلت معي ممثلة لإحدى هذه الشركات الخدمية لتعرض علي أن أكون جزءًا من مجتمع الموهوبين لديهم من المطورين المستقلين، وتعدني بالمشاريع العظيمة مع نطاق واسع من الشركات الكبيرة والصغيرة على السواء، كل ذلك بينما أركّز أنا على العمل الأساسي في المشروع دون أن أشغل نفسي بمفاوضات المشروع مع العميل ﻷنهم سيقومون بذلك عني. ثم أعطتني نبذة عن الشركة وطريقة عملها، وكيف يتم اختيار وترشيح أعضاء مجتمعهم قبل أن يوظفوهم فعليًا، وعرضت علي فرصة الانضمام إلى هذا المجتمع، وهو إطراء أقدّره كثيرًا ﻷنهم يختارون الأشخاص الذين يرون فيهم مهارة عالية في مجالاتهم كي يقدّموهم إلى العملاء. وبعيدًا عن النموذج الربحي الذي ﻻ أتّبعه شخصيًا في عملي، فإن السبب الرئيسي الذي جعلني أرفض هذا العرض هو أنهم يعدونني بمعالجة الاحتكاك بيني وبين العملاء المحتملين، إذ أني ﻻ أريد تخطي تلك المرحلة أصلًا، بل على العكس تمامًا، فأنا أحبها. صحيح أن ذلك يعني مزيدًا من الساعات التي سأقضيها في المناقشات وساعات أقل للعمل، لكني أعدّ هذا جزءًا أساسيًا من حياتي في العمل المستقلّ، وهو الطريق الذي اخترته لنفسي قبل سنوات ولم أنظر للوراء ثانية بعدها، وتلك الساعات التي تقضيها في الحديث مع العملاء هي أحد الوسائل التي يمكنك أن تطوّر نفسك من خلالها كمستقل وكإنسان أيضًا. وأنا أحب الحديث إلى عملائي والاجتماع بهم في سكايب، أتعرف عليهم وعلى أهداف شركاتهم ومشاريعهم، وأسمعهم يتحدثون عن مشاريعهم بشغف ولماذا اختاروها وأين يريدون أن يصلوا بها، والأهم من ذلك كله هو سماعهم يذكرون السبب الذي جعلهم يختارون العمل معي لمساعدتهم على تحقيق هذه الأهداف، وذلك كله كنت سأفقده لو وافقت على العمل من خلال تلك الشركة الخدمية آنفة الذكر. إضافة إلى أن الحديث مع عملائي له أبعاد أكثر من احتياجات المشروع، فقد كنت على تواصل دائم وثابت مع الفرق التي تعمل على المشاريع التي أعمل عليها، من المصممين إلى المبرمجين من أمثالي وحتى المدراء التنفيذيين، ونتواصل عبر قناة Slack مثلًا، ونخصصها لمناقشة تفاصيل المشروع، وطبعًا فإن طبيعة عملي في المشروع تتعدى مجرد تحويل التصميم إلى شفرة برمجية، فهناك نقاشات حول تصميم تجربة الاستخدام من حيث علاقتها بملائمتها لشرائح العملاء المختلفة مثلًا. إن أحد الأسباب التي تجعل الشركات الوسيطة تعتمد أسلوب التسعير بالساعة هو أنهم يريدون إراحة المستقلين والعملاء على حد سواء من الإرهاق الذي ينتج من تغيرات أبعاد ومواصفات المشروع، لكن ذلك لم يكن مصدر قلق لي، ذلك أني أتواصل مع العميل وأتحدث معه مباشرة. بل إن هذا “الاحتكاك” هو ما يجعلني أتناقش مع العميل بكل حرية بما في ذلك مناقشة مستقبل المشروع، واحتمال تدخلي في مراحله المختلفة، وهو ما جعلني أصل إلى العمل مع عملاء مثل Provata مرة بعد مرة على مر السنوات الفائتة، وقد كان واضحًا بين وبين عملائي أن أي تغير في أبعاد ومواصفات المشروع ينعكس على العقد بيننا، ويحدث ذلك بسلاسة ﻷننا تناقشنا مسبقًا حول احتمال حدوث هذا من أول تواصلنا في المشروع، أثناء مرحلة “الاحتكاك” إن شئت أن تسمّيها. ﻻ تتوقع أن تنمو علاقة ما إن كنت تبني حائطًا بينك وبين الشخص الذي معك في تلك العلاقة، وذلك صحيح في حالة علاقات العمل كما هو صحيح في العلاقات الشخصية، فالعمل مع عملاء ﻻ أستطيع مناقشة تفاصيل المشروع معهم ولا أستطيع التواصل معهم لن يسمح لي أبدًا أن أكوّن صداقات مع الأشخاص الذين يعملون في الناحية الأخرى من المشروع، لكن العمل مع أشخاص مختلفين على مشاريع مختلفة هو أحد اﻷبعاد التي أفضّلها في عملي المستقل، وهو أحد الأسباب التي جعلتني أتجه إلى هذا النمط من العمل قبل سنوات من الآن، بدلًا من العمل لصالح شركة كبيرة. وربما تعرف ذلك الشعور بالوحدة الذي يخيم على نمط عملك وأنت تجلس خلف شاشة تتحدث إلى أشخاص يجلسون خلف شاشات أخرى في مكان آخر من العالم، وقد يخفف عنك هذه الوحدة ذهابك للمؤتمرات التي تهتم بمجالك وحديثك إلى أشخاص يشاركونك نفس الاهتمامات، لكن ذلك يحدث بضع مرات في العام، ما يجعل بنائي لحائط بيني وبين العملاء الذين يمثّلون فرصة للاختلاط بالناس -ولو من وراء شاشة- أمرًا لا أستطيع تحمله، فإن هذا أشبه بآلة شفرة برمجية تحصل على معطيات (تفاصيل المشروع)، وتنتج مخرجات (الشفرة البرمجية) بشكل يومي، دون الجانب الإنساني من هذا العمل. لذلك فإن كل ما وعدتني به تلك الشركة الخدمية لم يكن يمثّل مصدر قلق لي إطلاقًا، ولهذا رفضت عرضها للانضمام إلى مجتمعها. لكن مع هذا، فإني ﻻ أقصد تقليل قيمة ما تقدّمه هذه الشركات الوسيطة، بل على العكس، فأنا أدرك كيف تكون مثل تلك الشركات مفيدة للغاية إن كان المستقل يقدر أجره بالساعة، إذ يمكنه العمل على أكثر من مشروع في نفس الوقت إن خصص بضع ساعات كل أسبوع لكل مشروع، أو إن كان لديه وظيفة بدوام كامل ويريد أن يعمل بضع ساعات إضافية دون أن يرهق نفسه بتفاصيل ونقاشات حول كل مشروع. لهذا فإني أرى بوضوح كيف يمكن أن تساعد هذه الشركاتُ المستقلين على أن يعملوا أكثر ويعملوا بشكل أفضل، فربما تكون فكرة تلافي الاحتكاك بينك وبين العميل مقبولة لك من الأساس إن كنت ﻻ تحب أن تشغل نفسك بالشؤون الإدارية كثيرًا، فاﻷمر مرده إلى التفضيل الشخصي في النهاية. هل الاحتكاك مع العميل سيء لهذه الدرجة؟ كلا، قطعًا، على الأقل ليس بالنسبة إلي، فبدون ذلك الاحتكاك لم أكن لأكسب صداقات مع أولئك الأشخاص الرائعين الذين أعرفهم اليوم، لذا حاول أن تستمتع بالأمر إن كنت مستقلًا وتستخرج منه أقصى ما يمكنك. ابن جسورًا، وليس حوائط. ترجمة -بتصرف- لمقال Build Bridges, Not Walls لصاحبته سارة سويدان. حقوق الصورة البارزة محفوظة لـ Freepik