لوحات الحالة مخصصة لـ "مديري المشاريع"! قم بالانتقام من بناء مكسور بوابل من الصواريخ الرغوية.
الانتقام هو جهاز مراقبة بناء Jenkins CI الذي يقوم تلقائيًا بتنسيق هجوم مضاد بصاروخ رغوي ضد المطور الذي "يكسر البناء". يقوم بذلك عن طريق تشغيل تسلسل تحكم مبرمج مسبقًا على قاذفة صواريخ USB Foam Missile Launcher لاستهداف قرد الكود المخالف.
على مستوى أعمق، يعد الانتقام أكثر من مجرد "نص بايثون بسيط". إنها إعادة تفكير جذرية في كيفية إدارة فرق تطوير البرمجيات ودورة حياة تطوير البرمجيات. إنه يعمل على مستوى نفسي عميق لتقديم تحسينات في الإنتاجية غير مرئية في كل تلك الأشياء الأخرى "البرمجة المتطرفة" التي يتحدث عنها المستشارون الخارجيون. إن التهديد الأساسي المتمثل في التدمير المتبادل المؤكد الكامن في نفسية كل مبرمج يضمن أنه حتى المطورين الأكثر إهمالًا لن ينسوا أبدًا "التحقق من هذا الملف المفقود" مرة أخرى!
لقد جلب لنا الانتقام ما وعدتنا به البرمجة الثنائية لتحسين الإنتاجية ولكن لم نتمكن من تحقيقها أبدًا! لقد شهدنا انخفاضًا بنسبة 13.37% في كسر البناء منذ تنفيذه.
ويل، كبير قراصنة الشفرات
بصراحة، هل ستعمل ضمن فريق تطوير مع إشعار إنشاء Lava Lamp؟ ماذا بعد؟ نيان كات ماوس الحصير؟ المبرمجون الحقيقيون يعملون تحت تهديد الانتقام!
مات، آلة الترميز
يفعل ما هو مكتوب على المربع. لقد رأيت تحسينات في فريقي ولم نقم بتثبيته بعد! مجرد التهديد المطلق هو الذي جعل عملية تطوير فريقي تسير على ما يرام.
توم، كابتن كود الرئيسي
يمكنك رؤية الانتقام أثناء العمل في هذا الفيديو.
قم بتركيب قاذفة الصواريخ Dream Cheeky Thunder USB في موقع مركزي وثابت.
قم بتنزيل البرنامج النصي retalation.py على النظام المتصل بقاذفة الصواريخ لديك.
قم بتعديل COMMAND_SETS
الخاص بك في البرنامج retaliation.py
لتحديد أوامر الاستهداف الخاصة بك لكل واحد من برامج ترميز البناء الخاصة بك (معرف المستخدم الخاص بهم كما هو مدرج في Jenkins). مجموعة الأوامر عبارة عن مجموعة من أوامر التحرك وإطلاق النار. يوصى ببدء كل مجموعة أوامر بأمر "صفر". يؤدي هذا إلى إيقاف المشغل في موضع معروف (أسفل اليسار). يمكنك بعد ذلك استخدام "أعلى" و"يمين" متبوعًا بالوقت (بالمللي ثانية) لتوجيه نيرانك.
يمكنك اختبار مجموعة عن طريق استدعاء retalation.py باسم الهدف. على سبيل المثال:
python retaliation.py "[developer's user name]"
التجربة والخطأ هو النهج الأفضل. فكر في القيام بذلك سرًا بعد ساعات للحصول على أفضل النتائج!
قم بإعداد البرنامج المساعد لإشعارات Jenkins. حدد نقطة نهاية UDP
على المنفذ 22222
للإشارة إلى النظام الذي يستضيف retaliation.py
. نصيحة: تأكد من أن جدار الحماية الخاص بك لا يحظر UDP على هذا المنفذ.
ابدأ الاستماع لأحداث البناء الفاشلة عن طريق تشغيل الأمر:
python retaliation.py stalk
(فكر في إعداد هذا كبرنامج نصي للتمهيد/بدء التشغيل. في نظام التشغيل Windows، ابدأ باستخدام pythonw.exe
لإبقائه قيد التشغيل مخفيًا في الخلفية.)
انتظر DEFCON 1 - فلتبدأ المناورات الحربية!
شكرًا لفريق التطوير في PaperCut (الذي يعمل على برنامج إدارة الطباعة) على "التعامل مع القليل من الأفكار في الرأس" أثناء الاختبار!
حدد موقع التثبيت بعناية. اختر موقعًا مركزيًا في مساحة مكتبك. السعي لتحقيق أقصى قدر من الفصل الزاوي بين الأهداف. سيؤدي هذا إلى تقليل احتمالية وقوع حوادث نيران صديقة... ولكن مرة أخرى، يأتي هذا مع المنطقة ويشكل جزءًا من المتعة!
فكر في تثبيت المشغل باستخدام شريط مزدوج الجوانب لتأمين موضعه. وهذا يقلل من فرصة قيام شخص ما باستخدام "الاختراق الجسدي" لتعطيل نظام الاستهداف الإحداثي.
إذا كان مرتكب الجريمة من مسافة قريبة، ولأسباب تتعلق بالصحة والسلامة، نقترح استهداف لوحة المفاتيح أو الشاشة بدلاً من رأسه.
إذا كانت لديك مساحة واسعة لتغطيتها، ففكر في إطلاق صواريخ متعددة (على سبيل المثال، الدعم العنقودي!). قم بإعداد البرنامج النصي على أجهزة متعددة وقم بتكوين إشعارات متعددة لنقطة النهاية في Jenkins.
لكي تعمل هذه الميزة على نظام التشغيل Windows، ستحتاج إلى تثبيت PyUSB وlibusb-win32. قد يكون هذا أمرًا صعبًا بعض الشيء، ولكن إذا كنت تتقن البرامج النصية لبناء CI، فيجب أن يكون هذا سهلاً!
إذا كان فريق التطوير الخاص بك في الأسفل ووجدت أن لعبة Retaliation تفقد تأثيرها، فحاول غمس كل صاروخ في بعض الفيجيمايت للحصول على بعض الضربات الإضافية :-)
retaliation.py
يعمل أيضًا كواجهة برمجة تطبيقات للبرمجة النصية لسطر الأوامر لـ Dream Cheeky USB Missile Launcher . يمكنك استدعاؤه للتحكم في الجهاز من خلال برنامج نصي أو سطر الأوامر كما يلي:
retaliation.py reset
retaliation.py right 3000
retaliation.py up 700
retaliation.py fire 1
إذا توصلت إلى بعض الاستخدامات أو الأفكار الرائعة الأخرى للانتقام، يرجى مشاركة قصتك!