Papan status ditujukan untuk 'manajer proyek'! Membalas bangunan yang rusak dengan rentetan misil busa.
Pembalasan adalah monitor build Jenkins CI yang secara otomatis mengoordinasikan serangan balik rudal busa terhadap pengembang yang "merusak build". Hal ini dilakukan dengan memainkan rangkaian kontrol yang telah diprogram ke USB Foam Missile Launcher untuk menargetkan kode monyet yang menyerang.
Pada tingkat yang lebih dalam, Pembalasan lebih dari sekedar "skrip python sederhana". Ini merupakan pemikiran ulang yang radikal mengenai cara mengelola tim pengembangan perangkat lunak dan siklus hidup pengembangan perangkat lunak. Ia bekerja pada tingkat psikologis yang mendalam untuk menawarkan peningkatan produktivitas yang tidak terlihat dalam semua "pemrograman ekstrem" lainnya yang dibicarakan oleh konsultan eksternal. Ancaman utama berupa kehancuran yang saling mengintai dalam jiwa setiap pembuat kode memastikan bahwa bahkan pengembang Anda yang paling ceroboh pun tidak akan pernah lupa untuk "memeriksa file yang hilang itu" lagi!
Pembalasan memberi kita peningkatan produktivitas melalui program berpasangan yang dijanjikan, namun tidak pernah bisa diwujudkan! Kami telah melihat penurunan kerusakan bangunan sebesar 13,37% sejak implementasinya.
Will, Kepala Peretas Kode
Sejujurnya, apakah Anda akan bekerja di tim pengembang dengan pemberi notifikasi pembuatan Lampu Lava? Apa selanjutnya? Alas tikus Nyan Cat? Pembuat kode sejati bekerja di bawah ancaman Pembalasan!
Matt, Mesin Pengkodean
Melakukan apa yang tertulis di kotak. Saya telah melihat peningkatan di tim saya dan kami bahkan belum menginstalnya! Ancaman belaka saja telah membuat pengkodean tim saya sejalan.
Tom, Kapten Kode Kepala
Anda dapat melihat aksi Pembalasan dalam video ini.
Pasang Peluncur Rudal USB Dream Cheeky Thunder Anda di lokasi pusat dan tetap.
Unduh skrip retaliation.py ke sistem yang terhubung ke peluncur rudal Anda.
Ubah COMMAND_SETS
Anda di skrip retaliation.py
untuk menentukan perintah penargetan untuk masing-masing pembuat kode build-braking Anda (ID penggunanya seperti yang tercantum di Jenkins). Kumpulan perintah adalah serangkaian perintah pindah dan tembak. Disarankan untuk memulai setiap kumpulan perintah dengan perintah "nol". Ini memarkir peluncur pada posisi yang diketahui (kiri bawah). Anda kemudian dapat menggunakan "atas" dan "kanan" diikuti dengan waktu (dalam milidetik) untuk mengatur posisi tembakan.
Anda dapat menguji suatu set dengan memanggil retaliation.py dengan nama target. misalnya:
python retaliation.py "[developer's user name]"
Trial and error adalah pendekatan terbaik. Pertimbangkan untuk melakukan ini secara diam-diam setelah jam kerja untuk hasil terbaik!
Siapkan plugin notifikasi Jenkins. Tentukan titik akhir UDP
pada port 22222
yang menunjuk ke sistem hosting retaliation.py
. Tip: Pastikan firewall Anda tidak memblokir UDP pada port ini.
Mulai dengarkan peristiwa pembangunan yang gagal dengan menjalankan perintah:
python retaliation.py stalk
(Pertimbangkan untuk mengatur ini sebagai skrip boot/startup. Pada Windows, mulailah dengan pythonw.exe
agar tetap berjalan tersembunyi di latar belakang.)
Tunggu DEFCON 1 - Biarkan permainan perang dimulai!
Terima kasih kepada tim pengembang di PaperCut (yang mengerjakan perangkat lunak manajemen pencetakan) karena "mengatasi beberapa masalah" selama pengujian!
Pilih lokasi pemasangan dengan hati-hati. Pilih lokasi sentral di ruang kantor Anda. Berusaha keras untuk memaksimalkan pemisahan sudut antar target. Hal ini akan mengurangi kemungkinan terjadinya insiden tembak-menembak... tapi sekali lagi ini sesuai dengan wilayahnya dan merupakan bagian yang menyenangkan!
Pertimbangkan untuk menempelkan peluncur menggunakan selotip dua sisi untuk mengunci posisinya. Hal ini mengurangi kemungkinan seseorang menggunakan "peretasan fisik" untuk mengganggu sistem penargetan koordinat.
Jika pelaku perusak tubuh Anda berada dalam jarak dekat, demi alasan kesehatan dan keselamatan, sebaiknya targetkan keyboard atau monitor mereka, bukan kepalanya.
Jika Anda memiliki wilayah yang luas untuk dicakup, pertimbangkan peluncuran beberapa rudal (misalnya dukungan cluster!). Siapkan skrip di beberapa mesin dan konfigurasikan beberapa notifikasi titik akhir di Jenkins.
Agar ini berfungsi di Windows, Anda perlu menginstal PyUSB dan libusb-win32. Ini mungkin sedikit rumit tetapi jika Anda sudah menguasai skrip build CI maka ini akan mudah!
Jika tim pengembangmu berada di Down Under dan kamu mendapati Pembalasan kehilangan efeknya, coba celupkan setiap misil ke dalam Vegemite untuk mendapatkan pukulan tambahan :-)
retaliation.py
juga berfungsi sebagai API skrip baris perintah untuk Dream Cheeky USB Missile Launcher . Anda dapat memintanya untuk mengontrol perangkat dari skrip atau baris perintah sebagai berikut:
retaliation.py reset
retaliation.py right 3000
retaliation.py up 700
retaliation.py fire 1
Jika Anda punya kegunaan atau ide keren lainnya untuk membalas dendam, silakan bagikan cerita Anda!