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

البحث في الموقع

المحتوى عن 'ضغط'.

  • ابحث بالكلمات المفتاحية

    أضف وسومًا وافصل بينها بفواصل ","
  • ابحث باسم الكاتب

نوع المحتوى


التصنيفات

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

التصنيفات

  • مقالات برمجة عامة
  • مقالات برمجة متقدمة
  • PHP
    • Laravel
    • ووردبريس
  • جافاسكربت
    • لغة TypeScript
    • Node.js
    • React
    • Vue.js
    • Angular
    • jQuery
    • Cordova
  • HTML
  • CSS
    • Sass
    • إطار عمل Bootstrap
  • SQL
  • لغة C#‎
    • ‎.NET
    • منصة Xamarin
  • لغة C++‎
  • لغة C
  • بايثون
    • Flask
    • Django
  • لغة روبي
    • إطار العمل Ruby on Rails
  • لغة Go
  • لغة جافا
  • لغة Kotlin
  • لغة Rust
  • برمجة أندرويد
  • لغة R
  • الذكاء الاصطناعي
  • صناعة الألعاب
  • سير العمل
    • Git
  • الأنظمة والأنظمة المدمجة

التصنيفات

  • تصميم تجربة المستخدم UX
  • تصميم واجهة المستخدم UI
  • الرسوميات
    • إنكسكيب
    • أدوبي إليستريتور
  • التصميم الجرافيكي
    • أدوبي فوتوشوب
    • أدوبي إن ديزاين
    • جيمب GIMP
    • كريتا Krita
  • التصميم ثلاثي الأبعاد
    • 3Ds Max
    • Blender
  • نصائح وإرشادات
  • مقالات تصميم عامة

التصنيفات

  • مقالات DevOps عامة
  • خوادم
    • الويب HTTP
    • البريد الإلكتروني
    • قواعد البيانات
    • DNS
    • Samba
  • الحوسبة السحابية
    • Docker
  • إدارة الإعدادات والنشر
    • Chef
    • Puppet
    • Ansible
  • لينكس
    • ريدهات (Red Hat)
  • خواديم ويندوز
  • FreeBSD
  • حماية
    • الجدران النارية
    • VPN
    • SSH
  • شبكات
    • سيسكو (Cisco)

التصنيفات

  • التسويق بالأداء
    • أدوات تحليل الزوار
  • تهيئة محركات البحث SEO
  • الشبكات الاجتماعية
  • التسويق بالبريد الالكتروني
  • التسويق الضمني
  • استسراع النمو
  • المبيعات
  • تجارب ونصائح
  • مبادئ علم التسويق

التصنيفات

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

التصنيفات

  • الإنتاجية وسير العمل
    • مايكروسوفت أوفيس
    • ليبر أوفيس
    • جوجل درايف
    • شيربوينت
    • Evernote
    • Trello
  • تطبيقات الويب
    • ووردبريس
    • ماجنتو
    • بريستاشوب
    • أوبن كارت
    • دروبال
  • الترجمة بمساعدة الحاسوب
    • omegaT
    • memoQ
    • Trados
    • Memsource
  • برامج تخطيط موارد المؤسسات ERP
    • تطبيقات أودو odoo
  • أنظمة تشغيل الحواسيب والهواتف
    • ويندوز
    • لينكس
  • مقالات عامة

التصنيفات

  • آخر التحديثات

أسئلة وأجوبة

  • الأقسام
    • أسئلة البرمجة
    • أسئلة ريادة الأعمال
    • أسئلة العمل الحر
    • أسئلة التسويق والمبيعات
    • أسئلة التصميم
    • أسئلة DevOps
    • أسئلة البرامج والتطبيقات

التصنيفات

  • كتب ريادة الأعمال
  • كتب العمل الحر
  • كتب تسويق ومبيعات
  • كتب برمجة
  • كتب تصميم
  • كتب DevOps

ابحث في

ابحث عن


تاريخ الإنشاء

  • بداية

    نهاية


آخر تحديث

  • بداية

    نهاية


رشح النتائج حسب

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

  • بداية

    نهاية


المجموعة


النبذة الشخصية

