Cerita Horor Halloween Dari Pengembang Web





Menjelang Halloween, pengembang lengkap Wes Bose mentweet programmer lain untuk berbagi cerita horor mereka tentang webdev. Ini beberapa di antaranya ...



@DimitroffPeter :



Pekerjaan pertama saya dan kontribusi pertama saya pada produksi. Saya perlu memperbaiki utilitas klien-server. Fungsinya sederhana: kami memiliki perangkat buatan sendiri dari router dan PC. Router memiliki CLI dan seharusnya menampilkan informasi tentang status PC. Hal-hal seperti systemctl, top, gratis. Perintah dikirim sebagai teks, dieksekusi, dan hasilnya diterima sebagai teks. Namun, ini dilakukan dengan cara yang paling mengerikan ...



Perintah CLI ditentukan dalam XML. Mereka memanggil skrip Bash dengan argumen tertentu. Skrip membuat PIPE pada sistem file dan memberikan perintah padanya. Server ditulis dalam C (begitulah cara server membuat permintaan ke klien, bukan sebaliknya). Semua nama variabel pada C-server terdiri dari satu huruf (x, a, b, q) atau memiliki bentuk umum (mem, data). Ia juga memiliki sekumpulan pipa penulisan pthreads dan melakukan polling pada sistem file dengan kontrol thread sepenuhnya NOL. Tidak ada mutex, tidak ada yang seperti itu.



Jadi, thread C-server melakukan polling pada pipa pertama dan menjalankan skrip yang membuka sesi SSH dengan PC dan menjalankan perintah yang diperlukan. Hasilnya ditempatkan di satu pipa lagi dalam sistem file. Server C memiliki utas lain yang memeriksa pipa ini. Dan seribu masalah terkait. Misalnya, dia tidak dapat menemukan dengan cara apa pun apakah hasilnya sudah lengkap, dan tidak menunggu lebih banyak data masuk melalui pipa. Begitu dia membaca sesuatu, dia langsung memajangnya. Karena itu, banyak hasil parsial diperoleh, dan bagian yang tersisa dilem ke hasil perintah selanjutnya ...



Tapi bukan itu saja. Kode C bertebaran fprintf(s). Jika Anda sudah familiar dengan fungsi keluarga printf, Anda akan menyadari bahwa ini hanya meminta buffer overflow. Dan mereka mengunjungi kami. Berkali-kali.



Mari kita lihat lagi arsitektur / tumpukan dari penemuan luar biasa ini:



> CLI

> script sh

> PIPE

> pipe calling pthread

> script calling pthread

> SSH script

> SSH session to connect to PC

> PIPE 2

> another pipe reading pthread



I mengganti semuanya setelah CLI dengan 30 baris Bash menggunakan ncat.







@MichaelDClaar



Proyek sebelumnya mengirim semua laporan bug sebagai email ke pengembang. Sebuah kesalahan kecil mengirimi kami spam begitu banyak email sehingga penyedia layanan email kami memakukan akun kami. Selama setengah hari, tidak ada yang bisa mengirim email ke klien. Kami mengirim spam sendiri sekitar 5 ribu surat per menit.



@dev__adi :



Saya membuat mode gelap untuk situs kami, tetapi tidak menambahkan nilai default untuk variabel CSS. Kami seharusnya menambahkan file tema CSS di satu tempat dan semuanya akan baik-baik saja. Ternyata di proyek lain kami tidak menyertakan file variabel tema dan semuanya menjadi putih. Untungnya, masalah tersebut terjebak dalam persiapan produksi.



@Abdullahzaien :



Dalam proyek kelulusan saya, saya sangat kesal dengan ukurannya, jadi saya mengocok file.



Membuat salah satu perintah git teraneh yang akan menerapkan ulang semua komitmen dari awal.



Tidak ada yang salah dengan itu, tetapi semua komitmen ini membuat tim saya takut.



@MathiasaurusRex :



Sekitar 10 tahun yang lalu, saya salah ketik pada variabel anchor tag di sebuah perusahaan e-commerce dari Top 5. Misalkan alamatnya adalah ABC dot com, dan semua anchor tagnya mengarah ke AC dot com. Bug telah menyebar ke bagian harian / mingguan situs. Butuh beberapa jam untuk memperbaikinya.



Cukup mahal keluar "ups".



@FcoGT : FcoGT



Surat kabar meninggalkan berita penting yang mungkin akan diterbitkan segera setelah peristiwa itu terjadi. Ketika Gabriel Garcรญa Mรกrquez sakit parah, mereka sudah meninggalkan berita kematiannya di halaman rumah. Seorang teman saya membuat kesalahan dalam bersyarat dan diposting!



@ryanfiller_ :



Saya pernah mengeksekusi npm publishdari folder yang salah dan mendorong repositori kerja privat ke npm sebagai paket publik. Untungnya, ada tim npm unpublish, jika Anda menemukannya dengan cukup cepat (dalam 72 jam). Kalau tidak, itu akan tinggal di sana selamanya ...



@perlilja :



