2 पॉइंट द्वारा GN⁺ 6 시간 전 | 2 टिप्पणियां | WhatsApp पर शेयर करें
  • ब्लॉग को खुलकर customize करने की कोशिश में HTML लिखना, JSON में लेखन, Markdown conversion, और compile·deploy tools तक बन गए, और अंततः खुद का static site generator बना डालने का अनुभव हुआ
  • yak shaving उस स्थिति को कहते हैं जिसमें एक लक्ष्य के लिए शुरू हुई लगातार जुड़ी हुई tasks मूल उद्देश्य से दूर चली जाती हैं; यह अभिव्यक्ति MIT AI Lab के Carlin Vieri ने गढ़ी थी
  • जब engineers और managers को ready-made solutions पसंद नहीं आते या वे उन्हें requirements के अनुकूल नहीं मानते, तब वे आसानी से scratch से बनाने के जाल में फँस सकते हैं
  • सीमित budget और time में, खुद implement करने के आनंद से अधिक महत्वपूर्ण यह हो सकता है कि मुख्य requirements पूरी करने वाला वैकल्पिक विकल्प चुना जाए और काम का दायरा कम किया जाए
  • Donald Knuth के TeX की तरह कुछ मामलों में यह बड़े परिणाम दे सकता है, लेकिन अधिकतर yak shaving असफल हो सकती है; फिर भी अगर कुछ सीखा गया हो तो उसमें मूल्य है

खुद बनाया गया ब्लॉग static site generator तक पहुँचा

  • Jekyll, Hugo, Gatsby जैसे static site generators या frameworks का उपयोग नहीं किया गया
  • शुरुआत में कुछ tools आज़माए गए, लेकिन customize करने की स्वतंत्रता पर्याप्त नहीं लगी, इसलिए इसे खुद बनाने का फैसला किया गया
  • HTML में लिखना असुविधाजनक था; इसे हल करने के लिए JSON file-आधारित writing system बनाया गया, लेकिन लंबे लेखों के लिए वह भी फिर अटपटा लगा
  • इसके बाद Markdown files को HTML में बदलने वाली service और result files को compile·deploy करने वाले tools तक बना लिए गए, और आखिरकार static site generator को scratch से बना लिया गया

yak shaving का अर्थ और उत्पत्ति

  • yak shaving का मतलब है कि एक लक्ष्य के लिए जुड़ी हुई tasks का पीछा करते-करते मूल उद्देश्य खो जाए और इंसान पूरी तरह अलग काम करने लगे
  • LangDev IRC का उदाहरण यह है: कुल्हाड़ी से पेड़ काटने निकले, तो कुल्हाड़ी तेज करने के लिए पत्थर चाहिए; अच्छा पत्थर जिस गाँव में है वहाँ जाने के लिए yak चाहिए; और yak के बाल लंबे हैं, इसलिए अंत में उसके बाल काटने पड़ते हैं
  • Seth Godin का उदाहरण car wash से शुरू होकर hose, Home Depot, E-ZPass, पड़ोसी के E-ZPass, उधार लिए तकिए की समस्या से गुजरते हुए zoo में yak के बाल काटने तक पहुँचता है
  • यह अभिव्यक्ति MIT AI Lab में Carlin Vieri ने बनाई थी
    • Vieri ने मंगलवार देर रात hockey खेली, फिर आधी रात को dinner करते हुए The Ren & Stimpy Show का Yak Shaving Day episode देखा
    • कुछ दिन बाद administrative approvals, DHL account setup, और post office ढूँढने जैसे paperwork करते हुए उन्होंने एक सहकर्मी से कहा कि वे yak shaving कर रहे हैं
    • इसके बाद कुछ महीनों तक उन्होंने लैब के लोगों के बीच इस अभिव्यक्ति का लगातार उपयोग किया और यह फैल गई

