LOLWUT: sebuah karya seni dalam tim db

Penulisnya adalah Salvatore Sanfilippo alias antirez, salah satu pengembang utama database Redis, seorang karyawan Redis Labs. Artikel diterbitkan 12 September 2018

Beberapa hari terakhir ini sangat menegangkan. Salah satu argumen dalam perselisihan tentang mengganti atau tidak mengganti kata-kata yang digunakan dalam kode replikasi Redis adalah sebagai berikut: apakah layak melakukan pekerjaan yang tidak menghasilkan hasil teknologi apa pun? [Ini tentang mengganti istilah "master / slave" dalam replikasi - kira-kira. per.]

Dalam proses pembersihan sumber Redis dari kata tertentu, jika mungkin, saya pikir saya suka menulis kode bahkan tanpa efek teknologi yang dapat diukur. Mengganti kata adalah pekerjaan yang terlalu rutin, itu hanya menjengkelkan, bahkan jika masalah teknologi yang layak terjadi di sepanjang jalan. Tetapi ada jenis kode lain dengan kualitas khusus, yang saya sebut "nilai retas". Itu mungkin tidak memecahkan masalah apa pun, tapi tetap saja itu tugas yang layak. Ada beberapa alasan. Terkadang proses penulisan kode berguna sendiri. Terkadang ide-ide yang maju secara teknis digunakan untuk menyelesaikan masalah yang tidak kritis. Dan terkadang kode ini ditulis hanya untuk alasan estetika.

Diskusi bodoh, kacau dan panas dari hari-hari terakhir di Twitter mendorong gagasan bahwa sekarang kita sangat jauh dari peretas pertama tahun 60-an. Semakin sulit setiap tahun untuk membahas teknologi dari sudut pandang peretas - tanpa ide dan masalah siap pakai, di mana tujuannya adalah penelitian murni. Untuk seluruh dikembangkan "praktik terbaik." Ada tabu untuk setiap ide. Saya katakan LOLWUT ke dunia baru ini, karena saya tidak merasa seperti bagian dari itu, dan itu sama sekali bukan hacker, setidaknya dalam visi saya. Jadi, idenya adalah untuk meluangkan waktu pada ide yang secara teknis tidak berguna, untuk meneliti sesuatu dari tahun 60an.

Saya langsung teringat salah satu karya seni favorit saya - kerikil Schotter dari George Nies . Penulis menulis dalam ALGOL program plotter yang menghasilkan karya seni menggunakan kekacauan (angka acak). [Angka-angka ramping secara bertahap dalam gambar menjadi semakin kacau - dan sebaliknya, kekacauan secara sistematis diperintahkan ke dalam struktur yang terorganisir, jika Anda memutar gambar 180 ° - kira-kira. trans.] . Kerikil ini luar biasa dalam kesederhanaan dan maknanya yang dalam, yang bisa dipahami oleh pemirsa. Di bawah kedok yang benar-benar tenang, kekacauan mengintai jauh di dalam ordo. Jika Anda membalikkan gambar, sepertinya laut saat badai. Kekacauan mengamuk di permukaan, dan di kedalaman laut tetap tenang.

Apakah mungkin mengubah karya seni menjadi tim DB? Ini cukup rumit, karena Redis terutama digunakan dari baris perintah. Saat ini, konsol lebih canggih daripada di masa lalu, tetapi menampilkan grafik yang layak sulit. Di sisi lain, kami memiliki keuntungan besar dalam komputasi real-time - gambar dapat menjadi dinamis dan berubah setiap generasi.

Sebelum melanjutkan, saya akan menunjukkan kepada Anda hasil akhir:



Meskipun dalam resolusi yang sangat rendah, ide aslinya tetap dipertahankan. Di sini saya menerapkan trik yang digunakan banyak program, menampilkan berbagai hal menarik di konsol teks. Bagian pertama dari solusi ini adalah menggunakan braille Unicode untuk menghasilkan matriks piksel dengan resolusi lebih tinggi daripada karakter konsol individual. Khususnya, untuk setiap simbol, kotak 2 × 8 piksel dapat dibuat.

Bagian kedua adalah parameter untuk gambar:



Anda dapat membuat beberapa versi gambar dengan mengubah jumlah kotak dan resolusi keluaran. Akhirnya, saya ingin menulis kode sumber sebagai contoh pemrograman yang kompeten - dalam bentuk yang lebih mirip buku teks dengan deskripsi terperinci dari setiap langkah, dan bukan hanya generator kotak hitam. Kodenya ada di sini .

Dimulai dengan Redis 5, tim LOLWUT akan menjadi standar. Di setiap versi utama baru, fungsinya akan berubah sepenuhnya. Hanya seperangkat aturan yang tidak berubah:

  1. Dia tidak bisa melakukan sesuatu yang bermanfaat.
  2. Itu harus bekerja dengan cepat sehingga dapat dengan aman dipanggil pada server dalam produksi.
  3. Hasilnya harus menarik dalam beberapa cara.

Saya menulis versi pertama untuk Redis 5. Dalam versi berikutnya saya akan bertanya kepada orang lain dari pengembang Redis yang mau, kalau tidak saya akan menulis sendiri (saya harap saya tidak harus melakukan ini). Tim LOLWUT harus mengingatkan kita bahwa pekerjaan kita - pemrograman - tidak hanya ada untuk kebaikan. Awalnya, ini terutama tentang mengeksplorasi peluang . Saya berharap bahwa LOLWUT juga akan mengingatkan komunitas Redis bahwa komputer dibuat untuk orang-orang, dan bahwa Anda tidak dapat berbicara steril, hanya memikirkan implikasi teknologi. Ada orang yang hidup yang menggunakan sistem yang membangun sistem dan sebagainya.

Source: https://habr.com/ru/post/id423197/


All Articles