خطأ في لغة سويفت يمكنه حذف كل ملفاتك الموجودة على الماك!

لغة سويفت

منذ ثلاثة أيام، استعرضت أبل لغة البرمجة الجديدة التي كانت تعمل عليها لمدة أربع سنوات: لغة سويفت. ومع ذلك، تم اكتشاف مشكلة حقيقية بها تهددكم كمستخدمين.

وقام دافيد أورباخ – مهندس برمجيات- بالإشارة إلى أن لغة سويفت أقل من توقعات المطورين، موضحاً أن كل ما شجّع المبرمجين لاستخدام هذه اللغة الجديدة أنها من أبل فقط، مع وجود خطورة فيما بعد تتعلق بحقوق الملكية. لكنه في النهاية فضَّل أن يترك الأمر للنقاشات الجارية حالياً حول سويفت بين مجتمعات المبرمجين.

هناك مشكلة أخرى أكثر خطورة مع البلاي جراوند playground الخاص بلغة سويفت تنطوي على أمر برمجي، يسمح لها بحذف جميع ملفاتكم الموجودة على جهاز ماك وعلى الفور!

الأمر البرمجي هو (“cd ~; rm -rf *”). لذلك إذا كان أحدكم يخطط لاستخدام لغة سويفت، أيَّاً كان ما ستفعله، لا تكتب هذا الأمر المذكور آنفاً.

ولم تُعلَّق أبل بعد على هذا الخطأ البرمجي، لكننا في انتظار أي تحديث لإصلاحه. لكن على أية حال، يمكنكم تحميل دليل استخدام لغة سويفت من متجر آي بوك.