scratch से बनाने का जोखिम

  • engineers या engineering teams चलाने वाले managers द्वारा की जाने वाली आम गलतियों में से एक है scratch से बनाना
  • engineers को ready-made solution पसंद न आए, या वे अपनी skills साबित करना चाहते हों, ऐसा हो सकता है
  • customers या managers existing solutions क्या करते हैं, इसे गलत समझ सकते हैं, या उन्हें लग सकता है कि वे requirements को ठीक-ठीक पूरा नहीं करते
  • अधिकांश projects, चाहे product development हो या toy project, budget और time से सीमित होते हैं
  • एक बार खुद बनाना शुरू किया तो यह आसानी से yak shaving में बदल सकता है; और जब इसमें उतर जाते हैं तो पता नहीं होता कि यह कहाँ जाकर रुकेगा, यहाँ तक कि मूल लक्ष्य भी छोड़ना पड़ सकता है
  • ऐसी स्थिति में उन alternatives की तलाश करना अधिक उचित है जो requirements के मूल हिस्से को पूरा करें, और workload को जितना हो सके कम करें

फिर भी yak shaving मज़ेदार क्यों है

  • yak shaving को बीच में छोड़ना मुश्किल है, क्योंकि कुछ खुद बनाने का आनंद बहुत आकर्षक होता है
  • जो पहले नहीं था उसे बनाना, problems ढूँढकर हल करना, और चीज़ें कैसे काम करती हैं यह समझने के लिए ज्ञान की शृंखला में गहराई तक उतरना engineers को खींचता है
  • engineer न होने पर भी अपनी मनचाही चीज़ खुद बनाने का विचार अपने-आप में आकर्षक है
  • Frederick P. Brooks Jr. ने 『The Mythical Man-Month』 में programming के मज़ेदार होने के कारण कुछ इस तरह बताए
    • कुछ बनाने का शुद्ध आनंद
    • ऐसी चीज़ बनाने की खुशी जो दूसरों के काम आए
    • ऐसे जटिल puzzle-जैसे तंत्र का निर्माण, जिसमें हिस्से आपस में फिट होकर चलते हैं, और उसके rules को सूक्ष्म चक्रों में काम करते देखना
    • लगातार सीखते रहने का आनंद
    • ऐसे अभिव्यक्ति-माध्यम के साथ काम करने का आनंद जो लचीला हो और संभालने में आसान हो

TeX: एक सफल yak shaving

  • TeX भी yak shaving से जन्मा एक उदाहरण है
  • TeX Stanford के प्रोफेसर Donald Knuth द्वारा बनाया गया typesetting system है, और यह typesetting language, उसे process करने वाले compiler, तथा पूरे runtime system को समेटे हुए है
  • formulas को आसानी से दर्ज किया जा सकता है, इसलिए social sciences, science, और engineering में इसका व्यापक उपयोग होता है; अधिकांश users TeX को आसान बनाने वाले macro set LaTeX का उपयोग करते हैं
  • Donald Knuth 1976 में 『The Art of Computer Programming』 के volume 2 के second edition की तैयारी कर रहे थे, और वे first edition में इस्तेमाल हुआ hot-metal typesetting चाहते थे, लेकिन वह अब उपलब्ध नहीं था
  • उपलब्ध alternatives से संतुष्ट न होकर Knuth ने Patrick Winston की digital typesetting पर किताब देखी और खुद digital typesetting system बनाने का निर्णय लिया
  • Knuth ने TeX का पहला version SAIL language में बनाया, और बाद में अपनी बनाई WEB language में विकसित करके पूरा किया
    • WEB source में documentation और code को साथ मिलाकर रखा जाता है
    • Weave और Tangle programs की मदद से WEB file से क्रमशः TeX file और Pascal file निकाली जा सकती हैं
    • Knuth ने इस programming paradigm को literate programming कहा
  • Knuth ने Michael Plass के साथ मिलकर paragraph में line breaks कहाँ हों यह तय करने वाला Knuth-Plass line breaking algorithm भी बनाया
  • उन्होंने TeX के लिए Computer Modern font डिज़ाइन किया, vector graphics को define करने वाली language METAFONT बनाई, और किसी विशेष device पर निर्भर हुए बिना TeX output निकालने के लिए DVI format भी विकसित किया
  • यानी किताब लिखने के लिए उन्होंने programming language, paradigm, algorithm, tools, fonts सब बना डाले; TeX बनाने में लगभग 10 साल लगे और किताब भी उतनी ही देर से आई, लेकिन यह व्यर्थ प्रयास नहीं था

