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

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

  1. Anmar Fadel

    Anmar Fadel

    الأعضاء


    • نقاط

      1

    • المساهمات

      36


  2. محمد أحمد العيل

    • نقاط

      1

    • المساهمات

      308


  3. أحمد عابدين

    أحمد عابدين

    الأعضاء


    • نقاط

      1

    • المساهمات

      11


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

المحتوى الأعلى تقييمًا في 11/13/17 في كل الموقع

  1. الإصدار 1.0.0

    22280 تنزيل

    كتاب إدفع لي وإلا هو كتاب مجاني لكاتبه Lior Frenkel مؤسس شريك في The nuSchool، مستقل ومطوّر ويب وهو الآن مستشار، مدوّن ومتحدث في الأنشطة حول العالم. قام Lior بكتابة هذا الكتاب في عام 2015 ليساعد المستقلين حول العالم في التعامل مع حالات امتناع العملاء عن الدفع بناءً على خبرته الممتدة لسنوات في العمل الحر.
    1 نقطة
  2. نعرف نحن مطوّري البرامج أهميّة اتّباع أفضل الممارسات الأمنية؛ إلا أننا نتسرّع غالبا في تنفيذها، ربما بسبب ما تستدعيه من العمل الجادّ حتى ترسخ في الأذهان. يحدُث أحيانا أن ترى ممارسة أمنية شديدة الخطورة لدرجة أنها تبقى محفورة في ذهنك. أمرّ في عملي مدير أنظمة على الكثير من الممارسات الأمنية الخاطئة، إلا أن الثلاثة التي سأتحدّث عنها في هذا المقال هي أساسيّات يجب على كلّ مطوّر برامج تفاديها. أنبّه هنا إلى أنني أرى كل واحدة من الممارسات المذكورة لدى شركات كبيرة ومطوّرين ذوي خبرة طويلة، لذا فليس صحيحا لصقُها بالمطوّرين المبتدئين. لا تستخدم التعمية لكلمات السّر .. بل التجزئة Hash عملتُ في وقت سابق من مسيرتي المهنية مع شركة تستخدم نظام إدارة يخزّن بيانات شديدة الأهميّة، وفي أحد الأيام طُلِب مني إجراء مراجعة أمنية للشبكة والبرنامج الذين تعتمد عليهما بياناتنا الحرجة. قضيتُ بضع دقائق في البحث ثم قرّرت تشغيل Wireshark لرؤية حركة البيانات عبر الشبكة. استخدمتُ حاسوب العمل للدخول إلى نظام المعلومات ولاحظتُ أمرا غريبا. رغم أن هذه الحادثة كانت قبل انتشار SSL إلا أنني لم أكن أتوقّع أن أرى نصوصا واضحة تحوي حقولا مثل username (اسم المستخدِم) وpassword (كلمة السرّ). بدا بعد التدقيق أن النظام كان يُرسِل اسم المستخدم الخاصّ بي وسلسلة محارف عشوائية - لم تكن كلمتي للسرّ - عبر الشبكة. لم أستطع ترك الأمر على تلك الحال، فحاولتُ تسجيل الدخول مجدّدا إلا أنني هذه المرة أدخلتُ - عن قصد - كلمة سرّ خاطئة. لم أغيّر كلمة السّر كليّةً، بل اكتفيتُ بتغيير محرف واحد فقط. كنتُ أتوقّع رؤية سلسلة محارف جديدة مختلفة تمامًا تمثّل كلمتي للسّر تمرّ عبر الشبكة. بدلا من ذلك، لم يتغيّر سوى أول محرفيْن من سلسلة المحارف. كان الأمر مثيرًا للانتباه، فرغم أن خبرتي كانت متواضعة نوعا ما، إلا أنني كنتُ أعرف أنه إن طُبِّقت دالة تجزئة Hash بطريقة صحيحة على كلمتي للسرّ فستكون سلسلة المحارف مختلفة تماما، وليس فقط أول محرفين. ياللهوْل.. حتى مخطّط تعميّة (تشفير) جيّد كان سيُنتج سلسلتيْ محارف مختلفتين تماما، وهو ما يبدو أن مخطّط التعمية المستخدَم لا يقوم به. جرّبتُ كلمتي سرّ أخرييْن. تسلّحتُ بأوراق وقلم رصاص وقضيتُ الساعتيْن المواليتيْن في محاولة العثور على مخطّط فكّ التعمية. كان لديّ بانتهاء هاتيْن الساعتيْن سكريبت بايثون يمكنه أخذ أي واحدة كلمات السّر “المعمّاة” تلك ثوم فكّ تعميّتها وكشف كلمة السّر الأصلية؛ أمر يُفترَض أن لا أحد بإمكانه فعله. أنا متأكّد من أنه لم يدُر بخلد الشخص الذي وضع ذلك المخطَّط أن أحدا سيجلس ساعتيْن ويعمل على تفكيك مخطّطه؛ إلا أني فعلتُ ذلك. لماذا؟ لأنه كان بإمكاني ذلك. لا تعمّي كلمات السّر إن اضطررت لتخزينها من أجل المقارنة، فهناك دائما إمكانية أن يستطيع أحدهم إيجاد خوارزميّة أو مفتاح لفك التعميّة. لا يوجد عكس مباشر للتجزئة، بمعنى أنه لا يمكن لأحد الحصول على الأصل إلا إذا كان لديه جدول يربط بين النص الواضح وتجزئته (أو أنه خمّنه). معرفة آلية التجزئة وطريقة عملها لا تضرّ بسلامة البيانات، في حين يحدُث ذلك عند معرفة مخطّط التعمية ومفتاحها. 2. لا تترك منافذ خلفية Backdoors سريّة في البرامج كنتُ في وظيفة سابقة لدى إحدى شركات الخدمات البرمجية أقدّم الدعم لمستخدمين أخبروني أن أسماء المستخدمين التي بحوزتهم لم تعد تعمل. كان الدعم جزءًا من خدمة مدفوعة تقدّمها الشركة المطوّرة للبرنامج المستخدَم. خطر ببالي، قبل محاولة معرفة المشكل الكامن وراء إحدى أكثر مكالمات الدعم الفني إضجارا (“بيانات الدخول الخاصة بي لا تعمل”)، أن أجرّب تسجيل الدخول بنفسي. بالفعل لم تكن أسماء الدخول تعمل. كان النظام منصةً تعليمية مبنية على تقنيات الوِب، وكنا قد دفعنا مقابل وظائف محدودة من قدراتها الكثيرة. لفت أمر نظري بينما كنتُ أبحث في صفحة تسجيل الدخول. بدا حرف في إحدى المحارف ذا شكل مختلف قليلا عن البقية. ربما كان السببُ استخدام خط مختلف عن بقية الصفحة. عرضتُ مصدر الصفحة ولاحظتُ وجود رابط على هذا الحرف بالضبط. كان الرابط مخفيًّا عن قصد ولم تكن حالة المؤشّر تتغيّر عندما يحوم على الرابط. فتحتُ - بحذر شديد - الرابط في نافذة متصفّح جديدة. فجأةً بدت أمامي شاشة تفصّل معلومات عن مجموعة كاملة من الحواسيب، وتعطيني التحكّم الكامل في ما يمكن لهذه الحواسيب أن تعمله. كان بمقدوري إطفاء هذه الحواسيب، إعادة تشغيلها، أخذ لقطات من الشاشة.. أي شيء. هاتفتُ الشركة المطوّرة للبرنامج وطلبتُ الحديث مع مسؤول التقنية لديهم. تحدّثتُ في الأخير بعد المرور على أشخاص عدّة مع مَن يبدو أنهم يفهم ما أتحدّث عنه. أجاب “آه.. فعلا”، وأكمل “أضفنا ذلك الرابط ليسهل علينا الوصول. ولا أحد - قبلك - أبدا عثر عليه. سنحذفه فورا”. سألني قبل أن ننهي المكالمة سؤالا أخيرا: “لماذا بدأت في النظر إلى شفرات HTML في صفحة الدخول؟” كانت إجابتي بسيطة: “لأنني أستطيع ذلك”. لا يستحق وضعُ منفذ خلفي في نظام ما أي درجة من المخاطرة.. سيعثُر عليه شخص ما في نهاية المطاف. مهما كانت درجة الغموض فإن تحليل الشفرات البرمجية - كذلك البحث والحافز عموما - يحمل في طيّاته أكثر النتائج غرابة وفجائية. 3. استوثق من المستخدمين على جميع الصفحات.. وليس فقط صفحة الدخول كنتُ في مرحلة سابقة من مسيرتي المهنية جزءًا من مشروع تطوير برمجي كان يتولّى تنفيذه مطوّر متمرّس. كنتُ أحسّ بعدم الارتياح مع هذا التطبيق خصوصا، فأخبرتُ مديري بأننا نحتاج لإجراء مراجعة أمنية معمَّقة للشفرة البرمجية. طُلِب مني أن أنظُر في التطبيق بحثا عمّا يمكنني العثور عليه. بدأتُ بالتجوّل في التطبيق، تسجيل الدخول، وعرض بعض البيانات. ثم لاحظتُ أمرا بدا لي مثيرا للاهتمام. إن علمتُ Bookmarked رابطا بعد تسجيل الدخول والتجول في النظام فإن بإمكاني نسخه ثم لصقه في متصفّح آخر وسأحصُل على نفس الصفحة المُعلَّمة، دون الحاجة لتسجيل الدخول. سألتُ المطوّر “لماذا لا تتحقّق في كل صفحة من أن المستخدم مسجَّل الدخول؟ إذ يكفي أن أحصُل على رابط بعد تسجيل الدخول ونسخه ويمكنني الوصول إلى هذه الصفحة متى أردت دون الحاجة لتسجيل الدخول”، فسألني “لماذا تفعل ذلك؟”. أجبتُه: “لأنه يمكنني ذلك”. لا تترك أي شيء للصدفة حتى المطوّرون المتمرّسون يقعون في هذه الأخطاء؛ فهم يظنّون ألا أحد سيتعمّق في نظام لا يحقّ له الوصول إليه. المشكلة أن المستخدمين سيتسكّعون في النظام وسيعثرون على هذه الثغرات في النهاية. النصيحة الأهم التي يمكن لشخص مثلي، مجرّد هاو لمجال الحماية، أن يقدّمها هي:لا تترك أي شيء للصدفة. يوجد أشخاص - مثلي - يحبون التعمق في الأشياء لمعرفة كيف تعمل ولماذا. ولكن يوجد آخرون ربما أكثر خبرة ومعرفة سيتعمّقون في الأنظمة بحثا عن اكتشاف الثغرات ولاستغلالها. لماذا؟ لأن باستطاعتهم فعل ذلك. ترجمة - بتصرّف - للمقال 3 security tips for software developers لصاحبه Pete Savage. حقوق الصورة البارزة محفوظة لـ Freepik
    1 نقطة
  3. في الماضي القريب، كانت مهنة الهندسة واضحةً نسبياً. درست لغة معينةً أو أكثر، حصلت على عمل ونجحت. لم يعد هذا الأمر صحيحاً اليوم، فمعدل التغير المتزايد في التقنية يعني أنه بات من الصعب إتقان أي شيء قبل أن يعدّ قديماً ويُستبدل بمنافس أجدد وأبهى. لا تُعنى المسيرة الهندسية الناجحة اليوم بالتعمق في مهارة معينة، بل بالانفتاح لتعلم تقنيات جديدة بسرعة أكبر، وفهم كيف قد يغير ذلك ما يعنيه أن تكون خبيراً. عدد لا متناهٍ من المبتدئين في كتابه الأخير “المحتوم The Inevitable”، يدّعي المحرر التنفيذي المؤسس لـ وييرد Wired كيفن كيلي Kevin Kelly أن هذه الوتيرة السريعة والمتزايدة للتغيير تخلق ما يصفه بـ “العدد اللامتناهي من المبتدئين”. التقنيات التي ستسيطر على مدى 30 سنة المقبلة لم تُخترع بعد وبالتالي سنكون جميعنا “مبتدئين” بالنسبة لها، بغض النظر عن العمر أو الخبرة. فكّر بالأمر في سياق مسيرتك المهنية. في العادة، جرى تدريب المهندسين على وضع توزّع للمهارات الهندسية على شكل حرف T، فالشريط الأفقي يشير إلى اتساع مهاراتك في نواحٍ مختلفة، والشريط العمودي يشير إلى تعمقك في مجالٍ معين. لكنّ ظهور العدد الكبير من المبتدئين يعني أن الشريط الأفقي أصبح أعرض، والأكثر أهمية من ذلك أن الشريط العمودي أصبح أقصر يعني الشكل الجديد للحرف T زمناً وخبرة أقل من أجل تقنية معينة. أصبح الشريط العمودي أقصر لأن التقنية تتغير بسرعة أكبر. لا يزال عليك التعمّق في مجال معين، لكنه من غير المحتمل أن تضطر إلى العمل مستخدماً تقنية واحدة فقط خلال كامل مسيرتك المهنية. يرتبط طول الشريط العمودي بالزمن والخبرة. إن كانت التقنية والمنتجات تتغير بسرعة كبيرة، فسيكون لديك وقت أقل للتعمق في مجال واحد قبل أن يظهر منافس آخر على الساحة. كما أن معدل التغيير سيؤثر أيضاً على اتساع الشخصية التقليدية التي تتبع التوزع من الشكل T. وبما أنه سيكون هناك المزيد من التقنيات الحديثة، يصبح من المهم توسيع قاعدة المهارات والمعارف للمنتجات والخدمات المختلفة. لن تعرف من أين سيظهر المنتج أو الخدمة الجديدة التالية لذا عليك أن تُحصّن نفسك. أعطني T لقد واجهت هذا مؤخراً عندما كنت أعمل على خدمة التخزين S3 من خدمات ويب أمازون (AWS). كنت أحاول الاستعلام عن البيانات المخزنة في S3، وهو ما كان يعني في السابق استخراج وتحويل البيانات لأتمكّن من استجوابها. بجميع الأحوال، أطلقت AWS في السنة الماضية خدمة جديدة تدعى Athena ، مما يعني أنه بإمكاني الاستعلام عن البيانات في S3 لحظياً. بينما كنت أعمل مع Athena، ذكر أحدهم أن AWS أطلقت للتو خدمة أجدد تدعى Spectrum تسمح لك بإجراء استعلامات Redshift SQL مباشرة في S3. بإمكاني الآن استخدام Spectrum عوضاً عن Athena بالرغم من أنني اكتشفت Athena منذ شهر أو شهرين فقط! وإذا ما أخذنا بالحسبان وجود قلة من الأشخاص فقط يستخدمون Athena في الشركة التي أعمل بها، فقد كنت تقنياً واحداً من “الخبراء” في هذا المجال. هناك خدمات “جديدة” لكنها مبنية على مهارات أخرى، مثل استخدام استعلامات SQL للاستعلام عن البيانات أو معرفة المنتجات مثل S3 و Redshift. في السابق، كنت تركز على تقنية لقاعدة البيانات مثل MySQL أو Postgres وتقوم بزيادة التعمق العامودي لل T الخاص بك. في الوقت الراهن، ومع التغير السريع للمنتجات والخدمات، فإن كلمة خبير تعني التبديل بين المهارات بسرعة أكبر والتكيف مع التغيرات الجديدة والتخلي عن بعض المهارات. يغير هذا الأمر الكثير من الأسس التي ترتكز عليها مهنة الهندسية التقليدية. اذهب إلى الجامعة، تعلم إحدى المهارات، انضم إلى شركة تعمل في هذا المجال، طور نفسك، احصل على ترقية، أصبح خبيراً وطور مواردك البشرية. هل من المنطقي أن تذهب إلى الجامعة لمدة أربع سنوات لتتعلّم تقنية قد تختفي عندما تتخرج؟ فكر في تقنيات مثل Hadoop، التي ظهرت إلى العلن عام 2007 لكنها اليوم تعدّ “قديمة” مقارنة مع التقنيات الأحدث في علم البيانات. إن تعلّم أشياء جديدة بسرعة دون التعمق فيها كما اعتدنا أن نفعل، أمر يسهل قوله أكثر من فعله. نقدّر نحن البشر مهاراتنا ومعارفنا ونحرص على ألا ننساها. عندما بدأت العمل في مجال عمليّات التطوير DevOps، كنت أستخدم Bash لغة برمجة أساسية. عندما تعتاد على البرمجة باستخدام Bash، يمكنك أن تقوم بأشياء فظيعة بواسطتها. تابعت تعلّم لغات برمجة أخرى مثل تعلم بايثون لكنني بقيت استخدم Bash في الكثير من الحالات لأنني كنت على دراية بها. الآن، أنظر إلى الوراء وأدرك أنني كنت بطيئاً جداً في التخلي عن Bash، وأن تعلّم شيء كبايثون بسرعة أكبر كان ليساعد مسيرتي المهنية أكثر. يصعب التخلي عن شيء تشعر أنك جيد أو ملمّ به. قم بجولة في عالم الهندسة إن التحدي الحقيقي الذي يواجه الهندسة ليس استيلاء الأتمتة والذكاء الاصطناعي على وظائف البشر. الخطر الحقيقي هو الإحجام عن فهم أن مفهومنا للخبير يتغير. أن تكون خبيراً في شيء ما اليوم يعني بناء قاعدة أوسع من المهارات حتى تتمكن من التعمق عند الحاجة في تلك التقنية أو في ذلك المنتج. إن كانت الأمور تتغير على نحو أسرع من أي وقت مضى، فكذلك يجب على مجال خبرتك أيضاً أن يتغير. على سبيل المثال، نحن نكتب بالفعل خوارزميات لتعليم الآلة كي تقوم بكتابة التعليمات البرمجية بنفسها. لذا علينا أن نكون جاهزين للانتقال بسرعة من كتابة التعليمات البرمجية فقط إلى تصميم الخوارزميات. يعني ذلك بالطبع تعلّم بعض المهارات الحسابية لتطوير هذه الخوارزميات الجديدة. ولكن في تلك الحالة سيصبح المهندسون أفضل لا أسوأ بفضل التلقيح بين مجموعات المهارات. القليل من تعليم الآلة والقليل من تصميم الخوارزميات والقليل من كتابة التعليمات البرمجية وبعض المعرفة في مجال العمل. يمكّنك توزع T الأعرض من المهارات الأساسية أن تتعمق عمودياً بسهولة عند وصول ذاك المنتج الجديد إلى الساحة. نحاول في Intercom إعداد الناس لهذا المستقبل وذلك من خلال ضمان قيام المهندسين “بجولات” على مختلف الفرق. يقضي المهندسون بضعة أسابيع في العمل على فريق مختلف أو على جزء مختلف من المنتج. فقد يعمل الشخص الذي اعتاد العمل على القضايا التشغيلية الخلفية Backend في فريق يعمل على تطوير الواجهة الأمامية Frontend. وبطريقة مماثلة، قد يعمل شخص ما مع فريق التحليل لمدة من الزمن ليتعلم عن عرض البيانات أو تعليم الآلة. الهدف هنا هو توسيع T بحيث يتمكن الناس من التكيف بسرعة أكبر مع التقنيات الجديدة التي تُنشَأ يومياً. بهذه الطريقة يفهمون التقنيات الجديدة في مجالات أخرى ويمكنهم إما أن يعودوا بها لاستخدامها في دورهم الحالي أو أن يتطلعوا إلى قضاء المزيد من الوقت في فريق آخر. هناك هدف متمم للعمل مع أناس مختلفين في فرق مختلفة. وفي كلتا الحالتين، فإنه يمكّن الناس من أن يصبحوا أكثر قدرة على التكيف مع مسيراتهم الهندسية. تعلم كيف تنسى إن التنبؤ بالمستقبل أمر صعب. يمكننا رصد الاتجاهات الكبرى في التقنية، لكن يستحيل التنبؤ بالشكل المعين الذي ستتخذه. وعلى نحو مشابه، لا يمكننا أن نفهم تماماً التقنيات التي ستتطلّبها مسيرتنا الهندسية المستقبلية. ما نعرفه هو أن هذا التغير السريع أمر حتمي لا مفر منه. بغض النظر عن المهارات التي تملكها أو لغات البرمجة التي تبرع فيها، ستصبح بعض الجوانب منسية في المستقبل القريب. لذ اسأل نفسك: ما الذي يمكن أن أنساه؟ لن يكون أمراً سهلاً. ستكون مبتدئاً في مهارة جديدة عوضاً عن عمود المعرفة الذي كنت عليه سابقاً. لكنك ستكون جاهزاً على نحو أفضل بكثير للتعامل مع التقنيات الجديدة عند ظهورها. ترجمة - بتصرّف - للمقال Learn, unlearn and relearn: the changing face of your engineering career لصاحبه Cathal Horan. حقوق الصورة البارزة محفوظة لـ Freepik
    1 نقطة
×
×
  • أضف...