Setelah saya menginstal ulang sistem di komputer saya. Saya pikir saya telah membuat cadangan kode saya, tetapi ternyata itu bukan. Sebulan pekerjaan hilang. Ada juga sisi baiknya: Saya pikir kode baru lebih baik.



@petetasker :



Saya mengadakan kompetisi untuk acara radio. Membuat formulir di mana pengguna dapat mengirimkan jawaban atas pertanyaan mingguan. Ada tanda apostrof dalam jawaban untuk salah satu pertanyaan mingguan. Tidak ada posting yang dibuat minggu ini ...



@davigiroux_ :



Bukan cerita saya, tetapi juga menakutkan: pria yang bekerja dengan saya membuat pembaruan ke database tanpa "di mana", itulah sebabnya setiap pengguna yang berlangganan kursus dipilih kursus yang sama. Saya menghabiskan sepanjang pagi menelepon semua orang untuk mendapatkan jalan yang mereka inginkan, dan pria itu berkata bahwa dia sakit.



@jonicious :



Pada minggu-minggu pertama pekerjaan pertama saya sebagai pengembang, pemula lain dan saya menghapus semua kunci publik SSH dari mesin yang menjalankan salah satu layanan paling penting.



Saya juga mencampur bendera truedan falsemematikan kampanye iklan dengan diskon 50% untuk semua klien.



@Patawa :



Saya sedang menulis fungsi regex untuk memvalidasi nomor jaminan sosial sebelum melakukan hashing ke database. Namun, sebelum melakukan verifikasi, saya lupa mendekripsi balik, itulah sebabnya hampir 10 ribu nomor pasien dihapus dari database dalam produksi. Menghabiskan dua hari berikutnya untuk memulihkan dan memasukkan kembali.



@nishant_ch :



Di awal karir saya, saya pernah secara tidak sengaja terhubung melalui Filezilla ke server yang salah dan mengunggah situs web orang lain ke domain yang berfungsi, dan kemudian berhenti. Setelah beberapa jam, saya melihat bahwa perubahan yang saya buat tidak tercermin di situs, dan saya menyadari apa yang telah saya lakukan.



@pjately :



Secara tidak sengaja mematikan server pada hari pertama pekerjaan kantor. Saya bahkan tidak menyadarinya sampai saya menyalakan sakelar lagi dan server mengeluarkan suara boot, sementara direktur teknis berbalik dan bertanya: "Apakah itu server?" Hari kedua di tempat kerja jauh lebih baik ... Tidak mungkin lebih buruk.



@rrrrrrichard : Saya



menulis situs web untuk mencari uang di awal tahun 2000-an. Saya men-debug halaman kontak, berpikir bahwa saya telah menonaktifkan pengiriman itu sendiri. Pada hari itu, klien menerima banyak email dari "Adolf G.", "Joseph S." dll. Beberapa jam kemudian, dia dengan sopan meminta saya untuk berhenti. Ups.



Pada awalnya, dari sisi klien, mereka mengira bahwa mereka sedang diserang oleh orang gila yang marah, karena isi surat-surat itu berisi kata-kata yang vulgar. Kemudian mereka sadar bahwa seseorang telah membuka situs web mereka dan mereka menghubungi saya. Permintaan maaf dibuat dan pelajaran diambil.



@spencer_carli :



Database baru untuk saya. Saya sedang mengerjakan pemecahan masalah pemberitahuan push dan dalam prosesnya saya pikir ada perbedaan antara sistem lokal dan sistem produksi. Saya mengirim lusinan notifikasi uji push dengan tingkat gangguan yang terus meningkat ...



Ternyata tidak hanya saya, tetapi seluruh tim menerima pesan. Saya diberi tahu bahwa pesan tes diterima oleh semua orang di tim. Panekuk! Oke, oke ... Perusahaan itu teknis, semua orang mengerti segalanya.



Namun kemudian tweet dan email dari investor mulai berdatangan - pesan dikirim tidak hanya di dalam tim, tetapi juga ke seluruh basis pengguna.



Ups ...



Kemudian untuk terakhir kalinya dalam hidup saya, saya menulis pesan uji push notification yang kotor / lucu / meremehkan.



@jeroenheijmans :



"Harap bulatkan kotak centang, tetapi Anda dapat memilih beberapa opsi."



@ endlife :



Pada tahun 2005, saya mengerjakan aplikasi web untuk jaringan toko persewaan DVD - aplikasi tersebut berpindah dari aplikasi klien / server yang diperlukan untuk dial-up ke aplikasi online tunggal. Pada hari peluncuran, saya menemukan bahwa database pusat yang disinkronkan dari database klien benar-benar hancur. Tidak ada yang menguji integritas data.



Karyawan dari cabang memanggil saya: "Kami melihat orang dari kota lain di sistem kami, tetapi sistem kami tidak ada di dalamnya."



Saya menghabiskan satu hari menghubungkan melalui VNC ke komputer lokal, membuat database dump menggunakan admin MySQL lokal, dan secara manual membangun database pusat. Dan semua ini setelah dua hari yang menyakitkan menjalankan sistem ke dalam operasi.