विफलता और सीख के बीच

  • TeX एक अत्यंत सफल उदाहरण है, लेकिन अधिकांश yak shaving विफल होती है
  • सही समय पर रुकना चाहिए, लेकिन पहले से लगाया गया समय बेकार लगने के कारण, या yak shaving खुद ही मज़ेदार लगने के कारण, इसे छोड़ना कठिन हो जाता है
  • कई बार अंत तक जाना ही पड़ता है, फिर भी बीच में यह विचार आ सकता है कि “मैं अभी कर क्या रहा हूँ?”; रुचि कम हो सकती है, या project को दिए गए resources खत्म होने से काम रुक सकता है
  • सीखने की इच्छा रखने वाले लोगों के लिए yak shaving बहुत प्रभावी हो सकती है
  • computer science की कई classes, भले ही professor का उद्देश्य वह न हो, किसी न किसी स्तर का yak shaving माँगती हैं; कई बार assignment के मुख्य भाग से अधिक, उसके आसपास के ज्ञान में उतरने से ज़्यादा सीख मिलती है
  • yak shaving के तरीके से computing system बनाना हो तो Boolean logic, logic circuits, computer architecture, programming languages, और operating systems तक पढ़ना पड़ता है
  • Noam Nisan और Shimon Schocken की The Elements of Computing Systems ठीक इसी प्रक्रिया का अनुसरण करती है
  • भले ही अंत तक पहुँचना न हो, अगर yak के बाल काटते-काटते कुछ सीख लिया गया, तो सिर्फ वही भी मूल्यवान है

2 टिप्पणियां

 
unsure4000 4 시간 전

ऐसा लगता है कि Korean version की post ही मूल है

https://parksb.github.io/article/32.html

 
GN⁺ 6 시간 전
Lobste.rs की राय
  • yak shaving मज़ेदार है, लेकिन recursion depth या मेहनत की कोई सीमा पहले से तय होनी चाहिए, और वहाँ पहुँचने पर रुक जाना चाहिए

  • ऐसा एक्सप्रेशन गढ़ लेना जिसे लगभग कोई इस्तेमाल नहीं करता, और फिर उसे ऐसे लिखना जैसे वह सबको पता हो, सच में खटकता है। Reddit यूज़र ख़ास तौर पर यह बहुत करते हैं, और तरह-तरह के नियम लगातार उद्धृत करते रहते हैं
    इस शब्द का MIT स्रोत मिल गया: https://projects.csail.mit.edu/gsb/old-archive/…

    • कोई न कोई हमेशा पहली बार यह सुन रहा होता है, लेकिन yak shaving हमारे क्षेत्र में काफ़ी आम एक्सप्रेशन है। खोजने पर इसके इस्तेमाल के बहुत सारे उदाहरण मिलते हैं
    • लेख शुरू होते ही उस शब्द को परिभाषित करता है, और मेरे हिसाब से काफ़ी अच्छी तरह समझाता भी है
    • जो मुहावरा पहले नहीं पता था, उसे सीखना क्या उलटे मज़ेदार बात नहीं है? यह कोई ऐसी आमने-सामने की बातचीत भी नहीं है जहाँ रियल टाइम में साथ न दे पाने पर नुकसान हो
      अगर अपनी सीमित समझ के बाहर की चीज़ों से सामना ही न हो, तो अपनी समझ का दायरा कैसे बढ़ेगा
    • यक़ीन करना मुश्किल है कि अभी तक किसी ने यह नहीं कहा, लेकिन Yak shaving बिल्कुल cromulent एक्सप्रेशन है