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

لوحة المتصدرين

  1. Mohamad Ibrahim3

    Mohamad Ibrahim3

    الأعضاء


    • نقاط

      2

    • المساهمات

      1311


  2. عمرو محمود4

    عمرو محمود4

    الأعضاء


    • نقاط

      1

    • المساهمات

      17


  3. Jana-alhob Shalgheen

    Jana-alhob Shalgheen

    الأعضاء


    • نقاط

      1

    • المساهمات

      191


  4. Anas Albahhah

    Anas Albahhah

    الأعضاء


    • نقاط

      1

    • المساهمات

      68


المحتوى الأكثر حصولًا على سمعة جيدة

المحتوى الأعلى تقييمًا في 03/22/15 في كل الموقع

  1. النمو السكاني المُطّرد والبطالة المُتنامية الناجمة لاسيما في أوساط الشباب أظهرت مُعاناة حقيقية في دول كثيرة من العالم، وما يجدر ذكره بأن البطالة المُطلقة امتدّت لتشمل أصحاب الشهادات العُليا ولم تقتصر على متوسطي التعليم أو طبقة الأُميين، هذا عدا عن نمو واضح في فئة محدودي الدخل كتحصيل حاصل للتضخم. كُلها أسباب حقيقيّة دفعت الحكومات إلى تشجيع الأعمال الحُرة سواء أكان بشكلها العائلي (الأعمال أو المشاريع العائليّة) أو كانت مُوجّهة لباقي أفراد المُجتمع (أعمال الأفراد المُستقلين أو مجموعات الأفراد المُستقلين). وكنتيجة لذلك نمت خلال العقد المُنصرم مفاهيم جديدة أصبحت تتردد على مسامعنا كالـ (مُستقل freelancer – الرائد أو المُبادر entrepreneur والذي يختلف بطريقته عن العامل الحر .. ومفاهيم أخرى). ما هو العمل الحرّ ومن هو المُستقل العمل الحر هو مُصطلح يُطلق على الأعمال التي تُدار من طرف أشخاص يعملون لحساباتهم الشخصيّة والذين أطلقنا عليهم مفهوم المُستقلين "freelancers". الجدير بالذكر أن العمل الحرّ قديم بقدم البشرية وإن اختلفت مُسمياته وتطورت أدواته وقنواته (قد يكون العامل الحر مُزارعًا – مُحاميًا – راعي أغنام - روائيًّا .... الخ). العمل الحرّ قد يكون مُعتمدًا على المادة (رأس المال) كأن يقوم طبيب مُتخصص بترك وظيفته في مُستشفى وافتتاح عيادة خاصة به. وقد يكون مُعتمدًا على المهارات (كمهارات التصميم والبرمجة والكتابة ... الخ). والاعتماد على المهارة مُرتبطة بشكل أكبر في "العمل الحرّ". بإمكاننا تقسيم العمل الحرّ إلى: عمل مُستقل كامل: أي اعتماد الفرد على العمل الحرّ كعمل أساسي مُطلق. عمل مُستقل بشكل جزئي: أي اعتماد الفرد على العمل الحرّ كعمل ثانوي "من يعمل بشكل إضافي إلى جانب وظيفته الصباحية". سنتناول معكم في سلسلة من المقالات جميع المبادئ والإرشادات التي يحتاجها الفرد للتحوّل إلى مُستقل كامل أو مُستقل بشكل جزئي، مُرتكزين على العمل الحرّ بشكله الافتراضي (باستخدام شبكة الإنترنت) بحيث سننتقل معكم خطوة بخطوة ابتداءً من الانطلاق وتأسيس العمل الحرّ، مُرورًا بآليات توجيه العروض والترويج وإدارة العمليات والوقت، إضافة إلى التطرق لأبرز المشاكل التي قد تعترض العمل الحرّ مع إيضاح الحلول. إذن .. إن كُنت عاطلًا عن العمل، أو كُنت تبحث عن تنمية لمواردك وتحسين وضعك المعيشي بعمل إضافي إلى جانب وظيفتك فهذه السلسلة موجهة لك بشكل خاص. سنستخدم في هذه السلسلة مُصطلحي "العمل الحر" ، "العمل المُستقل" للدّلالة على نفس المفهوم (freelancing) وسنشير إلى الـ freelancer بمُصطلحي "مُستقل" أو "العامل الحر". أسّس عملك المُستقل الآن "عجلة الحياة مُستمرة والأمان فكرة خُرافية غير موجودة في الواقع، وعلى الإنسان الفطن أن يسعى بعد التّوكّل على الله إلى الاستمرار في طلب الرزق وتأمين الحياة الكريمة له ولعائلته ومُحيطه" كلمات لطالما سمعناها من أشخاص حكماء، عصاميين وناجحين كانوا على يقين بإمكانياتهم وامتلكوا الشجاعة لاتخاذ قرارهم بالاستقلال والانطلاق بأعمالهم. أبرز الميزات التي يجب أن تدفعك الآن للعمل المُستقل باستخدام الإنترنت: 1- الإدارة الذاتية: تميل النفس البشرية بطبيعتها إلى القيادة والرغبة في امتلاك اتخاذ القرار، لذلك من الطبيعي أن تجد أفراد كُثرًا لا يتآلفون مع فكرة العمل الوظيفي رغم أنهم مُنضبطين ومُنظمين. 2- مصاريف تشغيل مُنخفضة وتكاد تكون معدومة. 3- لا مكان – لا زمان: يتميز هذا النوع من الأعمال بمرونة عالية بحيث يُمكن مُتابعة العمل في أي مكان وفي أي زمان من خلال التواصل مع الزبائن باستخدام شبكة الإنترنت. 4- سوق عالمي مفتوح وطلب في ازدياد مُطّرد. 5- العمل في أمور مُحببة. (مُعظم العاملين المُستقلين بدؤوا أعمالهم عبر استغلال هواياتهم المُحبّبة). 6- زيادة الدخل ورفع درجة الأمان المعيشي. "العمل الحرّ لا يرتبط بعدم الانتظام، فنجاحك كمُستقل على المدى الطويل يرتبط بكونك مُنظّمًا، مُلتزمًا، مُنضبطًا وخبيرًا بمجال عملك" نحث الأفراد في مُجتمعنا العربي الفتي إلى التفكير جديًّا بمواكبة هذه التّوجه لما له من منفعة عليهم وعلى أسرهم، مُجتمعاتهم، وأوطانهم. أما عن الأدوات، والقنوات، وطرق العمل الحرّ وجميع التفاصيل الأخرى فهذه الأمور ستعرف عنها الكثير من خلال هذه السّلسلة. استغل خبراتك ومواهبك واستفد إذا ما استثنينا أصحاب الإمكانيات العقلية المُنخفضة وفئة الأطفال، فإنه لا يُمكن تصديق فكرة وجود شخص على سطح البسيطة مُنعدم تمامًا من أي موهبة، أو مرّ خلال حياته سواء إن صغرت أو عظُمت بتجارب مُختلفة نمّت لديه خبرات فوّقته على أشخاص آخرين هُم أيضًا متفوقين عليه بخبرات أخرى. أساس العمل الحرّ يُشرق من هُنا بعض الأشخاص بارعون في فئات مُعينة من الفنون (كالفن المعماري – الرسم – التصميم - التصوير ... وغيرها)، والبعض منهم حباهم الله بحب الرياضيات والمنطق فتجدهم يستمتعون في كتابة الأسطر البرمجية، وبعضهم مر بتجارب أكسبته خبرات عملية في أمور حياتية مُختلفة (كالترجمة – تقديم النصائح والاستشارات المُختلفة ... وغيرها)، وقد تجد بعضهم الآخر بارعًا في إسعاد الآخرين،نعم إسعاد الآخرين هو عمل مُربح ويبحث عنه أشخاص كُثر. عليك منذ الآن بالتفكير في أمور تُحبها وتُجيد فعلها على حد سواء، دوّنها ورتبها ثم فكّر بشكل منطقي في كيفية استفادتك منها، ولا تغفل أبداً التخصص بقدر المُستطاع. أمثلة "رائد" موظف في أحد البنوك بدوام صباحي. يمتلك رائد إلى جانب خبرته المصرفية قدرة عالية في تدوين القيود وإعداد ميزان المُراجعة والقوائم المالية وأمور مُحاسبية أخرى إلّا أنه يعيش في مدينة صغيرة مُتخمة بالسكان والحصول على وظيفة إضافية مسائية أشبه بالمُعجزة. توجّه "رائد" إلى حاسوبه المنزلي المُرتبط بشبكة إنترنت وأنشأ حسابًا في إحدى منصات العمل المُتخصصة للمُستقلين وعرض خدماته على جمهور واسع وبدأ في مساء كل يوم بمُتابعة الطلبات الواردة وتنفيذها بجوار مدفئته وكوب القهوة خاصته. أما "أحمد" صاحب الإجازة الجامعية في التاريخ، فهو عاطل عن العمل تمامًا، ولم يترك أبدًا أي باب إلّا وقام بطرقه في سبيل إيجاد وظيفة، لكنه بالرغم من ذلك لم يحصل على مُراده في بلد عربي مليء بالكفاءات فقير بالوظائف. ذات يوم أيقن "أحمد" بأن عليه التفكير بشكل أوسع خارج نطاق بلده فقرر الاستفادة من إمكانياته الجيّدة في الكتابة الإبداعية والتنقيح اللغوي ليعرض خدماته على جمهور واسع في بلدان مُختلفة حول العالم باستخدامه لشبكة الإنترنت. صديقنا المُفترض "أحمد" وبعد أيام وأشهر قلة من إثبات نفسه ككاتب مُبدع على شبكة الإنترنت أصبح يبحث عن أوقات فراغ بسيطة كنوع من الإجازة. على جانب آخر من العالم هُناك ربة المنزل "هبة" التي تعيش في مدينة سياحية ساحرة، والتي قررت تزويد الأشخاص المُهتمين بالسياحة بإرشادات سياحية حول مدينتها بحيث سهّلت عليهم عناء البحث واستفادت من نصائحها ماديًا. وهُناك "فاطمة" كاتبة الروايات الناشئة التي لا تمتلك مقومات مالية لطباعة ونشر رواياتها، والتي قررت استغلال إحدى مواقع العمل الحُر بجعله وسيط لبيع رواياتها بعد أن حولتها إلى نسخ إلكترونية، فساهمت تلك الخطوة ببيعها لمئات النُسخ وتحقيقها لشهرة واسعة. أيضًا هُناك عبد العزيز الذي رزقه الله عز وجل بصوتٍ رخيم وموهبة في الإلقاء فقرر الاستفادة من ذلك عبر تقديم خدمات التسجيلات الصوتية والإلقاء حسب الطلب. منصات العمل للمُستقلين انتشرت على شبكة الإنترنت العديد من منصات العمل الخاصة بالمُستقلين والتي تحمل بمُعظمها الصفة العالمية، ولكل موقع منها طرق عمل وتصنيفات وإمكانيات خاصة، إلّا أنها اتفقت جميعها بعمل دور الوسيط بين أصحاب المواهب والخبرات (المُستقلين)، وأصحاب الأعمال (طالبي العمل) الذين ليسوا بالضرورة أن يكونوا مُنعدمين من تلك الخبرات إنما قد يُحاولون تركيز استغلال أوقات عملهم باستئجارهم لمُستقلين جاهزين لأداء مهام مُعينة مُقابل عوائد مالية. التالي باقة بأهم المواقع المُتخصصة بالعمل الحرّ عربيًا وعالميًا: أولاً: أشهر المواقع العربية للمُستقلين 1- مُستقل منصة عربية تعمل كصلة وصل بين أصحاب المشاريع والشركات من جهة والمُستقلين المُحترفين من جهة أخرى، بحيث يستطيع المُستقل بناء ملف تعريفي خاص به على الموقع يحوي نُبذة عنه وعن مهاراته إضافة إلى معرض خاص بأعماله. الجدير بالذكر أن الموقع أُطلق في أواخر العام 2014 وحاز خلال وقت قصير على شهرة واسعة من خلال تجسيده لخدمة حقيقية عبر أسلوب عرضي سلس واضح. 2- خمسات سوق عربي لبيع وشراء الخدمات المُصغرة في شتى المجالات، يستفيد منه آلاف الشباب العربي عبر تقديمهم لخدمات ومُنتجات مُصغرة بأسعار تبدأ بـ 5 دولار أمريكي فقط وطرحها على شريحة واسعة من الزبائن المُستفيدين من تلك الخدمات ذات الأسعار الاقتصادية. يتميز الموقع بإقبال مُرتفع ومصداقية عالية ودعم فني مُمتاز. 4- بيكاليا متجر خاص للمُصممين، يُمكّنهم من بيع تصاميمهم وأعمالهم الفنية للجمهور العربي عبر إضافة تلك الأعمال وشرحها بشكل واضح لزبائن المتجر مع توفير المُعاينة الحية بحسب الطلب. ثانياً: أشهر المواقع العالمية للمُستقلين: 1- Freelancer من أشهر مواقع العمل الحُر على مستوى العالم وأكثرها إقبالًا. يوفّر الموقع منصة سهلة التعامل تُمكّن أصحاب الأعمال والشركات من استئجار مُستقلين لتنفيذ مهام مُختلفة في التصميم والهندسة والعلوم والتسويق والخدمات القانونية وغيرها. 2- Odesk يلعب الموقع دور الوسيط بين أصحاب الأعمال والمُستقلين، بحيث يقوم صاحب العمل بعرض طلبه ويتقدم إليه طالبو العمل ممن يرون في أنفسهم الكفاءة، ويقوم صاحب العمل باختيار أحد المُتقدمين (أو أكثر من مُتقدم من المُستقلين). الموقع ضخم جدًا ولا يُستهان به على الإطلاق ولديه طرق وخوارزميات مُختلفة لإبراز أفضل الخبرات، لذلك وبالمُختصر كُلما كان المُستقل مُتخصّصًا أكثر ومُبدعًا أكثر في مجاله كُلما زادت مبيعاته وأرباحه. 3- Elance يُعدّ الموقع الأفضل في مجاله، وبإمكان المُستقل إنشاء حساب وإضافة بياناته وتحديد مجال العمل ضمن خيارات كثيرة مُتوفرة وأيضًا تحديد السعر وطريقة العمل. أكثر ما يُميّز الموقع احتواؤه على عدد كبير جدًا من المشاريع المطروحة، ووجود نسبة كبيرة من المشاريع ذات الميزانيات العالية، بالإضافة إلى موثوقيته العالية واحتوائه على خصائص وميزات مُمتازة. 4- Design Crowd منصة مثالية لعمل المُصممين المُحترفين في مجالات التصميم المُتنوعة (شعارات – أغلفة – بطاقات أعمال – تصميم مواقع ... الخ)، ما يُميّز الموقع بأن مُعظم مُرتاديه من أصحاب الأعمال يحترمون العمل التصميمي ويقدرون ثمنه، لذلك ستجد بأن أسعار الأعمال به جيّدة مُقارنة بباقي المواقع المُشابهة. 5- People Per Hour كما هو واضح من اسمه فإن الموقع يقدّم منصة تُمكّن المُستقلين من العمل بشكل حُر، بحيث بإمكان المُستقل إنشاء ملفه الشخصي بسهولة من خلال الموقع والبحث عن مشاريع تُناسب خبراته. يعتمد الموقع بشكل كبير على التقييم لذا فالعمل الجيّد المصحوب بتقييم إيجابي سيجلب بالتأكيد أعمال أخرى. 6- 99designs المكان الأمثل لعمل المُصممين المُستقلين، حيث يُوفر الموقع منصة غاية في الجودة تُمكّن المُصممين من عرض أعمالهم والتقديم للمشاريع. يتميّز الموقع بإقبال عالي جدًا من طرف أصحاب المشاريع ويُعدّ الأفضل في اختصاصه. 7- Guru هو الآخر موقع رائع وستجد عليه كمُستقل عدد كبير من فرص العمل في مجالات مُختلفة، كُل ما عليك فعله هو بناء ملف تعريفي مُتكامل والبحث عن أفضل فُرص. 8- Sellfy أفضل مكان للمُستقلين ممن لديكم مُنتجات رقمية (كتب إلكترونية – خطوط – قوالب – تسجيلات صوتية ..الخ) ويريدون بيع نسخ منها إلى أكبر عدد مُمكن من المُهتمين. تتميّز المنصة بسهولة التعامل كما يتميّز الموقع بانخفاض نسبة عمولته مُقارنة بباقي المواقع ذات نفس المجال حيث يتقاضى الموقع 5% فقط لقاء كل عملية بيع مُنتج رقمي تتم عبره. 9- Themeforest منصة مُوجّهة للمُصممين والمُبرمجين وهي الأفضل على مستوى العالم بمجالها. تُعدّ (ثيم فورست – themeforest) أفضل مكان لبيع القوالب والتصاميم والإضافات التصميمية والبرمجية، يتقاضى الموقع عمولة مُرتفعة نسبيًا كما أن لديه سياسة صارمة جدًا عند قبول أي ملفات أو قوالب للبيع لكن رغم ذلك فهو يُوفر شريحة ضخمة جدًا من المُشترين وهذا ما يُميزه، لذا يتوجّب على أي عامل مُستقل عند انعقاد نيته لصناعة مُنتج وبيعه من خلال المنصة أن يطّلع أولًا على تفاصيل وشروط الموقع بالكامل وأن يتصفح الأعمال الشبيهة بعمله والمقبولة على الموقع ثم يُعطي كل الاهتمام لإنجاز عمله على المستوى المطلوب، وعندها بالتأكيد سيكون قد حاك لنفسه بداية قصة نجاح مُبهرة! 10- Gumroad منصة عرض موجهة للمُستقلين تهدف إلى مُساعدتهم في بيع مُنتجاتهم الرقمية، فهي أشبه بالمتجر الذي بإمكانك أن تعرض وتبيع به مُنتجاتك الرقمية (كتب إلكترونية – برامج – شروحات – مقاطع فيديو ... الخ) بكل بساطة ودون أي تعقيدات. قد يخطر ببالك حاليًا السؤال التالي: لماذا لا أفتح متجري الخاص وأبيع أعمالي إلى زبائني مُباشرة وبالتالي أوفر على نفسي رسوم أو نسبة أرباح مواقع (منصات العمل الحُر)؟ السؤال مشروع، إنما ما رأيك بالوقوف أولًا على الميزات التي توفرها منصات العمل الحر: 1- توفير عناء ووقت وكلفة إنشاء متجر إلكتروني، فمنصّات العمل الحُر جاهزة وتحتاج منك فقط إدخال بياناتك وتأكيدها وبناء معرض أعمالك بطريقة عالية الجودة. 2- توفير وسائل الدفع المُختلفة. 3- توفير قاعدة عظيمة من المُتابعين والمُطّلعين على الخدمات، فمواقع العمل الحُر تُسوّق وتأتي بالزبائن لكامل شبكتها بالنيابة عنك. 4- توفير عامل الثقة للزبائن (أصحاب الأعمال) عبر وجود طرف ثالث ضامن لحقوقهم والمُمثّل بمنصة العمل الحُر، وهو أمر أساسي ومُحفّز لهم على الشراء. بينما إن كانت منصة الشراء خاصة بك وحدك وأنت صاحب القرار بها، فبالتأكيد مسألة الثقة بينك وبين زبائنك ستتطلب وقت طويل جدًا وهذا أمر طبيعي في المُعاملات المالية. بالتوقف والتفكير قليلًا في الميزات السابقة ستجد بأن رسوم (أو نسبة الأرباح المُقتطعة) هي بسيطة مُقابل الخدمة التي تتلقاها. تلميح: إن قيام منصات العمل الحُر بالترويج عن كامل شبكتها لا يعني أبدًا ألّا تسعى في التسويق والترويج لحساباتك في تلك المنصات عبر أساليب مُختلفة سوف نتحدث عنها في وقت لاحق. في المقالات القادمة سنناقش بالتتابع الخطوات العملية للانطلاق وآليات العمل والمُتابعة مع الوقوف على أهم المشاكل التي قد تعترض عملك كمُستقل والحلول لها إضافة إلى أمور أخرى ستمكنك بالنهاية من العمل بثبات لتحقيق النجاح.
    1 نقطة
  2. بعد قراءة هذاالدرس سوف تُصبح قادرًا على رسم رجل ثلج ثلاثي الأبعاد باستخدام Inkscape ، وفي النهاية سوف نحصل على فهم واضح وكامل لكيفية رسم الظلال والانعكاسات بالطريقة الصحيحة. يعدّ برنامج Inkscape حديث نسبيًّا، ويتطور بشكل متصاعد وهو محرر للرسوم المُتّجهة ويصنف مع برامج Adobe Illustrator و Corel DRAW. ويعمل على أنظمة Linux وWindows وMac، وهو برنامج مفتوح المصدر ومجاني، وينتج رسومات وتصميمات بصيغة SVG. سوف نرى طريقة عمل هذا البرنامج الرائع لنتمكن من رسم وتشكيل الصور ثلاثية الأبعاد، وسوف نستخدم رجل الثلج كمثال توضيحي لنعمل عليه. في البداية، سوف نرسم الأشكال الأساسية ونتحكم ونعدل عليها. يمتلك برنامج Inckscape أدوات لرسم العناصر الهندسية الأساسية مثل الدوائر والقطوع والمستطيلات والنجوم والخطوط المتعددة، ولكن إن أردنا للرسوم أن تبدو أكثر وضوحًا من الأفضل أن نحدد الشكل (ctrl+shift+c) ونضفي عليها بعض الانحناء. يُفضّل رسم الأشكال الأكثر تعقيدًا باستخدام القلم Bezier curve tool، أقوم عادة برسم خط منحنٍ ثم أثنيه، ثم أحسن مواقع العقد وأغير شكلها (نتوء، أو مستوية) نبدأ برسم كرات الثلج والعيون بدءًا من شكل دائرة ثم نستخدم أقواس الدائرة لصنع الحواف السّفلية والعلوية للدّلو الذي سأضعه على الرأس، وأما لرسم الأنف يمكن استخدام انحناءات Bezier curve tool، وأخيرًا باستخدام نفس الأداة ننهي صنع الدلو ونقوم بتوحيد الأجزاء المرسومة باستخدام تعليميةunion ، نصل إليها على الشكل التالي: Path > Union لنتابع الرسم، بعد أن انتهينا من رسم الأشكال الأساسية، لنجعلها الآن تبدو ثلاثية الأبعاد. من أجل خلق تدرج سلس بين الضوء والظل، نستخدم التدرجات اللونية، وأمّا الحالات الأكثر تعقيدًا سنجمع بين التدرجات والتمويه الضبابي Gaussian blur. إحدى الطرق لتطبيق التعبئة المُتدرّجة Gradient Fill هي القيام بملئه أولًا ومن ثم الانتقال إلى أداة التعبئة المتدرجة، ومن شريط خيارات الأداة يمكن أن نختار بين "التعبئة الخطية" أو "التعبئة القطرية"، وتنفيذها فوق الشكل المُحدّد. وفي هذه الحالة سوف يسقط اللون المختار للتعبئة تدريجياً إلى أن يصل إلى درجة التعتيم 0%. ومن شريط الأدوات نفسه يمكن النقر فوق زر التحرير Edit من أجل فتح مربع حوار حيث يمكنك التّحكم بتوقف تدرج اللون المستخدم حاليًّا. في معظم الحالات سوف نحتاج إلى توقيف سحب اللون وتغييره، وللقيام بذلك ما علينا سوى اختيار أداة تعبئة متردة ومن ثم النقر على شكل جديد. وما سيظهر على الشاشة هي المساعدات التي يمكنك استخدامها لتغيير الموقع والتوجيه والخط الطويل وحجم التدرج وإيقاف تحويل الألوان وخيار للإضافة ( نقرة مزدوجة على الخط) أو خيار الحذف (استخدام زر "Delete" على لوحة المفاتيح). وبإمكانك أيضا الضغط على زر Shift من أجل نقل تركيز شعاع التدرج بعيدًا عن المركز. تظهر لنا مقابض التّدرج اللوني (Gradient handles) عند تعديل مكان أي عقدة، الأمر الذي يجعل تعديل شكل العناصر أكثر مرونة، ولكن في هذه الحالة لن تكون قادرًا على إضافة أو إزالة حد الألوان، سنتمكن فقط من تحريكهم. عند النقر لتحديد الحد اللوني في مربع الحوار (Fill in – stroke) سنرى فقط اللون الناتج عن ذلك الحد اللوني، الأمر الذي قد يكون غير متوقعًا، ولكنه في النّهاية سيجعل التّحكم في تدرجات الألوان أسهل من الطريقة السّابقة. تأكّد من أن تجرب نماذج مختلفة من الألوان بشكل كافٍ لاختيار المفضل لديك أو للوصول إلى اللون الذي يلائم الشكل على أحسن وجه. من أجل العمل على الألوان غالبًا ما نستخدم HSL وذلك للحصول على أفضل دقّة نظرًا لقدرته على ضبط السطوع وصفاء الألوان والفروقات الانتقائية بين الألوان التي نريدها. داخل المستند غالبا ما تحفظ القيم اللونية بصيغة RGB بالإضافة إلى قناة Alpha لذلك لا يوجد جدوى من استخدام تقنية CMYK عند تبديل وتغيير الألوان إن كنت تريد طباعة الرسوم لأمور تجارية لاحقًا. لسوء الحظ هناك بعض القيود الأخرى فعلى سبيل المثال، التعبئة اللونية المخروطية لشكلي الدلو والجزرة كانت لتكون أفضل، ولكن بما أن SVG يفتقر إلى هذا النوع من التعبئة فإن البرنامج يفتقر إليها أيضًا ولذلك سوف نحاول التغلب على هذه المشكلة بأفضل الطرق. وعليه، أبسط ما يمكننا فعله هو استيفاء شريحة رقيقة أو مستطيل من نفس اللون من أجل العمل على نسخة لها نفس الشكل ويمكن التحكم باستدارتها. من أجل القيام بذلك علينا تحديد مسار الشكل ومن ثم القيام بالخطوات التالية: Extensions > Generate from the path> Interpolate الآن يمكننا طمس جميع الشرائح التي أنشأها التأثير، وبالتالي جعل الخطوات الوسيطة أقل وضوحاً بكثير. الشيء الذي يمكننا التنويه إليه هنا أنه من الأفضل وضع كل المسارات الوسيطة في مجموعة واحدة عن طريق اتّباع الخطوات التالية: Ctrl+G أو Object> Group ومن ثم طمس معالمها معاً وإلا سوف يتم طمس معالم كل شكل على حدة وبالتالي فإن النتيجة النهائية لن تكون جيدة. وأسهل طريقة يمكن اتّباعها لتطبيق هذه العملية هي سحب الطمس المنزلق Blur slider إلى مربع حوار Fill'n'Stroke. لكنني لا أحبذ هذه الطريقة في الاستيفاء، لذلك سوف نقوم بمحاكاة التدرج الزاوي باستخدام دائرة نصف قطرها من الأشكال الضبابية، نقوم بسحبها من قمة رأس المخروط إلى قاعدته وأما لصنع مناطق الضوء والظلام سوف نكرر مسار الجزرة السابق، متبعين الخطوات التالية: Ctrl + D أو Edit- duplicate ولتطبيق استدارة حول قمة الرأس المخروطي نقرر عليه بشكل مزدوج لتوزيع التدرجات اللونية لأشكال غير واضحة على طول المخروط. ولكن بالتأكيد لا يمكننا ترك أي شيء خارج حدود شكل الجزرة لذلك سوف نقوم باقتصاص الزيادات عن طريق تطبيق مسار القطع،Clipping Path، وبما أننا أتممنا شكل الجزرة بشكل ممتاز سوف نقوم بتكرار ذلك مرة أخرى ومن ثم سنجمع كل أجزائها باستثناء مسار القطع وسنقوم بتطبيقه في مجموعة جديدة نقوم إنشائها متتبّعين الخطوات التالية: Object – Clipping path - apply ولإتمام ذلك بمثالية نقوم بملء مسار القطع بلون مختلف ليبرز عن الأشكال الأخرى لتجنب اختلاطه معهم. ولكن لا يمكننا رؤية مسار القطع بعد أن نقوم بتنفيذ الخطوات السابقة ولكن يكون بإمكاننا تعديل الأشكال التي تم قصها. دعونا الآن ننهي عملنا على الجزرة وإضافة بعض الانحناءات الخفيفة على الأنف وبعض انعكاسات الثلج من الأسفل، ثم نستخدم Calligraphic pen أو Pencil tool لرسم ما يشبه العين على الجزرة. أما الانعكاسات فهي توازي في أهميتها الظلال والأضواء حيث أن كافة الأشكال تعكس الضوء الذي بدوره ينعكس على أشكال أخرى في الرسم ويسلط عليها بعض الإضاءة ويجب العمل على هذين الأمرين سوية. إضافة إلى ما سبق، يجب علينا مراعاة تلوين الأشكال التي تحيط بالأشكال الأخرى ذات الألوان المشبعة كالجزرة في رسمنا السابق بألوان باهتة. وهذا هو السبب الذي لا يمكننا من رؤية الثلج ببياضه الناصع أو ورقة بيضاء بشكل كامل، وإنما نرى انعكاسات الألوان عليهما. وعليه فقد رسمنا منذ البداية كرات ثلج زرقاء قليلًا على افتراض أن رجل الثلج سوف يكون تحت سماء زرقاء نظيفة في مكان ما، ونحن الآن بحاجة إلى إضافة بعض الظلال والانعكاسات فقط. عند العمل على الظلال السفلية يجب أن نأخذ بعين الاعتبار أنّ المزيد منها سوف يسقط على الشكل، ولذلك يجب أن تكون أكثر ضبابية كما أنّ حدة الظل تعتمد بشكل كبير على مصدر الإضاءة. لننتقل إلى العمل على الدلو وكما نلاحظ أنّ تدرجات الألوان جيدة جدًا على الرغم من أنها كانت خطية، ولذلك سوف نقوم بإصلاحها قليلا الآن. بداية سوف نسلط على الدّلو ضوء الشمس عن طريق استخدام شريحة بيضاء ناصعة ومن ثم سوف نحدد المخروط بمساعدة الظل الذي هو عبارة عن الخطوط الداكنة الأكثر وضوحًا. وأخيرًا، سوف نضع بعض التدرجات الضّوئية الشفّافة التي تمثل انعكاسات الثلوج والضوء من الأعلى، وهكذا نكون قد أنشأنا ضوءً وظلالًا على شكل الدلو عن طريق إزالات متتالية للأجزاء التي لم نكن بحاجتها، ويبقى من الأفضل استخدام قلم رصاص Pencil لرسم الأشكال الواضحة. وبهذا نكون قد استخدمنا مسارات القطع المتعددة لكل من الدلو وكرات الثلج كما نكون قد استخدمناها لقص الأشياء غير الواضحة مثلما فعلنا سابقًا مع الجزرة. الخطوات التّالية تكمن في إضافة ثقب للدلو وتشكيل أخدود عن طريق نسخ الدوائر والقطوع التي استخدمت لبناء هيكل الدلو، ومن ثم نقل اثنين من هذه الدوائر إلى جانب بعضهما البعض اعتمادًا على عرض الحافة، عن الطريق الضغط إما على Ctrl+ - أو Path>Difference. ومن أجل تشكيل العينين، فإن تطبيقهما سهل للغاية ويمكن فعل ذلك عن طريق تسليط ضوء مع انعكاس خفيف إلى البؤبؤ بالإضافة إلى بعض التظليل فوق العين لجعلها تبرز قليلاً. ويمكن رؤية العينين دون تأثير الفلتر عليهما عن طريق تطبيق الخطوات التالية: View > Display Mode > No filters على الرغم من أنها صورة شعاعية إلا أن الخطة كانت أن نرسم نسخة نقطية منها ولهذا يجب تحديد حجم العينين منذ البداية، وأخذ هذا الأمر بعين الاعتبار عند رسم كل التفاصيل الصغيرة. ولذلك يجب تطبيق العينين وخطوط الدلو الدقيقة والأصابع باستخدام شبكة بيكسل. لجعل الصورة النهائية تبدو واضحة ونضرة بهذا الشكل. يدي رجل الثلج عبارة عن خطوط منحنية بشكل خفيف. لذلك قمنا بتعبئتها بتقنية ال Flat fill وأضفنا لها انعكاسات ضوئية للحصول على شكل ثلاثي الأبعاد لليدين. يتم رسم معظم الأوراق الخضراء رسم بأداة Calligraphic pen والخطوط الناتجة تم توحيدها باستخدام تعليمة boolean operation وتم تعبئتها لونياً باستخدام التدرج الخطي. تنحصر استخدامات أداة Calligraphic pen على الأغلب في: الترقيق : -60 يجعل الخطوط أرفع كلما انخفضت سرعة استخدامه. Caps: يجعل الخطوط نافرة قليلاً. التثبيت: 0 يكون القلم عموديًا على الخط. الزاوية: 0 ليس ذات أهمية كبيرة من أجل التثبيت. لقد قمت باستخدام القلم لتمكين خيار حساسية الضغط، وهذا ما يجعل الخطوط والأشكال المحدبة تبدو أكثر طبيعية. الأعواد هي عبارة مسارات مملوءة ب Flat fill ، معلمة وموضحة بنسخها الفاتحة والضبابية. تكفي بعض البقع الضبابية لجعل قاعدة الجزرة تأخذ أبعادًا واضحة أكثر. يجب ألا ننسى الظلال والانعكاسات على الثلج، حيث أن السماء تعطينا ظلاً مزرق والنباتات الخضراء للجزرة ستعطي ظلاً مخضر وبقع برتقالية. هذا هو كل شيء، الصورة في الأسفل هي الصورة النهائية دون تأثير الفلاتر. ترجمة -وبتصرّف- للمقال Drawing snowman in 3D with Inkscape لصاحبه Yuriy Apostol
    1 نقطة
  3. في سلسلة من عدة أجزاء سنناقش موضوعًا نظريًّا يُعتبر من أساسيّات هندسة البرامج، وهو أنماط التصميم (Design Patterns)، وسنعتمد لغة JavaScript في نقاشنا لتصاعد شعبيّتها ومرونتها التي تسمح لنا ببناء مشاريعنا وفق أنماط متنوّعة مما سيُسهّل علينا شرح موضوع السّلسلة نمط المُشيِّد (Constructor)يشيع استخدام المُشيّدات في اللغات الكائنيّة التّوجّه، حيث تُستخدم لإنشاء نُسخ (instances) من الأصناف (classes)، ومع أنّ JavaScript ليست لغةً كائنيّة التّوجّه بالمعنى التّقليديّ، إلّا أنّها تسمح بإنشاء نُسخ عن كائنات باستخدام بالمُشيّدات، ويمكن لأيّ دالّة أن تُستخدم كمُشيّد، وذلك بأن نُسبقها بالكلمة new، ولتوضيح هذا النّمط سنقوم بإنشاء مُنبّه (كالّذي تضبطه للاستيقاظ في هاتفك) يمكن ضبطه إلى تاريخ ووقت معيّنين ثمّ تفعيله أو تعطيله حسب الرّغبة: function Alarm(when) { this.setAt = when; this.enable = function() { var startAfter = new Date(this.setAt) - new Date; console.log("Alarm will wake you up after " + startAfter/1000 + " seconds"); this.timeout = setTimeout(function() { console.log("Wake up!"); }, startAfter); } this.disable = function() { if (this.timeout) { clearTimeout(this.timeout); delete this.timeout; console.log("Alarm diabled"); } } } var a = new Alarm("2015-03-19 5:58 PM"); a.enable() // Alarm will wake you up after 8.982 seconds // After a few seconds: // Wake up!في المثال السّابق نُسمّي الدّالة Alarm()‎ مُشيّدًا (constructor)، والكائن a نُسخة (instance). لاحظ أنّ Alarm في المثال السّابق ليست سوى دالّة (function)، فهي ليست صنفًا كما في لغات أخرى مثل Java وC++، إذ تُعتبر الدّوال في JavaScript مكوّنًا من الدّرجة الأولى وتُعامل كما يُعامل أيّ كائن، وهكذا يمكن استخدامها كمشيّد لكائن آخر ممّا يسمح بمحاكاة مفهوم الأصناف الّذي لم يُضَف إلّا مؤخّرًا في JavaScript. من عيوب المِثال السّابق إسناد الدّوال الّتي ستعمل عمل الوظائف (methods) إلى النُسخة ذاتها عند إنشائها، وهذا يعني تكرار محتوى الدّوال في الذّاكرة مع كلّ نسخة جديدة من الكائن Alarm، بينما يمكننا توفير هذا الاستهلاك غير المُبرّر للذّاكرة بإسناد الدّوال إلى النّموذج البدئيّ للكائن (أي إلى Alarm.prototype) مما يسمح بمشاركتها بين كل نسخ الكائن، لتقوم الآلة الافتراضيّة بتنفيذ النّصّ البرمجيّ للدّالّة ذاتها بسياق النّسخة (instance context) الّتي استدعت الدّالة، أي إنّ this تُشير ضمن الدّالة عند تنفيذها إلى النُسخةَ المنشأة وليس الصّنف؛ بالطّبع ليس من المرغوب تطبيق الفكرة ذاتها على المُتغيّرات الأخرى مثل setAt، لأنّه من البديهيّ أن تختلف قيمتها بين نسخة وأخرى. لنُعد كتابة المثال السّابق بصورة أفضل: function Alarm(when) { this.setAt = when; } Alarm.prototype.enable = function() { var startAfter = new Date(this.setAt) - new Date; console.log("Alarm will wake you up after " + startAfter/1000 + " seconds"); this.timeout = setTimeout(function() { console.log("Wake up!"); }, startAfter); } Alarm.prototype.disable = function() { if (this.timeout) { clearTimeout(this.timeout); delete this.timeout; console.log("Alarm diabled"); } } var a = new Alarm("2015-03-19 6:21 PM"); a.enable(); // Alarm will wake you up after 30.243 seconds // After 30 seconds... // Wake up!هذا الأسلوب في إنشاء الأصناف شائع جدًّا، وهو يتطلّب فهمًا دقيقًا لآليّة الوراثة في JavaScript؛ إذ يُبنى كلّ كائنٍ فيها على كائن آخر يُسمّى النّموذج البدئيّ (prototype)، ويقوم هذا الكائن الأخير على كائن ثالث أعلى منه في السّلسلة هو نموذجه البدئيّ، وهكذا حتّى نصل إلى null الّذي ليس له نموذج بدئيّ بحسب تعريف اللّغة. في مثالنا السّابق الكائن Alarm.prototype هو النّموذج البدئيّ للكائن a، وهذا يعني أنّ كل الخواصّ المُسندة إلى Alarm.prototype وما فوقه ستكون مُتاحة للكائن a، ولو كتابنا برنامجًا مُشابهًا بـJava لقُلنا إنّ Alarm صنفٌ وإنّ a نُسخة عن هذا الصّنف (instance). عندما نحاول الوصول إلى الخاصّة a.setAt، فإنّ مُفسِّر JavaScript يبدأ بالبحث عن هذه الخاصّة من أدنى سلسلة الوراثة، أي من الكائن a ذاته، فإنّ وجدها قرأها وأعاد قيمتها، وإلّا تابع البحث صعودًا إلى النّموذج البدئيّ وهكذا... وطبيعة JavaScript هذه هي ما سمح لنا بإسناد الوظيفتين enable وdisable إلى Alarm.prototype مطمئنّين إلى أنّها ستكون مُتاحة عند قراءة a.enable()‎ وa.disable()‎. يمكن التأكّد من النّموذج البدئيّ للكائن a كما يلي: Object.getPrototypeOf(a) == Alarm.prototype; // trueالأصناف في ECMAScript 6يُقدّم الإصدار الأحدث من JavaScript مفهوم الأصناف (classes) بصورته التّقليديّة المعروفة في اللّغات الأخرى، إلّا أنّه ليس سوى أسلوب آخر لصياغة النّماذج البدئيّة (أو ما يُسمّى syntactic sugar)، وهذا يعني أنّه نموذج الوراثة في JavaScript لم يتغيّر. يمكننا إعادة كتابة المثال السّابق بصياغة الأصناف في ES6 كما يلي: class Alarm { constructor(when) { this.startAt = when; } enable() { var startAfter = new Date(this.setAt) - new Date; console.log("Alarm will wake you up after " + startAfter/1000 + " seconds"); this.timeout = setTimeout(function() { console.log("Wake up!"); }, startAfter); } disable() { if (this.timeout) { clearTimeout(this.timeout); delete this.timeout; console.log("Alarm diabled"); } } }وستُسند الدّوال enable()‎ وdisable()‎ إلى Alarm.prototype تمامًا كما في المثال الذي سبقه. يُذكر أنّ استخدام new ليست الطّريقة الوحيدة لتشييد الكائنات، إذ يمكن استخدام الوظيفة Object.create()‎ لتُعطي النّتيجة ذاتها: var a = Object.create(Alarm.prototype); Object.getPrototypeOf(a) == Alarm.prototype; // trueإسناد الخواصّ إلى الكائنات‏JavaScript لغة ديناميكية، وهذا يعني أنّه يمكن إضافة وحذف الخواصّ من الكائنات وتعديل نماذجها البدئيّة أثناء التّنفيذ، وهذا ما يمنحها القسم الأكبر من مرونتها ويجعلها مناسبة للاستخدام في بيئة مُعقّدة مثل بيئة الويب، وليس من الغرابة أن توفّر اللّغة وسائل متعدّدة لإسناد الخصائص إلى الكائنات لتلبية الحاجات المتنوّعة لتطبيقات الويب. ماذا لو أردنا تغيير قيمة المنبّه في مثالنا السّابق بعد تفعيله؟ لربّما ترادونا للوهلة الأولى إمكانيّة تغيير قيمة الخاصّة setAt بالطّريقة التّقليدية: a.setAt = "2016-03-03 03:03 PM"; // or a["setAt"] = "2016-03-03 03:03 PM";لكنّ نتيجة هذا الفعل لن تكون كما يُتوقّع، فلو عدنا للمثال السابق وتمعّنا في خواصّه، للاحظنا عيبًا في كيفيّة عمل المُنبّه، إذ إنّ الخاصّة setAt مكشوفة ويمكن تغيير قيمتها في أيّ وقت، حتى بعد تفعيل المُنبّه، إلّا أنّ تغييرها بعدئذٍ لن يغيّر اللّحظة الحقيقيّة الّتي سينطلق فيها المنبّه كما يتضّح لنا عند قراءة النّصّ البرمجيّ، ولذا فنحن هنا أمام حلّين: إمّا منع تغيير قيمة الخاصّة setAt وجعلها للقراءة فقط بعد إنشاء المُنبّه، أو إيقاف المنبّه وإعادة ضبطه في كلّ مرّة تُغيّر فيها قيمة الخاصّة setAt، وكلا الحلّين متاحان إذا كنّا على علم بأساليب إسناد الخصائص في JavaScript. توفّر اللّغة الوظيفة Object.defineProperty()‎‏ الّتي تسمح بتعريف خواصّ لكائن ما مع إمكانيّة التّحكم بتفاصيل هذه الخاصّة، ومن هذه التّفاصيل: هل الخاصّة قابلة للكتابة؟ (writable)هل يجب المرور على هذه الخاصّة عند سرد خواصّ الكائن؟ (enumerable)ما الذي يحدث عند إسناد قيمة للخاصّة؟ (set)ما الذي يحدث عند قراءة قيمة الخاصّة؟ (get)وبهذا يمكننا بسهولة منع تغيير قيمة الخاصّة setAt بعد إسنادها: function Alarm(when) { Object.defineProperty(this, "setAt", { value: when, writable: false }) } Alarm.prototype.enable = function() { var startAfter = new Date(this.setAt) - new Date; console.log("Alarm will wake you up after " + startAfter/1000 + " seconds"); this.timeout = setTimeout(function() { console.log("Wake up!"); }, startAfter); } Alarm.prototype.disable = function() { if (this.timeout) { clearTimeout(this.timeout); delete this.timeout; console.log("Alarm diabled"); } } var a = new Alarm("2015-03-19 7:51 PM"); a.setAt = new Date("2016-03-19"); console.log(a.setAt); // "2015-03-19 7:51 PM"لاحظ أنّ قيمة setAt لم تتغيّر. هذا حلّ جيّد، لكن سيكون من الأفضل السّماح للمُستخدم بتعديل قيمة المنبّه، وعندها سنلجأ لإيقاف المنّبه وإعادة ضبطه كما يلي: function Alarm(when) { var _hidden_value = new Date(when); Object.defineProperty(this, "setAt", { set: function(newValue) { _hidden_value = new Date(newValue); if (this.timeout) { this.disable(); console.log("Alarm changed to " + newValue); console.log("You need to re-enable the alarm for changes to take effect"); } }, get: function() { return _hidden_value; } }) } Alarm.prototype.enable = function() { var startAfter = new Date(this.setAt) - new Date; console.log("Alarm will wake you up after " + startAfter/1000 + " seconds"); this.timeout = setTimeout(function() { console.log("Wake up!"); }, startAfter); } Alarm.prototype.disable = function() { if (this.timeout) { clearTimeout(this.timeout); delete this.timeout; console.log("Alarm diabled"); } } var a = new Alarm("2016-03-03 03:03 PM") a.enable(); // Alarm will wake you up after 30221933.66 seconds a.setAt = "2015-03-19 8:05 PM"; // Alarm changed to 2015-03-19 8:05 PM // You need to re-enable the alarm for changes to take effect a.enable() // Alarm will wake you up after 20.225 seconds // After 20 seconds... // Wake up!لاحظ أنّنا سنحتاج إلى مُتغيّر سرِّيِّ (‎_hidden_value) نُخزّن فيه القيمة الفعليّة لوقت التّنبيه. متى أستخدم هذا النّمط؟نمط المُشيّد لا يحتكر بنية مشروعك عند استخدامه؛ معنى هذا أنّه لا شيء يمنعك من استخدام نمط المُشيّد مع أي نمط آخر عند الحاجة لذلك، فيمكن (بل يشيع كثيرًا) استخدام المُشيّدات ضمن الوحدات (modules) ثمّ تصديرها لاستخدامها من موضع آخر في المشروع، ومثال ذلك أشياء مثل EventEmitter‏ وStreams‏ في Node.js. كما يمكن بناء أنماط أخرى سنتعرّف عليها لاحقًا على أساس المُشيِّدات مثل نمط الكائن المُتفرّد (Singleton) ونمط المُراقِب (Observer pattern). المصادر: شبكة مُطوّري موزيلّا: Inheritance and the prototype chain‏كتاب JavaScript Design Patterns‏ لمؤلّفه Addy Osmani
    1 نقطة
  4. عندما تتحدث الأرقام، يجب أن تصمت الألسنة، وتنصت الآذان، وتترقب العيون. وما سأتلوه عليك من إحصائيات في السطور التالية، ربما يكون بمثابة صدمة لك، لما سيلمسه من واقع تحياه أنت شخصيًا. من كل 3 يوجد 2 لا يحبون عملهم (فوربس - 10/2013) مواليد الفترة (1947 – 1964) قاموا بتغيير وظائفهم 11 مرة تقريبًا في الفترة العمرية من 18 حتى 46 عام (إحصائيات مكتب العمل في الولايات المتحدة – يوليو 2012) مواليد جيل الألفية (1980 فما فوق) قاموا بتغيير وظائفهم أكثر من 6 مرات في الفترة العمرية من 18 حتى 26 عام. لاحظ الفارق بينها وبين سابقتها (إحصائيات مكتب العمل في الولايات المتحدة – مارس 2014). في كتابة Free Agent Nation الصادر في أبريل 2001 قال دانييل بينك Daniel Pink أنه خلال العقد القادم سيتحول نسبة كبيرة من الموظفين إلى نظام العمل الحر. ولكم كان توقعه صادق إلى حد كبير، فقد صار هذا الأمر واقع نحياه جميعًا. الاستقرار في العمل أصبح سراب يُخدع به عاشقي منطقة الراحة Comfort Zone، ولكن الواقع يقول أنه من المستحيل أن يحصل موظف في أي مجال على استقرار وظيفي مُشبع، دائم، كامل. وبدلاً من السعي خلف السراب، يجب أن نتقبل حقيقة أنه يجب أن تبدأ فعليًا في التخطيط لوظيفتك الثانية، فور أن تضع قدمك في وظيفتك الأولى، وتخطط للثالثة فور أن تحط في الثانية، وهكذا. كيف يجب أن تكون رؤيتك لمستقبلك المهنيهل تتصور نفسك كما أنت في عملك في نفس المستوى على مر الشهور والأعوام وربما العقود؟ هذا غير منطقي بالمرة. حينما أتحدث عن أهمية أن تبدأ في البحث عن عمل فور حصولك على عمل جديد، فهذا يعني أنك لن تظل كما أنت كلما مر عليك يوم جديد. إذا كنت مسئول مبيعات Sales Person، فيجب أن تُعد نفسك كي تكون مشرف مبيعات Sales Supervisor، ثم مدير مبيعات Sales Manager. إذا كنت مساعد مهندس، قم بالدراسة والتدريب حتى تصبح مهندسًا معتمدًا، ثم مدير مشروع ضخم، . وهكذا يجب أن تسير العجلة. بين كل مرحلة وأخرى لن يكون من المناسب لك أن تبقى في مكان واحد، فطبيعة المهارات التي ستتعلمها، والخبرات التي ستكتسبها، ستوجب عليك أن تنتقل من مكانك الحالي لمكان أفضل. فإذا كان الأمر كذلك، فلماذا تُبق نفسك في الوهم، بينما الفرص الواعدة تنتظرك بالخارج؟ الأسرار الـ 8 القادمة ستأخذ بيدك خارج وهم الوظيفة الثابتة، إلى المسار المهني الذي يجب أن يتخذه أي شخص محترف في هذا العصر. السر الأول: لا تبحث عن الاستقرار الزائفأول شركة ضخمة توظفت بها كانت تعمل في مجالا الاتصالات، وخاصة تزويد المستخدمين بخطوط الإنترنت. وكان هناك أحد الأشخاص يعمل بها قبل مجيئي بحوالي عام ونصف – اسمه (ياسر) بالمناسبة – وكان واحد من أكثر مسؤولي المبيعات المتفوقين في الشركة. قضيت في شركتي هذه أقل من 5 سنوات، أنتقل من منصب لآخر، وتركتها وظل (ياسر) يعمل بها لـ 4 سنوات أخرى كمسؤول مبيعات قبل أن يستغنوا عن خدماته منذ أسابيع ثلاث لا غير. الفكرة هنا هي أن (ياسر) ظل متشبثًا بأمل الاستقرار الزائف، والوظيفة المضمونة، وظن نفسه في منطقة الأمان والاطمئنان وأنهم سيتمسكون به. بالمناسبة هو لم يكن راكدًا أو عبئًا على الشركة، بل كان من الموظفين المتفوقين، وقام بعمل إنجازات رائعة في كافة أقسام المبيعات التي عمل بها في الشركة، ولكن في النهاية . استغنوا عن خدماته. كنت على اتصال دائم به أحذره من هذه اللحظة، وأن يبحث عن عمل أفضل، أو حتى يبدأ عمل خاص، ولكنه ماطل وسوّف، وفي آخر اتصال هاتفي معه أخبرني أنه مازال يبحث عن عمل، وينفق من بعض المدخرات، وربما يضطر إلى بيع سيارته قريبًا. المغزى، لا تحرق نفسك في شركة واحدة، تدفعهم يومًا أن يستغنوا عنك بينما الفرص بالخارج تناديك، طالما تقوم بتنمية مهاراتك يومًا بعد يوم. السر الثاني: مهارات التواصل والاتصال عنصر أساسي في عملكالتواصل في العمل ليس للتسلية أو تمضية الوقت، ولكنه يجب أن يكون بتوجه داخلي واضح بشأن ما ترغب حقًا في تحقيقه من أهداف مهنية من وراء هذا التواصل. إليك بعض الأفكار المثمرة: تعرف على القادة والمؤثرين في مجالك: كل صناعة لها رواد، وإذا رآك الناس بجانب أولئك الرواد، فسيغلب الظن على الناس أنك منهم. بالإضافة إلى أن كلمة واحدة من أولئك المؤثرين ربما تصنع فارقًا في حياتك ككل. تواصل مع زملاء الدراسة بشكل مستمر: ربما كانت صداقات الجامعة مصدرًا طيبًا للهو، وقضاء وقت ممتع. ولكن هل لازلت على اتصال بأصدقاء الجامعة؟ دع عن ذهنك أن أصدقاء الجامعة ما زالوا أولئك الطلبة. لقد أصبحوا موظفين في شركات مختلفة، وبعضهم لديه مشروعه الخاص. أصدقاء الجامعة هم الأقرب إلى مساعدتك في رسم مسارك المهني. استخدم الشبكات الاجتماعية الاستخدام الأمثل (لنكدإن – فيس بوك): هي ليست أدوات اجتماعية فحسب، ولكنها كذلك عناصر تواصل تساعدك على بناء شبكة من العلاقات في مجال العمل، وخاصة لنكدإن. موقع مثل لنكدإن يعتبر ثورة حقيقية في عالم التوظيف، فهو شبكة مترابطة من الموظفين المحترفين في صناعة معين. معظم فرص العمل التي حصلت عليها كانت عن طريق الشبكات الاجتماعية، وخاصة الفيس بوك ولنكدإن. جهّز قائمة اتصالاتك: الآن أصبح لديك تواصل مع المؤثرين في صنعتك، أصدقاء الجامعة، وأصدقاء الشبكات الاجتماعية. قم بجمعهم في قائمة اتصالات مفهرسة بشكل جيد، وحافظ على تواصلك معهم في الأحداث والمناسبات الاجتماعية المختلفة خلال العام. السر الثالث: مهاراتك المهنية والشخصية هي التي ستقوم بتوظيفكقائمة اتصالاتك، أو مهارات التواصل والاتصال بالمؤثرين في صنعتك لا تعني أن هذا كاف لتوظيفك. مهاراتك المهنية هي العنصر الأساسي الذي سيدفع الشركات إلى طلبك. عصر الوساطة والمحسوبية بدأ في الانقراض بعد سيطرة رؤوس الأموال الضخمة على خط سير الأعمال في مختلف بلدان العالم ولاسيما الشرق الأوسط، وأصبحت الكلمة العليا لذوي الكفاءة، وليس المحسوبية. إذا كنت مبرمجًا، كن بالقرب من المواقع التي تذيع التحديثات الخاصة بلغة البرمجة التي تحترفها، أو حتى قم بتعلم لغة برمجة جديدة. إذا كنت مهندسًا، قم بالاشتراك في الدوريات الرسمية التي تذيع أحدث تقنيات وابتكارات التخصص الذي تعمل به. قم بإعداد قائمة بالدورات التدريبية التي يتوجب عليك الاشتراك بها كي تحظى بمستوى أعلى من الأداء المهني، واقتطع جزءًا معتبرًا من راتبك ومدخراتك لأجل هذا الغرض، ولا تبخل على نفسك أبدًا في مسألة العلم، فهذا له مردود أكثر من رائع سواء على المدى القريب أو البعيد. السر الرابع: قم بالترويج لنفسكلا أدري لماذا يخجل المحترفون من الترويج لأنفسهم، وكأن الأمر به شيء من المهانة أو تقليل الذات. بالعكس . انظر إلى الأمر من الناحية الأخرى: كيف سيعرف الناس أنك موجود مالم تخبرهم عن نفسك؟ قال سقراط يومًا لأحد تلامذته الذي لا يتكلم على الإطلاق "يا بني . تحدث حتى أراك". لا تظن أن الناس ستبحث عنك لمجرد أنك أنت، أو أنك تريد ذلك. يجب أن تظهر في محيط صنعتك، في الأحداث التي تجري، في المؤتمرات، اللقاءات، المناسبات الخاصة، الاحتفالات. يجب أن يراك الناس هناك، ويجب أن يعرفوا من أنت وماذا تفعل الآن، وما هي المشاريع الموكلة إليك، أو التي تساهم في تطويرها. السر الخامس: كن نشطًا على الإنترنتالإنترنت الآن لم تعد اختيارًا . هي عنصر إلزامي. أيًا كانت الصنعة التي تعمل بها، ابحث لنفسك عن أي نوع من التواجد على الإنترنت. لقد رأيت بعض المهنيين الذي يقوم بتدشين موقعه الخاص كسيرة ذاتية CV فقط، يتحدث فيه عن نفسه وعن إنجازاته المهنية. وعلى الرغم من أن هذا النمط يعتبر محدودًا للغاية في عالم الإنترنت الآن، إلا أننا نستطيع تسميته "تواجد"، بينما هناك العديد من الفرص الأخرى التي توفرها الإنترنت الآن لهذا التواجد. ملف شخصي كامل على موقع مثل لنكدإن يُسمى "تواجد" . موقع شخصي احترافي يتحدث عن المشاريع والإنجازات يُسمى "تواجد" . صفحة معلوماتية على الفيس بوك يُسمى "تواجد" . حساب نشط على تويتر يُسمى "تواجد". . والقائمة تطول. السر السادس: قم بتحطيم منطقة الراحة Comfort Zoneفي القصة التي ذكرتها منذ قليل – قصة (ياسر) – كان سبب وقوعه في هذا المأزق هو ركونه إلى منطقة الراحة. لم يكن مؤمنًا بأن الكون متسع، وظن أن الأمان والاستقرار ممكن في مثل هذا العالم المتقلب. شركتك التي تعمل بها ليست هي الكون كله . هناك آخرون. ابحث عنهم، واذهب إليهم، فستجد المزيد مما يفيدك في الخطوة التالية. ما رأيك في أن تتخذ قرارًا حاسمًا الآن؟ ما رأيك في أن تحدد – من الآن – التاريخ الذي ستترك فيه العمل، والذي ستكون بالتأكيد عثرت فيه على عمل جديد؟ قرار صعب؟ ربما . ولكنه حتمًا سيكون أفضل قرار اتخذته لهذا العام. كن جريئًا وخذ خطوة الآن. السّر السّابع: احرص على تنمية وتطوير مهاراتك وراقب مستواك دومًالا تجعل انهماكك في العمل، وتكرار المهام الوظيفية لك، يثنيك عن تنمية مهاراتك المهنية. يجب دومًا أن تراقب السوق وتعرف إلى أين يسير وما هي المتطلبات المستقبلية. أحد أصدقائي في مجال هندسة وإدارة الشبكات IT لاحظ أن المرحلة القادمة سيطرأ تغير على مفهوم تخزين المعلومات من الخواديم المحلية Local Server إلى مفهوم التخزين السحابي Cloud Server، فبدأ على الفور بالبحث والقراءة وتعلم المزيد عن هذه التقنية، وأخذ عدة دورات تدريبية فيها على الإنترنت Online Courses وخارج الإنترنت كذلك Offline Courses حتى يكون مستعدًا. وقد أثمر استعداده إلى أبعد مدى، فحينما قررت الشركة الاستغناء عن العمالة الزائدة في قسم الـ IT بعد تفعيل تقنية الخواديم السحابية، كان صديقي هذا من المهندسين الذين تمسكت بهم الشركة، بل وأخذ منصبًا رائدًا فيها. كذلك أحد المبرمجين الذين أعرفهم في مجال برمجة المواقع، لاحظ في أواخر عام 2010 المسار الذي تسير فيه تكنولوجيا الهواتف الحديثة، وأن الريادة غدًا ستكون لها، فقام بدراسة تطبيقات الهواتف الذكية، وكيفية تصميم مواقع متلائمة مع الأجهزة المحمولة Responsive، وهو الآن يعتبر واحد من الذين سبقوا أقرانهم في هذا المجال. لا تفكر في أن تسبق الآخرين . ولكن فكر في أنهم حينما يصلوا إلى أهدافهم، سيجدوك هناك. السر الثامن: ابق قريبًا من منصات التوظيفالآن، هناك الكثير من منصات التوظيف المحلية والعالمية على الإنترنت. يجب أن تظل على قرب منها، وتقوم بتحديث ملفك الوظيفي عليها كل أسبوع على الأقل. كذلك يجب أن تعتني بملفك على موقع لنكدإن، وتقوم بتحديثه باستمرار والتواصل مع شركاء المهنة محليًا وعالميًا. وبذل بعض الأنشطة هناك مثل التدوين على سبيل المثال. على مستوى الشرق الأوسط، أعلم القليل من بوابات التوظيف المعتمدة الموثوقة التي يمكنك الاعتماد عليها مثل: بيت دوت كوم جوبزيللا النصائح السابقة كلها ليست نصائح نظرية، بل هي نتاج بحث وإحصائيات، وتجارب شخصية كذلك. ومن ظن أن الوظيفة التي يعمل بها الآن هي محطته المهنية الأخيرة، فهو بالفعل يمهد الطريق للكثير من التنازلات الوظيفية في المستقبل، كنتيجة للبطالة المؤكدة التي سيتعرض لها إن عاجل أو آجل. والآن أخبرني، هل سبق وإن تعرضت لمثل هذا الموقف من قبل؟ أقصد من الناحيتين بالطبع: هل تم الاستغناء عنك من عملك، وأنت غير مستعد للمغادرة؟ هل قمت بالاستقالة من عملك، بعد تطبيق كل أو بعض من النصائح الواردة في هذا المقال؟ أخبرنا بتجاربك في التعليقات.
    1 نقطة
  5. إنّ أي مُطوّر أو مُصمّم يُحب كتابة الشيفرة البرمجية، ستكون تقسيمات الصفحة layouts المُعتمدة على أوراق الأنماط المُتتالية هي صميم وجوهر عمله. فيما قد تكون هذه المقالة مُراجعة للبعض، أو حتّى تصحيح بعض المفاهيم للبعض الآخر، سيتمّ تناول خاصّيّة التَمَوْضُع position، وكيفيّة استخدامها في تصميم تقسيمات صفحة layouts مُسايرة ومُتوافقة مع المعايير القياسيّة، ولا تعتمد على الجداول. يُساء فهمُ خاصّيّة التَمَوْضُع، ممّا يؤدي في بعض الأحيان عند تصحيح علّة مُعينة في شيفرةٍ ما من المُمْكن أنّ يتمّ استخدام قيم مُختلفة بأسلوب التجربة والخطأ للخاصّيّة position لمُحددٍ ما حتّى يتمّ الحصول على القيمة المطلوبة. إنّ هذه الطريقة المُملّة قد تفي بالغرض، ولكن من المُفترض على المُطوّر معرفة بالتحديد لماذا القيمة position: relative قد استطاعت إصلاح مُشكلة ما في تقسيم الصفحة دون قيمة أُخرى. هدف هذا الشرح هو تعلّم دلالات قيمة الخاصّيّة position وتأثيرها على الصفحة، وبالأخصّ، كيف سوف تؤثّر هذه القيم على بقية أجزاء الصفحة (markup). يُقدم بَيان specification أوراق الأنماط المُتتالية خمس خواصٍّ وهي: ساكن: staticنسبيّ: relativeكامل أو مُطلق: absoluteثابت: fixedمَوروث: inheritكما تمّ إضافة قيم جديدة ولكنها مازالت في مرحلة "مسودة عمل". يُستفاد من كل خاصّيّة لغرضٍ مُعينٍ، لذلك فَهمُ الغرض من كلٍ منها هو الطريق الأمثل لاحتراف تقسيمات الصفحة المُعتمدة على CSS. الخطوات الأولى مع أليّة عمل خواصّ التَمَوْضُعسيتمّ العودة إلى الأساسيّات لفهم الأمور بشكلٍ صحيحٍ. في CSS وبطبيعة الحال، يتمّ العمل ضمن حدود وقواعد ما يهم هُنا هو ما يُدعى بـ "التدفّق الطبيعيّ" normal flow. في العودة إلى بيان مُنظمة رابطة الشبكة العالميّة W3C سيكون تعريف التدفّق الطبيعيّ بالشكل التّالي: يُمكن اعتبار الصندوق المَذكور في البيان السابق كالصندوق الخشبي، والتدفّق الطّبيعيّ كما لو أنّه قانون كما هو قانون الجاذبيّة، التدفّق الطّبيعيّ للمُستند يُعبر عن اصطفاف العناصر فوق بعضها البعض تدريجيًّا من الأعلى إلى الأسفل، لكي تَظهر بالشّكل المُفترض لها أنّ تظهر عليه. يُمكن تشبيه التدفّق الطّبيعيّ بصناديق (مُكعبات) الأحرف الأبجديّة الّتي يُبنى منها ذلك البرج الضخم -الّذي يبنيه الأطفال بشكل مُتسلسل للأحرف- حيثُ أنّ هذه الصناديق الخشبيّة مُقيّدة بفعل الجاذبيّة الأرضيّة، ولا يُمكن إعطائها خصائص تُعارض قانون الجاذبيّة. في الجهة المُقابلة تتبع العناصر بعضها البعض في ترتيب عناصر الصفحة الخاصّة بمُستند HTML. ولكن من المُمكن إعطاء هذه العناصر خصائص لتُعرض بشكلٍ مخالفٍ لترتيبها الطبيعيّ. الخاصيّتان static و relativeتشبه خاصِّيَّات التَمَوْضُع "ساكن" static و "نسبيّ" relative سلوك صناديق الأبجديّة، حيثُ أنّها تصطفّ فوق بعضها البعض كما هو مُتوقعٌ لها. مع الانتباه إلى أنّ الخاصّيّة static هي القيمة الافتراضيّة للخاصّيّة position لأي عنصر. وعندما يكون هناك ثلاثة عناصر تحمل الخاصّيّة static فإنّها سوف تصطفّ فوق بعضها البعض. في المثال التّالي يوجد ثلاثة عناصر جميعها تحمل القيمة static. #box_1 { position: static; width: 200px; height: 200px; background: #ee3e64; } #box_2 { position: static; width: 200px; height: 200px; background: #44accf; } #box_3 { position: static; width: 200px; height: 200px; background: #b7d84b; } يُلاحظ من المثال السابق كيف أنّ هذه الصناديق تصطفّ فوق بعضها البعض. هذه الفكرة على بساطتها تعتبر أساسيات بناء الكتل block building ومن المُهم جدًا إدراكُها. يُمكن استخدام القيمة static لإنشاء تقسيمات صفحة مُبسّطة بعمود واحد single-column، حيثُ كل عنصر يتموضع فوق العنصر الّذي يليه. وعند الرغبة في نقل هذه العناصر فيما بينها باستخدام خواصّ الإزاحة offset مثل: الأعلى top، اليمين right، الأسفل bottom، اليسار left ستكون النتائج غير مُرضيةٍ أبدًا، حيثُ لا تؤثر هذه الخواصّ على عنصر ساكن static (أي يقوم بتجاهلها). كما لا يستطيع العنصر الساكن إنشاء نسق إحداثيَّات جديد للعنصر الابن. ولكن ما هو نسق الإحداثيَّات، هذا ما سيتمّ توضيحه باستخدام القيمة نسبيّ relative. تتصرّف العناصر المُتموضعة بشكل نسبيّ relative كما هي العناصر المُتموضعة بشكل ساكن static، حيثُ تتوافق فيما بينها بشكل مُتناسق، من دون أنّ تسبب أي مشاكل. قد يبدو الأمر غريبًا، ولكن عند تطبيق القيمة relative على المثال السابق ستكون النتائج مُشابهة للمثال السابق: #box_1 { position: relative; width: 200px; height: 200px; background: #ee3e64; } #box_2 { position: relative; width: 200px; height: 200px; background: #44accf; } #box_3 { position: relative; width: 200px; height: 200px; background: #b7d84b; } يُبرهن المثال السابق كيف أنّ العناصر المُتموضعة بشكل نسبيّ relatively تسلك سلوك العناصر المُتموضعة بشكل ساكن statically. لكن ما هو غير واضح أنّ هذه العناصر الّتي تحمل القيمة relative تختلف بمَيْزة هامة جدًا عن العناصر الّتي تحمل القيمة static. يكمُن الاختلاف الأوَّليّ في أنّ العناصر المُتموضعة بشكل نسبيّ من المُمكن تعديل مَوضعها باستخدام خاصِّيَّات الإزاحة: top و right و bottom و left. سيتمّ استخدام المثال السابق، ولكن بإضافة تَمَوْضُع الإزاحة على الصندوق الثاني “box_2”: #box_2 { position: relative; left: 200px; width: 200px; height: 200px; background: #44accf; } يُظهر المثال السابق التَمَوْضُع النسبيّ بشكلٍ عمليٍّ. حيثُ أنّ الصناديق الثّلاثة مُتموضعة فوق بعضها ماعدا الصندوق الثّاني فقد تمّ دفعه 200px من اليسار. في هذا المثال قد تمّ كسر قانون الجاذبية بناءً على رغبتنا. ومازال الصندوق الأزرق ينتمي إلى التدفّق العام الخاصّ بمُستند HTML، حيثُ أنّ الصندوق الأخضر يأتي أسفل الصندوق الأزرق على الرغم من أنّ الصندوق الأزرق ليس فوقه بشكل مُباشر. عند استخدام خاصِّيَّات الإزاحة لنقل عنصر مُتموضع بشكلٍ نسبيٍّ، فإن ذلك لا يؤثّر على العنصر أو العناصر التّالية، حيثُ أن الصندوق الأخضر مازال مُتموضعًا كما لو كان الصندوق الأزرق غير مُزَاح. وهو أمرٌ لا ينطبق على التشبيه الخاصّ بصناديق الأبجديّة. يُعتبر إنشاء نسق إحداثيَّات للعنصر الابن مَيْزةً أُخرى من ميزات خاصيّة التَمَوْضُع النسبيّ. حيثُ يُمثل هذا النسق نقطةً مرجعيّةً لخاصِّيَّات الإزاحة. سيتمّ العودة إلى المثال السابق لتوضيح هذه الفكرة، حيثُ أنّ الصندوق الأزرق لا يتموضع داخل أيًا من العناصر، لذلك نسق الإحداثيَّات المُستخدم لإزاحة نفسه 200px من جهة اليسار يعود إلى المُستند نفسه. ولو تمّ وضع الصندوق الثّاني داخل الصندوق الأول، سيتمّ الحصول على نتائج مُختلفة، حيثُ أنّ الصندوق الثّاني سيتموضع نِسْبَة إلى نسق الإحداثيّات من الصندوق الأول (الأحمر). في المثال التّالي سيتمّ التعديل على مُستند HTML دون التعديل على التنسيق CSS، وذلك بنقل الصندوق الثّاني داخل الصندوق الأول: <div id="box_1"> <div id="box_2"></div> </div> يُظهر المثال السابق ترميز مُستند HTML الجديد. وبسبب نسق الإحداثيّات الجديد، يقيس الصندوق الأزرق إزاحته 200px من جهة اليسار نسبةً إلى المكان الّذي كان سيكون عليه الصندوق الأزرق لو لم يكن مُتموضعا بشكلٍ نسبيٍّ. القيمة Absoluteتُمثّل القيمة absolute درجة عالية من الأهمية وأكثر من سابقتها relative، حيثُ التخصيص هو ما يُميز هذه القيمة. يُسحب العنصر المُتموضع بشكلٍ نسبيٍّ من التدفّق الطّبيعيّ، وذلك عكس ما يتمّ في العناصر الّتي تحمل القيمة relative و static. ويمكن التحكم بالعنصر بطريقةٍ مرنة عندما يتمّ سحبه من التدفّق الطّبيعيّ، حيثُ يُمكن وضعه في أي مكان من دون أنّ يؤثّر أو يتأثّر بباقي العناصر المُنتمية إلى هذا التدفّق. يُمكن التفكير بهذه العناصر كما لو أنّ لها على الجهة الخلفية قطعة كبيرة من مشبك velcro، حيثُ يُمكن إلصاق هذه العناصر في أي مكان حسب الرغبة والحاجة. تَستجيب العناصر المُتموضعة بشكل مُطلق (كامل) absolutely إلى خاصِّيَّات الإزاحة. حيثُ يُمكن تحديد القيم top: 100px و left: 200px للعنصر ليتوضع العنصر بالضَّبط 100px من الجهة العلوية و200px من الجهة اليُسرى للمُستند. سيتمّ التوضيح بالمثال التّالي وباستخدام أربعة صناديق: #box_1 { position: absolute; top: 0; left: 0; width: 200px; height: 200px; background: #ee3e64; } #box_2 { position: absolute; top: 0; right: 0; width: 200px; height: 200px; background: #44accf; } #box_3 { position: absolute; bottom: 0; left: 0; width: 200px; height: 200px; background: #b7d84b; } #box_4 { position: absolute; bottom: 0; right: 0; width: 200px; height: 200px; background: #ebde52; } يُظهر المثال السابق أربعة صناديق تتموضع في زَوايا المُتصفّح الأربع، وذلك بسبب أنّ كل صندوق يحمل القيمة absolute للخاصيّة position، بكلماتٍ أُخرى تمّ إلصاق هذه الصناديق في كل زاوية من زوايا نافذة المُتصفّح. ستبقى هذه الصناديق بالزاوية الخاصّة بها عند تغيير حجم المُتصفّح. وإنّ تصغير حجم المُتصفّح بحيثُ تتداخل أو تتشابك هذه الصناديق مع بعضها لن يُحدث أي تفاعل فيما بينها على الإِطْلاق، أي لن يزيح أحدها الآخر، وكأنّ كل صندوق في طبقةٍ مُختلفة، وذلك لأنّ هذه الصناديق قد أصبحت خارج التدفّق الطبيعيّ للمُستند. تُنشئ العناصر المُنسّقة بالقيمة absolute نسق إحداثيَّات جديد للعناصر الأبناء الخاصّة بها. المثال التّالي يوضّح كيف أنّ الصناديق البرتقاليّة الصغيرة تتموضع داخل الصناديق الآباء الخاصّة بها، وإحداثيّات الإزاحة مُرتبطة بالعناصر الآباء لا بنافذة المُتصفّح. <div id="box_1" class="box"> <div class="orange"></div> </div> <div id="box_2" class="box"> <div class="orange"></div> </div> <div id="box_3" class="box"> <div class="orange"></div> </div> <div id="box_4" class="box"> <div class="orange"></div> </div>} .box { position: absolute; width: 200px; height: 200px; } #box_1 { background: #ee3e64; top: 0; left: 0; } #box_2 { background: #44accf; top: 0; right: 0; } #box_3 { background: #b7d84b; bottom: 0; left: 0; } #box_4 { background: #ebde52; bottom: 0; right: 0; } .orange { background: #f95b34; position: absolute; top: 39%; left: 41%; width: 40px; height: 40px; } تُقدم القيمة absolute خصائص مُميّزة عند استخدام قيم الإزاحة معها، حيثُ سيُصبح من المُمْكن تَمْديد العنصر من دون تحديد أيًا من أبعاد العَرض width أو الارتفاع height، والّتي ستكون مُختلفة بناءً على حجم نافذة المُتصفح أو قياس الشاشة. وعليه فإنّ العنصر الابن سيكون مُقيّدًا بالعنصر الأب الخاصّ به، أو المُستند نفسه. المثال التّالي سيُوضح الفكرة: a { position: absolute; top: 10px; right: 10px; bottom: 10px; left: 10px; background: #44accf; } #box_b { position: absolute; top: 20px; right: 20px; bottom: 20px; left: 20px; background: #ff9c34; } يُوضّح المثال السابق كيف أنّ العناصر قد أصبحت أكثر مُرونة fluid، حيثُ يَتغيّر حجمها مع تَغيّر حجم الصفحة. ويوضّح المثال التّالي كيفيّة إنشاء صفحة بعمودين وبارتفاع الصفحة بالكامل. #box_1 { position: absolute; top: 0; right: 20%; bottom: 0; left: 0; background: #ee3e64; } #box_2 { position: absolute; top: 0; right: 0; bottom: 0; left: 80%; background: #b7d84b; } يُظهر المثال السابق تقسيم صفحة بعمودين، والّذي يُوضّح ما يُمكن عمله باستخدام القيمة absolute. أخذًا بعين الاعتبار أنّ هذا الأسوب ليس أفضل طريقة في إنشاء تقسيم صفحة بعمودين. يُمكن استخدام بعض الحِيَل في إيجاد تطبيقات عمليّة لهذه الخاصّيّة. على سبيل المثال: #box_1 { width: 200px; height: 200px; background: #ee3e64; } #box_2 { position: absolute; left: 100px; width: 200px; height: 200px; background: #44accf; } عند التركيز في المثال السابق والصندوق الثّاني بالتحديد، سيتمّ مُلاحظة كيفيّة استخدام قيمة إزاحة واحدة left: 100px;، وهذا ما يَسمح للصندوق الثّاني في الحفاظ على حافته العلوية في مكانها مع مقدرته على الانتقال 100px من جهة اليسار، ولكن عند تطبيق قيمة إزاحة ثانية إلى الجهة العلوية، سيتمّ سحب الصندوق الأزرق إلى أعلى المُستند: #box_2 { position: absolute; top: 0; left: 100px; width: 200px; height: 200px; background: #44accf; } القيمة ثابت Fixedيُشارك العنصر الّذي يحمل التنسيق position: fixed جميع الأحكام والقواعد الّتي يحملها العنصر المُتموضع بشكل مُطلق absolutely، حيثُ أنّ العنصر يُسحب من التدفّق الطّبيعيّ للمُستند. ويكمُن الاختلاف في أنّ العنصر الثّابت fixed يتمَوضع نسبة إلى المُستند، وليس إلى عنصر أب مُعيّن. كما لا يتأثر العنصر الثابت بالتدرّج، فيبقى في مجال الرؤية مهما تمّ النزول أو الصعود في الصفحة. #box_2 { position: fixed; top: 0; left: 0; right: 0; } يُظهر المثال السابق شريطًا عُلويًّا يحتوي على نصّ، وذلك كعنصر fixed، من المُلاحظ عدم تحرك هذا الشريط عند التدرّج في الصفحة. أيضًا من المُلاحظ أنّ خاصِّيَّات الإزاحة left وright تحمل القيمة صفر. باعتبار أنّ القيمة fixed تنتهج سلوكًا مشابهًا لسلوك القيمة absolute، فمن المُمكن أنّ يتمّ تمديد عرض العنصر ليتناسب مع مجال الرؤية عند تثبيت العنصر أعلى الصفحة باستخدام top: 0;. القيمة Inheritتمّ في بداية المقالة الإشارة إلى وجود خَمس قيم مُتوفّرة للخاصيّة position. القيمة الخامسة هي مَوروث inherit والأقل أهميّة. تعمل هذه القيمة كما يدلّ الاسم الخاصّ بها، حيثُ أنّ العنصر يرث القيمة الخاصّة بالعنصر الأب. علمًا أنّه في الأساس، عناصر الخاصّيّة position لا ترث قيمتها من العنصر الأب الخاصّ بها، وتكون القيمة static هي القيمة الافتراضيّة. الفرق بين relative وabsoluteيُظهر هذا التشبيه الفرق بين التنسيقين "نسبيّ" و "مُطلق". يُزاح دائمًا العنصر الّذي يحمل التنسيق "نسبيّ" نسبةً إلى موضعه الأصليّ في التدفّق الطّبيعيّ، بمعنى أنّ هذا العنصر يتحرك نسبة إلى المكان الّذي كان سيكون عليه في الظروف العاديّة. وهذا الانتقال لا يؤثّر على تقسيم الصفحة أو العناصر المُحيطة، أي كأنّ هذا العنصر قد أصبح شبحًا قد ترك جسمه خلفه. هذا الجسم له عرض وارتفاع ويؤثّر على محيطه ولكنه غير ظاهر. ويستطيع الصندوق الشبح التحرك ولكنه مازال مُرتبطًا بجسمه القديم، بمعنى أنّ موقعه الحاليّ يُقاس بناءً على موقعه القديم. أمّا العنصر الّذي يحمل التنسيق "مُطلق" فهو لا يؤثّر على محيطه أبدًا، وذلك لأنّه قد تمّ سحبه من التدفّق الطّبيعيّ. وبذلك فهو أيضًا شبح ولكنه لم يترك جسمه خلفه كما فعل الشبح النسبيّ. وبالنسبة للعناصر المُحيطة فإنّ هذا العنصر غير موجود. يحصل الشبح المُطلق على موضعه بعد النظر عبر جميع الآباء الخاصّة به حتّى يجد واحدًا منها يتموضع إما بشكلٍ "نسبيّ" أو "مُطلق" ليكون نسق إحداثيَّات لهذا العنصر. وعندما لا يجد هذا الشبح أيًا من الآباء يتموضع بشكلٍ "نسبيّ" أو "مُطلق"، ستكون نقطته المرجعيّة هي المُستند العام. تطبيقٌ عمليّسيتمّ تَوظيف الشرح السابق في مثالٍ عمليّ يجعل من الأمور أكثر وضوحًا لهذه الخاصِّيَّات. المثال هو للتوضيح فقط، ولا يُعتبر تطبيقًا مثاليًا لاستخدامه في الواقع العمليّ. <div id="container"> <div id="nav"> <a href="#">Link</a> <a href="#">Link</a> <a href="#">Link</a> <a href="#">Link</a> <a href="#">Link</a> </div> <div id="content"> <div id="callout"> <p>...</p> </div> <p>...</p> <p>...</p> <p>...</p> <p>...</p> <p>...</p> <p>...</p> <p>...</p> <p>...</p> <p>...</p> </div> <div id="footer"> <p>Copyright © 2015 - webtuts Web Sites</p> </div> </div> تُظهر الصورة السابقة تقسيم صفحة شائع الاستخدام في الكثير من المواقع، شريط تنقل علوي navigation، المحتوى content، ذيل الصفحة footer. سيتمّ مُناقشة كل عنصر، وخاصيّة التَمَوْضُع الخاصّة به، ولماذا تمّ اختيار كلٍ منها. سيتمّ استخدام #container لجعل بقية العناصر مُتمركزة في المُنتصف. العنصر #nav سيكون العنصر الأول داخل العنصر #container. لم يتمّ تخصيص العنصر #nav بالخاصيّة position، لذلك ستكون القيمة static هي المُعَيَّنة. وستفي القيمة الافتراضيّة بالغرض على اعتبار أنّه لن يتمّ إزاحة هذا العنصر، أو استخدامه في إنشاء نسق إحداثيَّات جديد. على الجهة الأُخرى سيتمّ تخصيص العنصر التّالي وهو #content بخاصيّة التَمَوْضُع position بالقيمة relative. لا تؤثر قيمة التَمَوْضُع position على العنصر #content عند عدم استخدام أيًا من قيم الإزاحة، ولكن قد تمّ تخصيصها بالتنسيق position: relative; لتُكوّن نقطة الإحداثيَّات للعنصر #callout. كما تمّ تنسيق العنصر #callout بالتنسيق position: absolute. أخذًا بعين الاعتبار أنّ العنصر الأب وهو #content الخاصّ بهذا العنصر قد تمّ تنسيقه بشكل نسبيّ relative، فإنّ خاصِّيَّات الإزاحة المُطبقة على العنصر #callout ستكون مُعتمدة على الإحداثيَّات المُنشأة من قبل العنصر الأب #content. كما تمّ تخصيص العنصر #callout بإزاحته -80px إلى جهة اليمين بهدف سحبه خارج العنصر الأب. علاوةً على ذلك، تمّ تخصيص العنصر #callout بإزاحته من الجهتين العلويّة والسفليّة بالقيمة 100px، وبذلك سيحافظ هذا العنصر على ارتفاع شبه كامل منقوصًا 200px مهما كان حجم الصفحة. لا يؤثّر العنصر #callout على باقي العناصر بما أنّ له القيمة absolute، ولذلك يجب إضافة بعض الحشو padding للعنصر #content وذلك كي لا تختفي الفَقْرات paragraphs أسفل العنصر #callout. كما سيتمّ تخصيص ذيل الصفحة بخاصيّة التَمَوْضُع مع القيمة fixed مما يجعله ثابت ضمن مجال الرؤية viewport عند التدرّج في الصفحة نزولًا أو صعودًا. كما سيتمّ إضافة حشو إلى العنصر #content ومن الناحية السفلية وبقيمة 60px وذلك لعدم اختفاء الفقرة الأخيرة تحت ذيل الصفحة. الخاتمةتُعتبر خواصّ التَمَوْضُع من المواضيع الّتي لا بُد على أي مُطوّر الإلمام بها بشكل مُعمّق، وذلك كي لا يتمّ الاعتماد على أسلوب التجربة والخطأ trial and error في التعامل مع هذه الخاصّيّة. يعطي فهم هذه الخاصّيّة احترافيّة عالية للمُطوّر ويزيد من إنتاجيّته عن باقي المُطوّرين الّذين يعتمدون على أسلوب التجربة والخطأ. ترجمة -وبتصرّف- للمقال CSS Positioning 101 لصاحبه Noah Stokes
    1 نقطة
  6. بشكل عام يختلف الأمر على حسب طبيعة الشركة والمُهمة المطلوبة، ولكن الأمر المؤكد أنّه لا يُعتبر الاعتماد على مُستقلين من المواقع الّتي ذكرتها أمرًا غير احترافي بل على العكس هو الاحترافيّة بحد ذاتها، حيث سيتسنّى لك التّالي: زيادة الفرصة في التعرّف على أشخاص محترفين، إدخال أفكار جديدة إلى الشركة، التوفير في التكلفة مقارنة مع موظف يعمل بدوام كامل أو جزئي. تصميم شعار أو هوية للموقع هو أمرٌ تحتاجه مرّة واحدة، وبالتّالي التعامل مع مُستقل هو أمرٌ بديهيٌ، ولكن إدارة الحسابات الاجتماعيّة هو مُهمة مستمرة طالما الشركة مُستمرة، وبالتّالي التعامل مع موظف دائم هو الصواب بعينه. ستكون طريقة الدفع على حسب المُهمة والخدمة المطلوبة وبطبيعة الحال طُرق الدفع ستكون واضحة في كل موقع، وأنصحك دائمًا بالاعتماد على المنصات العربية في التعامل مع المُستقلين لضمان حقوقك بالشكل المطلوب.
    1 نقطة
×
×
  • أضف...