UNIX पाइप कार्ड गेम
(punkx.org)- यह एक गेम है जिसमें बच्चे
cat,grep,tail,head,wc,sort,uniqजैसे बुनियादी UNIX commands को cards के रूप में जोड़ते हुए pipe combinations सीखते हैं - इसमें माना गया है कि माता-पिता basic commands जानते हैं और उन्हें असल में चलाकर दिखाते हैं; अगर UNIX environment नहीं है, तो browser में jslinux इस्तेमाल किया जा सकता है
- खिलाड़ी task card के लक्ष्य के मुताबिक command chain बनाते हैं, और उदाहरण के तौर पर
cat 03.txt | sort | uniq -c | sort -n | tail -1जैसी pipeline इस्तेमाल होती है - हर round में सबसे छोटा खिलाड़ी सबसे छोटी chain या सबसे लंबी chain वाली जीत का तरीका चुनता है, और task पहले पूरा करने वाला खिलाड़ी points पाता है
- Card PDF और code publicly उपलब्ध हैं, जिन्हें print करके इस्तेमाल किया जा सकता है, और ज्यादा कठिन Process Substitution expansion pack भी उपलब्ध है
कार्ड गेम का उद्देश्य और जरूरी सामग्री
- UNIX Pipe Card Game बच्चों को UNIX commands को pipes से जोड़ना सिखाने वाला एक card game है
- Basic game में जिन commands को शामिल किया गया है वे हैं
cat,grep,tail,head,wc,sort,uniq - माता-पिता को commands असल कंप्यूटर पर चलाकर दिखानी चाहिए, और अगर UNIX system नहीं है तो browser में jslinux इस्तेमाल किया जा सकता है
- खुद print करने के लिए material और code उपलब्ध हैं
- unix-pipe-cards.pdf: card PDF
- unix-pipe-box.pdf: box PDF
- unix-pipe-game: code
- ज्यादा कठिन version, UNIX Pipe Game - Process Substitution expansion pack, process substitution और
paste,tr,cut,bcको कवर करता है
Round कैसे चलता है और command chain का उदाहरण
- उदाहरण round का लक्ष्य file में सबसे आम line को output करना है
catसे file पढ़ते हैंsortसे lines sort करते हैंuniq -cसे duplicate lines की गिनती करते हैंsort -nसे numeric order में sorting लागू करते हैंtail -1से आखिरी line output करते हैं
- इस लक्ष्य को हल करने वाली example command chain यह है
cat 03.txt | sort | uniq -c | sort -n | tail -1
- Basic flow इस क्रम में है
- सबसे छोटा खिलाड़ी round format चुनता है
- task पूरा करने वाली सबसे छोटी pipe chain बनाने वाला जीतता है
- task पूरा करने वाली सबसे बड़ी pipe chain बनाने वाला जीतता है
- सबसे छोटा खिलाड़ी task card में से एक task चुनता है, और एक ही task दो बार नहीं चुना जा सकता
- Cards shuffle करके table पर उल्टा रखे जाते हैं
- हर खिलाड़ी clockwise order में deck के ऊपर वाला card उठाता है और task पूरा करने की कोशिश करता है
- task सबसे पहले पूरा करने वाला खिलाड़ी points पाता है
- जब और tasks नहीं बचते, game खत्म हो जाता है
- सबसे छोटा खिलाड़ी round format चुनता है
Task cards जिन समस्याओं की मांग करते हैं
- Task examples ऐसे goals से बने हैं जिन्हें UNIX command combinations से हल किया जा सकता है, जैसे line selection, string search, counting और output control
- दूसरी line output करना
- अंत से दूसरी line output करना
- 7वीं line output करना
- सबसे आम line output करना
- सबसे दुर्लभ line output करना
"rises"वाली lines की संख्या गिननाWवाली पहली line output करना"in"वाली lines की संख्या गिनना- random दो lines दिखाना
- आखिरी दो lines के words की संख्या गिनना
- 7वीं और 8वीं lines output करना
!वाली lines की संख्या गिनना!नहीं वाली lines की संख्या गिनना- ऐसी command chain बनाना जो कुछ भी output न करे
2 टिप्पणियां
Hacker News रायें
अपनी बेटी को सिखाने के लिए मैंने ये कार्ड decks (https://punkx.org/) बनाए थे, और अब तक ये काफी असरदार रहे हैं
खास तौर पर Unix pipes, 4917 machine code (https://punkx.org/4917/), pointer deck (https://punkx.org/c-pointer-game/) अच्छे रहे, और Python deck में बस करीब 10 कार्ड ही इस्तेमाल किए
RISC-V assembly में buffer overflow पर बना board game https://punkx.org/overflow/ भी पसंद आ सकता है, और बच्चे के स्तर के हिसाब से goto वाला snakes and ladders game https://punkx.org/overflow/build/snakes-and-ladders.pdf भी संभव है
अगर आपके बच्चे हैं तो https://punkx.org/panic/ भी print करके देखने की सलाह दूंगा। इसमें ऐसे pranks हैं जो poker card के एक पत्ते में फिट हो जाते हैं, जैसे हर 30 सेकंड में random तरीके से backspace या space दबाना, या Minecraft खुला हो तो random तरीके से W दबाना
मैं कई decks teachers और schools को donate कर रहा हूं, इसलिए रुचि हो तो email भेज सकते हैं
P.S.: मैं अगले 1 हफ्ते और London में हूं, इसलिए अभी order करने पर shipping में देर होगी, लेकिन बदले में package में 1–2 decks और डालकर भेज दूंगा
और हां, Unix pipes expansion deck पूरा process substitution पर है; मुझे नहीं लगता कि वह बच्चों के लिए उपयोगी है, लेकिन puzzles ठीक लगते हैं
एक बात ध्यान में आई: game में “दूसरी line print करो”, “सातवीं line print करो” जैसे tasks हैं, लेकिन दोनों lines खाली हैं। इसलिए सख्ती से देखें तो match न करने वाला
grepभी सही जवाब हो सकता हैजिज्ञासा है कि printing आप कैसे handle करते हैं। क्या खुद बनाते हैं, print-on-demand है, या bulk order करके खुद ship करते हैं? छोटे scale पर physical products की बिक्री कैसे चलती है, यह हमेशा दिलचस्प लगता है
मेरी बेटियां अभी बहुत छोटी हैं, इसलिए इस्तेमाल करने के लिए जल्दी है, लेकिन मुझे decks बहुत अच्छे लगे और करीब 8 साल बाद इन्हें निकालकर इस्तेमाल करने का इंतजार है
सोच रहा हूं कि आजकल बच्चे सच में ऐसी चीजें समझ सकते हैं या नहीं
मेरे बच्चे नहीं हैं और बच्चों के आसपास रहने का मौका भी नहीं मिलता, इसलिए इसे ईमानदार सवाल की तरह लें तो अच्छा होगा
मुश्किल यह है कि बेटी का ध्यान पाने के लिए Snapchat और Google/Meta से मुकाबला करना पड़ता है। स्कूल भी काफी थका देता है, और Snapchat के streaks सच में परेशान करने वाले हैं। जितने ज्यादा दोस्त, उतने ज्यादा streaks बनाए रखने पड़ते हैं; दिन में करीब 400 messages भेजने पड़ते हैं और इसका कोई अंत नहीं
मैं बेटी को सिखाता हूं कि 100,000 developers, psychologists, product leads वगैरह हर दिन काम पर आते हैं और सोचते हैं कि उसके ध्यान से अधिकतम value कैसे निकाली जाए। इसलिए उसे लगातार aware रहना चाहिए कि “algorithm” उससे क्या करवाने की कोशिश कर रहा है
उसने Unix pipes काफी जल्दी समझ लिए, लेकिन अक्सर इस्तेमाल नहीं करती। फिर भी यह concept समझ गई कि एक program दूसरे program का output पढ़ता है, और command line समझना भी इतना मुश्किल नहीं था
हालांकि मैंने कई उपाय अपनाए। जैसे बेटी के Windows PC में shell को
explorerकी जगहcmd.exeमें बदल दिया, ताकि boot होते ही command prompt खुले, और उसे explore करके खुद ठीक करने दिया। filesystem मेंdir,cdआदि से files खोजने वाला treasure hunt भी बनाया, और https://overthewire.org/wargames/bandit/ के Bandit game में हर level clear करने पर Robux से reward दियामैं उसे सिखाना चाहता हूं कि computer कैसे काम करता है, और computer से अपनी चाही हुई चीज कैसे करवाई जाती है। register क्या है, instruction क्या है, program और process क्या हैं—कहें तो बिल्कुल basics
इस प्रक्रिया में problems को divide करना, सोचना, और सबसे बढ़कर सीखना भी साथ में सिखाता हूं। मैं चीजों का core सिखाने की कोशिश करता हूं, ताकि keyboard दबाने पर screen पर अक्षर दिखने की प्रक्रिया या ChatGPT के next word predict करने के तरीके में कोई रहस्य न रहे। अभी मैं 3 neurons वाले recurrent neural network का board game बना रहा हूं, जो उसे गिनती करना सिखाने वाला game है: https://punkx.org/move-37/rnn.pdf
आखिर में, बच्चे को क्या सिखाते हैं, यह इतना महत्वपूर्ण है या नहीं, मुझे ठीक से नहीं पता
class में साथियों को file, folder जैसी concepts से समझाना पड़ा
ईमानदारी से कहूं तो मुझे यह इतना बुरा नहीं लगता। computers भी शायद cars जैसी राह पर जाएंगे। ज्यादातर लोग चीज चलाने के लिए जरूरी बेहद basic बातें ही जानेंगे, और deeper knowledge hobbyists और experts के पास रह जाएगी
इसलिए computer के अंदरूनी हिस्से भले और complex होते जाएं, आम use के तरीके शायद लगातार कम होते जाएंगे
game खेलने के लिए https://exaequos.com पर pipe processing जरूर ठीक करनी होगी
awk,perlआदि इस्तेमाल करते हुए बड़े हुए लोगों के साथ अगर “न्यूनतम pipe संख्या” वाला गेम खेलें, तो difficulty तुरंत बढ़ जाती हैया फिर गेम के मकसद के मुताबिक हर tool को उसके मूल उद्देश्य के अनुसार सीखते हुए खेला जा सकता है
तेज़ one-off processing के लिए
awk/sedका खूब इस्तेमाल होता है, और आम तौर पर similar thinking model से काम किया जाता है। input stream बनाना,sedसे data को record form में बदलना,awkसे records process करना, फिरsort/uniqजैसे तरीकों से output को polish करना—ऐसा कुछकई मामलों में
sedऔरawkएक-दूसरे की जगह ले सकते हैं, लेकिन ऐसा करने पर दिमाग में flow visualize करने में ज़्यादा समय लगता है और reuse भी मुश्किल हो जाता हैrules में लिखा है कि जो player task पहले पूरा करता है, वह round जीतता है, लेकिन सबसे लंबी pipe chain वाला format कैसे काम करता है, यह जानने की उत्सुकता है
uuocaward देने वाले लोग जल्द ही आते दिख रहे हैंशुरुआत में
catरखने से pipeline के आगे कुछ जोड़ना आसान हो जाता हैयह बात वाकई अच्छी है कि इसे खुद print किया जा सकता है
अभी सोच रहा हूं कि office printer से तुरंत print कर दूं या नहीं
इस game की अच्छी बात यह है कि UUoC जानने वाला व्यक्ति जीतता है
cat file.txt | tr a-z A-Z | sortloser है, औरtr < file.txt a-z A-Z | sortwinner हैCanada shipping fee $19 होना थोड़ा ज़्यादा लगता है
सोच रहा हूं Greater Vancouver में कोई साथ में bundled order करना चाहेगा क्या
फिर भी हर deck के साथ PDF है, इसलिए आप अपने local print shop में खुद print करा सकते हैं। box print न करें तो यह सस्ता पड़ेगा
बस A4 paper पर print करके scissors से काट लें, तब भी कोई बड़ी समस्या नहीं है। बल्कि किसी को pen और paper से समझाते समय यह मददगार भी हो सकता है
इस मामले में box https://punkx.org/unix-pipe-game/unix-pipe-box.pdf है, और cards https://punkx.org/unix-pipe-game/unix-pipe-cards.pdf हैं
8,000₩ है। अगर किसी के पास इसकी कॉपी हो तो कृपया अपना रिव्यू बताइए।