تم العثور على 10 نتائج

  1. يُخفّض الضّغط من أوقات الاستجابة من خلال تقليص حجم استجابة HTTP. يُعدُّ Gzip طريقةَ الضّغط الأكثر شيوعًا وفعاليّةً في الوقت الحاضر و عادةً ما يُقلّص حجم الاستجابة بما يقارب 70%. في عام 2009، كانت 90% من حركة البيانات على الإنترنت تعبر من خلال متصفّحات تدعم Gzip. أمّا اليوم: يمكنك القيام بذلك على خادم مبنيٍّ على Apache من خلال الملف ‎.htaccess: # BEGIN GZIP <ifmodule mod_deflate.c> AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript </ifmodule> # END GZIP يُمثّل ما سبق قائمةً بأنواع MIME التي سيُطبّق عليها الضّغط حينئذٍ. يمكنك التعديل على هذه القائمة كما ترى مناسبًا لتشمل جميع أصولك النّصيّة التي ستخدّمها: يُقدّم مشروع HTML5 Boilerplate إعدادات الخواديم لجميع الخواديم الشائعة. هذه هي نسخة المشروع لملف htaccess. <IfModule mod_filter.c> AddOutputFilterByType DEFLATE "application/atom+xml" \ "application/javascript" \ "application/json" \ "application/ld+json" \ "application/manifest+json" \ "application/rdf+xml" \ "application/rss+xml" \ "application/schema+json" \ "application/vnd.geo+json" \ "application/vnd.ms-fontobject" \ "application/x-font-ttf" \ "application/x-javascript" \ "application/x-web-app-manifest+json" \ "application/xhtml+xml" \ "application/xml" \ "font/eot" \ "font/opentype" \ "image/bmp" \ "image/svg+xml" \ "image/vnd.microsoft.icon" \ "image/x-icon" \ "text/cache-manifest" \ "text/css" \ "text/html" \ "text/javascript" \ "text/plain" \ "text/vcard" \ "text/vnd.rim.location.xloc" \ "text/vtt" \ "text/x-component" \ "text/x-cross-domain-policy" \ "text/xml" </IfModule> ترجمة -وبتصرف- للمقال Active Gzip Compression لصاحبه Chris Coyier
  2. يمثّل كلٌّ من الضّغط والتّصغيرأمرًا تقوم بتنفيذه على الأصول الموجودة في موقعك (مثل ملفات css. وملفات js.). تستطيع من خلال كِلَيهما تقليص حجم الملف وبالتّالي جعلَه أكثر فعاليّةً في عبور الشبكة بين الخواديم والمتصفّحات. بكلمات أخرى، يصبح الأداء أفضل بتقليص حجم أصولك. تمثّل الشبكة نقطةَ اختناقٍ لسرعة الويب. لهذا السّبب، يساعد تخفيض حجم الملف وتقليصه في تفادي تحميل عبء زائد على الشّبكة. لكنّهما - أي الضغط والتصغير - يختلفان عن بعضهما بوضوح. إن كنت لا تعرف هذا بالفعل، فالأمر يستحق الاطّلاع. يقوم التّصغير بأمورٍ مثل حذف الفواصل، وحذف التّعليقات، وحذف الفواصل المنقوطة غير الضّروريّة وتقليل طول الرّموز السّت عشريّة وغيرها من الأمور المشابهة. يبقى الملف شيفرةً صالحةً تمامًا. لن ترغبَ في محاولة قراءتها أو العمل عليها، لكنها لا تخرق أيًّا من القواعد. يستطيع المتصفّح قراءتها واستخدامها كما هو الحال في الملف الأصليّ. يُنشئ التّصغير ملفًا جديدًا تقومُ أنتَ باستخدامه في نهاية المطاف. على سبيل المثال، تستطيع إنشاء ملف style.css لتعمل عليه، ومن ثمّ بإمكانك تصغيره إلى style.min.css. يتحرّى الضّغط جميع المقاطع المكرّرة ويستبدلها بمؤشّرات إلى موضع الورود الأول للمقطع المعنيّ. قدّمت جوليا إيفانز Julia Evans طريقةً رائعة لفهم ما سبق (راجع منشورها والفيديو). إليك الفقرة الأولى من القصيدة: .red { color: red; } Once upon a midnight dreary, while I {pon}dered weak an{d wea}{ry,} Over many{ a }quaint{ and }curious volume of forgotten lore, W{hile I }nodded, n{ear}ly napping, su{dde}n{ly }th{ere} ca{me }a t{apping,} As{ of }so{me o}ne gent{ly }r{apping, }{rapping} at my chamb{er }door. `'Tis{ some }visitor,'{ I }mu{tte}r{ed, }`t{apping at my chamber door} - O{nly th}is,{ and }no{thi}{ng }m{ore}. وَجد gzip أن النّصّ الوارد ضمن أقواس متعرّجة هو نصٌّ مكرّر. لهذا السبب، سيُستبدل بمؤشّر يستهلك مساحةً أقل مما يستهلكه النّصّ نفسه. تظهر فعاليّة هذا الأمر في إنقاص حجم الملف، خاصّةً في حالة الشّيفرة البرمجيّة على اعتبار أنّها تحتوي بطبيعتها على الكثير من المقاطع المكرّرة. تخيّل فقط عدد مرّات ورود ‎<div في ملف HTML أو عدد مرّات ورود { في ملف CSS. يمكنك إنشاء إصدارات مضغوطة من الملفات، على سبيل المثال style.css.zip لكنّك نادرًا ما ستضطّر لذلك ولن يعرف المتصفّح ماذا يفعل بهذه الإصدارات. تتّم عمليّة الضّغط على الويب من قبل الخادم مباشرةً ذلك إذا ما قمت بإعداده للقيام بها. حالما تُطبّق الإعدادات، يحدث الضّغط تلقائيًّا ولا حاجةَ بك للقيام بأي عمل آخر. يضغط الخادم الملف ويرسله عبر الشبكة مضغوطًا. يستقبل المتصفح الملف ويفكّ ضغطه قبل استخدامه. لم أسمع قطُّ أحدًا يذكر أعباء عمليّتَي الضّغط وفكّ الضّغط، لذا سأفترض أنّها مهملةٌ وأنّ فوائدها تفوقُ أعباءها بكثيرٍ. يجري عادةً أتمتة عملية الضغط عبر أدوات البناء مثل Gulp مما يسهل عليك العملية. إليك كيفيّة تفعيل عمليّة الضّغط على خادم Apache من خلال استخدام الوحدة mod_deflate . كما يّقدّم H5BP إعدادات الخواديم لجميع الخواديم الشّائعة التي تدعم الضّغط. مثال سنستخدم ملف CSS من Bootstrap على اعتباره مرجعًا شائعًا. ستُوفّر ما يقارب 17% عند تصغير ملف CSS، أو 85% عند ضغطه أو 86% عند قيامك بكليهما. الوضع المثاليّ عند التأكد من عمل كلِّ شيءٍ كما ينبغي من خلال أدوات المطور (DevTools) موضّح كما يلي: الضّغط أكثر فعاليّة، لكنّ القيام بكليهما هو الأفضل بالمطلق. تُخفّض عمليّة الضّغط حجم الملف أكثر بخمسة أضعاف من عمليّة التّصغير. لكنّك تحصل على دفعة صغيرة إضافيّة عند القيام بالتّصغير أيضًا. هناك أيضًا دليلٌ على أنّ المتصفّحات تقرأ وتحلّل الملف المُصغّر أسرع: شرَعَت مايكروسوفت هي الأخرى بتحسين مُحلّلاتها لهذا الأمر: يندرج التّخزين المؤقّت للأصول في هذا السّياق أيضًا حيث لا يوجد ما هو أسرع من مُتصفّح لا يحتاج إلى طلب الأصول على الإطلاق. يوجد الكثير من المعلومات حول هذا الموضوع على الوِيب (أو في الكتب)، وقد نقوم بنشر مقال حول هذا الموضوع قريبًا. ترجمة -وبتصرف- للمقال The Difference Between Minification and Gzipping لصاحبه Chris Coyier
  3. عندما تتصفّح الإنترنت ستجده مليئًا بالنّصائح والتّوجيهات حول كيفيّة ممارسة العمل بشكل صحيّ يحقّق توازنًا مع الحياة الشّخصيّة، جمعت منها التّالي: Leo Barbara صاحب موقع Zen Habits قام بإنشاء مدوّنته Technorants 100 خلال ساعة عمل واحدة يوميًّا، فاسحًا المجال لمهنته الأساسيّة وقضاء بعض الوقت مع الأسرة.Tim Brownson: "علينا أن نعيد ترتيب أولويّاتنا لكي ندرك ما هو الأهمّ فنقوم بإنجازه، وما هو الأقلّ أهميّة حتى لا نقلق بشأنه."Merlin Mann مؤسّسة 34Folders تخبرنا بأنّه بمجرّد إقرارنا بكلّ تلك الأمور التي نكرهها ولا ترضينا في أسلوب حياتنا اليوميّة، هذا وحده كفيل بأن يشكّل لدينا قائمة طويلة من التّعديلات التي يجب أن نقوم بها لتحسين أسلوب معيشتنا.Penelope Trunk توضّح أنّ غاية أيّ عمل نقوم به هي الشّعور بالرضا والسّعادة، وليس السّعي الأعمى وراء المال!أنت تعلم أنّك إذا فقدت صحّتك وأسرتك فلن يكون هناك أيّ معنى لأيّ شيء آخر تملكه. عندما تصير على فراش الموت هل ستتمنى لو أنّك قضيت وقتًا أكبر في العمل، أم لو أنّك كنتَ أبًا أفضل؟ هل ستتمنّى لو أنّك استمتعت أكثر بتصّفح فيسبوك أم لو أنّك قضيت وقتًا أكثر بلعب الرّياضة كي تتمتّع بصحّة أكبر وعمر أطول؟ كل ما سبق صحيح وجميل، لكن حسب خبرتي الشّخصيّة فإنّ هذه الممارسات –الصّحيّة بلا شكّ– ليست هي الطّريق الصّحيح لتحقيق نجاح الشّركات النّاشئة. حتّى تتمكّن من زيادة فرصتك بالنّجاح، عليك أن تضحّي بصحّتك وبالوقت الذي تقضيه مع عائلتك. قد تجد الأمر غريبًا، لكنّني لست الوحيد الذي يتبنّى هذا الرأي، استمع إلى ما يقوله روّاد الأعمال النّاجحون: Jeremiah Owyang صاحب مدوّنة Web Strategist يقول: Mark Cuban وهو مليونير جمع ثروته بعرق جبينه، يقول متحدّثًا عن قصّة نجاحه: Mark نفسه في مقابلة مع مجلّة YoungMoney، سئل: "هل عليك أن تضحّي بحياتك الشخصيّة لكي تحظى بعمل تجاريّ ناجح؟" فكان جوابه: Penelope Trunk (ولها آراء في كلا الاتّجاهين) تتحدّث عن كيف يمكن للشّركات النّاشئة أن تستهلك أصحابها: حتمًا ستجادلني بقولك: "وماذا إذًا؟ كون بعض روّاد الأعمال مهووسين بالعمل لدرجة الإدمان workaholics لا يعني ذلك أنّ هذا هو الطّريق الوحيد للنّجاح." معك حقّ بالتّأكيد، والدّراسات تؤكّد أيضًا على أنّ المزيد من ساعات العمل لا يعني بالضّرورة تحقيق إنجاز أكبر، فإذا كنت لا تنال قسطًا كافيًا من النّوم على سبيل المثال فإنّ ساعات العمل الإضافية لن تفيدك بشيء طالما أنّ دماغك متوقّف عن العمل. وعلى الجانب الآخر، تخصيص ساعات اليوم وتقنين إنفاقها في النّشاطات المختلفة سيزيد من إنتاجيّتك أضعافًا مضاعفة، بشكل لا يمكنك تحقيقه بمجرّد العمل بضع ساعات إضافيّة. لكن هناك مشكلة. إنّها "قاعدة الخزانة الممتلئة Rule of Closets" وتعني أنّ كميّة الأغراض عديمة الأهميّة crap الموجودة في خزانة ما سوف تزداد تدريجيًّا لتملأ كامل الحيّز الفارغ في الخزانة، يمكنك أن تحصل على مساحة فارغة إضافية بشراء خزانة جديدة لكنّك ستلاحظ أنّ مزيدًا من الأشياء ستملؤها بسرعة، وهكذا. أنا لديّ قاعدة مشابهة وهي "قاعدة الوقت في المشاريع النّاشئة": كم من الوقت الذي يملكه الإنسان تستهلكه شركته النّاشئة؟ الجواب: كلّه. الأمر الغريب أنّ عشرة أشخاص بالكاد يمكنهم القيام بالأعمال التي يتوجّب عليك القيام بها وحدك في شركتك النّاشئة: التأسيس، الاستشارات، التّصميم، الإصلاح، التّرويج، التّدوين، التّواصل networking، المحاسبة، دفع الضّرائب، خدمة الزّبائن، قراءة المدوّنات وأخذ النّصائح حول التّسويق والإدارة. وفوق ذلك كلّه، قد يتعطّل جهاز هاتف الإنترنت IP phone الجديد الذي اشتريته لتتمكّن من العمل من أيّ مكان، فيستغرق إصلاحٌه وحده وقتًا يساوي الوقت اللازم لتنفيذ كلّ تلك المهام الصّغيرة السّابقة. لا يمكن لشخص واحد -ولا اثنين ولا ثلاثة- أن يقوم بكلّ شيء، لذلك من الطّبيعي أن يستغرق العمل وقتك كلّه. وفي حالة كنت تداوم نهارًا في وظيفة، وأردت أن تبدأ بمشروعك الخاص بشكل جانبيّ، عندها بالتّأكيد لن يتبقّى لديك أيّ وقت لتمارس الرّياضة أو لتلعب مع أطفالك قبل أن يخلدوا للنوم. يجب أن تشكّل شركتك النّاشئة هاجسًا لديك حتّى تتمكّن من إنجاحها. لا أقول "شغفًا" كما يقول الجميع، بل إنّه "الهاجس والاستحواذ الكامل"، ليس الأمر فقط أنّك تحبّ العمل، بل أنّك لا تستطيع أن تترك العمل أبدًا. أن تضع نفسك وكلّ ما تملك خدمة لعملك، مالك وأفكارك ومسارك الوظيفيّ career. هذا الهاجس يبقى لديك حتى لو غادرت المكتب، حتى لو كنتَ تتناول طعام الغداء مع صديقك، حتّى عندما تراجع مع أطفالك دروسهم. زوجتي كانت تشير إلى ذلك طوال الوقت عندما كنت أعمل في Smart Bear، تقول أنّ جميع قدراتي الفكريّة والعاطفيّة كانت مستنفذة بشكل كامل. فيزيائيًّا أنت معهم، لكن عقلك في مكان آخر. اقرأ الاقتباسات الأخيرة مرّة ثانية، لن تجد شغفًا فحسب، بل هو تفانٍ قاتل. لا يمكن لأحد أن يحشر نفسه في هذا النّمط من العيش لمجرّد أنّه "يحبّ أمرًا ما بشدّة." مع ذلك تبقى وجهة النّظر الأولى محقّة: "ليس أمرًا جيّدًا أن تعيش حياتك كلّها بهذه الطّريقة." إنّما عليك أن تتقبّل حقيقة أنّ هذا الأمر سيحدث لك لا محالة، ومن ثمّ اسأل نفسك إن كنتَ مستعدًّا لخوض غمار التّجربة ودفع الضّريبة بالمقابل. بالنّسبة لي شخصيًّا جرّبت ذلك كلّه خلال مرحلة العشرينات من عمري، عندها لم يكن لديّ أطفال، وكنتُ أمتلك مدّخرات كافية تمكّنني من المخاطرة بكلّ شيء، بالإضافة إلى أنّ زوجتي كانت منشغلة بعملها الخاصّ فكانت تتفهّم انشغالي الدّائم في النّهار وغيابي ذهنيًّا عندما نجلس لتناول وجبة العشاء. كلماتٌ أخيرة أقولها لك: كلّ روّاد الأعمال الذين أعرفهم يقدّمون عملهم على حياتهم الشّخصيّة (حتّى يصلوا إلى الحريّة الماليّة.) وهذا ما فعلته أنا أيضًا. والآن ما رأيك بما سبق؟ هل أنت من أنصار الرأي الأوّل أم الثاني؟ ما هي وجهة نظرك؟ شاركنا النّقاش في التّعليقات. مترجم -وبتصرّف- عن المقال: Sacrifice your health for your startup لكاتبه Jason Cohen. حقوق الصورة البارزة: Designed by Freepik, Designed by Freepik.
  4. لا أعرف ما السبب ولكن يبدو لي أن المستقل يعمل ويستمر في العمل إلى أن يَخمد بغتة، وقد تعتقد أن هذا الخمود لن ينال منك على اعتبار أنك مستقل يعتز بعمله ويتقنه، ومنسجم مع الضغط والإجهاد المصاحب له، ولكني سأخبرك وبكل أسف خلاف ذلك: سيُصيبك هذا الخمود شئت أم أبيت، وقد انتاب هذا الخمود عموم المستقلين الذين أعرفهم مرة واحدة على الأقل، ولكن الحل موجود ويمكن تحاشي هذا المصير المشؤوم. كيف يمكن تفادي خمود المستقل؟نسمع ونقرأ بين الحين والآخر ومن العديد من الأشخاص عن طرق مختلفة في تجنّب خمود المستقل، ولكن ومن خلال تجربتي لا يوجد سوى طريقة واحدة ناجعة على المستوى البعيد، وهي جدولة مشاريع العملاء، ثلاث كلمات بسيطة قد لا توحي بالكثير، ولكنها نقيض ذلك تمامًا. ليست المسألة فقط عبارة عن جدولة المشاريع من خلال التيقّن من عدم تقاطع أوقات التسليم deadlines بين المشاريع، بل القضية أصعب من ذلك، حيث يوجد بعض الكيفيات الواجب أخذها بعين الاعتبار عند جدولة المشاريع في قائمة المهام. امنح فترة التنفيذ مدة احتياطيةنميل نحن المستقلين إلى المبالغة في تقدير قدراتنا ومهاراتنا، فقط لأنك تعتقد أنه بإمكانك استكمال المشروع في ثلاثة أيام لا يعني أن ستفعل ذلك، فقد تمرض، قد يتطلّب المشروع مزيدًا من البحث، قد يطرأ أي أمر جلل في حياتك الشخصية ولا يحتمل التأجيل، هذه أمور تحدث بين الحين والآخر ويجب التعامل معها، فإن لم امنح نفسي أريحية في وقت التنفيذ، سأتخلف عن الموعد النهائي للتسليم بلا شك، وعليه قسّم المشروع إلى واجبات صغيرة وأعطِ نفسك المزيد من الوقت لاستكمال هذه المهام أكثر مما تظن أنها تحتاج. لا تبالغ فلن تصل عنان السماءنميل أيضًا نحن المستقلين إلى المبالغة في حماسنا عندما يأتي الأمر إلى الوعود التي نقطعها على أنفسنا فيما يخص النتائج النهائيّة، ومن الهين جدًا السقوط في هذا الشرك، فقد تنقلب تدوينة إلى فاجعة، وذلك فقط لأن الكاتب المستقل أكّد للعميل أن التدوينة ستنتشر كالنار في الهشيم على مواقع التواصل الاجتماعي، ما أريد قوله، لا تحمّل نفسك ما لا طاقة لك به ولا تزد من الأعباء غير الضرورية على كاهلك، ولا تقطع وعودًا لا قدرة لك على ضمانها، فأنت كمستقل الشيء الوحيد الذي تستطيع ضمانه هو جودة عملك. التزم بجدول المواعيد ولا تحيد عنه البتةفقط لأن منزلك هو مكتبك ويتيسّر لك العمل بملابس النوم، لا يعني أن تفعل ذلك. لا يهم إن كنت تفضل نور الصباح أو عتمة الليل، ما يهم هو إعداد جدول زمني للمشروع والالتزام به، وبالتالي إن كان هذا يعني العمل من الساعة الثالثة بعد منتصف الليل، إذا عليك الالتزام بهذا الموعد إلى حين استكمال المشروع الحاضر بين يديك، إلا إذا تدخلت مشقات الحياة بالأمر، حينها ستحتاج مزيدًا من الوقت المقدر، وهنا تأتي نقطة الأريحية في موعد التسليم النهائي، والتي ستقطف ثمارها وابتسامة تملأ وجهك. تيقظ من وجود بيان نطاق المشروع scope creepتُعتبر هذه الحالة الوحيدة التي لا يستطيع المستقل النجاة منها إن راح ضحيتها، والطامة الكبرى أن العميل غالبًا لا يُدرك أنه يُثقل على المستقل: من فضلك، هلا كتبت تعريفًا للمقال الذي تعدّه من أجل النشرة البريدية newsletter حتى يتسنى لنا إرساله إلى قائمة المتابعين بأسرع وقت ممكن عند نشر المقال؟ الطلب بسيط، وبالأخص أنك صاحب المقال، ولن يستغرق كتابة التعريف الوقت الطويل، لا بل من الممكن استخدام مقدمة المقال نفسه، ولكنه غاب عنك وجوب إما تعديل المقدمة لتلائم طول تعريف المقال ليناسب مع النشرة البريدية أو كتابة واحدة جديدة كليًا، طبعًا في كلتا الحالتين هذا عمل إضافي يجب الاهتمام به، ومع العمل الإضافي يأتي الوقت الإضافي. بناءً عليه، في المرة القادمة التي يطلب فيها العميل تعديلًا بسيطًا أبلغه بعدم وجود أي إشكال في ذلك، مع وجوب تأجيل الموعد النهائي بضعة أيام بالإضافة إلى التكلفة الإضافية لقاء هذا التعديل، ومن المستحسن أن تُضمّن بندًا خاصًا بهذا الشأن في العقد أو اتفاقية الاستخدام التي تستخدمها، والذي يُمكن الرجوع إليه عندما يطلب العميل طلبًا إضافيًا. أتمت المهام أو عهدهاتناولنا قضية الوقت من جانب الأريحية في تنفيذ المشاريع، ولكن ماذا عن توفير الوقت؟ هنا يأتي دور أتمتة المهام أو تفويضها لأحدهم، فيمكنك إما البحث عن الأدوات التي من شأنها المساعدة في أتمتة بعض المهام في عملك، أو يمكنك توظيف أحد المستقلين في إنجاز المهام التي تستنزف ساعات من العمل أو تلك المهام التي لا تستسغ التعامل معها، وبهذه الطريقة سيكون لديك وقت إضافي لتستغله في رفع جودة المشروع. زبدة الكلاملا نحتمل كمستقلين الخمود، فهو لا يؤثر على الرزق والمدخول الشهري فقط، بل أيضًا يمنعنا مع العمل على ما نحب، بالإضافة إلى ما يعقب الأمر من كآبة في نفسيتنا، وسيكون هناك مطبات لا يمكن تجاوزها مهما كنت يقظًا، ولكن تذكّر دائمًا أن جدولة المهام بالطريقة المناسبة وتوزيع الوقت بين المشاريع وإعطاء متسع من الوقت لكل مشروع هو أفضل سبيل في مقاومة الممل والخمود. ترجمة وبتصرّف للمقال The smart freelancer’s guide to avoiding burning out (Hint: schedule client work) لصاحبته Samar Owais. حقوق الصورة البارزة: Designed by Freepik.
  5. يشبه أداء المواقع كثيرًا قاعدة 80/20، حيث إن إجراء تحسينات بنسبة 20% ستزيد سرعة الموقع الإلكتروني بنسبة 80%. فاتّخاذ خطوات بسيطة مثل تنظيم شفرة CSS يأتي بثمار طيّبة. يشرح هذا المقال خطوات بسيطة يمكن أن يؤدّي تطبيقها - إلى جانب تنظيم شفرة CSS - إلى تحسّن ملحوظ في أداء الموقع. تصغير الملفات وضغطها تعدّ إزالة الشفرة المتكررة وغير الضرروية من أبسط الطرق وأفضلها في تقليل حجم ملف CSS، ولكن هناك بعض الطرق الأخرى. تتمثّل إحدى هذه الطرق في تصغير minify وضغط ملفات HTML و CSS و JavaScript. كذلك يمكن ضغط الصور وإزالة التعليقات و مواصفات الألوان Color Profiles غير الضرورية. آلية gzip للضغط آلية gzip هي إحدى أشيع وسائل ضغط الملفات، إذ تأخذ هذه الآلية الملفات الشائعة مثل HTML ،CSS، Javascript وما شابهها وتبدأ بتحديد السلاسل النصية المتشابهة وضغطها. وكلما تم التعرّف على المزيد من السلاسل النصية كان حجم الملفات المضغوطة أصغر، وهذا يعني إرسال ملفات أصغر حجمًا من الخادوم إلى المتصفح. ليست تهيئة gzip بالأمر الصعب، وقد أبلى فريق HTML5 Boilerplate بلاءً حسنًا في هذا المجال. ولضغط الملفات بآلية gzip ستحتاج إلى إضافة ملف .htaccess إلى المجلد الرئيسي في خادوم الويب ثم تدرج في هذا الملف أنواع الملفات التي ترغب في ضغطها. لا تنسَ إضافة النقطة إلى بداية اسم الملف، لأنّ هذا الملف هو من الملفات المخفية. يمكنك أن تجد في إعدادات خادوم Apache في HTML5 Boilerplate أنواع الملفات التي يُنصح بضغطها، ولا بأس بالتذكير مرة أخرى أنّ شفرة ضغط هذه الملفات يجب أن تكون في ملف .htaccess في المجلد الرئيسي لخادوم الويب. وجدير بالذكر أن هذا الملف لا يعمل إلا مع خواديم Apache والتي تتطلب تفعيل الوحدات التالية. mod_setenvif.c mod_headers.c mod_deflate.c mod_filter.c mod_expires.c mod_rewrite.c لا تقلق إن وجدت صعوبة في هذا الأمر، فهناك بعض الخواديم التي تهيّئ لك هذه الأمور نيابة عنك، فبطبيعة الحال، ضغط الملفات وتصغير حجمها يكون دائمًا في مصلحة خادوم الويب. قياس نسبة الضغط تقدّم أداة الفحص Inspector في متصفح Google Chrome عددًا كبيرًا من المعلومات حول أداء الصفحة، ويمكن الوصول إليها من خلال التبويب Network. إضافة إلى ذلك، هناك عدد من المواقع الإلكترونية التي تساعد على معرفة ما إذا كانت خاصية الضغط gzip مفعّلة أم لا. في تبويب Network يتم التعرّف على جميع الملفات المحمّلة بواسطة المتصفح وعرض أحجام تلك الملفات والمدة التي استغرقتها عملية التحميل. لاحظ كيف أن ضغط الملفات قد قلّل من حجمها بنسبة 60% تقريبًا. يمكن التعرّف على أنواع وسائل الضغط التي يدعمها المتصفح من خلال اختيار أحد الملفات. في الصورة أعلاه نلاحظ أنّ المتصفح يدعم gzip، deflate و sdch كما هو مبيّن في ترويسة الطلب المرسل من المتصفح. أما ترويسة Header الإجابة الواردة من الخادوم فتبيّن أن الملف مضغوط بواسطة gzip. ضغط الصور قد يكون تقليل حجم الملفات النصّية مفيدًا، ولكن يمكن الحصول على نتائج أفضل من خلال ضغط ملفات الصور. يمكن لحجم ملفات الصور المستخدمة في الموقع الإلكتروني أن يصبح كبيرًا جدًّا، وضغط الصور يمكن أن يساعد على إبقاء حجم الملفات الكلي تحت السيطرة. يتجنّب الكثيرون مسألة ضغط الصور وذلك خوفًا من أن يتسبب الضغط في تقليل جودة الصورة، ولكن هذا غير صحيح في أغلب الأحيان، إذ يمكن ضغط الصورة دون المساس بجودتها، وذلك من خلال التخلص من مواصفات الألوان والتعليقات غير الضرورية. تتوفّر العديد من الأدوات التي تساعد على ضغط الصور، من أفضلها ImageOptim لنظام Mac و PNGGauntlet لنظام Window، و Trimage لنظام لينكس. تقوم هذه الخدمات بضغط صيغ الصور الأكثر شيوعًا مثل JPG و PNG. نموذج لضغط الصور غير مضغوطة، 455kb مضغوطة، 401kb باستخدام ImageOptim فإنّ حجم الصورة أعلاه قد انخفض بمقدار 14% دون المساس بدقّة الصورة أو جودتها. من الجدير بالذكر هنا أن اختيار أبعاد الصورة في HTML باستخدام خاصيتي height و width يساعد على تصيير الصورة بسرعة أكبر وذلك بتحديد الحجم المناسب للصورة. ولكن يجب الانتباه إلى أن هاتين الخاصيتين تستخدمان في تحديد أبعاد الصورة الحقيقية لا لتصغير حجمها، فمن الممارسات السيئة في هذا الصدد استخدام صورة ذات حجم كبير ثم تصغيرها باستخدام خاصية height و width، والنتيجة تحميل بيانات فائضة عن الحاجة. <img src="ocean.jpg" height="440" width="660" alt="Oceanview"> تقليل طلبات HTTP يشكّل عدد طلبات HTTP - بعد حجم الملفات - العائق الأكبر في طريق تحقيق الأداء الأفضل. ففي كل مرة يُرسل فيها الطلب إلى الخادوم يزداد وقت تحميل الصفحة، وفي بعض الأحيان تتطلب معالجة الطلب من قبل الخادوم الانتهاء من معالجة الطلب السابق، وقد تؤدّي كثرة الطلبات إلى حدوث مشاكل في الخادوم. دمج الملفات المتشابهة إحدى الطرق المتّبعة في تقليل طلبات HTTP - وربّما أسهلها - تتمثّل في دمج الملفات المتشابهة، بمعنى دمج جميع ملفات CSS في ملف واحد وجميع ملفات JavaScript في ملف واحد كذلك. يؤدي دمج هذه الملفات ثم ضغطها إلى إنشاء طلب HTTP واحد صغير نسبيًا. <!-- سيء --> <link href="css/reset.css" rel="stylesheet"> <link href="css/base.css" rel="stylesheet"> <link href="css/site.css" rel="stylesheet"> <!-- جيد --> <link href="css/styles.css" rel="stylesheet"> يجب تحميل ملفات CSS في بداية صفحة الوِب ضمن الوسم head، أما ملفات JavaScript فيجب تحميلها في نهاية الصفحة ضمن الوسم body. والسبب هو أنّه يمكن استكمال تحميل ملفات CSS أثناء تحميل بقية أجزاء الصفحة، في حين أنّه لا يمكن تصيير ملفات JavaScript متعددة في نفس الوقت، لذا فإن هذه الملفات تمنع تحميل بقية عناصر الصفحة. يجب الانتباه هنا إلى ملفات JavaScript تُحمّل لا تزامنيًا Asynchronously بعد اكتمال تصيير الصفحة، وكذلك يجب الانتباه إلى أن JavaScript قد تكون مطلوبة في تصيير عناصر الصفحة كما هو الحال عند اسخدام HTML5 shiv. شرائح الصور Image Sprites المقصود بشرائح الصور في CSS هو استخدام صورة خلفية واحدة في مجموعة من العناصر، والهدف هنا هو تقليل عدد طلبات HTTP الناشئة من استخدام مجموعة من الصور. ولإنشاء شريحة اختر مجموعة من صور الخلفية الأكثر استخدامًا ورتّبها إلى جانب بعضها البعض في صورة واحدة، ثم باستخدام CSS أضف الشريحة كصورة خلفية إلى عنصر معين، ثم استخدم خاصّية background-position لعرض الصورة المطلوبة. بهذه الطريقة، يتم تمرير الصورة خلف العنصر ليقوم الأخير بعرض الجزء الملائم من الصورة. فعلى سبيل المثال إن كانت أبعاد العنصر هي 16 بكسل طولًا و 16 بكسل عرضًا فهذا يعني أنّ هذا العنصر سيعرض 16 بكسل طولًا و 16 بكسل عرضًا من الصورة، أما باقي أجزاء الصورة تكون مخفية. هذا مثال عن شريحة تضم صورًا لأيقونات قائمة محرر النصوص، وقد أحيطت كل صورة بخطوط إرشادية لتوضيح أماكن تغيّر موقع الخلفية. يمكن إنشاء قائمة باستخدام شريحة الصور السابقة وذلك بجعلها خلفية للعنصر span، ثم يمكن تغيير موضع الشريحة بواسطة الأصناف، وبذلك يمكن عرض الأيقونة المناسبة في كل مرة. HTML <ul> <li><a href="#"><span class="bold">Bold Text</span></a></li> <li><a href="#"><span class="italic">Italicize Text</span></a></li> <li><a href="#"><span class="underline">Underline Text</span></a></li> <li><a href="#"><span class="size">Size Text</span></a></li> <li><a href="#"><span class="bullet">Bullet Text</span></a></li> <li><a href="#"><span class="number">Number Text</span></a></li> <li><a href="#"><span class="quote">Quote Text</span></a></li> <li><a href="#"><span class="left">Left Align Text</span></a></li> <li><a href="#"><span class="center">Center Align Text</span></a></li> <li><a href="#"><span class="right">Right Align Text</span></a></li> </ul> CSS ul { margin: 0; padding: 0; } li { float: left; list-style: none; margin: 2px; } li a { background: linear-gradient(#fff, #eee); border: 1px solid #ccc; border-radius: 3px; display: block; padding: 3px; } li a:hover { border-color: #999; } li span { background: url("sprite.png") 0 0 no-repeat; color: transparent; display: block; font: 0/0 a; height: 16px; width: 16px; } .italic { background-position: -16px 0; } .underline { background-position: -32px 0; } .size { background-position: -48px 0; } .bullet { background-position: -64px 0; } .number { background-position: -80px 0; } .quote { background-position: -96px 0; } .left { background-position: -112px 0; } .center { background-position: -128px 0; } .right { background-position: -144px 0; } (تجربة حيّة) معرّف الموارد الموحّد URI الخاص ببيانات الصورة إضافة إلى استخدام شرائح الصور، يمكن الاستفادة من البيانات المُرمَّزة Encoded للصورة وتضمينها مباشرة في HTML و CSS وذلك من خلال معرّف الموارد الموحّد الخاص بالبيانات Data URI، وبهذا لن يُرسَل أي طلب HTTP إلى الخادوم. هذه الطريقة مفيدة للصور الصغيرة والتي لا تكون عرضة للتغيير، وعندما يكون بالإمكان نقل ملفات HTML و CSS إلى ذاكرة التخبئة Cach. ولكن لا يخلو الأمر من مشاكل، إذ يصعب أحيانا تبديل هذه المعرّفات ومتابعتها وقد تحتاج إلى توليد المعرّف مرة أخرى، إضافة إلى أنّها لا تعمل مع المتصفحات القديمة وخصوصًا Internet Explorer 7 وما قبله. إن كان بالإمكان تقليل عدد طلبات HTTP باستخدام هذه الطريقة، وإن كان بالإمكان تخزين ملفات HTML و CSS في ذاكرة التخبئة فإن الفوائد التي ستجينها باستخدام هذه الطريقة تفوق المشاكل المترتبة عنها. هناك عدد من الأدوات التي تساعد في توليد معرّف البيانات مثل هذا المحوّل وأداة Patternify. ومع ذلك تأكّد دائمًا من أنّ حجم البيانات في معرّف البيانات الخاصّ بالصورة أقل حجمًا من ملفّ الصورة الأصلية. HTML <img height="100" width="660" alt="Rigged Pattern" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAICAYAAADA+m62AAAAPUlEQVQYV2NkQAO6m73+X/bdxogujiIAU4RNMVwhuiQ6H6wQl3XI4oy4FMHcCJPHcDS6J2A2EqUQpJhohQAyIyYy0nBAGgAAAABJRU5ErkJggg=="> CSS div { background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAICAYAAADA+m62AAAAPUlEQVQYV2NkQAO6m73+X/bdxogujiIAU4RNMVwhuiQ6H6wQl3XI4oy4FMHcCJPHcDS6J2A2EqUQpJhohQAyIyYy0nBAGgAAAABJRU5ErkJggg==") repeat; } (تجربة حيّة) خزّن الملفات الشائعة في ذاكرة التخبئة هناك طريقة أخرى لتقليل عدد طلبات HTTP المرسلة إلى الخادوم ولعرض الصفحات في وقت أقصر، وتتمثّل هذه الطريقة في إضافة الملفات الشائعة إلى ذاكرة التخبئة. فعند تحميل الصفحة للمرة الأولى يمكن تخزين ملفات معيّنة في ذاكرة التخبئة، وبهذا لن يحتاج المتصفح إلى طلب الملفات ذاتها - لمدة معيّنة - في كل زيارة لتلك الصفحة. تحديد مدّة بقاء هذه الملفات في ذاكرة التخبئة عائد إليك. وكما هو الحال مع ضغط الملفات، فإنّ تعيين مدّة بقاء الملفات في ذاكرة التخبئة يكون من خلال ملف .htaccess. ومرة أخرى فقد أعدّ فريق HTML5 Boilerplate ملفًّا خاصًّا لتعيين تاريخ انتهاء صلاحية الملفات في ذاكرة التخبئة وذلك في إعدادات خادوم Apache الخاصّ بهم. عادة ما تخزّن الصور ومقاطع الفيديو والخطوط وملفات الوسائط المعروفة لمدة شهر في ذاكرة التخبئة، أمّا ملفات CSS و JavaScript فتخزّن في الغالب لمدة عام كامل. وفي حال كانت ملفات CSS أو غيرها من الملفات عرضة للتغير في فترات متقاربة، يمكن تغيير اسم الملف - ومن الأفضل أن يكون الترقيم متسلسلًا - ليُحمَّل الملف من خلال المتصفح. كذلك يمكن تغيير مدة بقاء هذه الملفات في ذاكرة التخبئة إلى قيمة أقل. ExpiresByType text/css "access plus 1 year" ExpiresByType application/javascript "access plus 1 year" إن كانت ملفات CSS و JavaScript تتغيّر في كل أسبوع ولا يُتحكَّم في إصداراتها باستخدام ملفات منفصلة فمن الأفضل تغيير قيمة "access plus 1 year" إلى "access plus 1 week". ويمكن مراجعة صفحة صيغة mod_expires للتعرّف على القيم المتاحة. ترجمة - وبتصرّف - للمقال Performance & Organization لصاحبه Shay Howe. حقوق الصورة البارزة محفوظة لـ Freepik
  6. إن المحافظة على أقل حجم للصورة هو الجزء الأهم في جعل موقعك خفيفًا وسريعًا. من الممكن تخفيض حجم الصورة مع المحافظة على دقة جيدة لها عبر فهم القليل عن ضغط الصور وكيفية تحسين هذه الصور من أجل الويب. حفظ من أجل الويب والأجهزة في الفوتوشوب أول مفتاح لتحسين الصورة هو اختيار تعديل الصورة وحفظها من أجل الويب في الفوتوشوب. إن كنت تستخدم عادة خيار “حفظ” أو “حفظ باسم…” فقد حان الوقت لتعلّم حيلة جديدة. File > Save for Web & Devices… من خلال هذه القائمة يمكنك البدء بخيار حفظ الصور من أجل الويب. هذه التقنية تمنحك خيارات إضافية للتحكم في الصورة، مع معاينة كيف ستبدو الصورة بعد الضغط. حتى أنه يوجد خيارات لتنعيم الصورة للمستخدمين المتقدمين. هنالك ثلاثة تنسيقات مختلفة سنتحدث عنها في هذا الدرس، وهي التنسيقات الأكثر شيوعًا التي تُستَخدم عمومًا عبر الويب: .jpg تنسيق الضياع، وهو ممتاز للصور الفوتوغرافية. .png 8bit مضغوط بأقل حجم ممكن من هذا النوع ويتميز بنطاق ألوان محدود. .gif وهو أيضًا مضغوط بحجم ضئيل يشابه png 8bit ولكن png يشكّل خيارًا أفضل. ستكون هنالك حالات قد تختار فيها نوعية png 24bit وهي التي تستخدم عادة للصور التي تحوي قناة ألفا من أجل الأجزاء الشفافة على الويب ولكننا لن نتحدث عن ذلك في هذا الدرس. وهي عادة أكبر حجمًا من باقي الأنواع نظرًا لاستخدام نطاق أوسع من الألوان. ضغط .jpg إن تنسيق .jpg هو الخيار المناسب للصور ذات نطاق ألوان واسع التي لا تحوي تحولات حادة أو حواف ناعمة. بسبب الضغط الخوارزمي الخاص بها فهي ممتازة للصور الفوتوغرافية. من الممكن جدًا تخفيض حجم الصور وضغطه إلى حد كبير مع المحافظة على دقة عالية للصورة. خذ الصورة التالية كمثال: سيكون من الصعب جدًّا التمييز بين الصور الثلاث خصوصًا ما بين الصورة ذات الدقة العالية جدًّا (جزء مكبّر من الصورة الأصلية) والصورة المحفوظة بدقة “عالية” (أو دقة 60%). الصورة المثال تمثّل ربع حجم الصورة الأصلية. مع ضغط صور .jpg يمكنك ضبط دقة الصورة بحرّية كبيرة مع تخفيض حجم الملف. وستجد أن دقة ما بين 60 إلى 70% جيدة جدًّا للصور الفوتوغرافية. وفي حال تواجد نص أو كتابة داخل الصورة فستلاحظ بعض التشوهات على أطراف النص الحادة مما يدفعك إلى رفع دقة الصورة أكثر لتجنب ذلك. ضغط .gif و .png إن تنسيقي .gif و.png 8bit هما الأفضل للصور ذات نطاق ألوان محدود (إنها تظهر حتى 256 لونًا فقط) والتي تحوي على مساحات واسعة من لون واحد. تقدّم هذه التنسيقات في هذه الحالة نتيجة قريبة جدًّا من الصورة الأصلية مع توفير أكبر من حيث الحجم بالمقارنة مع تنسيق .jpg. وهي عادة ما تُستخدم من أجل عناصر الواجهات والأيقونات والصور التي تحوي نصوصًا يتوجب أن تظهر بدقة جيدة. في معظم الأحيان يقدّم .png 8bit ضغطًا أفضل من تنسيق .gif. وكلا التنسيقان يدعمان شفافية أجزاء الصور (ينبغي عدم الخلط مع مسألة شفافية ألفا لتنسيق .png 24bit). في الحقيقة إن حجم الصورة يؤثّر إن ضغط صورة واحدة سيخفف من حجم الصفحة قليلًا ولكن إن جعلت من ضغط الصور ممارسة دائمة وقمت بضغط جميع الصور في الموقع فإنك ستخفض كميات كبيرة من أحجام الملفات. وعبر تخديم ملفات أصغر يمكنك جعل تحميل الصفحات أسرع وبالتالي ستكون تجربة المستخدم أفضل وأروع. إن مسألة وقت تحميل الصفحة تشكل أحد أكبر العوامل في الحفاظ على المستخدمين. وفي أحد آخر استطلاعات الرأي أكّد 51% أن الوقت الطويل لتحميل الصفحة كان العامل الأساسي الذي دفعهم للابتعاد عن تلك الصفحة. إن تحسين الصور ليس الطريقة الوحيدة لتسريع موقعك ولكنه طريقة ممتازة للبدء. ترجمة –وبتصرف- لمقال Speed Up Your Website with Better Image Optimization in Photoshop لصاحبه David Leggett الصورة المستخدمة للشرح وفي الصورة البارزة من موقع Flickr للمصور Ray Dumas تحت الترخيص (CC BY-SA 2.0)
  7. تعتمد سرعة عرض صفحة ويب على حجم جميع الملفات المرتبطة بالصفحة والتي يجب تحميلها من قبل المتصفح، وبالتالي فتخفيف حجم الملفات المطلوبة يمكن أن يسرّع من عرض صفحة الويب، ويوفّر الكثير من المال على الأشخاص الذين يدفعون مقابل عرض الحزمة bandwidth المستهلكة. يعدّ gzip من البرامج المشهورة المستخدمة في ضغط البيانات، وبالإمكان إعداد خادوم Nginx لاستخدام gzip لضغط الملفات التي يتم تخديمها من قبل الخادوم قبل إرسالها للمتصفحات والتي ستقوم بدورها بفك الضغط عن الملفّات (تدعم جميع المتصفحات المشهورة فك ضغط gzip ويفترض أن تدعم -معظم- المتصفحات عمومًا هذه العملية) دون أي خسارة في دقة البيانات بعد فك الضغط، مستفيدة بذلك من تخفيف حجم البيانات المتبادلة ما بين خادوم الويب والمتصفح. ونظرًا لاختلاف الطرق التي تعمل بها خوارزميات الضغط عمومًا، وآلية عمل خوارزمية gzip خصوصًا، فإنّ بعض الملفات يمكن ضغطها بنسبة أكبر من بعضها الآخر. فعلى سبيل المثال، يتم ضغط الملفات النصيّة text بصورة جيّدة جدًا حيث قد تكون نتيجة الضغط أصغر بحوالي مرّتين من الحجم الأصلي. ومن ناحية أخرى، فالصور من نوع JPEG و PNG تأتي مضغوطة سلفًا بطبيعة الخوارزمية المنتجة لها وبالتالي لن نحصل على الكثير من الفائدة بعد تطبيق ضغط gzip عليها، وعلى اعتبار أن ضغط الملفّات يستهلك الكثير من مصادر الخادوم، فمن الأفضل أن يتم ضغط الملفّات التي تملك نسبة ضغط عالية. سنناقش في المقال كيفية إعداد خادوم Nginx المثبت على نظام تشغيل Ubuntu 14.04 ليستخدم gzip في الضغط لتخفيف حجم المحتوى المرسل إلى متصفّحي الموقع. المتطلبات الأولية نحتاج الأمور التالية قبل المتابعة: نظام تشغيل Ubuntu 14.04، مستخدم عادي بدون صلاحيات مدير نظام، لكنّه يملك صلاحية تنفيذ أمر sudo، يمكن مراجعة الإعداد الابتدائي لخادوم أوبونتو 14.04 لمزيد من المعلومات، نسخة Nginx مثبّته على النظام، ويمكنك اتباع هذا المقال لتثبيت Nginx للقيام بذلك. الخطوة الأولى: إنشاء ملفات تجريبية سنقوم في هذه الخطوة بإنشاء عدّة ملفات تجريبية في الجذر الافتراضي للمواقع المدارة من Nginx لاختبار ضغط gzip. ولتحديد الملف الذي سيتم تخديمه عبر الشبكة، يكتفي Nginx بالاعتماد على لاحقة الملف لتحديد نمط MIME الخاص به، عوضًا عن القيام بقراءة ترويسته وذلك بغية تنفيذ العملية بأسرع وقت ممكن. ونتيجة لهذا التصرّف فإن محتوى الملف لا يعود مهمًّا ويصبح من الممكن خداع Nginx بجعله يعتقد أن ملفًا فارغًا عبارة عن صورة، وملفًا آخر عبارة عن مستند css. في إعداداتنا التالية، لن يقوم Nginx بضغط الملفّات الصغيرة جدًا، لذا سنقوم بإنشاء ملفّات تجريبية يبلغ حجمها 1 كيلوبايت تمامًا. سيسمح هذا السيناريو بالتحقق فيما إذا كان Nginx يقوم بضغط الملفات التي من المفترض به القيام بضغطها. لنقم بإنشاء ملف بحجم 1 كيلوبايت وتسميته test.html في الجذر الرئيسي الافتراضي للمواقع المدارة من Nginx وذلك باستخدام أمر truncate عبر سطر الأوامر، كما في المثال التالي: $ sudo truncate -s 1k /usr/share/nginx/html/test.html لنقم بإنشاء المزيد من الملفّات التجريبية بنفس الطريقة: ملف صورة jpg، ملف css، وملف js. $ sudo truncate -s 1k /usr/share/nginx/html/test.jpg $ sudo truncate -s 1k /usr/share/nginx/html/test.css $ sudo truncate -s 1k /usr/share/nginx/html/test.js الخطوة الثانية: التحقق من التصرّف الافتراضي لـ Nginx سنقوم الآن بالتحقق من كيفية تصرّف Nginx عند ضغط الملفات التي قمنا بإنشائها توًّا. لنتحقق مما إذا سيتم تخديم ملف test.html بعد الضغط، سنقوم في الأمر التالي بطلب الملف من خادوم Nginx، ونخبره بأنّه لا مشكلة لدينا في الحصول على محتوى مضغوط باستخدام gzip وذلك بتمرير ترويسة HTTP مناسبة (Accept-Encoding: gzip). $ curl -H "Accept-Encoding: gzip" -I http://localhost/test.html سنحصل في جواب الخادوم على ما يشبه النص التالي: HTTP/1.1 200 OK Server: nginx/1.4.6 (Ubuntu) Date: Tue, 19 Jan 2016 20:04:12 GMT Content-Type: text/html Last-Modified: Tue, 04 Mar 2014 11:46:45 GMT Connection: keep-alive Content-Encoding: gzip ويمكن في السطر الأخير ملاحظة وجود ترويسة (Content-Encoding: gzip) والتي تخبرنا بأن المحتوى الذي حصلنا عليه قد تم ضغطه باستخدام gzip، ولكن كيف حصل ذلك دون أن نقوم بتفعيل gzip أولًا في Nginx؟ إنّ السبب خلف هذا هو أن الضغط باستخدام gzip مفعّل بشكل تلقائي في نسخة Nginx على نظام Ubuntu 14.04 بإعداداته الافتراضية. على الرغم من ذلك، فإن Nginx لن يقوم إلا بضغط ملفات HTML فقط، بينما يتم تخديم باقي أنواع الملفّات بدون ضغط، ويمكن التحقق من ذلك بطلب صورة بنفس الطريقة السابقة: $ curl -H "Accept-Encoding: gzip" -I http://localhost/test.jpg وسنحصل على رد مختلف قليلًا عن السابق: HTTP/1.1 200 OK Server: nginx/1.4.6 (Ubuntu) Date: Tue, 19 Jan 2016 20:10:34 GMT Content-Type: image/jpeg Content-Length: 0 Last-Modified: Tue, 19 Jan 2016 20:06:22 GMT Connection: keep-alive ETag: "569e973e-0" Accept-Ranges: bytes حيث نلاحظ عدم وجود ترويسة (Content-Encoding: gzip) وهذا يعني أن الملف تم إرساله لنا بدون ضغط. يمكن تنفيذ الاختبار ذاته مجدّدًا مع ملف test.css ومرّة أخرى سنحصل على الملف بدون ضغط. HTTP/1.1 200 OK Server: nginx/1.4.6 (Ubuntu) Date: Tue, 19 Jan 2016 20:20:33 GMT Content-Type: text/css Content-Length: 0 Last-Modified: Tue, 19 Jan 2016 20:20:33 GMT Connection: keep-alive ETag: "569e9a91-0" Accept-Ranges: bytes الخطوة الثالثة: تغيير إعدادات ضغط gzip في خادوم Nginx سنقوم الآن بتغيّير إعدادات Nginx ليتم ضغط ملفّات من أنواع أخرى عدا عن HTML، والتي من الممكن الاستفادة من نسبة الضغط المطبّقة عليها. سنقوم بفتح ملف إعدادات Nginx باستخدام محرر nano أو أي محرر آخر تفضّل استخدامه: $ sudo nano /etc/nginx/nginx.conf ومن ثم سنبحث عن كتلة إعدادات gzip التي ستبدو كما يلي: . . . ## # `gzip` Settings # # gzip on; gzip_disable "msie6"; # gzip_vary on; # gzip_proxied any; # gzip_comp_level 6; # gzip_buffers 16 8k; # gzip_http_version 1.1; # gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; . . . نلاحظ في الإعدادات السابقة أن الضغط بواسطة gzip مفعّل بشكل افتراضي بواسطة توجيه gzip on، بينما معظم الإعدادات الإضافية تم تعطيلها بإشارة التعليقات # في بداية السطر. سنقوم بإجراء بعض التعديلات على هذه الإعدادات مثل: تفعيل الإعدادات الإضافية من خلال حذف إشارة التعليقات # في بداية الأسطر، إضافة توجيه gzip_min_length 256; الذي يخبر Nginx ألّا يقوم بضغط الملفات التي يصغر حجمها عن 256 بايت، فهذا الحجم الصغير جدًا لن يحقق الفائدة المرجوّة بعد الضغط، ▪ إضافة توجيه gzip_types مع المزيد من أنماط الملفّات كخطوط الويب، الأيقونات والصور من نوع SVG. بعد إجراء التعديلات المذكورة سيبدو مقطع الإعدادات الجديد على النحو التالي: . . . ## # `gzip` Settings # # gzip on; gzip_disable "msie6"; gzip_vary on; gzip_proxied any; gzip_comp_level 6; gzip_buffers 16 8k; gzip_http_version 1.1; gzip_min_length 256; gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/vnd.ms-fontobject application/x-font-ttf font/opentype image/svg+xml image/x-icon; . . . قم بحفظ الملف وإغلاقه وتطبيق التعديلات من خلال إعادة تشغيل خادوم Nginx باستخدام الأمر: $ sudo service nginx restart الخطوة الرابعة: التحقق من الإعدادات الجديدة سنقوم الآن بالتحقق من أنّ الإعدادات التي قمنا بتغييرها وإضافتها تعمل على النحو المطلوب، ويمكن القيام بذلك من خلال إعادة تنفيذ الاختبارات المذكورة في الخطوة الثانية عبر استخدام أمر curl على كلّ من الملفّات التجريبية والتحقق من وجود ترويسة Content-Encoding: gzip في الخرج: $ curl -H "Accept-Encoding: gzip" -I http://localhost/test.html $ curl -H "Accept-Encoding: gzip" -I http://localhost/test.jpg $ curl -H "Accept-Encoding: gzip" -I http://localhost/test.css $ curl -H "Accept-Encoding: gzip" -I http://localhost/test.js من المفترض الآن أن تكون جميع الملفّات مضغوطة وتظهر ترويسة Content-Encoding: gzip في الخرج، عدا ملف الصورة test.jpg، وتكون الإعدادات المطبّقة صحيحة والاختبار ناجحًا إن تحقق هذا. الخلاصة إن تغيّير إعدادات Nginx لاستخدام ضغط gzip عملية سهلة جدًا لكن الفوائد المحقّقة ستكون كبيرة، فستوفّر الكثير على الزوّار الذين يملكون اتصالات محدودة بعرض الحزمة، وبالإضافة إلى ذلك ستحصل على تقييم أفضل في محرّكات البحث مثل Google من خلال تحقيق سرعة عرض أعلى للصفحة، حيث أن عامل سرعة عرض الصفحة بدأ يأخذ حيّزًا مهمًا من عملية التقييم في المواقع الحديثة وخوارزمية الضغط gzip هي خطوة كبيرة باتجاه تحسين النتيجة. ترجمة -وبتصرّف- للمقال How To Add the gzip Module to Nginx on Ubuntu 14.04 لصاحبه Mateusz Papiernik.
  8. استيقظت ذلك اليوم وبدأت بالتقلّب يمينًا وشمالًا، ومن ثم فتحت هاتفي ومباشرةً إلى بريدي الإلكتروني، "يا فتّاح يا رزاق". وبالتدرّج إلى أسفل القائمة واختيار مجلّد "المشتريات" بدأت بالانتظار: "جاري تحميل ستة رسائل"… "يا سلام يا سلام!". تَطلّبَ مني الأمر ستّة أشهر لأحصل على هذا العرض/السعر، وبعد أن قمنا بإرسال زهاء 70,000 رسالة إلى عملائنا، هذا ما أحصل عليه من مبيعات، ستة فقط! طيب، ماذا عن تعليقات العملاء: "ما هذه الأسعار الخرافيّة يا نصابين اتّقوا الله"، الوفي منهم وهو من الزبائن الدائمين لدينا خاطبنا على النحو التّالي: "خاب أملي بك يا نوح، حبّذا لو يكون السعر أفضل في المرات القادمة". بعد الإفطار، استكملت قراءة أحد الكتب التي كنت قد بدأت بها مؤخرًا، ومن ثم أنهيت تصفّح باقي الرسائل الإلكترونيّة. أدركت فيما بعد وبعد الظهيرة أني أشعر بالإحباط الشديد، حيث أنّي لا أطيق التفكير بالعمل أبدًا، لا بل لا اهتمام لي أبدًا بأي شيء له علاقة في AppSumo، ورغم أن فريق العمل كان يدردش في المجموعة الخاصّة بنا، إلا أني لم أرغب أبدًا بالتحدّث مع أحد. هل أصابك هذا الحال من قبل؟ تبادر الأمر إلى ذهني في الأسابيع القليلة اللاحقة، وكيف أن شعوري اليومي وحالتي النفسية تتقلّب مع أرقام المبيعات الخاصّة بنا، يا له من أسلوب حياة تعيس، لم يكن حالي على هذا المنوال من قبل، ولكن الآن أجد أن الدنيا اسودت في وجهي وتمر أيامي من دون أن أفعل أي شيء ذي نفع. هذه الحالة ليست بالحالة التي يمكن الكتابة عنها في تويتر أو فيس بوك، فهي ليست حالة عابرة لتستطيع تجنبها بالذهاب إلى المقهى أو إلى الحديقة أو أي مكان ترفيهي آخر. لماذا أنا مكتئب؟ حدثت هذه الكآبة لي من قبل، وذلك بعد أن وصلنا إلى ما نصبو إليه مع ألعاب الفيس بوك قبل سنوات قليلة مضت، ومن ثم تلاها انحدار مفاجئ، وفي ذلك الوقت قمت بتقييم ذاتي للعشرين السنة الأوّلى من حياتي وصحة الخيارات التي اتخذتها طوال تلك الفترة، وأبرز ما كنت أفكر فيه هو كيف انتهى بي المطاف في بناء تلك الألعاب السخيفة من أجل بعض المهووسين، كل هذا أبعدني كل البعد عن العمل. هل راودك هذا الشعور من قبل؟ غير متحمّس للقيام بأي شيء له علاقة بعملك الذي تحبه. هذه ليست سحابة صيف وتمر، لأن هذا النوع من الإحباط يُحل مع مرور الوقت، مع الاسترخاء والراحة، ولكن القصة مختلفة هنا، شعور خانق يجثو على الصدر ويثقل الكاهل. وما فاجئني أني عندما أخبرت صديقي المقرّب كيف أنّني بين الحين والآخر أُصاب بهذا الإحباط وكرهي لعملي، أجابني بأن هذه الحالة تصيبه أيضًا، ومن خلال حديثي مع باقي روّاد الأعمال وجدت أن هذا الشعور ليس فقط شائعًا بينهم، لا بل قد يكون مطلوبًا. ملاحظة من محرّر المقال الأصلي: من الجيّد رؤية نوح يقول كل هذا، لأنه من الأشخاص المعروفين بثقتهم بنفسهم وحبهم للتحدي والمغامرة وأخذ زمام المبادرة، بعبارة أخرى، هو آخر رجل على وجه المعمورة ستفكّر به على أنّه شخص كسول أو فاشل، وهو ليس من النوع الذي يترك الظروف تتحكم به، بل هو من يتحكم بالظروف. إن كان وحدث الأمر لنوح، فقد يحدث الأمر مع أي شخص آخر، ولذلك فإني أتعجّب من الناس الذين ينكرون شعورهم بهذا النوع من الإحباط، وأعتقد أنهم لم يصلوا إلى مرحلة من الثقة بالنفس تجعلهم مرتاحين في تقبّل أنفسهم والاعتراف بنقاط ضعفهم. حمدًا لله أني لم أكن الوحيد الذي يشعر بهذا الشعور، ورغم أني أعلم بأن هذا هو حال الحياة، وأن الحياة صعبة وتتطلّب العمل والجهد، لكن الحديث عن الأمر مختلف عن الخوض في ثناياه. وصلت إلى قناعة مؤخرًا، وهي أن رائد الأعمال الحقيقي والناجح هو الذي يستطيع التعامل مع الأوقات الحرجة والصعبة بكفاءة. اكتسبت بعض الخبرة بعد خوض هذه التجربة، والتي ساعدتني في التعامل مع هذه الإحباط والكآبة، وأرغب في مشاركتها ليستفيد منها الجميع: ابتعد قليلا استيقظت قبل أسابيع وأنا بحالة مزرية، كتب بعض الرسائل الإلكترونية ولكني لم أستطع متابعة النظر إلى شاشة الحاسب، عندها ذهب لممارسة الرياضة لبعض الوقت، عدت لأجد نفسي في ذات الشعور ولم أستطع العمل، بعدها قرّرت الذهاب للقاء بعض الأصدقاء، ولدى عودتي في اليوم التالي شعرت برغبة في العمل وتابعت عملت وتجنبت الغوص في كآبة اليوم السابق. فرق تسد عندما أشعر بالعسر أو اللامبالاة، أحاول تجربة فعل الأشياء على مراحل وأجزاء، ومن ثم أقيّم ما أشعر به بعد ذلك، حيث يعطيني هذا الأمر إحساسًا بأني قد أنجزت شيئًا ما ويحثني على المتابعة، طبعًا قد لا يُجدي هذا الأسلوب نفعًا دائمًا ولكن من المجدي تجربته. استعراض قائمة المهام يجب أن تمتلك قائمةً من المهام التي يجب إنجازها في كل يوم، فخلال أيام العمل أشعر في بعض الأحيان بعدم الارتياح حول مجريات سير العمل، وكان ذلك يؤثّر بشكل مباشر على حالتي النفسية وبالتالي على مستوى الإنتاجيّة، ولكن مع وجود قائمة بالأشياء التي فعلتها في ذلك اليوم ورؤيتها مكتملة، قلّل هذا الأمر من الإحباط الذي كاد أن يقتل اليوم. العوائق ما أدركته أنّه في بعض الأوقات ما يمنعني من العمل هو وجود مهمّة واحدة تقع كالحاجز تمنعني من القيام بأي شيء آخر، فبدلًا من تشتيت نفسي باستعراض البريد الإلكتروني أو مواقع التواصل الاجتماعي محاولًا تجنّب المشكلة، حاولت معالجة هذه المهمّة بشكل مباشر وبإصرار، وبالفعل كانت النتائج طيبة، وفي معظم الأحيان كان بمقتضى أن المهمّة بالأساس لا تتعلّق بجوهر وصميم عملي. فمثلًا، لم أرغب في التعامل مع الضرائب في سنة 2010 وما يتعلّق بها، فقد كانت معقّدة، بالإضافة إلى أني كنت وحيدًا في الشركة قبل التوسّع، في نهاية المطاف نصحني أحد المرشدين بتوظيف محاسب خاص بالضرائب لإتمام هذه المهمة، وعليه حلّت المشكلة وزال الضغط وارتاحت نفسيتي. استعن بمرشد عرّفني أحد الأصدقاء ("مارك" وهو من روّاد الأعمال) على مرشدة قدّمت له العون والمساعدة من خلال تقديم آراء موضوعية صبّت في مصلحة عمله، وبالفعل هذا ما كان، حيث أنها ساعدتني بشكل فاق تصوّري من خلال الحديث عن نفسيتي ومشاكل العمل والإجراءات التي من الممكن أن اتخذها في سبيل تطوير شركتي. معرفة سبب وأصل المشكلة لماذا شعور الكآبة والكسل؟ ما هو أصل المشكلة؟ يجب الإجابة بشكل مباشر على هذا السؤال، فبالنسبة لي، كان يصيبني هذا الشعور من أرقام المبيعات اليومية الخاصّة بشركتنا، وما ساعدني على الحد من هذا الشعور هو معرفة ما الذي أدى إلى تدني الأرقام، والكتابة عن الأمر من أجل المرات القادمة، ليس هذا فقط بل أصبحت أركز على الأرقام والرسوم البيانية الإيجابية بدلًا من الغرق في بحرٍ من الأحزان مع الأرقام السلبية. المرشدون أصبح للمرشدين دور فعال في الشركة ولا يمكن الاستغناء عنهم، ولم يقتصر الأمر على مستوى الشركة، بل ساعدوني شخصيًا في الحفاظ على سلامتي العقلية، وهذا شيء قد لا يتحدّث عنه الناس بالقدر الكافي، ففي مشاريعي السابقة، كان لدينا مرشد وكان من المحترمين في عملهم، ولكنّي لم أتمكن من إيجاد الوقت لتحدّث معه. إن كنت تبحث عن مرشد، إليك بعض النصائح التي يجب أخذها بعين الاعتبار: اسأل الأشخاص الذي تحترمهم وتُعجب بهم واطلب مساعدتهم، فهذا ما قدّمه لي "مارك" عندما زكّا لي تلك المرشدة والتي كانت خير ناصحٍ لي، فمن الصعب الحصول على الاهتمام والمساعدة من أي شخص، ولكن من السهل الحصول على النصيحة المناسبة من أُناسٍ يعيشون ويجنون قوت يوميهم من تقديم النصائح والإرشادات. تأكّد من أن الشخص الذي سيساعدك يملك الوقت الكافي لك ولمشاكلك. جِدْ الأشخاص الذين يمكن لك أن تقدّم لهم شيئًا مقابل مساعدتهم لك، قد يبدو ذلك غريبًا، ولكن عليك أن تتأكد من أنهم سيحصلون على شيء ما في المقابل، أي يجب أن تكون العلاقة متبادلة وقائمة على منفعة للطرفين. المحرّر: ما أشار إليه نوح نقطة في غاية الأهمية، وكثيرًا ما أجد العديد يرتكب هذا الخطأ، حيث يقوم أحدهم بإرسال رسالة لي من دون سابق إنذار يطلب النصيحة، قد أبدو جحودًا بعض الشيء ولكن ما مصلحتي، وما الذي سأجنيه بالمقابل، ولا أقصد المال هنا طبعًا، على الأقل ليكن السؤال سؤالًا فريدًا، سؤالًا لم يجب عنه الجميع في الإنترنت، سؤالًا لم أجب عنه في مدونتي، سؤالًا يكون من الممتع الإجابة عنه. جرّب واختبر، ليس بالضرورة أن يكون الشخص الناصح عارف بخفايا عملك، المهم على هذا الشخص أن يفهمك، تحدّث معه مرّة أو مرتين لترى كيف ستشعر بعد هذا الحديث، لا تبالغ في عدد المقابلات، حيث أن لقاءً واحدًا سيكون كفيلًا لأخذ فكرة مناسبة. امتلك هدفًا واضحًا عند السؤال، فمن الرائع أن يقدم المرشد النصيحة التي لم تدرك وجودها بنفسك، ولكنه من الجيد أيضًا لو نبعت هذه النصيحة من قضايا وأمور محددة، بمعنى آخر، من الأفضل على النصائح والإرشادات أن تحل مشاكل تعانيها بالفعل بدل أن تكون نصائح عامّة. المحرّر: أيضًا هذه نقطة هامة للرسائل الفاترة، فمن السهل مساعدة شخص ما قادر على التواصل بأقل الجمل والكلمات لشرح مشكلته وما هو بالضَّبط مراده، فغالبًا سيكون من السريع والسهل إما تقديم النصيحة أو الإشارة له إلى بداية الطريق، أو حتى الدفع به نحو الأسئلة التي يجب أن تُسأل. البارحة وقُبيل الانتهاء من كتابة هذه المقالة كنت أشعر ببعض العُسر، حيث كنت أجد صعوبة في التركيز، لذا ما كان مني سوى مغادرة المكتب، ركضت بعض الشيء، ومن ثم تحدّثت مع أحد المرشدين، وأخيرًا أنهيت يومي بعشاءٍ فاخر مع خطيبتي. أظن أن ما أحاول قوله هو أنّه لا مهرب من ضغوطات العمل، ولكن من الحكمة تجهيز نفسك إلى هذه المواقف والعقبات والأوقات العصيبة، والتي ستنال منك لا محالة، وقد يكون من الصعب التحدّث عن مشاكلنا النفسية، وهو أمرٌ أستطيع تفهمه تمامًا، ولكن ما رأيك بتحدّي نفسك، ما هو أسوء شيء من الممكن أن يحدث؟ روّح عن نفسك ولو بتعليق. ترجمة -وبتصرّف- للمقال Fighting micro-burn-out لصاحبه JASON COHEN. حقوق الصورة البارزة: Designed by Freepik.
  9. يعدّ أمر tar من بين الأدوات التي يشيع استخدامها في سطر أوامر لينكس، إلا أن جوانب مفيدة كثيرة في الأمر تبقى مجهولة. نعرض في هذا المقال بعض أشهر استخدامات الأمر tar إضافة إلى استخدامات رائعة أخرى يقل الانتباه إليها. أول ما تجب معرفته هو الغرض الأساسي من tar؛ إذ يعمل الأمر على جمع الكثير من الملفات في واحد. إذا نفذت أمر tar على مجلّد من 37 ملفّا فستحصُل على ملفّ واحد يضمّها جميعا وبالتي يسهُل مشاركتها مع الآخرين. كما أن الأمر يحافظ على بنية المجلّد ويمكن أن يحافظ على الأذونات ومعلومات الوقت والزمن كذلك. الخيارات في ما يلي قائمة بأهم الخيارات التي يمكن استخدامها مع tar. c: إنشاء ملف أرشيف. f: استخدام مُخرج الأمر لإنشاء ملف. تظهر مخرجات الأمر في الطرفية فقط إن لم يٍُستخدَم هذا الخيار. x: استخراج محتويات ملف أرشيف. j: استخدام خوارزمية bzip2 لضغط الملفات. z: استخدام خوارزمية gzip لضغط الملفات. p: الحفاظ على الأذونات عند استخراج الملفات. t: الحصول على قائمة بمحتويات ملف الأرشيف. v: عرض تقدّم عمل الأمر أثناء تنفيذه. d: عرض الفروق بين ملف الأرشيف ونظام الملفات. إنشاء ملف أرشيف إنشاء ملف أرشيف لمجلّد: tar cf directory.tar directory إنشاء ملفّ أرشيف انطلاقا من مجموعة ملفات: tar cf directory.tar file1 file2 file3 إنشاء ملف أرشيف مضغوط بخوارزمية bzip لملفات mp3 الموجودة في المجلّد الحالي: tar -cvf mp3collection.tar ./*.mp3 إنشاء ملف أرشيف من المجلد /home/academy/ مع الحفاظ على الأذونات: tar cvpf academy.tar /home/academy/ إنشاء أرشيف من المجلد etc/ مع استبعاد المجلد الفرعيّ apache2: tar cvf etc_without_apache.tar –exclude='/etc/apache2/' ضغط الملفات إنشاء ملف مضغوط بـbzip2 مع عرض تقدّم عمل الأمر في الطرفية: tar cjvf directory.tar.bz2 directory/ إنشاء ملف مضغوط بـgzip مع عرض تقدّم عمل الأمر في الطرفية: tar czvf directory.tar.gz directory/ عرض محتوى أرشيف عرض محتوى ملف الأرشيف directory: tar tvf directory.tar.bz2 ... bluewaters_1440x900.jpg cloudyday_1440x900.jpg fragile_1600x1200.jpg coolemoticon_1440x900.jpg cloudyday_1440x900.jpg ... الاستخراج من ملفات الأرشيف استخراج محتوى ملف أرشيف: tar xvf directory.tar.bz2 استخراج ملف passwd فقط من أرشيف etc: tar xvf etc.tar.bz2 passwd استخراج مجلد postfix فقط من أرشيف etc: tar xvf etc.tar.bz2 /etc/postfix/ استخراج ملفات php فقط من أرشيف htdocs: tar xvf htdocs.tar.bz2 –wildcards '*.php' الفروق الفرق بين ملف أرشيف ومجلّد (في حال عدم ذكر المجلد فالمقارنة تكون مع مجلد بنفس اسم الأرشيف في المجلد الحالي): tar df directory.tar.bz2 البحث عن ملف في الأرشيف: tar df directory.tar.bz2 directory/file1 ملحوظة: يجب في إصداراتٍ من tar تمرير خيار خوارزمية الضغط أثناء استخراج الملفات أو أثناء النظر في فروق ملفات أرشيف مضغوطة)؛ إلا أن الأمر اختياري في أغلب الإصدارات الأخيرة. مثلا: tar xjvf etc.tar.bz2 /etc/postfix/ بدلا من: tar xvf etc.tar.bz2 /etc/postfix/ ترجمة -وبتصرّف- لمقال A tar Primer لصاحبه Daniel Miessler.
  10. أنا مدمنة على العمل. وإذا كنت مستقلاً أو رائد أعمال فأنت على الأرجح تعاني من نفس المشكلة، لا تستعجلوا. سأوضّح كل شيء. كنت فيما مضى أعمل من 6-7 أيام في الأسبوع لمدّة لا تقل عن 14 ساعة يوميًا، عامًا تلو الآخر، كنت أجيب على مهامي وبريدي الإلكتروني في الساعة الثانية صباحًا. لقد كنت أعمل دون رحمة، ولم أكن أعطي لنفسي فرصة الحصول على عطلة أو فترة استراحة. يبدو هذا ضربًا من الجنون أليس كذلك؟ إليكم المزيد: أنا لست وحدي من يفعل هذا، إن إدمان العمل في الحقيقة فخ وقع فيه الكثير ممن عرفتهم من المستقلين. كيف حدث هذا؟ ألم نقرر ترك وظائفنا لنسعى وراء تحقيق أحلامنا؟ لقد استقلنا من شركاتنا لنصبح مدراء لأنفسنا، ولكننا في الواقع تحولنا إلى موظفين مرة أخرى، وعند مدير سيء على ما يبدو. لا أزال أذكر الأوقات التي كنت أرى فيها أصدقائي الّذين يعملون في وظائف مكتبية وهم يأخذون الإجازات، ويمضون أيامًا بعيدًا عن أعمالهم، بينما أكون أنا جالسة أمام شاشة حاسوبي حتى في إجازات أعياد الميلاد وعطلات نهاية الأسبوع. لا أخفيكم سرًا بأنني كنت فخورة بذلك، إنّ إرادتي فاقت كلّ شيء، من يهتم بالضغط والإجهاد، لقد كنت قد تحوّلت إلى آلة للإنتاج. ولكن الحقيقة أن هذا كان جنونًا بكل معنى الكلمة. لقد كنت أقوم بإنجاز أعمالي على أكمل وجه، ولكن جسدي كان ينهار تدريجيًا في المقابل. كنت أتناول الطعام بكميات كبيرة، كما أنني عانيت كثيرًا من التشنّجات أسفل ظهري، ووصلت إلى الحد الذي أخاف فيه من تصفح بريدي الإلكتروني، كان كل مشروع أقوم به يستنزف طاقتي، وكنت قد أصبحت غارقة في موجة عارمة من الأعمال والمهمّات التي صنعتها بنفسي. وفي يومٍ من الأيّام، أفقت من غفلتي لأكتشف بأن وزني كان قد زاد 7 كيلوجرامات، وبأني أعاني من الآلام الجسدية باستمرار. ترى متى كانت آخر مرة استحممّت فيها؟ ومتى كانت آخر مرة غيّرت فيها ملابسي وخرجت خارج المنزل؟ كان علي أن أفعل شيئًا ما حيال ذلك، توجّهت تلقائيًا إلى Google وبدأت بالبحث عن التأثيرات التي يُحدثها الضغط والإجهاد على الجسم. وأدّركت بعد بحثي بأنّ كل ما كنت أشعر به من ألم وأرق ونسيان دوري، وتغييراتٍ حادة في المزاج، كانت بسبب الضغط الذي أعرِّض نفسي له. لقد اكتشفت بأن الضغط المستمر يجعل الدماغ في حالة طوارئ، ويحفز الجسم على إفراز كمّيات منتظمة من الهرمونات غير المستحبة (مثل الأدرينالين، الكورتيزول و النورإبينفرين) والتي تؤدي بالنتيجة إلى تدمير الجهاز المناعي، وانقباض عضلات الجسم، وبذلك نكون قد وضعنا أنفسنا على أقصر الطرق المؤدّية إلى الكثير من المشاكل الصحية والنفسية، والتي تتراوح بين السُمنة وارتفاع ضغط الدم، لتصل إلى القلق والتوتر وأمراض القلب. بدا واضحًا أنّ هناك ما يجب عليَّ فعله، وخطوة بخطوة، ويومًا تلو الآخر، قمت بتخفيف الضغط والإجهاد الذي أتعرض له. لقد توجّب عليَّ أن أفعل هذا لأحافظ على صحتي وعملي ومستقبلي، كان الوقت قد حان للتوقف عن العمل كآلة، وإعادة تحديد أولويّاتي بدلًا من تجاهلها طمعًا في الحصول على المال. وفي الطريق إلى ذلك، تعلمت كيف أن عِدة تغييرات بسيطة بإمكانها أن تخلق عالمًا مختلفا تماما. ضع حدودا وقواعد للطريقة التي تود العمل بهاإنّ السبب الذي جعلني أغرق في المشاريع كان يرجع بنسبة 70% إلى عدم إيجادي للضوابط والحدود لبيئة عملي، كنت أجيب على المكالمات ورسائل البريد الإلكتروني في أيّ وقت تردني فيه، كنت أفعل ذلك خوفًا من أن يتركني العميل في حال عدم استجابتي له على الفور. لم يكن باستطاعتي ترك المشاريع والانسحاب بكل بساطة، ولكن ما كان بإمكاني تغييره هو النّهج الذي كنت أسير عليه. لقد عمِلت تدريجيًا على أن أضع قلقي جانبًا وأشرح للعميل بأن عليه الانتظار للغد أو حتى نهاية الأسبوع ليتسلّم طلباته. لقد بدأت بالتعامل معهم ومع نفسي بصراحة ووضوح حول قدرتي على إنجاز المهام. كما أنني قمت بزيادة أسعار خدماتي لأخفف من أعباء العمل، مع استمرار قدرتي على دفع الفواتير. ولك أن تتخيّل ماذا حصل، لقد كان الكل متفهمًا. تذكَّر، كلما وضعت حدودًا وضوابط بشكل أفضل، فإنك ستمنح مشاريعك الشخصية وقتا أكبر. وهذا ما سيصبُّ في صالح تركيزك على ما تفعله كنتيجة. كما أن ذلك سيكون الطريقة المثلى للتوقف عن الخوف من رسائل البريد الإلكتروني، والإصابة بالقلق والتوتر في منتصف الليل. الاستراحات مهمة، احترم حاجتك إليهاعندما تكون في خِضم العمل على إنجاز المَهمّات، فإنه من السهل عليك أن تسخر في قرارة نفسك من أولئك الذين ينشرون صورهم وهم مستمتعون بعطلاتهم على فيس بوك وإنستجرام، فمن الواضح أنهم لا يعملون بجد كما تفعل أنت. لكن الحقيقة هي أنهم يعملون بجد مثلما تفعل، ولكنّهم يعتبرون الحصول على إجازة أمرًا غير قابل للتفاوض، فهم مقتنعون بحاجتهم إلى وقتٍ مستقطع يمضونه بعيدًا عن مكاتبهم، ليمنحوا أنفسهم مساحة لتغيير الأجواء وتجديد الطاقة. بالنسبة لي فقد بدأت بالتدّريج. شرعت في الذّهاب مشيًا لإحضار الغداء لمدة 20 دقيقة مثلاً، أو أقرأ كتابًا لبعض الوقت، أو ربما أشاهد مسلسلاً تلفزيونيًا سخيفا قبل أن أعود إلى العمل مرة أخرى، وقد تبين أن ذلك ساعدني على تخطي ميولي لتأجيل الأعمال، وبدلًا عن تصفح فيس بوك وأنا نصف ميتة دماغيًا، كنت أعود نشيطة ومنتعشة وعلى أتم الاستعداد للعمل. توقف عن العمل لساعات متأخرة من الليلأنا مدينة لشريكي في هذه النقطة، فقد كان هو السبب الذي جعلني أتعلّم كيف أجبر نفسي على إطفاء الحاسوب عند الساعة السابعة أو الثامنة مساءا، وقضاء ما تبقى من الليل دون عمل، فعندما تعمل من المنزل، يصبح من السهل أن يتحوّل ليلك إلى نهار، وهذا ما سيجعلك تصاب بالإرهاق، وعِندها، ستصبح فريسة سهلة لأنماط متعددة من الإلهاء السلبي. حدد لنفسك وقتًا مناسبًا تتوقف بعده عن العمل، وافعل ما بوسعك لتلتزم به. لعمل حتى أوقات معقولة من اليوم، وقم بعدها بإطفاء الحاسوب، وترك هاتفك على الوضع الصامت، لتكمل ما تبقى منه فالاسترخاء قبل أن تخلد للنوم. لن يموت أحد في حال لم تجِب على بريدك الإلكتروني، وبإمكان عملك الانتظار حتى الغد. أمض وقتا أطول خارج المنزل، ومع الأشخاص الذين تحبهمإنّ التّركيز على العمل فقط والعزلة هما من المشاكل الشائعة في أوساط المستقلين ورواد الأعمال. فأنت تمضي أيامًا وأسابيع في منزلك غارقًا في بحر من المشاريع لتشعر بعدها بأنك متعب وغير قادر على الخروج مع أصدقائك أو مع الأشخاص الذين تحبهم. جرّب بدلًا من ذلك أن تجعل ضغط العمل سببًا يحفزك على الخروج لتغيير الأجواء، وقضاء بعض الأوقات مع الأهل والأصدقاء. إنّ خروجك خارج المنزل لإنجاز أعمالك في المقهى أو مساحات العمل الجماعية، ينظّم يومك بشكل أفضل، ويساعدك في حل مشكلة الانعزال. كما أن بذل الجهد للتواصل مع الأصدقاء أو مع الأشخاص الذين تحبهم لقضاء الأوقات سوية، ومعرفة أخبارهم وتناول الطعام معهم لمرّة واحدة في الأسبوع أو نحو ذلك، سيجعلك في مزاج أفضل. تناول طعاما صحيا، تمرن، ونم جيدايُفترض أن تكون هذه النقطة واضحة للجميع، ولكن يا للعجب، لكن يبدو وكأن تناول الوجبات السريعة على الأريكة أصب أفضل في عيون الكثيرين من القيام بالتمارين الرياضيّة، أو إعداد صحن من السلطة لنفسك على الغداء. إذا كنت تفكر بأن وقتك لا يسمح لك بتناول طعام صحي أو اختيار نمط نوم أفضل، فتأكد بأنّ ذلك يعتمد كليًا على طريقة تنظيمك لجدولك اليومي. وفي حال اتخذت قرارك بأن تجعل صحتك على رأس أولوياتك، فإنّ طريقة تنظيم أعمالك هي الأداة المثلى التي ستساعدك على تحقيق أهدافك. كبداية، حاول أن تجعل المواعيد النهائية التي تحددها لتلقي المكالمات والمشاريع، قريبة من الأوقات التي ستحتاجها لإعداد الغداء\العشاء، قم بالتمارين الرّياضية لمدّة 30 دقيقة يوميًا، واخلد إلى النوم في أوقاتٍ مناسبة. خذ نفسافي حين أنني أعتبر التأمل تمرينًا رائعًا، وأحاول تعلّم استخدامه بشكل أكبر بين الحين والآخر، إلا أنه ليس بإمكان الجميع التحلي بالصبر، والجلوس هادئين لتلك الفترات الطويلة التي يحتاجها. ولقد تعلّمت أثناء فترة إقلاعي عن التدخين تمرينًا تنفسيًا بسيطًا ساعدني لاحقًا على الاحتفاظ بهدوئي في عدة مواقف مزعجة واجهتني. يقلِل التمرين نسبة إفراز الأدرينالين، ويُجبر جسمك على الاسترخاء للحظات حتى تسترجع قدرتك على التفكير بوضوح. قم بتجربته الآن: خذ نفسًا عميقا، ليكن عميقًا بكل معنى الكلمة، استمر باستنشاق الهواء حتى تمتلئ رئتك به، احبسه في صدرك من 5-10 ثوانِ. ثم قم بإخراجه كاملا، دون أن تترك أي جزء منه في رئتك، كرّر هذه العملية ثلاث مرات. تأكد بأن النتيجة ستُفاجئك. ابحث عن مسببات الضغطلن يحدث أي تغيير حقيقي في حياتك على المدى الطويل إذا لم تلتزم بالتفكير المتعمّق والأفعال المدروسة. فإذا كنت تعاني من الضغوطات، لا تتوانى عن أخذ وقت مستقطع ليوم أو يومين لعمل قائمة مُفصّلة بأهم الضغوطات التي تواجهها. دوِّن هذه الضغوطات وابدأ بشحذ أفكارك للبحث عن حلول لمعالجتها والتخلص منها. على سبيل المثال، إذا كان المال هو ما يسبب لك الضغط، قم بإعادة النظر في ميزانيتك، وحاول إيجاد الحلول للتوفير من قيمة نفقاتِك لمدة 3-6 أشهر. سيأخذ هذا وقتا، ولكن وجود هذا الرصيد الاحتياطي في حوزتك، سيجعلك مرتاح البال. هل مصدر الضغط هو عميلٌ مزعج يغمُرك بالطلبات والتعديلات؟ كل ما عليك فعله إذا هو إعداد خطةٍ للتخلص منه، أو قم ببساطة بإرسال بريدٍ إلكتروني تخبره فيه بأنك غير قادر على مواصلة التعامل معه. هل لديك الكثير من المهام الإدارية التي تدفعك للجنون؟ إذا استعن بمصادر خارجية، فهُناك الآلاف من المستقلين المميزين الذين ينتظرون الفرصة لمساعدتك، اِبحث عنهم. تذكر: عملك مهم، ولكنك تملك جسدا واحداعندما تكون مخلصًا للعمل الذي تقوم به وتكرس نفسك له، فإنه يصبح من السهل جدًا عليك الانجراف إلى عبارات الشعور بالذنب مثل "يجبُ أن أعمل، يجب أن أضغط على نفسي لأحصل على مزيد من المال". إنّ ذلك الصوت الداخلي في رأسك، والذي يقول لك بأنك شخص كسول، أو أنك ستخسر عُملاءك إذا توقف عن العمل في عطلة نهاية الأسبوع، ما هو إلا صوتٌ كاذب وقذِر، تذكّر هذا جيدًا. إذا كنت تشعر بأنك ترزح تحت وطأة الضغوطات، لا تنزعج وتلقي باللوم على نفسك، بدلًا من ذلك، فكر مليًا واكتشف: مالذي بالإمكان تغييره؟ كيف بإمكانك أن تحافظ على صحّتك وصفاء ذهنك وتركيزك ناهيك عن تقديمك للعملاء ما يرغبون به. وتذكر: هناك دائما طريقة، ما دُمت تملك الإرادة للتغيير. والآن، انهض واترك مكتبك، لقد حان الوقت لأخذِ استراحة.  ترجمة ـوبتصرف- للمقال: Ditch your desk (and your guilt): A freelancer’s guide to beating stress لصاحبته : Hillary Weiss. حقوق الصورة البارزة: Designed by Freepik.
×
×
  • أضف...