Dalam tiga hari itu, saya mendengarkan lagu Let's Dance David Bowie tujuh puluh kali.



@sillywampa :



Saya pernah memperbarui kata sandi pengguna di database MySQL produksi, tetapi lupa menambahkan konstruksi WHERE, jadi semua kata sandi pengguna berubah. Setelah 15 menit, kami mulai menerima panggilan dan email dari klien korporat yang tidak dapat masuk.



@sygint :



Tulis ulang formulir untuk membersihkan UI, yang mencegah penambahan kartu kredit baru di situs seluler perusahaan Fortune 500 selama sebulan. Mungkin tidak ada yang menambahkannya dari aplikasi, karena kami tidak menerima keluhan. Masalahnya diperhatikan oleh pengembang junior, bahkan departemen QA tidak mengetahuinya.



Di lain waktu, klien tidak mematuhi saya dan mendorong template yang rusak ke server yang sedang berjalan. Mereka kehilangan 70 ribu dolar dalam satu jam. Kali ini bahkan tidak dekat dengan milikku, lol.



@marcelcutts :



Pada hari-hari panas saat memulai, saya membuat game bernama Zombies, Run! yang cukup populer dan memiliki beberapa juta pemain yang membayar. Suatu kali, setelah mengakumulasi hutang teknis yang tak terukur, saya menyalin dan menempelkan versi yang salah dari berkas konfigurasi Django dan kehilangan rahasia basis data.



Tentu saja, saya melakukannya dalam produksi dan saya tidak punya cadangan. Menyadari apa yang telah terjadi, saya memberi tahu CEO tentang hal itu dan baru saja meninggalkan kantor. Saya tidak berpikir kami dapat menyelamatkan perusahaan dengan mengirim SMS ke setiap pengguna "halo, bayar lagi", dan saya bosan dengan debat utang teknologi. Ternyata saya benar.



Keesokan paginya, saya berbaring di tempat tidur memikirkan cara-cara untuk mengurangi entropi rahasia tersebut, dan menemukan bahwa karena saya membuat kesalahan lain dan memasukkan rahasia itu ke terminal saya, rahasia itu ada dalam sejarah zsh saya sepanjang waktu. Dua hal negatif membuat afirmatif.



Komentar di tweet: Saya pernah memainkan game ini, ada banyak bug aneh.



@marcelcutts : Tidak heran, saya adalah pengembang yang buruk.



@JosDeBt :



Saya memiliki sistem beberapa situs tempat konten dapat ditransfer dari satu situs ke situs lain. Selama pengujian, saya tidak menyadari bahwa saya mengikuti tautan ke produksi dan meluncurkan "perbarui konten" tanpa menentukan id halaman ... Semua halaman di setiap situs terdiri dari satu kata "pengujian". Ini terjadi pada hari-hari sebelum sistem kontrol versi ada dan perubahan langsung ditransfer melalui FTP ke server produksi.



@chrisalesant :



Dalam pekerjaan front-end pertama saya, saya diminta untuk mendesain daftar panjang email, jadi saya membuat semuanya dengan div, animasi dan flexbox. Setelah sekitar dua minggu, departemen pemasaran menjalankan kontrol kualitas dan mengatakan mereka akan melakukan semuanya mulai dari awal pada tabel dan gaya sebaris dalam tiga hari.



Cherry on the cake: desainnya seharusnya memiliki tata letak piksel yang sempurna untuk klien Outlook.





@johnhutch :



Saya bekerja pada platform e-niaga khusus untuk perusahaan Fortune 500. Ratusan pengembang mengerjakan lusinan salinan internasional dari beberapa merek, kode didorong tanpa henti sepanjang hari.



Jadi bayangkan horor saya ...



ketika saya mendapat pesan bahwa saya merusak seluruh cabang / lingkungan git saya. Ternyata ketika melakukan merge saya mengacaukan cabang tempat saya berada (jangan gunakan '.' Guys. Selalu sertakan nama cabang secara eksplisit).



@MongooseDoom :



Saya menggunakan tablet Wacom daripada mouse, karena itu lebih nyaman bagi saya. Suatu hari, tanpa disadari saya menyeret folder ke folder lain di server produksi. Tidak ada catatan tentang apa yang saya lakukan, jadi butuh waktu lama bagi orang lain untuk mengetahuinya. Dan saya melakukannya dua kali.



Pada hari Jumat malam yang hujan, saya tidak sengaja menghapus tabel SQL.



Tentu saja, kemudian saya menemukan bahwa strategi cadangan kami rusak.



Untungnya, ini terjadi sebelum era lazy loading, dan saya berakhir dengan satu tab terbuka dengan 400 nilai, yang kemudian saya masukkan secara manual.



Saya biasanya seorang agnostik, tetapi saya ingat berdoa pada hari itu agar Firefox tidak mogok sampai saya mengambil tangkapan layar dari semua nilai di halaman ini!






Periklanan



VDSina menawarkan server aman di Linux atau Windows - pilih salah satu OS yang sudah diinstal sebelumnya, atau instal dari gambar Anda.






All Articles