المصدر1 | المصدر2

  • اسامة

    ليش

  • مؤمن

    الخطأ ليس في اللغة بل في اداة استعراض ناتج الكود المباشر اثناء الكتابة المسماة بال Playground في برنامج ال xcode يا ريت تفهموا ان الxcode الجديد لا زال في طور ال developer preview ويرجى فهم فحوى المواضيع اولا قبل المسارعة في القائها على المدونة..

  • هشام ابوعزه

    كالعادة ياتامر نقل اخبار بدون مصادر رسمية
    توقعت احصل مصدر قوي للمقال ولكن للاسف مجرد تغريده وغير مذكوره في اكبر المواقع المختصه بالماك
    كذالك حاول تبتعد عن التنكيت في المقالات لانه مش جيد ابدا للكاتب المحترف

    حبذا تستفيد من الاخوان والاخوات هنا امثال : ابو حبش , ايمان الزبيدي وغيرهم من الكتاب الاكفاء

    • يا هذا 🙂 لم أكن أعرف أن تامر عمران (قاهرك) قوي بهذا الشكل. عموماً تعلّم أن أكبر المواقع تكتب أخبار على مجرد تغريدة أيضاً، ثم لماذا علقت على التغريدة ولم تعتبر للمصدر الآخر؟

      صدقني، لو تامر عمران مضايقك قوي بهذا الشكل، فهذا شيء يسعدني :). المهم ألا تيأس من تحريشك، واستمر على هذا المنوال لأن أمثالك كُثُر وأنت دخلت معهم المنافسة.

      بالتوفيق يا أبو… 😉

      • tarray

        يا هذا هل لك خبرة في البرمجة ؟ هل تعلم ما معنى (“cd ~; rm -rf *”) الذي كنبته في ندوينتك ؟

        الامر لا يتعلق بلغة البرمجة نفسها . اما cd ~; rm -fr * فهو عبارة عن تنفيذ للامر حذف جيمع الملفات في مجلد المستخدم الحالي .. يتواجد في كل الانظمة الشبيهة ب Unix بما فيها Linux
        خبذا لو تحترم اراء الاخرين

      • خليني أكلمكم انتوا الاتنين شوية باللغة العامية؛ لإن الظاهر اللغة العربية مبتفهموهاش:

        دا حساب صاحب التغريدة:
        https://twitter.com/stroughtonsmith

        تقدروا تروحوا تقولوا له انت حمار واحنا اللي بنفهم وكلامك دا غلط.

        مع العلم إنه مبرمج محترف، وعنده متابعينه فوق الـ 29 ألف، واللي من متابعينه الحسابات الرسمية لسامسونج، وبلاك بيري، وباراك أوباما وأشهر مواقع ماك زي آي مور وكالت أوف ماك.

        فهمتوا مشكلتكم إيه؟ إنكم داخلين تغلطوا وخلاص وعاملين فاهمين والله أعلم بنيتكم السودا.

        وبالهنا والشفا 🙂

      • هشام ابوعزه

        اخ تامر لماذا جعلت الموضوع شخصي ؟

        لماذا لا تتقبل النقد ومن منا لايخطئ ويصيب ؟

        استاذي الفاضل

        التغريده عبر حساب جيد ولا نختلف بالامر ولكن لاتصل الى ان تضعها تدوينه
        لانها لم تذكر في اكبر المواقع حسب ماذكرت وبما انه اكبر المواقع متابعه للمبرمج
        لماذا لم تذكر الخبر …. خذا الموضوع بشوية عقلانية بعيد عن التعصب او جعل الموضوع شخصي بيني وبينك

        2 رابط المصدر الاخر الذي قمت انت بوضعه لايذكر شيء عن الامر بتاتا فقط استعراض وتوضيح تاريخ البرمجه …. الخ

        اي لايذكر عن امر المشكله ابدا

        اما بخصوص الاسماء المستعاره او غيره
        استطيع ان اقول لدى صاحب الموقع القدره للكشف عن الايميلات المسجله وارقام الايبي

        لك التحية

      • النقد مقبول عندما يبتعد عن الأشخاص أخ هشام، يعني لما تكتب أنت خبر وأقول لك “المصدر أخي غير كاف” أو “التغريدة ليست دليل على ما ذكرت أخي” أو ما شابه، هذا نقد مقبول، ويُناقش فيه بكل رحب.

        أمَّا إنك تأتي وتقول لي من أول كلامك “(كالعادة) ياتامر نقل اخبار بدون مصادر رسمية”!

        هذا اسمه طعن وليس نقد، وشتان بينهما، ولغة السب والقذف سهلة، ولا نهاية لها.

        طعنت في التغريدة وقلت “مجرد تغريدة” والخبر غير موجود في “أكبر المواقع”.. الآن صارت التغريدة مصدر جيد، لكن الطعن الجديد أن المصدر الآخر المذكور – اللي من أكبر المواقع- لم يذكر أي شيء مكتوب! أليس كذلك؟

        شوف، أي شخص يدخل دخلتك هذه باعرف إيش غرضه بالضبط، ولا أستطيع أن أفترض فيه حسن النية أبداً، طالما دخلت قلت “كالعادة!” التي لا أفهم أين عادتي في إني أكتب أخبار بدون مصادر!! وكونك تذكر زملائي في العمل؛ فهذا تحريش؛ لأن هناك من قال مثل كلامك بالضبط أيضاً لكل واحد منهم. ونحن لسنا مُطالبين بإرضاء الجميع، طالما عامة القراء يعلمون جيداً من هو فلان ومن هو فلان.

        الشاهد، انقدني باحترام ولا تطعن، حينها أتناقش معك. أمَّا أن تطعن بأسلوبك السابق، فأسرد عليك بنفس أسلوبك، أو قد لا أرد من الأساس بحسب الحاجة :).

        وصحيح، مصدر موقع BGR هو نفس التغريدة! يعني أقاموا الخبر وكتبوه بناءً على التغريدة. وأنا لست مُطالب بأن أضع 15345346345 مصدر؛ طالما هناك أمانة في النقل؛ لإني ولله الحمد أراعي ربي في النقل ولست من مروجي كلام ليس له صحة أو أساس.

        وطالما إنك لست متخصص، فأرجو ألا تتكلم في أصول التحرير أخ هشام.

        تحياتي

      • tarray

        حسنا , ما قاله المبرمج في تغريدته :
        > Protip: while in a Swift playground, for the love of God don’t write system(“cd ~; rm -rf *”). Runs-as-you-type has its downsides!

        هل فهمة ما قصده ب Swift playground ؟ و هل فهمة الفرق بينها و بين لغة البرمجة Swift ؟ اعتقد لا , لان عنوان تدوينتك هو “خطأ في لغة سويفت يمكنه حذف كل ملفاتك الموجودة على الماك!”

        ماذا لو قلت لك ان نفس الامر “cd ~; rm -fr *” يمكن يشتغل على “لغات” اخرى كبايثون و روبي و على كل من Mac OS X و Linux و يكون له نفس التأثير بحذف ملفات المستخدم كليا … ؟

        رغم كل الاراء التي طرحت عليك في التعليقات حول هذا الموضوع الا انك لم تحرك ساكنا على الاقل بمناقشة المعلومة (ما لم نقل تصحيحها) , فكل ما كان لك هو الهجوم على شخص المعلقين !

        ان تكون على اطلاع على الشيء الذي تكتب حوله شيء جيد و ضروري.

      • لو مكانك؟ أشرح للناس ماذا يعني الأمر البرمجي؟ وهل إذا تمت كتابته على المنصات الأخرى سيقوم بحذف جميع ملفاتهم أم لا؟ وإذا لا يقوم الأمر بحذف الملفات على اللغات الأخرى إذاً العيب يوجد في سويفت أم في أحد أقاربها 😀 ؟

        نصيحة: بدلاً من أن تظهر بمظهر “الفاهم العارف” وتذكر كلاماً لحفظ ماء الوجه، وضّح للناس القضية بالتفصيل، وصحيح، لا تنس دعم كلامك بالمصادر؛ فعندك مني بالأعلى تغريدة ومصدرين، أما أنت، مجرد كلمات الله أعلم أين منها الصدق وأين منها الكذب.

      • tarray

        لا اتوقع منك تفهم و تقبل الامر بسهولة.

        لكن ان تنقل الخبر بشكل مغلوط ليس شيء مقبولا, فالمغرد تحدث عن بيئة Swift playground و انت طفقت تتحدث عن لغة Swift نفسها ! و الفرق هنا واضح وضوح الشمس

        شكرا لنصيحتك, لكني افضل الا اناقش شخصك (عكس ما تقوم به كل مرة في تعليقاتك) .

        تفضل مصادري:
        الامر cd
        http://www.unix.com/man-page/opensolaris/1/cd/

        الامر rm
        http://www.unix.com/man-page/opensolaris/1/rm/

        تنفيذ الامرين عن طريق الاستدعاء من لغة البرمجة بايثون و روبي (الدالة system كمثال)
        https://docs.python.org/2/library/os.html#os.system
        http://ruby-doc.org/core-2.1.2/Kernel.html#method-i-system
        يمكنك تجريب الامر بدخول الى مفسر اللغتين التفاعلي و كتابة الامر cd ~; rm -fr * ليتم حذف جميع ملفاتك كمستخدم حالي

      • تتوقع أو لا تتوقع هذا شأنك، لا يعنيني، المهم العبرة عندي بالمصدر، ويبدو إنك أنت من لم تفهم تعليقاتي السابقة، أو لم تكلف نفسك بفتح الرابط المرفق بإحداها.

        وجيد أن ينتهي الكلام عند هذا الحد.

      • tarray

        نعم العبرة بالمصدر, لكن الكاتب الذي لا يفهم في الموضوع الذي كتبه سوى نسبة قليلة و يتحجج “بالمصدر” في كل مرة يتم سؤاله -رغم انه مترجم/فاهم “المصدر” بشكل خاطئ- ماذا يعتبر ؟
        ما فهمته من تعليقاتك انك لست على دراية بالموضوع, و رغم ذلك تواصل الدفاع عن خطأك بالهجوم على كل ذي رأي مخالف. و لهذا السبب فانك مضطر “لانهاء الكلام عند هذا الحد” !

      • بالسلامة أيها المجادل. : )

      • بشاير عبدالعزيز

        شكرا ل tarray على توضيح الموضوع ، قعلا بلاقراوند سويفت غير كليا عن سويفت نفسها ، الامر الجلل انه الخبر من موقع التقنيه اللي المفروض الشي مدقق فيه ، وليس من العيب ان يعترف المخطئ بالخطأ ..

      • بشاير عبدالعزيز

        واعتقد ان الامر البرمجي المكتوب اعلاه لو كتبته في برنامج سوفيت راح يطلع غلط لانه مب من ضمن الاسطر البرمجيه اللي يفهمها ..
        لكن لو كتبته في terminal راح يتنفذ ..

      • الأوريا

        السلام عليكم..

        قبل كل شي… رأيي صواب يحتمل الخطأ… حتى لا أتهم بالفلسفة وتسفيه الآخرين…

        ما أراه أن هناك خطأ وقع فيه كل من الكاتب و المشتركين في التعليقات أيضا…

        فنعم التغريدة تكفي كمصدر وعنوان عام خبر,,,ولا يوجد سبب لإستغراب المعلقين على هذه النقطة
        فيحق للكاتب تحويلها إلى مقال أو حتى كتاب كامل حسب ما يقوم به من بحث وتحقيق وتقصي عن الخبر ومايتعلق به…

        ونعم أيضا… ان هناك خطأ وقع في الكاتب في إختيار العنوان…
        وألتبس عليه الفرق بين اللغة Swift وبين البيئة Swift Playground…

        فحسب فهمي للتغريدة وللمقالات التي تحدثت عن المشكلة انها خاصة فقط بالبيئة وليس اللغة…
        فمن خصائص البيثة انها تدعم ميزة Runs-as-you-type “التنفيذ أثناء الكتابة” ولتبسيط شرح هذه الميزة…
        فهي مثل ميزة التدقيق الإملائي والنحوي أثناء الكتابة في برنامج مايكروسوفت وورد…
        فكلما كتبت كلمة وقمت بالضغط على زر المسافة… يقوم الوورد مباشرة بفحص الكلمة والجملة لتحديد أي أخطاء إملائية أو نحوية…

        وهذا بالضبط ماتقوم به ميزة “التنفيذ للأوامر أثناء الكتابة” فهي تنفذ أي أمر تقوم بكتابته مباشرة بدون الحاجة للضغط على مفتاح الإدخال Enter
        وهي من أحد مميزات البيئة التي تستند عليها أبل لتسهيل البرمجة باللغة الجديدة والتسهيل على المبرمجين لأنهم يرون النتائج فورية لمايستخدمونه من أموار…

        وهنا تكمن الخطورة عند كتابة الامر المذكور والمكون من قسمين…
        cd ~: يقوم بتغير مجلد العمل الحالي إلى المجلد الرئيسي Home للمستخدم المنفذ للأمر
        rm -fr: يقوم بحذف كافة الملفات والمجلدات حتى المحمية منها في المجلد الحالي والمجلدات التي تقع داخله بدون سؤال المستخدم لتأكيد الحذف أو لاء…

        وكما قال الأخوة…
        فالأمرين موجودان في كل أنظمة التشغيل المبنية القائمة على Unix أو Linux ولكن الفرق أن من خلال الأنظمة هذه وبيئات البرمجة الأخرى انك تحتاج لتنفيذ الملف المحتوي على الأمرين أو كتابة الأمرين على سطر الأوامر والضغط على زر الإدخال… أما هنا فتقوم البيئة بالتنفيذ الفعلي المباشر على الجهاز…

        من الحلول المقترحة هي عزل البيئة عن نظام التشغيل بإستخدام تقنية العزل Sandbox وبهذا يكون كل مايحصل في البيئة خاص بها ولا يؤثر فعليا على جهاز المستخدم…
        تقنية العزل توفر بنية تحتية مشابة تمام للجهاز الذي تعمل عليه ولكنه إفتراضية… فتعزل أي تأثير حقيقي…
        وتستخدم هذه التقنية عند التعامل مع الفايروسات والبرمجيات الخبيثة لتفحص طريقة عملها دون حصول أي أضرار حقيقة…

        هذا وتقبل تحياتي
        الأوريا

  • مصطفى

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

تعليقات عبر الفيسبوك