Permainan Kartu Unix Pipe
(punkx.org)- Ini adalah permainan tempat anak-anak mempelajari kombinasi pipe dengan merangkai kartu berisi perintah dasar UNIX seperti
cat,grep,tail,head,wc,sort, danuniq - Permainan ini mengasumsikan orang tua memahami perintah dasar dan menunjukkan eksekusi nyatanya; jika tidak ada lingkungan UNIX, jslinux dapat digunakan di browser
- Pemain membuat rantai perintah sesuai target pada kartu tugas, dengan contoh penggunaan pipeline seperti
cat 03.txt | sort | uniq -c | sort -n | tail -1 - Dalam satu ronde, pemain termuda memilih metode kemenangan rantai terpendek atau rantai terpanjang, dan pemain yang pertama menyelesaikan tugas mendapatkan poin
- PDF kartu dan kode tersedia untuk digunakan dengan mencetaknya sendiri, serta tersedia juga expansion pack Process Substitution yang lebih sulit
Tujuan permainan kartu dan perlengkapannya
- UNIX Pipe Card Game adalah permainan kartu untuk mengajarkan anak-anak cara menggabungkan perintah UNIX dengan pipe
- Perintah yang dibahas dalam permainan dasar adalah
cat,grep,tail,head,wc,sort, danuniq - Orang tua perlu menunjukkan cara menjalankan perintah di komputer sungguhan; jika tidak ada sistem UNIX, dapat menggunakan jslinux di browser
- Materi untuk dicetak sendiri dan kodenya tersedia secara terbuka
- unix-pipe-cards.pdf: PDF kartu
- unix-pipe-box.pdf: PDF kotak
- unix-pipe-game: kode
- Expansion pack versi yang lebih sulit, UNIX Pipe Game - Process Substitution, membahas process substitution serta
paste,tr,cut, danbc
Jalannya ronde dan contoh rantai perintah
- Target pada contoh ronde adalah menampilkan baris yang paling sering muncul dalam file
- Membaca file dengan
cat - Mengurutkan baris dengan
sort - Menghitung jumlah baris duplikat dengan
uniq -c - Menerapkan pengurutan berdasarkan angka dengan
sort -n - Menampilkan baris terakhir dengan
tail -1
- Membaca file dengan
- Contoh rantai perintah untuk menyelesaikan target ini adalah sebagai berikut
cat 03.txt | sort | uniq -c | sort -n | tail -1
- Alur dasar permainan adalah sebagai berikut
- Pemain termuda memilih format ronde
- Orang yang membuat rantai pipe paling kecil yang menyelesaikan tugas menang
- Orang yang membuat rantai pipe paling besar yang menyelesaikan tugas menang
- Pemain termuda memilih satu tugas dari kartu tugas, dan tugas yang sama tidak boleh dipilih dua kali
- Kartu dikocok dan diletakkan tertutup di atas meja
- Setiap pemain mengambil kartu teratas dari dek searah jarum jam dan mencoba menyelesaikan tugas
- Pemain yang pertama menyelesaikan tugas mendapatkan poin
- Jika tidak ada tugas tersisa, permainan berakhir
- Pemain termuda memilih format ronde
Masalah yang diminta oleh kartu tugas
- Contoh tugas terdiri dari target yang dapat diselesaikan dengan kombinasi perintah UNIX, seperti memilih baris, mencari string, menghitung jumlah, dan mengontrol output
- Menampilkan baris kedua
- Menampilkan baris kedua dari akhir
- Menampilkan baris ke-7
- Menampilkan baris yang paling sering muncul
- Menampilkan baris yang paling jarang muncul
- Menghitung jumlah baris yang berisi
"rises" - Menampilkan baris pertama yang berisi
W - Menghitung jumlah baris yang berisi
"in" - Menampilkan dua baris acak
- Menghitung jumlah kata pada dua baris terakhir
- Menampilkan baris ke-7 dan ke-8
- Menghitung jumlah baris yang berisi
! - Menghitung jumlah baris yang tidak berisi
! - Membuat rantai perintah yang tidak menampilkan apa pun
2 komentar
Opini Hacker News
Saya membuat deck kartu ini (https://punkx.org/) untuk mengajari putri saya, dan sejauh ini cukup efektif
Yang terutama bagus adalah Unix pipe, bahasa mesin 4917 (https://punkx.org/4917/), dan deck pointer (https://punkx.org/c-pointer-game/); untuk deck Python, kami hanya memakai sekitar 10 kartu
Kamu juga mungkin suka board game tentang buffer overflow dengan assembly RISC-V https://punkx.org/overflow/, dan tergantung level anaknya, ada juga permainan ular tangga dengan goto https://punkx.org/overflow/build/snakes-and-ladders.pdf
Kalau punya anak, saya juga menyarankan mencetak https://punkx.org/panic/. Isinya keusilan yang muat di satu kartu poker, misalnya menekan backspace atau spasi secara acak setiap 30 detik, atau kalau Minecraft sedang terbuka, menekan W secara acak
Saya menyumbangkan banyak deck ke guru dan sekolah, jadi kalau tertarik, silakan kirim email
P.S.: Saya akan berada di London selama 1 minggu lagi, jadi kalau memesan sekarang pengirimannya akan terlambat, tapi sebagai gantinya saya akan menambahkan 1–2 deck ekstra ke paketnya
Tambahan: deck ekspansi Unix pipe sepenuhnya tentang substitusi proses; menurut saya tidak terlalu berguna untuk anak-anak, tapi puzzle-nya lumayan
Satu hal yang terlihat: di game ada tugas seperti “cetak baris kedua” dan “cetak baris ketujuh”, tetapi kedua baris itu kosong. Jadi secara ketat,
grepyang tidak mencocokkan apa pun juga bisa menjadi jawaban benarSaya penasaran, bagaimana urusan pencetakan ditangani? Apakah dibuat sendiri, print-on-demand, atau memesan dalam jumlah besar lalu mengirimkannya sendiri? Saya selalu tertarik bagaimana penjualan produk fisik skala kecil dijalankan
Putri-putri saya masih terlalu kecil untuk memakainya, tapi menurut saya deck-deck itu bagus, dan saya menantikan saat mengeluarkannya sekitar 8 tahun lagi
Saya penasaran apakah anak-anak zaman sekarang benar-benar bisa memahami hal seperti ini
Saya tidak punya anak dan juga tidak pernah berada di sekitar anak-anak, jadi saya harap ini diterima sebagai pertanyaan yang tulus
Tantangannya adalah saya harus bersaing dengan Snapchat dan Google/Meta untuk mendapatkan perhatian putri saya. Sekolah juga cukup melelahkan, dan streak di Snapchat benar-benar menyebalkan. Semakin banyak teman, semakin banyak streak yang harus dipertahankan, sampai harus mengirim sekitar 400 pesan sehari dan tidak ada habisnya
Saya mengajari putri saya bahwa 100.000 developer, psikolog, product lead, dan lain-lain berangkat kerja setiap hari untuk memikirkan cara mengekstraksi nilai maksimal dari perhatiannya. Jadi saya memberi tahu dia bahwa ia harus terus sadar tentang apa yang “algoritma” buat dia lakukan
Ia cukup cepat memahami Unix pipe, tetapi tidak sering menggunakannya. Tetap saja, ia menangkap konsep bahwa satu program membaca output program lain, dan memahami command line juga tidak terlalu sulit
Namun saya memakai beberapa trik. Misalnya, di PC Windows putri saya, saya mengganti shell dari
explorermenjadicmd.exesehingga saat boot langsung muncul command prompt, lalu membiarkan dia menjelajah dan memperbaikinya sendiri. Saya juga membuat perburuan harta karun untuk mencari file di filesystem dengandir,cd, dan sebagainya, dan untuk game Bandit dari https://overthewire.org/wargames/bandit/, saya memberi hadiah Robux setiap kali ia menyelesaikan levelSaya ingin mengajarinya bagaimana komputer bekerja, dan cara membuat komputer melakukan hal yang kita inginkan. Apa itu register, apa itu instruksi, apa itu program dan proses—bisa dibilang dasar dari dasar
Dalam prosesnya, saya juga mengajari cara memecah masalah, cara berpikir, dan yang terpenting cara belajar. Saya berusaha mengajarkan inti dari berbagai hal, agar tidak ada misteri antara proses menekan keyboard lalu huruf muncul di layar, atau cara ChatGPT memprediksi kata berikutnya. Sekarang saya sedang membuat board game jaringan saraf rekuren dengan 3 neuron, sebuah game untuk mengajarinya berhitung: https://punkx.org/move-37/rnn.pdf
Pada akhirnya, saya tidak begitu yakin bahwa apa yang diajarkan kepada anak itu sepenting itu
Di kelas, rekan-rekan harus menjelaskan mulai dari konsep seperti file dan folder
Sejujurnya saya tidak menganggap itu terlalu buruk. Komputer tampaknya akan menempuh jalan yang mirip dengan mobil. Kebanyakan orang hanya akan tahu hal-hal yang sangat mendasar yang diperlukan untuk mengoperasikan barangnya, sementara pengetahuan yang lebih dalam akan tersisa bagi para penggemar dan profesional
Jadi meskipun bagian dalam komputer menjadi semakin kompleks, cara penggunaan umumnya tampaknya akan makin menyempit
Agar bisa memainkan gamenya, pemrosesan pipe di https://exaequos.com jelas harus diperbaiki
Jika bermain game jumlah pipe minimum dengan orang yang tumbuh besar memakai
awk,perl, dan sejenisnya, tingkat kesulitannya langsung naikAtau, sesuai maksud gamenya, bisa dimainkan sambil mempelajari setiap tool sesuai tujuan aslinya
Untuk pemrosesan sekali pakai yang cepat,
awk/sedbanyak dipakai, dan umumnya diproses dengan model berpikir yang mirip. Misalnya membuat stream input, memakaiseduntuk membentuk data menjadi record, memproses record denganawk, lalu merapikan output dengan cara sepertisort/uniqDalam banyak kasus
seddanawkbisa saling menggantikan, tetapi jika begitu akan lebih lama dibayangkan di kepala dan lebih sulit dipakai ulangDi aturan tertulis bahwa pemain yang menyelesaikan tugas lebih dulu memenangkan ronde, tetapi saya penasaran bagaimana format rantai pipe terpanjang bekerja
Sepertinya orang-orang yang memberi penghargaan
uuocakan segera datangMenaruh
catdi depan membuat penambahan sesuatu di bagian awal pipeline jadi lebih sederhanaSaya sangat suka karena ini bisa dicetak sendiri
Saya sedang mempertimbangkan apakah akan mencetaknya di printer kantor sekarang juga
Hal bagus dari game ini adalah orang yang tahu UUoC akan menang
cat file.txt | tr a-z A-Z | sortadalah pecundang, dantr < file.txt a-z A-Z | sortadalah pemenangOngkir ke Canada sebesar $19 rasanya agak berlebihan
Saya penasaran apakah ada orang di Greater Vancouver yang mau pesan bareng
Meski begitu, setiap deck punya PDF, jadi Anda bisa mencetaknya sendiri di percetakan lokal. Kalau tidak mencetak kotaknya, biayanya akan lebih murah
Mencetaknya di kertas A4 biasa lalu memotongnya dengan gunting juga tidak terlalu bermasalah. Malah kadang membantu saat menjelaskannya kepada seseorang dengan pena dan kertas
Dalam hal ini, kotaknya ada di https://punkx.org/unix-pipe-game/unix-pipe-box.pdf, dan kartunya ada di https://punkx.org/unix-pipe-game/unix-pipe-cards.pdf
Harganya 8.000₩ ya. Kalau ada yang punya salinannya, tolong bagikan ulasannya.