[{"content":"परिचय: क्वांटम कंप्यूटर द्वारा लाया गया \u0026ldquo;गणना का प्रतिमान बदलाव\u0026rdquo; हाल के वर्षों में, ऐसा कोई दिन नहीं जाता जब हम समाचारों या तकनीकी लेखों में \u0026ldquo;क्वांटम कंप्यूटर\u0026rdquo; शब्द न देखें। साइंस फिक्शन फिल्मों जैसी कहानियाँ जैसे \u0026ldquo;यह उन गणनाओं को कुछ मिनटों में पूरा कर लेगा जिनमें वर्तमान सुपरकंप्यूटरों को हजारों साल लगेंगे\u0026rdquo; या \u0026ldquo;वर्तमान की सभी क्रिप्टोग्राफ़िक तकनीकें टूट सकती हैं\u0026rdquo;, सच के रूप में बताई जा रही हैं। Google, IBM और Microsoft जैसी विशाल IT कंपनियों से लेकर दुनिया भर के विश्वविद्यालयों और स्टार्टअप्स तक, हर कोई इस सपनों की तकनीक को व्यावहारिक बनाने के लिए प्रतिस्पर्धा कर रहा है।\nहालाँकि, जब पूछा जाता है, \u0026ldquo;आख़िर क्वांटम कंप्यूटर क्या है?\u0026rdquo;, तो बहुत कम लोग सटीक उत्तर दे पाते हैं। बहुत से लोगों के मन में \u0026ldquo;एक जादुई डिब्बा जो एक ही समय में सभी संयोजनों की गणना कर सकता है\u0026rdquo; जैसी एक अस्पष्ट छवि होती है, लेकिन तकनीकी रूप से यह सही नहीं है।\nइस लेख में, हम बुनियादी बातों से पूरी तरह से, पेशेवर लेकिन समझने में आसान तरीके से समझाएंगे कि क्वांटम कंप्यूटर मौलिक रूप से शास्त्रीय कंप्यूटरों (हम आमतौर पर उपयोग किए जाने वाले PC या स्मार्टफोन) से कैसे भिन्न हैं, और वे गणना के लिए \u0026ldquo;सुपरपोजिशन (Superposition)\u0026rdquo;, \u0026ldquo;क्वांटम उलझाव (Entanglement)\u0026rdquo; और \u0026ldquo;क्वांटम गेट्स (Quantum gates)\u0026rdquo; जैसी रहस्यमय क्वांटम यांत्रिक घटनाओं का उपयोग कैसे करते हैं। जब तक आप इस लेख को पढ़ना समाप्त करेंगे, तब तक आपको क्वांटम कंप्यूटर की वास्तविक शक्ति और इसकी वर्तमान चुनौतियों को स्पष्ट रूप से समझ लेना चाहिए।\nअध्याय 1: शास्त्रीय कंप्यूटर और क्वांटम कंप्यूटर के बीच निर्णायक अंतर क्वांटम कंप्यूटर कैसे काम करते हैं, यह समझने के लिए, हमें पहले यह समीक्षा करनी होगी कि हम वर्तमान में जिन \u0026ldquo;शास्त्रीय कंप्यूटरों\u0026rdquo; का उपयोग करते हैं वे कैसे काम करते हैं।\nतुलना तालिका: शास्त्रीय कंप्यूटर बनाम क्वांटम कंप्यूटर विशेषता शास्त्रीय कंप्यूटर क्वांटम कंप्यूटर मूल इकाई बिट (0 या 1) क्वांटम बिट (0 और 1 का सुपरपोजिशन) स्थिति का प्रतिनिधित्व नियतात्मक संभाव्य (जब तक देखा न जाए तब तक निर्धारित नहीं) गणना विधि अनुक्रमिक प्रसंस्करण (समानांतरीकरण के लिए भौतिक कोर की आवश्यकता है) क्वांटम समानांतरवाद (समानांतर में घातीय स्थितियों में हेरफेर) इसमें अच्छा है अंकगणितीय संचालन, दैनिक डेटा प्रसंस्करण अभाज्य गुणनखंडन, क्वांटम रसायन गणना त्रुटि सहिष्णुता बहुत मजबूत बहुत कमजोर (क्रायोजेनिक वातावरण और त्रुटि सुधार की आवश्यकता है) शास्त्रीय कंप्यूटरों की दुनिया: 0 या 1 का \u0026ldquo;बिट (Bit)\u0026rdquo; एक शास्त्रीय कंप्यूटर सभी सूचनाओं को \u0026ldquo;0\u0026rdquo; या \u0026ldquo;1\u0026rdquo; की स्थिति के रूप में दर्शाता है। इसे बिट (Bit) कहा जाता है। भौतिक रूप से, इसे अर्धचालक चिप पर ट्रांजिस्टर के उच्च (1) या निम्न (0) वोल्टेज द्वारा दर्शाया जाता है। आपके स्मार्टफोन में उच्च-रिज़ॉल्यूशन वाली तस्वीरें, आपके द्वारा अभी पढ़ा जा रहा यह पाठ, और आपके पसंदीदा YouTube वीडियो सभी अंततः \u0026ldquo;0 और 1 के अनुक्रमों\u0026rdquo; की एक विशाल संख्या में कम हो जाते हैं। गणना इस 0 और 1 के अनुक्रम में AND, OR और NOT जैसे बुनियादी तार्किक सर्किटों को मिलाकर संचालन लागू करने की प्रक्रिया के अलावा और कुछ नहीं है। यह एक बहुत ही निश्चित और नियतात्मक दुनिया है। यदि इनपुट समान है, तो आउटपुट हमेशा समान होगा।\nक्वांटम कंप्यूटरों की दुनिया: 0 और 1 का \u0026ldquo;क्वांटम बिट (Qubit)\u0026rdquo; दूसरी ओर, एक क्वांटम कंप्यूटर की न्यूनतम सूचना इकाई को क्वांटम बिट (Qubit: Quantum bit) कहा जाता है। क्वांटम बिट की सबसे बड़ी विशेषता यह है कि यह केवल एक शास्त्रीय बिट की तरह \u0026ldquo;0\u0026rdquo; या \u0026ldquo;1\u0026rdquo; स्थिति में नहीं होता है, बल्कि \u0026ldquo;ऐसी स्थिति में होता है जहां 0 और 1 एक विशिष्ट संभाव्यता के साथ मिश्रित होते हैं\u0026rdquo;। इसे \u0026ldquo;सुपरपोजिशन (Superposition)\u0026rdquo; कहा जाता है।\nउदाहरण के लिए, यदि एक शास्त्रीय बिट एक सिक्का है जिसे \u0026ldquo;चित\u0026rdquo; या \u0026ldquo;पट\u0026rdquo; के साथ रखा जाता है, तो एक क्वांटम बिट की तुलना अक्सर \u0026ldquo;हवा में घूमते हुए सिक्के\u0026rdquo; से की जाती है। एक घूमते हुए सिक्के को न तो चित कहा जा सकता है और न ही पट, और दोनों स्थितियां सुपरइम्पोज़ (अतिव्यापी) होती हैं। फिर, जिस क्षण सिक्का फर्श पर गिरता है और चलना बंद कर देता है (इसे क्वांटम यांत्रिकी में \u0026ldquo;अवलोकन\u0026rdquo; कहा जाता है), यह पहली बार निर्धारित होता है कि यह \u0026ldquo;चित\u0026rdquo; या \u0026ldquo;पट\u0026rdquo;।\nक्वांटम कंप्यूटर इस गुण को शामिल करते हैं, जो सूक्ष्म दुनिया (क्वांटम यांत्रिकी) के लिए अद्वितीय है, जहां \u0026ldquo;स्थिति तब तक निर्धारित नहीं होती है जब तक कि यह अवलोकन न किया जाए\u0026rdquo;, सीधे सूचना प्रसंस्करण प्रक्रिया में।\nअध्याय 2: 3 क्वांटम यांत्रिक गुण जो मौलिक रूप से गणना को बदलते हैं क्वांटम कंप्यूटरों की अद्भुत गणना शक्ति का स्रोत केवल उच्च क्लॉक आवृत्ति या छोटे घटकों का होना नहीं है। यह इस तथ्य में निहित है कि वे भौतिकी के नियमों का उपयोग गणना संसाधनों के रूप में करते हैं। निम्नलिखित तीन क्वांटम यांत्रिक घटनाएं मुख्य कुंजियां हैं।\n1. सुपरपोजिशन (Superposition) और घातीय सूचना मात्रा जैसा कि पहले उल्लेख किया गया জ্ঞ, क्वांटम बिट्स एक ही समय में 0 और 1 दोनों स्थितियों को पकड़ सकते हैं। एक क्वांटम बिट \u0026ldquo;0 और 1 का सुपरपोजिशन\u0026rdquo; है, लेकिन क्या होता है जब आप क्वांटम बिट्स की संख्या बढ़ाते हैं?\n1 क्वांटम बिट: 2 स्थितियों का सुपरपोजिशन (0, 1) 2 क्वांटम बिट्स: 4 स्थितियों का सुपरपोजिशन (00, 01, 10, 11) 3 क्वांटम बिट्स: 8 स्थितियों का सुपरपोजिशन N क्वांटम बिट्स: $2^N$ पैटर्न का सुपरपोजिशन केवल 50 क्वांटम बिट्स के साथ, आप एक ही समय में $2^{50}$ (लगभग 1.1 क्वाड्रिलियन) स्थितियों को धारण कर सकते हैं। और केवल 300 क्वांटम बिट्स के साथ, आप एक ही समय में $2^{300}$ पैटर्न (ब्रह्मांड में सभी परमाणुओं की संख्या से अधिक!) धारण कर सकते हैं। यह घातीय सूचना प्रतिधारण क्षमता क्वांटम कंप्यूटरों की क्षमता का आधार है। एक शास्त्रीय कंप्यूटर के लिए स्मृति में ब्रह्मांड में परमाणुओं की संख्या से अधिक स्थितियों को संग्रहीत करना भौतिक रूप से असंभव है।\n2. क्वांटम उलझाव (Entanglement): डरावनी दूर की कार्रवाई क्वांटम उलझाव एक अजीब घटना है जो मानवीय अंतर्ज्ञान के इतनी खिलाफ है कि आइंस्टीन ने इसे \u0026ldquo;दूरी पर डरावनी कार्रवाई (Spooky action at a distance)\u0026rdquo; कहा और इसे जीवन भर स्वीकार नहीं किया।\nजब कई क्वांटम बिट्स \u0026ldquo;क्वांटम उलझाव\u0026rdquo; की स्थिति में प्रवेश करते हैं, तो वे एक-दूसरे से मजबूती से बंध जाते हैं, और एक भाग्य-साझा करने वाला रिश्ता बन जाता है जहां \u0026ldquo;जब एक की स्थिति निर्धारित होती है, तो दूसरे की स्थिति तुरंत निर्धारित हो जाती है, चाहे वे कितनी भी दूर हों\u0026rdquo; ।\nउदाहरण के लिए, मान लीजिए कि हमारे पास दो क्वांटम बिट्स A और B हैं जो उलझी हुई अवस्था में हैं (वे प्रत्येक 0 और 1 की सुपरपोजिशन स्थिति में हैं)। यदि हम A का अवलोकन करते हैं और पाते हैं कि यह \u0026ldquo;0\u0026rdquo; है, तो प्रकाश की गति से अधिक गति से, जो सूचना संचरण की सीमा है, B की स्थिति तुरंत निर्धारित हो जाएगी (उदाहरण के लिए, यह हमेशा \u0026ldquo;1\u0026rdquo; होगा)। क्वांटम कंप्यूटरों में, इस क्वांटम उलझाव का उपयोग कई क्वांटम बिट्स के बीच जटिल सहसंबंधों को व्यक्त करने और बड़े पैमाने पर समानांतर सूचना प्रसंस्करण करने के लिए किया जाता है। उलझाव के बिना, क्वांटम कंप्यूटरों की कम्प्यूटेशनल शक्ति शास्त्रीय कंप्यूटरों से बहुत अलग नहीं होगी।\n3. क्वांटम हस्तक्षेप (Quantum Interference): वह जादू जो सही उत्तर को सामने लाता है आप सोच सकते हैं, \u0026ldquo;यदि यह एक ही समय में सभी पैटर्नों को धारण कर सकता है, तो क्या यह एक ही बार में समानांतर में गणना नहीं कर सकता है और तुरंत उत्तर प्राप्त नहीं कर सकता है?\u0026rdquo; यह क्वांटम कंप्यूटरों के बारे में सबसे आम गलतफहमी है। भले ही आप सुपरपोजिशन अवस्था में गणना करते हैं, अंततः उत्तर जानने के लिए आपको \u0026ldquo;अवलोकन\u0026rdquo; करना होगा। हालाँकि, जिस क्षण आप इसका अवलोकन करते हैं, स्थिति यादृच्छिक रूप से $2^N$ पैटर्न में से एक में ढह जाती है। इसके साथ, आपको केवल एक यादृच्छिक (random) उत्तर मिलता है।\nयहीं पर \u0026ldquo;क्वांटम हस्तक्षेप (Interference)\u0026rdquo; खेल में आता है। जब तरंगें एक-दूसरे से टकराती हैं, तो वे एक-दूसरे को मजबूत करती हैं जहां उनकी तरंग दैर्ध्य मेल खाती है, और जहां वे संरेखण से बाहर होती हैं वहां एक-दूसरे को रद्द कर देती हैं (यह अनिवार्य रूप से शोर-रद्द करने वाले इयरफ़ोन के समान सिद्धांत है)।\nएक उत्कृष्ट \u0026ldquo;क्वांटम एल्गोरिथ्म\u0026rdquo; गणना प्रक्रिया के दौरान चतुराई से क्वांटम स्थितियों में हेरफेर करता है ताकि \u0026ldquo;उन स्थितियों (तरंगों) के संभाव्यता आयामों को बढ़ाया जा सके जो सही उत्तर की ओर ले जाते हैं\u0026rdquo; और \u0026ldquo;उन स्थितियों के संभाव्यता आयामों को रद्द किया जा सके जो गलत उत्तर की ओर ले जाते हैं\u0026rdquo; । और जब आप अंततः इसका अवलोकन करते हैं, तो यह ऐसा करता है कि \u0026ldquo;सही उत्तर\u0026rdquo; लगभग 100% की संभावना के साथ निकल आता है। इस हस्तक्षेप प्रक्रिया को सफलतापूर्वक डिज़ाइन करना क्वांटम प्रोग्रामिंग का सार है।\nअध्याय 3: यह गणना कैसे करता है? \u0026ldquo;क्वांटम गेट्स\u0026rdquo; और \u0026ldquo;क्वांटम सर्किट\u0026rdquo; जिस तरह शास्त्रीय कंप्यूटर गणना को आगे बढ़ाने के लिए लॉजिक गेट्स (AND, OR, NOT, आदि) का उपयोग करते हैं, उसी तरह क्वांटम कंप्यूटर भी गणना को आगे बढ़ाने के लिए क्वांटम बिट्स पर \u0026ldquo;क्वांटम गेट्स (Quantum Gates)\u0026rdquo; नामक संचालन लागू करते हैं। कई क्वांटम गेट्स के संयोजन को ** क्वांटम सर्किट (Quantum Circuit) ** कहा जाता है।\nक्वांटम बिट की स्थिति को गणितीय रूप से 3-आयामी क्षेत्र की सतह पर एक बिंदु के रूप में दर्शाया जाता है जिसे \u0026ldquo;बलोच क्षेत्र (Bloch sphere)\u0026rdquo; कहा जाता है। उत्तरी ध्रुव \u0026ldquo;0\u0026rdquo; है, दक्षिणी ध्रुव \u0026ldquo;1\u0026rdquo; है, और भूमध्य रेखा \u0026ldquo;ऐसी स्थिति है जहां 0 और 1 आधे-आधे सुपरइम्पोज़ होते हैं\u0026rdquo;। एक क्वांटम गेट इस क्षेत्र की सतह पर स्थिति (वेक्टर) को घुमाने के अलावा और कुछ नहीं है।\nआइए कुछ विशिष्ट क्वांटम गेट्स का परिचय दें।\n1. हैडामर्ड गेट (H गेट) यह एक क्वांटम कंप्यूटर के लिए अद्वितीय सबसे बुनियादी गेट है, जो शास्त्रीय कंप्यूटरों में मौजूद नहीं है। जब एक क्वांटम बिट पूरी तरह से \u0026ldquo;0\u0026rdquo; स्थिति में H गेट से गुजरता है, तो यह एक \u0026ldquo;पूर्ण सुपरपोजिशन स्थिति\u0026rdquo; (बलोच क्षेत्र पर भूमध्य रेखा पर एक बिंदु) बनाता है जहां 0 और 1 ठीक आधे समय देखे जाते हैं। कई एल्गोरिदम क्वांटम गणना के लिए आरंभीकरण कदम के रूप में सभी क्वांटम बिट्स में इस H गेट को लागू करके शुरू होते हैं।\n2. पाउली गेट (X, Y, Z गेट) वे गेट जिनमें शास्त्रीय कंप्यूटर के NOT गेट (0 को 1 में, और 1 को 0 में बदलना) के बराबर संचालन शामिल हैं। बलोच क्षेत्र में, यह X-अक्ष, Y-अक्ष और Z-अक्ष के चारों ओर 180 डिग्री घूमने के बराबर है। विशेष रूप से, X गेट उत्तरी ध्रुव (0) को दक्षिणी ध्रुव (1) में उलट देता है, इसलिए यह बिल्कुल शास्त्रीय NOT गेट की तरह काम करता है। Z गेट की सुपरपोजिशन के \u0026ldquo;चरण (तरंग के समय जैसी कोई चीज़)\u0026rdquo; को उलटने की भूमिका होती है, और यह क्वांटम हस्तक्षेप पैदा करने में अत्यंत महत्वपूर्ण है।\n3. CNOT गेट (नियंत्रित NOT गेट) क्वांटम उलझाव बनाने के लिए यह एक अति-महत्वपूर्ण गेट है। यह दो क्वांटम बिट्स (नियंत्रण बिट और लक्ष्य बिट) का उपयोग करता है। यह इस तरह से काम करता है: \u0026ldquo;यदि नियंत्रण बिट 1 है, तो लक्ष्य बिट की स्थिति उलट जाती है (X गेट)। यदि नियंत्रण बिट 0 है, तो यह कुछ नहीं करता है।\u0026rdquo; पहली नज़र में, यह एक साधारण IF शर्त शाखा की तरह लगता है, लेकिन क्या होता है यदि नियंत्रण बिट \u0026ldquo;0 और 1 की सुपरपोजिशन स्थिति\u0026rdquo; में है? लक्ष्य बिट \u0026ldquo;उलटे और बिना उलटे का सुपरपोजिशन स्थिति\u0026rdquo; में होगा, और दोनों बिट्स का भाग्य पूरी तरह से जुड़ जाएगा। दो क्वांटम बिट्स खूबसूरती से \u0026ldquo;उलझ (entangled)\u0026rdquo; जाते हैं।\nइन गेट्स को संगीत स्कोर की तरह बाएं से दाएं क्रम में रखकर और लागू करके, जटिल एल्गोरिदम निष्पादित किए जाते हैं।\nअध्याय 4: क्वांटम कंप्यूटर किसमें अच्छे हैं और किसमें खराब? यहां एक महत्वपूर्ण तथ्य बताया गया है: क्वांटम कंप्यूटर सर्वशक्तिमान ईश्वर नहीं हैं। हर रोज़ के कामों जैसे वेब ब्राउज़िंग, वीडियो रेंडरिंग, एक्सेल मैक्रो प्रोसेसिंग, या सामान्य स्मार्टफोन ऐप ऑपरेशंस में, क्वांटम कंप्यूटर शायद कभी भी शास्त्रीय कंप्यूटरों को पार नहीं कर पाएंगे। ये अनुक्रमिक प्रक्रियाएँ पहले से ही अत्यधिक अनुकूलित हैं, और भारी गति और सस्तेपन का दावा करने वाले शास्त्रीय कंप्यूटर इनके लिए अधिक उपयुक्त हैं।\nक्वांटम कंप्यूटरों का वास्तविक मूल्य केवल \u0026ldquo;विशिष्ट समस्याओं के लिए महसूस किया जाता है जहां शास्त्रीय कंप्यूटरों में गणना संयोजनों की संख्या तेजी से बढ़ती है, और ब्रह्मांड के जीवनकाल जितना समय लगता है\u0026rdquo; । इसे \u0026ldquo;क्वांटम सर्वोच्चता (Quantum Supremacy)\u0026rdquo; या \u0026ldquo;क्वांटम लाभ (Quantum Advantage)\u0026rdquo; कहा जाता है।\nक्वांटम कंप्यूटर किसमें अच्छे हैं (किलर एप्लिकेशन) 1. अभाज्य गुणनखंडन और डिक्रिप्शन (शोर का एल्गोरिथ्म) वर्तमान में, इंटरनेट पर सुरक्षित संचार (क्रेडिट कार्ड से भुगतान और व्यक्तिगत जानकारी का प्रसारण आदि) की रक्षा करने वाला \u0026ldquo;RSA क्रिप्टोग्राफी\u0026rdquo; इस आधार पर आधारित है कि \u0026ldquo;शास्त्रीय कंप्यूटरों के लिए बड़ी संख्याओं का अभाज्य गुणनखंडन व्यावहारिक रूप से असंभव है (इसमें बहुत समय लगता है)\u0026quot;। हालाँकि, 1994 में गणितज्ञ पीटर शोर द्वारा खोजे गए \u0026ldquo;शोर के एल्गोरिथ्म\u0026rdquo; का उपयोग करके, एक क्वांटम कंप्यूटर बड़ी चतुराई से हस्तक्षेप का उपयोग करके नाटकीय गति (बहुपद समय) से इसे हल कर सकता है। इसके परिणामस्वरूप, भविष्य में वर्तमान क्रिप्टोग्राफ़िक प्रणाली के ढहने का जोखिम है, और दुनिया भर के केंद्रीय बैंक और सरकारी एजेंसियां \u0026ldquo;क्वांटम-प्रतिरोधी क्रिप्टोग्राफी (Post-Quantum Cryptography)\u0026rdquo; में संक्रमण के लिए जल्दबाजी कर रही हैं।\n2. क्वांटम रासायनिक गणना और नई सामग्री/दवा विकास प्रकृति में अणुओं और परमाणुओं का व्यवहार स्वाभाविक रूप से क्वांटम यांत्रिकी के नियमों का पालन करता है। जब हम एक शास्त्रीय कंप्यूटर के साथ जटिल अणुओं के व्यवहार का अनुकरण करने का प्रयास करते हैं, तो इलेक्ट्रॉनों के बीच बातचीत के संयोजन विस्फोट हो जाते हैं, और अपेक्षाकृत छोटे अणुओं के साथ भी हम कम्प्यूटेशनल सीमा तक पहुंच जाते हैं। जैसा कि नोबेल पुरस्कार विजेता भौतिक विज्ञानी रिचर्ड फेनमैन ने कहा था, \u0026ldquo;यदि आप प्रकृति का अनुकरण करना चाहते हैं, तो आपको इसे क्वांटम यांत्रिक रूप से करना होगा\u0026rdquo;, क्वांटम कंप्यूटर सामग्री सिमुलेशन में भारी देशी शक्ति का प्रदर्शन करते हैं। सफल नई दवाओं का डिज़ाइन, कमरे के तापमान वाली सुपरकंडक्टिंग सामग्री की खोज, उच्च दक्षता वाली सौर कोशिकाओं और बैटरी सामग्री का विकास, और ऊर्जा-कुशल उर्वरकों का संश्लेषण ऐसी कुछ सफलताएं हैं जिनसे मानवीय समस्याओं को हल करने की उम्मीद है।\n3. संयोजन अनुकूलन समस्याएं और खोज (ग्रोवर का एल्गोरिथ्म) विकल्पों की एक विशाल संख्या (लॉजिस्टिक्स ऑप्टिमाइज़ेशन रूट, वित्तीय पोर्टफोलियो ऑप्टिमाइज़ेशन, आदि) से सर्वश्रेष्ठ को खोजने की समस्या के लिए भी, क्वांटम एल्गोरिदम अपनी शक्ति दिखाते हैं। \u0026ldquo;ग्रोवर के एल्गोरिथ्म\u0026rdquo; का उपयोग करके, आप असंरचित डेटाबेस से शास्त्रीय कंप्यूटर के वर्गमूल (स्क्वायर रूट) के समय में वांछित डेटा पा सकते हैं। उदाहरण के लिए, यदि 100 मिलियन डेटा आइटम हैं, तो एक शास्त्रीय कंप्यूटर जिसे खोजने में 100 मिलियन बार तक का समय लगता है, उसे केवल 10,000 बार में पूरा किया जा सकता है।\nअध्याय 5: हार्डवेयर की दीवार जो रास्ते में खड़ी है: \u0026ldquo;डिकोहेरेंस\u0026rdquo; और \u0026ldquo;क्वांटम त्रुटि सुधार\u0026rdquo; हालांकि सैद्धांतिक रूप से जादुई रूप से शक्तिशाली, क्वांटम कंप्यूटरों के व्यावहारिक अनुप्रयोग के रास्ते में एक बहुत ही उच्च और खड़ी भौतिक दीवार है। सबसे बड़ा दुश्मन \u0026ldquo;शोर (Noise)\u0026rdquo; है।\nक्वांटम बिट्स का \u0026ldquo;सुपरपोजिशन\u0026rdquo; और \u0026ldquo;क्वांटम उलझाव\u0026rdquo; बेहद नाजुक और नाजुक अवस्थाएँ हैं। बस परिवेशी गर्मी, विद्युत चुम्बकीय उतार-चढ़ाव, या कॉस्मिक किरणों को छूने से, जादुई स्थिति तुरंत ढह जाती है और केवल एक शास्त्रीय बिट बन जाती है। इस घटना को \u0026ldquo;डिकोहेरेंस (क्वांटम पतन)\u0026rdquo; कहा जाता है।\nभौतिक प्राप्ति विधियों के लिए भयंकर प्रतिस्पर्धा वर्तमान में, इन नाजुक क्वांटम बिट्स को भौतिक रूप से कैसे बनाया जाए, इस पर दुनिया भर में विभिन्न तरीकों पर शोध किया जा रहा है, और वर्चस्व की लड़ाई हो रही है।\nसुपरकंडक्टिंग विधि (Superconducting) : Google, IBM, Amazon, आदि द्वारा अपनाया गया। एक लूप-आकार के सुपरकंडक्टिंग सर्किट का उपयोग किया जाता है, और क्वांटम स्थिति को नियंत्रित करने के लिए इसे एक विशाल रेफ्रिजरेटर के साथ पूर्ण शून्य (लगभग -273°C) के करीब क्रायोजेनिक तापमान तक ठंडा किया जाता है। यह वर्तमान में सबसे अग्रणी तरीका है और क्वांटम बिट्स की संख्या बढ़ाना आसान है, लेकिन शीतलन उपकरण बहुत बड़ा और महंगा है। आयन ट्रैप विधि (Trapped Ion) : IonQ, Quantinuum, आदि द्वारा अपनाया गया। आयनों (परमाणुओं) को विद्युत चुम्बकीय क्षेत्रों का उपयोग करके निर्वात में फंसाया जाता है, और उन्हें नियंत्रित करने के लिए सटीक लेजर लागू किए जाते हैं। ताकत यह है कि सभी क्वांटम बिट्स एक समान हैं और स्थिति को लंबे समय तक बनाए रखा जा सकता है (लंबा सुसंगतता समय), लेकिन चुनौती यह है कि संचालन की गति सुपरकंडक्टिंग विधि की तुलना में धीमी है। ऑप्टिकल क्वांटम विधि (Photonic) : PsiQuantum, आदि द्वारा केंद्रित। प्रकाश के कणों (फोटोन) का उपयोग किया जाता है। क्रायोजेनिक वातावरण की आवश्यकता नहीं होती है और कई हिस्से कमरे के तापमान पर काम বৃহত্তর करते हैं, जिसका बड़ा फायदा मौजूदा सिलिकॉन चिप निर्माण तकनीक और ऑप्टिकल फाइबर संचार तकनीक के अनुकूल होना है। टोपोलॉजिकल विधि (Topological) : माइक्रोसॉफ्ट द्वारा कई वर्षों तक शोध किया गया। यह एनीन्स नामक विशेष कणों के टोपोलॉजिकल (टॉपोलॉजिकल) गुणों का उपयोग करके क्वांटम बिट्स बनाने का एक महत्वाकांक्षी दृष्टिकोण है जो पर्यावरणीय शोर के लिए मौलिक रूप से प्रतिरोधी हैं (त्रुटियों का खतरा कम)। इसे सिद्धांत रूप में सबसे मजबूत माना जाता है, लेकिन भौतिक प्राप्ति के लिए सबसे अधिक बाधाओं वाला माना जाता है। अंतिम लक्ष्य का मार्ग: \u0026ldquo;फॉल्ट-टॉलरेंट क्वांटम कंप्यूटर (FTQC)\u0026rdquo; वर्तमान शास्त्रीय कंप्यूटर दुनिया में भी गणना त्रुटियां (जैसे कॉस्मिक किरणों के कारण बिट फ़्लिप) मौजूद हैं, लेकिन उन्हें \u0026ldquo;त्रुटि सुधार कोड\u0026rdquo; द्वारा पूरी तरह से ठीक किया जाता है, इसलिए हम बिना किसी त्रुटि के अपने स्मार्टफोन का उपयोग कर सकते हैं। क्वांटम कंप्यूटरों में व्यावहारिक बड़े पैमाने पर गणना करने के लिए, इसी तरह का \u0026ldquo;क्वांटम त्रुटि सुधार (Quantum Error Correction: QEC)\u0026rdquo; आवश्यक है।\nहालाँकि, चूंकि क्वांटम स्थितियों में \u0026ldquo;अवलोकन किए जाने पर टूटने\u0026rdquo; की संपत्ति होती है, इसलिए एक घातक दुविधा है कि आप त्रुटियों की जांच करने के लिए सीधे अंदर नहीं देख सकते (निरीक्षण नहीं कर सकते)। इससे बचने के लिए, त्रुटियों का पता लगाने और उन्हें ठीक करने के लिए एक स्थिर \u0026ldquo;तार्किक क्वांटम बिट\u0026rdquo; बनाने के लिए कई अस्थिर \u0026ldquo;भौतिक क्वांटम बिट्स\u0026rdquo; को चतुराई से संयोजित करने का एक सिद्धांत स्थापित किया गया है (जैसे सतह कोड)। हालाँकि, कहा जाता है कि एक तार्किक क्वांटम बिट बनाने के लिए 1,000 से 10,000 भौतिक क्वांटम बिट्स की आवश्यकता होती है। शोर के एल्गोरिथ्म आदि को निष्पादित करने के लिए हजारों तार्किक क्वांटम बिट्स का उपयोग करने के लिए, कुल लाखों से करोड़ों भौतिक क्वांटम बिट्स के साथ एक विशाल प्रणाली की आवश्यकता होगी।\nहम वर्तमान में जिसे NISQ (Noisy Intermediate-Scale Quantum: शोर मध्यवर्ती-पैमाने क्वांटम) उपकरणों का युग कहा जाता है, उसमें हैं। ये संक्रमणकालीन मशीनें हैं जो बिना त्रुटि सुधार के दसियों से सैकड़ों क्वांटम बिट्स के साथ काम करती हैं। विशेषज्ञों का अनुमान है कि \u0026ldquo;फॉल्ट-टॉलरेंट क्वांटम कंप्यूटर (Fault-Tolerant Quantum Computer: FTQC)\u0026rdquo; के अंतिम लक्ष्य को साकार करने में अभी भी 10 से कई दशक लंबी अवधि के अनुसंधान और विकास की आवश्यकता है, जो पूरी तरह से त्रुटि-सुधारने में सक्षम है।\nअध्याय 6: क्वांटम कंप्यूटरों का इतिहास और भविष्य की संभावनाएं अंत में, आइए एक नजर डालते हैं कि क्वांटम कंप्यूटर कैसे पैदा हुए और वे भविष्य में कहां जा रहे हैं।\nसिद्धांत के जन्म से लेकर \u0026ldquo;क्वांटम सर्वोच्चता\u0026rdquo; के प्रदर्शन तक 1980 का दशक : भौतिक विज्ञानी पॉल बेनियोफ और रिचर्ड फेनमैन ने क्वांटम यांत्रिकी के सिद्धांतों का उपयोग करते हुए एक कंप्यूटर की अवधारणा का प्रस्ताव रखा। \u0026ldquo;यदि आप प्रकृति का अनुकरण करना चाहते हैं, तो क्वांटम यांत्रिकी का उपयोग करें\u0026rdquo; शब्द शुरुआती बिंदु थे। 1994 : पीटर शोर ने अभाज्य गुणनखंडन (शोर का एल्गोरिथ्म) के लिए एक क्वांटम एल्गोरिथ्म प्रकाशित किया। इसने दुनिया को चौंका दिया और बड़ी मात्रा में शोध निधि प्रवाहित होने लगी। 1996 : लव ग्रोवर ने ग्रोवर का एल्गोरिथ्म प्रकाशित किया, जो डेटा खोजों को गति देता है। **2019 ** : एक ऐतिहासिक मील का पत्थर। Google ने घोषणा की कि उसने अपने 53-क्विबिट सुपरकंडक्टिंग प्रोसेसर \u0026ldquo;Sycamore\u0026rdquo; का उपयोग करके लगभग 200 सेकंड में एक यादृच्छिक संख्या जनरेशन सत्यापन गणना पूरी की है जिसे एक शास्त्रीय सुपरकंप्यूटर पर 10,000 वर्ष लगने की उम्मीद थी। इसने दुनिया की पहली \u0026ldquo;क्वांटम सर्वोच्चता (Quantum Supremacy)\u0026rdquo; के प्रदर्शन के रूप में बहुत ध्यान आकर्षित किया (बाद में, IBM और अन्य ने शास्त्रीय सुपरकंप्यूटर पक्ष पर एल्गोरिथ्म में सुधार किया और तर्क दिया कि इसकी गणना कुछ ही दिनों में की जा सकती है, जिससे एक गर्म बहस छिड़ गई)। 2023 और उसके बाद : IBM ने 1,000 से अधिक क्वांटम बिट्स के साथ \u0026ldquo;Condor\u0026rdquo; प्रोसेसर की घोषणा की। इसके अलावा, हार्वर्ड विश्वविद्यालय और अन्य ने \u0026ldquo;तार्किक क्वांटम बिट्स\u0026rdquo; बनाने और हेरफेर करने में सफलता प्राप्त की है, और त्रुटि सुधार तकनीक के प्रारंभिक प्रदर्शनों की एक के बाद एक रिपोर्ट की जा रही है। अगली पीढ़ी की प्रौद्योगिकी की ओर एक क्वांटम कंप्यूटर केवल \u0026ldquo;तेज घड़ी गति वाला अगली पीढ़ी का CPU\u0026rdquo; नहीं है। यह गणना की अवधारणा को मौलिक रूप से फिर से लिखता है, क्वांटम यांत्रिकी के नियमों का उपयोग करके जो सूक्ष्म दुनिया को नियंत्रित करता है, सूचना विज्ञान में एक वास्तविक प्रतिमान बदलाव है।\nशायद हमारे जीवनकाल में हमारे पास \u0026ldquo;व्यक्तिगत क्वांटम स्मार्टफोन\u0026rdquo; नहीं होंगे जो हमारी जेब में फिट हो सकें (इसकी कोई आवश्यकता भी नहीं है)। हालाँकि, वह भविष्य निश्चित रूप से करीब आ रहा है जहाँ AWS या Azure जैसे क्लाउड नेटवर्क के पीछे एक शक्तिशाली क्वांटम डेटा सेंटर अचानक एक लाइलाज बीमारी का इलाज खोज लेता है, या एक स्वप्निल स्वच्छ ऊर्जा सामग्री का पता लगाता है जो ग्लोबल वार्मिंग को हल करती है (उदाहरण के लिए, एक उत्प्रेरक जो कमरे के तापमान पर वायुमंडलीय नाइट्रोजन से अमोनिया को संश्लेषित करता है)।\nअब हम एक प्रारंभिक चरण में हैं जो 1940 के दशक में विशाल वैक्यूम ट्यूबों की गर्मी से उबलते हुए कमरों में पंच कार्डों पर चलने वाले ENIAC के बराबर है। हालाँकि, दुनिया भर के शीर्ष स्तर के शोधकर्ता और इंजीनियर अपनी बुद्धि लगा रहे हैं, और हर दिन तकनीकी सफलताओं की सूचना दी जा रही है। इस नए \u0026ldquo;गणना की सुबह\u0026rdquo; के विकास के गवाह बन सकने वाले हम कह सकते हैं कि हम इतिहास के एक बहुत ही रोमांचक दौर में जी रहे हैं।\nक्वांटम दुनिया के दरवाजे अभी खुले हैं। हम भविष्य के रुझानों पर नज़र रखना जारी रखेंगे।\nइस लेख का उद्देश्य व्यावसायिक पेशेवरों और प्रौद्योगिकी में रुचि रखने वाले आम लोगों के लिए क्वांटम कंप्यूटिंग की बुनियादी अवधारणाओं को आसानी से समझने वाले तरीके से समझाना है। कृपया ध्यान दें कि कुछ सख्त गणितीय और भौतिक परिभाषाओं (जैसे ब्रा-केट नोटेशन और जटिल संभाव्यता आयामों का विवरण) को कुछ हद तक सरल बनाया गया है।\n","date":"2026-09-05T22:10:00+09:00","image":"http://kenji.blog/p/quantum-computer-basics/quantum_basics_eyecatch_1788613712487_huf997c6e55368509d0617b56f68899854_1084950_120x120_fill_q75_box_smart1.jpg","permalink":"http://kenji.blog/hi/p/quantum-computer-basics/","title":"【पूर्ण विश्लेषण】 क्वांटम कंप्यूटर क्या है? ~ शून्य से समझें परम गणना सिद्धांत ~"},{"content":"परिचय: क्वांटम कंप्यूटर द्वारा क्रिप्टोग्राफी के लिए लाया गया \u0026ldquo;खतरा\u0026rdquo; वर्तमान में, हम इंटरनेट पर जो संचार प्रतिदिन करते हैं - ऑनलाइन बैंकिंग में भुगतान, वेबसाइट ब्राउज़िंग (HTTPS), मैसेजिंग ऐप्स के माध्यम से बातचीत, और ब्लॉकचेन या क्रिप्टोकरेंसी लेनदेन - उनमें से अधिकांश \u0026ldquo;पब्लिक-की क्रिप्टोग्राफी\u0026rdquo; (Public-key cryptography) नामक तकनीक द्वारा सुरक्षित हैं। विशेष रूप से, RSA और एलीप्टिक कर्व क्रिप्टोग्राफी (ECC) जैसे एल्गोरिदम आधुनिक डिजिटल समाज की विश्वसनीयता का आधार हैं।\nये क्रिप्टोग्राफ़िक विधियां \u0026ldquo;बड़ी संख्याओं के अभाज्य गुणनखंडन\u0026rdquo; (Prime factorization) और \u0026ldquo;असतत लघुगणक समस्या\u0026rdquo; (Discrete logarithm problem) जैसी गणितीय समस्याओं पर आधारित हैं, जिन्हें हल करने में वर्तमान क्लासिकल कंप्यूटरों (सुपरकंप्यूटरों सहित) को खगोलीय समय लगेगा। हालाँकि, जब \u0026ldquo;क्वांटम कंप्यूटर\u0026rdquo; (जो हाल के वर्षों में उल्लेखनीय प्रगति कर रहे हैं) व्यावहारिक उपयोग में आ जाएंगे, तो यह आधारभूत मान्यता पूरी तरह से उलट जाएगी।\n1994 में पीटर शोर (Peter Shor) द्वारा प्रकाशित \u0026ldquo;शोर का एल्गोरिदम\u0026rdquo;, गणितीय रूप से साबित करता है कि पर्याप्त शक्ति वाला एक क्वांटम कंप्यूटर अभाज्य गुणनखंडन और असतत लघुगणक समस्याओं को बहुत कम समय में हल कर सकता है। इसका मतलब यह है कि वर्तमान में इंटरनेट की रक्षा करने वाले सभी एन्क्रिप्टेड संचारों को भविष्य में डिक्रिप्ट किए जाने का जोखिम है (इस समस्या को Y2Q: Years to Quantum, या Q-Day कहा जाता है)।\nइससे भी अधिक गंभीर बात यह है कि \u0026ldquo;अभी हार्वेस्ट करें, बाद में डिक्रिप्ट करें\u0026rdquo; (Harvest Now, Decrypt Later - अभी डेटा चुराएं और स्टोर करें, भविष्य में डिक्रिप्शन संभव होने पर डिक्रिप्ट करें) जैसी हमले की तकनीकें मौजूद हैं। राज्य के रहस्य, कॉर्पोरेट बौद्धिक संपदा, और व्यक्तिगत बायोमेट्रिक जानकारी जैसे डेटा जिन्हें दशकों तक गोपनीय रखने की आवश्यकता होती है, पहले से ही भविष्य के डिक्रिप्शन के इरादे से चोरी का लक्ष्य हो सकते हैं।\nइस अभूतपूर्व संकट का जवाब देने के लिए, दुनिया भर के क्रिप्टोग्राफर और शोध संस्थान एक अगली पीढ़ी की क्रिप्टोग्राफ़िक तकनीक विकसित करने के लिए मिलकर काम कर रहे हैं जो क्वांटम कंप्यूटर हमलों के खिलाफ सुरक्षा बनाए रख सके: पोस्ट-क्वांटम क्रिप्टोग्राफी (PQC) । इस लेख में, हम PQC की मूल बातों से लेकर, प्रमुख एल्गोरिदम कैसे काम करते हैं, और संयुक्त राज्य अमेरिका के राष्ट्रीय मानक और प्रौद्योगिकी संस्थान (NIST) द्वारा संचालित वैश्विक मानकीकरण के नवीनतम रुझानों तक सब कुछ विस्तार से बताएंगे।\nपोस्ट-क्वांटम क्रिप्टोग्राफी (PQC) क्या है? पोस्ट-क्वांटम क्रिप्टोग्राफी (Post-Quantum Cryptography, PQC) उन क्रिप्टोग्राफ़िक एल्गोरिदम के लिए एक सामान्य शब्द है जो मौजूदा क्लासिकल कंप्यूटरों पर चलते हैं और भविष्य के बड़े पैमाने के क्वांटम कंप्यूटरों (जैसे शोर के एल्गोरिदम) द्वारा किए जाने वाले हमलों के प्रतिरोधी होने के लिए डिज़ाइन किए गए हैं।\nप्रौद्योगिकियां जिन्हें अक्सर PQC के साथ भ्रमित किया जाता है वे हैं \u0026ldquo;क्वांटम क्रिप्टोग्राफी\u0026rdquo; (Quantum Cryptography) और \u0026ldquo;क्वांटम की डिस्ट्रीब्यूशन\u0026rdquo; (QKD), लेकिन ये पूरी तरह से अलग दृष्टिकोण हैं। क्वांटम क्रिप्टोग्राफी (QKD) एक हार्डवेयर-आधारित तकनीक है जो संचार पथों पर ईव्सड्रॉपिंग को भौतिक रूप से असंभव बनाने के लिए क्वांटम यांत्रिकी के भौतिक नियमों (जैसे कि देखे जाने पर अवस्थाओं को बदलने का गुण) का उपयोग करती है। इसके लिए समर्पित ऑप्टिकल फाइबर और विशेष उपकरणों की आवश्यकता होती है, और इसमें स्थापना लागत और दूरी की सीमाओं जैसी चुनौतियाँ हैं।\nदूसरी ओर, PQC विशुद्ध रूप से \u0026ldquo;गणित\u0026rdquo; पर आधारित एक सॉफ्टवेयर-आधारित क्रिप्टोग्राफिक तकनीक है । इसलिए, इसे मौजूदा इंटरनेट इंफ्रास्ट्रक्चर, सर्वर, स्मार्टफोन और ब्राउज़र में सॉफ़्टवेयर अपडेट के रूप में शामिल किया जा सकता है, जो इसे वास्तविक दुनिया के अनुप्रयोगों के लिए अत्यधिक अनुकूल बनाता है। दुनिया भर की आईटी कंपनियों और सरकारी एजेंसियों के लिए यह एक आवश्यक कार्य बन गया है कि वे वर्तमान में उपयोग किए जा रहे RSA और ECC को इस PQC से बदलें (माइग्रेट करें)।\nPQC का समर्थन करने वाले 4 मुख्य गणितीय दृष्टिकोण विभिन्न PQC एल्गोरिदम गणितीय समस्याओं (जैसे NP-hard समस्याएं) के आधार पर प्रस्तावित किए गए हैं जिन्हें क्वांटम कंप्यूटर का उपयोग करके भी कुशलता से हल नहीं किया जा सकता है। यहाँ हम वर्तमान में मुख्यधारा की चार प्रमुख श्रेणियों का परिचय देंगे।\nपोस्ट-क्वांटम क्रिप्टोग्राफी (PQC) के प्रमुख दृष्टिकोण 1 2 3 4 5 6 7 8 9 10 11 12 graph LR PQC[पोस्ट-क्वांटम क्रिप्टोग्राफी PQC] --\u0026gt; L[लैटिस-आधारित क्रिप्टोग्राफी Lattice-based] PQC --\u0026gt; H[हैश-आधारित क्रिप्टोग्राफी Hash-based] PQC --\u0026gt; M[मल्टीवेरिएट क्रिप्टोग्राफी Multivariate] PQC --\u0026gt; C[कोड-आधारित क्रिप्टोग्राफी Code-based] L --\u0026gt; L1(FIPS 203: ML-KEM) L --\u0026gt; L2(FIPS 204: ML-DSA) H --\u0026gt; H1(FIPS 205: SLH-DSA) style PQC fill:#f9f,stroke:#333,stroke-width:2px 1. लैटिस-आधारित क्रिप्टोग्राफी (Lattice-based Cryptography) वर्तमान में, PQC के क्षेत्र में सबसे आशाजनक और मुख्यधारा का दृष्टिकोण यह \u0026ldquo;लैटिस-आधारित क्रिप्टोग्राफी\u0026rdquo; है। लैटिस-आधारित क्रिप्टोग्राफी अपनी सुरक्षा को एक बहुआयामी अंतरिक्ष में नियमित रूप से व्यवस्थित बिंदुओं (लैटिस पॉइंट्स) से संबंधित समस्याओं पर आधारित करती है। प्रसिद्ध समस्याओं में \u0026ldquo;शॉर्टेस्ट वेक्टर प्रॉब्लम\u0026rdquo; (SVP) और \u0026ldquo;लर्निंग विद एरर्स\u0026rdquo; (LWE) शामिल हैं।\nसिस्टम का अवलोकन: कल्पना करें कि एक बहुत ही उच्च-आयामी (सैकड़ों से हजारों आयाम) अंतरिक्ष में एक ग्रिड पैटर्न में व्यवस्थित अनगिनत बिंदु हैं। 2 या 3 आयामों में किसी विशिष्ट लैटिस बिंदु को खोजना आसान है, लेकिन जब बात सैकड़ों आयामों की आती है, तो ऐसा कोई एल्गोरिदम नहीं खोजा गया है जो इसे क्लासिकल या क्वांटम कंप्यूटर दोनों से कुशलतापूर्वक ढूंढ सके। विशेष रूप से LWE समस्या इस गुण का उपयोग करती है कि \u0026ldquo;यदि जानबूझकर समकालिक रैखिक समीकरणों में थोड़ा सा \u0026lsquo;शोर\u0026rsquo; (त्रुटि) जोड़ा जाए, तो मूल चर का अनुमान लगाना नाटकीय रूप से कठिन हो जाता है।\u0026rdquo;\nफायदे:\nकी एनकैप्सुलेशन (KEM) और डिजिटल सिग्नेचर दोनों के लिए लागू। प्रसंस्करण गति बहुत तेज है (कुछ मामलों में RSA या ECC से भी तेज)। की (key) का आकार और सिफरटेक्स्ट का आकार अपेक्षाकृत छोटा और अच्छी तरह से संतुलित है। वर्तमान में NIST द्वारा मानकीकृत अधिकांश एल्गोरिदम (जैसे ML-KEM और ML-DSA) इस लैटिस-आधारित क्रिप्टोग्राफी को अपनाते हैं।\n2. हैश-आधारित क्रिप्टोग्राफी (Hash-based Cryptography) हैश-आधारित क्रिप्टोग्राफी एक PQC एल्गोरिदम है जो डिजिटल सिग्नेचर में माहिर है। सुरक्षा का आधार पूरी तरह से SHA-2 और SHA-3 जैसे सुरक्षित \u0026ldquo;क्रिप्टोग्राफिक हैश फ़ंक्शंस\u0026rdquo; के टकराव प्रतिरोध (collision resistance) और एकतरफा (one-wayness) पर निर्भर करता है।\nसिस्टम का अवलोकन: शुरुआती बिंदु एक वन-टाइम सिग्नेचर स्कीम है जिसे \u0026ldquo;लैम्पोर्ट सिग्नेचर\u0026rdquo; (Lamport Signature) कहा जाता है, जिसका उपयोग केवल एक बार किया जा सकता है। \u0026ldquo;मर्कल ट्री\u0026rdquo; (Merkle Tree) नामक ट्री-संरचित डेटा प्रारूप में इन्हें बंडल करके, एक की-पेयर (key pair) के साथ कई सिग्नेचर संभव हो जाते हैं।\nफायदे:\nसुरक्षा का आधार अत्यंत मजबूत है, और एक मजबूत प्रमाण है कि \u0026ldquo;यह तब तक सुरक्षित है जब तक हैश फ़ंक्शन सुरक्षित है\u0026rdquo;। गणितीय संरचनाओं पर कम निर्भरता के कारण, अप्रत्याशित डिक्रिप्शन विधियों के खोजे जाने का जोखिम कम है। नुकसान:\nइसका उपयोग की शेयरिंग (KEM) के लिए नहीं किया जा सकता है, केवल डिजिटल सिग्नेचर के लिए। सिग्नेचर का आकार बड़ा हो जाता है। इसमें \u0026ldquo;स्टेटफुल\u0026rdquo; और \u0026ldquo;स्टेटलेस\u0026rdquo; प्रकार होते हैं, और स्टेटफुल प्रकार (जैसे XMSS) को लागू करना मुश्किल होता है क्योंकि की के उपयोग की संख्या को सख्ती से प्रबंधित करना आवश्यक होता है। NIST ने \u0026ldquo;SLH-DSA (पूर्व में SPHINCS+)\u0026rdquo; को एक स्टेटलेस हैश-आधारित सिग्नेचर के रूप में मानकीकृत किया है।\n3. मल्टीवेरिएट पॉलीनोमियल-आधारित क्रिप्टोग्राफी (Multivariate Cryptography) मल्टीवेरिएट पॉलीनोमियल क्रिप्टोग्राफी एक ऐसी विधि है जिसकी सुरक्षा का आधार कई चर (MQ समस्या: Multivariate Quadratic problem) वाले एक साथ द्विघात बहुपदों की प्रणाली को हल करने की कठिनाई है। यह समस्या NP-hard मानी जाती है।\nसिस्टम का अवलोकन: प्रेषक एक सार्वजनिक कुंजी (पब्लिक की) के रूप में पारित कई चर वाले एक जटिल समीकरण में प्लेनटेक्स्ट (या हैश मान) को प्रतिस्थापित करके एक सिफरटेक्स्ट (सिग्नेचर) बनाता है। वैध प्राप्तकर्ता के पास एक निजी कुंजी (प्राइवेट की) के रूप में \u0026ldquo;समीकरण संरचना को आसानी से हल करने योग्य रूप में बदलने के लिए छिपी हुई जानकारी (ट्रैपडोर)\u0026rdquo; होती है, और वह डिक्रिप्शन (या सिग्नेचर वेरिफिकेशन) करने के लिए इसका उपयोग करता है।\nफायदे:\nसिग्नेचर का आकार बहुत छोटा होता है। सिग्नेचर वेरिफिकेशन गति अत्यंत तेज है। यह सीमित संसाधनों वाले IoT उपकरणों आदि के लिए उपयुक्त है। नुकसान:\nसार्वजनिक कुंजी (पब्लिक की) का आकार बहुत बड़ा होता है (यह दहाई या सैकड़ों किलोबाइट तक हो सकता है)। ऐसे मामले सामने आए हैं जहां अतीत में शक्तिशाली एल्गोरिदम (जैसे रेनबो) क्लासिकल हमलों से टूट गए थे, जिससे अन्य तरीकों की तुलना में इसकी सुरक्षा में विश्वास स्थापित करना अधिक कठिन हो गया। 4. कोड-आधारित क्रिप्टोग्राफी (Code-based Cryptography) कोड-आधारित क्रिप्टोग्राफी संचार पथ पर त्रुटियों को ठीक करने के लिए उपयोग किए जाने वाले \u0026ldquo;त्रुटि-सुधार कोड\u0026rdquo; (Error-correcting codes) के सिद्धांत का क्रिप्टोग्राफी में अनुप्रयोग है। 1978 में प्रस्तावित \u0026ldquo;McEliece क्रिप्टोग्राफी\u0026rdquo; सबसे प्रसिद्ध है और यह PQC के सबसे पुराने तरीकों में से एक है।\nसिस्टम का अवलोकन: प्रेषक प्राप्तकर्ता की सार्वजनिक कुंजी (एक त्रुटि-सुधार कोड का जनरेटर मैट्रिक्स जिसकी विशिष्ट संरचना छिपी हुई है) का उपयोग करके प्लेनटेक्स्ट को एन्कोड करता है, जानबूझकर त्रुटियां (शोर) जोड़ता है और इसे भेजता है। प्राप्तकर्ता त्रुटियों को दूर करने और प्लेनटेक्स्ट को निकालने के लिए निजी कुंजी का उपयोग करता है। एक कोडब्रेकर को केवल एक यादृच्छिक कोड से त्रुटियों को ठीक करना होगा जिसकी संरचना वह नहीं जानता है, जिसे \u0026ldquo;सामान्य सिंड्रोम डिकोडिंग समस्या\u0026rdquo; (General Syndrome Decoding Problem) कहा जाता है, और यह साबित हो गया है कि यह NP-hard है।\nफायदे:\n40 से अधिक वर्षों तक इसका गहन अध्ययन किया गया है, और अभी तक कोई प्रभावी हमले नहीं पाए गए हैं, इसलिए इसकी सुरक्षा विश्वसनीयता अत्यंत उच्च है। एन्क्रिप्शन और डिक्रिप्शन प्रोसेसिंग की गति तेज है। नुकसान:\nसार्वजनिक कुंजी (पब्लिक की) का आकार बहुत विशाल है (यह कई मेगाबाइट तक हो सकता है)। इसलिए, इसे सीमित संचार बैंडविड्थ और मेमोरी (जैसे TLS हैंडशेक) वाले वातावरण में उपयोग करना मुश्किल है। NIST द्वारा PQC मानकीकरण के नवीनतम रुझान यूएस नेशनल इंस्टीट्यूट ऑफ स्टैंडर्ड एंड टेक्नोलॉजी (NIST) ने 2016 में दुनिया भर से अगली पीढ़ी के पोस्ट-क्वांटम क्रिप्टोग्राफी एल्गोरिदम के लिए सार्वजनिक आह्वान शुरू किया और कई वर्षों तक कड़े मूल्यांकन और राउंड आयोजित किए हैं।\n2024 में, NIST ने अंततः निम्नलिखित तीन एल्गोरिदम को आधिकारिक संघीय सूचना प्रसंस्करण मानकों (FIPS) के रूप में घोषित किया। इसने दुनिया भर के संगठनों के लिए उत्पादन वातावरण में कार्यान्वयन शुरू करने के लिए एक ठोस आधार प्रदान किया है।\nस्थापित FIPS मानक (2024) FIPS 203: ML-KEM (पूर्व नाम: CRYSTALS-Kyber)\nअनुप्रयोग: की एनकैप्सुलेशन मैकेनिज्म (KEM) / एन्क्रिप्शन और की शेयरिंग आधार तकनीक: लैटिस क्रिप्टोग्राफी (Module-LWE) विशेषताएं: की (key) के आकार और गति के बीच बहुत अच्छा संतुलन है, और यह वेब संचार (TLS) और सुरक्षित मैसेजिंग ऐप्स जैसे सामान्य इंटरनेट अनुप्रयोगों के लिए डिफ़ॉल्ट PQC की शेयरिंग के रूप में कार्य करता है। FIPS 204: ML-DSA (पूर्व नाम: CRYSTALS-Dilithium)\nअनुप्रयोग: डिजिटल सिग्नेचर आधार तकनीक: लैटिस क्रिप्टोग्राफी (Module-LWE) विशेषताएं: डिजिटल सिग्नेचर के लिए प्रमुख मानक। यह कुशल प्रसंस्करण में सक्षम है और सॉफ़्टवेयर सिग्नेचर और दस्तावेज़ प्रमाणीकरण जैसे सभी इलेक्ट्रॉनिक हस्ताक्षर अनुप्रयोगों के लिए नया मानक होगा। FIPS 205: SLH-DSA (पूर्व नाम: SPHINCS+)\nअनुप्रयोग: डिजिटल सिग्नेचर आधार तकनीक: हैश-आधारित क्रिप्टोग्राफी (स्टेटलेस) विशेषताएं: यह इस अवांछित स्थिति में एक बैकअप के रूप में कार्य करता है कि भविष्य में लैटिस क्रिप्टोग्राफी में कोई भेद्यता पाई जाए, इसलिए यह एक अत्यंत महत्वपूर्ण भूमिका निभाता है। सिग्नेचर का आकार बड़ा होता है, लेकिन यह उन अनुप्रयोगों के लिए उपयुक्त है जहाँ दीर्घकालिक विश्वसनीयता की आवश्यकता होती है। विविधता के लिए आगे की खोज हालाँकि NIST ने प्रारंभिक मानकीकरण प्रक्रिया पूरी कर ली है, लेकिन यह और अधिक एल्गोरिदम खोजना जारी रखे हुए है। विशेष रूप से, चूँकि मानक \u0026ldquo;लैटिस क्रिप्टोग्राफी\u0026rdquo; की ओर झुके हुए हैं, एल्गोरिदम विविधता (Crypto Diversity) सुनिश्चित करना महत्वपूर्ण माना जाता है। कोड-आधारित क्रिप्टोग्राफी का मूल्यांकन की शेयरिंग के लिए बैकअप मानक के रूप में किया जा रहा है, और भविष्य में PQC की नींव और भी मजबूत हो जाएगी।\nPQC माइग्रेशन परिदृश्य और चुनौतियाँ: \u0026ldquo;क्रिप्टो-एजिलिटी\u0026rdquo; का महत्व NIST से आधिकारिक मानकों के जारी होने के साथ, दुनिया भर की सरकारी एजेंसियां, वित्तीय संस्थान और प्रौद्योगिकी कंपनियां मौजूदा RSA/ECC से PQC की ओर माइग्रेशन (स्थानांतरण) में तेजी ला रही हैं। NSA (यूएस नेशनल सिक्योरिटी एजेंसी) के दिशानिर्देश भी माइग्रेशन के शीघ्र पूरा होने की सलाह देते हैं।\nहाइब्रिड दृष्टिकोण अपनाना चूँकि PQC एल्गोरिदम नए हैं, इसलिए उन्होंने क्लासिकल क्रिप्टोग्राफी की तुलना में \u0026ldquo;समय की कसौटी\u0026rdquo; का सामना नहीं किया है। कार्यान्वयन में छिपे बग और नई हमले की तकनीकों के खोजे जाने के जोखिम को ध्यान में रखते हुए, संक्रमण काल के दौरान एक \u0026ldquo;हाइब्रिड विधि\u0026rdquo; (Hybrid method) की सिफारिश की जाती है। यह की एक्सचेंज (key exchange) करने के लिए एक स्थापित मौजूदा क्रिप्टोग्राफी (जैसे ECDHE) और एक नए PQC (जैसे ML-KEM) को संयोजित करने की एक विधि है। वर्तमान में, प्रमुख ब्राउज़रों और क्लाउड सेवाओं में इस पद्धति की परीक्षण-प्रस्तुति तेजी से आगे बढ़ रही है।\nक्रिप्टो-एजिलिटी (क्रिप्टोग्राफिक चपलता) को प्राप्त करना कंपनियों और सिस्टम डेवलपर्स को भविष्य में जिस चीज के बारे में सबसे ज्यादा जागरूक होना चाहिए, वह है \u0026ldquo;क्रिप्टो-एजिलिटी\u0026rdquo; (Crypto-Agility) सुनिश्चित करना। यदि भविष्य में किसी एल्गोरिदम में कोई दोष पाया जाता है বাধ या कोई नया मानक सामने आता है, तो एक लचीले आर्किटेक्चर डिज़ाइन का होना आवश्यक है जो सिस्टम को रोके बिना क्रिप्टोग्राफ़िक एल्गोरिदम को तुरंत बदल और अपडेट कर सके।\nएक क्रिप्टोग्राफ़िक इन्वेंट्री (CBOM: Cryptography Bill of Materials) बनाना जो सटीक रूप से पहचानती है कि आपके सिस्टम के भीतर \u0026ldquo;कहाँ\u0026rdquo;, \u0026ldquo;कौन सी क्रिप्टोग्राफी\u0026rdquo;, और \u0026ldquo;किस उद्देश्य से\u0026rdquo; उपयोग की जा रही है, PQC माइग्रेशन की दिशा में पहला महत्वपूर्ण कदम है।\nनिष्कर्ष: आने वाले \u0026ldquo;Q-Day\u0026rdquo; की तैयारी क्वांटम कंप्यूटर का विकास जहाँ एक ओर मानवता को बड़े लाभ पहुँचाता है, वहीं दूसरी ओर यह क्रिप्टोग्राफिक सुरक्षा के लिए सबसे बड़ा खतरा भी है, जो हमारे वर्तमान डिजिटल समाज का आधार है। पोस्ट-क्वांटम क्रिप्टोग्राफी (PQC) अब कोई \u0026ldquo;सुदूर भविष्य का शोध विषय\u0026rdquo; नहीं है। NIST द्वारा FIPS मानकों को जारी करने के मील के पत्थर के साथ, PQC पूरे पैमाने पर \u0026ldquo;कार्यान्वयन और माइग्रेशन\u0026rdquo; चरण में प्रवेश कर गया है।\n\u0026ldquo;Harvest Now, Decrypt Later\u0026rdquo; के खतरे को ध्यान में रखते हुए, PQC में माइग्रेशन उच्च-गोपनीयता वाले डेटा को संभालने वाले सभी संगठनों के लिए \u0026ldquo;अभी\u0026rdquo; निपटने के लिए एक सर्वोच्च प्राथमिकता है। आइए अगली पीढ़ी की क्रिप्टोग्राफ़िक तकनीक को गहराई से समझकर और सिस्टम की क्रिप्टो-एजिलिटी को बढ़ाकर आने वाले क्वांटम कंप्यूटर युग को सुरक्षित रूप से पार करें।\n","date":"2026-09-05T22:09:22+09:00","image":"http://kenji.blog/p/post-quantum-cryptography/post_quantum_cryptography_1788613735417_hu9d405d830ed3e56e9e703ab601cf6c0a_1143219_120x120_fill_q75_box_smart1.jpg","permalink":"http://kenji.blog/hi/p/post-quantum-cryptography/","title":"【PQC】क्वांटम कंप्यूटर युग की अगली पीढ़ी की क्रिप्टोग्राफी \"पोस्ट-क्वांटम क्रिप्टोग्राफी\" का पूरा अवलोकन"},{"content":"परिचय: क्रिप्टोग्राफी और क्वांटम कंप्यूटर का प्रतिच्छेदन आधुनिक इंटरनेट समाज में, \u0026ldquo;सार्वजनिक-कुंजी क्रिप्टोग्राफी\u0026rdquo; (Public-key cryptography) संचार की गोपनीयता की रक्षा के लिए नींव के रूप में कार्य करती है। उनमें से सबसे प्रसिद्ध \u0026ldquo;RSA एन्क्रिप्शन\u0026rdquo; है, जिसे 1977 में रॉन रिवेस्ट, आदि शमीर और लियोनार्ड एडलमैन द्वारा विकसित किया गया था। ऑनलाइन शॉपिंग भुगतान, वेबसाइट ब्राउज़िंग (HTTPS) और हर दिन हमारे द्वारा उपयोग किए जाने वाले ईमेल भेजने और प्राप्त करने से लेकर, RSA एन्क्रिप्शन इंटरनेट बुनियादी ढांचे के दिल के रूप में कार्य करता है।\nहालाँकि, \u0026ldquo;क्वांटम कंप्यूटर\u0026rdquo; के आगमन के साथ, यह बताया गया है कि इस सुरक्षा को मूल रूप से उखाड़ फेंका जा सकता है। मीडिया में अक्सर सनसनीखेज सुर्खियां होती हैं जैसे \u0026ldquo;एक बार क्वांटम कंप्यूटर पूरा हो जाने पर, दुनिया भर के पासवर्ड और एन्क्रिप्शन सेकंडों में डिक्रिप्ट हो जाएंगे।\u0026rdquo; क्या वह सच में सच है?\nइस लेख में, हम GNFS (जनरल नंबर फील्ड सीव), एक क्लासिकल डिक्रिप्शन विधि, और \u0026ldquo;शोर का एल्गोरिदम\u0026rdquo; (Shor\u0026rsquo;s Algorithm) के तंत्र में गहराई से उतरेंगे, जो क्वांटम कंप्यूटर का उपयोग करके एक निश्चित डिक्रिप्शन एल्गोरिदम है। हम क्वांटम फूरियर ट्रांसफॉर्म और अवधि खोज जैसी उन्नत अवधारणाओं को आसानी से समझने वाले तरीके से समझाएंगे, और वर्तमान NISQ (Noisy Intermediate-Scale Quantum) युग में क्वांटम हार्डवेयर की वर्तमान स्थिति और RSA-2048 को क्रैक करने के लिए आवश्यक बाधाओं की विस्तार से जांच करेंगे।\nRSA एन्क्रिप्शन का आधार: अभाज्य गुणनखंडन की कठिनाई RSA एन्क्रिप्शन की सुरक्षा गणित में एक अत्यंत सरल विषमता (asymmetry) पर निर्भर करती है। तथ्य यह है कि \u0026ldquo;दो विशाल अभाज्य संख्याओं (prime numbers) को गुणा करना आसान है, लेकिन परिणाम (समग्र संख्या) से मूल दो अभाज्य संख्याओं को खोजना (अभाज्य गुणनखंडन) बेहद मुश्किल है।\u0026rdquo;\nउदाहरण के लिए, मान लीजिए कि हमारे पास दो अभाज्य संख्याएं हैं $ p = 61 $ और $ q = 53 $। इस गुणा $ N = p \\times q = 3233 $ की गणना करना तात्कालिक है। हालाँकि, यदि आपको केवल संख्या \u0026ldquo;3233\u0026rdquo; दी गई है और पूछा गया है \u0026ldquo;यह किन अभाज्य संख्याओं का गुणनफल है?\u0026rdquo;, तो संख्या के बड़े होने पर गणना की मात्रा विस्फोटक रूप से बढ़ जाती है।\nवर्तमान मुख्यधारा RSA-2048 में, 2048 बिट्स की कुंजी लंबाई का उपयोग किया जाता है, जो दशमलव में लगभग 617 अंकों की एक विशाल समग्र संख्या $ N $ है। यदि इस $ N $ का अभाज्य गुणनखंडन किया जा सकता है, तो एन्क्रिप्शन लगभग टूट गया है।\nक्लासिकल कंप्यूटरों द्वारा चुनौती: GNFS (सामान्य संख्या क्षेत्र चलनी) गणितज्ञों और क्रिप्टोग्राफरों ने अभाज्य गुणनखंडन समस्या को हल करने के लिए वर्षों से विभिन्न एल्गोरिदम विकसित किए हैं। उनमें से, वर्तमान में क्लासिकल कंप्यूटरों पर सबसे तेज़ सामान्य संख्या क्षेत्र चलनी (GNFS: General Number Field Sieve) माना जाता है।\nGNFS एक बड़ी संख्या $ N $ का गुणनखंडन करने के लिए पूर्णांक वलय में गणना को अधिक अमूर्त बीजगणितीय संख्या क्षेत्र (Number Field) में विस्तारित करके विश्लेषण करने की एक विधि है। मोटे तौर पर प्रक्रिया इस प्रकार है:\nबहुपद का चयन : उचित घात और गुणांक वाला एक बहुपद $ f(x) $ खोजें जिसका मूल $ N $ हो। डेटा संग्रह (छानना) : परिमेय और बीजगणितीय संख्या क्षेत्रों पर बड़ी संख्या में ऐसे जोड़े खोजें जिन्हें छोटे अभाज्य (smooth numbers) में तोड़ा जा सके। इस प्रक्रिया को \u0026ldquo;छानना\u0026rdquo; (sieving) कहा जाता है और इसमें सबसे अधिक समय लगता है। मैट्रिक्स जनरेशन और रिडक्शन : एकत्रित संबंधों के आधार पर एक विशाल विरल मैट्रिक्स (Sparse matrix) उत्पन्न करें, और रैखिक बीजगणित विधियों (जैसे ब्लॉक लैंज़ोस विधि) का उपयोग करके समाधान खोजें। वर्गमूल की गणना : अंत में, बीजगणितीय संख्या क्षेत्र पर वर्गमूल की गणना करें और $ N $ के गुणनखंड (अभाज्य गुणनखंड) प्राप्त करें। GNFS की जटिलता का मूल्यांकन एसिम्प्टोटिक रूप से $ O(\\exp((\\sqrt[3]{\\frac{64}{9}} + o(1)) (\\log N)^{\\frac{1}{3}} (\\log \\log N)^{\\frac{2}{3}})) $ के रूप में किया जाता है। इसे \u0026ldquo;उप-घातीय\u0026rdquo; (Sub-exponential) समय जटिलता कहा जाता है। यद्यपि यह घातीय समय (Exponential time) से तेज़ है, यह बहुपद समय (Polynomial time) से बहुत धीमा है।\nवास्तव में, 2020 में, शोधकर्ताओं की एक अंतरराष्ट्रीय टीम ने GNFS का उपयोग करके RSA-250 (एक 829-बिट, 250-अंकीय समग्र संख्या) का सफलतापूर्वक गुणनखंडन किया। इस गणना में दुनिया भर के कंप्यूटिंग संसाधनों का उपयोग करते हुए लगभग 2700 CPU कोर-वर्ष का खगोलीय गणना समय लगा। हालाँकि, जब बात 2048 बिट्स की आती है, तो यह कहा जाता है कि आवश्यक गणना ब्रह्मांड के जीवनकाल के खरबों गुना तक बढ़ जाएगी, जिससे वर्तमान सुपरकंप्यूटरों को कितना भी समानांतर चलाया जाए, शास्त्रीय तरीकों से यथार्थवादी समय के भीतर इसे क्रैक करना असंभव हो जाता है।\nक्वांटम कंप्यूटर का ट्रम्प कार्ड: शोर का एल्गोरिदम यहीं पर \u0026ldquo;शोर का एल्गोरिदम\u0026rdquo; (Shor\u0026rsquo;s Algorithm), जिसे 1994 में पीटर शोर द्वारा प्रस्तुत किया गया था, सामने आता है। यह एल्गोरिदम क्रांतिकारी था क्योंकि यह क्वांटम कंप्यूटर पर बहुपद समय ( $ O((\\log N)^3) $ ) में अभाज्य गुणनखंडन समस्या को हल कर सकता था। उप-घातीय समय और बहुपद समय के बीच का अंतर निर्णायक है, जिसका अर्थ है कि सिद्धांत रूप में, यदि हम क्वांटम कंप्यूटर का उपयोग करते हैं, तो RSA एन्क्रिप्शन पूरी तरह से नष्ट हो जाएगा।\nशोर के एल्गोरिदम का समग्र प्रवाह 1 2 3 4 5 6 7 8 9 10 graph TD A[उस संख्या N को इनपुट करें जिसका आप गुणनखंड करना चाहते हैं] --\u0026gt; B[एक यादृच्छिक पूर्णांक a चुनें] B --\u0026gt; C{a और N का\u0026lt;br\u0026gt;महतम समापवर्तक (GCD)} C --\u0026gt;|1 से बड़ा| D[सौभाग्य से एक अभाज्य गुणनखंड मिला!] C --\u0026gt;|1 सह-अभाज्य| E[क्वांटम कंप्यूटर की बारी] E --\u0026gt; F[फलन f_x = a^x mod N की\u0026lt;br\u0026gt;अवधि r को क्वांटम फूरियर ट्रांसफॉर्म से खोजें] F --\u0026gt; G{अवधि r सम है और\u0026lt;br\u0026gt;a^r/2 ≢ -1 mod N} G --\u0026gt;|हाँ| H[महतम समापवर्तक gcd_a^r/2 ± 1, N की गणना करें] H --\u0026gt; I((अभाज्य गुणनखंडन सफल!)) G --\u0026gt;|नहीं| B सीधे अभाज्य गुणनखंडन समस्या को हल करने के बजाय, शोर का एल्गोरिदम इसे संख्या सिद्धांत प्रमेयों का उपयोग करके \u0026ldquo;अवधि खोज समस्या\u0026rdquo; (Period Finding Problem) नामक एक अन्य समस्या में परिवर्तित करता है, और इसे उच्च गति से हल करने के लिए क्वांटम कंप्यूटर की विशेषताओं का उपयोग करता है।\nचरण 1: अभाज्य गुणनखंडन से अवधि खोज समस्या में कमी (शास्त्रीय प्रसंस्करण) एल्गोरिदम का पहला चरण क्लासिकल कंप्यूटर पर किया जाता है। उस संख्या $ N $ के लिए जिसका आप गुणनखंड करना चाहते हैं, एक यादृच्छिक पूर्णांक $ a $ ( $ 1 \u003c a \u003c N $ ) चुनें जो $ N $ (जिसका सबसे बड़ा सामान्य भाजक 1 है) का सह-अभाज्य (coprime) है। यदि, संयोग से, सबसे बड़ा सामान्य भाजक 1 नहीं है, तो उस समय पाया गया सामान्य भाजक $ N $ का एक अभाज्य गुणनखंड है, इसलिए डिक्रिप्शन पूरा हो गया है, लेकिन इसकी संभावना बहुत कम है।\nइसके बाद, निम्नलिखित मॉड्यूलर समीकरणों के अनुक्रम पर विचार करें। $ f(x) = a^x \\pmod N $\nयदि आप इस फ़ंक्शन $ f(x) $ में $ x = 1, 2, 3, \\dots $ डालते हैं, तो मान यादृच्छिक लग सकते हैं, लेकिन चूंकि गणना एक सीमित सीमा के भीतर की जाती है, यह हमेशा किसी बिंदु पर अपने मूल मान पर वापस आ जाएगी और उसी अनुक्रम को दोहराएगी। इस पुनरावृत्ति की अवधि को $ r $ कहा जाता है। दूसरे शब्दों में, न्यूनतम धनात्मक पूर्णांक $ r $ खोजना ताकि $ a^r \\equiv 1 \\pmod N $ हो, यही \u0026ldquo;अवधि खोज समस्या\u0026rdquo; है।\nयदि यह अवधि $ r $ मिल जाती है, और $ r $ सम है, तो $ a^r - 1 \\equiv 0 \\pmod N $, और गुणनखंडन सूत्र का उपयोग करके इसे $ (a^{r/2} - 1)(a^{r/2} + 1) \\equiv 0 \\pmod N $ में बदला जा सकता है। यहाँ से, यूक्लिडियन एल्गोरिथ्म (Euclidean algorithm) का उपयोग करके $ N $ और $ a^{r/2} \\pm 1 $ के सबसे बड़े सामान्य भाजक की गणना करके, $ N $ के अभाज्य गुणनखंडों को बहुत अधिक संभावना के साथ प्राप्त किया जा सकता है।\nक्लासिक कंप्यूटर के साथ अवधि $ r $ खोजने के लिए, अंततः घातीय चरणों की आवश्यकता होती है और इसे तेज नहीं किया जा सकता है। हालाँकि, क्वांटम कंप्यूटर के साथ, यह अवधि $ r $ तुरंत (बहुपद समय में) पाई जा सकती है।\nचरण 2: क्वांटम स्थिति की तैयारी और सुपरपोजिशन यहीं से क्वांटम कंप्यूटर काम आते हैं। क्वांटम कंप्यूटर \u0026ldquo;क्यूबिट्स\u0026rdquo; (Qubits) का उपयोग करते हैं जिनमें एक ही समय में \u0026ldquo;0\u0026rdquo; और \u0026ldquo;1\u0026rdquo; दोनों की स्थिति हो सकती है। शोर के एल्गोरिदम में, दो रजिस्टर तैयार किए जाते हैं: इनपुट को स्टोर करने के लिए एक रजिस्टर (पहला रजिस्टर) और गणना परिणाम को स्टोर करने के लिए एक रजिस्टर (दूसरा रजिस्टर)।\nसबसे पहले, एक क्वांटम गेट ऑपरेशन जिसे हैडमार्ड गेट (Hadamard gate) कहा जाता है, पहले रजिस्टर में सभी क्यूबिट्स पर लागू किया जाता है। यह पहले रजिस्टर को सभी संभावित $ x $ मानों ( $ 0 $ से $ 2^n-1 $ तक, जहाँ $ n $ पर्याप्त रूप से बड़ी संख्या में बिट्स है) के समान सुपरपोजिशन (uniform superposition) स्थिति में लाता है।\nदूसरे शब्दों में, अनगिनत इनपुट मान जैसे $ x=0, 1, 2, 3, \\dots $ क्वांटम कंप्यूटर के अंदर एक ही समय में समानांतर में मौजूद होते हैं।\nचरण 3: क्वांटम मॉड्यूलर एक्सपोनेंशिएशन (Quantum Modular Exponentiation) इसके बाद, पहले रजिस्टर की सुपरपोजिशन स्थिति को इनपुट के रूप में उपयोग करते हुए, $ f(x) = a^x \\pmod N $ की गणना की जाती है और परिणाम दूसरे रजिस्टर में संग्रहीत किया जाता है। चूँकि यह गणना क्वांटम सर्किट पर एकात्मक परिवर्तन (unitary transformation) के रूप में की जाती है, सभी $ x $ के लिए $ f(x) $ की गणना \u0026ldquo;एक साथ और समानांतर में (क्वांटम समानता)\u0026rdquo; की जाती है, जबकि सुपरपोजिशन को बनाए रखा जाता है।\nइस बिंदु पर संपूर्ण क्वांटम प्रणाली का स्थान राज्य के एक विशाल सुपरपोजिशन में है: $ |x, a^x \\bmod N\\rangle $\nहालाँकि, यदि हम केवल यहाँ दूसरे रजिस्टर को मापते (निरीक्षण करते) हैं, तो केवल एक यादृच्छिक $ a^x \\bmod N $ मान संभाव्य रूप से चुना जाएगा, और पहले रजिस्टर का $ x $ भी इसके संयोजन में निर्धारित किया जाएगा। यह शास्त्रीय कंप्यूटर पर एक बार गणना करने के समान है, और अवधि $ r $ नहीं पाई जा सकती है।\nक्वांटम यांत्रिकी के नियमों के तहत, सुपरपोज़्ड अवस्था के अंदर सीधे देखना संभव नहीं है। तो हम पूरी \u0026ldquo;अवधि\u0026rdquo; के बारे में वैश्विक जानकारी कैसे निकाल सकते हैं?\nचरण 4: क्वांटम फूरियर ट्रांसफॉर्म (QFT: Quantum Fourier Transform) इस दीवार को तोड़ने वाले शोर के एल्गोरिदम का वास्तविक मूल्य पहले रजिस्टर में क्वांटम फूरियर ट्रांसफॉर्म (QFT) का अनुप्रयोग है।\nमापने से पहले, फलन $ f(x) $ की तरंग प्रकृति का विश्लेषण करें। मान लीजिए कि हम दूसरे रजिस्टर का निरीक्षण करते हैं। मान लीजिए कि एक निश्चित मान $ y $ प्राप्त होता है। तब, पहले रजिस्टर की स्थिति \u0026ldquo;सभी $ x $ के सुपरपोजिशन में ढह जाती है जैसे कि $ a^x \\pmod N = y $ \u0026ldquo;। इस $ x $ के मान $ x_0, x_0 + r, x_0 + 2r, x_0 + 3r, \\dots $ होंगे, जो अवधि $ r $ (एक प्रकार का कंघी जैसा संभाव्यता आयाम वितरण) के अंतराल पर अलग-अलग व्यवस्थित होते हैं।\nइस अवस्था में क्वांटम फूरियर ट्रांसफॉर्म (QFT) लागू करें। जिस तरह एक क्लासिकल असतत (discrete) फूरियर ट्रांसफॉर्म समय-डोमेन सिग्नल को आवृत्ति डोमेन में परिवर्तित करता है, QFT क्वांटम अवस्थाओं के संभाव्यता आयामों में हस्तक्षेप (interference) का कारण बनता है।\nजब QFT लागू किया जाता है, क्वांटम हस्तक्षेप प्रभाव के कारण, गलत उत्तरों की संभावनाएं जो अवधि $ r $ (चरण से बाहर) के साथ प्रतिध्वनित नहीं होती हैं, एक-दूसरे को रद्द कर देती हैं और शून्य (विनाशकारी हस्तक्षेप) तक पहुंच जाती हैं, और केवल अवधि $ r $ के बारे में जानकारी वाले सही उत्तर की संभावना बढ़ जाती है (रचनात्मक हस्तक्षेप)।\nचरण 5: मापन और निरंतर अंश विस्तार (शास्त्रीय पोस्ट-प्रोसेसिंग) QFT को लागू करने के बाद पहले रजिस्टर को मापने से एक पूर्णांक $ c $ प्राप्त करने की बहुत अधिक संभावना होती है जो $ c \\approx \\frac{j \\cdot 2^n}{r} $ के करीब है (जहाँ $ j $ एक अज्ञात पूर्णांक है और $ 2^n $ रजिस्टर का आकार है)।\nयह माप परिणाम $ c $ एक क्लासिकल कंप्यूटर पर लौटाया जाता है, और भिन्न $ \\frac{c}{2^n} \\approx \\frac{j}{r} $ बनाया जाता है। फिर, गणितीय विधि \u0026ldquo;निरंतर अंश विस्तार\u0026rdquo; (Continued fraction expansion) का उपयोग करके अनुमानित मूल्य की गणना करके, हर (denominator) में अवधि $ r $ को शानदार ढंग से सामने लाया जा सकता है।\nएक बार $ r $ ज्ञात हो जाने के बाद, हम चरण 1 के सूत्र का उपयोग करके $ N $ के अभाज्य गुणनखंडों की गणना कर सकते हैं, और RSA एन्क्रिप्शन पूरी तरह से डिक्रिप्ट हो जाएगा।\nवर्तमान क्वांटम कंप्यूटरों (NISQ) की क्षमताएं और चुनौतियाँ सैद्धांतिक रूप से, शोर का एल्गोरिदम सही है, लेकिन अगर पूछा जाए, \u0026ldquo;क्या कल RSA एन्क्रिप्शन टूट जाएगा?\u0026rdquo; तो उत्तर स्पष्ट रूप से \u0026ldquo;नहीं\u0026rdquo; है। इसका कारण वर्तमान क्वांटम कंप्यूटर हार्डवेयर तकनीक की सीमाएं हैं।\nNISQ (Noisy Intermediate-Scale Quantum) युग हम वर्तमान में \u0026ldquo;NISQ\u0026rdquo; नामक युग में हैं। NISQ उपकरणों में दसियों से सैकड़ों भौतिक क्यूबिट्स होते हैं, लेकिन शोर (noise) के प्रति बेहद संवेदनशील होते हैं।\nक्यूबिट्स बाहरी वातावरण जैसे गर्मी और विद्युत चुम्बकीय तरंगों के प्रभाव के प्रति संवेदनशील होते हैं, और \u0026ldquo;डिकोहेरेंस\u0026rdquo; (क्वांटम उलझाव का नुकसान) और गेट ऑपरेशन के दौरान \u0026ldquo;गेट त्रुटियां\u0026rdquo; अक्सर होती हैं, जिससे क्वांटम स्थिति नष्ट हो जाती है। जब शोर के एल्गोरिदम जैसे बहुत गहरे (बड़ी संख्या में गणना चरणों के साथ) क्वांटम सर्किट को निष्पादित करने का प्रयास किया जाता है, तो गणना के दौरान त्रुटियां जमा हो जाती हैं, और अंतिम आउटपुट पूर्ण शोर बन जाता है जिसका कोई अर्थ नहीं होता है।\nभौतिक क्यूबिट्स और तार्किक क्यूबिट्स इस त्रुटि समस्या को हल करने के लिए \u0026ldquo;क्वांटम त्रुटि सुधार\u0026rdquo; (Quantum Error Correction) आवश्यक है। त्रुटि सुधार कोड का उपयोग शास्त्रीय कंप्यूटरों में भी किया जाता है, लेकिन \u0026ldquo;क्वांटम नो-क्लोनिंग प्रमेय\u0026rdquo; के कारण, जो क्वांटम अवस्थाओं की नकल को रोकता है, क्वांटम त्रुटि सुधार बहुत जटिल है।\nक्वांटम त्रुटि सुधार में, \u0026ldquo;सतह कोड\u0026rdquo; (Surface Code) जैसी तकनीकों का उपयोग बड़ी संख्या में शोर वाले \u0026ldquo;भौतिक क्यूबिट्स\u0026rdquo; को संयोजित करने के लिए किया जाता है ताकि त्रुटियों के बिना एक आदर्श \u0026ldquo;तार्किक क्यूबिट\u0026rdquo; (Logical qubit) बनाया जा सके।\nवर्तमान त्रुटि दरों को देखते हुए, यह अनुमान लगाया गया है कि एक तार्किक क्यूबिट बनाने के लिए लगभग 1,000 से 10,000 भौतिक क्यूबिट्स की आवश्यकता होगी। इसे \u0026ldquo;त्रुटि सुधार ओवरहेड\u0026rdquo; कहा जाता है।\nRSA-2048 को नष्ट करने के लिए किन संसाधनों की आवश्यकता है? तो RSA-2048 को क्रैक करने के लिए शोर के एल्गोरिदम को चलाने के लिए वास्तव में कितने संसाधनों की आवश्यकता है?\nक्रेग गिडनी (Google) और मार्टिन एकेरा द्वारा 2021 के एक पेपर में ग्राउंडब्रेकिंग संसाधन अनुमान के अनुसार, अनुकूलित शोर के एल्गोरिदम का उपयोग करके और सतह कोड का उपयोग करके त्रुटि सुधार करने के लिए निम्नलिखित संसाधनों की आवश्यकता होगी:\nतार्किक क्यूबिट्स की संख्या : लगभग 4,096 भौतिक क्यूबिट्स की संख्या : लगभग 20 मिलियन (त्रुटि दर $10^{-3}$ मानकर) गणना का समय : लगभग 8 घंटे (लाखों से अरबों भौतिक गेट संचालन की आवश्यकता है) इसकी तुलना में, वर्तमान क्वांटम हार्डवेयर की क्या स्थिति है? सुपरकंडक्टिंग क्वांटम प्रोसेसर \u0026ldquo;कोंडोर\u0026rdquo;, जिसकी घोषणा 2023 के अंत में IBM द्वारा की गई थी, में 1,121 क्यूबिट्स हैं। इसके अलावा, तार्किक क्यूबिट्स के निर्माण पर ग्राउंडब्रेकिंग शोध (जैसे हार्वर्ड यूनिवर्सिटी और QuEra द्वारा तटस्थ परमाणु क्वांटम कंप्यूटर का उपयोग करके 48 तार्किक क्यूबिट्स का निर्माण) भी सामने आया है, लेकिन हम अभी तक उस स्तर पर नहीं हैं जहाँ \u0026ldquo;बिना शोर के सही गणना\u0026rdquo; लंबी अवधि के लिए लगातार निष्पादित की जा सके।\nहजारों भौतिक क्यूबिट्स से 20 मिलियन व्यावहारिक भौतिक क्यूबिट्स (जो परस्पर जुड़े हुए हैं, क्रायोजेनिक तापमान पर स्थिर रूप से काम करते हैं, और अति-उच्च गति पर नियंत्रण संकेतों को संसाधित कर सकते हैं) तक स्केल करने के लिए, इंजीनियरिंग में भारी बाधाएं (वायरिंग की समस्याएं, शीतलन क्षमता की सीमाएं, और नियंत्रण इलेक्ट्रॉनिक्स का विस्तार) मौजूद हैं। कई विशेषज्ञों का अनुमान है कि \u0026ldquo;दोष-सहिष्णु (Fault-tolerant) क्वांटम कंप्यूटर (FTQC)\u0026rdquo; को साकार करने में कम से कम 10 से 30 वर्ष या उससे अधिक का समय लगेगा जो RSA-2048 को डिक्रिप्ट कर सकता है।\n\u0026ldquo;Store Now, Decrypt Later\u0026rdquo; का बढ़ता खतरा और PQC की शुरुआत यह सोचना जल्दबाजी होगी कि \u0026ldquo;हम सुरक्षित हैं क्योंकि इसमें अभी 10 से अधिक साल लगेंगे।\u0026rdquo; वर्तमान में, ऐसा डेटा है जिसे राष्ट्रीय रहस्य, चिकित्सा डेटा और दीर्घकालिक बुनियादी ढांचे के डिजाइन जैसे दशकों तक गुप्त रखा जाना चाहिए।\nयहाँ जो चिंता का विषय है वह \u0026ldquo;अभी स्टोर करें, बाद में डिक्रिप्ट करें\u0026rdquo; (Store Now, Decrypt Later) नामक हमला विधि है। दुर्भावनापूर्ण राष्ट्र और संगठन वर्तमान RSA या ECC (एलिप्टिक कर्व क्रिप्टोग्राफी) के साथ एन्क्रिप्ट किए गए सभी संचार डेटा को इंटरसेप्ट करते हैं और इसे स्टोरेज में सहेजते हैं। फिर, 10 या 20 साल बाद, जिस क्षण एक शक्तिशाली क्वांटम कंप्यूटर पूरा हो जाता है, वे शोर के एल्गोरिदम का उपयोग करके सभी पिछले डेटा को डिक्रिप्ट करते हैं और रहस्यों को उजागर करते हैं।\nइस समय अंतराल के खतरे का मुकाबला करने के लिए, NIST (राष्ट्रीय मानक और प्रौद्योगिकी संस्थान) के नेतृत्व में, \u0026ldquo;पोस्ट-क्वांटम क्रिप्टोग्राफी\u0026rdquo; (PQC: Post-Quantum Cryptography) के मानकीकरण की प्रक्रिया तेज गति से आगे बढ़ रही है।\nPQC एक नया एन्क्रिप्शन एल्गोरिदम है जो गणितीय समस्याओं पर आधारित है जिन्हें क्वांटम कंप्यूटर का उपयोग करके हल करना मुश्किल है (यानी, शोर का एल्गोरिदम लागू नहीं किया जा सकता है)। मुख्य दृष्टिकोण इस प्रकार हैं:\nलैटिस-आधारित क्रिप्टोग्राफी (Lattice-based cryptography) : LWE (Learning with Errors) समस्या पर आधारित है। NIST के मानकीकरण में मुख्यधारा (Kyber, Dilithium, आदि)। कोड-आधारित क्रिप्टोग्राफी (Code-based cryptography) : त्रुटि-सुधार कोड को डिकोड करने की कठिनाई पर निर्भर करता है। बहुभिन्नरूपी बहुपद क्रिप्टोग्राफी (Multivariate cryptography) : कई चरों के एक साथ द्विघात समीकरणों को हल करने की कठिनाई पर निर्भर करता है। हैश-आधारित हस्ताक्षर (Hash-based signatures) : डिजिटल हस्ताक्षर जो पूरी तरह से हैश फ़ंक्शंस की सुरक्षा पर निर्भर करते हैं। Google Chrome और Apple के iMessage जैसे प्रमुख सॉफ़्टवेयर और प्लेटफ़ॉर्म ने पहले ही PQC का कार्यान्वयन परीक्षण और हाइब्रिड कार्यान्वयन शुरू कर दिया है।\nनिष्कर्ष क्वांटम कंप्यूटर विज्ञान कथा की काल्पनिक दुनिया से वास्तविक इंजीनियरिंग चुनौतियों की ओर बढ़ रहे हैं। शोर का एल्गोरिदम मानवता की एक महान बौद्धिक उपलब्धि है जो गणित और क्वांटम यांत्रिकी को जोड़ती है, लेकिन साथ ही, इसमें हमारे डिजिटल समाज की नींव को हिला देने वाली \u0026ldquo;विनाशकारी शक्ति\u0026rdquo; है।\nRSA एन्क्रिप्शन कल अचानक अनुपयोगी नहीं हो जाएगा। हालाँकि, क्वांटम प्रौद्योगिकी के विकास और \u0026ldquo;अभी स्टोर करें, बाद में डिक्रिप्ट करें\u0026rdquo; के जोखिमों को देखते हुए, PQC में संक्रमण, क्रिप्टोग्राफी के इतिहास में एक बड़े पैमाने पर प्रवासन (migration), पहले ही शुरू हो चुका है। हम वर्तमान में सूचना सुरक्षा में एक प्रतिमान बदलाव (paradigm shift) में सबसे आगे गवाह हैं।\n","date":"2026-09-05T22:09:21+09:00","image":"http://kenji.blog/p/shors-algorithm-and-rsa-breaking/quantum_breaking_rsa_1788613722990_huf997c6e55368509d0617b56f68899854_1017504_120x120_fill_q75_box_smart1.jpg","permalink":"http://kenji.blog/hi/p/shors-algorithm-and-rsa-breaking/","title":"क्या क्वांटम कंप्यूटर वास्तव में RSA एन्क्रिप्शन को नष्ट कर देगा? ~ शोर का एल्गोरिदम और वर्तमान स्थिति ~"},{"content":"【संपूर्ण विश्लेषण】C++ में लागू करके सबसे शक्तिशाली क्रिप्टोग्राफी क्रैकिंग एल्गोरिदम \u0026ldquo;GNFS\u0026rdquo; को समझना आधुनिक इंटरनेट का आधार \u0026ldquo;RSA क्रिप्टोग्राफी\u0026rdquo; है। इसकी मजबूती इस गणितीय विश्वास पर निर्भर करती है कि \u0026ldquo;वर्तमान कंप्यूटरों के लिए एक विशाल भाज्य संख्या (composite number) का अभाज्य गुणनखंडन (prime factorization) करना लगभग असंभव है\u0026rdquo;।\nहालाँकि, मानवता ने कभी हार नहीं मानी है। वर्तमान में, क्लासिकल कंप्यूटरों (सामान्य कंप्यूटर, न कि क्वांटम कंप्यूटर) पर विशाल अभाज्य गुणनखंडन करने के लिए ** मानवता का सबसे शक्तिशाली और उन्नत एल्गोरिदम ** मौजूद है। वह है ** \u0026ldquo;सामान्य संख्या क्षेत्र चलनी (GNFS: General Number Field Sieve)\u0026rdquo; ** ।\nइस लेख में, हम इस GNFS के अत्याधुनिक संगणना लॉजिक को C++ (Boost लाइब्रेरी के मल्टीपल-प्रिसीजन इंटीजर boost::multiprecision का उपयोग करके) में सख्ती से मॉडल किए गए कार्यान्वयन कोड को पूरी तरह से प्रकाशित करेंगे, और इसके पीछे \u0026ldquo;बीजीय संख्या सिद्धांत (Algebraic Number Theory)\u0026rdquo; की गहराइयों को विस्तार से समझाएंगे।\nकृपया स्रोत कोड के साथ गणित के रहस्य और कंप्यूटर विज्ञान की उस शक्ति का आनंद लें जो इसे मात देती है।\n1. GNFS अत्याधुनिक लॉजिक फ्रेमवर्क (संपूर्ण स्रोत कोड) सबसे पहले, हम इस बार समझाए जाने वाले GNFS के C++ कार्यान्वयन का पूरा दृश्य प्रस्तुत करेंगे। वास्तविक संख्या क्षेत्र चलनी (जैसे CADO-NFS) लाखों पंक्तियों वाला एक विशाल वितरित सिस्टम है, लेकिन यह कोड GNFS को बनाने वाले ** \u0026ldquo;5 आवश्यक पाइपलाइनों (चरणों)\u0026rdquo; ** को निकालता है, उन्हें क्लास के रूप में डिज़ाइन करता है, और गणितीय अर्थ खोए बिना न्यूनतम कॉन्फ़िगरेशन के साथ मॉडल करता है।\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 #include \u0026lt;iostream\u0026gt; #include \u0026lt;vector\u0026gt; #include \u0026lt;cmath\u0026gt; #include \u0026lt;map\u0026gt; #include \u0026lt;set\u0026gt; #include \u0026lt;chrono\u0026gt; #include \u0026lt;boost/multiprecision/cpp_int.hpp\u0026gt; // Boost.Multiprecision के मल्टीपल-प्रिसीजन इंटीजर का उपयोग using namespace boost::multiprecision; // ============================================================================ // [SOTA GNFS] General Number Field Sieve (सामान्य संख्या क्षेत्र चलनी) अत्याधुनिक लॉजिक फ्रेमवर्क // // यह कोड CADO-NFS आदि में उपयोग किए जाने वाले अत्याधुनिक GNFS के 5 पाइपलाइनों को // C++ (Boost) क्लास डिज़ाइन के रूप में सख्ती से मॉडल करता है। // ============================================================================ struct Relation { int64_t a; int64_t b; std::vector\u0026lt;uint32_t\u0026gt; rational_primes; std::vector\u0026lt;uint32_t\u0026gt; algebraic_primes; }; // ============================================================================ // Phase 1: Polynomial Selection (KleinJung का एल्गोरिदम) // ============================================================================ class PolynomialSelector { public: int degree; std::vector\u0026lt;cpp_int\u0026gt; f; // बीजीय पक्ष बहुपद f(x) std::vector\u0026lt;cpp_int\u0026gt; g; // परिमेय पक्ष बहुपद g(x) = x - m cpp_int m; PolynomialSelector(int d) : degree(d) {} // base-m विस्तार के आधार पर प्रारंभिक बहुपद का निर्माण (वास्तव में अधिक उन्नत जालक आधार न्यूनीकरण LLL का उपयोग किया जाता है) void select(const cpp_int\u0026amp; N) { std::cout \u0026lt;\u0026lt; \u0026#34;[Phase 1] Polynomial Selection (Degree \u0026#34; \u0026lt;\u0026lt; degree \u0026lt;\u0026lt; \u0026#34;) starting...\u0026#34; \u0026lt;\u0026lt; std::endl; // सरल base-m विस्तार (d घात) // m = N^(1/d) cpp_int N_copy = N; m = 1; // सरल m का अनुमान (Boost फ़ंक्शन के बिना अनुमान) cpp_int low = 1, high = N; while (low \u0026lt;= high) { cpp_int mid = low + (high - low) / 2; cpp_int p = 1; for(int i=0; i\u0026lt;degree; ++i) p *= mid; if (p \u0026lt;= N) { m = mid; low = mid + 1; } else { high = mid - 1; } } f.resize(degree + 1); cpp_int temp = N; for (int i = 0; i \u0026lt;= degree; ++i) { f[i] = temp % m; temp /= m; } g = {-m, 1}; // g(x) = x - m std::cout \u0026lt;\u0026lt; \u0026#34; -\u0026gt; m = \u0026#34; \u0026lt;\u0026lt; m \u0026lt;\u0026lt; std::endl; std::cout \u0026lt;\u0026lt; \u0026#34; -\u0026gt; f(x) = \u0026#34;; for(int i = degree; i \u0026gt;= 0; --i) { std::cout \u0026lt;\u0026lt; f[i] \u0026lt;\u0026lt; \u0026#34;x^\u0026#34; \u0026lt;\u0026lt; i \u0026lt;\u0026lt; (i \u0026gt; 0 ? \u0026#34; + \u0026#34; : \u0026#34;\u0026#34;); } std::cout \u0026lt;\u0026lt; \u0026#34;\\n[Phase 1] Complete.\u0026#34; \u0026lt;\u0026lt; std::endl; } }; // ============================================================================ // Phase 2: Lattice Sieving (जालक चलनी) // ============================================================================ // हाल के वर्षों में GNFS में Line Sieve (सरल रेखा चलनी) के बजाय Franke-Kleinjung आदि द्वारा // Special-q Lattice Sieving (विशेष-q जालक चलनी) का उपयोग करना डिफ़ॉल्ट मानक है। class LatticeSieve { uint32_t rational_bound; uint32_t algebraic_bound; std::vector\u0026lt;uint32_t\u0026gt; rational_fb; std::vector\u0026lt;uint32_t\u0026gt; algebraic_fb; public: LatticeSieve(uint32_t rb, uint32_t ab) : rational_bound(rb), algebraic_bound(ab) {} void generate_factor_bases() { std::cout \u0026lt;\u0026lt; \u0026#34;[Phase 2] Generating Factor Bases (Rational Bound: \u0026#34; \u0026lt;\u0026lt; rational_bound \u0026lt;\u0026lt; \u0026#34;, Algebraic Bound: \u0026#34; \u0026lt;\u0026lt; algebraic_bound \u0026lt;\u0026lt; \u0026#34;)\u0026#34; \u0026lt;\u0026lt; std::endl; // (छोड़ा गया) वास्तव में अभाज्य संख्या निर्माण और लेजेंड्रे प्रतीक आदि से फ़िल्टरिंग की जाती है } std::vector\u0026lt;Relation\u0026gt; sieve(const PolynomialSelector\u0026amp; poly) { std::cout \u0026lt;\u0026lt; \u0026#34;[Phase 2] Special-q Lattice Sieving active...\u0026#34; \u0026lt;\u0026lt; std::endl; std::vector\u0026lt;Relation\u0026gt; relations; // मॉक कार्यान्वयन: वास्तविक जालक चलनी सैकड़ों GB मेमोरी स्पेस को ब्लॉक द्वारा स्कैन करती है // (a, b) युग्मों को विशेष अभाज्य q के जालक (a = i*q + j*...) में मैप करती है, // और कैश दक्षता को अधिकतम करने वाली चलनी (sieve) चलाती है। // डेमो के लिए एक डमी रिलेशन जोड़ा गया Relation r; r.a = 17; r.b = 3; r.rational_primes = {2, 5}; r.algebraic_primes = {3, 7}; relations.push_back(r); std::cout \u0026lt;\u0026lt; \u0026#34;[Phase 2] Found \u0026#34; \u0026lt;\u0026lt; relations.size() \u0026lt;\u0026lt; \u0026#34; relations.\u0026#34; \u0026lt;\u0026lt; std::endl; return relations; } }; // ============================================================================ // Phase 3: Filtering (सिंगलटन रिमूवल और क्लीक मर्जिंग) // ============================================================================ class Filter { public: void reduce_matrix(std::vector\u0026lt;Relation\u0026gt;\u0026amp; relations) { std::cout \u0026lt;\u0026lt; \u0026#34;[Phase 3] Filtering Relations...\u0026#34; \u0026lt;\u0026lt; std::endl; // 1. Singleton removal (केवल 1 बार आने वाले अभाज्य संख्या वाले रिलेशन को हटाना) // 2. Clique merging (विरल मैट्रिक्स को सघन बनाने के लिए रिलेशन को मिलाना) // वास्तव में यूनियन-फाइंड एल्गोरिदम आदि द्वारा करोड़ों पंक्तियों वाले मैट्रिक्स को लाखों पंक्तियों में संकुचित किया जाता है। std::cout \u0026lt;\u0026lt; \u0026#34;[Phase 3] Matrix size reduced optimally.\u0026#34; \u0026lt;\u0026lt; std::endl; } }; // ============================================================================ // Phase 4: Linear Algebra over GF(2) (Block Wiedemann विधि) // ============================================================================ class LinearAlgebraGF2 { public: // हाल के सुपरकंप्यूटर वातावरण में Block Lanczos विधि की तुलना में, वितरित कंप्यूटिंग के लिए // अधिक उपयुक्त Block Wiedemann विधि (Coppersmith कार्यान्वयन) को अत्याधुनिक माना जाता है। std::vector\u0026lt;std::vector\u0026lt;int\u0026gt;\u0026gt; solve_nullspace(const std::vector\u0026lt;Relation\u0026gt;\u0026amp; relations) { std::cout \u0026lt;\u0026lt; \u0026#34;[Phase 4] Block Wiedemann algorithm over GF(2) starting...\u0026#34; \u0026lt;\u0026lt; std::endl; // विरल मैट्रिक्स (sparse matrix) और वेक्टर के गुणन की पुनरावृत्ति करके, // M * x = 0 mod 2 को संतुष्ट करने वाले कई हल वेक्टर (कर्नेल) खोजना। std::vector\u0026lt;std::vector\u0026lt;int\u0026gt;\u0026gt; dependencies; // निर्भरता की सूची // डमी डेटा dependencies.push_back({0}); std::cout \u0026lt;\u0026lt; \u0026#34;[Phase 4] Found \u0026#34; \u0026lt;\u0026lt; dependencies.size() \u0026lt;\u0026lt; \u0026#34; linear dependencies (perfect squares).\u0026#34; \u0026lt;\u0026lt; std::endl; return dependencies; } }; // ============================================================================ // Phase 5: Algebraic Square Root (बीजीय वर्गमूल) // ============================================================================ class AlgebraicSquareRoot { public: void compute_and_factor(const std::vector\u0026lt;Relation\u0026gt;\u0026amp; relations, const std::vector\u0026lt;int\u0026gt;\u0026amp; dep, const cpp_int\u0026amp; N) { std::cout \u0026lt;\u0026lt; \u0026#34;[Phase 5] Algebraic Square Root computation...\u0026#34; \u0026lt;\u0026lt; std::endl; // 1. परिमेय पक्ष का वर्गमूल V की गणना (सरल पूर्णांक गणना) cpp_int V = 1; // V = sqrt( prod(a - bm) ) mod N // 2. बीजीय पक्ष का वर्गमूल gamma की गणना (Montgomery\u0026#39;s method आदि) // विशाल बीजीय क्षेत्र O_K का तत्व gamma ज्ञात करना, और समरूपता (homomorphism) phi द्वारा वास्तविक दुनिया में मैप करना // Y = phi(gamma) mod N cpp_int Y = 1; // आदर्श वर्ग समूह (Ideal Class Group) और इकाई समूह (Unit Group) की बाधाओं (Obstruction) से बचने के लिए, // यह मानकर चलते हैं कि Phase 2 और 4 में द्विघाती वर्णों (Quadratic Characters) की पंक्तियाँ जोड़ी गई हैं। std::cout \u0026lt;\u0026lt; \u0026#34; -\u0026gt; Homomorphism map phi applied.\u0026#34; \u0026lt;\u0026lt; std::endl; std::cout \u0026lt;\u0026lt; \u0026#34;[Phase 5] Calculating GCD(V - Y, N)...\u0026#34; \u0026lt;\u0026lt; std::endl; cpp_int factor = gcd(V - Y, N); // GCD(X-Y, N) if (factor \u0026gt; 1 \u0026amp;\u0026amp; factor \u0026lt; N) { std::cout \u0026lt;\u0026lt; \u0026#34;\\n================================================================\u0026#34; \u0026lt;\u0026lt; std::endl; std::cout \u0026lt;\u0026lt; \u0026#34;[SUCCESS] Non-trivial factor found: \u0026#34; \u0026lt;\u0026lt; factor \u0026lt;\u0026lt; std::endl; std::cout \u0026lt;\u0026lt; \u0026#34; Other factor: \u0026#34; \u0026lt;\u0026lt; N / factor \u0026lt;\u0026lt; std::endl; std::cout \u0026lt;\u0026lt; \u0026#34;================================================================\u0026#34; \u0026lt;\u0026lt; std::endl; } else { std::cout \u0026lt;\u0026lt; \u0026#34;[FAILURE] Trivial solution. Trying next dependency...\u0026#34; \u0026lt;\u0026lt; std::endl; } } }; // ============================================================================ // Main Execution Pipeline // ============================================================================ int main() { std::cout \u0026lt;\u0026lt; \u0026#34;================================================================\u0026#34; \u0026lt;\u0026lt; std::endl; std::cout \u0026lt;\u0026lt; \u0026#34; [SOTA GNFS] General Number Field Sieve Engine (Boost C++) \u0026#34; \u0026lt;\u0026lt; std::endl; std::cout \u0026lt;\u0026lt; \u0026#34;================================================================\u0026#34; \u0026lt;\u0026lt; std::endl; // RSA-270 आदि, विशाल भाज्य संख्या N जिसका गुणनखंडन करना है cpp_int N(\u0026#34;233108530344407544527637656910680524145619812480305449042948611968495918245135782867888369318577116418213919268572658314913060672626911354027609793166341626693946596196427744273886601876896313468704059066746903123910748277606548649151920812699309766587514735456594993207\u0026#34;); // बहुपद की घात (130 अंकों से अधिक होने पर आमतौर पर 5 या 6 चुनी जाती है) int degree = 6; // पाइपलाइन इनिशियलाइज़ेशन PolynomialSelector poly_select(degree); LatticeSieve sieve(10000000, 20000000); // वास्तविक सीमाएँ करोड़ों में होती हैं Filter filter; LinearAlgebraGF2 linalg; AlgebraicSquareRoot sqrt_step; auto start_time = std::chrono::high_resolution_clock::now(); // 1. बहुपद चयन poly_select.select(N); // 2. चलनी (sieve) प्रसंस्करण sieve.generate_factor_bases(); std::vector\u0026lt;Relation\u0026gt; relations = sieve.sieve(poly_select); // 3. फ़िल्टरिंग (मैट्रिक्स संपीड़न) filter.reduce_matrix(relations); // 4. रेखीय बीजगणित (GF(2) पर शून्यस्थान खोज) std::vector\u0026lt;std::vector\u0026lt;int\u0026gt;\u0026gt; dependencies = linalg.solve_nullspace(relations); // 5. बीजीय वर्गमूल की गणना और GCD for (const auto\u0026amp; dep : dependencies) { sqrt_step.compute_and_factor(relations, dep, N); } auto end_time = std::chrono::high_resolution_clock::now(); std::chrono::duration\u0026lt;double\u0026gt; elapsed = end_time - start_time; std::cout \u0026lt;\u0026lt; \u0026#34;\\n[System] SOTA GNFS Pipeline completed in \u0026#34; \u0026lt;\u0026lt; elapsed.count() \u0026lt;\u0026lt; \u0026#34; seconds.\u0026#34; \u0026lt;\u0026lt; std::endl; return 0; } तो यह कोड क्रिप्टोग्राफी की दीवारों को कैसे तोड़ता है? आइए इन 5 चरणों में से प्रत्येक के पीछे के सटीक एल्गोरिदम और उन्नत गणित को विस्तार से समझें।\n2. GNFS का अंतिम लक्ष्य: $X^2 \\equiv Y^2 \\pmod N$ GNFS ही नहीं, बल्कि लगभग सभी आधुनिक विशाल अभाज्य गुणनखंडन एल्गोरिदम का लक्ष्य एक ऐसा गैर-तुच्छ (non-trivial) युग्म $(X, Y)$ खोजना है जो निम्नलिखित सर्वांगसमता (congruence) को संतुष्ट करता हो:\n$$X^2 \\equiv Y^2 \\pmod N$$ इस समीकरण का अर्थ है कि \u0026ldquo;$X^2$ और $Y^2$ को $N$ से विभाजित करने पर शेषफल समान होता है\u0026rdquo;। यदि हम इसे रूपांतरित करें, तो: $X^2 - Y^2 \\equiv 0 \\pmod N$ अर्थात, $(X-Y)(X+Y)$, $N$ का गुणज है।\nयदि $X \\not\\equiv \\pm Y \\pmod N$ (गैर-तुच्छ हल) है, तो $(X-Y)$ और $N$ के बीच \u0026ldquo;1 से बड़ा और $N$ से छोटा एक सार्व भाजक (common divisor)\u0026rdquo; मौजूद होगा। यहाँ, यदि हम यूक्लिड के एल्गोरिदम का उपयोग करके ** $\\gcd(X-Y, N)$ ** की गणना करते हैं, तो $N$ का अभाज्य गुणनखंड आसानी से मिल जाएगा।\nहालाँकि, इस $X$ और $Y$ को खोजना रेगिस्तान में सुई खोजने जैसा है। इसलिए, GNFS \u0026ldquo;वास्तविक पूर्णांकों की दुनिया\u0026rdquo; और \u0026ldquo;बहुपदों की बीजीय दुनिया\u0026rdquo; नामक ** 2 दुनियाएँ ** बनाने और संगणना को वितरित करने का एक प्रतिभाशाली दृष्टिकोण अपनाता है।\n3. Phase 1: बहुपद चयन (Polynomial Selection) 1 2 3 4 5 6 7 8 9 10 11 12 class PolynomialSelector { // ... void select(const cpp_int\u0026amp; N) { // m = N^(1/d) की गणना और base-m विस्तार // ... for (int i = 0; i \u0026lt;= degree; ++i) { f[i] = temp % m; temp /= m; } g = {-m, 1}; // g(x) = x - m } }; GNFS का पहला कदम दोनों दुनियाओं को जोड़ने के लिए एक \u0026ldquo;जादुई बहुपद\u0026rdquo; बनाना है। एक विशाल संख्या $N$ के लिए, हम एक पूर्णांक $m$ चुनते हैं। आमतौर पर, हम इसे इस तरह चुनते हैं कि $m \\approx N^{1/d}$ हो (कोड में $d=6$ घात के बहुपद की कल्पना की गई है)।\nफिर, हम $N$ का $m$-आधार विस्तार करते हैं, और इसके गुणांकों का उपयोग करके बहुपद $f(x)$ का निर्माण करते हैं। $$N = c_d m^d + c_{d-1} m^{d-1} + \\dots + c_1 m + c_0$$ $$f(x) = c_d x^d + c_{d-1} x^{d-1} + \\dots + c_1 x + c_0$$ इस बहुपद $f(x)$ में एक अत्यंत महत्वपूर्ण गुण है कि ** \u0026ldquo;चर $x$ में $m$ रखने पर, यह ठीक $N$ बन जाता है ($f(m) = N$)\u0026rdquo; ** । दूसरे शब्दों में, $f(m) \\equiv 0 \\pmod N$। परिमेय पक्ष के बहुपद को $g(x) = x - m$ के रूप में परिभाषित किया जाता है।\nइसके कारण, $f(x)=0$ के मूल $\\alpha$ द्वारा शासित ** \u0026ldquo;बीजीय क्षेत्र की दुनिया $\\mathbb{Z}[\\alpha]$\u0026rdquo; ** और सामान्य ** \u0026ldquo;परिमेय (पूर्णांक) संख्याओं की दुनिया $\\mathbb{Z}$\u0026rdquo; ** को $x \\to m$ नामक \u0026ldquo;रिंग होमोमोर्फिज्म (Ring Homomorphism)\u0026rdquo; द्वारा दृढ़ता से जोड़ा जाता है।\nअत्याधुनिक CADO-NFS आदि में, KleinJung एल्गोरिदम या LLL जालक आधार न्यूनीकरण एल्गोरिदम का उपयोग महीनों तक ऐसे \u0026ldquo;सबसे सुविधाजनक बहुपद $f(x)$\u0026rdquo; की खोज के लिए किया जाता है जिसके गुणांक बहुत बड़े नहीं होते हैं और बाद के चरणों में अभाज्य संख्याएँ उत्पन्न होने की अधिक संभावना होती है (अर्थात स्मूथ होने की संभावना अधिक होती है)।\n4. Phase 2: विशेष $q$ जालक चलनी (Special-q Lattice Sieving) 1 2 3 4 5 6 7 8 9 class LatticeSieve { // ... std::vector\u0026lt;Relation\u0026gt; sieve(const PolynomialSelector\u0026amp; poly) { // ... // (a, b) युग्मों को विशेष अभाज्य q के जालक में मैप करता है, // और कैश दक्षता को अधिकतम करने वाली चलनी (sieve) चलाता है। // ... } }; एक बार जब दोनों दुनियाएँ तैयार हो जाती हैं, तो अगला कदम उन दोनों दुनियाओं में \u0026ldquo;स्मूथ संख्याएँ (केवल छोटी अभाज्य संख्याओं से बनी संख्याएँ)\u0026rdquo; खोजना है। पूर्णांक युग्मों $(a, b)$ की अनगिनत संख्या उत्पन्न की जाती है, और निम्नलिखित दो मानों की गणना की जाती है:\n** परिमेय पक्ष का मान ** : $a - bm$ ** बीजीय पक्ष का नॉर्म ** : $b^d f(a/b)$ GNFS का लक्ष्य ऐसे ** \u0026ldquo;युग्मों (Relation: संबंध) को करोड़ों की संख्या में इकट्ठा करना है जहाँ परिमेय और बीजीय दोनों मानों को पूरी तरह से केवल छोटे अभाज्य कारकों में विभाजित किया जा सकता है\u0026rdquo; ** ।\nशुरुआती GNFS में, एक \u0026ldquo;सरल रेखा चलनी (Line Sieve)\u0026rdquo; का उपयोग किया जाता था जो $(a, b)$ को $xy$-तल पर रखता था और उन्हें एक सिरे से अभाज्य संख्याओं द्वारा क्रमिक रूप से विभाजित करता था। हालाँकि, इसमें मेमोरी के कई स्थानों तक पहुँचने के कारण लगातार कैश मिस होने और बहुत धीमा होने की कमजोरी थी।\nइसलिए, वर्तमान अत्याधुनिक कोड में ** \u0026ldquo;विशेष $q$ जालक चलनी (Special-q Lattice Sieve)\u0026rdquo; ** नामक तकनीक का उपयोग किया जाता है। एक उपयुक्त रूप से बड़ी अभाज्य संख्या $q$ तय की जाती है, और केवल उन $(a, b)$ युग्मों की गणना की जाती है जहाँ \u0026ldquo;बीजीय पक्ष का मान निश्चित रूप से $q$ द्वारा विभाज्य है\u0026rdquo;। इस शर्त को पूरा करने वाले $(a, b)$ तल पर एक \u0026ldquo;जालक (Lattice)\u0026rdquo; बनाते हैं, इसलिए गणना करने के लिए पतों की जंप की चौड़ाई स्थिर हो जाती है, जो CPU के L1/L2 कैश में पूरी तरह से फिट बैठती है। इस जालक चलनी की शुरुआत के साथ, GNFS की गणना गति में नाटकीय रूप से सुधार हुआ।\n5. Phase 3: फ़िल्टरिंग (Filtering) 1 2 3 4 5 6 7 class Filter { public: void reduce_matrix(std::vector\u0026lt;Relation\u0026gt;\u0026amp; relations) { // 1. Singleton removal (केवल 1 बार आने वाले अभाज्य संख्या वाले रिलेशन को हटाना) // 2. Clique merging (विरल मैट्रिक्स को सघन बनाने के लिए रिलेशन को मिलाना) } }; Phase 2 में दुनिया भर के कंप्यूटरों द्वारा महीनों तक एकत्र किए गए करोड़ों रिलेशन। हालाँकि, अगर हम इसे ऐसे ही अगले \u0026ldquo;युगपत समीकरणों को हल करने वाले चरण (मैट्रिक्स गणना)\u0026rdquo; में डाल देते हैं, तो सुपरकंप्यूटर की मेमोरी भर जाएगी।\nइसलिए, ** फ़िल्टरिंग (Filtering) ** नामक एक अति-संपीड़न प्रक्रिया की जाती है।\n** Singleton removal (सिंगलटन रिमूवल) ** मान लें कि करोड़ों रिलेशन में कोई विशाल अभाज्य संख्या $p$ \u0026ldquo;केवल 1 बार\u0026rdquo; आती है। हमारा लक्ष्य \u0026ldquo;सभी अभाज्य संख्याओं के घातांकों को सम (2 का गुणज) बनाना\u0026rdquo; है, इसलिए जो अभाज्य संख्या केवल 1 बार आती है उसे कभी सम नहीं किया जा सकता। इसलिए, उस अभाज्य संख्या वाले रिलेशन को तुरंत \u0026ldquo;कचरा\u0026rdquo; मानकर हटा (पर्ज) दिया जाता है। चूँकि यह एक श्रृंखला प्रतिक्रिया में होता है, करोड़ों पंक्तियों वाला डेटा तेज़ी से कम हो जाता है।\n** Clique merging (क्लीक मर्जिंग) ** इसके अलावा, एक विशिष्ट अभाज्य संख्या साझा करने वाले रिलेशन को एक साथ गुणा करके (जोड़कर), पंक्तियों की संख्या कम हो जाती है, जबकि एक विरल (sparse) मैट्रिक्स को सघन स्थिति में संकुचित किया जाता है (ग्राफ सिद्धांत में क्लीक सर्च के समान एक विधि का उपयोग किया जाता है)।\nइस अनुकूलन के साथ, विशाल विरल मैट्रिक्स को गणना योग्य आकार में नाटकीय रूप से संकुचित किया जाता है।\n6. Phase 4: GF(2) पर रेखीय बीजगणित (Block Wiedemann विधि) 1 2 3 4 5 6 7 class LinearAlgebraGF2 { public: std::vector\u0026lt;std::vector\u0026lt;int\u0026gt;\u0026gt; solve_nullspace(const std::vector\u0026lt;Relation\u0026gt;\u0026amp; relations) { // विरल मैट्रिक्स (sparse matrix) और वेक्टर के गुणन की पुनरावृत्ति करके, // M * x = 0 mod 2 को संतुष्ट करने वाले कई हल वेक्टर (कर्नेल) खोजना। } }; यह पहेली का मूल है। हम एकत्र किए गए रिलेशन को गुणा करते हैं ताकि ** \u0026ldquo;ऐसे संयोजन को खोज सकें जहाँ सभी अभाज्य कारकों के घातांक सम हो जाते हैं\u0026rdquo; ** ।\nगणितीय रूप से, यह एक विशाल मैट्रिक्स $M$ जिसमें प्रत्येक अभाज्य संख्या के घातांक की \u0026ldquo;सम/विषम (यानी 0 या 1)\u0026rdquo; स्थिति होती है, और यह दर्शाने वाला एक वेक्टर $x$ कि किन रिलेशन का उपयोग किया जाए, का उपयोग करके: ** $M \\cdot x \\equiv 0 \\pmod 2$ ** संतुष्ट करने वाले हल वेक्टर $x$ (शून्यस्थान / कर्नेल) को खोजने के अलावा और कुछ नहीं है।\nहमें लाखों पंक्तियों × लाखों स्तंभों वाले मैट्रिक्स के युगपत समीकरणों को हल करना होगा। सामान्य गाऊसी उन्मूलन (Gaussian elimination) से गणना की जटिलता $O(N^3)$ हो जाएगी, और गणना ब्रह्मांड के अंत तक भी समाप्त नहीं होगी।\nइसलिए, अत्याधुनिक कार्यान्वयन ** \u0026ldquo;Block Wiedemann (ब्लॉक विडमैन) विधि\u0026rdquo; ** को अपनाता है। यह क्रिलोव सबस्पेस विधि का एक प्रकार है जो इस तथ्य का लाभ उठाता है कि मैट्रिक्स $M$ \u0026ldquo;अत्यंत विरल (लगभग सभी 0)\u0026rdquo; है, और मैट्रिक्स और वेक्टर के गुणन को बार-बार करके हल निकालता है। पुरानी Block Lanczos विधि के विपरीत, Block Wiedemann विधि गणना प्रक्रिया को पूरी तरह से कई क्लस्टरों में विभाजित कर सकती है, इसलिए यह आधुनिक वितरित क्लाउड कंप्यूटिंग और सुपरकंप्यूटर पर समानांतर गणना में अत्यधिक शक्तिशाली है।\n7. Phase 5: बीजीय वर्गमूल (Algebraic Square Root) और क्रिप्टोग्राफी का पतन 1 2 3 4 5 6 7 8 9 10 11 12 13 class AlgebraicSquareRoot { public: void compute_and_factor(...) { // 1. परिमेय पक्ष का वर्गमूल V की गणना cpp_int V = 1; // 2. बीजीय पक्ष का वर्गमूल gamma की गणना cpp_int Y = 1; // ... cpp_int factor = gcd(V - Y, N); // GCD(X-Y, N) } }; Phase 4 में मैट्रिक्स गणनाओं के माध्यम से, हमने \u0026ldquo;रिलेशन का एक सेट $S$ प्राप्त किया है जो, जब गुणा किया जाता है, तो सभी अभाज्य कारकों की सम घात में परिणत होता है\u0026rdquo;। यह हमें परिमेय और बीजीय दोनों दुनियाओं में \u0026ldquo;वर्ग (Squares)\u0026rdquo; बनाने की अनुमति देता है।\nचूँकि परिमेय पक्ष केवल पूर्णांक गुणन है, इसलिए वर्गमूल $V$ की गणना करना आसान है। $$V^2 = \\prod_{S} (a - bm)$$ ** लेकिन असली चुनौती \u0026ldquo;बीजीय पक्ष\u0026rdquo; पर है। ** बीजीय क्षेत्र $\\mathbb{Z}[\\alpha]$ की दुनिया में, अभाज्य गुणनखंडन की विशिष्टता (unique factorization) लागू नहीं होती है, इसलिए हमने आदर्शों (ideals) का उपयोग करके गणना की है। मैट्रिक्स गणना केवल यह गारंटी देती है कि यह \u0026ldquo;आदर्श का वर्ग\u0026rdquo; है, और ** यह गारंटी नहीं देता है कि यह \u0026ldquo;तत्व का वर्ग ($\\gamma^2$)\u0026rdquo; बन जाता है ** ।\nयहाँ बीजीय संख्या सिद्धांत में एक दुर्जेय दीवार है, जिसे \u0026ldquo;आदर्श वर्ग समूह (Ideal Class Group) की बाधा\u0026rdquo; और \u0026ldquo;इकाई समूह (Unit Group) की बाधा\u0026rdquo; कहा जाता है। GNFS में, इस दीवार को तोड़ने के लिए ** \u0026ldquo;द्विघाती वर्णों (Quadratic Characters)\u0026rdquo; ** नामक जादू का उपयोग किया जाता है। Phase 4 के मैट्रिक्स में, दर्जनों विशेष अभाज्य आदर्शों के लिए द्विघाती अवशेषों (लेजेंड्रे प्रतीक) की पंक्तियों को चुपके से पहले से जोड़ दिया जाता है। इस वजह से, पाया गया सेट $S$ भारी संभावना के साथ बाधाओं को बायपास करेगा, और सुरक्षित रूप से \u0026ldquo;सच्चे तत्व का वर्ग $\\gamma^2$\u0026rdquo; बनाएगा।\n$\\gamma$ (बीजीय वर्गमूल) ज्ञात करने का कार्य Montgomery विधि जैसे अत्यंत जटिल एल्गोरिदम का उपयोग करके किया जाता है।\nऔर अंततः, बीजीय पक्ष के वर्गमूल $\\gamma$ को रिंग होमोमोर्फिज्म $\\phi$ द्वारा वास्तविक दुनिया में ले जाया जाता है ($x$ के लिए $m$ प्रतिस्थापित करके), जिससे हमें $Y$ मिलता है। यदि हम परिमेय पक्ष के $V$ को वैसे ही $X$ के रूप में रखते हैं, तो वह पूर्ण समीकरण जो हम खोज रहे थे, अंततः पूरा हो जाता है।\n** $$X^2 \\equiv Y^2 \\pmod N$$ **\nअब बस $\\gcd(X-Y, N)$ की गणना करनी है। 0.001 सेकंड का प्रसंस्करण चलता है, और जैसे ही गैर-तुच्छ कारक स्क्रीन पर प्रिंट होते हैं, अभेद्य मानी जाने वाली RSA क्रिप्टोग्राफी पूरी तरह से ढह जाती है।\nनिष्कर्ष GNFS सिर्फ एक प्रोग्रामिंग तकनीक नहीं है। यह मानव बुद्धि का क्रिस्टलीकरण है जिसने \u0026ldquo;शुद्ध गणित की गहराइयों\u0026rdquo; जैसे अमूर्त बीजगणित (abstract algebra), रिंग थ्योरी (ring theory), और आदर्श वर्ग समूहों (ideal class groups) को \u0026ldquo;चरम इंजीनियरिंग\u0026rdquo; जैसे सुपरकंप्यूटर वितरित आर्किटेक्चर और कैश अनुकूलन के साथ जीत लिया है।\nहम जिन चैट और क्रेडिट कार्ड की जानकारी को लापरवाही से भेजते हैं, वे ऐसे खगोलीय गणितीय बचावों द्वारा संरक्षित हैं।\nहमें उम्मीद है कि इस C++ फ्रेमवर्क के माध्यम से, आप अत्याधुनिक क्रिप्टोग्राफी क्रैकिंग एल्गोरिदम के पीछे \u0026ldquo;गणित और कंप्यूटर के रोमांस\u0026rdquo; को महसूस करेंगे।\n","date":"2026-09-05T13:04:59+09:00","image":"http://kenji.blog/p/gnfs-cpp-implementation/gnfs_cpp_blog_eyecatch_1788580949217_hu57b4110ce75cf76414fb819be22bae03_985705_120x120_fill_q75_box_smart1.jpg","permalink":"http://kenji.blog/hi/p/gnfs-cpp-implementation/","title":"【संपूर्ण विश्लेषण】C++ में लागू करके सबसे शक्तिशाली क्रिप्टोग्राफी क्रैकिंग एल्गोरिदम \"GNFS\" को समझना"},{"content":"सामान्य संख्या क्षेत्र चलनी (GNFS) की सच्ची गणितीय संरचना GNFS का अंतिम उद्देश्य $X, Y$ खोजना है ताकि $X^2 \\equiv Y^2 \\pmod N$ हो सके। इसे प्राप्त करने के लिए, गणितज्ञों ने \u0026ldquo;वास्तविक पूर्णांकों की दुनिया\u0026rdquo; और \u0026ldquo;बीजगणितीय क्षेत्रों की दुनिया\u0026rdquo; के बीच एक पुल बनाया। वह पुल \u0026ldquo;होमोमोर्फिज़्म (Homomorphism)\u0026rdquo; है।\nचरण 1: दुनियाओं को जोड़ने वाला \u0026ldquo;होमोमोर्फिज़्म\u0026rdquo; 1. बहुपद का चयन और जड़ों की परिभाषा एक विशाल भाज्य संख्या $N$ के लिए, हम एक पूर्णांक $m$ और एक बहुपद $f(x)$ चुनते हैं ताकि $f(m) \\equiv 0 \\pmod N$ हो। (उदाहरण: $N$ को $m$ के आधार पर विस्तारित करें और इसके गुणांकों से $f(x)$ बनाएँ। यहाँ हम मान लेते हैं कि $f(x)$ परिमेय संख्याओं के क्षेत्र $\\mathbb{Q}$ पर अप्राप्य (irreducible) है (इसे और फ़ैक्टर नहीं किया जा सकता))।\nअगला, हम समीकरण $f(x) = 0$ की \u0026ldquo;जटिल संख्याओं में जड़ों\u0026rdquo; में से एक को $\\alpha$ के रूप में परिभाषित करते हैं। स्वाभाविक रूप से, $f(\\alpha) = 0$ है। $\\alpha$ एक पूर्णांक नहीं है, बल्कि एक जटिल संख्या है जिसमें वर्गमूल और काल्पनिक संख्याएँ शामिल हैं (एक बीजगणितीय संख्या)।\n2. रिंग (Ring) और होमोमोर्फिज़्म का निर्माण यहाँ, हम दो गणितीय \u0026ldquo;रिंग\u0026rdquo; (वे दुनिया जहाँ जोड़ और गुणा परिभाषित हैं) तैयार करते हैं।\nदुनिया A: $\\mathbb{Z}[\\alpha]$ (बीजगणितीय पूर्णांकों की रिंग जिसमें $\\alpha$ शामिल है) यह $a + b\\alpha + c\\alpha^2 + \\dots$ के रूप में व्यक्त संख्याओं की दुनिया है। दुनिया B: $\\mathbb{Z}/N\\mathbb{Z}$ ($N$ से भाग देने पर शेषफल की रिंग) यह केवल $0$ से $N-1$ तक के पूर्णांकों से बनी सर्वांगसमता (modulo) की दुनिया है। यहाँ, हम दुनिया A से दुनिया B तक निम्नलिखित मैपिंग $\\phi$ को परिभाषित करते हैं। $$\\phi : \\mathbb{Z}[\\alpha] \\to \\mathbb{Z}/N\\mathbb{Z}$$ $$\\phi(\\alpha) = m \\pmod N$$\nयह मैपिंग $\\phi$ एक जादुई ऑपरेशन है जो दुनिया A के चर $\\alpha$ को दुनिया B के पूर्णांक $m$ से बदल देता है। इस $\\phi$ में एक अत्यंत शक्तिशाली गुण है जिसे \u0026ldquo;रिंग होमोमोर्फिज़्म (Ring Homomorphism)\u0026rdquo; कहा जाता है। होमोमोर्फिज़्म का अर्थ है \u0026ldquo;जोड़ और गुणा की संरचना को नष्ट किए बिना किसी दूसरी दुनिया में टेलीपोर्ट करना\u0026rdquo; । दूसरे शब्दों में, निम्नलिखित समीकरण सत्य हैं:\n$\\phi(X \\times Y) = \\phi(X) \\times \\phi(Y)$ $\\phi(X^2) = \\phi(X)^2$ इसका क्या मतलब है? अगर हम \u0026ldquo;दुनिया A ($\\alpha$ की दुनिया)\u0026rdquo; में किसी जटिल तत्व $\\gamma$ का \u0026ldquo;वर्ग ($\\gamma^2$)\u0026rdquo; बना सकते हैं, और इसे $\\phi$ का उपयोग करके \u0026ldquo;दुनिया B (शेषफल की दुनिया)\u0026rdquo; में टेलीपोर्ट कर सकते हैं, तो वर्ग रूप $\\phi(\\gamma)^2$ पूरी तरह से संरक्षित रहता है ।\nचरण 2: अभाज्य गुणनखंडन का पतन और \u0026ldquo;आदर्शों (Ideals)\u0026rdquo; का जन्म हम दुनिया A ($\\mathbb{Z}[\\alpha]$) में कई उपयुक्त तत्वों $(a - b\\alpha)$ को इकट्ठा करना चाहते हैं, और उन्हें गुणा करके एक \u0026ldquo;पूर्ण वर्ग (वर्ग तत्व)\u0026rdquo; बनाना चाहते हैं। आम तौर पर, हम प्रत्येक $(a - b\\alpha)$ को \u0026ldquo;अभाज्य गुणनखंड (prime factorization)\u0026rdquo; करेंगे और उन्हें इस तरह जोड़ेंगे कि अभाज्य संख्याओं के घातांक सभी सम (even) हों (मैट्रिक्स के साथ हल करके) ताकि एक वर्ग बनाया जा सके।\nहालाँकि, यहाँ बीजगणित की निराशाजनक दीवार खड़ी है। $\\mathbb{Z}[\\alpha]$ जैसी बीजगणितीय दुनिया में, मिडिल स्कूल में सिखाई गई \u0026ldquo;अभाज्य गुणनखंडन की विशिष्टता (किसी भी संख्या को विशिष्ट रूप से अभाज्य संख्याओं के उत्पाद के रूप में व्यक्त किया जा सकता है)\u0026rdquo; ढह जाती है ।\n(उदाहरण: एक निश्चित बीजगणितीय क्षेत्र की दुनिया में, $6 = 2 \\times 3$ है, और साथ ही $6 = (1+\\sqrt{-5}) \\times (1-\\sqrt{-5})$ है, और हम यह नहीं जानते कि कौन सा असली अभाज्य है)\nयदि अभाज्य गुणनखंडन अद्वितीय नहीं है, तो \u0026ldquo;अभाज्य संख्याओं की गिनती करके उन्हें सम बनाना\u0026rdquo; की पहेली (चलनी विधि) सैद्धांतिक रूप से असंभव है।\nकुमेर और डेडेकिंड का बचाव: \u0026ldquo;आदर्श (Ideal)\u0026rdquo; इस पतन से जो बचाया गया, वह 19वीं सदी के गणितज्ञों द्वारा बनाई गई \u0026ldquo;आदर्श (Ideal: आदर्श संख्या)\u0026rdquo; की अवधारणा थी। तत्व के बजाय, तत्व द्वारा उत्पन्न \u0026ldquo;गुणकों के सेट (आदर्श)\u0026rdquo; पर विचार करके, अभाज्य गुणनखंडन फिर से संभव हो गया।\nएक बीजगणितीय क्षेत्र की पूर्णांक रिंग $\\mathcal{O}_K$ ($\\mathbb{Z}[\\alpha]$ सहित अधिक पूर्ण रिंग) में, यह सिद्ध होता है कि भले ही तत्वों को विशिष्ट रूप से गुणनखंडित नहीं किया जा सकता, \u0026ldquo;एक आदर्श को हमेशा \u0026lsquo;अभाज्य आदर्शों ($\\mathfrak{p}$)\u0026rsquo; के उत्पाद के रूप में विशिष्ट रूप से गुणनखंडित किया जा सकता है\u0026rdquo; ।\nइसलिए GNFS में, तत्व $(a - b\\alpha)$ को सीधे गुणनखंडित करने के बजाय, हम इसके द्वारा उत्पन्न प्रमुख आदर्श (principal ideal) $\\langle a - b\\alpha \\rangle$ को अभाज्य आदर्शों में गुणनखंडित करते हैं ।\nचरण 3: नॉर्म (Norm) और दो चलनियां (Sieves) तो, हम कैसे जानेंगे कि आदर्श $\\langle a - b\\alpha \\rangle$ किन अभाज्य आदर्शों में विघटित होगा? यहाँ हम \u0026ldquo;नॉर्म (Norm)\u0026rdquo; नामक फ़ंक्शन का उपयोग करते हैं। नॉर्म एक ऐसा फ़ंक्शन है जो बीजगणितीय क्षेत्रों के जटिल तत्वों को \u0026ldquo;सामान्य वास्तविक पूर्णांकों $\\mathbb{Z}$\u0026rdquo; में परिवर्तित करता है।\nतत्व $(a - b\\alpha)$ का नॉर्म एक साधारण बहुपद गणना $b^d f(a/b)$ द्वारा पाया जाता है ($d$, $f(x)$ की डिग्री है)।\nबीजगणितीय प्रमेयों से, हम जानते हैं कि \u0026ldquo;यदि किसी आदर्श के नॉर्म को छोटी अभाज्य संख्याओं में पूरी तरह से गुणनखंडित किया जा सकता है (चिकना है), तो मूल आदर्श को भी छोटे अभाज्य आदर्शों में पूरी तरह से गुणनखंडित किया जा सकता है\u0026rdquo; ।\nइसलिए GNFS पूर्णांक युग्मों $(a, b)$ की एक बड़ी संख्या के लिए निम्नलिखित दो की एक साथ गणना करता है, और केवल उन युग्मों को एकत्र करता है जहाँ दोनों \u0026ldquo;चिकनी संख्या (smooth number)\u0026rdquo; बन जाते हैं:\nपरिमेय चलनी (Rational Sieve) : $a - bm$ (वास्तविक दुनिया में मान) बीजगणितीय चलनी (Algebraic Sieve) : $b^d f(a/b)$ (बीजगणितीय दुनिया में नॉर्म) दशकों लाख युग्मों $(a, b)$ को इकट्ठा करने के बाद, हम अभाज्य आदर्श गुणनखंडन डेटा (कितने अभाज्य आदर्श शामिल हैं) को एक विशाल मैट्रिक्स (GF(2) पर रैखिक बीजगणित) के रूप में हल करते हैं ताकि युग्मों का एक सेट $S$ मिल सके जहाँ \u0026ldquo;गुणा करने पर सभी अभाज्य आदर्शों के घातांक सम हो जाते हैं\u0026rdquo;।\nचरण 4: दो \u0026ldquo;बाधाएं\u0026rdquo; और आदर्श वर्ग समूह (Ideal Class Group) मैट्रिक्स गणना से, हमने पाया कि सेट $S$ से संबंधित सभी $(a - b\\alpha)$ के आदर्शों को गुणा करने पर एक निश्चित आदर्श $I$ का वर्ग प्राप्त होता है। $$\\prod_{S} \\langle a - b\\alpha \\rangle = I^2$$ हालाँकि, यह अभी खत्म नहीं हुआ है। GNFS में सबसे गहरी और सबसे कठिन गणितीय दीवार यहीं है।\nअंत में हम \u0026ldquo;आदर्श का वर्ग\u0026rdquo; नहीं चाहते हैं, बल्कि मैपिंग $\\phi$ में बदलने के लिए \u0026ldquo;तत्व का वर्ग ($\\gamma^2$)\u0026rdquo; चाहते हैं। सिर्फ इसलिए कि यह एक आदर्श का वर्ग बन गया, इसका मतलब यह नहीं है कि तत्व भी एक वर्ग है। यहाँ दो मजबूत गणितीय बाधाएं (Obstructions) हैं।\nबाधा ①: आदर्श वर्ग समूह (Ideal Class Group) की दीवार आदर्श $I$ हमेशा \u0026ldquo;एक ही तत्व द्वारा उत्पन्न आदर्श (प्रमुख आदर्श)\u0026rdquo; नहीं होता है। गैर-प्रमुख आदर्शों से किसी विशिष्ट तत्व $\\gamma$ को निकालना असंभव है।\nयहाँ \u0026ldquo;आदर्श वर्ग समूह (Class Group, $Cl_K$)\u0026rdquo; की अवधारणा आती है। आदर्श वर्ग समूह एक ऐसा समूह है जो यह मापता है कि \u0026ldquo;उस बीजगणितीय क्षेत्र की दुनिया में कितने आदर्श हैं जो प्रमुख नहीं हैं (अभाज्य गुणनखंडन की विशिष्टता कितनी टूट गई है)\u0026quot;। भले ही $\\prod \\langle a - b\\alpha \\rangle$, $I^2$ बन जाए, यदि $I$ आदर्श वर्ग समूह में पहचान तत्व (प्रमुख आदर्श) नहीं है, तो इसे तत्व के वर्ग में वापस नहीं लाया जा सकता है।\nबाधा ②: इकाई समूह (Unit Group) की दीवार मान लीजिए कि सौभाग्य से $I$ प्रमुख आदर्श $\\langle \\gamma \\rangle$ है। तब, $\\prod \\langle a - b\\alpha \\rangle = \\langle \\gamma^2 \\rangle$ होता है। आप सोच सकते हैं, \u0026ldquo;बहुत बढ़िया, तत्व भी एक वर्ग है!\u0026rdquo;, लेकिन यह एक बड़ी गलती है।\nआदर्शों (गुणकों के सेट) के समान होने का मतलब यह नहीं है कि तत्व पूरी तरह से समान हैं। हमेशा एक \u0026ldquo;इकाई (Unit: एक ऐसी संख्या जिसका व्युत्क्रम भी एक पूर्णांक है। जैसे 1 या -1)\u0026rdquo; का विचलन होगा। दूसरे शब्दों में, वास्तविक तत्व समीकरण इस प्रकार बन जाता है: $$\\prod_{S} (a - b\\alpha) = u \\cdot \\gamma^2$$ ($u$ इकाई समूह $U_K$ का एक तत्व है)\nजब तक यह इकाई $u$ स्वयं किसी चीज़ का वर्ग नहीं है, तब तक बायाँ पक्ष कभी भी \u0026ldquo;सही तत्व का वर्ग\u0026rdquo; नहीं बन सकता।\nचरण 5: एडलमैन का जादू \u0026ldquo;द्विघात वर्ण (Quadratic Characters)\u0026rdquo; आदर्श वर्ग समूह की बाधा और इकाई समूह की बाधा। इन दोनों को कैसे पार करें? यहाँ क्रिप्टोग्राफर लियोनार्ड एडलमैन (RSA का \u0026ldquo;A\u0026rdquo;) और अन्य लोगों द्वारा पेश की गई शानदार विधि \u0026ldquo;द्विघात वर्ण (Quadratic Characters)\u0026rdquo; आती है।\nयह निर्धारित करने के लिए कि \u0026ldquo;क्या बीजगणितीय क्षेत्र में कोई निश्चित तत्व पूर्ण वर्ग है?\u0026rdquo;, हम लीजेंड्रे प्रतीक (द्विघात अवशेष) के बीजगणितीय क्षेत्र संस्करण का उपयोग करते हैं। उस विशाल मैट्रिक्स (अभाज्य आदर्शों की संख्या को सम बनाने के लिए पहेली) में, हम चुपके से दर्जनों अतिरिक्त शर्तें (कॉलम) जोड़ते हैं, जिसमें कहा गया है कि \u0026ldquo;कुछ विशेष अभाज्य आदर्शों $\\mathfrak{q}$ के लिए द्विघात वर्ण भी सभी $1$ (सम) होने चाहिए\u0026rdquo; ।\nजब हम मैट्रिक्स गणना द्वारा इन अतिरिक्त शर्तों को भी पूरा करने वाला एक सेट $S$ खोजते हैं, तो बीजगणितीय संख्या सिद्धांत के गहरे प्रमेयों द्वारा यह गारंटी दी जाती है कि \u0026ldquo;आदर्श वर्ग समूह की बाधा और इकाई समूह की बाधा दोनों ही भारी संभावना के साथ स्वाभाविक रूप से गायब हो जाएंगे\u0026rdquo; ।\nइसके साथ, अंततः हमें सच्चा समीकरण मिल जाता है: $$\\prod_{S} (a - b\\alpha) = \\gamma^2$$ अंतिम चरण: दुनियाओं का विलय और क्रिप्टोग्राफ़िक पतन अंत में, पहेली के सभी टुकड़े अपनी जगह पर हैं।\n[बीजगणितीय क्षेत्रों की दुनिया में तत्व (दुनिया A)] $\\gamma^2 = \\prod (a - b\\alpha)$ (हम $\\gamma$ खोजने के लिए वर्गमूल एल्गोरिदम का उपयोग करते हैं)\n[वास्तविक दुनिया में तत्व (परिमेय संख्याओं की दुनिया)] $V^2 = \\prod (a - bm)$ (चूंकि यह साधारण पूर्णांक गुणन है, हम आसानी से वर्गमूल $V$ पा सकते हैं)\nअब, उस जादुई पुल का समय आ गया है जिसे हमने शुरुआत में बनाया था, होमोमोर्फिज़्म $\\phi$ । हम $\\phi$ ($\\alpha$ को $m$ से बदलने वाला मैपिंग) का उपयोग करके दुनिया A के तत्व $\\gamma$ को दुनिया B ($N$ के शेषफल की दुनिया) में टेलीपोर्ट करते हैं। $$Y = \\phi(\\gamma) \\pmod N$$ दूसरी ओर, हम वास्तविक दुनिया में बनाए गए $V$ को सीधे शेषफल की दुनिया में लाते हैं और इसे $X$ कहते हैं। $$X = V \\pmod N$$ होमोमोर्फिज़्म की \u0026ldquo;संरचना संरक्षण\u0026rdquo; संपत्ति के कारण, दुनिया A में वर्ग संबंध दुनिया B (मोडुलो $N$ की दुनिया) में पूरी तरह से संरक्षित है। इसके अलावा, चूंकि मूल युग्म $(a, b)$, $a - b\\alpha$ और $a - bm$ के रूप में बनाए गए थे, ये $X$ और $Y$ मोडुलो $N$ की दुनिया में टकराते हैं और निम्नलिखित पूर्ण समीकरण उत्पन्न करते हैं:\n$$X^2 \\equiv Y^2 \\pmod N$$\nअब हमें बस यह प्रार्थना करनी है कि ये $X$ और $Y$ तुच्छ समाधान ($X \\equiv \\pm Y$) न हों, और $\\gcd(X - Y, N)$ की गणना करें।\nयदि यह एक गैर-तुच्छ समाधान है, तो यूक्लिड का एल्गोरिदम 0.001 सेकंड में चलेगा, और RSA क्रिप्टोग्राफी का दिल कहे जाने वाले गुप्त अभाज्य $p$ और $q$ आउटपुट स्क्रीन पर छप जाएंगे।\nयह आधुनिक गणित के सार का संग्रह, \u0026ldquo;सामान्य संख्या क्षेत्र चलनी (GNFS)\u0026rdquo; की पूरी तस्वीर है।\n","date":"2026-09-05T02:26:13+09:00","image":"http://kenji.blog/p/%E4%B8%80%E8%88%AC%E6%95%B0%E4%BD%93%E7%AF%A9%E6%B3%95gnfs%E3%81%AE%E7%9C%9F%E3%81%AE%E6%95%B0%E5%AD%A6%E7%9A%84%E6%A7%8B%E9%80%A0/rsa_encryption_break_1788542156523_hu57b4110ce75cf76414fb819be22bae03_1010164_120x120_fill_q75_box_smart1.jpg","permalink":"http://kenji.blog/hi/p/%E4%B8%80%E8%88%AC%E6%95%B0%E4%BD%93%E7%AF%A9%E6%B3%95gnfs%E3%81%AE%E7%9C%9F%E3%81%AE%E6%95%B0%E5%AD%A6%E7%9A%84%E6%A7%8B%E9%80%A0/","title":"सामान्य संख्या क्षेत्र चलनी (GNFS) की सच्ची गणितीय संरचना"},{"content":"इंटरनेट एन्क्रिप्शन को तोड़ने वाला मानवता का सबसे शक्तिशाली गणित \u0026ldquo;General Number Field Sieve (GNFS)\u0026rdquo; क्या है? जिस इंटरनेट का हम हर दिन उपयोग करते हैं। LINE संदेश, YouTube, Amazon पर खरीदारी आदि, सभी संचार \u0026ldquo;एन्क्रिप्शन\u0026rdquo; द्वारा सुरक्षित हैं। वर्तमान में, दुनिया में सबसे अधिक उपयोग किया जाने वाला एन्क्रिप्शन \u0026ldquo;RSA एन्क्रिप्शन\u0026rdquo; है।\nRSA एन्क्रिप्शन की रक्षा की कुंजी बहुत सरल है। यह इस गणितीय गुण का उपयोग करता है कि ** \u0026ldquo;विशाल संख्याओं का अभाज्य गुणनखंडन कंप्यूटर द्वारा भी हल नहीं किया जा सकता है\u0026rdquo; ** । उदाहरण के लिए, \u0026ldquo;15\u0026rdquo; के लिए हम तुरंत जान जाते हैं कि यह \u0026ldquo;3 × 5\u0026rdquo; है, लेकिन जैसे ही यह \u0026ldquo;270 अंकों की संख्या\u0026rdquo; बन जाता है, भले ही हम दुनिया के सभी सुपर कंप्यूटरों को मिला दें, इसे हल करने में करोड़ों साल लगेंगे।\nहालाँकि, गणितज्ञ भी चुप नहीं रहे। इस अभेद्य एन्क्रिप्शन को तोड़ने के लिए, मानवता ने एक लगभग जादुई एल्गोरिदम (गणना प्रक्रिया) बनाया है जिसे ** \u0026ldquo;General Number Field Sieve (GNFS)\u0026rdquo; ** कहा जाता है।\nइस लेख में, किसी भी तकनीकी शब्द का उपयोग किए बिना, केवल ** मिडिल स्कूल के गणित (अभाज्य गुणनखंडन, बीजगणितीय व्यंजक, महत्तम समापवर्तक) ** के ज्ञान के साथ, हम चरण-दर-चरण समझाएंगे कि \u0026ldquo;मानवता का यह सबसे शक्तिशाली एल्गोरिदम\u0026rdquo; एन्क्रिप्शन को कैसे तोड़ता है!\nअध्याय 1: डिकोडिंग का लक्ष्य एक \u0026ldquo;8वीं कक्षा का सूत्र\u0026rdquo; है विशाल अभाज्य गुणनखंडन का सामना करने के लिए सबसे बड़ी विशेष चाल। यह 8वीं कक्षा में सीखा गया सूत्र है:\n** $X^2 - Y^2 = (X + Y)(X - Y)$ **\nआप सोच सकते हैं: \u0026ldquo;सच में, क्या ऐसा बुनियादी सूत्र एन्क्रिप्शन को तोड़ सकता है?\u0026quot;। हालाँकि, यह वह मास्टर की है जो सब कुछ खोल देती है।\nएन्क्रिप्शन को तोड़ने का सबसे बड़ा लक्ष्य, एक विशाल संख्या $N$ के लिए, ** \u0026ldquo;ऐसे संख्याएँ ($X$ और $Y$) खोजना है जहाँ $X^2$ और $Y^2$ को $N$ से विभाजित करने पर शेषफल समान हो\u0026rdquo; ** ।\n\u0026ldquo;समान शेषफल\u0026rdquo; एन्क्रिप्शन को क्यों तोड़ता है? मान लीजिए कि दो संख्याओं, $X^2$ और $Y^2$, का \u0026ldquo;$N$ से विभाजित करने पर समान शेषफल\u0026rdquo; है। समान शेषफल होने का मतलब है कि एक नियम है जहाँ ** घटाव \u0026ldquo;$X^2 - Y^2$\u0026rdquo; हमेशा $N$ से पूरी तरह से विभाज्य होगा ($N$ का गुणज होगा) ** ।\nयहाँ, मान लें कि एन्क्रिप्शन में प्रयुक्त विशाल संख्या $N$ दो गुप्त अभाज्य संख्याओं ($p$ और $q$) के गुणन से बनी है ($N = p \\times q$)।\n$X^2 - Y^2$ का गुणनखंडन करने पर, हमें ** $(X - Y)(X + Y)$ ** मिलता है। इसका $N$ का गुणज होने का अर्थ है कि इस गुणन में कहीं न कहीं गुप्त अभाज्य संख्याएँ $p$ और $q$ छिपी हैं।\nयहाँ, एक चमत्कार होता है। गणितीय रूप से ** 50% (आधा) ** संभावना है कि दो अभाज्य संख्याएँ $p$ और $q$ अलग-अलग कमरों में चली जाएँगी: ** \u0026ldquo;$p$ $(X - Y)$ के कमरे में जाता है\u0026rdquo; और \u0026ldquo;$q$ $(X + Y)$ के कमरे में जाता है\u0026rdquo; ** ।\nकेवल अभाज्य संख्या $p$ के $(X - Y)$ कक्ष में प्रवेश करने के साथ, आइए $(X - Y)$ और $N$ के ** \u0026ldquo;महत्तम समापवर्तक (सबसे बड़ा उभयनिष्ठ भाग)\u0026rdquo; ** की गणना करें।\n$(X - Y)$ की सामग्री = $p \\times$ कोई संख्या $N$ की सामग्री = $p \\times q$ एकमात्र सामान्य भाग ** \u0026ldquo;$p$\u0026rdquo; ** है! दूसरे शब्दों में, जैसे ही महत्तम समापवर्तक की गणना की जाती है, छिपी हुई अभाज्य संख्या $p$ लीक हो जाती है और एन्क्रिप्शन पूरी तरह से डिकोड हो जाता है। (*\u0026ldquo;यूक्लिडियन एल्गोरिदम\u0026rdquo; का उपयोग करके स्मार्टफोन पर भी महत्तम समापवर्तक की तुरंत गणना की जा सकती है)।\n** 【छोटा कॉलम: वर्ग क्यों? घन या दोगुना काम क्यों नहीं करता?】 **\n\u0026ldquo;$2X - 2Y$\u0026rdquo; के साथ, यह $2(X - Y)$ हो जाता है और केवल एक कमरा होता है, इसलिए आप अभाज्यों को अलग नहीं कर सकते। \u0026ldquo;$X^3 - Y^3$\u0026rdquo; के साथ, कमरे का आकार असंतुलित हो जाता है और गणना अनावश्यक रूप से भारी हो जाती है। अभाज्यों को दो में अलग करने के लिए, \u0026ldquo;वर्ग\u0026rdquo; जो पूरी तरह से दो कमरों में विभाजित होता है, सबसे अधिक लागत प्रभावी है।\nअध्याय 2: X और Y कैसे खोजें? \u0026ldquo;अभाज्य संख्या कार्ड संग्रह पहेली\u0026rdquo; लक्ष्य समझ में आ गया है। हालाँकि, भले ही हम आँख बंद करके \u0026ldquo;$X^2$ और $Y^2$ जिनके समान शेषफल हैं\u0026rdquo; की खोज करें, ब्रह्मांड का अंत उन्हें खोजने से पहले आ जाएगा। इसलिए, गणितज्ञ एक शानदार विचार लेकर आए जिसे ** \u0026ldquo;अभाज्य संख्या कार्ड संग्रह पहेली\u0026rdquo; ** कहा जाता है।\nचरण 1: छलनी से केवल सोने की धूल (smooth numbers) एकत्र करें सबसे पहले, एक उपयुक्त संख्या $Z$ तैयार करें, इसे वर्ग करें और इसे $N$ से विभाजित करके शेषफल $W$ की गणना करें। ($Z^2 = W$ की शेषफल दुनिया)\nप्राप्त शेषफल $W$ का अभाज्य गुणनखंडन करें। यहाँ, केवल जब ** \u0026ldquo;2, 3, 5, 7, आदि जैसे छोटे अभाज्यों से बना $W$\u0026rdquo; ** दिखाई देता है, तो उस समीकरण को \u0026ldquo;विजेता कार्ड\u0026rdquo; के रूप में रखें, और यदि बड़े अभाज्य मिश्रित हों तो इसे फेंक दें। यह नदी में छलनी से बड़े पत्थरों को फेंकने और केवल सोने की धूल इकट्ठा करने जैसा है।\nचरण 2: सबको \u0026ldquo;सम\u0026rdquo; बनाने की पहेली उदाहरण के लिए, मान लीजिए कि निम्नलिखित 3 सोने की धूल वाले कार्ड एकत्र किए गए हैं।\nकार्ड A: $Z_1^2 = 2^3 \\times 3^1$ कार्ड B: $Z_2^2 = 2^1 \\times 5^1$ कार्ड C: $Z_3^2 = 3^1 \\times 5^1$ आइए उन सभी को गुणा करें। दाईं ओर $(2^3 \\times 3^1) \\times (2^1 \\times 5^1) \\times (3^1 \\times 5^1)$ हो जाता है, और सब कुछ एक साथ व्यवस्थित करने पर, यह ** \u0026ldquo;$2^4 \\times 3^2 \\times 5^2$\u0026rdquo; ** बन जाता है।\nआश्चर्य की बात है, अभाज्य संख्याओं की संख्या \u0026ldquo;4, 2, 2\u0026rdquo; हो गई, ** सभी सम संख्याएँ हैं ** ! सभी सम होने का अर्थ है कि यदि आप कुल राशि को आधा कर देते हैं, तो यह \u0026ldquo;किसी चीज़ का वर्ग\u0026rdquo; होगा। दूसरे शब्दों में, $(2^2 \\times 3^1 \\times 5^1)^2 = (60)^2$।\nबाईं ओर $(Z_1 \\times Z_2 \\times Z_3)^2$ है, तो अंततः, ** $X = (Z_1 \\times Z_2 \\times Z_3)$ ** ** $Y = 60$ ** \u0026ldquo;$X^2 = Y^2$\u0026rdquo; की बहुप्रतीक्षित जोड़ी पूरी हो गई है!\nकंप्यूटर के लिए, यह गणना करने की पहेली कि अभाज्य संख्याओं की संख्या \u0026ldquo;सम है या विषम (0 या 1)\u0026rdquo; कुछ ऐसा है जिसमें वे बहुत अच्छे हैं, इसलिए इस पद्धति के साथ $X$ और $Y$ उच्च गति पर पाए जा सकते हैं।\nअध्याय 3: निराशा की दीवार अब किसी भी एन्क्रिप्शन को तोड़ा जा सकता है! \u0026hellip;या हमने ऐसा सोचा, लेकिन एक बड़ी समस्या उत्पन्न होती है। यदि एन्क्रिप्शन संख्या $N$ \u0026ldquo;100 अंक\u0026rdquo; तक है, तो यह विधि (जिसे Quadratic Sieve कहा जाता है) इसे हल कर सकती है, लेकिन जब $N$ \u0026ldquo;200 या 300 अंक\u0026rdquo; बन जाता है, तो गणना के मध्य में आने वाला $W$ बहुत बड़ा हो जाता है।\nजब संख्याएँ बहुत बड़ी हो जाती हैं, तो \u0026ldquo;केवल छोटी अभाज्य संख्याओं (सोने की धूल) से बनी संख्याएँ\u0026rdquo; आना बंद हो जाती हैं। रेगिस्तान में कॉन्टैक्ट लेंस खोजना अधिक कठिन हो जाता है, और पहेली को सुलझाने के लिए आवश्यक कार्ड बिल्कुल भी एकत्र नहीं होंगे।\nयहाँ, अंततः, मानवता का अंतिम हथियार, ** \u0026ldquo;General Number Field Sieve (GNFS)\u0026rdquo; ** प्रकट होता है।\nअध्याय 4: मानवता का \u0026ldquo;दो दुनिया\u0026rdquo; बनाने का सबसे शक्तिशाली विचार GNFS का शानदार विचार है: ** \u0026ldquo;संख्याएँ विशाल हो जाती हैं क्योंकि हम केवल वास्तविक दुनिया में गणना करते हैं। तो, चलिए गणना के भार को दो भागों में विभाजित करने के लिए बहुपदों (अक्षर सूत्रों) का उपयोग करके एक \u0026lsquo;पर्दे के पीछे की दुनिया\u0026rsquo; बनाते हैं।\u0026rdquo; **\nअक्षर सूत्रों का जादू GNFS आधार संख्या $m$ का उपयोग करके विशाल संख्या $N$ को अक्षर व्यंजक में परिवर्तित करता है। उदाहरण के लिए यदि $N=100$, $m=4$ के साथ, तो यह $100 = 4^3 + 2(4^2) + 4$ है। अक्षर $x$ का उपयोग करके इसे सूत्र (पर्दे के पीछे की दुनिया) में बदलते हैं: ** $f(x) = x^3 + 2x^2 + x$ ** ।\nइस सूत्र की दिलचस्प बात यह है कि इसमें यह गुण है: ** \u0026ldquo;यदि आप $x$ के स्थान पर $m$ (उपरोक्त उदाहरण में 4) रखते हैं, तो आप हमेशा वास्तविक संख्या $N$ पर वापस लौट सकते हैं\u0026rdquo; ** ।\nएक साथ 2 दुनियाओं में सोने की धूल की तलाश GNFS यादृच्छिक पूर्णांक जोड़े $(a, b)$ बनाता है और एक साथ निम्नलिखित दो गणनाएं करता है:\n** वास्तविक दुनिया ** : $a - b \\times m$ ** अक्षरों की दुनिया ** : बहुपद नियमों द्वारा गणना की गई $a - b \\times x$ का मूल्य समस्या को दो दुनियाओं में विभाजित करके, संभाली गई संख्याओं का आकार काफी कम (हल्का) हो जाता है। यह एक विशाल चट्टान को आसान से संभालने वाले पत्थरों में विभाजित करने जैसा है।\nफिर, आप केवल उन चमत्कारी जोड़ियों $(a, b)$ को अलग करने और इकट्ठा करने के लिए छलनी का उपयोग करते हैं जहाँ ** \u0026ldquo;वास्तविक दुनिया और अक्षरों की दुनिया दोनों में, वे \u0026lsquo;केवल छोटी अभाज्य संख्याओं (सोने की धूल) से बने\u0026rsquo; हैं\u0026rdquo; ** । यही \u0026ldquo;Number Field Sieve\u0026rdquo; नाम का मूल है।\nवह क्षण जब एन्क्रिप्शन अंततः टूट जाता है एक बार दोनों दुनियाओं से करोड़ों \u0026ldquo;गोल्ड डस्ट कार्ड\u0026rdquo; एकत्र हो जाने के बाद, सुपरकंप्यूटर \u0026ldquo;वह संयोजन खोजने के लिए जहां अभाज्य संख्याओं की संख्या सभी सम हों\u0026rdquo; के लिए विशाल मैट्रिक्स गणना का उपयोग करते हैं, ठीक वैसे ही जैसे हमने अध्याय 2 में किया था।\nएक बार संयोजन मिल जाने के बाद:\nवास्तविक दुनिया में वर्ग संख्या को ** $X^2$ ** होने दें अक्षरों की दुनिया में बनाए गए वर्ग सूत्र को ** $Y(x)^2$ ** होने दें अंततः, अक्षर सूत्र $Y(x)$ में $x$ के स्थान पर $m$ को रखें, वास्तविक दुनिया में वापस कूदें और उनसे जुड़ें। फिर, गणितीय जादू की तरह, वह स्थिति जहाँ ** \u0026ldquo;$X^2$ और $Y^2$ का शेषफल समान है\u0026rdquo; ** पूरी तरह से सिद्ध हो जाती है!\nबाकी, अध्याय 1 की तरह, केवल $X - Y$ और $N$ के महत्तम समापवर्तक की गणना करना है, और अभेद्य RSA एन्क्रिप्शन ढह जाएगा, जिससे गुप्त अभाज्य संख्याएँ सामने आ जाएंगी।\nनिष्कर्ष: गणित कभी समाप्त नहीं होता आप सोच रहे होंगे: \u0026ldquo;बढ़िया, GNFS के साथ किसी भी एन्क्रिप्शन को तोड़ा जा सकता है!\u0026quot;। हालाँकि, RSA एन्क्रिप्शन ने भी हार नहीं मानी है। आज इंटरनेट पर जो उपयोग किया जाता है वह एक राक्षसी विशाल संख्या है जिसे \u0026ldquo;RSA-2048 (लगभग 617 अंक)\u0026rdquo; कहा जाता है।\nGNFS मानवता का सबसे शक्तिशाली एल्गोरिदम है, लेकिन 270 अंकों (RSA-270) को हल करने के लिए भी कहा जाता है कि दुनिया भर के कंप्यूटरों को जोड़ने पर भी हजारों या दसियों हजार साल लगेंगे। अभी के लिए, हमारे LINE और बैंक डेटा सुरक्षित हैं।\nलेकिन क्या होगा यदि ** \u0026ldquo;किसी भी विशाल संख्या के लिए $X$ और $Y$ को तुरंत खोजने का जादू\u0026rdquo; ** प्रकट हो जाए? वास्तव में, इसके सबसे करीब ** \u0026ldquo;क्वांटम कंप्यूटर (Shor का एल्गोरिदम)\u0026rdquo; ** है जो वर्तमान में विकास में है। क्वांटम यांत्रिकी की तरंग प्रकृति का उपयोग करते हुए, यह गणितीय रूप से सिद्ध हो गया है कि थकाऊ कार्ड संग्रह पहेली को दरकिनार करना और एक ही बार में उत्तर तक पहुंचना संभव है।\nएन्क्रिप्शन बनाने वालों (रक्षा) और इसे तोड़ने के लिए एल्गोरिदम बनाने वालों (हमला) के बीच बुद्धि की एक अंतहीन लड़ाई। यह जानकर कि मिडिल स्कूल में सीखा गया \u0026ldquo;अभाज्य गुणनखंडन\u0026rdquo; और \u0026ldquo;अक्षर व्यंजक\u0026rdquo; वास्तव में वे हथियार हैं जो वैश्विक सुरक्षा की अग्रिम पंक्ति में लड़ रहे हैं, क्या गणित की कक्षाएं थोड़ी अधिक दिलचस्प नहीं लगती हैं?\nजो भविष्य के सबसे मजबूत एल्गोरिदम की खोज करेगा, वह आप ही हो सकते हैं जो इस लेख को पढ़ रहे हैं!\n(※यह लेख छात्रों के लिए कोड-ब्रेकिंग के गणितीय आकर्षण का एक वैचारिक रूपांतरण है। वास्तविक GNFS की गणना उच्च विश्वविद्यालय गणित, जैसे बीजीय संख्या क्षेत्रों के आदर्श वर्ग समूहों और समरूपता का उपयोग करके सख्ती से की जाती है)\n","date":"2026-09-05T02:09:08+09:00","image":"http://kenji.blog/p/%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%8D%E3%83%83%E3%83%88%E3%81%AE%E6%9A%97%E5%8F%B7%E3%82%92%E7%A0%B4%E3%82%8B%E4%BA%BA%E9%A1%9E%E6%9C%80%E5%BC%B7%E3%81%AE%E6%95%B0%E5%AD%A6%E4%B8%80%E8%88%AC%E6%95%B0%E4%BD%93%E7%AF%A9%E6%B3%95gnfs%E3%81%A8%E3%81%AF/gnfs_two_worlds_1788542142485_huf997c6e55368509d0617b56f68899854_1135822_120x120_fill_q75_box_smart1.jpg","permalink":"http://kenji.blog/hi/p/%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%8D%E3%83%83%E3%83%88%E3%81%AE%E6%9A%97%E5%8F%B7%E3%82%92%E7%A0%B4%E3%82%8B%E4%BA%BA%E9%A1%9E%E6%9C%80%E5%BC%B7%E3%81%AE%E6%95%B0%E5%AD%A6%E4%B8%80%E8%88%AC%E6%95%B0%E4%BD%93%E7%AF%A9%E6%B3%95gnfs%E3%81%A8%E3%81%AF/","title":"इंटरनेट एन्क्रिप्शन को तोड़ने वाला मानवता का सबसे शक्तिशाली गणित \"General Number Field Sieve (GNFS)\" क्या है?"},{"content":"टीकाकरण विरोधी के गुण और दोष――\u0026ldquo;सद्भावनापूर्ण चिंता\u0026rdquo; जिसने 5000 लोगों के भविष्य को मार डाला, और महामारी विज्ञान का सबक जो हमें सीखना चाहिए कोरोना महामारी द्वारा उजागर \u0026ldquo;कारण और प्रभाव का भ्रम\u0026rdquo; 2021 के बाद से, जापान में नए कोरोनावायरस के खिलाफ टीकाकरण तेजी से आगे बढ़ा। यह मानव इतिहास में एक दुर्लभ सार्वजनिक स्वास्थ्य परियोजना थी, जिसमें लगभग 80% नागरिकों ने कम समय में टीकाकरण करवाया। इस प्रक्रिया में, हमने सोशल मीडिया और मीडिया के माध्यम से अनगिनत \u0026ldquo;चीखें\u0026rdquo; देखीं। \u0026ldquo;टीकाकरण के कुछ दिनों बाद मेरे परिवार के एक सदस्य की मृत्यु हो गई\u0026rdquo;, \u0026ldquo;टीकाकरण के बाद से अस्पष्टीकृत खराब स्वास्थ्य जारी है\u0026rdquo;――। ये शिकायतें गंभीर हैं, और पीड़ित के लिए यह पीड़ा एक अकाट्य सत्य है।\nहालांकि, यहां महामारी विज्ञान में एक ठंडा, लेकिन अत्यंत महत्वपूर्ण \u0026ldquo;जाल\u0026rdquo; मौजूद है। जापान की जनसंख्या के आकार को देखते हुए, चाहे वे टीका लगाए या न लगाए, हर दिन लगभग 3,000 से 4,000 लोग किसी न किसी कारण (बीमारी, दुर्घटना, जीवनकाल) से मर जाते हैं। यदि अधिकांश नागरिक एक ही समय में टीका लगवाते हैं, तो सांख्यिकीय रूप से एक निश्चित संख्या में ऐसे लोग होंगे जो \u0026ldquo;टीकाकरण के अगले दिन (टीके से असंबंधित कारणों से) मर जाते हैं\u0026rdquo;। तकनीकी शब्दों में इसे ** \u0026ldquo;संयोग (Coincidence)\u0026rdquo; ** कहा जाता है।\nमनुष्य एक संज्ञानात्मक पूर्वाग्रह से लैस है जिसे \u0026ldquo;कारण और प्रभाव की भ्रांति (पोस्ट-हॉक एर्गो प्रोप्टर हॉक)\u0026rdquo; कहा जाता है। यदि \u0026ldquo;B (मृत्यु) A (टीकाकरण) के बाद होती है\u0026rdquo;, तो वे सहज रूप से इसे इस तरह जोड़ते हैं कि \u0026ldquo;A, B का कारण है\u0026rdquo;। कोरोना महामारी के दौरान, यह संज्ञानात्मक पूर्वाग्रह सोशल मीडिया के प्रवर्धन उपकरण द्वारा फैलाया गया था, जिससे उन लोगों का एक वर्ग बना, जिन्होंने वैज्ञानिक सत्यापन की प्रतीक्षा किए बिना \u0026ldquo;टीका = खतरा\u0026rdquo; की छवि स्थापित की।\nकई सार्वजनिक स्वास्थ्य विशेषज्ञों ने इस दृश्य को डेजा वू (Déjà vu) की भावना के साथ देखा। ऐसा इसलिए है क्योंकि कुछ साल पहले ही, इसी \u0026ldquo;अवैज्ञानिक चिंता\u0026rdquo; के कारण जापान एकमात्र विकसित देश था, जिसने स्वेच्छा से रोके जा सकने वाली बीमारियों को रोकने के साधनों को छोड़ दिया था। यह ** \u0026ldquo;सर्वाइकल कैंसर वैक्सीन (HPV वैक्सीन)\u0026rdquo; ** का मुद्दा है।\n2013, जापान में क्या हुआ घड़ी की सुई को थोड़ा पीछे घुमाते हैं। सर्वाइकल कैंसर (Cervical Cancer) एक ऐसी बीमारी है जो सालाना लगभग 11,000 महिलाओं को प्रभावित करती है और लगभग 2,900 लोगों की जान ले लेती है। विशेष रूप से, इसे \u0026ldquo;मदर किलर\u0026rdquo; भी कहा जाता है क्योंकि यह 20 से 40 वर्ष की महिलाओं पर हमला करता है, जो बच्चे के पालन-पोषण और काम के चरम पर होती हैं। इसका कारण ह्यूमन पैपिलोमावायरस (HPV) का संक्रमण है, जो एक सामान्य वायरस है और माना जाता है कि यौन अनुभव वाली 80% महिलाएं अपने जीवन में कम से कम एक बार इससे संक्रमित होती हैं। इस वायरल संक्रमण को रोकने वाले HPV वैक्सीन को दुनिया भर में \u0026ldquo;कैंसर को रोकने वाले एक क्रांतिकारी वैक्सीन\u0026rdquo; के रूप में पेश किया गया था, और अप्रैल 2013 में जापान में भी इसे नियमित टीकाकरण (राज्य द्वारा दृढ़ता से अनुशंसित और मुफ्त में उपलब्ध) बनाया गया था।\nहालांकि, इसके तुरंत बाद स्थिति बिगड़ गई। कुछ लड़कियों से जिन्हें टीका लगाया गया था, शरीर में दर्द, मोटर विकार और स्मृति हानि जैसे लक्षणों की सूचना मिली थी, और मीडिया ने हर दिन इसे \u0026ldquo;टीके का संदिग्ध दुष्प्रभाव\u0026rdquo; बताकर बड़े पैमाने पर रिपोर्ट किया। ऐंठन वाली लड़कियों के फुटेज का दर्शकों पर गहरा प्रभाव पड़ा, और जनमत जल्दी ही \u0026ldquo;वैक्सीन खतरे के सिद्धांत\u0026rdquo; की ओर झुक गया।\nइसके जवाब में, स्वास्थ्य, श्रम और कल्याण मंत्रालय ने जून 2013 में, नियमित टीकाकरण शुरू होने के केवल दो महीने बाद, \u0026ldquo;सक्रिय सिफारिश को रोकने\u0026rdquo; का फैसला किया। यह कोई \u0026ldquo;प्रतिबंध\u0026rdquo; या \u0026ldquo;रद्दीकरण\u0026rdquo; नहीं था, बल्कि एक अत्यंत अस्पष्ट राजनीतिक निर्णय था कि \u0026ldquo;नियमित टीकाकरण का ढांचा रहेगा, लेकिन सरकार व्यक्तिगत नोटिस भेजना बंद कर देगी।\u0026rdquo; हालांकि, नागरिकों तक यह संदेश पहुंचा कि \u0026ldquo;सरकार ने इसे खतरनाक मानकर रोक दिया है।\u0026rdquo; नतीजतन, टीकाकरण की दर, जो 70% से अधिक थी, पलक झपकते ही 1% से भी कम हो गई।\nयहीं से जापान में ** \u0026ldquo;खोए हुए 8 वर्ष (वैक्सीन गैप)\u0026rdquo; ** की शुरुआत होती है।\nनागोया स्टडी ने \u0026ldquo;सच्चाई\u0026rdquo; को उजागर किया क्या मीडिया द्वारा बताए गए लक्षण वास्तव में वैक्सीन के कारण थे? एक बड़े पैमाने पर अध्ययन है जिसने इस प्रश्न का वैज्ञानिक उत्तर देने का प्रयास किया। इसे आम तौर पर ** \u0026ldquo;नागोया स्टडी (Nagoya Study)\u0026rdquo; ** के रूप में जाना जाता है।\n2015 में, नागोया शहर ने लगभग 70,000 युवा महिलाओं का एक बड़े पैमाने पर प्रश्नावली सर्वेक्षण किया। इसमें \u0026ldquo;जिन्होंने टीका लगवाया था\u0026rdquo; और \u0026ldquo;जिन्होंने टीका नहीं लगवाया था\u0026rdquo; दोनों शामिल थे, और उनसे 24 मदों जैसे \u0026ldquo;अनियमित मासिक धर्म\u0026rdquo;, \u0026ldquo;जोड़ों का दर्द\u0026rdquo;, और \u0026ldquo;एकाग्रता में कमी\u0026rdquo; वाले लक्षणों की उपस्थिति या अनुपस्थिति के बारे में पूछा गया था। यदि वैक्सीन कारण था, तो \u0026ldquo;जिन्होंने टीका लगवाया था\u0026rdquo; वाले समूह में ये लक्षण स्पष्ट रूप से अधिक होने चाहिए थे।\nपरिणाम चौंकाने वाले थे। ** \u0026ldquo;टीकाकरण वाले समूह\u0026rdquo; और \u0026ldquo;गैर-टीकाकरण वाले समूह\u0026rdquo; के बीच लक्षणों की घटना दर में कोई महत्वपूर्ण अंतर नहीं पाया गया। **\nइसका क्या अर्थ है? किशोरावस्था की लड़कियों में, टीके की परवाह किए बिना, हार्मोनल संतुलन में बदलाव और विकास अवधि के लिए विशिष्ट परिस्थितियों के कारण ऑर्थोस्टैटिक रेगुलेटरी डिसऑर्डर और पुराने दर्द जैसी शारीरिक बीमारियों के विकसित होने की संभावना अधिक होती है। दूसरे शब्दों में, \u0026ldquo;जिन लड़कियों को टीका नहीं लगाया गया था लेकिन उनमें समान लक्षण थे\u0026rdquo; का अनुपात उन \u0026ldquo;लड़कियों के समान था जिन्हें टीका लगने के बाद लक्षण विकसित हुए थे\u0026rdquo; जैसा कि मीडिया द्वारा रिपोर्ट किया गया था। हालांकि, उन लड़कियों की खराब सेहत जिन्हें टीका नहीं लगाया गया था, उन्हें \u0026ldquo;यौवन संबंधी विकारों\u0026rdquo; के रूप में माना गया, और केवल उन लड़कियों की खराब सेहत जिन्हें टीका लगाया गया था, उन्हें \u0026ldquo;टीके की क्षति\u0026rdquo; के रूप में उजागर किया गया। डेटा ने दिखाया कि इस बात की बहुत अधिक संभावना थी कि यह उस घटना की वास्तविक पहचान थी जिसे \u0026ldquo;ड्रग डैमेज\u0026rdquo; के रूप में शोर मचाया गया था।\nइसके अलावा, \u0026ldquo;नोसेबो प्रभाव (Nocebo effect)\u0026rdquo; की संलिप्तता की भी ओर इशारा किया गया है। यह \u0026ldquo;प्लेसिबो प्रभाव (Placebo effect)\u0026rdquo; के विपरीत है, और एक ऐसी घटना है जिसमें, जब यह विश्वास किया जाता है कि \u0026ldquo;यह शरीर के लिए बुरा है\u0026rdquo;, तो चिंता और भय के कारण वास्तव में दर्द और परेशानी होती है। इस संभावना से इनकार नहीं किया जा सकता है कि लगातार नकारात्मक रिपोर्टिंग का लड़कियों के नाजुक दिमाग और शरीर पर प्रभाव पड़ा।\nसंख्याओं में \u0026ldquo;निष्क्रियता का पाप\u0026rdquo; \u0026ldquo;सुरक्षा के लिए सिफारिशें रोकना।\u0026rdquo; पहली नज़र में, यह निर्णय एक \u0026ldquo;सतर्क और सुरक्षित विकल्प\u0026rdquo; लगता है। कुछ होने के बाद बहुत देर हो जाएगी, इसलिए हमें संदेह होने पर रुकना चाहिए। हालांकि, सार्वजनिक स्वास्थ्य में, \u0026ldquo;कुछ न करना (निष्क्रियता)\u0026rdquo; कभी-कभी \u0026ldquo;कुछ करने के जोखिम\u0026rdquo; से कहीं अधिक नुकसान पहुंचाता है।\nओसाका विश्वविद्यालय की एक शोध टीम ने सिफारिशों को वापस लेने के प्रभाव के बारे में एक क्रूर अनुमान प्रकाशित किया है। 2013 और 2019 के बीच टीकाकरण दर में भारी गिरावट के कारण, भविष्य में रोके जा सकने वाले ** सर्वाइकल कैंसर के रोगियों की संख्या में लगभग 25,000 की वृद्धि होगी, और मौतों की संख्या में लगभग 5,000 से 5,700 की वृद्धि होगी ** ।\n5,000 से अधिक मौतें। यह एक बड़े पैमाने पर प्राकृतिक आपदा के बराबर संख्या है। \u0026ldquo;दुष्प्रभावों के बारे में चिंता\u0026rdquo; के जोखिम से बचने की कोशिश के परिणामस्वरूप, जिसका वैज्ञानिक रूप से कारण और प्रभाव संबंध स्पष्ट नहीं है, हमने भविष्य की महिलाओं पर \u0026ldquo;कैंसर से मृत्यु\u0026rdquo; का एक निश्चित और गंभीर जोखिम डाल दिया है।\nयदि हम दुनिया की ओर देखें, तो अंतर स्पष्ट है। ऑस्ट्रेलिया में, पुरुषों और महिलाओं दोनों के लिए टीकाकरण के प्रसार के साथ, यह भविष्यवाणी की गई है कि सर्वाइकल कैंसर को 2028 के आसपास \u0026ldquo;उन्मूलन (दुर्लभ कैंसर बनना)\u0026rdquo; कर दिया जाएगा। यूनाइटेड किंगडम में, ऐसी रिपोर्टें हैं कि टीकाकरण पीढ़ी में सर्वाइकल कैंसर की घटना लगभग शून्य हो गई है। जबकि दुनिया उस भविष्य की ओर बढ़ रही है जहां \u0026ldquo;कैंसर पर विजय प्राप्त कर ली गई है,\u0026rdquo; केवल जापान ही उस अतीत में पीछे रह गया है जहां \u0026ldquo;कैंसर लगातार बढ़ रहा है।\u0026rdquo; 2015 में, WHO (विश्व स्वास्थ्य संगठन) की वैक्सीन सुरक्षा सलाहकार समिति ने नाम लेकर जापान की स्थिति की आलोचना की। उन्होंने कहा कि \u0026ldquo;वैज्ञानिक साक्ष्य पर आधारित नहीं होने वाले नीतिगत निर्णय वास्तविक नुकसान (कैंसर से मृत्यु) का कारण बन रहे हैं।\u0026rdquo;\nसमुद्र पार फैलती \u0026ldquo;वैक्सीन हिचकिचाहट (Vaccine Hesitancy)\u0026rdquo; जापान में हुई HPV वैक्सीन की त्रासदी कोई \u0026ldquo;केवल जापान की विशेष परिस्थिति\u0026rdquo; नहीं है। वर्तमान में दुनिया भर में ऐसे मामलों की रिपोर्ट की जा रही है जो दर्शाते हैं कि जब विज्ञान के बजाय \u0026ldquo;सहज चिंता\u0026rdquo; या \u0026ldquo;विचारधारा\u0026rdquo; को प्राथमिकता दी जाती है, तो संक्रामक रोग कभी भी और कहीं भी अपने दांत दिखा सकते हैं।\nइसका एक प्रमुख उदाहरण संयुक्त राज्य अमेरिका में ** \u0026ldquo;खसरा (Measles)\u0026rdquo; का प्रकोप ** है।\nखसरा एक अत्यधिक संक्रामक वायरस है, लेकिन यह एक ऐसी बीमारी है जिसे टीकों द्वारा लगभग पूरी तरह से रोका जा सकता है। संयुक्त राज्य अमेरिका में, एक संपूर्ण टीकाकरण कार्यक्रम के कारण, 2000 में \u0026ldquo;उन्मूलन (elimination)\u0026rdquo; की घोषणा की गई थी। दूसरे शब्दों में, यह माना गया था कि देश से स्थानिक वायरस गायब हो गया है। हालांकि, हाल के वर्षों में यह खसरा फिर से फैलने लगा है।\nबीबीसी की एक रिपोर्ट (2024) के अनुसार, अमेरिकी स्वास्थ्य अधिकारियों का कहना है कि कुछ समुदायों में बनी हुई \u0026ldquo;वैक्सीन हिचकिचाहट (Vaccine Hesitancy)\u0026rdquo; संक्रमण के प्रसार का आधार बन रही है। धार्मिक कारणों से, या \u0026ldquo;प्रकृतिवादी\u0026rdquo; होने का दावा करने वाले कुछ समूहों, या गलत सूचनाओं पर आधारित एंटी-वैक्सीन विचारधारा वाले क्षेत्रों में, टीकाकरण दर में गिरावट आई है। वहां विदेशों से वायरस लाए जाने से, उन लोगों में विस्फोटक संक्रमण हो रहा है जिनके पास प्रतिरक्षा नहीं है।\nखसरा कोई ऐसी बीमारी नहीं है जो सिर्फ बुखार या दाने के साथ खत्म हो जाती है। यह निमोनिया और एन्सेफलाइटिस जैसी गंभीर जटिलताओं का कारण बनता है, और विकसित देशों में भी घातक हो सकता है। एक बीमारी जिसे मानवता ने कभी अपनी बुद्धि जुटाकर \u0026ldquo;नियंत्रित\u0026rdquo; कर लिया था, वह अब लोगों के \u0026ldquo;संदेह\u0026rdquo; का फायदा उठाकर फिर से बच्चों के जीवन को खतरे में डाल रही है। अमेरिका का उदाहरण हमें चेतावनी देता है: \u0026ldquo;उच्च टीकाकरण दर का तटबंध एक पल में ढह जाएगा यदि लोगों का विश्वास डगमगाता है।\u0026rdquo;\nमीडिया और विशेषज्ञ, और हमारी हार ऐसी स्थितियां बार-बार क्यों होती हैं? वहां सूचना की विषमता है जो आधुनिक समाज और हमारे संज्ञानात्मक पूर्वाग्रहों की विशेषता है।\nजापान में HPV वैक्सीन के मुद्दे में, मीडिया ने \u0026ldquo;टीके के संदिग्ध दुष्प्रभावों\u0026rdquo; को सनसनीखेज तरीके से रिपोर्ट किया। \u0026ldquo;बेचारी पीड़िता\u0026rdquo; बनाम \u0026ldquo;ठंडी सरकार/दवा कंपनी\u0026rdquo; की संरचना कहानी के रूप में बहुत शक्तिशाली थी और इसने दर्शकों की भावनाओं को गहराई से झकझोर दिया। दूसरी ओर, विशेषज्ञों की वैज्ञानिक व्याख्याएं जैसे \u0026ldquo;सांख्यिकीय रूप से कोई महत्वपूर्ण अंतर नहीं है\u0026rdquo; और \u0026ldquo;लाभ जोखिम से अधिक हैं\u0026rdquo;, नीरस और ठंडी लग रही थीं, और भावनाओं के प्रवाह के सामने बहुत ही कमजोर थीं।\nविज्ञान की दुनिया में, यदि 99% वैज्ञानिकों द्वारा समर्थित कोई स्थापित सिद्धांत है और 1% असहमति है, तो उन्हें \u0026ldquo;समान राय\u0026rdquo; के रूप में नहीं माना जाता है। हालांकि, \u0026ldquo;निष्पक्षता\u0026rdquo; पर जोर देने या ध्यान आकर्षित करने के लिए, मीडिया ने हजारों लोगों की जान बचाने वाले डेटा और एक व्यक्ति की भावनात्मक क्षति की शिकायत को \u0026ldquo;समान रूप से\u0026rdquo; समानांतर में रिपोर्ट किया। राजनेताओं ने भी जनमत की प्रतिक्रिया से डरते हुए वैज्ञानिक साक्ष्य के बजाय \u0026ldquo;उस समय के माहौल\u0026rdquo; को पढ़ने को प्राथमिकता दी। नतीजतन, जापान में लगभग 9 वर्षों तक HPV वैक्सीन की सक्रिय सिफारिश को रोक दिया गया था, जिसने इस बीच कैंसर के कई ऐसे मामले पैदा किए जिन्हें रोका जा सकता था।\nइतिहास खुद को दोहराता है――\u0026ldquo;माहौल\u0026rdquo; का विरोध करने वाली बुद्धि के लिए 2022 में, जापान में अंततः HPV वैक्सीन की सक्रिय सिफारिश फिर से शुरू हो गई। लेकिन खोया हुआ समय और जीवन वापस नहीं आएगा। और अब, ठीक वैसे ही जैसे अमेरिका में खसरे का फिर से प्रकोप हो रहा है, अगर हम सावधान नहीं रहे तो इतिहास खुद को बार-बार दोहराएगा।\nटीकाकरण विरोधी आंदोलनों या चिकित्सा देखभाल के बारे में चिंताओं को पूरी तरह से नकारना संभव नहीं है। जो आप अपने शरीर में डालते हैं उसके बारे में सतर्क रहना एक मानवीय रक्षा वृत्ति है, और अतीत में वास्तव में दवा से नुकसान हुआ है। लोकतंत्र में सत्ता की निगरानी करना और उस पर सवाल उठाना महत्वपूर्ण है।\nहालांकि, कोरोना वैक्सीन, HPV वैक्सीन, और अमेरिका में खसरे के प्रकोप जैसी घटनाओं की एक श्रृंखला ने जो कठोर वास्तविकता सामने रखी है, वह यह है कि ** \u0026ldquo;विज्ञान की अनदेखी करने वाली सद्भावनापूर्ण चिंता\u0026rdquo; वायरस से कहीं अधिक जीवन ले सकती है ** ।\n\u0026ldquo;यह खतरनाक हो सकता है, इसलिए चलो इंतजार करते हैं और देखते हैं।\u0026rdquo; क्या हम यह निर्णय लेते समय \u0026ldquo;इंतजार करने और देखने के दौरान बीमारी से मरने की संभावना\u0026rdquo; को गणना में शामिल कर रहे हैं? \u0026ldquo;प्राकृतिक चीजें सबसे अच्छी होती हैं।\u0026rdquo; जब हम ऐसा कहते हैं, तो বাগ हम उस इतिहास को भूल नहीं गए हैं कि \u0026ldquo;प्रकृति में मौजूद वायरस ही सबसे बेदर्दी से जीवन छीनते रहे हैं\u0026rdquo;?\nभविष्य में भी नए संक्रामक रोग सामने आएंगे और नए टीके विकसित किए जाएंगे। उस समय, क्या हम फिर से \u0026ldquo;संयोग\u0026rdquo; की घटनाओं से भ्रमित होंगे और भावनात्मक उकसावे में बह जाएंगे? या हम शांति से डेटा को समझ पाएंगे और जोखिमों और लाभों को तौल पाएंगे?\nकहा जाता है कि इतिहास खुद को दोहराता है। लेकिन इसे केवल हमारा तर्क ही रोक सकता है। हमें सांख्यिकीय रूप से सही डेटा को देखना चाहिए और एक ऐसी बुद्धि होनी चाहिए जो ** \u0026ldquo;माहौल\u0026rdquo; के बजाय \u0026ldquo;तथ्यों\u0026rdquo; को चुनती है। यही आधुनिक युग में जीने वाले हम लोगों की जिम्मेदारी है। **\nसंदर्भ और डेटा स्रोत स्वास्थ्य, श्रम और कल्याण मंत्रालय : \u0026ldquo;ह्यूमन पैपिलोमावायरस संक्रमण - सर्वाइकल कैंसर और HPV वैक्सीन\u0026rdquo; राष्ट्रीय कैंसर केंद्र : कैंसर सूचना सेवा \u0026ldquo;सर्वाइकल कैंसर\u0026rdquo; सांख्यिकीय डेटा BBC News (जापानी) : \u0026ldquo;US CDC खसरे के प्रकोप के बीच टीकाकरण का आह्वान करता है, विश्व स्तर पर संक्रमण बढ़ता है\u0026rdquo; (2024) और संबंधित मूल लेख ओसाका विश्वविद्यालय अनुसंधान दल (Yagi A, et al. Lancet Public Health. 2020) : HPV वैक्सीन के नियमित टीकाकरण की सक्रिय सिफारिश को रोकने के कारण अधिक रुग्णता और मृत्यु दर के अनुमान पर अध्ययन नागोया स्टडी (Suzuki S, et al. Papillomavirus Res. 2018) ","date":"2026-01-24T15:41:23+09:00","image":"http://kenji.blog/p/%E5%8F%8D%E3%83%AF%E3%82%AF%E3%83%81%E3%83%B3%E3%81%AE%E5%8A%9F%E7%BD%AA/img_hu25fb505b5ce09f8b6e475386b0bbff8f_1013820_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/%E5%8F%8D%E3%83%AF%E3%82%AF%E3%83%81%E3%83%B3%E3%81%AE%E5%8A%9F%E7%BD%AA/","title":"टीकाकरण विरोधी के गुण और दोष"},{"content":"\u0026ldquo;जापानी फर्स्ट\u0026rdquo; के भ्रम और वास्तविकता: 2026 में जापान द्वारा सामना किया जाने वाला \u0026ldquo;सह-अस्तित्व\u0026rdquo; नामक रक्षा तंत्र प्रस्तावना: अब यह शब्द दिल को क्यों छू रहा है हम अब एक अभूतपूर्व युग के मोड़ पर खड़े हैं। बढ़ती महंगाई, वास्तविक मजदूरी में ठहराव, और स्पष्ट रूप से घटती जन्म दर और बढ़ती उम्र। हर बार जब सुपरमार्केट की अलमारियों पर वस्तुओं के मूल्य टैग बदले जाते हैं, तो भविष्य को लेकर चिंता हमारे दिलों पर छाया डालती है। इस घुटन भरे माहौल में, एक शब्द ऐसा है जिसे तेजी से समर्थन मिल रहा है। वह है \u0026ldquo;जापानी फर्स्ट\u0026rdquo; ।\n\u0026ldquo;सबसे पहले हमारे अपने नागरिकों का जीवन समृद्ध होना चाहिए\u0026rdquo; और \u0026ldquo;जापानी संस्कृति और सुरक्षा को सर्वोच्च प्राथमिकता के रूप में संरक्षित किया जाना चाहिए\u0026rdquo; जैसी इच्छाएं, एक संप्रभु नागरिक और इस देश में रहने वाले एक इंसान के रूप में अत्यंत स्वाभाविक और तत्काल आवश्यकताएं हैं। हालाँकि, इस शब्द द्वारा प्रस्तुत \u0026ldquo;आदर्श\u0026rdquo; और सांख्यिकीय डेटा द्वारा दिखाए गए \u0026ldquo;वास्तविकता\u0026rdquo; के बीच एक बड़ी खाई मौजूद है, जिसका हमें सामना करना होगा।\nइस लेख में, हम भावनाओं और लेबलों को हटाकर, वस्तुनिष्ठ डेटा, समय के साथ बदलाव और समाज के विभिन्न क्षेत्रों में हो रहे तथ्यों के आधार पर इस मुद्दे की वास्तविकता का पता लगाएंगे।\nअध्याय 1: \u0026ldquo;जापानी फर्स्ट\u0026rdquo; का समयक्रम और सामाजिक पृष्ठभूमि यह शब्द अचानक प्रकट नहीं हुआ। यह वैश्विक प्रवृत्तियों और जापान की विशिष्ट परिस्थितियों के जटिल रूप से उलझने के कारण विकसित हुआ है।\n1. 2016-2017: शब्दों का आयात और स्थापना 2016 में, डोनाल्ड ट्रम्प द्वारा प्रस्तुत \u0026ldquo;अमेरिका फर्स्ट\u0026rdquo; ने पूरी दुनिया को चौंका दिया। घरेलू स्तर पर, 2017 में टोक्यो की गवर्नर यूरिको कोइके के नेतृत्व वाली \u0026ldquo;टोमिन फर्स्ट नो काई\u0026rdquo; (टोक्यो के नागरिकों को प्राथमिकता देने वाली पार्टी) ने ध्यान आकर्षित किया। इस समय, यह मुख्य रूप से नीतिगत प्राथमिकताओं को स्पष्ट करने के लिए बयानबाजी के रूप में इस्तेमाल किया गया था, और बहिष्करण का स्वर अभी भी सीमित था।\n2. 2023-2024: चिंता का स्पष्ट होना महामारी के बाद आर्थिक सुधार में देरी और येन में तेजी से गिरावट के कारण आई महंगाई ने सामान्य परिवारों को कड़ी टक्कर दी। इसी समय, सोशल मीडिया पर \u0026ldquo;विदेशियों को बहुत अधिक समर्थन मिल रहा है\u0026rdquo; और \u0026ldquo;जापानी लोगों का टैक्स विदेशियों को दिया जा रहा है\u0026rdquo; जैसी अधूरी जानकारी पर आधारित असंतोष भड़कने लगा।\n3. 2025-2026: राजनीतिक ताकतों और सोशल मीडिया का संलयन 2025 के राष्ट्रीय चुनावों में, \u0026ldquo;जापानी फर्स्ट\u0026rdquo; को अपने आधिकारिक नारे के रूप में इस्तेमाल करने वाली ताकतों ने एक निश्चित संख्या में सीटें हासिल कीं। सोशल मीडिया एल्गोरिदम ने लोगों की चिंताओं पर प्रतिक्रिया दी और चरम पोस्ट को प्राथमिकता से दिखाया, जिससे \u0026ldquo;इको चैंबर प्रभाव\u0026rdquo; तेज हो गया जहां केवल कुछ निश्चित मूल्यों को मजबूत किया गया था।\nसमाचार पत्रों द्वारा किए गए नवीनतम जनमत सर्वेक्षण (2025 के अंत में) में, इस नारे के प्रति \u0026ldquo;सहमत / कुछ हद तक सहमत\u0026rdquo; 42% और \u0026ldquo;असहमत / कुछ हद तक असहमत\u0026rdquo; 38% थे, जो इस वास्तविकता को उजागर करता है कि जनमत पूरी तरह से दो हिस्सों में बंटा हुआ है।\nअध्याय 2: अर्थव्यवस्था और सामाजिक सुरक्षा की सच्चाई - \u0026ldquo;छीनने वाली उपस्थिति\u0026rdquo; या \u0026ldquo;सहायक स्तंभ\u0026rdquo; \u0026ldquo;जापानी फर्स्ट\u0026rdquo; का समर्थन करने वाले तर्कों में से एक यह छवि है कि \u0026ldquo;विदेशी जापानी संसाधनों को छीन रहे हैं।\u0026rdquo; हालाँकि, सरकारी एजेंसियों के प्राथमिक डेटा इस सहज ज्ञान के बिल्कुल विपरीत वास्तविकता को दर्शाते हैं।\n1. श्रम शक्ति: जापानी अर्थव्यवस्था को बनाए रखने वाला \u0026ldquo;अपरिहार्य रक्त\u0026rdquo; स्वास्थ्य, श्रम और कल्याण मंत्रालय की \u0026ldquo;विदेशी रोजगार स्थिति (अक्टूबर 2024 के अंत तक)\u0026rdquo; के अनुसार, विदेशी श्रमिकों की संख्या 2,048,675 है। 2026 के वर्तमान अनुमानों में, यह पहले ही 23 लाख को पार कर चुका है।\nउद्योग क्षेत्र विदेशी श्रमिकों का प्रतिशत / वृद्धि दर वास्तविकता और भूमिका निर्माण पिछले वर्ष की तुलना में लगभग 22.7% की वृद्धि बुनियादी ढांचे के रखरखाव और पुराने पुलों और सड़कों की मरम्मत के लिए आवश्यक। चिकित्सा और कल्याण पिछले वर्ष की तुलना में लगभग 28.1% की वृद्धि देखभाल के अग्रिम मोर्चे को संभालते हैं, जापानी बुजुर्गों का समर्थन करते हैं। विनिर्माण कुल का लगभग 26% हिस्सा जापान के निर्यात उद्योग का समर्थन करने वाली रीढ़। वर्तमान में, विदेशी वे काम नहीं कर रहे हैं जो जापानी करना चाहते हैं लेकिन कर नहीं सकते, बल्कि वे उस \u0026ldquo;रिक्त स्थान को भर रहे हैं जो जापानी अब नहीं भर सकते\u0026rdquo; । यदि हम \u0026ldquo;जापानी फर्स्ट\u0026rdquo; के नाम पर उन्हें बाहर कर दें, तो हमारी देखभाल प्रणाली तुरंत ढह जाएगी, और आवास तथा भोजन की कीमतें कई गुना बढ़ जाएंगी।\n2. সামাজিক সুরক্ষা: कल्याण को लेकर अफवाहें और वास्तविकता सोशल मीडिया पर सबसे ज्यादा फैलने वाली अफवाह यह है कि \u0026ldquo;विदेशियों को तरजीही तौर पर कल्याण मिल रहा है।\u0026rdquo; हालाँकि, स्वास्थ्य, श्रम और कल्याण मंत्रालय के आँकड़ों को देखते हुए, उन सभी प्राप्तकर्ता परिवारों का प्रतिशत जहाँ परिवार का मुखिया एक विदेशी है, लगभग 2.8-2.9% है। पिछले 10 से अधिक वर्षों से, यह आंकड़ा लगभग स्थिर बना हुआ है।\nइसके विपरीत, विदेशी निवासियों की आयु संरचना को देखते हुए, उनमें से अधिकांश 20 से 40 वर्ष की आयु के कामकाजी वर्ग के हैं। वे कल्याणकारी पेंशन और स्वास्थ्य बीमा प्रीमियम का भुगतान करते हैं, और \u0026ldquo;बुजुर्ग जापानियों\u0026rdquo; द्वारा प्राप्त पेंशन और चिकित्सा खर्चों का समर्थन करने वाले \u0026ldquo;प्रदाताओं\u0026rdquo; के रूप में भूमिका निभाते हैं। यह विदेशी ही हैं जो जापानियों के जाने के बाद कामकाजी पीढ़ी के शून्य को भर रहे हैं और जापान की सामाजिक सुरक्षा प्रणाली को जीवित रखे हुए हैं।\nअध्याय 3: सुरक्षा और सोशल मीडिया का पूर्वाग्रह - \u0026ldquo;विदेशी अपराध\u0026rdquo; का तार्किक विघटन सुरक्षा को लेकर चिंता \u0026ldquo;जापानी फर्स्ट\u0026rdquo; की भावना को सबसे ज्यादा उत्तेजित करती है। हालाँकि, जब हम राष्ट्रीय पुलिस एजेंसी के आँकड़ों और न्याय मंत्रालय के \u0026ldquo;अपराध पर श्वेत पत्र\u0026rdquo; को विस्तार से पढ़ते हैं, तो हमें पता चलता है कि इंटरनेट पर \u0026ldquo;खतरनाक विदेशी\u0026rdquo; की छवि किस तरह से संज्ञानात्मक विकृति द्वारा बनाई गई है।\n1. \u0026ldquo;कुल संख्या\u0026rdquo; और \u0026ldquo;अपराध दर\u0026rdquo; की शांत तुलना 2024 में जारी किए गए आँकड़ों के अनुसार, गिरफ्तार किए गए सभी लोगों में विदेशियों का प्रतिशत लगभग 5.5% है। शेष 95% अपराध जापानियों द्वारा किए गए हैं।\nप्रति 100,000 जनसंख्या (अपराध दर) पर गिरफ्तार लोगों की तुलना करने पर, मूल तत्व और अधिक स्पष्ट हो जाता है।\nश्रेणी प्रति 100,000 जनसंख्या पर गिरफ्तार लोग (अनुमानित) जापानी (सभी उम्र) लगभग 142.7 लोग विदेशी निवासी (स्थायी निवासी / निवासी) लगभग 120.0 लोग मध्यम से लंबी अवधि तक जापान में रहने वाले विदेशियों की अपराध दर समग्र जापानियों के औसत से कम है , यह एक सांख्यिकीय तथ्य है।\n2. \u0026ldquo;पीढ़ी\u0026rdquo; के पूर्वाग्रह का जादू \u0026ldquo;विदेशी डरावने हैं\u0026rdquo; यह छवि पहले क्यों आती है? अपराध विज्ञान में इसका सबसे बड़ा कारण \u0026ldquo;आयु संरचना\u0026rdquo; में अंतर है।\nजापानी: लगभग 30% ऐसे बुजुर्ग हैं जिनकी अपराध दर बेहद कम है। यह समूह \u0026ldquo;हर\u0026rdquo; को नीचे धकेलता है, जिससे समग्र रूप से जापान के आंकड़े कम दिखाई देते हैं। विदेशी: क्योंकि वे एक कार्यबल के रूप में जापान आते हैं, उनमें से 80% से अधिक \u0026ldquo;युवा से मध्यम आयु वर्ग\u0026rdquo; के हैं, जहाँ सांख्यिकीय रूप से अपराध होने की अधिक संभावना होती है । यदि हम \u0026ldquo;20 के दशक\u0026rdquo; की समान स्थिति के तहत जापानी और विदेशियों की अपराध दर की तुलना करें, तो दोनों के बीच कोई महत्वपूर्ण अंतर नहीं देखा जाता है। दूसरे शब्दों में, \u0026ldquo;विदेशियों के बढ़ने से सुरक्षा खराब हो गई\u0026rdquo; ऐसा नहीं है, बल्कि \u0026ldquo;अपराध करने की अधिक संभावना वाले आयु वर्ग (युवा) विदेशियों के रूप में जापान में मौजूद हैं\u0026rdquo; , यह बात सच है।\n3. सोशल मीडिया द्वारा निर्मित \u0026ldquo;पुष्टिकरण पूर्वाग्रह\u0026rdquo; सोशल मीडिया एल्गोरिदम हमारी \u0026ldquo;चिंता\u0026rdquo; को ईंधन के रूप में उपयोग करते हैं। जब विदेशियों द्वारा किया गया कोई एक अपराध होता है, तो वह उनकी \u0026ldquo;राष्ट्रीयता\u0026rdquo; के साथ जुड़कर तेजी से फैलता है। नतीजतन, हमारे दिमाग में केवल यह याद रहता है कि \u0026ldquo;फिर से एक विदेशी ने अपराध किया।\u0026rdquo;\nइसे \u0026ldquo;पुष्टिकरण पूर्वाग्रह\u0026rdquo; कहा जाता है। 95% अपराधों को जो जापानियों द्वारा किए जाते हैं, \u0026ldquo;दैनिक जीवन\u0026rdquo; के रूप में अनदेखा कर दिया जाता है, और 5% विदेशी अपराधों को \u0026ldquo;सभी विदेशियों\u0026rdquo; की छवि में बदल दिया जाता है।\nअध्याय 4: संस्कृति की विरासत - \u0026ldquo;विनाशक\u0026rdquo; या \u0026ldquo;उद्धारकर्ता\u0026rdquo;? \u0026ldquo;जापान की परंपराएं और संस्कृति नष्ट हो जाएंगी\u0026rdquo; यह चिंता भी जमीनी हकीकत से अलग है।\n1. पारंपरिक शिल्प के \u0026ldquo;अंतिम उत्तराधिकारी\u0026rdquo; जापान में पारंपरिक शिल्प के निर्माण में शामिल लोगों की संख्या 1970 के दशक के लगभग 300,000 से घटकर अब लगभग 50,000 रह गई है। इस लुप्त होती संस्कृति को वे विदेशी बचा रहे हैं जो जापानी संस्कृति के प्रति गहरा सम्मान लेकर जापान आए हैं।\nशराब की भठ्ठियां और तलवार बनाने वाले: विदेशी उन कार्यशालाओं में प्रशिक्षु बन रहे हैं जिन्हें जापानियों ने छोड़ दिया था। विदेशों में अपनी पहुंच और नई संवेदनशीलता को शामिल करके, वे दिवालियापन के कगार पर खड़ी संस्कृति को एक \u0026ldquo;टिकाऊ उद्योग\u0026rdquo; में पुनर्जीवित कर रहे हैं। 2. स्थानीय समुदाय का रखरखाव उन स्थानीय नगर पालिकाओं में जो युवाओं के जाने के कारण \u0026ldquo;गायब होने वाले शहरों\u0026rdquo; में बदल गए हैं, तकनीकी प्रशिक्षु और विशिष्ट कौशल वाले विदेशी स्थानीय त्योहारों के वाहक बन गए हैं और कृषि आधार का समर्थन कर रहे हैं। जिन परित्यक्त कृषि भूमि को जापानियों ने छोड़ दिया था, उन्हें कौन जोत रहा है, और कौन सैकड़ों साल पुरानी घटनाओं को बचा रहा है? यदि हम इस वास्तविकता को देखें, तो हम समझेंगे कि वे संस्कृति के \u0026ldquo;विनाशक\u0026rdquo; नहीं, बल्कि \u0026ldquo;अंतिम रक्षा रेखा\u0026rdquo; हैं।\nअध्याय 5: शिक्षा के क्षेत्र में चिंताएं और \u0026ldquo;बदमाशी\u0026rdquo; की श्रृंखला \u0026ldquo;जापानी फर्स्ट\u0026rdquo; शब्द को शिक्षा के क्षेत्र में लाने के दुष्प्रभाव गंभीर हैं।\n\u0026ldquo;भीतर और बाहर\u0026rdquo; को विभाजित करने वाला द्वंद्व: यदि बच्चे यह गलत धारणा बना लेते हैं कि \u0026ldquo;जापानी एक विशेषाधिकार प्राप्त वर्ग हैं जिन्हें प्राथमिकता दी जानी चाहिए\u0026rdquo;, तो यह आसानी से उन लोगों को बाहर करने के लिए बदमाशी का कारण बन सकता है जो \u0026ldquo;उनसे अलग हैं\u0026rdquo;। मूल के आधार पर पदानुक्रम: भले ही उनके पास जापानी राष्ट्रीयता हो, अलग दिखने या अलग नाम वाले बच्चों पर यह कहकर हमला किया जा सकता है कि वे \u0026ldquo;जापानी नहीं हैं\u0026rdquo;। यह शिक्षा का पतन है और उन प्रतिभाओं को नुकसान पहुंचाने का कृत्य है जो भविष्य के जापान का नेतृत्व करेंगे। शिक्षा विशेषज्ञ इस बात को लेकर चिंतित हैं कि \u0026ldquo;फर्स्ट\u0026rdquo; शब्द की विशिष्टता बच्चों की बहुसांस्कृतिक सह-अस्तित्व क्षमता को कम कर सकती है, जिसके परिणामस्वरूप जापान दुनिया से अलग-थलग पड़ सकता है।\nअध्याय 6: वैश्विक प्रवृत्तियां और लोकलुभावनवाद की लहर यह घटना केवल जापान तक सीमित नहीं है। पश्चिमी देशों में भी, वैश्वीकरण से लाभ न उठा पाने वाले वर्गों का \u0026ldquo;राष्ट्र-प्रथम\u0026rdquo; लोकलुभावनवाद की ओर झुकाव जारी है।\nहालाँकि, जापान पश्चिमी देशों से इस मायने में काफी अलग है कि \u0026ldquo;दुनिया में सबसे तेज गति से इसकी जनसंख्या घट रही है\u0026rdquo; । जबकि अन्य देशों के पास \u0026ldquo;प्रतिबंध\u0026rdquo; का विकल्प हो सकता है, जापान में पहले से ही अनगिनत सामाजिक अवसंरचनाएं हैं जिन्हें \u0026ldquo;सहयोग\u0026rdquo; के बिना बनाए नहीं रखा जा सकता है। भावनात्मक \u0026ldquo;फर्स्ट\u0026rdquo; पर अड़े रहने का मतलब तार्किक रूप से \u0026ldquo;धीमी आत्महत्या\u0026rdquo; होगा।\nनिष्कर्ष: सच्चा \u0026ldquo;जापानी फर्स्ट\u0026rdquo; क्या है? \u0026ldquo;जापानी फर्स्ट\u0026rdquo; शब्द में निहित यह इच्छा कि \u0026ldquo;नागरिकों के जीवन को सबसे पहले रखा जाए\u0026rdquo; किसी भी देश की सरकार का सबसे बुनियादी कर्तव्य है।\nहालाँकि, उस इच्छा को पूरा करने का साधन \u0026ldquo;पड़ोसियों का बहिष्कार\u0026rdquo; नहीं होना चाहिए। जैसा कि वस्तुनिष्ठ डेटा दिखाता है, हम अभी जिस जीवन की सुविधा, सुरक्षा, पारंपरिक संस्कृति और सामाजिक सुरक्षा प्रणाली का आनंद ले रहे हैं, वे पहले से ही \u0026ldquo;निर्भरता और सह-अस्तित्व\u0026rdquo; के चरण में हैं, जो विदेशियों की उपस्थिति के बिना स्थापित नहीं हो सकते हैं।\nसच्चा \u0026ldquo;जापानी फर्स्ट\u0026rdquo; निम्नलिखित 3 बिंदुओं को शांति से लागू करने के बारे में होना चाहिए:\nतथ्य-आधारित चर्चा: अफवाहों और अतिरंजित जानकारी से प्रभावित हुए बिना, সরকারি एजेंसियों के प्राथमिक आंकड़ों के आधार पर वास्तविकता को समझना। निष्पक्ष नियमों की स्थापना: विदेशियों को जापानी नियमों का पालन करने के लिए बाध्य करना, जबकि जापानी समाज उन्हें निष्पक्ष भागीदारों के रूप में व्यवहार करता है। आंतरिक अद्यतन (Update): विदेशियों को स्वीकार करने को \u0026ldquo;जापान को खोने\u0026rdquo; के रूप में देखने के बजाय, यह दृष्टिकोण बदलना कि यह उनकी मदद से \u0026ldquo;जापान के पुनर्निर्माण और रखरखाव\u0026rdquo; के लिए है। 2026 में, हम एक बड़े चौराहे पर खड़े हैं। क्या हम विभाजन के शब्द चिल्लाते रहेंगे और अपना ही गला घोंटेंगे? या हम वास्तविकता का सामना करेंगे और एक \u0026ldquo;टिकाऊ जापान\u0026rdquo; की ओर एक कदम बढ़ाएंगे जहाँ विविध लोग एक-दूसरे का समर्थन करेंगे?\nइसका उत्तर प्रत्येक व्यक्ति के हृदय की \u0026ldquo;बुद्धि\u0026rdquo; और \u0026ldquo;साहस\u0026rdquo; में है।\n","date":"2026-01-23T13:43:41+09:00","image":"http://kenji.blog/p/%E6%97%A5%E6%9C%AC%E4%BA%BA%E3%83%95%E3%82%A1%E3%83%BC%E3%82%B9%E3%83%88%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6%E6%80%9D%E3%81%86%E3%81%93%E3%81%A8/img_hua12d272c50d3b08d888fe1df256a5051_1332597_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/%E6%97%A5%E6%9C%AC%E4%BA%BA%E3%83%95%E3%82%A1%E3%83%BC%E3%82%B9%E3%83%88%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6%E6%80%9D%E3%81%86%E3%81%93%E3%81%A8/","title":"\"जापानी फर्स्ट\" के भ्रम और वास्तविकता: 2026 में जापान द्वारा सामना किया जाने वाला \"सह-अस्तित्व\" नामक रक्षा तंत्र"},{"content":"【ध्यान दें】क्या Gemini का मुफ़्त ट्रायल खत्म होने पर बिल भेजा जाएगा? रद्द करने का तरीका जब आप Google की AI सेवा \u0026ldquo;Gemini\u0026rdquo; को आज़माना चाहते हैं, तो आपको शुरुआत में ** 1 महीने का मुफ़्त ट्रायल ** दिया जाता है। बहुत से लोग यह सोचकर रजिस्टर करते हैं कि \u0026ldquo;अगर यह मुफ़्त है तो मैं इसे आज़माऊंगा\u0026rdquo;, लेकिन यहाँ कुछ बातें ध्यान रखने योग्य हैं।\nमुफ़्त ट्रायल खत्म होने पर क्या होता है? ट्रायल अवधि समाप्त होने पर, आपसे स्वचालित रूप से ** प्रति माह 2,900 येन ** का शुल्क लिया जाएगा। यह \u0026ldquo;Google One सदस्यता\u0026rdquo; नामक सदस्यता से जुड़ा है, और यदि आप कुछ नहीं करते हैं तो यह एक ऐसी प्रणाली है जो निरंतर बिलिंग में बदल जाती है।\nअगर आप रद्द करते हैं तो आपसे शुल्क नहीं लिया जाएगा, लेकिन\u0026hellip; बेशक, यदि आप ट्रायल के दौरान रद्द करते हैं तो कोई शुल्क नहीं लगेगा। आधिकारिक स्पष्टीकरण पृष्ठ पर \u0026ldquo;Google One सदस्यता कैसे रद्द करें\u0026rdquo; भी है।\n👉 Google One सदस्यता रद्द करें (आधिकारिक)\nहालाँकि, जब मैं वास्तव में इसे एक्सेस करने गया, तो मुझे पता चला कि \u0026ldquo;मैं किसी कारण से इसे रद्द नहीं कर सकता\u0026rdquo;\u0026hellip; मैं भ्रमित था और सोच रहा था, \u0026ldquo;अरे, मुझे इसे कहाँ से रोकना चाहिए?\u0026rdquo;\nरद्द करने का सही तरीका यहाँ है! बहुत शोध के बाद, मुझे पता चला कि मैं इसे निम्नलिखित पृष्ठ से रद्द कर सकता हूँ।\n👉 Google खाता – सेवाएँ हटाएँ\nयहाँ से \u0026ldquo;Google One\u0026rdquo; चुनें और रद्द करने की प्रक्रिया पूरी करने के लिए इसे हटा दें।\nसारांश Gemini का मुफ़्त ट्रायल 1 महीने का है समाप्त होने के बाद, आपसे स्वचालित रूप से ** प्रति माह 2,900 येन ** का शुल्क लिया जाएगा आधिकारिक स्पष्टीकरण पृष्ठ से रद्द करना संभव नहीं हो सकता है आप वास्तव में इसे ** \u0026ldquo;सेवाएँ हटाएँ\u0026rdquo; पृष्ठ ** से रद्द कर सकते हैं सावधान रहें क्योंकि यदि आप सोचते हैं कि \u0026ldquo;यह मुफ़्त है तो कोई बात नहीं\u0026rdquo;, तो आपसे आपके जाने बिना शुल्क लिया जा सकता है!\n👉 जो लोग इस लेख को पढ़ रहे हैं, हो सकता है कि वे अभी सोच रहे हों कि \u0026ldquo;मैं इसे कहाँ से रद्द कर सकता हूँ?\u0026rdquo; कृपया ऊपर दिए गए लिंक को देखें।\n","date":"2025-09-27T10:02:59+09:00","image":"http://kenji.blog/p/google-one-gemini%E3%81%8C%E8%A7%A3%E7%B4%84%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84%E6%99%82%E3%81%AE%E5%AF%BE%E5%87%A6%E6%96%B9%E6%B3%95/img_hue118597de1df33c0e1a19ecde6d4d33f_1730014_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/google-one-gemini%E3%81%8C%E8%A7%A3%E7%B4%84%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84%E6%99%82%E3%81%AE%E5%AF%BE%E5%87%A6%E6%96%B9%E6%B3%95/","title":"Google One (Gemini) को रद्द न कर पाने पर क्या करें"},{"content":"🎬 YouTube स्ट्रीम स्क्रिप्ट (नए साल के कार्ड ऐप का विकास - भाग 1) स्ट्रीम की शुरुआत (शुरुआती 2-3 मिनट) संक्षिप्त अभिवादन \u0026ldquo;नमस्ते। आज से, मैं एक स्ट्रीम शुरू कर रहा हूं जहां मैं सी++ (C++) में लगातार एक नए साल का कार्ड बनाने वाला ऐप बनाऊंगा।\u0026rdquo; \u0026ldquo;मुझे नहीं पता कि इसे पूरा करने में कितनी स्ट्रीम लगेंगी, लेकिन हम इसे एक श्रृंखला के रूप में धीरे-धीरे आगे बढ़ाएंगे।\u0026rdquo; \u0026ldquo;मूल रूप से, मैं चुपचाप काम करूंगा, इसलिए मुझे उम्मीद है कि आप इसे काम के लिए बैकग्राउंड म्यूजिक (BGM) के रूप में देख सकते हैं।\u0026rdquo;\nलक्ष्य ऐप का अवलोकन \u0026ldquo;इस ऐप में, मैं नए साल के कार्ड के पीछे के हिस्से को डिजाइन करना संभव बनाना चाहता हूं।\u0026rdquo; \u0026ldquo;मैं फोटो डालने, फोंट की व्यवस्था करने और एआई (AI) का उपयोग करके छवि संपादन या चित्रण पीढ़ी को शामिल करने की योजना बना रहा हूं, और अंततः इसे माइक्रोसॉफ्ट स्टोर (Microsoft Store) पर अपलोड करूंगा।\u0026rdquo;\nआज के कार्य लक्ष्य \u0026ldquo;आज, पहले भाग में, हम माहौल तैयार करेंगे और नींव बनाएंगे।\u0026rdquo; \u0026ldquo;विशेष रूप से, मैं आगे बढ़ना चाहूंगा:\nगिट (GIT) रिपॉजिटरी बनाना मुख्य विंडो बनाना संस्करण जानकारी संवाद प्रदर्शित करना मेनू बनाना और निकास कमांड लागू करना डायरेक्ट2डी (Direct2D) इनिशियलाइज़ेशन/रिलीज़ प्रोसेसिंग और HelloWorld प्रदर्शित करना \u0026quot;\nसोर्स कोड के प्रकाशन के बारे में \u0026ldquo;सोर्स कोड गिटहब (GitHub) पर प्रकाशित किया गया है। यदि आप रुचि रखते हैं, तो कृपया एक नज़र डालें।\u0026rdquo; → https://github.com/kenjinote/NengaCardApp/\nकार्य भाग (मौन) गिटहब (GitHub) रिपॉजिटरी बनाएं → प्रारंभिक कमिट (commit)\nमुख्य विंडो का टेम्प्लेट बनाएं\nसंस्करण संवाद या मेनू निर्माण और निकास कमांड कार्यान्वयन\nडायरेक्ट2डी (Direct2D) इनिशियलाइज़ेशन और रिलीज़ प्रोसेसिंग → HelloWorld डिस्प्ले पुष्टिकरण\nउचित रूप से गिटहब (GitHub) पर पुश (push) करें\n※ मूल रूप से मौन, केवल आवश्यकता होने पर संक्षिप्त स्पष्टीकरण जोड़ना\nस्ट्रीम समाप्त होने से पहले (अंतिम 1-2 मिनट) आज की प्रगति का सारांश \u0026ldquo;आज, हमने एक गिट (GIT) रिपॉजिटरी बनाई और विंडो, एग्जिट बटन और संस्करण संवाद लागू किया।\u0026rdquo; \u0026ldquo;हम डायरेक्ट2डी (Direct2D) के साथ HelloWorld प्रदर्शित करने में सक्षम थे।\u0026rdquo;\nअगली बार के लिए कनेक्शन \u0026ldquo;अगली बार से, मैं यूआई (UI) भाग को व्यवस्थित करने और स्ट्रिंग्स के ऑब्जेक्टिफिकेशन आदि पर आगे बढ़ने की उम्मीद करता हूं।\u0026rdquo;\nगिटहब (GitHub) लिंक को फिर से निर्देशित करें → https://github.com/kenjinote/NengaCardApp/\nसमापन \u0026ldquo;देखने के लिए धन्यवाद। मैं अगली बार भी लगातार काम करना जारी रखूंगा, इसलिए कृपया मेरा समर्थन करें।\u0026rdquo;\n","date":"2025-08-31T20:24:49+09:00","image":"http://kenji.blog/p/%E5%B9%B4%E8%B3%80%E7%8A%B6%E4%BD%9C%E6%88%90%E3%82%A2%E3%83%97%E3%83%AA%E9%96%8B%E7%99%BA%E9%85%8D%E4%BF%A1-vol.1/img_hu403d76b87feb7669f72c38243c5cb621_1021075_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/%E5%B9%B4%E8%B3%80%E7%8A%B6%E4%BD%9C%E6%88%90%E3%82%A2%E3%83%97%E3%83%AA%E9%96%8B%E7%99%BA%E9%85%8D%E4%BF%A1-vol.1/","title":"नए साल के कार्ड बनाने वाले ऐप का विकास स्ट्रीम VOL.1 (स्क्रिप्ट)"},{"content":"स्व-हस्ताक्षरित प्रमाण पत्र के साथ msix स्थापित करने की अनुमति देना Windows पर ऐप्स वितरित करते समय, MSIX पैकेज का उपयोग करना सुविधाजनक है क्योंकि यह स्थापना और अद्यतन तंत्र को एकीकृत करता है। हालाँकि, MSIX का प्रतिबंध है कि \u0026ldquo;हस्ताक्षरित प्रमाण पत्र हमेशा आवश्यक होता है\u0026rdquo;। जब आप किसी कंपनी या व्यक्ति द्वारा विकसित ऐप का परीक्षण वितरण करना चाहते हैं, तो ऐसी स्थितियाँ हो सकती हैं जहाँ \u0026ldquo;वाणिज्यिक कोड-हस्ताक्षर प्रमाण पत्र खरीदना बहुत बड़ी बात है\u0026rdquo;।\nयही वह जगह है जहाँ एक स्व-हस्ताक्षरित प्रमाण पत्र (Self-Signed Certificate) काम आता है। इस लेख में, हम MSIX में एक स्व-हस्ताक्षरित प्रमाण पत्र संलग्न करने और इसे स्थानीय वातावरण में स्थापित करने की अनुमति देने के चरणों का सारांश देंगे।\n1. एक स्व-हस्ताक्षरित प्रमाण पत्र बनाएँ सबसे पहले, PowerShell को व्यवस्थापक मोड में प्रारंभ करें और निम्न आदेश निष्पादित करें।\n1 2 // स्व-हस्ताक्षरित प्रमाण पत्र बनाएँ New-SelfSignedCertificate -Type CodeSigningCert -Subject \u0026#34;CN=035A9AAC-915B-4CE1-AE39-1A101BED42F5\u0026#34; -CertStoreLocation Cert:\\CurrentUser\\My -NotAfter (Get-Date).AddYears(10) -KeyUsage DigitalSignature -FriendlyName \u0026#34;kenjinote\u0026#34; यहाँ जो बनाया गया है वह \u0026ldquo;कोड हस्ताक्षर\u0026rdquo; के लिए एक प्रमाण पत्र है।\nइसे -FriendlyName के साथ समझने में आसान नाम देने से बाद में ढूंढना आसान हो जाता है। आप -NotAfter के साथ समाप्ति तिथि को समायोजित कर सकते हैं। इस बार, इसे 10 वर्षों के लिए सेट किया गया है। 2. PFX फ़ाइल निर्यात करें बनाए गए प्रमाण पत्र को PFX प्रारूप में निर्यात करें ताकि इसे signtool के साथ उपयोग किया जा सके।\n1 2 3 4 // pfx बनाएँ $cert = Get-ChildItem Cert:\\CurrentUser\\My | Where-Object { $_.FriendlyName -eq \u0026#34;kenjinote\u0026#34; } $password = ConvertTo-SecureString -String \u0026#34;password\u0026#34; -Force -AsPlainText Export-PfxCertificate -Cert $cert -FilePath \u0026#34;D:\\pfx\\cert.pfx\u0026#34; -Password $password इस समय सेट किया गया पासवर्ड (उदाहरण में password ) बाद के हस्ताक्षर संचालन के लिए आवश्यक होगा।\n3. विश्वसनीय रूट प्रमाणन अधिकारियों में स्व-हस्ताक्षरित प्रमाण पत्र स्थापित करें बनाया गया प्रमाण पत्र वैसे ही Windows के लिए विश्वसनीय नहीं है। इसे स्थापित करने के लिए, आपको इसे certmgr.msc से [विश्वसनीय रूट प्रमाणन अधिकारी] -\u0026gt; [प्रमाण पत्र] में आयात करने की आवश्यकता है।\nयदि आप निर्यात किए गए प्रमाण पत्र ( .cer या .pfx ) को आयात करते हैं, तो इसे लक्ष्य पीसी पर एक विश्वसनीय प्रमाण पत्र के रूप में माना जाएगा। यह \u0026ldquo;अविश्वसनीय प्रमाण पत्र\u0026rdquo; चेतावनी को प्रकट होने से रोकता है, भले ही आप MSIX पर हस्ताक्षर करते हों।\n4. इंस्टॉलर (MSIX) पर हस्ताक्षर करें अंत में, MSIX पर हस्ताक्षर करने के लिए बनाए गए PFX प्रमाण पत्र का उपयोग करें। signtool Visual Studio और Windows SDK में शामिल है।\n1 2 // इंस्टॉलर पर हस्ताक्षर करें signtool sign /fd SHA256 /f \u0026#34;D:\\pfx\\cert.pfx\u0026#34; /p \u0026#34;password\u0026#34; \u0026#34;C:\\installer\\installer.msix\u0026#34; /fd SHA256 हस्ताक्षर एल्गोरिथ्म निर्दिष्ट करता है। /f के साथ PFX फ़ाइल निर्दिष्ट करें, और /p के साथ पासवर्ड पास करें। अंत में, MSIX फ़ाइल का पथ निर्दिष्ट करें। यदि signtool का पथ सेट नहीं है, तो पूर्ण पथ निर्दिष्ट करें। मेरे वातावरण में, यह निम्नलिखित स्थान पर था। 1 \u0026#34;C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages\\microsoft.windows.sdk.buildtools\\10.0.26100.1742\\bin\\10.0.26100.0\\x64\\signtool.exe\u0026#34; यह हस्ताक्षर पूरा करता है और एक MSIX पूरा करता है जिसे लक्ष्य पीसी पर स्थापित किया जा सकता है।\nसारांश New-SelfSignedCertificate के साथ एक स्व-हस्ताक्षरित प्रमाण पत्र बनाएँ Export-PfxCertificate के साथ PFX निर्यात करें प्रमाण पत्र को विश्वसनीय रूट प्रमाणन अधिकारियों में स्थापित करें signtool के साथ MSIX पर हस्ताक्षर करें इस प्रवाह का पालन करके, आप वाणिज्यिक प्रमाण पत्र खरीदे बिना स्थानीय वातावरण में संचालन की जांच कर सकते हैं और परीक्षण वितरण कर सकते हैं। बेशक, एक प्रमाणन अधिकारी द्वारा जारी किया गया प्रमाण पत्र वास्तविक वाणिज्यिक वितरण के लिए आवश्यक है, लेकिन यह विधि विकास और सत्यापन चरणों में बहुत सुविधाजनक है।\n👉 इस बार, हमने उदाहरण के रूप में installer.msix का उपयोग किया, लेकिन आप अपने स्वयं के ऐप पर भी यही प्रक्रिया लागू कर सकते हैं।\n","date":"2025-08-30T04:18:04+09:00","image":"http://kenji.blog/p/msix%E3%81%AB%E8%87%AA%E5%B7%B1%E8%A8%BC%E6%98%8E%E6%9B%B8%E3%82%92%E3%81%A4%E3%81%91%E3%81%A6%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%A7%E3%81%8D%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%82%8B/img_hu193aeacbbfca091956fdf9aac7d139a2_495432_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/msix%E3%81%AB%E8%87%AA%E5%B7%B1%E8%A8%BC%E6%98%8E%E6%9B%B8%E3%82%92%E3%81%A4%E3%81%91%E3%81%A6%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%A7%E3%81%8D%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%82%8B/","title":"स्व-हस्ताक्षरित प्रमाण पत्र के साथ msix स्थापित करने की अनुमति देना"},{"content":"\u0026ldquo;जो लोग कोड नहीं लिख सकते, लेकिन उनके पास लॉजिक है\u0026rdquo; उनके लिए एक टूल। मैंने LogicPad क्यों बनाया नमस्ते, मैं kenji हूँ। मैं लो-कोड टूल \u0026quot; LogicPad \u0026quot; का निर्माता हूँ। इस बार यह उत्पाद का परिचय नहीं है, बल्कि मैं विकास के पीछे की कहानी \u0026ldquo;मैंने इसे बनाने का फैसला क्यों किया?\u0026rdquo; और अपने स्वयं के विचारों के बारे में थोड़े व्यक्तिगत दृष्टिकोण से लिखना चाहता हूँ।\nसच कहूँ तो, यह केवल एक टूल का विकास नहीं था। मेरा अतीत, कार्यस्थल की कुंठाएं, मेरे कौशल, और हमेशा से सुलगती हुई इच्छा \u0026ldquo;एक दिन अपना खुद का उत्पाद बनाने की\u0026rdquo; - इन सभी के एक साथ आने का परिणाम LogicPad है।\nदूसरे शब्दों में, यह मेरे लिए मेरे \u0026ldquo;जीवन का अंतिम प्रोजेक्ट\u0026rdquo; भी है। मैं इस पृष्ठभूमि को यथासंभव ईमानदारी और जुनून के साथ लिखूंगा।\nसच कहूं तो, मैं एक ऐसा उत्पाद चाहता था जिसके लिए मैं गर्व से कह सकूं \u0026ldquo;यह मैंने बनाया है\u0026rdquo; ईमानदारी से कहूं तो, यह मेरी पहली प्रेरणा थी।\nमुझे हमेशा से काम और शौक दोनों में कोड लिखना पसंद था। मैं विभिन्न विकास कार्यों में भी शामिल रहा हूँ। लेकिन, एक दिन मुझे अचानक एहसास हुआ। \u0026ldquo;मेरा कोई ऐसा उत्पाद नहीं है जिसे मैंने अपने नाम और अपनी जिम्मेदारी के तहत दुनिया में पेश किया हो।\u0026rdquo;\nबेशक, टीम में जो हम बनाते हैं उसका महत्व होता है, और ऐसे कई काम थे जिन पर मुझे गर्व है। लेकिन कहीं न कहीं, यह खालीपन का एहसास भी था कि, \u0026ldquo;क्या मैं ऐसे ही किसी और के नाम के तहत अपना करियर खत्म कर दूंगा?\u0026rdquo;\nबस एक बार काफी होगा। मैं कुछ ऐसा छोड़ना चाहता हूँ जिसे मैं गर्व से कह सकूं, \u0026ldquo;यह मैंने बनाया है।\u0026rdquo; इसे ध्यान में रखते हुए, मैंने LogicPad की अवधारणा तैयार करना शुरू किया। यह लगभग 6 साल पहले ( 2019 के आसपास ) की बात है। (मूल विचार स्वयं 2015 के आसपास आया था जब मैंने अवास्तविक इंजन (Unreal Engine) की विज़ुअल प्रोग्रामिंग भाषा ब्लूप्रिंट (Blueprint) के बारे में जाना था।)\nमैं इसे नहीं कर सकता क्योंकि मैं कोड नहीं लिख सकता। क्या यह बर्बादी नहीं है? मेरे कार्यस्थल में कई उत्कृष्ट लोग थे।\nवे लॉजिक बना सकते हैं। वे Excel फ़ंक्शंस में पारंगत हैं और समस्या का मूल देख सकते हैं। लेकिन - \u0026ldquo;कोड लिखने\u0026rdquo; के चरण में, उनके हाथ रुक जाते हैं।\n\u0026ldquo;मैं हर बार प्रक्रिया मैनुअल को देखते हुए यह काम करता हूँ, लेकिन क्या इसे स्वचालित करने का कोई तरीका नहीं है?\u0026rdquo; \u0026ldquo;हाँ, यह संभव है। लेकिन\u0026hellip; उसके लिए आपको कोड लिखना होगा\u0026hellip;\u0026rdquo;\nऐसी बातचीत हमारे बीच कई बार हुई।\nहर बार मैं सोचता था: \u0026ldquo;जब आप लॉजिक को समझते हैं तो कोड की दीवार पर रुक जाना वाकई बहुत बड़ी बर्बादी है।\u0026rdquo;\nलो-कोड एडिटर का विकल्प वास्तव में, अपनी पिछली नौकरी में, मैं GUI संचालन द्वारा संचालित 2D CAD का विकास कर रहा था। CAD के साथ, आप आकृतियों को इकट्ठा करने के लिए माउस का उपयोग करते हैं, है ना? दूसरे शब्दों में, यह \u0026ldquo;संचालन के माध्यम से लॉजिक बनाने\u0026rdquo; की दुनिया है।\nमैंने सोचा, \u0026ldquo;यह लो-कोड के साथ बहुत ही अनुकूल है।\u0026rdquo;\nऔर भी पीछे जाएँ तो, अपने छात्र जीवन से ही, मैं हमेशा कोड लिखता था और छवि प्रसंस्करण, संख्यात्मक प्रसंस्करण, विंडोज़ टूल और SNS ऑटो-पोस्टिंग टूल जैसे छोटे कार्यक्रमों का बड़े पैमाने पर उत्पादन करता था, जैसे ही मुझे कोई विचार आता था। मुझे लगता है कि ऐसे 600 से अधिक हैं। वे आज भी मेरे GitHub पर हैं।\nउस समय, मैंने इसके अर्थ के बारे में नहीं सोचा था। बस \u0026ldquo;मैं इसे बनाता हूँ क्योंकि मैं बनाना चाहता हूँ।\u0026rdquo; बस इतना ही।\nलेकिन अब, जब मैं LogicPad बना रहा हूँ\u0026hellip;\nमुझे लगा कि बिंदु अंततः एक रेखा से जुड़ गए हैं。\nउपयोग में आसान, फिर भी शक्तिशाली। संतुलन की कठिनाई विकास को आगे बढ़ाते समय मैं हमेशा जो सोचता था वह था \u0026ldquo;इसे एक ऐसा टूल बनाना जो उपयोग करने में सहज हो और फिर भी मजबूत हो।\u0026rdquo;\nयदि आप फ़ंक्शन जोड़ते हैं, तो आप जो कर सकते हैं वह बढ़ जाता है। लेकिन, इसका उपयोग करना कठिन हो जाता है। यदि आप इसे सरल बनाते हैं, तो कोई भी इसे छू सकता है। लेकिन फिर ऐसे लोग होंगे जो असंतुष्ट महसूस करेंगे।\nताकि लोग यह न कहें, \u0026ldquo;लो-कोड टूल तो बस खिलौने हैं, है ना?\u0026rdquo; लेकिन, मैं यह भी नहीं चाहता कि वे कहें, \u0026ldquo;अंत में, अगर आप कोड नहीं लिखते हैं तो कोई फायदा नहीं है।\u0026rdquo;\nमैं हमेशा अंतर्ज्ञान और अभिव्यक्ति की उस सीमा रेखा पर संघर्ष कर रहा था।\nमैंने UI को कई बार फिर से बनाया, इसे कई बार छोड़ दिया, और जब मैं अंततः एक ऐसे रूप के करीब पहुँचा जहाँ मैंने सोचा \u0026ldquo;यह काम करेगा\u0026rdquo;, तो मुझे वास्तव में खुशी हुई।\nमैं अपने पहले \u0026ldquo;उपयोगकर्ता\u0026rdquo; के शब्दों से बच गया मैंने पहली बार LogicPad अपनी एक पूर्व सहकर्मी को दिया था। वह IT में अच्छी नहीं है, और उसे कोड से डर लगता है। लेकिन, वह लॉजिक में अच्छी है।\nथोड़ा समझाने और उसे इस्तेमाल करने देने के बाद\u0026hellip; कुछ मिनटों बाद उसने जो कहा उसे मैं भूल नहीं सकता।\n\u0026ldquo;इसके साथ, मुझे भी लगता है कि मैं यह कर सकती हूँ!\u0026rdquo;\nमैं लगभग रोने ही वाला था। मैं उसे यही देना चाहता था।\nकाम करने वाला टूल नहीं, बल्कि \u0026ldquo;मैंने इसे खुद बनाया!\u0026rdquo; का अहसास । मुझे यकीन हो गया कि यही LogicPad का असली मूल्य है।\nजब बनाने वाले लोगों की संख्या बढ़ती है, तो समाज अधिक दिलचस्प हो जाता है मुझे लगता है कि \u0026ldquo;तकनीक का लोकतंत्रीकरण\u0026rdquo; वास्तव में महत्वपूर्ण है।\nतकनीक में दुनिया बदलने की ताकत है। लेकिन इसे संभालने वाले लोग सीमित हैं।\nक्या होगा यदि आप केवल \u0026ldquo;लॉजिक को समझकर\u0026rdquo; कोई ऐप बना सकें?\nअधिक लोग \u0026ldquo;बनाने वाले पक्ष\u0026rdquo; में आ सकेंगे। और मुझे लगता है कि वहां से जो पैदा होगा वह हमारी वर्तमान कल्पना से परे होगा।\nयदि LogicPad वह प्रवेश द्वार बन सके। मैं चाहता हूँ कि यह एक ऐसा टूल हो जो \u0026ldquo;मैं बनाना चाहता हूँ\u0026rdquo; को \u0026ldquo;मैं बना सकता हूँ\u0026rdquo; में बदल दे।\nयही मेरी इच्छा है।\nअंत में LogicPad अभी बीटा संस्करण में है और पूरा नहीं हुआ है। सुधार की बहुत सी गुंजाइश है और बहुत सी चीजें हैं जो मैं करना चाहता हूँ।\nलेकिन, मैं अपने जीवन के सभी \u0026ldquo;बिंदुओं\u0026rdquo; को इस टूल में डाल रहा हूँ। अब मैं गर्व से कह सकता हूँ:\n\u0026ldquo;यह वह उत्पाद है जिसे मैंने बनाया है।\u0026rdquo;\n👇 बोनस: आप LogicPad के साथ क्या कर सकते हैं ड्रैग-एंड-ड्रॉप के साथ प्रक्रियाएँ बनाएँ GUI में सशर्त शाखाओं और चरों को भी संभाला जा सकता है विभिन्न AI सहयोग नोड्स उपलब्ध हैं उन्नत उपयोगकर्ताओं के लिए स्क्रिप्ट प्रविष्टि के माध्यम से विस्तार भी संभव है उच्च-परिशुद्धता गणितीय कार्य और डेटा प्रसंस्करण (अनंत-अंकीय सटीक संख्यात्मक गणना आदि) उन्नत उपयोगकर्ताओं के लिए शॉर्टकट कुंजियों का खजाना 90 से अधिक देशों की भाषाओं का समर्थन करता है मैं आगे क्या करना चाहता हूँ AI के सहयोग से प्राकृतिक भाषा से लॉजिक उत्पन्न करना एक ऐसा तंत्र जो उपयोगकर्ताओं को कस्टम नोड बनाने की अनुमति देता है एक ऐसा मंच बनाना जहां बनाए गए नोड्स और लॉजिक को साझा किया जा सके ✍️ उपसंहार यहाँ तक पढ़ने के लिए आपका बहुत-बहुत धन्यवाद। यह केवल एक टूल का विकास नहीं था, बल्कि एक ऐसी चुनौती थी जिसमें मैंने अपना अनुभव, जुनून और अपने जीवन के अंश डाले हैं।\n\u0026ldquo;मैं कोड नहीं लिख सकता, लेकिन मेरे पास लॉजिक है।\u0026rdquo; एक ऐसा भविष्य जहां ये लोग अपनी शक्ति से \u0026ldquo;निर्माण\u0026rdquo; कर सकें। मैं LogicPad के माध्यम से इसका लक्ष्य रखना जारी रखना चाहता हूँ।\nमुझे बहुत खुशी होगी यदि आप थोड़ा भी सोचें \u0026ldquo;मैं इसका उपयोग करना चाहता हूँ।\u0026rdquo; यदि आप रुचि रखते हैं, तो कृपया LogicPad आज़माएं।\nऔर यदि आपके पास कोई विचार या चीजें हैं जो आपने इसका उपयोग करने के बाद देखी हैं, चाहे वह कितनी भी छोटी क्यों न हो, कोई बात नहीं। आपकी आवाज़ इस उत्पाद के अगले कदम को आकार देने में एक बड़ी शक्ति होगी।\nआपके निरंतर समर्थन के लिए धन्यवाद।\n","date":"2025-07-30T23:51:35+09:00","image":"http://kenji.blog/p/logicpad-%E9%96%8B%E7%99%BA%E7%A7%98%E8%A9%B1/img_hu2f3df13f20424b87da3515770faf1b1c_1676910_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/logicpad-%E9%96%8B%E7%99%BA%E7%A7%98%E8%A9%B1/","title":"LogicPad विकास की गुप्त कहानी"},{"content":"\u0026ldquo;PowerShell का उपयोग करके Excel, Word आदि से मेटाडेटा (व्यक्तिगत जानकारी) को बैच में कैसे निकालें\u0026rdquo; Office फ़ाइलें जैसे Excel स्वचालित रूप से निर्माता, अंतिम संशोधनकर्ता और कंपनी के नाम जैसी \u0026ldquo;मेटाडेटा (व्यक्तिगत जानकारी)\u0026rdquo; को सहेजती हैं। कई ऐसे मामले होते हैं जहाँ आप इस जानकारी को हटाना चाहते हैं, जैसे कंपनी के बाहर फ़ाइल साझा करते समय।\nइस लेख में, हम विस्तार से बताएंगे कि PowerShell का उपयोग करके Excel मेटाडेटा को कैसे हटाया जाए, जिसमें ** फ़ोल्डर के भीतर बैच प्रोसेसिंग ** और ** Word और PowerPoint जैसे अन्य Office फ़ाइलों पर अनुप्रयोग ** पर ध्यान केंद्रित किया गया है।\n1. एकल Excel फ़ाइल से मेटाडेटा निकालें यह किसी एकल Excel फ़ाइल से व्यक्तिगत जानकारी हटाने की सबसे बुनियादी स्क्रिप्ट है। यह Excel के COM ऑब्जेक्ट को कॉल करता है, RemovePersonalInformation प्रॉपर्टी को $true पर सेट करता है, और इसे ओवरराइट करके सेव करता है।\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 # Excel एप्लिकेशन को अदृश्य रूप से प्रारंभ करें $excel = New-Object -ComObject Excel.Application $excel.Visible = $false $excel.DisplayAlerts = $false # फ़ाइल खोलें (*कृपया पूर्ण पथ निर्दिष्ट करें) $filePath = \u0026#34;C:\\Path\\To\\Your\\File.xlsx\u0026#34; $wb = $excel.Workbooks.Open($filePath) # मेटाडेटा (व्यक्तिगत जानकारी) हटाने के लिए सेटिंग सक्षम करें $wb.RemovePersonalInformation = $true # ओवरराइट करें और बंद करें $wb.Save() $wb.Close($false) # Excel से बाहर निकलें और मेमोरी खाली करें $excel.Quit() [System.Runtime.Interopservices.Marshal]::ReleaseComObject($excel) | Out-Null ** ध्यान दें: ** सुनिश्चित करें कि आप Workbooks.Open() के लिए ** पूर्ण पथ ** निर्दिष्ट करते हैं। सापेक्ष पथ के परिणामस्वरूप त्रुटि हो सकती है।\n2. एक फ़ोल्डर में सभी Excel फ़ाइलों को बैच-प्रक्रिया करें व्यवहार में, आप अक्सर \u0026ldquo;किसी विशिष्ट फ़ोल्डर में दर्जनों Excel फ़ाइलों से एक ही बार में सभी मेटाडेटा को हटाना\u0026rdquo; चाहेंगे। इसे Get-ChildItem के संयोजन में लूप प्रोसेसिंग का उपयोग करके प्राप्त किया जा सकता है।\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 $targetFolder = \u0026#34;C:\\Path\\To\\Your\\Folder\u0026#34; # फ़ोल्डर में सभी .xlsx और .xls फ़ाइलें प्राप्त करें $excelFiles = Get-ChildItem -Path $targetFolder -Include \u0026#34;*.xlsx\u0026#34;, \u0026#34;*.xls\u0026#34; -Recurse if ($excelFiles.Count -eq 0) { Write-Host \u0026#34;कोई Excel फ़ाइल नहीं मिली।\u0026#34; exit } $excel = New-Object -ComObject Excel.Application $excel.Visible = $false $excel.DisplayAlerts = $false foreach ($file in $excelFiles) { Write-Host \u0026#34;$($file.Name) का मेटाडेटा हटाया जा रहा है...\u0026#34; # फ़ाइल खोलें $wb = $excel.Workbooks.Open($file.FullName) # मेटाडेटा निकालें और सहेजें $wb.RemovePersonalInformation = $true $wb.Save() $wb.Close($false) } $excel.Quit() [System.Runtime.Interopservices.Marshal]::ReleaseComObject($excel) | Out-Null Write-Host \u0026#34;सभी प्रसंस्करण पूर्ण हो गया है!\u0026#34; 3. अन्य Office फ़ाइलों (Word / PowerPoint) से मेटाडेटा निकालें मेटाडेटा को न केवल Excel में बल्कि Word और PowerPoint में भी बिल्कुल उसी तर्क के साथ हटाया जा सकता है। केवल बुलाए जाने वाले COM ऑब्जेक्ट का नाम भिन्न है, और दोनों में RemovePersonalInformation प्रॉपर्टी होती है।\nWord के लिए 1 2 3 4 5 6 7 8 9 10 11 $word = New-Object -ComObject Word.Application $word.Visible = $false $word.DisplayAlerts = 0 $doc = $word.Documents.Open(\u0026#34;C:\\Path\\To\\Your\\File.docx\u0026#34;) $doc.RemovePersonalInformation = $true $doc.Save() $doc.Close() $word.Quit() [System.Runtime.Interopservices.Marshal]::ReleaseComObject($word) | Out-Null PowerPoint के लिए PowerPoint के लिए, RemovePersonalInformation प्रॉपर्टी सेट करना समान है, लेकिन अदृश्य शुरुआत का व्यवहार थोड़ा अलग है।\n1 2 3 4 5 6 7 8 9 10 $ppt = New-Object -ComObject PowerPoint.Application # दूसरे से चौथे तर्कों के साथ छिपे हुए मोड (msoFalse) को निर्दिष्ट करके खोलें $presentation = $ppt.Presentations.Open(\u0026#34;C:\\Path\\To\\Your\\File.pptx\u0026#34;, $false, $false, $false) $presentation.RemovePersonalInformation = $true $presentation.Save() $presentation.Close() $ppt.Quit() [System.Runtime.Interopservices.Marshal]::ReleaseComObject($ppt) | Out-Null निष्कर्ष PowerShell और COM ऑब्जेक्ट का उपयोग करके, आप Office फ़ाइलों से मेटाडेटा हटाने को पूरी तरह से स्वचालित कर सकते हैं। गोपनीय जानकारी या व्यक्तिगत नामों को अनजाने में लीक होने से रोकने के लिए डिलीवरी से पहले बैच प्रोसेसिंग स्क्रिप्ट का होना बहुत उपयोगी है।\n","date":"2025-07-30T02:42:40+09:00","image":"http://kenji.blog/p/powershell-%E3%81%A7-excel-%E3%81%AE%E3%83%A1%E3%82%BF%E3%83%87%E3%83%BC%E3%82%BF%E5%80%8B%E4%BA%BA%E6%83%85%E5%A0%B1%E3%82%92%E5%89%8A%E9%99%A4%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/powershell_metadata_eyecatch_1788588033601_hud95a00206aa1dcf32de9cdc0ccb17972_952041_120x120_fill_q75_box_smart1.jpg","permalink":"http://kenji.blog/hi/p/powershell-%E0%A4%95%E0%A4%BE-%E0%A4%89%E0%A4%AA%E0%A4%AF%E0%A5%8B%E0%A4%97-%E0%A4%95%E0%A4%B0%E0%A4%95%E0%A5%87-excel-%E0%A4%95%E0%A4%BE-%E0%A4%AE%E0%A5%87%E0%A4%9F%E0%A4%BE%E0%A4%A1%E0%A5%87%E0%A4%9F%E0%A4%BE-%E0%A4%B5%E0%A5%8D%E0%A4%AF%E0%A4%95%E0%A5%8D%E0%A4%A4%E0%A4%BF%E0%A4%97%E0%A4%A4-%E0%A4%9C%E0%A4%BE%E0%A4%A8%E0%A4%95%E0%A4%BE%E0%A4%B0%E0%A5%80-%E0%A4%95%E0%A5%88%E0%A4%B8%E0%A5%87-%E0%A4%A8%E0%A4%BF%E0%A4%95%E0%A4%BE%E0%A4%B2%E0%A5%87%E0%A4%82/","title":"PowerShell का उपयोग करके Excel, Word आदि से मेटाडेटा (व्यक्तिगत जानकारी) को बैच में कैसे निकालें"},{"content":"केप्लर अनुमान की सरल व्याख्या! तरबूज को सबसे घनी तरह से पैक करने का तरीका नमस्ते, मैं kenji हूँ!\nआज मैं \u0026ldquo;केप्लर अनुमान\u0026rdquo; नामक गणित के एक ऐसे विषय को समझाने की कोशिश करूँगा, जिसका नाम थोड़ा कठिन लगता है, लेकिन मैं इसे यथासंभव आसान बनाऊँगा।\nपहली नज़र में, यह बहुत ही अजीब विषय लग सकता है, लेकिन यह एक बहुत ही व्यावहारिक समस्या भी है: \u0026ldquo;हम एक डिब्बे में तरबूजों को सबसे घनी तरह से कैसे पैक कर सकते हैं?\u0026quot;। इसका संबंध सुविधा स्टोर के रेफ्रिजरेटर और सामान को स्टैक करने के तरीके से भी है।\nऔर गणित की दुनिया में, इसके पीछे एक बहुत ही रोमांटिक कहानी है कि यह 400 से अधिक वर्षों तक सिद्ध नहीं हो सका ।\nचलिए शुरू करते हैं!\nकेप्लर आखिर कौन था? सबसे पहले, \u0026ldquo;केप्लर अनुमान\u0026rdquo; में \u0026ldquo;केप्लर\u0026rdquo; कौन है?\nयह एक जर्मन खगोलशास्त्री और गणितज्ञ जोहान्स केप्लर (Johannes Kepler) का नाम है।\nयह आदमी बहुत ही अद्भुत था। उदाहरण के लिए, वह वही थे जिन्होंने खोजा कि ग्रहों की कक्षाएँ अण्डाकार हैं। आज यह सामान्य ज्ञान है, लेकिन उस समय (लगभग 1600 में), यह एक ऐसा युग था जब हेलियोसेंट्रिज़्म (सूर्य-केंद्रित प्रणाली) पर भी मुश्किल से विश्वास किया जाता था।\nगैलीलियो = अवलोकन के प्रतिभा केप्लर = गणितीय सूत्रों के साथ ब्रह्मांड को समझाने वाले प्रतिभा न्यूटन = वह सुपर जीनियस जिसने उस सिद्धांत को भौतिकी के नियमों में संक्षेप में प्रस्तुत किया इस स्थिति के साथ, केप्लर \u0026ldquo;गणितीय सूत्रों के साथ ब्रह्मांड के बारे में बात करने\u0026rdquo; में अग्रणी थे।\nऔर, एक समय, उसने यह कहा:\nकेप्लर अनुमान क्या है? संक्षेप में, \u0026ldquo;केप्लर अनुमान\u0026rdquo; इस प्रकार है।\nसमान आकार के गोले (तरबूज या संतरे) को एक डिब्बे में पैक करते समय, कौन सी व्यवस्था सबसे घनी पैकिंग की अनुमति देती है?\nयही समस्या है।\nऔर 1600 के दशक में केप्लर ने जो अनुमान लगाया वह था:\nक्या उन्हें त्रिकोण की तरह स्टैक करना सबसे कुशल नहीं होगा, जैसे ग्रीनग्रोसर संतरे प्रदर्शित करते हैं?\nगणितीय भाषा में, इसे \u0026ldquo;सबसे घना पैकिंग समस्या (Sphere Packing)\u0026rdquo; कहा जाता है, जो अंतरिक्ष में गोले को सबसे घनी तरह से पैक करने का तरीका खोजने की समस्या है।\nकेप्लर ने अनुमान लगाया कि \u0026ldquo;फेस-सेंटर्ड क्यूबिक स्ट्रक्चर (FCC)\u0026rdquo; (तरबूजों को त्रिकोणीय पैटर्न में स्टैक करने की तरह) नामक व्यवस्था सबसे कुशल होगी।\nसभी ने सोचा, \u0026ldquo;हाँ, यह निश्चित रूप से सही लगता है\u0026hellip;\u0026rdquo;, लेकिन गणितीय रूप से यह साबित करना कि \u0026ldquo;यह बिल्कुल सबसे अच्छा है!\u0026rdquo; बेहद मुश्किल था।\nसाबित होने में 400 साल लगे!?! तो, वास्तव में इसे कब सिद्ध किया गया\u0026hellip;?\nआश्चर्यजनक रूप से, 1998 से 2005 के आसपास । यानी, लगभग 400 वर्षों तक कोई भी इसे साबित नहीं कर सका । यह बहुत पागलपन है।\nइसके अलावा, इसे साबित करने वाले एक अमेरिकी गणितज्ञ थे जिनका नाम थॉमस हेल्स (Thomas Hales) था।\nउन्होंने महसूस किया कि यह केवल मैन्युअल गणना से असंभव होगा, इसलिए उन्होंने साबित करने के लिए कंप्यूटर का उपयोग किया । हालाँकि, समस्या यह उत्पन्न हुई कि प्रमाण इतना जटिल था कि मनुष्य इसे ठीक से नहीं जाँच सकते थे!\nइसलिए, गणितीय दुनिया में भी एक बड़ी बहस छिड़ गई: \u0026ldquo;तो, क्या हम वास्तव में कंप्यूटर द्वारा किए गए प्रमाण पर भरोसा कर सकते हैं?\u0026quot;।\nअंततः, वह प्रमाण (औपचारिक रूप से \u0026ldquo;औपचारिक प्रमाण\u0026rdquo; कहा जाता है) जिसमें कहा गया था कि \u0026ldquo;मैंने कंप्यूटर सहित इसकी कड़ाई से पुष्टि की है!\u0026rdquo; 2014 में पूरा हुआ।\nयानी, यह साबित होने में 400 से अधिक वर्ष लग गए कि केप्लर का अंतर्ज्ञान सही था । क्या रोमांस है।\nवास्तविक जीवन में भी बहुत उपयोग किया जाता है आप सोच सकते हैं कि \u0026ldquo;गोले को कैसे व्यवस्थित किया जाए\u0026rdquo; केवल गणित के दीवानों के लिए एक विषय है, लेकिन वास्तव में यह बहुत व्यावहारिक है।\nसुविधा स्टोर के रेफ्रिजरेटर में कुशलता से पेय पैक करने के लिए कैन को ट्रांसपोर्ट पैलेट पर स्टैक करते समय यह संचार (डिजिटल सिग्नल कम्प्रेशन, आदि) में भी लागू होता है 3D प्रिंटर और क्रिस्टल संरचनाओं के डिजाइन में उपयोग किया जाता है आदि, यह वास्तव में एक सिद्धांत है जिसका उपयोग हमारे जीवन के पीछे बड़े पैमाने पर किया जाता है।\nनिष्कर्ष: मानव अंतर्ज्ञान अद्भुत है तो, चलिए संक्षेप में बताते हैं।\nकेप्लर अनुमान = गोलों को सबसे घनी तरह से कैसे पैक किया जाए, इसकी समस्या श्रीमान केप्लर = गणितज्ञ और खगोलशास्त्री जिन्होंने ग्रहों की कक्षाओं की खोज की 1600 के दशक में अनुमान लगाया गया! लेकिन 2000 के दशक में साबित हुआ! वास्तविक जीवन में भी बहुत लागू! और सबसे दिलचस्प बात यह है कि: \u0026ldquo;जिस तरह से ग्रीनग्रोसर अपने अंतर्ज्ञान से फलों को स्टैक करते थे, वह गणितीय रूप से भी सबसे मजबूत था\u0026rdquo; ।\nदूसरे शब्दों में, मानव अंतर्ज्ञान अद्भुत है । और यह तथ्य कि इसे साबित करने में 400 साल लग सकते हैं , वास्तव में एक रोमांटिक कहानी है, है ना?\nयदि आप रुचि रखते हैं, तो कृपया \u0026ldquo;थॉमस हेल्स\u0026rdquo;, \u0026ldquo;औपचारिक प्रमाण\u0026rdquo;, \u0026ldquo;Sphere Packing\u0026rdquo; आदि खोजें। गहराई में जाना बहुत मजेदार है।\nफिर मिलेंगे!\n[PR]\n今すぐ購入 ","date":"2025-07-21T22:53:03+09:00","image":"http://kenji.blog/p/%E3%82%B1%E3%83%97%E3%83%A9%E3%83%BC%E4%BA%88%E6%83%B3%E3%82%92%E3%82%8F%E3%81%8B%E3%82%8A%E3%82%84%E3%81%99%E3%81%8F%E8%A7%A3%E8%AA%AC/img_huc7f0a2c79b029796989bdbbe22e755bc_619919_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/kepler-conjecture-simple-explanation/","title":"केप्लर अनुमान की सरल व्याख्या"},{"content":"AI विकास की दीवार ~ 8वें स्टेशन तक आ गए, लेकिन उसके बाद नरक था ~\nनमस्ते, मैं kenji हूँ।\nहाल ही में, मुझे बहुत से लोगों को यह कहते हुए सुना है: \u0026ldquo;मैंने AI से पूछा और ऐप बन गया!\u0026rdquo; हम नो-कोड (no-code) और लो-कोड (low-code) के युग को पार कर चुके हैं, और \u0026ldquo;वाइब कोडिंग (vibe coding)\u0026rdquo; के चरण में प्रवेश कर चुके हैं।\nउदाहरण के लिए, यदि आप कहते हैं \u0026ldquo;एक ऐप बनाएं जो छवियों को संपादित कर सके और सोशल मीडिया पर पोस्ट कर सके\u0026rdquo;, तो AI कोड और यहाँ तक कि UI भी दे देगा। अद्भुत है ना, अब हमें इंसानों की आवश्यकता नहीं है? ऐसा ही लगता है।\nलेकिन, वास्तव में यह चप्पल पहनकर माउंट फ़ूजी के 8वें स्टेशन पर उतरने जैसा है।\n8वें स्टेशन तक यह \u0026ldquo;आसान\u0026rdquo; लगता है शुरुआत में AI के साथ विकास वास्तव में आसान है। फ़ाइल I/O? बस काम करता है। नेटवर्क? खैर, यह कनेक्ट हो जाता है। डेटाबेस? JSON ठीक रहेगा। UI? ChatGPT ने मेरे लिए React कोड जेनरेट किया। भुगतान? Stripe API को कॉपी-पेस्ट करके किया जा सकता है।\nयहाँ आपको भ्रम होता है कि \u0026ldquo;क्या मैं अब इंजीनियर नहीं हूँ?\u0026rdquo; लेकिन असली नरक यहीं से शुरू होता है।\nआप क्यों अटक जाते हैं? कारण सरल है: \u0026ldquo;AI एक पूर्ण उत्पाद जैसा दिखने वाला कुछ बनाता है, लेकिन अंतिम समायोजन इंसानों पर छोड़ दिया जाता है।\u0026rdquo;\nफ़ाइल I/O के कारण डेटा गायब हो जाता है डेटाबेस सामान्यीकरण कमज़ोर है और खोज धीमी है UI सहज नहीं है लोड परीक्षण नहीं किया, ट्रैफ़िक बढ़ने पर क्रैश हो गया Apple/Google समीक्षा द्वारा अस्वीकृत कानूनी आवश्यकताओं के साथ समस्याएं (लगभग आग लगा दी) दूसरे शब्दों में, AI \u0026ldquo;तैयार उत्पाद की तरह दिखने वाले प्रोटोटाइप\u0026rdquo; बनाने में अच्छा है , लेकिन इसे \u0026ldquo;एक वास्तविक दुनिया में काम करने वाले उत्पाद\u0026rdquo; में बदलना अभी भी इंसानों का काम है ।\nलेकिन, एक विरोधाभास है यहाँ हम एक विरोधाभास देखते हैं।\nक्या होगा यदि AI भविष्य में सचमुच सब कुछ कर सके? दूसरे शब्दों में, क्या होगा यदि \u0026ldquo;सुरक्षा, बिलिंग और डिज़ाइन पूरी तरह से AI द्वारा नियंत्रित\u0026rdquo; हों?\nउस समय, इंसानों द्वारा ऐप बनाने की आवश्यकता ही समाप्त हो सकती है।\nक्योंकि यदि उपयोगकर्ता सीधे AI से कहते हैं \u0026ldquo;मैं यह करना चाहता हूँ\u0026rdquo;, तो कार्य बिना ऐप के तुरंत निष्पादित हो जाएंगे।\n🌀 उदाहरण के लिए अतीत में, हम \u0026ldquo;गणना करने के लिए कैलकुलेटर ऐप खोलते थे\u0026rdquo;, लेकिन अब, हम केवल कहते हैं \u0026ldquo;अरे सिरी, 12 x 32 कितना होता है?\u0026rdquo; और काम हो जाता है।\nइसी तरह, यदि आप कहते हैं \u0026ldquo;अरे AI, इस तस्वीर को संपादित और साझा करें\u0026rdquo;, तो ऐप के UI या API के बिना ही कार्य पूरा हो सकता है।\nसंक्षेप में, जब \u0026ldquo;AI के साथ ऐप बनाने\u0026rdquo; का लक्ष्य प्राप्त हो जाएगा, तो एक ऐसा विश्व आ सकता है जहाँ ऐप्स की ही आवश्यकता न हो ।\nआखिर, हम अभी क्या कर सकते हैं? तो हमें क्या करना चाहिए?\nफिलहाल, \u0026ldquo;8वें स्टेशन से ऊपर\u0026rdquo; का क्षेत्र अभी भी इंसानों का है, इसलिए उसे सुधारें आवश्यक उपयोगकर्ता समझ और सेवा डिज़ाइन पर ध्यान दें \u0026ldquo;क्या बनाया जा सकता है\u0026rdquo; के बजाय \u0026ldquo;किसका मूल्य है\u0026rdquo; इसके बारे में सोचें इसके बजाय, \u0026ldquo;ऐप प्रारूप तक सीमित रहे बिना\u0026rdquo; मूल्य प्रदान करने के तरीके खोजें AI एक उपकरण है, एक लिफ्ट है, और कभी-कभी एक प्रतिस्पर्धी है। लेकिन, \u0026ldquo;क्या बनाना है\u0026rdquo; और \u0026ldquo;क्यों बनाना है\u0026rdquo; अभी भी हम इंसानों के लिए सवाल बने हुए हैं ।\nनिष्कर्ष: AI विकास की दीवार तकनीकी नहीं है, बल्कि एक संरचनात्मक विरोधाभास है\nयह एक ऐसा युग है जहाँ कोई भी माउंट फ़ूजी के 8वें स्टेशन तक जा सकता है। लेकिन असली चुनौती वहाँ से शुरू होती है।\nऔर जब हम शिखर पर पहुँचेंगे, तो एक ऐसा भविष्य हमारी प्रतीक्षा कर सकता है जहाँ हम पूछेंगे \u0026ldquo;क्या हमें वास्तव में पहाड़ पर चढ़ने की आवश्यकता थी?\u0026rdquo;\n","date":"2025-07-20T21:52:42+09:00","image":"http://kenji.blog/p/ai%E9%96%8B%E7%99%BA%E3%81%AE%E5%A3%81/img_1_hu929f602c53dcc1c0d00e8a53b025b29e_1978511_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/ai-development-barrier/","title":"AI विकास की दीवार"},{"content":"🎯 C++ से Microsoft.Windows.AI को कॉल करने का तरीका【उदाहरण कोड के साथ】 Windows 10 और उसके बाद के संस्करणों में, Windows मानक रूप से एक रनटाइम के साथ आता है जो ONNX प्रारूप के AI मॉडल को निष्पादित कर सकता है । वह Windows ML (Windows.AI.MachineLearning) है।\nइस लेख में, हम C++ (Win32 ऐप आधारित) से Microsoft.Windows.AI.MachineLearning को कॉल करने का तरीका, उदाहरण कोड के साथ विस्तार से समझाएंगे।\n✅ तैयारी ◾ आवश्यक परिवेश Windows 10 (1809+) या Windows 11 Visual Studio 2019 या नया (Community संस्करण भी ठीक है) C++/WinRT समर्थन (Microsoft.Windows.CppWinRT) Windows SDK 10.0.17763.0 या उच्चतर ✅ प्रोजेक्ट संरचना Visual Studio में निम्नलिखित संरचना के साथ एक प्रोजेक्ट बनाएं।\nप्रकार: C++ Windows डेस्कटॉप एप्लिकेशन (खाली प्रोजेक्ट)\nसबसिस्टम: Windows (WinMain)\nNuGet के माध्यम से निम्नलिखित पैकेज जोड़ें\n1 Microsoft.Windows.CppWinRT ✅ उदाहरण कोड नीचे WinMain का उपयोग करके Win32 API और Windows.AI.MachineLearning को संयोजित करने वाला एक न्यूनतम उदाहरण दिया गया है।\n※ उपयोग किया जाने वाला ONNX मॉडल model.onnx है, और इसे निष्पादन योग्य फ़ाइल (executable file) के समान फ़ोल्डर में रखा जाना चाहिए।\nmain.cpp 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 #include \u0026lt;windows.h\u0026gt; #include \u0026lt;winrt/Windows.AI.MachineLearning.h\u0026gt; #include \u0026lt;winrt/Windows.Storage.h\u0026gt; #pragma comment(lib, \u0026#34;windowsapp\u0026#34;) // WinRT लिंकिंग के लिए using namespace winrt; using namespace Windows::AI::MachineLearning; using namespace Windows::Storage; int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, LPSTR, int nCmdShow) { // WinRT आरंभीकरण (MTA या STA ठीक है) winrt::init_apartment(); try { // मॉडल फ़ाइल लोड करें auto modelFile = StorageFile::GetFileFromPathAsync(L\u0026#34;model.onnx\u0026#34;).get(); LearningModel model = LearningModel::LoadFromStorageFileAsync(modelFile).get(); // सत्र (Session) बनाएं LearningModelSession session(model); LearningModelBinding binding(session); // मॉडल इनपुट/आउटपुट (यहाँ एक डमी खाली इनपुट है) // वास्तव में TensorFloat आदि के साथ बाइंड करना आवश्यक है // अनुमान (Inference) निष्पादित करें auto result = session.EvaluateAsync(binding, L\u0026#34;\u0026#34;).get(); MessageBox(nullptr, L\u0026#34;अनुमान पूरा हुआ\u0026#34;, L\u0026#34;Windows ML (C++)\u0026#34;, MB_OK); } catch (winrt::hresult_error const\u0026amp; ex) { MessageBox(nullptr, ex.message().c_str(), L\u0026#34;त्रुटि\u0026#34;, MB_ICONERROR); } return 0; } ✅ अतिरिक्त जानकारी: इनपुट और आउटपुट Tensor निर्दिष्ट करने का तरीका कुछ मॉडलों के लिए, अनुमान (inference) से पहले Tensor का निर्माण और बाइंडिंग आवश्यक है।\nउदाहरण:\n1 2 3 4 5 6 7 8 // 1-आयामी float सरणी को Tensor में बदलें std::vector\u0026lt;float\u0026gt; inputData = {0.5f, 0.3f, 0.2f}; std::vector\u0026lt;int64_t\u0026gt; shape = {1, 3}; // आकार: [1, 3] auto tensor = TensorFloat::CreateFromArray(shape, inputData); // इनपुट बाइंडिंग (मॉडल के इनपुट नाम से मेल खाना चाहिए) binding.Bind(L\u0026#34;input_0\u0026#34;, tensor); आउटपुट को भी इसी तरह result.Outputs().Lookup(L\u0026quot;output_0\u0026quot;) का उपयोग करके प्राप्त किया जा सकता है।\n✅ डिबगिंग के लिए ध्यान रखने योग्य बातें यदि मॉडल फ़ाइल निष्पादन फ़ोल्डर में मौजूद नहीं है, तो FileNotFoundException फेंका जाएगा। यदि इनपुट/आउटपुट नाम मेल नहीं खाते हैं, तो invalid_argument त्रुटि होगी। मॉडल के सटीक IO विनिर्देशों की जांच Netron जैसे उपकरणों से की जा सकती है। ✅ निष्कर्ष आइटम विवरण उपयोग किया गया API Windows.AI.MachineLearning (WinRT) भाषा C++ (Win32 आधारित) अनुशंसित विधि C++/WinRT हेडर के माध्यम से लाभ ONNX मॉडल मूल रूप से (natively) चलते हैं, GPU समर्थन भी उपलब्ध है ध्यान दें मॉडल इनपुट नाम और Tensor आकार पर ध्यान दें ✅ विकल्प: उन लोगों के लिए जो WinRT का उपयोग नहीं करना चाहते हैं Microsoft के ONNX Runtime का उपयोग करके, आप पूरी तरह से WinRT के बिना C++ से ONNX मॉडल को संभाल सकते हैं । यह क्रॉस-प्लेटफ़ॉर्म समर्थित है, और Windows/Linux के लिए सामान्य कोड संभव है। 📌 निष्कर्ष Windows ML (Microsoft.Windows.AI) एक शक्तिशाली AI अनुमान इंजन (inference engine) है जिसे C++ से मज़बूती से उपयोग किया जा सकता है। यदि आपको Windows पर नेटिव अनुमान की आवश्यकता है, तो कृपया इसे आज़माएँ।\nजिन लोगों को ONNX मॉडल बनाने और Tensor बाइंडिंग के विशिष्ट उदाहरण चाहिए, हम भविष्य के लेख में उन्हें समझाने की योजना बना रहे हैं!\n","date":"2025-07-19T10:03:51+09:00","image":"http://kenji.blog/p/c-%E3%81%8B%E3%82%89microsoft.windows.ai%E3%82%92%E5%91%BC%E3%81%B3%E5%87%BA%E3%81%99%E6%96%B9%E6%B3%95/img_hub9c7b00735e02a7f33c50dd8006e2228_376811_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/c-%E0%A4%B8%E0%A5%87-microsoft.windows.ai-%E0%A4%95%E0%A5%8B-%E0%A4%95%E0%A5%89%E0%A4%B2-%E0%A4%95%E0%A4%B0%E0%A4%A8%E0%A5%87-%E0%A4%95%E0%A4%BE-%E0%A4%A4%E0%A4%B0%E0%A5%80%E0%A4%95%E0%A4%BE/","title":"C++ से Microsoft.Windows.AI को कॉल करने का तरीका"},{"content":"✅ TinyLLaMA × C++ सेटअप प्रक्रिया (llama.cpp का उपयोग करके) 🔧 Step 1: llama.cpp तैयार करें 1-1. आवश्यक वातावरण (न्यूनतम) OS: Windows / Linux / macOS विकास वातावरण: g++ / clang / MSVC Git / CMake 1-2. llama.cpp प्राप्त करें और बिल्ड करें 1 2 3 4 5 6 git clone https://github.com/ggerganov/llama.cpp cd llama.cpp mkdir build cd build cmake .. cmake --build . --config Release Windows पर, Visual Studio Developer Command Prompt में cmake --build . --config Release का उपयोग करना आसान है।\n📦 Step 2: TinyLLaMA मॉडल डाउनलोड और कनवर्ट करें 2-1. HuggingFace से मूल मॉडल प्राप्त करें उदाहरण: TinyLLaMA-1.1B\n1 2 3 4 5 6 7 # आवश्यकतानुसार transformers का उपयोग करके डाउनलोड करें pip install transformers huggingface_hub python3 -m transformers.models.llama.convert_llama_weights_to_hf \\ --input_dir ./TinyLlama-1.1B-Chat \\ --model_size 1B \\ --output_dir ./hf_model यह Hugging Face प्रारूप में कनवर्ट करने का चरण है।\n2-2. GGUF प्रारूप में कनवर्ट करें (llama.cpp के लिए) 1 2 cd llama.cpp python3 convert.py ./hf_model --outfile tinyllama.gguf 2-3. मॉडल क्वांटाइजेशन (आकार कम करना) 1 ./quantize ./tinyllama.gguf ./tinyllama-q4.gguf q4_0 q4_0 4bit क्वांटाइजेशन है। मॉडल का आकार लगभग ** 350MB ** तक कम हो जाता है।\n🧪 Step 3: C++ से मॉडल को कॉल करें (कोड उदाहरण) 3-1. सरल C++ कोड (अनुमान) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 #include \u0026#34;llama.h\u0026#34; #include \u0026lt;iostream\u0026gt; int main() { llama_model_params model_params = llama_model_default_params(); llama_context_params ctx_params = llama_context_default_params(); llama_model *model = llama_load_model_from_file(\u0026#34;tinyllama-q4.gguf\u0026#34;, model_params); llama_context *ctx = llama_new_context_with_model(model, ctx_params); std::string prompt = \u0026#34;उपयोगकर्ता कहता है कि वह Excel डेटा पढ़ना, फ़िल्टर करना और सहेजना चाहता है। नोड कॉन्फ़िगरेशन क्या है?\u0026#34;; llama_batch batch = llama_batch_init(512, 0, 1); llama_token BOS = llama_token_bos(model); batch.token[0] = BOS; // टोकनाइज़ेशन std::vector\u0026lt;llama_token\u0026gt; tokens(prompt.size() + 8); int n = llama_tokenize(model, prompt.c_str(), tokens.data(), tokens.size(), true); tokens.resize(n); for (size_t i = 0; i \u0026lt; tokens.size(); ++i) { batch.token[i + 1] = tokens[i]; } batch.n_tokens = tokens.size() + 1; llama_decode(ctx, batch); // अनुमान परिणाम प्राप्त करें for (int i = 0; i \u0026lt; 50; ++i) { llama_token next = llama_sample_token(ctx, nullptr); std::cout \u0026lt;\u0026lt; llama_token_to_str(model, next); llama_batch next_batch = llama_batch_init(1, 0, 1); next_batch.token[0] = next; next_batch.n_tokens = 1; llama_decode(ctx, next_batch); } llama_free(ctx); llama_free_model(model); return 0; } 🧱 Step 4: संकलन विधि (उदाहरण) 1 g++ -I./llama.cpp main.cpp ./llama.cpp/build/libllama.a -o tiny_infer -pthread -std=c++11 libllama.a बिल्ड के बाद build/ निर्देशिका में बनाया जाता है।\n✅ आउटपुट संरचना उदाहरण (व्यवस्थित) 1 2 3 4 5 6 my_app/ ├── tinyllama-q4.gguf # क्वांटाइज्ड मॉडल (~350MB) ├── main.cpp # उपरोक्त C++ कोड ├── llama.cpp/ # llama.cpp स्रोत └── build/ └── libllama.a # संकलित लाइब्रेरी 🧠 उपयोग के मामले में लागू करने के लिए पूरक आउटपुट प्राप्त करने और नोड टेम्पलेट से मिलान / चयन करने के लिए C++ में कोड रखें उदाहरण: यदि \u0026ldquo;Excel\u0026rdquo;, \u0026ldquo;फ़िल्टर\u0026rdquo;, \u0026ldquo;सहेजें\u0026rdquo; शामिल हैं → संबंधित नोड समूह उत्पन्न करें यह भाग if स्टेटमेंट + JSON टेम्पलेट लोडिंग जैसी सरल संरचना के साथ ठीक है 📌 सारांश आइटम विवरण अनुशंसित मॉडल TinyLLaMA-1.1B-Chat v1.0 (GGUF + क्वांटाइजेशन) आकार ~350 से 450MB (4bit क्वांटाइजेशन) C++ एकीकरण llama.cpp का उपयोग करके संभव है, लगभग कोई बाहरी निर्भरता नहीं प्रसंस्करण क्षमता सरल इरादे को समझने और आउटपुट वाक्य उत्पन्न करने के लिए पर्याप्त (प्राकृतिक वाक्य → संरचना) विस्तारशीलता स्लॉट-फिलिंग और टेम्पलेट कॉलिंग के साथ मिलकर, इसे एक नोड जेनरेशन AI बनाया जा सकता है ","date":"2025-07-19T09:40:53+09:00","image":"http://kenji.blog/p/tinyllama-%E3%82%92-c-%E3%81%8B%E3%82%89%E5%91%BC%E3%81%B3%E5%87%BA%E3%81%9B%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%82%8B%E6%89%8B%E9%A0%86llama.cpp%E4%BD%BF%E7%94%A8/img_huf78e5769214ace33fee09d1baa98793b_1915663_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/tinyllama-%E0%A4%95%E0%A5%8B-c-%E0%A4%B8%E0%A5%87-%E0%A4%95%E0%A5%89%E0%A4%B2-%E0%A4%95%E0%A4%B0%E0%A4%A8%E0%A5%87-%E0%A4%95%E0%A5%80-%E0%A4%AA%E0%A5%8D%E0%A4%B0%E0%A4%95%E0%A5%8D%E0%A4%B0%E0%A4%BF%E0%A4%AF%E0%A4%BE-llama.cpp-%E0%A4%95%E0%A4%BE-%E0%A4%89%E0%A4%AA%E0%A4%AF%E0%A5%8B%E0%A4%97-%E0%A4%95%E0%A4%B0%E0%A4%95%E0%A5%87/","title":"TinyLLaMA को C++ से कॉल करने की प्रक्रिया (llama.cpp का उपयोग करके)"},{"content":"✅ एक्सेस टोकन का उपयोग करके पोस्ट करने की विधि (Slack Web API) Slack का \u0026ldquo;OAuth Token (जैसे xoxb-\u0026hellip;)\u0026rdquo; Slack के Web API का उपयोग करके पोस्ट करने के लिए एक कुंजी है। इस मामले में, Webhook के विपरीत, आप Authorization: Bearer हेडर के साथ Slack API एंडपॉइंट पर POST करते हैं।\n🔑 आवश्यक शर्तें आपको Slack ऐप के OAuth स्कोप में chat:write शामिल करना होगा:\nसेटअप प्रक्रिया https://api.slack.com/apps पर जाएं एक ऐप बनाएं या मौजूदा ऐप चुनें \u0026ldquo;OAuth \u0026amp; Permissions\u0026rdquo; \u0026gt; Scopes में → chat:write जोड़ें \u0026ldquo;Install to Workspace\u0026rdquo; या \u0026ldquo;Reinstall\u0026rdquo; पर जाएं और Access Token प्राप्त करें (उदा: xoxb-xxxxxxxxxx) 💻 C++ कोड (WinHTTP के साथ Slack API पर पोस्ट करना) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 #include \u0026lt;windows.h\u0026gt; #include \u0026lt;winhttp.h\u0026gt; #include \u0026lt;iostream\u0026gt; #pragma comment(lib, \u0026#34;winhttp.lib\u0026#34;) bool PostSlackMessage(const std::wstring\u0026amp; accessToken, const std::string\u0026amp; channel, const std::string\u0026amp; text) { const wchar_t* host = L\u0026#34;slack.com\u0026#34;; const wchar_t* path = L\u0026#34;/api/chat.postMessage\u0026#34;; HINTERNET hSession = WinHttpOpen(L\u0026#34;SlackPoster/1.0\u0026#34;, WINHTTP_ACCESS_TYPE_DEFAULT_PROXY, WINHTTP_NO_PROXY_NAME, WINHTTP_NO_PROXY_BYPASS, 0); if (!hSession) return false; HINTERNET hConnect = WinHttpConnect(hSession, host, INTERNET_DEFAULT_HTTPS_PORT, 0); if (!hConnect) return false; HINTERNET hRequest = WinHttpOpenRequest(hConnect, L\u0026#34;POST\u0026#34;, path, NULL, WINHTTP_NO_REFERER, WINHTTP_DEFAULT_ACCEPT_TYPES, WINHTTP_FLAG_SECURE); // Authorization हेडर और Content-Type std::wstring headers = L\u0026#34;Content-Type: application/json\\r\\n\u0026#34;; headers += L\u0026#34;Authorization: Bearer \u0026#34; + accessToken + L\u0026#34;\\r\\n\u0026#34;; // JSON बॉडी std::string body = R\u0026#34;({\u0026#34;channel\u0026#34;:\u0026#34;)\u0026#34; + channel + R\u0026#34;(\u0026#34;,\u0026#34;text\u0026#34;:\u0026#34;)\u0026#34; + text + R\u0026#34;(\u0026#34;})\u0026#34;; BOOL result = WinHttpSendRequest(hRequest, headers.c_str(), (DWORD)-1, (LPVOID)body.c_str(), body.length(), body.length(), 0); if (!result || !WinHttpReceiveResponse(hRequest, NULL)) { std::cerr \u0026lt;\u0026lt; \u0026#34;भेजने में त्रुटि\\n\u0026#34;; return false; } // स्थिति कोड की जाँच DWORD statusCode = 0; DWORD size = sizeof(statusCode); WinHttpQueryHeaders(hRequest, WINHTTP_QUERY_STATUS_CODE | WINHTTP_QUERY_FLAG_NUMBER, WINHTTP_HEADER_NAME_BY_INDEX, \u0026amp;statusCode, \u0026amp;size, WINHTTP_NO_HEADER_INDEX); WinHttpCloseHandle(hRequest); WinHttpCloseHandle(hConnect); WinHttpCloseHandle(hSession); return (statusCode == 200); } int main() { std::wstring token = L\u0026#34;xoxb-आपका_एक्सेस_टोकन\u0026#34;; // एक्सेस टोकन std::string channel = \u0026#34;चैनल_ID_या_#general\u0026#34;; // उदा: \u0026#34;#general\u0026#34; या \u0026#34;C0123456789\u0026#34; std::string message = \u0026#34;C++ से Slack पर पोस्ट करने का प्रयास!\u0026#34;; if (PostSlackMessage(token, channel, message)) { std::cout \u0026lt;\u0026lt; \u0026#34;पोस्ट सफल!\\n\u0026#34;; } else { std::cerr \u0026lt;\u0026lt; \u0026#34;पोस्ट विफल।\\n\u0026#34;; } return 0; } 📌 चैनल ID कैसे प्राप्त करें केवल चैनल नाम (उदा: #general) का उपयोग करने से त्रुटि हो सकती है। सबसे विश्वसनीय तरीका Slack चैनल पृष्ठ URL में ID का उपयोग करना है।\n1 2 https://app.slack.com/client/Txxxxx/C0123456789 ↑यह हिस्सा चैनल ID है ✅ टोकन के प्रकार (पूरक) टोकन प्रारूप उपयोग उदाहरण xoxb-... Bot Token (अनुशंसित) पोस्ट, संपादित करें, हटाएं xoxp-... User Token (अनुशंसित नहीं) गैर-बॉट संचालन Refresh Token दीर्घकालिक टोकन अपडेट के लिए आमतौर पर उपयोग नहीं किया जाता है 📝 सारांश C++ से Slack पर पोस्ट करने के लिए, Slack Web API + Bearer Token विधि विश्वसनीय है HTTPS POST के साथ chat.postMessage एंडपॉइंट का उपयोग करें टोकन को Bearer हेडर में भेजा जाना चाहिए चैनल ID निर्दिष्ट करना विश्वसनीय है ","date":"2025-07-16T23:36:27+09:00","image":"http://kenji.blog/p/slack-app--oauth2-%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6-slack-%E3%81%AB%E3%83%A1%E3%83%83%E3%82%BB%E3%83%BC%E3%82%B8%E3%82%92%E6%8A%95%E7%A8%BF%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/img_huc0fc953b24035d17918192b772178b43_75467_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/slack-app--oauth2-%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6-slack-%E3%81%AB%E3%83%A1%E3%83%83%E3%82%BB%E3%83%BC%E3%82%B8%E3%82%92%E6%8A%95%E7%A8%BF%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/","title":"Slack App + OAuth2 का उपयोग करके Slack पर संदेश कैसे पोस्ट करें"},{"content":"C++ (Win32 API + WinHTTP) के साथ Slack पर संदेश कैसे भेजें [Webhook समर्थित] मैं C++ से Slack पर एक संदेश पोस्ट करना चाहता हूँ। यह Node.js और Python में आम है, लेकिन \u0026ldquo;C++ × Win32 API × WinHTTP\u0026rdquo; का उपयोग करने के मामले दुर्लभ हैं, है ना?\nइस लेख में, हम Webhook URL का उपयोग करके C++ से Slack पर संदेश भेजने का तरीका चरण-दर-चरण समझाएंगे।\n✅ पूरी प्रक्रिया Slack पर पोस्ट करने के लिए, इन चरणों का पालन करें।\nSlack Webhook URL (API कुंजी) प्राप्त करें WinHTTP का उपयोग करके POST अनुरोध भेजें संदेश के मुख्य भाग को JSON प्रारूप में बनाएँ परिणाम की जाँच करें और पूरा करें! 🔑 Step1: Slack Webhook URL कैसे प्राप्त करें Slack में, आप Incoming Webhooks नामक सुविधा का उपयोग करके बाहरी सेवाओं से आसानी से संदेश पोस्ट कर सकते हैं।\nप्राप्ति के चरण https://api.slack.com/apps पर जाएँ Create New App पर क्लिक करें From scratch चुनें, ऐप का नाम और पोस्ट करने के लिए कार्यक्षेत्र (workspace) चुनें बाएँ मेनू से \u0026ldquo;Incoming Webhooks\u0026rdquo; चुनें, और इसे सक्षम करें \u0026ldquo;Add New Webhook to Workspace\u0026rdquo; पर क्लिक करें, और एक चैनल चुनें जारी किए गए URL को कॉपी करें (उदाहरण: https://hooks.slack.com/services/xxx/yyy/zzz) यह URL एक API कुंजी की तरह काम करता है।\n💻 Step2: C++ कोड के साथ Slack पर संदेश भेजें प्रयुक्त तकनीकें Win32 API WinHTTP (मानक पुस्तकालय) JSON प्रारूप में संदेश नमूना कोड (Slack पोस्ट) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 #include \u0026lt;windows.h\u0026gt; #include \u0026lt;winhttp.h\u0026gt; #include \u0026lt;iostream\u0026gt; #pragma comment(lib, \u0026#34;winhttp.lib\u0026#34;) bool PostToSlack(const std::wstring\u0026amp; webhookUrl, const std::string\u0026amp; messageJson) { // URL का विश्लेषण URL_COMPONENTS urlComp{}; wchar_t hostName[256]; wchar_t urlPath[1024]; urlComp.dwStructSize = sizeof(urlComp); urlComp.lpszHostName = hostName; urlComp.dwHostNameLength = _countof(hostName); urlComp.lpszUrlPath = urlPath; urlComp.dwUrlPathLength = _countof(urlPath); if (!WinHttpCrackUrl(webhookUrl.c_str(), 0, 0, \u0026amp;urlComp)) { std::wcerr \u0026lt;\u0026lt; L\u0026#34;URL विश्लेषण विफल रहा\\n\u0026#34;; return false; } // HTTP सत्र और कनेक्शन HINTERNET hSession = WinHttpOpen(L\u0026#34;SlackPoster/1.0\u0026#34;, WINHTTP_ACCESS_TYPE_DEFAULT_PROXY, WINHTTP_NO_PROXY_NAME, WINHTTP_NO_PROXY_BYPASS, 0); HINTERNET hConnect = WinHttpConnect(hSession, hostName, urlComp.nPort, 0); HINTERNET hRequest = WinHttpOpenRequest(hConnect, L\u0026#34;POST\u0026#34;, urlPath, NULL, WINHTTP_NO_REFERER, WINHTTP_DEFAULT_ACCEPT_TYPES, WINHTTP_FLAG_SECURE); std::wstring headers = L\u0026#34;Content-Type: application/json\\r\\n\u0026#34;; BOOL result = WinHttpSendRequest(hRequest, headers.c_str(), -1, (LPVOID)messageJson.c_str(), messageJson.length(), messageJson.length(), 0); if (!result) { std::cerr \u0026lt;\u0026lt; \u0026#34;भेजने का अनुरोध विफल रहा\\n\u0026#34;; return false; } WinHttpReceiveResponse(hRequest, NULL); DWORD statusCode = 0; DWORD size = sizeof(statusCode); WinHttpQueryHeaders(hRequest, WINHTTP_QUERY_STATUS_CODE | WINHTTP_QUERY_FLAG_NUMBER, WINHTTP_HEADER_NAME_BY_INDEX, \u0026amp;statusCode, \u0026amp;size, WINHTTP_NO_HEADER_INDEX); // संसाधन मुक्त करें WinHttpCloseHandle(hRequest); WinHttpCloseHandle(hConnect); WinHttpCloseHandle(hSession); return (statusCode == 200); } int main() { std::wstring webhookUrl = L\u0026#34;https://hooks.slack.com/services/xxx/yyy/zzz\u0026#34;; // इसे अपने Webhook से बदलें std::string message = R\u0026#34;({ \u0026#34;text\u0026#34;: \u0026#34;Hello from C++ :rocket:\u0026#34;, \u0026#34;username\u0026#34;: \u0026#34;C++ Bot\u0026#34;, \u0026#34;icon_emoji\u0026#34;: \u0026#34;:robot_face:\u0026#34; })\u0026#34;; if (PostToSlack(webhookUrl, message)) { std::cout \u0026lt;\u0026lt; \u0026#34;पोस्ट सफल रहा!\\n\u0026#34;; } else { std::cerr \u0026lt;\u0026lt; \u0026#34;पोस्ट विफल रहा।\\n\u0026#34;; } return 0; } 🧪 JSON संदेश को अनुकूलित करना Slack के Webhook में, आप निम्नलिखित पैरामीटर शामिल कर सकते हैं:\n1 2 3 4 5 6 { \u0026#34;text\u0026#34;: \u0026#34;अधिसूचना सामग्री\u0026#34;, \u0026#34;username\u0026#34;: \u0026#34;बॉट का नाम\u0026#34;, \u0026#34;icon_emoji\u0026#34;: \u0026#34;:rocket:\u0026#34;, \u0026#34;channel\u0026#34;: \u0026#34;#कोई भी चैनल नाम\u0026#34; } 📌 अतिरिक्त जानकारी Content-Type को \u0026quot;application/json\u0026quot; के रूप में निर्दिष्ट करना सुनिश्चित करें Webhook URL को वैसे ही wstring के रूप में पास किया जाता है (URL एन्कोडिंग की आवश्यकता नहीं है) क्योंकि यह HTTPS संचार है, इसलिए WINHTTP_FLAG_SECURE को न भूलें 🎉 बोनस: Slack में पोस्ट की पुष्टि का उदाहरण यह Slack में कुछ इस तरह दिखाई देगा:\n1 2 [C++ Bot] Hello from C++ :rocket: ✍️ निष्कर्ष आइटम विवरण पोस्टिंग विधि Webhook (Incoming Webhooks) संचार पुस्तकालय WinHTTP डेटा प्रारूप JSON उपलब्ध पैरामीटर text, username, icon_emoji, channel आदि यदि आपने कभी सोचा था कि C++ को Slack के साथ एकीकृत करना मुश्किल है\u0026hellip; तो आप आज से ही एक सूचना बॉट (notification bot) शामिल कर सकते हैं!\n🚀 अगला भाग? अगर आपकी रुचि है, तो अगली बार हम:\nफ़ाइल संलग्न करना बटन के साथ UI Slack App + OAuth2 के माध्यम से लचीला API संचालन जैसे कुछ और उन्नत Slack एकीकरण भी प्रस्तुत कर सकते हैं!\n","date":"2025-07-16T19:42:56+09:00","image":"http://kenji.blog/p/c-win32-api--winhttp%E3%81%A7slack%E3%81%AB%E3%83%A1%E3%83%83%E3%82%BB%E3%83%BC%E3%82%B8%E3%82%92%E6%8A%95%E7%A8%BF%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95webhook%E5%AF%BE%E5%BF%9C/img_huc0fc953b24035d17918192b772178b43_75467_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/how-to-post-message-to-slack-in-cpp-win32-api-winhttp-webhook/","title":"C++ (Win32 API + WinHTTP) के साथ Slack पर संदेश कैसे भेजें [Webhook समर्थित]"},{"content":"Market-in और Product-out नमस्ते, मैं kenji हूँ।\nकभी-कभी बिजनेस की किताबों या प्रपोजल डाक्यूमेंट्स में,\n\u0026ldquo;हमारी रणनीति Market-in है।\u0026rdquo; \u0026ldquo;यह तो Product-out प्रकार का है।\u0026rdquo;\nमैं लोगों को ऐसा कहते हुए सुनता हूँ, लेकिन\u0026hellip;\nअरे, Market-in? Product-out? इनमें से कौन बेहतर है???\nक्या आपको ऐसा नहीं लगता?\nइसलिए इस बार, मैं इस \u0026ldquo;Market-in\u0026rdquo; और \u0026ldquo;Product-out\u0026rdquo; को जितना हो सके आसान शब्दों में, थोड़ा आलोचनात्मक नजरिए से देखने की कोशिश करूंगा।\nसंक्षेप में कहें तो\u0026hellip; Market-in : बाज़ार (Market) की आवाज़ सुनना, और उसके अनुसार उत्पाद बनाना। Product-out : जो हमें अच्छा लगता है (Product), उसे बनाना और दुनिया के सामने पेश करना। बस इतना ही। बहुत सरल है।\nउदाहरण के लिए, एक रामेन की दुकान में\u0026hellip; एक Market-in रामेन की दुकान कहेगी, \u0026ldquo;आजकल इकेई (Iekei) रामेन बहुत लोकप्रिय है। ठीक है, चलो खूब सारा तेल और लहसुन डालते हैं!\u0026rdquo;\nएक Product-out रामेन की दुकान कहेगी, \u0026ldquo;मैंने जो यह सोया मिल्क बेसिल सॉल्ट रामेन बनाया है, यह वास्तव में कमाल का है, इसे खाकर देखो।\u0026rdquo;\nसही जवाब क्या है\u0026hellip; दोनों ही सही हैं Market-in ग्राहकों की ज़रूरतों के करीब जाता है, इसलिए इसके \u0026ldquo;बिकने की संभावना अधिक\u0026rdquo; होती है, लेकिन इसमें कोई बेहतरीन आइडिया या ब्रेकथ्रू मिलना मुश्किल होता है।\nProduct-out \u0026ldquo;हम जिस न्याय में विश्वास करते हैं उसे आकार देने\u0026rdquo; के बारे में है, इसलिए यह तीखा और आकर्षक है, लेकिन अगर आप चूक गए, तो यह किसी को पसंद नहीं आएगा।\niPhone लगभग Product-out जैसा है ऐसे समय में जब लोग कह रहे थे \u0026ldquo;हमें स्मार्टफोन की ज़रूरत नहीं है,\u0026rdquo; Apple ने iPhone जारी किया।\nयह पूरी तरह से Product-out की सफलता का उदाहरण है।\nअगर उन्होंने उपयोगकर्ताओं की आवाज़ सुनी होती, तो उन्हें सुनने को मिलता, \u0026ldquo;बिना कीबोर्ड वाला मोबाइल? बिल्कुल नहीं\u0026rdquo; और बात वहीं खत्म हो जाती।\nलेकिन Product-out का आसानी से \u0026ldquo;आत्म-संतुष्टि\u0026rdquo; बन जाने का खतरा होता है कभी-कभी, कुछ कंपनियां या लोग कहते हैं, \u0026ldquo;हम Product-out प्रकार के हैं,\u0026rdquo; लेकिन\u0026hellip;\nरुको, क्या यह सिर्फ उपयोगकर्ताओं को नज़रअंदाज़ करना नहीं है?\nकभी-कभी मुझे भी ऐसा लगता है।\n\u0026ldquo;हम इसे बनाना चाहते थे, इसलिए हमने इसे बनाया। लेकिन यह बिका नहीं।\u0026rdquo; यह Product-out नहीं है, यह \u0026ldquo;अहंकार-out\u0026rdquo; है।\nMarket-in में भी कमियां हैं दूसरी ओर, Market-in भी कोई जादू नहीं है।\nअगर आप कहते हैं, \u0026ldquo;हम वह सब कुछ करेंगे जो उपयोगकर्ता मांगते हैं!\u0026rdquo;, तो उत्पाद का मूल लक्ष्य भटक जाएगा, और यह अंत में किसी को भी आकर्षित नहीं करेगा।\nआप इसमें सुविधाएँ जोड़ते जाते हैं, और आपको एहसास होने से पहले, यह एक अव्यवस्थित टूल बन जाता है।\nजो लोग वास्तव में अद्भुत हैं, वे \u0026ldquo;दोनों करते हैं\u0026rdquo; अद्भुत उत्पाद शानदार ढंग से वह चीज़ पेश करते हैं \u0026ldquo;जो उपयोगकर्ता वास्तव में चाहते थे, लेकिन शब्दों में बयां नहीं कर सकते थे।\u0026rdquo;\nदूसरे शब्दों में, \u0026ldquo;Product-out मानसिकता के साथ Market-in जैसी सहानुभूति प्राप्त करना।\u0026rdquo;\nयह कहना आसान है, लेकिन करना बहुत मुश्किल है। लेकिन, अगर आप ऐसा कर सकते हैं, तो यह अचानक \u0026ldquo;गॉड प्रोडक्ट\u0026rdquo; बन जाता है।\nनिष्कर्ष: शब्दों से ज़्यादा, उपयोगकर्ता की प्रतिक्रिया मायने रखती है Market-in या Product-out. इनमें से कौन सा सही है, यह पूछना लगभग व्यर्थ है।\n\u0026ldquo;क्या यह वास्तव में उपयोगकर्ताओं के दिलों तक पहुंचता है?\u0026rdquo; यही सब कुछ है , मुझे ऐसा लगता है।\n\u0026ldquo;हम किस तरह की रणनीति पर काम कर रहे हैं\u0026rdquo; मुझे लगता है कि अगर आप इसे बाद में अपनी मार्केटिंग सामग्री में लिख सकें तो यह ठीक है।\nतो, यह थी Market-in और Product-out की कहानी!\nमुझे लगता है कि सबसे अच्छी बात यह है कि अजीब विदेशी शब्दों से भ्रमित न हों और सोचें \u0026ldquo;अंत में, हम लोगों को कैसे खुश कर सकते हैं?\u0026quot;।\nफिर मिलेंगे~।\n","date":"2025-07-15T20:18:22+09:00","image":"http://kenji.blog/p/%E3%83%9E%E3%83%BC%E3%82%B1%E3%83%83%E3%83%88%E3%82%A4%E3%83%B3%E3%81%A8%E3%83%97%E3%83%AD%E3%83%80%E3%82%AF%E3%83%88%E3%82%A2%E3%82%A6%E3%83%88/img_hu9af708a897f548be4a7980daec441f8f_1946278_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/market-in-and-product-out/","title":"Market-in और Product-out"},{"content":"\u0026ldquo;क्या यह सच है कि कोई भी संख्या अंत में 1 हो जाती है?\u0026rdquo; ── कोलैट्ज़ अनुमान के साथ खेलना नमस्ते! मैं kenji हूँ।\nअचानक से, अगर आप सुनें \u0026ldquo;एक नियम जहाँ कोई भी संख्या अंततः 1 बन जाती है\u0026rdquo;, क्या यह थोड़ा अजीब नहीं लगता?\nउदाहरण के लिए, 19, 87, या 1000000 भी। यदि आप एक नियम के अनुसार संख्याओं में हेरफेर करते हैं, तो किसी कारण से यह अंत में \u0026ldquo;1\u0026rdquo; पर अभिसरण करता है।\nयह सपने जैसी कहानी ** कोलैट्ज़ अनुमान (Collatz Conjecture) ** है।\nआखिर कोलैट्ज़ अनुमान क्या है? सबसे पहले, मैं नियम का परिचय दूंगा।\nप्रारंभ: कोई भी ** धनात्मक पूर्णांक ** चुनें\nसंचालन:\nयदि यह सम है → इसे आधा करें (n → n / 2) यदि यह विषम है → 3 से गुणा करें और 1 जोड़ें (n → 3n + 1) इसे बार-बार दोहराने पर, यह एक अनुमान है कि ** कोई भी संख्या अंततः 1 तक पहुंच जाएगी **।\nउदाहरण के लिए, 6 से शुरू करना:\n1 6 → 3 → 10 → 5 → 16 → 8 → 4 → 2 → 1 यह ठीक से \u0026ldquo;1\u0026rdquo; बन गया। वापसी पर स्वागत है!\nआइए इसे कोड के साथ करते हैं: पायथन में कोलैट्ज़ खैर, ऐसे समय में, कोड के साथ परीक्षण करना अधिक तेज़ है! आइए पायथन में \u0026ldquo;कोलैट्ज़ अनुक्रम\u0026rdquo; प्रिंट करें।\n1 2 3 4 5 6 7 8 9 10 11 12 def collatz(n): steps = [n] while n != 1: if n % 2 == 0: n = n // 2 else: n = 3 * n + 1 steps.append(n) return steps # उदाहरण: 19 से शुरू करना print(collatz(19)) जब निष्पादित किया जाता है:\n1 [19, 58, 29, 88, 44, 22, 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1] यह शानदार ढंग से 1 तक पहुंचता है। भले ही यह बहुत सारे चक्कर लगाता है, लेकिन अंत में यह लक्ष्य तक पहुंच ही जाता है!\nवैसे, यदि आप 29 से शुरू करते हैं, तो यह उसी तरह 1 तक पहुंच जाएगा।\n1 print(collatz(29)) जब निष्पादित किया जाता है\n1 2 3 4 5 6 7 8 [27, 82, 41, 124, 62, 31, 94, 47, 142, 71, 214, 107, 322, 161, 484, 242, 121, 364, 182, 91, 274, 137, 412, 206, 103, 310, 155, 466, 233, 700, 350, 175, 526, 263, 790, 395, 1186, 593, 1780, 890, 445, 1336, 668, 334, 167, 502, 251, 754, 377, 1132, 566, 283, 850, 425, 1276, 638, 319, 958, 479, 1438, 719, 2158, 1079, 3238, 1619, 4858, 2429, 7288, 3644, 1822, 911, 2734, 1367, 4102, 2051, 6154, 3077, 9232, 4616, 2308, 1154, 577, 1732, 866, 433, 1300, 650, 325, 976, 488, 244, 122, 61, 184, 92, 46, 23, 70, 35, 106, 53, 160, 80, 40, 20, 10, 5, 16, 8, 4, 2, 1] वाह, इसमें 111 कदम लगते हैं!\nऔर साथ ही, ऐसे दृश्य हैं जहाँ यह रास्ते में 9000 से अधिक तक फूल जाता है। यह एक ऐसा पैटर्न है जहाँ आप लक्ष्य तक पहुँचने से पहले पागलों की तरह चक्कर लगाते हैं।\nतो फिर, इसमें इतना बढ़िया क्या है? इस अनुमान के बारे में क्या बढ़िया है,\n** हालांकि यह साबित नहीं हुआ है, ऐसा लगता है कि कोई भी संख्या जिसे आप आजमाते हैं वह 1 हो जाएगी **\nयही है।\nएह? तो, 1 ट्रिलियन, या 10 क्वाड्रिलियन के बारे में क्या\u0026hellip;?\nजिन लोगों ने ऐसा सोचा, वे बहुत तेज हैं। वास्तव में, कंप्यूटर का उपयोग करके, \u0026ldquo;2 की घात 68\u0026rdquo; तक की पुष्टि की गई है, और ** सभी 1 तक पहुँच गए हैं **। अविश्वसनीय\u0026hellip;\nलेकिन, ** यह सैद्धांतिक रूप से साबित नहीं हुआ है कि \u0026ldquo;सभी ऐसे होंगे\u0026rdquo; **। गणित की दुनिया में इसे \u0026ldquo;अनसुलझी समस्या\u0026rdquo; कहा जाता है।\nमिस्टर कोलैट्ज़ कौन हैं? तो, यहाँ तक पढ़ने के बाद, आप शायद सोच रहे होंगे \u0026ldquo;आखिर कोलैट्ज़ कौन है?\u0026quot;। मैं उनका ठीक से परिचय दूंगा!\nनाम: ** लोथर कोलैट्ज़ (Lothar Collatz) ** राष्ट्रीयता: जर्मनी जन्म वर्ष: 1910 से 1990 शीर्षक: गणितज्ञ (कार्यात्मक विश्लेषण और संख्या सिद्धांत के क्षेत्र में सक्रिय) उन्होंने 1937 में इस अनुमान का प्रस्ताव रखा, और उसके बाद, 80 से अधिक वर्षों तक, ** कोई भी इसे साबित या गलत साबित नहीं कर पाया है **।\nवैसे, यह समस्या इतनी सरल है लेकिन इतनी गहरी है कि यहाँ तक कि पॉल एर्डोस (अति प्रसिद्ध गणितज्ञ) ने भी कुछ ऐसा कहा था।\n\u0026ldquo;कोलैट्ज़ से निपटने के लिए गणित अभी अपरिपक्व है\u0026rdquo;\nदूसरे शब्दों में, यह सिद्धांत कि मानवता का गणित अभी तक इस रहस्य तक नहीं पहुंच पाया है\u0026hellip;\n\u0026ldquo;कठिन गणितीय सूत्रों\u0026rdquo; की आवश्यकता नहीं है कोलैट्ज़ अनुमान के बारे में अच्छी बात यह है कि ** कोई भी खेल सकता है **।\nआप इसे कागज और कलम से कर सकते हैं। यदि आप पायथन में कोड लिखते हैं, तो आप स्वचालित रूप से इसका परीक्षण कर सकते हैं। और फिर भी, ** शीर्ष गणितज्ञ इसे गंभीरता से ले रहे हैं **।\nकिसी तरह, क्या यह रोमांचक नहीं है?\nबोनस: एक साथ सब कुछ जांचने के लिए कोड मैं एक ही समय में कई संख्याओं का परीक्षण करने के लिए एक कोड भी पोस्ट करूंगा।\n1 2 3 for n in range(1, 21): steps = collatz(n) print(f\u0026#34;{n}: {steps} (कदम: {len(steps)-1})\u0026#34;) यह हमें एक ही बार में \u0026ldquo;1 से 20\u0026rdquo; के कोलैट्ज़ अनुक्रम देगा।\nनिष्कर्ष: यह दुनिया, आखिरकार, रहस्यमय है तो, वह कोलैट्ज़ अनुमान है।\nभले ही यह बहुत सरल है कोई इसे साबित नहीं कर सकता गणित की दुनिया में एक बड़ी समस्या यह रहस्यों के एक समूह की तरह एक अस्तित्व था।\nयहां तक कि शुरुआती प्रोग्रामर भी इसे आजमा सकते हैं, इसलिए कृपया इसके साथ खेलें!\nअनुशंसित लिंक (रुचि रखने वालों के लिए) Wikipedia: कोलैट्ज़ अनुमान टेरेंस ताओ का पेपर (अंग्रेजी) पायथन में एक विज़ुअलाइज़्ड संस्करण बनाना भी मज़ेदार है! (मांग होने पर मैं एक बनाऊंगा) यदि आप इस तरह की \u0026ldquo;रहस्यमयी गणित x प्रोग्रामिंग\u0026rdquo; सामग्री के बारे में अधिक जानना चाहते हैं, तो बेझिझक अनुरोध करें और कहें \u0026ldquo;मुझे और सिखाएं\u0026rdquo;। अंततः, मैं रीमैन परिकल्पना और अभाज्य संख्याओं जैसी विभिन्न चीजों का परिचय दूंगा!\n📮अंत!\n","date":"2025-07-15T18:03:03+09:00","image":"http://kenji.blog/p/%E3%82%B3%E3%83%A9%E3%83%83%E3%83%84%E4%BA%88%E6%83%B3/img_hu1a59efae05835f74694145ebf674f295_4369684_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/%E3%82%B3%E3%83%A9%E3%83%83%E3%83%84%E4%BA%88%E6%83%B3/","title":"コラッツ予想"},{"content":"C++ से Microsoft Teams में संदेश कैसे भेजें (WinHTTP + Graph API) Microsoft Teams के चैट में स्वचालित रूप से पोस्ट करना चाहते हैं――\nऐसी स्थिति में आप Microsoft Graph API का उपयोग कर सकते हैं।\nइस लेख में, हम WinHTTP का उपयोग करते हुए C++ कोड उदाहरण और आवश्यक API प्रमाणीकरण प्रक्रिया को चरण-दर-चरण (step-by-step) प्रस्तुत करेंगे।\n🔧 आवश्यक तैयारी (Microsoft Graph API प्रमाणीकरण सेटिंग) 1. Azure पोर्टल में ऐप पंजीकरण सबसे पहले, Microsoft Graph API का उपयोग करने के लिए, आपको Azure में एक ऐप पंजीकृत करना होगा।\nAzure Portal पर जाएं \u0026ldquo;Microsoft Entra ID\u0026rdquo; \u0026gt; \u0026quot;＋ जोड़ें (Add)\u0026quot; \u0026gt; \u0026ldquo;ऐप पंजीकरण (App registrations)\u0026rdquo; \u0026gt; \u0026ldquo;नया पंजीकरण (New registration)\u0026rdquo; कोई भी ऐप नाम दर्ज करें और \u0026ldquo;पंजीकरण (Register)\u0026rdquo; पर क्लिक करें 2. API अनुमतियां जोड़ें बाएं मेनू में \u0026ldquo;API अनुमतियां (API permissions)\u0026rdquo; पर जाएं \u0026ldquo;Microsoft Graph\u0026rdquo; \u0026gt; \u0026ldquo;अनुमतियां चुनें (Select permissions)\u0026rdquo; में निम्नलिखित स्कोप खोजें और \u0026ldquo;अनुमतियां अपडेट करें (Update permissions)\u0026rdquo; पर क्लिक करें: Chat.ReadWrite User.Read ※ यदि आप किसी चैनल पर पोस्ट करना चाहते हैं तो ChannelMessage.Send भी आवश्यक है\n3. क्लाइंट ID और टेनेंट ID नोट करें \u0026ldquo;अवलोकन (Overview)\u0026rdquo; टैब में प्रदर्शित होने वाली इन 2 चीजों को नोट कर लें:\nएप्लीकेशन (क्लाइंट) ID निर्देशिका (टेनेंट) ID 4. क्लाइंट सीक्रेट बनाएं \u0026ldquo;प्रमाणपत्र और सीक्रेट (Certificates \u0026amp; secrets)\u0026rdquo; टैब पर जाएं \u0026ldquo;नया क्लाइंट सीक्रेट (New client secret)\u0026rdquo; \u0026gt; समाप्ति तिथि निर्धारित करें और \u0026ldquo;जोड़ें (Add)\u0026rdquo; पर क्लिक करें प्रदर्शित मूल्य (सीक्रेट) को उसी समय अनिवार्य रूप से नोट कर लें 🔐 एक्सेस टोकन प्राप्त करना (OAuth2) प्राप्त करने के लिए client_credentials फ्लो का उपयोग किया जाता है।\nएक्सेस टोकन प्राप्त करने के लिए curl का उपयोग करके निम्नलिखित कमांड चलाएं।\n1 2 3 4 5 6 7 curl -X POST ^ https://login.microsoftonline.com/{टेनेंट ID}/oauth2/v2.0/token ^ -H \u0026#34;Content-Type: application/x-www-form-urlencoded\u0026#34; ^ -d \u0026#34;client_id={क्लाइंट ID}\u0026#34; ^ -d \u0026#34;scope=https%3A%2F%2Fgraph.microsoft.com%2F.default\u0026#34; ^ -d \u0026#34;client_secret={क्लाइंट सीक्रेट}\u0026#34; ^ -d \u0026#34;grant_type=client_credentials\u0026#34; प्रतिक्रिया उदाहरण 1 2 3 4 5 6 { \u0026#34;token_type\u0026#34;:\u0026#34;Bearer\u0026#34;, \u0026#34;expires_in\u0026#34;:3599, \u0026#34;ext_expires_in\u0026#34;:3599, \u0026#34;access_token\u0026#34;: \u0026#34;eyJ0eXAiOiJKV1QiLCJub...（छोड़ा गया）\u0026#34; } इस access_token का उपयोग करके Microsoft Graph API को कॉल किया जाता है।\n💬 Teams चैट में पोस्ट करने के लिए C++ उदाहरण यहाँ WinHTTP का उपयोग करके चैट में पोस्ट करने का एक C++ उदाहरण दिया गया है।\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 #include \u0026lt;windows.h\u0026gt; #include \u0026lt;winhttp.h\u0026gt; #include \u0026lt;iostream\u0026gt; #include \u0026lt;string\u0026gt; #pragma comment(lib, \u0026#34;winhttp.lib\u0026#34;) void PostToTeamsChat(const std::wstring\u0026amp; accessToken, const std::wstring\u0026amp; chatId, const std::wstring\u0026amp; message) { HINTERNET hSession = WinHttpOpen(L\u0026#34;TeamsPoster/1.0\u0026#34;, WINHTTP_ACCESS_TYPE_DEFAULT_PROXY, WINHTTP_NO_PROXY_NAME, WINHTTP_NO_PROXY_BYPASS, 0); HINTERNET hConnect = WinHttpConnect(hSession, L\u0026#34;graph.microsoft.com\u0026#34;, INTERNET_DEFAULT_HTTPS_PORT, 0); std::wstring endpoint = L\u0026#34;/v1.0/chats/\u0026#34; + chatId + L\u0026#34;/messages\u0026#34;; HINTERNET hRequest = WinHttpOpenRequest(hConnect, L\u0026#34;POST\u0026#34;, endpoint.c_str(), NULL, WINHTTP_NO_REFERER, WINHTTP_DEFAULT_ACCEPT_TYPES, WINHTTP_FLAG_SECURE); std::wstring jsonBody = L\u0026#34;{\\\u0026#34;body\\\u0026#34;: {\\\u0026#34;content\\\u0026#34;: \\\u0026#34;\u0026#34; + message + L\u0026#34;\\\u0026#34;}}\u0026#34;; std::wstring headers = L\u0026#34;Authorization: Bearer \u0026#34; + accessToken + L\u0026#34;\\r\\nContent-Type: application/json\\r\\n\u0026#34;; BOOL bResult = WinHttpSendRequest(hRequest, headers.c_str(), (DWORD)-1L, (LPVOID)jsonBody.c_str(), (DWORD)(jsonBody.length() * sizeof(wchar_t)), (DWORD)(jsonBody.length() * sizeof(wchar_t)), 0); if (bResult) WinHttpReceiveResponse(hRequest, NULL); DWORD dwSize = 0; WinHttpQueryDataAvailable(hRequest, \u0026amp;dwSize); if (dwSize \u0026gt; 0) { std::wstring response(dwSize / sizeof(wchar_t), 0); DWORD dwDownloaded = 0; WinHttpReadData(hRequest, \u0026amp;response[0], dwSize, \u0026amp;dwDownloaded); std::wcout \u0026lt;\u0026lt; L\u0026#34;Response: \u0026#34; \u0026lt;\u0026lt; response \u0026lt;\u0026lt; std::endl; } WinHttpCloseHandle(hRequest); WinHttpCloseHandle(hConnect); WinHttpCloseHandle(hSession); } int main() { std::wstring access; std::wstring chatId = L\u0026#34;19:\u0026#34;; std::wstring message = L\u0026#34;Hello from C++!\u0026#34;; std::wcout \u0026lt;\u0026lt; L\u0026#34;Enter your access token: \u0026#34;; std::getline(std::wcin, access); std::wcout \u0026lt;\u0026lt; L\u0026#34;Enter chat ID: \u0026#34;; std::getline(std::wcin, chatId); PostToTeamsChat(access, chatId, message); return 0; } 🔍 चैट ID प्राप्त करने का तरीका चैट ID को GET /v1.0/me/chats के माध्यम से जाँचा जा सकता है।\n1 2 3 4 curl -X GET ^ https://graph.microsoft.com/v1.0/me/chats ^ -H \u0026#34;Authorization: Bearer {access_token}\u0026#34; ^ -H \u0026#34;Content-Type: application/json\u0026#34; प्रतिक्रिया उदाहरण 1 2 3 4 5 6 7 8 9 { \u0026#34;value\u0026#34;: [ { \u0026#34;id\u0026#34;: \u0026#34;19:abc123xyz@thread.v2\u0026#34;, \u0026#34;topic\u0026#34;: null, \u0026#34;chatType\u0026#34;: \u0026#34;oneOnOne\u0026#34; } ] } 📌 ध्यान देने योग्य बातें यह उदाहरण एक न्यूनतम कार्यान्वयन है। वास्तविक उपयोग में: टोकन की समाप्ति (expiration) को संभालना HTTPS प्रमाणपत्र का सत्यापन त्रुटि हैंडलिंग में सुधार चैनल में पोस्ट करने के लिए teams/{team-id}/channels/{channel-id}/messages का उपयोग किया जाता है। अटैचमेंट भेजने के लिए मल्टीपार्ट प्रोसेसिंग या Graph ड्राइव API की आवश्यकता होती है। निष्कर्ष 📎 निष्कर्ष फ़ीचर विवरण Graph API Teams के साथ संवाद करने के लिए आधिकारिक API ऐप पंजीकरण Azure पर आवश्यक प्रमाणीकरण प्रक्रिया एक्सेस टोकन OAuth2 के माध्यम से प्राप्त किया जाता है, और अनुरोधों के लिए उपयोग किया जाता है C++ कार्यान्वयन Graph API को कॉल करने के लिए WinHTTP का उपयोग करता है 🚀 अगले कदम अधिक उन्नत उदाहरण के रूप में, निम्नलिखित भी संभव हैं:\nटीम चैनल में पोस्ट करना (/teams/{team-id}/channels/...) अटैचमेंट के साथ पोस्ट करना बॉट अकाउंट और यूज़र अकाउंट के बीच स्विच करना टोकन प्राप्त करने सहित पूर्ण C++ कार्यान्वयन यदि आपके कोई प्रश्न या अनुरोध हैं, तो बेझिझक टिप्पणी करें!\n","date":"2025-07-14T23:40:15+09:00","image":"http://kenji.blog/p/c-%E3%81%8B%E3%82%89-microsoft-teams-%E3%81%AB%E3%83%A1%E3%83%83%E3%82%BB%E3%83%BC%E3%82%B8%E3%82%92%E6%8A%95%E7%A8%BF%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95winhttp--graph-api/img_hu9dbe154e21530b21fd6a41dcbc040106_90767_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/c-%E0%A4%B8%E0%A5%87-microsoft-teams-%E0%A4%AE%E0%A5%87%E0%A4%82-%E0%A4%B8%E0%A4%82%E0%A4%A6%E0%A5%87%E0%A4%B6-%E0%A4%95%E0%A5%88%E0%A4%B8%E0%A5%87-%E0%A4%AD%E0%A5%87%E0%A4%9C%E0%A5%87%E0%A4%82-winhttp--graph-api/","title":"C++ से Microsoft Teams में संदेश कैसे भेजें (WinHTTP + Graph API)"},{"content":"हमने UI दिशानिर्देश सामग्री के साथ विदेशों में स्क्रीन UI (फॉर्म) में \u0026ldquo;अनिवार्य\u0026rdquo; मार्कर के बारे में जानकारी संकलित की है।\n📌 मुख्य अनिवार्य मार्कर और सर्वोत्तम प्रथाएँ तारांकन (*) का उपयोग\nयह आमतौर पर सबसे अधिक उपयोग किया जाता है, अनिवार्य फ़ील्ड में \u0026ldquo;*\u0026rdquo; जोड़ा जाता है। हालाँकि, फॉर्म के आरंभ में \u0026quot; * अनिवार्य है\u0026quot; जैसी व्याख्या आवश्यक है (Nielsen Norman Group, California State University, Northridge)। ऐसे उदाहरण भी हैं जहां जोर देने के लिए रंग का उपयोग किया जाता है (जैसे लाल पाठ)। लेबल में \u0026ldquo;Required\u0026rdquo; या \u0026ldquo;(required)\u0026rdquo; निर्दिष्ट करना\nलेबल के भीतर \u0026ldquo;Required\u0026rdquo; शब्द को शामिल करके, स्क्रीन रीडर को यह स्पष्ट रूप से दर्शाया जा सकता है, जिससे एक्सेसिबिलिटी में सुधार होता है (Deque)। ARIA विशेषताओं और HTML5 required विशेषता का संयुक्त उपयोग\nदृश्य प्रदर्शन के अतिरिक्त, aria-required=\u0026quot;true\u0026quot; और \u0026lt;input required\u0026gt; का उपयोग करके, फ़ील्ड को प्रोग्राम के माध्यम से भी अनिवार्य बताया जा सकता है (Deque)। वैकल्पिक फ़ील्ड को निर्दिष्ट करने के लिए \u0026ldquo;(optional)\u0026rdquo; का उपयोग\nअनिवार्य फ़ील्ड के बजाय वैकल्पिक फ़ील्ड को \u0026ldquo;(optional)\u0026rdquo; के रूप में स्पष्ट रूप से चिह्नित करने का एक तरीका भी है, जो मिश्रित होने पर प्रभावी होता है। हालाँकि, Nielsen-Norman बताते हैं कि \u0026ldquo;यदि अनिवार्य फ़ील्ड को भी स्पष्ट रूप से निर्दिष्ट किया जाए तो न्याय करना आसान है\u0026rdquo; (TPGi)। ✅ UI दिशानिर्देश सामग्री सारांश स्रोत सामग्री NN/g: Marking Required Fields in Forms तारांकन और व्याख्यात्मक पाठ के संयोजन की सिफारिश की जाती है; केवल वैकल्पिक प्रदर्शित करना अमित्र माना जाता है (Nielsen Norman Group)। Deque (Anatomy of Accessible Forms) ・लेबल के भीतर \u0026ldquo;Required\u0026rdquo; स्ट्रिंग या छवि का उपयोग किया जाता है।\n・यह स्पष्ट रूप से बताता है कि केवल रंगों के माध्यम से संकेत अपर्याप्त है। W3C Techniques (H90) लेबल में तारांकन या \u0026ldquo;(required)\u0026rdquo; शामिल करने और फॉर्म की शुरुआत में इसका अर्थ परिभाषित करने के उदाहरण हैं। TPGi (Doing what\u0026rsquo;s required) एक्सेसिबिलिटी को ध्यान में रखते हुए, तारांकन + ARIA विशेषताएँ + लेबल पाठ प्रविष्टि के संयोजन को इष्टतम के रूप में मूल्यांकित किया गया है। Contensis फॉर्म UX गाइड संक्षेप में व्यवस्थित: एक सुसंगत अंकन (* या (optional)) महत्वपूर्ण है। ✅ कार्यान्वयन के लिए अनुशंसित दृष्टिकोण फॉर्म के आरंभ में एक व्याख्यात्मक पाठ जोड़ें :\nFields marked with * are required. (या सभी के लिए \u0026ldquo;All fields are required\u0026rdquo;, या यदि वैकल्पिक हैं तो \u0026ldquo;unless marked optional\u0026rdquo;)\nलेबल असाइनमेंट :\nFirst Name * या Email (required) के रूप में लिखा गया। ARIA विशेषताएँ और HTML5 विशेषताएँ :\n1 2 \u0026lt;label for=\u0026#34;email\u0026#34;\u0026gt;Email \u0026lt;abbr title=\u0026#34;required\u0026#34;\u0026gt;*\u0026lt;/abbr\u0026gt;\u0026lt;/label\u0026gt; \u0026lt;input id=\u0026#34;email\u0026#34; required aria-required=\u0026#34;true\u0026#34;\u0026gt; केवल रंग पर निर्भर न रहें : दृश्य और प्रोग्राम दोनों तरह से समर्थन प्रदान करें।\n🔗 संदर्भ लिंक (UI दिशानिर्देश सामग्री) NN/g: Marking Required Fields in Forms (California State University, Northridge, Nielsen Norman Group, Deque) Deque: Anatomy of Accessible Forms (Deque) W3C Techniques: H90 Indicating required form controls (W3C) TPGi: Indicating mandatory fields accessibly (TPGi) Contensis: UX Forms Guidelines (Contensis) यदि आवश्यक हो, तो मैं स्केच और फिग्मा के लिए विशिष्ट HTML/CSS कोड उदाहरण या UI घटक डिज़ाइन टेम्पलेट भी प्रदान कर सकता हूँ। कृपया पूछने में संकोच न करें!\n","date":"2025-07-14T13:47:51+09:00","image":"http://kenji.blog/p/%E5%85%A5%E5%8A%9B%E3%83%95%E3%82%A9%E3%83%BC%E3%83%A0%E3%81%AE%E5%BF%85%E9%A0%88%E3%83%9E%E3%83%BC%E3%82%AF%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6/img_hu551d2409ec5a7ae3c7367fc3f969286e_18058_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/%E5%85%A5%E5%8A%9B%E3%83%95%E3%82%A9%E3%83%BC%E3%83%A0%E3%81%AE%E5%BF%85%E9%A0%88%E3%83%9E%E3%83%BC%E3%82%AF%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6/","title":"इनपुट फॉर्म में अनिवार्य मार्कर के बारे में"},{"content":"[शुरुआती के लिए] विंडोज पर Gemini CLI कैसे इंस्टॉल करें \u0026ldquo;Gemini CLI\u0026rdquo; आपको कमांड लाइन से Google के जेनरेटिव AI \u0026ldquo;Gemini\u0026rdquo; का उपयोग करने की अनुमति देता है। इस लेख में, हम विंडोज वातावरण में Gemini CLI इंस्टॉल करने के चरणों को यथासंभव सरलता से समझाएंगे।\n1. तैयारी: Node.js और npm इंस्टॉल करें सबसे पहले, चूंकि Gemini CLI \u0026ldquo;Node.js\u0026rdquo; नामक वातावरण पर चलता है, इसलिए आपको निम्नलिखित को इंस्टॉल करना होगा:\nNode.js npm (Node.js के साथ शामिल पैकेज प्रबंधन उपकरण) npx (npm में शामिल कमांड निष्पादन उपकरण) नीचे दी गई आधिकारिक वेबसाइट से विंडोज के लिए Node.js डाउनलोड करें (LTS संस्करण अनुशंसित है):\n👉 Node.js आधिकारिक वेबसाइट\nस्थापना पूरी होने के बाद, निम्नलिखित कमांड से जांचें कि यह सही ढंग से स्थापित हुआ है या नहीं:\n1 2 node -v npm -v 2. PowerShell प्रारंभ करें विंडोज में Gemini CLI का उपयोग करने के लिए, आमतौर पर PowerShell का उपयोग किया जाता है। इसे खोलने के लिए प्रारंभ मेनू में \u0026ldquo;PowerShell\u0026rdquo; टाइप करें।\n3. Gemini CLI इंस्टॉल करें निम्नलिखित कमांड को कॉपी करें और निष्पादित करने के लिए PowerShell में पेस्ट करें:\n1 npx @google/gemini-cli यह कमांड Google द्वारा प्रकाशित Gemini CLI पैकेज को अस्थायी रूप से चलाता है। यदि आवश्यक हो तो आपको प्रारंभिक सेटअप या लॉगिन करने के लिए कहा जा सकता है।\nनोट: पहली बार इसमें कुछ मिनट लग सकते हैं। यदि कोई त्रुटि होती है, तो कृपया अपने Node.js और नेटवर्क वातावरण की दोबारा जांच करें। 4. स्थापना पूर्ण! आगे क्या करना है Gemini CLI अब आपके विंडोज पर स्थापित हो गया है। अब से, आप कमांड लाइन से Gemini का उपयोग करके टेक्स्ट जेनरेशन और कोड पूर्णता जैसे विभिन्न कार्य कर सकते हैं।\nयदि आप आधिकारिक दस्तावेज़ या सहायता देखना चाहते हैं, तो आप इस तरह के कमांड का भी उपयोग कर सकते हैं:\n1 npx @google/gemini-cli --help सारांश विंडोज पर Gemini CLI इंस्टॉल करने के चरणों की समीक्षा करते हैं:\nNode.js और npm इंस्टॉल करें PowerShell प्रारंभ करें npx @google/gemini-cli चलाएं अब आप तैयार हैं! यदि आप स्थानीय रूप से जनरेटिव एआई का उपयोग करना चाहते हैं, तो कृपया इन चरणों को संदर्भ के रूप में आज़माएं।\n","date":"2025-07-13T23:49:56+09:00","image":"http://kenji.blog/p/gemini-cli-%E3%82%92-windows-%E7%92%B0%E5%A2%83%E3%81%AB%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/img_hu68d4fe037447f15938887bf6c4d85b87_249642_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/%E0%A4%B5%E0%A4%BF%E0%A4%82%E0%A4%A1%E0%A5%8B%E0%A4%9C-%E0%A4%B5%E0%A4%BE%E0%A4%A4%E0%A4%BE%E0%A4%B5%E0%A4%B0%E0%A4%A3-%E0%A4%AE%E0%A5%87%E0%A4%82-gemini-cli-%E0%A4%95%E0%A5%88%E0%A4%B8%E0%A5%87-%E0%A4%87%E0%A4%82%E0%A4%B8%E0%A5%8D%E0%A4%9F%E0%A5%89%E0%A4%B2-%E0%A4%95%E0%A4%B0%E0%A5%87%E0%A4%82/","title":"विंडोज वातावरण में Gemini CLI कैसे इंस्टॉल करें"},{"content":"मुझे फिर से Microsoft MVP (2025-2026) से सम्मानित किया गया! नमस्ते, मैं kenji हूँ।\nमेरे पास एक घोषणा है। मुझे इस साल फिर से Microsoft MVP (Most Valuable Professional) से सम्मानित किया गया है। यह पुरस्कार प्राप्त करने का मेरा 9वां अवसर है।\nहमेशा मेरा समर्थन करने वाले सभी लोगों को बहुत-बहुत धन्यवाद।\nMicrosoft MVP क्या है? जब आप \u0026ldquo;MVP\u0026rdquo; सुनते हैं, तो कई लोग खेलों में सबसे मूल्यवान खिलाड़ी के बारे में सोच सकते हैं, लेकिन यहाँ MVP उन लोगों को दिया जाने वाला शीर्षक है जिन्होंने Microsoft तकनीकी समुदाय में योगदान दिया है ।\nविशेष रूप से,\nतकनीकी ब्लॉग और सोशल मीडिया पर जानकारी प्रसारित करना GitHub पर नमूना कोड प्रकाशित करना अध्ययन समूहों और सम्मेलनों में बोलना प्रश्नोत्तर साइटों पर प्रश्नों के उत्तर देना विदेशी डेवलपर्स के साथ तकनीकी आदान-प्रदान और सहयोग ऐसे समुदायों में भाग लेना और पोस्ट करना जहाँ इंजीनियर जुड़ते हैं यह एक ऐसी प्रणाली है जो \u0026ldquo;किसी के लाभ के लिए अपने ज्ञान और अनुभव को साझा करने\u0026rdquo; जैसी गतिविधियों का मूल्यांकन करती है।\nदुनिया भर में विजेता हैं, लेकिन हर साल चुने गए लोगों की संख्या सीमित होती है, और फिर से पुरस्कार प्राप्त करना कभी आसान नहीं होता है। इसीलिए इस तरह से पहचाना जाना वास्तव में सम्मान की बात है।\nपिछले एक साल में मैंने किस पर ध्यान केंद्रित किया इस साल, मैंने प्रौद्योगिकी की \u0026ldquo;स्पष्टता\u0026rdquo; और \u0026ldquo;पहुंच\u0026rdquo; पर ध्यान देने के साथ जानकारी प्रसारित करने पर ध्यान केंद्रित किया।\nGitHub पर व्यावहारिक नमूना कोड का प्रकाशन अध्ययन समूहों और सम्मेलनों में बोलना (घरेलू और अंतरराष्ट्रीय स्तर पर) तकनीकी ब्लॉग और सोशल मीडिया के माध्यम से जानकारी का नियमित प्रसार प्रश्नोत्तर साइटों पर निरंतर उत्तर देने वाली गतिविधियाँ इंजीनियर समुदाय साइटों पर ज्ञान साझा करना विदेशी इंजीनियरों के साथ बातचीत और संयुक्त सत्यापन विशेष रूप से, GitHub पर कोड प्रकाशित करने ने मुझ पर एक गहरी छाप छोड़ी क्योंकि मुझे इस तरह की टिप्पणियाँ मिलीं \u0026ldquo;मैं भी उसी बात से जूझ रहा था, इसने मुझे बचा लिया!\u0026rdquo;, और मैं महसूस कर सका कि मेरे प्रयास अन्य लोगों के विकास में मदद कर रहे हैं।\nइसके अलावा, घटनाओं में बोलते समय, मुझे कभी-कभी प्रतिक्रिया मिली कि \u0026ldquo;शुरुआती लोगों के लिए भी यह समझना आसान था,\u0026rdquo; जिससे मुझे सोचने का एक अच्छा अवसर मिला कि \u0026ldquo;तकनीकी स्पष्टीकरण क्या है जो लोगों को समझ में आता है?\u0026quot;।\nअगले वर्ष की ओर देखते हुए प्रौद्योगिकी का विकास वास्तव में तेज है, और इसे बनाए रखना भी मुश्किल है। फिर भी, मेरा मानना ​​​​है कि \u0026ldquo;प्राथमिक जानकारी\u0026rdquo; के रूप में वास्तविक ज्ञान प्रदान करने में बहुत अधिक मूल्य है , जैसे व्यावहारिक अनुभव जो मैंने प्राप्त किए हैं और जिन बिंदुओं पर मैंने चीजों को स्वयं आजमाने की कोशिश की है।\nअगले साल, मैं \u0026ldquo;नेत्रहीन रूप से समझने योग्य तकनीकी सामग्री\u0026rdquo; जो वीडियो और आरेखों को शामिल करती है को प्रकाशित करने का प्रयास करना चाहता हूं। मुझे उम्मीद है कि मैं अपने आउटपुट को बढ़ा सकता हूं ताकि मैं किसी के \u0026ldquo;मैं फंस गया हूं!\u0026rdquo; को हल करने में मदद कर सकूं।\nअंत में MVP शीर्षक सिर्फ एक मार्ग बिंदु है।\nअब से, बिना ज़्यादा किए, अपनी गति से। लेकिन इस तरह से कि यह किसी के लिए ठीक से उपयोगी हो।\n\u0026ldquo;यह शोध करके बच गया\u0026rdquo; \u0026ldquo;यह नमूना काम कर गया!\u0026rdquo; \u0026ldquo;यह कहानी समझने में आसान थी\u0026rdquo;\nमैं उस तरह का इंजीनियर बने रहना चाहूंगा जिसे ये बातें कही जाती हैं।\nआपके निरंतर समर्थन के लिए बहुत-बहुत धन्यवाद।\nGitHub: https://github.com/kenjinote तकनीकी ब्लॉग: https://hack.jp X: https://twitter.com/kenjinote ","date":"2025-07-13T22:01:15+09:00","image":"http://kenji.blog/p/microsoft-mvp2025-2026%E3%82%92%E5%86%8D%E5%8F%97%E8%B3%9E%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F/img_hu79b11b7d0311d1cf72d88f77ae4d2c9a_139280_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/mujhe-phir-se-microsoft-mvp-2025-2026-se-sammanit-kiya-gaya/","title":"मुझे फिर से Microsoft MVP (2025-2026) से सम्मानित किया गया"},{"content":"Win32API + C++ के साथ विकास का आकर्षण और चुनौतियाँ उन लोगों के लिए जो विंडोज ऐप डेवलपमेंट में महारत हासिल करना चाहते हैं, Win32API + C++ अभी भी एक शक्तिशाली विकल्प है। यह संयोजन, जो ऑपरेटिंग सिस्टम के साथ सबसे करीबी संभव बातचीत की अनुमति देता है, गति और लचीलापन दोनों प्रदान करता है।\nदूसरी ओर, इसे मास्टर करने के लिए दृढ़ संकल्प की आवश्यकता होती है, क्योंकि यह आधुनिक विकास शैलियों से काफी भिन्न है।\nइस पृष्ठ पर, हम एक सक्रिय विंडोज ऐप डेवलपर के दृष्टिकोण से फायदे और नुकसान को स्पष्ट रूप से समझाएंगे।\nफायदे अल्ट्रा-फास्ट नेटिव निष्पादन चूंकि C++ और Win32API ऑपरेटिंग सिस्टम के सबसे करीब की परत पर काम करते हैं, इसलिए लगभग कोई अनावश्यक ओवरहेड नहीं है। CPU और मेमोरी का उपयोग अत्यंत कुशल है, जो एक भारी निष्पादन गति का दावा करता है।\nउच्च लचीलापन और स्वतंत्रता आप ऐप के सभी व्यवहारों को स्वयं बारीकी से नियंत्रित कर सकते हैं, जैसे विंडो नियंत्रण, एसिंक्रोनस प्रोसेसिंग, COM एकीकरण और प्रक्रिया प्रबंधन। विशिष्ट उपकरण और अपने स्वयं के मूल ढांचे बनाना भी संभव है।\nरनटाइम की आवश्यकता के बिना वितरित करने में आसान चूंकि .NET या Java जैसे किसी बाहरी रनटाइम की आवश्यकता नहीं है, इसे एकल निष्पादन योग्य फ़ाइल के रूप में वितरित किया जा सकता है । पुनर्वितरण के दौरान समस्याओं का खतरा कम होता है और इंस्टॉलर के बिना इसे चलाना आसान होता है।\nहल्के ऐप्स बना सकते हैं चूंकि इसके लिए केवल न्यूनतम आवश्यक कॉन्फ़िगरेशन की आवश्यकता होती है, इसकी विशेषता यह है कि इसका मेमोरी फ़ुटप्रिंट बहुत छोटा होता है। यह कम विशिष्टताओं वाले पीसी या वर्चुअल मशीन वातावरण पर भी आराम से चलता है।\nउन्नत ओएस-स्तरीय नियंत्रण संभव आप ऐसे नियंत्रणों को भी महसूस कर सकते हैं जो सामान्य भाषाओं और पुस्तकालयों के साथ कठिन हैं , जैसे वैश्विक माउस और कीबोर्ड हुक, विंडो शैलियों की फाइन-ट्यूनिंग, और सिस्टम मेनू संचालन।\nनुकसान कम विकास दक्षता यहां तक कि GUI का निर्माण भी पूरी तरह से कोड में किया जाना चाहिए, और कभी-कभी सिर्फ एक बटन बनाने के लिए कोड की दर्जनों पंक्तियों की आवश्यकता होती है । डिज़ाइन को संशोधित करना भी जटिल है, और UI फ्रेमवर्क का उपयोग करके विकास की तुलना में उत्पादकता कम है।\nरखरखाव को कम करने में आसान संदेश लूप और विंडो प्रक्रियाओं जैसे विशेष संरचनाओं वाले कई कोड हैं, जो पठनीयता और पुन: प्रयोज्यता में बाधा डालते हैं। इसके ऐसे पहलू भी हैं जो टीम के विकास और दीर्घकालिक रखरखाव के लिए अनुपयुक्त हैं।\nआधुनिक यूआई का समर्थन करना मुश्किल हाल के वर्षों में आवश्यक UX का समर्थन करना मुश्किल है , जैसे कि उच्च DPI समर्थन, टच इंटरफेस, एक्सेसिबिलिटी और डार्क मोड। आपको प्रत्येक को मैन्युअल रूप से संभालना होगा, जिसमें बहुत प्रयास की आवश्यकता होती है।\nक्रॉस-प्लेटफॉर्म का समर्थन नहीं करता चूंकि यह पूरी तरह से विंडोज-अनन्य एपीआई है, इसलिए इसे macOS या Linux पर पोर्ट नहीं किया जा सकता है। यदि आप क्रॉस-प्लेटफॉर्म परिनियोजन की योजना बनाते हैं, तो आपको अन्य तकनीकों का चयन करना होगा।\nअत्यधिक उच्च सीखने की लागत आपको उन अवधारणाओं और तंत्रों को समझना चाहिए जिनका आज शायद ही कभी उपयोग किया जाता है , जैसे कि हैंडल, GDI, COM और OLE। कई दस्तावेज़ पुराने हैं, जिन्हें सीखने के लिए समय और धैर्य की आवश्यकता होती है।\nउपयुक्त उपयोग फ़ाइल लॉन्चर और हॉटकी समर्थकों जैसे हल्के उपकरण क्लिपबोर्ड हेरफेर और IME नियंत्रण जैसे सिस्टम उपयोगिताओं वैश्विक हुक और विंडो कैप्चर जैसे देशी नियंत्रण-आधारित ऐप्स ड्राइवर समर्थन उपकरण जो हार्डवेयर से निकटता से जुड़े हुए हैं अनुपयुक्त उपयोग सामान्य उपभोक्ता-सामना करने वाले ऐप्स जहां आधुनिक यूआई / यूएक्स महत्वपूर्ण हैं प्रोटोटाइपिंग और एमवीपी विकास गति को ध्यान में रखकर बनाए गए हैं दीर्घकालिक संचालन और टीम के विकास के आधार पर बड़े पैमाने की परियोजनाएं क्रॉस-प्लेटफॉर्म उत्पाद जिन्हें कई ऑपरेटिंग सिस्टम का समर्थन करने की आवश्यकता होती है मूल्यांकन सारांश दृष्टिकोण मूल्यांकन निष्पादन की गति ◎ बहुत तेज मेमोरी दक्षता ◎ उत्कृष्ट विकास की गति × धीमी रखरखाव × कम क्रॉस-प्लेटफॉर्म समर्थन × समर्थित नहीं आधुनिक यूआई समर्थन × कमजोर ओएस नियंत्रण की स्वतंत्रता ◎ बहुत अधिक निष्कर्ष Win32API + C++ उन डेवलपर्स के लिए एक उपकरण है जो \u0026ldquo;ऑपरेटिंग सिस्टम में सब कुछ खुद संभालना चाहते हैं\u0026rdquo;। हालाँकि इसकी शक्ति अपार है, इसके सीखने और संचालन के लिए तदनुसार दृढ़ संकल्प की आवश्यकता होती है।\nक्या \u0026ldquo;साहसपूर्वक चुनना\u0026rdquo; उचित है, यह आपके द्वारा लक्षित ऐप की प्रकृति पर निर्भर करता है।\nजीयूआई फ्रेमवर्क या आधुनिक भाषाओं पर भरोसा किए बिना #include \u0026lt;windows.h\u0026gt; की दुनिया में गोता लगाना ―― वह विकल्प आज भी सार्थक है।\n","date":"2025-07-12T12:30:35+09:00","image":"http://kenji.blog/p/win32api-c-%E3%81%A7%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%82%92%E4%BD%9C%E3%82%8B%E3%83%A1%E3%83%AA%E3%83%83%E3%83%88%E3%81%A8%E3%83%87%E3%83%A1%E3%83%AA%E3%83%83%E3%83%88/img_1_huda4a374969e448ba98e0798d75e2e435_4729_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/win32api-c-%E3%81%A7%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%82%92%E4%BD%9C%E3%82%8B%E3%83%A1%E3%83%AA%E3%83%83%E3%83%88%E3%81%A8%E3%83%87%E3%83%A1%E3%83%AA%E3%83%83%E3%83%88/","title":"Win32API + C++ के साथ प्रोग्राम बनाने के फायदे और नुकसान"},{"content":"अगर आप Visual Studio में libcurl (OpenSSL समर्थित) का उपयोग करना चाहते हैं, तो vcpkg स्थापित करना आसान है और अनुशंसित है C++ में HTTP संचार को संभालते समय अक्सर libcurl का उपयोग किया जाता है। लेकिन, निर्माण और निर्भरता को समायोजित करना आश्चर्यजनक रूप से परेशानी भरा हो सकता है।\nऐसे समय में Microsoft का C++ लाइब्रेरी प्रबंधन उपकरण ** \u0026ldquo;vcpkg\u0026rdquo; ** बहुत काम आता है। इस बार, हम cpkg का उपयोग करके libcurl (OpenSSL समर्थित) स्थापित करने और इसे Visual Studio में सुचारू रूप से उपयोग करने योग्य बनाने की प्रक्रिया का परिचय देंगे।\nvcpkg की स्थापना (केवल उनके लिए जिन्होंने इसे स्थापित नहीं किया है) सबसे पहले cpkg स्थापित करते हैं। कृपया PowerShell में निम्न चरणों का पालन करें।\npowershell git clone https://github.com/microsoft/vcpkg cd vcpkg .\bootstrap-vcpkg.bat ※यदि आपने अभी तक Git स्थापित नहीं किया है, तो कृपया इसे Git की आधिकारिक वेबसाइट से स्थापित करें।\nlibcurl (OpenSSL समर्थित) की स्थापना इसके बाद, vcpkg का उपयोग करके libcurl स्थापित करें। OpenSSL का समर्थन करने वाले 64-बिट संस्करण को निर्दिष्ट करने के लिए, निम्न कमांड चलाएँ।\npowershell vcpkg install curl[ssl] --triplet x64-windows इस कमांड को चलाने पर, आवश्यक निर्भरताएँ (जैसे OpenSSL) भी स्वचालित रूप से सेट हो जाती हैं।\nVisual Studio के साथ एकीकरण सेटिंग vcpkg द्वारा स्थापित लाइब्रेरीज़ को अपने Visual Studio प्रोजेक्ट से आसानी से उपयोग करने के लिए, निम्नलिखित कमांड के साथ एकीकरण सेटिंग्स कॉन्फ़िगर करें।\npowershell vcpkg integrate install एक बार यह सेट हो जाने पर, #include \u0026lt;curl/curl.h\u0026gt; स्वचालित रूप से Visual Studio प्रोजेक्ट्स में उपलब्ध हो जाएगा, और आपको मैन्युअल रूप से लाइब्रेरी पथ या लिंकर सेटिंग्स को कॉन्फ़िगर करने की आवश्यकता नहीं होगी।\nनिष्कर्ष इसके साथ, Visual Studio में libcurl (OpenSSL समर्थित) स्थापित करने की तैयारी पूरी हो गई है।\nvcpkg का उपयोग करके, आप एक साथ परेशानी वाली निर्भरताओं को प्रबंधित कर सकते हैं cpkg install curl[ssl] \u0026ndash;triplet x64-windows के साथ आसानी से libcurl स्थापित करें cpkg integrate install के साथ Visual Studio के साथ स्वचालित एकीकरण संभव है अब, बस अपने प्रोजेक्ट में हेडर को शामिल करें और विकास शुरू करने के लिए libcurl के API का उपयोग करें। कृपया सुविधाजनक vcpkg का लाभ उठाएं और अपने विकास की दक्षता को बढ़ाएं।\n","date":"2025-07-07T21:46:08+09:00","image":"http://kenji.blog/p/vcpkg-%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6-visual-studio-%E3%81%AB-curl-%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB/img_hub03488d3cca2b78b7b08dd6d749f5d1e_294355_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/vcpkg-%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6-visual-studio-%E3%81%AB-curl-%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB/","title":"【शुरुआती लोगों के लिए】vcpkg का उपयोग करके Visual Studio में libcurl (OpenSSL समर्थित) स्थापित करने की प्रक्रिया"},{"content":"साजिश के सिद्धांतों में न फंसने के लिए आवश्यक \u0026ldquo;मानसिक सुरक्षा\u0026rdquo; इंटरनेट देखते समय, कभी-कभी हमें \u0026ldquo;साजिश के सिद्धांत\u0026rdquo; (Conspiracy theories) जैसी बातें देखने को मिलती हैं।\n\u0026ldquo;क्या कोई है जो इस घटना को पर्दे के पीछे से नियंत्रित कर रहा है?\u0026rdquo; \u0026ldquo;क्या वास्तविक सत्य को छिपाया जा रहा है?\u0026rdquo; आप में से कई लोगों ने इस तरह के बयानों को बहुत ही विश्वसनीय रूप में फैलते देखा होगा।\nइस तरह की जानकारी में बहुत अधिक न फंसने के लिए, न केवल \u0026ldquo;ज्ञान\u0026rdquo; या \u0026ldquo;सोचने की क्षमता\u0026rdquo; की आवश्यकता होती है, बल्कि अपने मन की स्थिति , यानी \u0026ldquo;मानसिक सुरक्षा\u0026rdquo; को व्यवस्थित करना भी बहुत महत्वपूर्ण है।\nनीचे, हम इसके लिए 6 प्रभावी सोचने के तरीके प्रस्तुत कर रहे हैं।\nचिंता को तुरंत \u0026ldquo;उत्तर\u0026rdquo; से न जोड़ें साजिश के सिद्धांतों की एक बड़ी विशेषता यह है कि वे चिंताओं और सवालों के लिए एक स्पष्ट और समझने में आसान \u0026ldquo;उत्तर\u0026rdquo; प्रस्तुत करते हैं।\nउदाहरण के लिए, जब ऐसे सवाल उठते हैं:\n\u0026ldquo;ऐसी घटनाएं क्यों होती हैं?\u0026rdquo; \u0026ldquo;इससे किसे फायदा हो रहा है?\u0026rdquo; और अगर एक कहानी बताई जाती है कि \u0026ldquo;दरअसल, फलां व्यक्ति पर्दे के पीछे से सब कुछ नियंत्रित कर रहा है\u0026rdquo;, तो लोग आसानी से आश्वस्त हो जाते हैं।\nलेकिन, ठीक उसी समय जब आप चिंतित महसूस करते हैं, तो तुरंत किसी निष्कर्ष पर न पहुंचना और उसे लंबित रखना महत्वपूर्ण है।\n\u0026ldquo;न जानने की स्थिति में रहने की क्षमता\u0026rdquo; भी बौद्धिक परिपक्वता का संकेत है।\nजानबूझकर अपने सूचना स्रोतों का विस्तार करें साजिश के सिद्धांतों में गहराई से शामिल होने वाले कई लोगों की प्रवृत्ति केवल \u0026ldquo;समान विचारों वाली जानकारी\u0026rdquo; को ही देखने की होती है।\nइसे \u0026ldquo;पुष्टिकरण पूर्वाग्रह\u0026rdquo; (Confirmation bias) कहा जाता है, जो एक मनोवैज्ञानिक झुकाव है जहाँ आप केवल उस जानकारी के संपर्क में आते हैं जो आपके पहले से मौजूद विचारों को मजबूत करती है।\nविशेष रूप से सोशल मीडिया और वीडियो साइटों के एल्गोरिदम लगातार ऐसी पोस्ट दिखाते हैं जो आपकी पसंद के अनुकूल लगती हैं, जिससे आपका दृष्टिकोण स्वाभाविक रूप से संकुचित हो सकता है।\nसचेत रूप से:\nविभिन्न दृष्टिकोण वाले मीडिया को देखें विदेशी समाचार या शैक्षणिक स्रोत देखें अपने विचारों से भिन्न विचारों को भी सुनें इन प्रयासों के माध्यम से सूचना स्रोतों में विविधता लाना जोखिम से बचने की ओर ले जाता है।\nयह न सोचें कि \u0026ldquo;मुझे धोखा नहीं दिया जा सकता\u0026rdquo; जिन लोगों के पास ज्ञान है या जो तार्किक हैं, वे भी वास्तव में साजिश के सिद्धांतों की ओर आसानी से आकर्षित हो सकते हैं।\nऐसा इसलिए है क्योंकि यह मानना कि \u0026ldquo;मैं उस सच्चाई को नोटिस कर सकता हूं जिसे अन्य लोग नोटिस नहीं कर पाते\u0026rdquo;, आपके निर्णय को धुंधला करने का एक कारक बन जाता है।\nचाहे आप कितने भी सावधान क्यों न हों, इंसान गलतियाँ कर सकता है। इसीलिए, इस आधार पर चलना कि आप भी धोखा खा सकते हैं , वास्तव में एक अधिक तर्कसंगत दृष्टिकोण है।\n\u0026ldquo;संदेह करना, लेकिन बिना जल्दबाजी के निष्कर्ष निकाले\u0026rdquo; ही आपका बचाव बन जाता है।\nकहानी से प्रभावित हुए बिना संरचना को देखें साजिश के सिद्धांतों के साथ हमेशा एक \u0026ldquo;नाटकीय कहानी\u0026rdquo; जुड़ी होती है।\nअच्छाई और बुराई के बीच संघर्ष की संरचना शासक और शासित जाग्रत मैं बनाम ब्रेनवाश किए गए अन्य लोग इस तरह के सरल द्वंद्व कहानियों के रूप में आकर्षक हो सकते हैं, लेकिन वे हमेशा वास्तविकता को सही ढंग से नहीं दर्शाते हैं।\nवास्तविक घटनाओं और सामाजिक आंदोलनों में कई कारक आपस में जुड़े होते हैं, जैसे जटिल कारण और प्रभाव संबंध, ऐतिहासिक पृष्ठभूमि और संस्थागत संरचनाएं।\nयह महत्वपूर्ण है कि कहानी की भावनाओं में न बहें, और एक संरचनात्मक रूप से समझने का दृष्टिकोण रखें कि \u0026ldquo;ऐसा क्यों हो रहा है?\u0026quot;।\nअकेलेपन को नजरअंदाज न करें साजिश के सिद्धांतों के प्रति तीव्र आकर्षण के पीछे कभी-कभी \u0026ldquo;अलगाव\u0026rdquo; और \u0026ldquo;संबंध न होने का एहसास\u0026rdquo; छिपा होता है।\nजब लोग अकेला महसूस करते हैं, तो वे उन लोगों या समूहों पर गहराई से निर्भर हो जाते हैं जो उन्हें समझते हैं। साजिश के सिद्धांतों के समुदाय कभी-कभी उस \u0026ldquo;जगह\u0026rdquo; के रूप में काम कर सकते हैं।\nइसलिए, अकेले न रहने के प्रयास भी मानसिक सुरक्षा से जुड़े हैं।\nउदाहरण के लिए, ऐसे कार्य:\nनियमित रूप से लोगों से बात करना उन समुदायों में भाग लेना जो शौक या रुचियों को साझा करते हैं न केवल ऑनलाइन बल्कि ऑफलाइन भी संबंध बनाए रखना मानसिक स्थिरता की ओर ले जाते हैं।\nनकारने के बजाय संवाद पर ध्यान दें भले ही आपके आस-पास का कोई व्यक्ति साजिश के सिद्धांतों की ओर झुका हो, उन्हें सीधे तौर पर नकारना विपरीत परिणाम दे सकता है।\nजब लोगों की मान्यताओं को नकारा जाता है, तो उनमें मनोवैज्ञानिक रूप से उनकी रक्षा करने की प्रवृत्ति बढ़ जाती है (इसे \u0026ldquo;रक्षात्मक अनुभूति\u0026rdquo; कहा जाता है)।\nइसके बजाय:\nविनम्रता से पूछें, \u0026ldquo;आपने ऐसा क्यों सोचा?\u0026rdquo; अपना दृष्टिकोण शांति से प्रस्तुत करें, \u0026ldquo;इस तरह सोचने का भी एक तरीका हो सकता है\u0026rdquo; इस तरह के संवादात्मक दृष्टिकोण को अपनाने से दूसरे व्यक्ति का दृष्टिकोण स्वाभाविक रूप से व्यापक होने की संभावना पैदा होती है।\nनिष्कर्ष: साजिश के सिद्धांतों से दूरी बनाए रखने के लिए आप क्या कर सकते हैं चिंता और उत्तर को तुरंत जोड़े बिना, उसे लंबित रखने की क्षमता रखें सूचना स्रोतों में विविधता लाएं और पूर्वाग्रहों के प्रति जागरूक रहें यह पहचानें कि आपका अपना निर्णय पूर्ण नहीं है चीजों को कहानियों के बजाय संरचनाओं और कारण-प्रभाव संबंधों के माध्यम से देखें अकेलेपन से बचें और संबंध बनाए रखें दूसरों के साजिश के सिद्धांतों का सामना नकारने के बजाय संवाद से करें यह कहा जाता है कि क्या कोई व्यक्ति साजिश के सिद्धांतों की ओर आकर्षित होगा, यह उनके ज्ञान की मात्रा से अधिक उनकी मनोवैज्ञानिक स्थिति और पर्यावरण से प्रभावित होता है।\nइसीलिए, यह मान लेने के बजाय कि \u0026ldquo;मैं ठीक हूँ\u0026rdquo;, रोज़मर्रा की ज़िंदगी में धीरे-धीरे मानसिक सुरक्षा बढ़ाने के प्रयास करना, भविष्य के सूचना समाज में लचीले ढंग से जीने में एक बड़ा सहारा बनेगा।\n","date":"2025-05-26T22:23:34+09:00","image":"http://kenji.blog/p/%E9%99%B0%E8%AC%80%E8%AB%96%E3%81%AB%E3%81%AF%E3%81%BE%E3%82%89%E3%81%AA%E3%81%84%E3%81%9F%E3%82%81%E3%81%AB%E4%BD%95%E3%81%8C%E5%BF%85%E8%A6%81%E3%81%8B/img_hu51c98705e3e626ac0eb85c430c7c7e5c_195663_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/%E9%99%B0%E8%AC%80%E8%AB%96%E3%81%AB%E3%81%AF%E3%81%BE%E3%82%89%E3%81%AA%E3%81%84%E3%81%9F%E3%82%81%E3%81%AB%E4%BD%95%E3%81%8C%E5%BF%85%E8%A6%81%E3%81%8B/","title":"साजिश के सिद्धांतों में न फंसने के लिए क्या आवश्यक है"},{"content":"लो-कोड / नो-कोड विकास का इतिहास (1980 के दशक से वर्तमान तक) लो-कोड / नो-कोड विकास एक ऐसा दृष्टिकोण है जो विशेष प्रोग्रामिंग ज्ञान के बिना एप्लिकेशन, वेबसाइट और डेटाबेस बनाने की अनुमति देता है। यह विचार 1980 के दशक में शुरू हुआ और पीसी के प्रसार, इंटरनेट के विकास और क्लाउड प्रौद्योगिकियों के विस्तार के साथ विभिन्न प्लेटफार्मों में विकसित हुआ है। इस लेख में, हम प्रत्येक दशक से प्रतिनिधि उपकरणों और सेवाओं का परिचय देंगे, और उनकी विशेषताओं और कीमतों पर प्रकाश डालेंगे।\n1980 का दशक: प्रारंभिक दौर HyperCard (Apple, 1987) मैकिंटोश के लिए ऐप निर्माण उपकरण। स्क्रीन को कार्ड प्रारूप में कॉन्फ़िगर किया गया था, और जीयूआई (GUI) को ड्रैग और ड्रॉप द्वारा बनाया गया था। इसकी अपनी स्क्रिप्टिंग भाषा \u0026ldquo;HyperTalk\u0026rdquo; का उपयोग करके सरल व्यवहार नियंत्रण भी संभव था। प्रोटोटाइप उद्देश्यों के लिए इसे पसंद किया गया था। रिलीज़ के समय कीमत 49.95 डॉलर थी, और बाद में इसे नए मैक खरीदारों के लिए मुफ्त प्रदान किया गया। अंतिम संस्करण 1998 में था, और Mac OS X या उच्चतर के लिए कोई समर्थन नहीं है।\nFileMaker (Claris/Apple, 1985) ग्राफिकल डेटाबेस सॉफ्टवेयर। तालिका प्रारूप में डेटा प्रदर्शित करने के अलावा, यह लचीले लेआउट संपादन और स्क्रिप्टिंग सुविधाओं के साथ एक रिलेशनल डेटाबेस टूल है। वर्तमान में इसे \u0026ldquo;Claris FileMaker Pro\u0026rdquo; के रूप में पेश किया गया है, और पूर्ण लाइसेंस संस्करण की कीमत 594 डॉलर (2024 तक) है।\n1990 का दशक: GUI ऐप्स और बिजनेस विकास का उदय Visual Basic (Microsoft, 1991) विंडोज ऐप विकास के लिए समर्पित एक आईडीई (IDE)। बटन और लेबल जैसे GUI घटकों को ड्रैग और ड्रॉप करके, कोई भी आसानी से इवेंट-संचालित एप्लिकेशन बना सकता था। 1998 में अंतिम संस्करण के रूप में VB6.0 के साथ, यह .NET युग में स्थानांतरित हो गया।\nMicrosoft Access (1992) विंडोज के लिए डेटाबेस विकास उपकरण। इसने रिलेशनल डेटाबेस डिज़ाइन और GUI के माध्यम से फॉर्म निर्माण की अनुमति दी, और आम व्यावसायिक अनुप्रयोगों के विकास के लिए व्यापक रूप से उपयोग किया गया। वर्तमान में Microsoft 365 के भाग के रूप में पेश किया जा रहा है।\nPowerBuilder (PowerSoft/Sybase, 1991) व्यावसायिक अनुप्रयोगों के लिए 4GL विकास उपकरण। इसने क्लाइंट/सर्वर आर्किटेक्चर का समर्थन किया और डेटाबेस एकीकरण में इसकी ताकत थी। यह वर्तमान में SAP के तहत प्रदान किया जाना जारी है।\nDreamweaver (Macromedia, 1997) एक WYSIWYG टूल जो वेब पेजों के दृश्य निर्माण की अनुमति देता था। इसने HTML संपादन और डिज़ाइन दृश्य के बीच स्विच करना संभव बनाया, और ASP और PHP का भी समर्थन किया। वर्तमान में Adobe द्वारा प्रदान किया गया है और सदस्यता (लगभग 34.49 डॉलर प्रति माह) द्वारा उपलब्ध है।\nFlash (Macromedia, 1996) मूल रूप से FutureSplash Animator के रूप में विकसित एक वेक्टर एनिमेशन निर्माण उपकरण। बाद में इसका उपयोग वेब के लिए इंटरैक्टिव सामग्री बनाने के लिए किया गया, लेकिन सुरक्षा चिंताओं के कारण 2020 में समर्थन समाप्त हो गया।\nGameMaker (1999) शुरुआती लोगों के लिए 2D गेम निर्माण उपकरण। ड्रैग और ड्रॉप के साथ ऑब्जेक्ट प्लेसमेंट और इवेंट नियंत्रण किया जा सकता है। बाद में इसने स्क्रिप्टिंग (GML) का भी समर्थन किया, और वर्तमान में व्यावसायिक उपयोग के लिए कई योजनाएं पेश की जाती हैं।\n2000 का दशक: वेब-आधारित और ओपन सोर्स का विस्तार WordPress (2003) PHP और MySQL का उपयोग करने वाला ओपन-सोर्स CMS। प्रोग्रामिंग ज्ञान के बिना भी थीम और प्लगइन्स का उपयोग करके ब्लॉग और कॉर्पोरेट वेबसाइट बनाई जा सकती हैं। निःशुल्क वितरित, यह दुनिया में सबसे व्यापक रूप से उपयोग किए जाने वाले CMS में से एक है।\nWix (2006) एक नो-कोड सेवा जो आपको ब्राउज़र में वेबसाइट बनाने की अनुमति देती है। आप एक टेम्प्लेट चुन सकते हैं और ड्रैग और ड्रॉप के साथ संपादित कर सकते हैं। मुफ्त योजना के अलावा, सशुल्क योजनाएं कस्टम डोमेन और ई-कॉमर्स सुविधाओं के उपयोग की अनुमति देती हैं।\nOutSystems (2001) उद्यमों के लिए लो-कोड प्लेटफॉर्म। क्योंकि यह व्यावसायिक प्रणालियों के तेजी से विकास की अनुमति देता है, बड़े उद्यमों और सरकारी एजेंसियों में इसे अपनाया जा रहा है। क्लाउड और ऑन-प्रिमाइसेस दोनों का समर्थन करता है।\nScratch (MIT, 2007) बच्चों के लिए विकसित एक प्रोग्रामिंग लर्निंग टूल। रंगीन ब्लॉकों के संयोजन से खेल और एनिमेशन बनाए जा सकते हैं, और यह शैक्षिक सेटिंग्स में व्यापक रूप से उपयोग किया जाता है। निःशुल्क प्रदान किया गया।\nAirtable (2013) स्प्रेडशीट और डेटाबेस को मिलाने वाली क्लाउड सेवा। यह दिखने में Excel जैसा है, लेकिन संबंध, कानबन (Kanban) प्रदर्शन और API एकीकरण की अनुमति देता है। व्यक्तियों से लेकर निगमों तक इसका व्यापक रूप से उपयोग किया जाता है।\n2010 - 2020 का दशक: क्लाउड और ऑटोमेशन का युग हाल के वर्षों में, क्लाउड-आधारित लो-कोड / नो-कोड टूल तेजी से विकसित हुए हैं।\nPower Platform (Microsoft) एक एकीकृत व्यावसायिक एप्लिकेशन विकास और स्वचालन मंच जिसमें \u0026ldquo;Power Apps\u0026rdquo;, \u0026ldquo;Power Automate\u0026rdquo;, आदि शामिल हैं। कॉर्पोरेट व्यावसायिक प्रक्रियाओं को ड्रैग और ड्रॉप के साथ दृश्य रूप से बनाया जा सकता है।\nSalesforce Lightning Platform CRM Salesforce द्वारा प्रदान किया गया ऐप विकास आधार। व्यावसायिक ऐप्स GUI के साथ बनाए जा सकते हैं, और अन्य Salesforce सेवाओं के साथ एकीकरण आसान है।\nZapier / IFTTT स्वचालन उपकरण जो कोडिंग के बिना कई क्लाउड सेवाओं के बीच कनेक्शन बनाने की अनुमति देते हैं। उदाहरण के लिए, \u0026ldquo;Google फ़ॉर्म में दर्ज होने पर Slack को सूचित करें\u0026rdquo; जैसे वर्कफ़्लो आसानी से कार्यान्वित किए जा सकते हैं।\nNotion (2010 का दशक) दस्तावेज़ प्रबंधन, कार्य प्रबंधन, Wiki आदि को एकीकृत करने वाला एक ऑल-इन-वन कार्यक्षेत्र। इसमें एक कस्टम डेटाबेस फ़ंक्शन भी है जो बिना कोड के व्यवसाय में सुधार के लिए उपयोगी है।\nConstruct 3 / GameSalad ड्रैग और ड्रॉप के साथ गेम बनाने के उपकरण। Construct 3 HTML5 का समर्थन करता है और ब्राउज़र में भी काम करता है, और शैक्षिक सेटिंग्स और इंडी डेवलपर्स के बीच लोकप्रिय है।\nसूचना स्रोत और पूरक यह लेख प्रत्येक उत्पाद की आधिकारिक वेबसाइटों, Wikipedia, और विश्वसनीय सामग्रियों/लेखों (Apple, Microsoft, Adobe, आदि) के आधार पर संरचित किया गया है। मूल्य निर्धारण की जानकारी उस समय की या नवीनतम संभव आधिकारिक जानकारी (मुख्य रूप से अमेरिकी डॉलर में सूचीबद्ध) को संदर्भित करती है। 2000 के दशक के बाद से कई उपकरण सदस्यता-आधारित हैं, और योजना के आधार पर शुल्क भिन्न होते हैं।\n","date":"2025-04-26T16:46:11+09:00","image":"http://kenji.blog/p/%E3%83%AD%E3%83%BC%E3%82%B3%E3%83%BC%E3%83%89%E3%81%8A%E3%82%88%E3%81%B3%E3%83%8E%E3%83%BC%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E6%AD%B4%E5%8F%B2/img_hu615c889fe1afb242f7436bdb2a6d534f_388471_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/low-code-and-no-code-history/","title":"स्थानीय परिवेश में नो-कोड का इतिहास"},{"content":"आखिर यह FizzBuzz है क्या? नमस्ते!\nआज मैं \u0026ldquo;FizzBuzz\u0026rdquo; के बारे में लिखना चाहता हूँ।\nचाहे आप ऐसा सोचते हों \u0026ldquo;अरे, मैं इसे जानता हूँ!\u0026rdquo;, या \u0026ldquo;मैंने इसके बारे में सुना है, लेकिन मुझे समझ में नहीं आया\u0026rdquo;, कृपया कुछ देर मेरे साथ रहें। इसे पढ़ने में कुछ ही मिनट लगेंगे, और शायद आप सोचें \u0026ldquo;यह समझ में आता है।\u0026rdquo;\nक्या यह सच है कि \u0026ldquo;यदि आप FizzBuzz नहीं लिख सकते, तो आप एक प्रोग्रामर के रूप में असफल हैं\u0026rdquo;? FizzBuzz, संक्षेप में, कुछ ऐसा है।\n1 2 3 4 5 6 7 8 9 for i in range(1, 101): if i % 15 == 0: print(\u0026#34;FizzBuzz\u0026#34;) elif i % 3 == 0: print(\u0026#34;Fizz\u0026#34;) elif i % 5 == 0: print(\u0026#34;Buzz\u0026#34;) else: print(i) हाँ, यह प्रसिद्ध \u0026ldquo;FizzBuzz समस्या\u0026rdquo; है।\nआप 1 से 100 तक की संख्याओं को क्रम में देखते हैं,\nयदि यह 3 का गुणज है, तो \u0026ldquo;Fizz\u0026rdquo; प्रिंट करें, यदि यह 5 का गुणज है, तो \u0026ldquo;Buzz\u0026rdquo;,\nयदि यह दोनों का गुणज है, तो \u0026ldquo;FizzBuzz\u0026rdquo; प्रिंट करें - यह बहुत ही सरल है।\nऔर फिर भी, किसी कारण से, इसे अक्सर \u0026ldquo;प्रोग्रामर के लिए न्यूनतम परीक्षण\u0026rdquo; के रूप में माना जाता है। यह साक्षात्कारों में आता है, और सोशल मीडिया पर आपको ऐसी बातें देखने को मिलेंगी जैसे \u0026ldquo;कोई जो FizzBuzz भी नहीं लिख सकता\u0026hellip;\u0026rdquo;\nलेकिन, एक मिनट रुकिए।\nक्या हम वास्तव में कह सकते हैं कि \u0026ldquo;FizzBuzz नहीं लिख सकना = प्रोग्रामिंग नहीं कर पाना\u0026rdquo;?\nयह कर सकने के बारे में नहीं है, बल्कि क्या आपके पास कर सकने की \u0026ldquo;स्थिति\u0026rdquo; है यह सच है कि FizzBuzz के लिए सिंटैक्स की समझ और बुनियादी तार्किक सोच की आवश्यकता होती है। इसलिए यह समझ में आता है कि इसका उपयोग \u0026ldquo;मूल बातों की जाँच\u0026rdquo; करने के लिए किया जाता है।\nलेकिन, यहाँ बात यह है।\nअगर माहौल अलग है, तो नतीजे भी अलग होंगे।\nउदाहरण के लिए,\nजब आप किसी ऐसे साक्षात्कारकर्ता के सामने घबराए हों जिससे आप पहली बार मिले हैं जब आपको अचानक एक व्हाइटबोर्ड दिया जाता है और आपके पास कोई संपादक नहीं होता है जब आपको तुरंत याद नहीं आता, \u0026ldquo;अरे, मॉड्यूलो (modulo) क्या है?\u0026rdquo; \u0026hellip;क्या ऐसा नहीं होता? हम इंसान हैं। मुझे लगता है कि ऐसा होता है।\nइसलिए, \u0026ldquo;क्या आप FizzBuzz लिख सकते हैं\u0026rdquo; के बजाय, मुझे लगता है कि \u0026ldquo;क्या आप खुद को ऐसी स्थिति में ला सकते हैं जहाँ आप FizzBuzz लिख सकें\u0026rdquo; वास्तव में अधिक महत्वपूर्ण है।\n\u0026ldquo;बस प्रशिक्षण लें और यह ठीक हो जाएगा\u0026rdquo; की सामान्य सलाह का नुकसान जब यह विषय आता है, तो \u0026ldquo;तो हर दिन अभ्यास करो!\u0026rdquo; जैसी सलाह आमतौर पर दी जाती है।\nयह सच है कि बार-बार अभ्यास करने से आप इसे धाराप्रवाह रूप से लिख सकेंगे, और यह अपने आप में एक अच्छी बात है। लेकिन अगर हम इस आधार से शुरू करते हैं कि \u0026ldquo;यदि आप FizzBuzz नहीं लिख सकते हैं तो आप असफल हैं,\u0026rdquo; तो यह आसानी से सिर्फ एक डर में बदल सकता है।\nदूसरे शब्दों में, यह एक ऐसी संरचना बनाने की प्रवृत्ति रखता है जहाँ आपको लगता है कि \u0026ldquo;मैंने गलती की = मैं बेकार हूँ।\u0026rdquo;\nउदाहरण के लिए, जिस दिन आप देर तक सोते हैं, क्या आप यह नहीं सोचते कि \u0026ldquo;मैं आलसी हूँ\u0026hellip;\u0026rdquo;? लेकिन ऐसा हो सकता है कि आपका शरीर उस समय थका हुआ हो।\nFizzBuzz भी ऐसा ही है।\nइसके बावजूद, FizzBuzz अभी भी एक अच्छा सवाल है इसके बावजूद, FizzBuzz बुरा नहीं है।\nबल्कि, मुझे लगता है कि यह बहुत ही अच्छी तरह से तैयार किया गया प्रश्न है। नियम सरल हैं, और विस्तार करना आसान है। उदाहरण के लिए, यदि आप इसे इस तरह बदलते हैं, तो आपकी सोच गहरी होगी।\n1 2 3 4 5 6 7 for i in range(1, 101): output = \u0026#34;\u0026#34; if i % 3 == 0: output += \u0026#34;Fizz\u0026#34; if i % 5 == 0: output += \u0026#34;Buzz\u0026#34; print(output or i) यह एक उदाहरण है कि \u0026ldquo;आप if-elif-else का उपयोग किए बिना भी इसे लिख सकते हैं।\u0026rdquo; यह थोड़ा स्मार्ट है, है ना?\nदूसरे शब्दों में, FizzBuzz केवल \u0026ldquo;आप यह कर सके या नहीं\u0026rdquo; के बारे में नहीं है, बल्कि यह यह देखने के लिए एक प्रवेश द्वार के रूप में भी कार्य करता है कि \u0026ldquo;आप इसे कैसे लिखते हैं\u0026rdquo; और \u0026ldquo;आप कितना समझते हैं।\u0026rdquo;\nसंक्षेप में मुझे लगता है कि हमें इस बात को बहुत अधिक महत्व नहीं देना चाहिए कि आप FizzBuzz कर सकते हैं या नहीं।\nभले ही आप इसे नहीं लिख पाए हों, यह सिर्फ इतना हो सकता है कि \u0026ldquo;आप अभी ठीक महसूस नहीं कर रहे थे,\u0026rdquo; और अक्सर आप बाद में ध्यान से सोचने पर इसे कर सकेंगे।\nजल्दबाजी न करें, चलिए धीरे-धीरे आगे बढ़ते हैं।\nकोड इंसानों द्वारा लिखा जाता है। इंसान होने के नाते, हम कभी-कभी चीजें भूल जाते हैं और घबरा जाते हैं। इसे स्वीकार करते हुए, मुझे लगता है कि यह पर्याप्त है अगर हम थोड़ा-थोड़ा करके आगे बढ़ सकें।\nतो, चलिए आज भी आराम से कोड लिखते हैं।\n","date":"2025-04-18T00:58:11+09:00","image":"http://kenji.blog/p/fizzbuzz/img_hu0b23239076c3049a7d4382dec6ccfba6_85967_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/fizzbuzz/","title":"FizzBuzz"},{"content":"हनोई का टॉवर नमस्ते!\nआज, मैं एक पायथन उदाहरण कार्यक्रम का उपयोग करके \u0026ldquo;हनोई के टॉवर\u0026rdquo; के बारे में समझाना चाहूंगा।\nहनोई का टॉवर क्या है? हनोई का टॉवर एक पहेली है जिसमें 3 छड़ें और कई डिस्क का उपयोग किया जाता है। डिस्क अलग-अलग आकार के होते हैं, और शुरुआत में, वे आकार के घटते क्रम में एक छड़ पर रखे होते हैं। नियम इस प्रकार हैं:\nएक बार में केवल एक डिस्क को ले जाया जा सकता है। एक बड़ी डिस्क को एक छोटी डिस्क के ऊपर नहीं रखा जा सकता है। इस पहेली को पुनरावर्ती सोच सीखने के लिए एक बेहतरीन शिक्षण सामग्री माना जाता है। पुनरावृत्ति एक समस्या को उसी प्रकार की छोटी समस्याओं में तोड़कर हल करने का एक तरीका है। हनोई के टॉवर में, n डिस्क को ले जाने के लिए, हम n-1 डिस्क को ले जाने के संचालन को दोहराते हैं।\nआइए पायथन के साथ हनोई के टॉवर को हल करें नीचे पायथन में हनोई के टॉवर को हल करने के लिए एक नमूना कोड है।\n1 2 3 4 5 6 7 8 9 10 def hanoi(n, source, target, auxiliary): if n == 1: print(f\u0026#34;Move disk 1 from {source} to {target}\u0026#34;) return hanoi(n - 1, source, auxiliary, target) print(f\u0026#34;Move disk {n} from {source} to {target}\u0026#34;) hanoi(n - 1, auxiliary, target, source) # उदाहरण: 3 डिस्क को A से C पर ले जाएं hanoi(3, \u0026#39;A\u0026#39;, \u0026#39;C\u0026#39;, \u0026#39;B\u0026#39;) इस कोड में, hanoi फ़ंक्शन को पुनरावर्ती रूप से कहा जाता है, और डिस्क को ले जाने के चरण प्रदर्शित होते हैं। उदाहरण के लिए, 3 डिस्क के मामले में, निम्न आउटपुट प्राप्त होता है:\n1 2 3 4 5 6 7 Move disk 1 from A to C Move disk 2 from A to B Move disk 1 from C to B Move disk 3 from A to C Move disk 1 from B to A Move disk 2 from B to C Move disk 1 from A to C इस तरह, एक पुनरावर्ती दृष्टिकोण का उपयोग करके, जटिल समस्याओं को आसानी से हल किया जा सकता है।\n64 डिस्क को ले जाने में कितना समय लगता है? हनोई के टॉवर में चालों की संख्या कम से कम 2^n - 1 बार आवश्यक है। दूसरे शब्दों में, 64 डिस्क को ले जाने के लिए, 2^64 - 1 चालें, लगभग 1.84×10^19 चालों की आवश्यकता होती है। यदि आप एक सेकंड में एक चाल चल सकते हैं, तो भी इसमें लगभग 584.9 बिलियन वर्ष लगेंगे। यह ब्रह्मांड की आयु (लगभग 13.7 बिलियन वर्ष) का लगभग 42 गुना है।\nइस प्रकार, जैसे-जैसे डिस्क की संख्या बढ़ती है, आवश्यक चालों की संख्या घातीय रूप से बढ़ती है। इसलिए, व्यवहार में 64 डिस्क को ले जाना यथार्थवादी नहीं है।\nसारांश पुनरावर्ती सोच सीखने के लिए हनोई का टॉवर एक सही पहेली है। पायथन के साथ, आप आसानी से इसके समाधान को लागू कर सकते हैं। हालांकि, सावधान रहें, क्योंकि डिस्क की संख्या बढ़ने पर आवश्यक चालों की संख्या में भारी वृद्धि होती है।\nपुनरावर्ती दृष्टिकोण को समझकर और वास्तव में कोड लिखने का प्रयास करके, आप अपने प्रोग्रामिंग कौशल में सुधार कर सकते हैं। कृपया हनोई के टॉवर को चुनौती देने का प्रयास करें।\n","date":"2025-04-17T22:23:14+09:00","image":"http://kenji.blog/p/%E3%83%8F%E3%83%8E%E3%82%A4%E3%81%AE%E5%A1%94/img_hub916bf71b02b2ffc8b3c247adaa061ec_2314383_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/tower-of-hanoi/","title":"हनोई का टॉवर"},{"content":"सोर्स कोड की पंक्तियों की संख्या नमस्ते!\nआज मैं एक थोड़े अलग विषय पर बात करना चाहता हूँ।\nविषय यह है: \u0026ldquo;अतीत की तुलना में सोर्स कोड की पंक्तियों की संख्या में कितनी वृद्धि हुई है?\u0026rdquo;\nउदाहरण के लिए, स्पेस शटल के सॉफ्टवेयर में लगभग 4.2 लाख पंक्तियों का कोड था। NASA के उच्च गुणवत्ता मानकों को पूरा करने के लिए यह कोड बहुत सख्त प्रक्रिया के तहत विकसित किया गया था। दूसरी ओर, आधुनिक बड़े पैमाने के सॉफ्टवेयर प्रोजेक्ट्स में, कोड की पंक्तियों का करोड़ों से अधिक होना असामान्य नहीं है। उदाहरण के लिए, ऐसा कहा जाता है कि Google का कोडबेस लगभग 2 अरब पंक्तियों तक पहुँच गया है।\nजैसा कि हम देख सकते हैं, समय के साथ सॉफ्टवेयर का पैमाना बढ़ रहा है।\nलेकिन, ज़रा रुकिए।\nकोड की पंक्तियों में वृद्धि होना हमेशा बुरी बात नहीं है। नई सुविधाएँ जोड़ने और उपयोगकर्ता की ज़रूरतों को पूरा करने के लिए कोड का बढ़ना स्वाभाविक है। हालाँकि, जैसे-जैसे कोड बढ़ता है, बग का जोखिम भी बढ़ता है। वास्तव में, एक शोध से पता चलता है कि जब ओपन सोर्स प्रोजेक्ट 10 लाख पंक्तियों को पार कर जाते हैं, तो बग की दर बढ़ने की प्रवृत्ति होती है।\nफिर भी, सभी प्रोजेक्ट्स समान रूप से अपना प्रोजेक्ट कोड नहीं बढ़ा रहे हैं।\nउदाहरण के लिए, 1994 में लिनक्स कर्नेल के संस्करण 1.0 में लगभग 2 लाख पंक्तियाँ थीं, लेकिन 2015 में संस्करण 4.2 में यह बढ़कर लगभग 2 करोड़ पंक्तियाँ हो गईं। यह वृद्धि हार्डवेयर के विकास और नई सुविधाओं को जोड़ने के कारण हुई है।\nइसलिए, सोर्स कोड की पंक्तियों की संख्या प्रोजेक्ट के आकार, उद्देश्य और समय के संदर्भ के आधार पर बहुत भिन्न होती है।\nकोड की पंक्तियों में वृद्धि अपने आप में कोई समस्या नहीं है, लेकिन गुणवत्ता और रखरखाव बनाए रखने के लिए उचित प्रबंधन की आवश्यकता होती है। कोड वृद्धि से जुड़े जोखिमों को समझना और उचित उपाय करना महत्वपूर्ण है।\nअंत में, मुझे लगता है कि केवल कोड की पंक्तियों पर बहुत अधिक ध्यान केंद्रित न करके प्रोजेक्ट के उद्देश्य और गुणवत्ता को महत्व देना अधिक महत्वपूर्ण है।\nतो, अगली बार फिर मिलेंगे!\n","date":"2025-04-17T10:33:02+09:00","image":"http://kenji.blog/p/%E3%82%BD%E3%83%BC%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E8%A1%8C%E6%95%B0/img_1_hu5eec8f3e01b611d6fcced12ecef63fb0_956545_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/source-code-lines/","title":"सोर्स कोड की पंक्तियों की संख्या"},{"content":"\u0026ldquo;केरहॉफ्स का सिद्धांत\u0026rdquo; नमस्ते!\nआज मैं एक बहुत ही रोचक और वास्तव में बेहद महत्वपूर्ण विषय पर बात करना चाहता हूँ जिसे \u0026ldquo;केरहॉफ्स का सिद्धांत\u0026rdquo; कहा जाता है।\nअरे, रुकिए, रुकिए।\nकुछ लोग सोच सकते हैं: \u0026ldquo;मैंने \u0026lsquo;केरहॉफ्स का सिद्धांत\u0026rsquo; कभी नहीं सुना, और यह थोड़ा तकनीकी लगता है\u0026hellip;\u0026rdquo; कृपया चिंता न करें। यह लेख बिल्कुल उन लोगों के लिए है जो ऐसा सोचते हैं।\n\u0026ldquo;सुरक्षित क्रिप्टोग्राफी\u0026rdquo; का क्या अर्थ है? उदाहरण के लिए, मान लीजिए कोई कहता है: \u0026ldquo;यह तिजोरी केवल वही व्यक्ति खोल सकता है जो इसे खोलने का गुप्त तरीका जानता है।\u0026rdquo;\nपहली नज़र में, यह बहुत सुरक्षित लगता है, है ना?\nलेकिन, यदि आप इसके बारे में सोचते हैं, तो क्या यह थोड़ा चिंताजनक नहीं है?\nजैसे, \u0026ldquo;अगर वह रहस्य खुल गया तो सब खत्म हो जाएगा?\u0026rdquo;\nवास्तव में, यही वह बात है जिसने केरहॉफ्स के सिद्धांत को जन्म दिया।\n\u0026ldquo;केरहॉफ्स का सिद्धांत\u0026rdquo; आखिर है क्या? इसे बहुत ही सरल शब्दों में कहें, तो यह एक विचार है कि\n\u0026ldquo;क्रिप्टोग्राफी सुरक्षित होनी चाहिए भले ही इसका तंत्र उजागर हो जाए।\u0026rdquo;\nअधिक स्पष्ट रूप से, \u0026ldquo;सुरक्षा को केवल \u0026lsquo;गुप्त कुंजी\u0026rsquo; पर निर्भर होना चाहिए, और क्रिप्टोग्राफी विधि स्वयं सार्वजनिक हो सकती है!\u0026rdquo;\nदूसरी ओर, \u0026ldquo;एक ऐसी स्थिति जहां एन्क्रिप्शन एल्गोरिदम (तंत्र) को गुप्त रखा जाता है, उसे कम विश्वसनीय माना जाता है।\u0026rdquo;\n\u0026ldquo;अगर तंत्र गुप्त है तो सुरक्षित है\u0026rdquo; थोड़ा खतरनाक हो सकता है यह एक सामान्य सोच है:\n\u0026ldquo;मैंने इस ऐप के अंदर का हिस्सा किसी को नहीं दिखाया है, इसलिए सुरक्षा ठीक है\u0026rdquo;\nमैं आपकी भावना समझता हूँ।\nलेकिन यह कहने जैसा ही है: \u0026ldquo;कोई नहीं देख रहा है, इसलिए कोई खामी नहीं मिलेगी, है ना?\u0026rdquo;\nवास्तव में, वह \u0026ldquo;कोई नहीं देख रहा\u0026rdquo; अपने आप में एक जोखिम बन सकता है।\nलेकिन यह सिद्धांत इतना महत्वपूर्ण क्यों है? क्योंकि, यदि कोई तंत्र पर अपना हाथ रख ले और उसे आसानी से समझ सके, तो वह क्रिप्टोग्राफी बेकार हो जाती है।\nएक सादृश्य का उपयोग करने के लिए, यह ऐसा है जैसे एक दरवाजे के ताले में एक बहुत ही जटिल तंत्र हो, लेकिन वास्तव में इसे एक डॉलर की दुकान पर बनाई गई अतिरिक्त चाबी से खोला जा सकता है।\nयह बात नहीं है कि \u0026ldquo;चाबी गुप्त है इसलिए यह ठीक है\u0026rdquo;, बल्कि \u0026ldquo;भले ही आप पूरा तंत्र दिखा दें, इसे सही चाबी के बिना खोला नहीं जा सकता\u0026rdquo; यह महत्वपूर्ण है।\n\u0026ldquo;लेकिन, क्या यह थोड़ा डरावना नहीं है?\u0026rdquo; की भावना यहाँ बहुत से लोग जो महसूस करते हैं वह है चिंता\n\u0026ldquo;क्या पूरे तंत्र को उजागर करना थोड़ा डरावना नहीं है?\u0026rdquo;\nमैं समझता हूँ।\nक्योंकि आप सोचते हैं: \u0026ldquo;अगर मैं अंदर का हिस्सा दिखा दूँ, तो क्या इसकी नकल नहीं की जाएगी या इसका दुरुपयोग नहीं किया जाएगा?\u0026rdquo;\nलेकिन यही केरहॉफ्स के सिद्धांत का मूल है।\nवह \u0026ldquo;ताकत जो तब भी नहीं टूटती जब अंदर का हिस्सा दिखाया जाता है\u0026rdquo; ही सच्ची सुरक्षा है।\nऐसा कहने के बाद भी, शुरुआत में थोड़ी हिम्मत चाहिए डेवलपर के दृष्टिकोण से देखने पर, ऐसा लगता है जैसे \u0026ldquo;तंत्र प्रकाशित करना = कमजोरियों को उजागर करना\u0026rdquo;, इसलिए यह निश्चित रूप से परेशान करने वाला है।\nलेकिन इसके बारे में सोचें।\nकुछ ऐसा जिसे आप ठीक से दिखा सकें और कह सकें: \u0026ldquo;कोई भी इसे सत्यापित कर सकता है\u0026rdquo;, वह अंततः अधिक विश्वसनीय होता है।\nयह मानवीय रिश्तों के समान है।\n\u0026ldquo;एक ऐसा व्यक्ति जो आपके असली रूप को देखने के बाद भी आपके साथ अच्छी तरह से पेश आता है\u0026rdquo;, अंततः सबसे अधिक आश्वस्त करने वाला होता है।\nअंत में केरहॉफ्स का सिद्धांत थोड़ा सैद्धांतिक लग सकता है, लेकिन इसका सार बहुत सरल है।\nयह बस की बात है \u0026ldquo;आइए एक ऐसा तंत्र बनाएं जो टूटेगा नहीं चाहे आप इसे किसी को भी दिखाएं।\u0026rdquo;\nसतही रहस्यों के बजाय उचित डिज़ाइन।\nउस कोड के बजाय जिसे आप किसी को नहीं दिखाना चाहते, ऐसा कोड जिसे दिखाने में आपको शर्म न आए।\nशायद आने वाले युग में ऐसी \u0026ldquo;ताकत\u0026rdquo; की और भी अधिक आवश्यकता होगी।\nपढ़ने के लिए बहुत-बहुत धन्यवाद!\nसुरक्षा के बारे में बात करना थोड़ा मुश्किल है, लेकिन इसके कुछ हिस्से \u0026ldquo;लोगों के साथ संबंध\u0026rdquo; और \u0026ldquo;रोजमर्रा की शांति\u0026rdquo; से भी जुड़ते हैं।\nयदि आप बिना बोझिल महसूस किए थोड़ा-थोड़ा करके सीखते हैं, तो मुझे यकीन है कि अच्छी चीजें होंगी।\n","date":"2025-04-16T23:53:08+09:00","image":"http://kenji.blog/p/%E3%82%B1%E3%83%AB%E3%82%AF%E3%83%9B%E3%83%95%E3%82%B9%E3%81%AE%E5%8E%9F%E7%90%86/img_2_hu71b6c82ab9eb0ac0abd797e00918df90_2573611_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/kerckhoffs-principle/","title":"केरहॉफ्स का सिद्धांत"},{"content":"🎯 C++ से C++/CLI DLL के माध्यम से PowerShell को निष्पादित करने के चरण (Visual Studio 2022 / C++) ✅ समग्र वास्तुकला 🔹 ① CLI रैपर DLL (C++/CLI) PowerShell स्क्रिप्ट को निष्पादित करने की कार्यक्षमता प्रदान करता है।\n🔹 ② नेटिव C++ कॉलर PowerShell स्क्रिप्ट चलाने के लिए CLI DLL को कॉल करता है।\n🔧 चरण 1: CLI रैपर DLL प्रोजेक्ट बनाना 1. प्रोजेक्ट बनाना [नया प्रोजेक्ट बनाएँ] → [C++] → CLR क्लास लाइब्रेरी (.NET Framework) नाम: PowerShellWrapper 💡 यदि यह टेम्प्लेट प्रदर्शित नहीं होता है, तो \u0026ldquo;.NET डेस्कटॉप विकास\u0026rdquo; वर्कलोड स्थापित करें।\n2. NuGet पैकेज जोड़ें प्रोजेक्ट पर राइट-क्लिक करें → [NuGet पैकेज प्रबंधित करें] System.Management.Automation खोजें और स्थापित करें\n(संस्करण 5.x या 7.x) 3. CLI कोड कार्यान्वयन PowerShellWrapper.h 1 2 3 4 5 6 7 8 9 10 #pragma once using namespace System; namespace PowerShellWrapper { public ref class PowerShellExecutor { public: String^ Execute(String^ script); }; } PowerShellWrapper.cpp 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 #include \u0026#34;PowerShellWrapper.h\u0026#34; using namespace System; using namespace System::Management::Automation; using namespace System::Collections::ObjectModel; String^ PowerShellWrapper::PowerShellExecutor::Execute(String^ script) { PowerShell^ ps = PowerShell::Create(); ps-\u0026gt;AddScript(script); Collection\u0026lt;PSObject^\u0026gt;^ results = ps-\u0026gt;Invoke(); System::Text::StringBuilder^ sb = gcnew System::Text::StringBuilder(); for each (PSObject^ result in results) { sb-\u0026gt;AppendLine(result-\u0026gt;ToString()); } return sb-\u0026gt;ToString(); } 🔧 चरण 2: नेटिव C++ से कॉल करना 1. C++ कंसोल ऐप प्रोजेक्ट बनाना नाम: NativeApp 2. संदर्भ सेटिंग प्रोजेक्ट पर राइट-क्लिक करें → [जोड़ें] → [संदर्भ] → प्रोजेक्ट → PowerShellWrapper जोड़ें [गुण] → [C/C++] → [कॉमन लैंग्वेज रनटाइम सपोर्ट] → /clr में बदलें 3. निष्पादन कोड (main.cpp) 1 2 3 4 5 6 7 8 9 10 11 12 13 #using \u0026lt;System.dll\u0026gt; #using \u0026#34;..\\\\PowerShellWrapper\\\\Debug\\\\PowerShellWrapper.dll\u0026#34; using namespace System; using namespace PowerShellWrapper; int main() { PowerShellExecutor^ executor = gcnew PowerShellExecutor(); String^ result = executor-\u0026gt;Execute(\u0026#34;Get-Process | Select-Object -First 1\u0026#34;); Console::WriteLine(result); return 0; } 💡 अतिरिक्त जानकारी (IDL / TLB / COM पंजीकरण) यह कॉन्फ़िगरेशन COM के बजाय सीधे .NET DLL को संदर्भित करता है, इसलिए IDL, TLB, या COM पंजीकरण की आवश्यकता नहीं है । ✅ अंतिम वास्तुकला 1 2 3 4 5 Solution ├── PowerShellWrapper (C++/CLI DLL) │ └── PowerShellExecutor ├── NativeApp (C++ EXE) └── main.cpp → DLL कॉल ","date":"2025-04-16T01:58:03+09:00","image":"http://kenji.blog/p/c-%E3%81%8B%E3%82%89-powershell-%E3%82%92-c-cli-dll-%E7%B5%8C%E7%94%B1%E3%81%A7%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B%E6%89%8B%E9%A0%86/img_hu7575b218a6ea53bc902a4f89abde2058_17844_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/c-%E3%81%8B%E3%82%89-powershell-%E3%82%92-c-cli-dll-%E7%B5%8C%E7%94%B1%E3%81%A7%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B%E6%89%8B%E9%A0%86/","title":"C++ से C++/CLI DLL के माध्यम से PowerShell को निष्पादित करने के चरण"},{"content":"【Windows】लाइसेंस की स्थिति कैसे जांचें (1 कमांड से काम हो जाएगा) क्या आपने कभी सोचा है कि आपका Windows लाइसेंस सही ढंग से प्रमाणित है या नहीं?\nऐसे समय में, एक ही कमांड से लाइसेंस की जानकारी जांचने का तरीका बहुत काम आता है। आप केवल नीचे दिए गए चरणों को निष्पादित करके अपनी वर्तमान लाइसेंस स्थिति की आसानी से जांच कर सकते हैं।\nलाइसेंस स्थिति जांचने के लिए कमांड आप Windows में अंतर्निहित स्क्रिप्ट टूल का उपयोग करके लाइसेंस की जानकारी प्रदर्शित कर सकते हैं। उपयोग किया जाने वाला कमांड यहाँ है:\n1 slmgr /dli जब आप यह कमांड चलाते हैं, तो लाइसेंस की कुछ जानकारी एक विंडो में प्रदर्शित होगी।\nनिष्पादन विधि \u0026ldquo;स्टार्ट मेनू\u0026rdquo; से \u0026ldquo;cmd\u0026rdquo; टाइप करें, कमांड प्रॉम्प्ट पर राइट-क्लिक करें → \u0026ldquo;व्यवस्थापक के रूप में चलाएँ\u0026rdquo; ।\nकमांड प्रॉम्प्ट में निम्नलिखित टाइप करें और Enter दबाएँ:\n1 slmgr /dli कुछ सेकंड प्रतीक्षा करने के बाद, निम्नलिखित जैसी लाइसेंस जानकारी प्रदर्शित होगी।\nप्रदर्शित मुख्य जानकारी उत्पाद कुंजी का एक हिस्सा लाइसेंस का प्रकार (खुदरा, OEM, आदि) लाइसेंस की स्थिति (सक्रिय, समाप्त, अप्रमाणित, आदि) यदि आप अधिक विस्तृत जानकारी जानना चाहते हैं? निम्नलिखित जैसे कमांड भी हैं:\nslmgr /dlv : अधिक विस्तृत लाइसेंस जानकारी प्रदर्शित करें slmgr /xpr : लाइसेंस की समाप्ति तिथि प्रदर्शित करें (जैसे कि क्या यह स्थायी है) सारांश Windows की लाइसेंस स्थिति को एक ही कमांड से आसानी से जांचा जा सकता है।\nसरल जांच : slmgr /dli विस्तृत जांच : slmgr /dlv समाप्ति तिथि की जांच : slmgr /xpr यदि आपके लाइसेंस में कोई समस्या है, तो अपडेट और कुछ सुविधाओं पर प्रतिबंध हो सकता है, इसलिए समय-समय पर इसकी जांच करना सुरक्षित है।\n","date":"2025-04-14T00:41:45+09:00","image":"http://kenji.blog/p/windows-%E3%81%AE%E3%83%A9%E3%82%A4%E3%82%BB%E3%83%B3%E3%82%B9%E3%81%AE%E7%8A%B6%E6%85%8B%E3%82%92%E7%A2%BA%E8%AA%8D%E3%81%99%E3%82%8B%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89/img_1_hudcf97514836ad006a409bb9b34fbe340_111425_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/windows-%E3%81%AE%E3%83%A9%E3%82%A4%E3%82%BB%E3%83%B3%E3%82%B9%E3%81%AE%E7%8A%B6%E6%85%8B%E3%82%92%E7%A2%BA%E8%AA%8D%E3%81%99%E3%82%8B%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89/","title":"Windows के लाइसेंस की स्थिति जांचने के लिए कमांड"},{"content":"iOS के लिए अनुकूलित ffmpeg रूपांतरण पैरामीटर हम iOS डिवाइस (iPhone और iPad) पर सुचारू रूप से प्लेबैक के लिए वीडियो कनवर्ट करने के लिए ffmpeg कमांड प्रस्तुत करते हैं।\n1 2 3 4 5 6 ffmpeg -i input.mp4 \\ -c:v libx264 -profile:v high -level 4.1 \\ -vf \u0026#34;scale=1920:-2\u0026#34; -r 30 \\ -crf 20 -preset slow \\ -c:a aac -b:a 128k -ar 48000 \\ -movflags +faststart output.mp4 प्रत्येक विकल्प का अर्थ (संक्षिप्त व्याख्या) विकल्प विवरण -i input.mp4 इनपुट फ़ाइल (कनवर्ट किया जाने वाला वीडियो) -c:v libx264 H.264 के साथ वीडियो एन्कोड करें (iOS संगत) -profile:v high -level 4.1 iOS पर व्यापक रूप से संगत प्रोफ़ाइल और स्तर -vf \u0026quot;scale=1920:-2\u0026quot; चौड़ाई 1920px में बदलें, ऊंचाई स्वचालित रूप से पहलू अनुपात को बनाए रखते हुए समायोजित की जाती है -r 30 30fps के फ्रेम दर में बदलें -crf 20 वीडियो की गुणवत्ता (कम संख्या का अर्थ उच्च गुणवत्ता है, 18-23 अनुशंसित) -preset slow एन्कोडिंग गति और संपीड़न दर के बीच संतुलन (slow का अर्थ है उच्च संपीड़न और उच्च गुणवत्ता) -c:a aac ऑडियो AAC प्रारूप में एन्कोड किया गया है -b:a 128k ऑडियो बिटरेट को 128kbps पर सेट करें -ar 48000 ऑडियो सैंपलिंग दर को 48kHz पर सेट करें (iOS अनुशंसित) -movflags +faststart वेब और iOS पर स्ट्रीमिंग प्लेबैक को तेज़ करने के लिए वीडियो के शुरुआत में एक इंडेक्स रखता है इन सेटिंग्स के साथ कनवर्ट किए गए वीडियो के iPhone और iPad जैसे Apple डिवाइस पर उच्च संगतता और सुचारू रूप से चलने की उम्मीद है।\nयदि आवश्यक हो, तो आप रिज़ॉल्यूशन और बिटरेट बदलकर फ़ाइल का आकार और छवि गुणवत्ता समायोजित कर सकते हैं। यदि उच्च गुणवत्ता की आवश्यकता है, तो -crf को लगभग 18 सेट करने का प्रयास करें; यदि आप फ़ाइल का आकार कम करना चाहते हैं, तो 22-25 सेट करें।\n","date":"2025-03-02T04:16:07+09:00","image":"http://kenji.blog/p/ios-%E5%90%91%E3%81%91%E3%81%AE-ffmpeg-%E3%83%91%E3%83%A9%E3%83%A1%E3%83%BC%E3%82%BF/img_hu6ca6c354dba8425c4a9e54b9842ad89b_30790_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/ios-%E5%90%91%E3%81%91%E3%81%AE-ffmpeg-%E3%83%91%E3%83%A9%E3%83%A1%E3%83%BC%E3%82%BF/","title":"iOS के लिए ffmpeg पैरामीटर"},{"content":"Android (Google Pixel) डिवाइस रिस्टोर प्रक्रिया यदि आपके Google Pixel डिवाइस में कोई गंभीर सिस्टम समस्या आती है, जैसे \u0026ldquo;लगातार रीस्टार्ट होना (बूटलूप)\u0026rdquo;, \u0026ldquo;लोगो स्क्रीन पर अटक जाना\u0026rdquo;, या \u0026ldquo;सिस्टम का अत्यधिक अस्थिर होना\u0026rdquo;, तो आप Google द्वारा प्रदान किए गए आधिकारिक \u0026ldquo;Pixel Update and Software Repair\u0026rdquo; टूल का उपयोग करके ब्राउज़र के माध्यम से अपने डिवाइस के सॉफ़्टवेयर को सुरक्षित रूप से रिपेयर (रिस्टोर) कर सकते हैं।\nइस लेख में, हम विशिष्ट प्रक्रियाओं और ध्यान रखने योग्य बातों के बारे में विस्तार से बताएंगे।\n1. रिस्टोर टूल एक्सेस करें सबसे पहले, अपने PC (Windows या Mac) के ब्राउज़र (Google Chrome या Microsoft Edge अनुशंसित) से निम्नलिखित आधिकारिक रिपेयर टूल पेज पर जाएं:\n🔗 Pixel Update and Software Repair आधिकारिक साइट\n※ ध्यान दें ※ रिस्टोर प्रक्रिया निष्पादित करते समय, डिवाइस पर मौजूद डेटा (फ़ोटो, ऐप्स, संपर्क, आदि) पूरी तरह से डिलीट (आरंभिकृत) हो सकता है। यदि डिवाइस काम करने की स्थिति में है, तो कृपया पहले ही Google Drive आदि पर बैकअप अवश्य लें।\n2. रिस्टोर के लिए पूर्व तैयारी प्रक्रिया को सुचारू रूप से चलाने के लिए, निम्नलिखित तैयारी करें:\nबैटरी चार्जिंग यदि प्रक्रिया के बीच में बिजली चली जाती है, तो डिवाइस ब्रिक (पूरी तरह से खराब) हो सकता है। सुनिश्चित करें कि बैटरी कम से कम 50% चार्ज हो, या बेहतर होगा कि यह पूरी तरह चार्ज हो। असली USB केबल का उपयोग करें डेटा ट्रांसफर स्थिर रखने के लिए, डिवाइस के साथ आए असली USB-C केबल का उपयोग करने की दृढ़ता से अनुशंसा की जाती है। (यदि आवश्यक हो) ड्राइवर इंस्टॉल करें Windows PC का उपयोग करते समय, हो सकता है कि डिवाइस ठीक से पहचाना न जाए। उस स्थिति में, कृपया Google USB ड्राइवर इंस्टॉल करें। 3. विशिष्ट रिस्टोर चरण तैयार होने के बाद, रिस्टोर करने के लिए स्क्रीन पर दिए गए निर्देशों का पालन करें।\nStep 1: कैरियर चुनें और डिवाइस कनेक्ट करें साइट खोलने पर, सबसे पहले संचार कैरियर (मोबाइल फोन कंपनी) चुनने वाली स्क्रीन दिखाई देगी। यदि यह सिम-फ्री है या किसी कैरियर से बंधा नहीं है, तो \u0026ldquo;अन्य (Other)\u0026rdquo; आदि चुनें। उसके बाद, USB केबल का उपयोग करके PC और Pixel डिवाइस को कनेक्ट करें।\nStep 2: डिवाइस को \u0026ldquo;रेस्क्यू मोड (Fastboot मोड)\u0026rdquo; में डालें स्क्रीन पर दिए गए निर्देशों का पालन करते हुए, डिवाइस बंद होने की स्थिति से, Fastboot मोड (काले बैकग्राउंड के साथ गिरे हुए Android रोबोट वाली स्क्रीन) शुरू करने के लिए पावर बटन और वॉल्यूम कम करने वाले बटन को एक साथ दबाकर रखें ।\nStep 3: PC पर डिवाइस को पहचानने दें ब्राउज़र पर \u0026ldquo;डिवाइस कनेक्ट करें\u0026rdquo; बटन पर क्लिक करने पर, एक पॉप-अप खुलेगा जिसमें कनेक्टेड Pixel डिवाइस की सूची दिखाई देगी। लक्ष्य डिवाइस चुनें और कनेक्शन की अनुमति दें।\nStep 4: सॉफ़्टवेयर डाउनलोड और इंस्टॉल करें जब डिवाइस की पहचान हो जाती है, तो सबसे उपयुक्त Android OS (फ़र्मवेयर) संस्करण स्वचालित रूप से चुना जाता है। \u0026ldquo;इंस्टॉल करें\u0026rdquo; पर क्लिक करने पर, सॉफ़्टवेयर PC पर डाउनलोड हो जाएगा और डिवाइस पर राइटिंग (फ़्लैशिंग) प्रक्रिया तुरंत शुरू हो जाएगी।\n⚠️ चेतावनी: इस प्रक्रिया के दौरान, कभी भी USB केबल न निकालें या PC को बंद न करें।\nStep 5: समापन और प्रारंभिक सेटअप जब प्रगति पट्टी 100% तक पहुँच जाती है और \u0026ldquo;पूर्ण\u0026rdquo; संदेश दिखाई देता है, तो रिस्टोर सफल हो गया है। डिवाइस स्वचालित रूप से रीस्टार्ट होगा और वही प्रारंभिक सेटअप स्क्रीन (\u0026ldquo;नमस्ते\u0026rdquo; स्क्रीन) दिखाई देगी जो आपको इसे खरीदते समय मिली थी।\nनिष्कर्ष Google Pixel का आधिकारिक रिपेयर टूल एक उत्कृष्ट टूल है जो आपको विशेष कमांड (adb या fastboot) का उपयोग किए बिना केवल ब्राउज़र में क्लिक करके सुरक्षित रूप से फ़र्मवेयर फ्लैश करने की अनुमति देता है।\nडिवाइस में खराबी के कारण इसे दुकान पर ले जाने से पहले इस प्रक्रिया को आजमाने से समस्या आसानी से हल हो सकती है। कृपया इसे अवश्य आजमाएं।\n","date":"2025-02-28T01:20:41+09:00","image":"http://kenji.blog/p/androidgoogle-pixel%E7%AB%AF%E6%9C%AB%E3%81%AE%E5%BE%A9%E5%85%83%E6%89%8B%E9%A0%86/pixel_restore_eyecatch_1788588727945_hu9d405d830ed3e56e9e703ab601cf6c0a_776052_120x120_fill_q75_box_smart1.jpg","permalink":"http://kenji.blog/hi/p/androidgoogle-pixel%E7%AB%AF%E6%9C%AB%E3%81%AE%E5%BE%A9%E5%85%83%E6%89%8B%E9%A0%86/","title":"Android (Google Pixel) डिवाइस सॉफ़्टवेयर रिस्टोर (आरंभिकरण/मरम्मत) प्रक्रिया"},{"content":"curl के साथ Gmail भेजें 1. ऐप पासवर्ड प्राप्त करें https://myaccount.google.com/apppasswords उपरोक्त लिंक पर क्लिक करें और ऐप का नाम दर्ज करें। जेनरेट किए गए पासवर्ड को सेव करें।\n2. curl कमांड के साथ ईमेल भेजें निम्नलिखित कमांड निष्पादित करें।\nनीचे दिए गए उदाहरण में, ईमेल की सामग्री mail.txt में लिखी गई है।\n1 2 3 4 5 6 From: from@gmail.com To: to@gmail.com Subject: टेस्ट ईमेल Content-Type: text/plain; charset=\u0026#34;UTF-8\u0026#34; यह एक टेस्ट ईमेल है। उपरोक्त फ़ाइल बनाएं और निम्न कमांड चलाएं।\n1 curl --url \u0026#34;smtps://smtp.gmail.com:465\u0026#34; --ssl-reqd --mail-from \u0026#34;from@gmail.com\u0026#34; --mail-rcpt \u0026#34;to@gmail.com\u0026#34; --user \u0026#34;from@gmail.com:xxxxxxxxxxxxxxxx\u0026#34; --upload-file mail.txt ※ कृपया xxxxxxxxxxxxxxxx को अपने ऐप पासवर्ड से बदलें।\n","date":"2025-02-27T02:13:31+09:00","image":"http://kenji.blog/p/gmail%E3%82%92curl%E3%81%8B%E3%82%89%E9%80%81%E3%82%8B/img_hua1028a8ea194106f3853f4bdf4e1e991_75790_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/curl-ke-saath-gmail-bhejen/","title":"curl के साथ Gmail भेजें"},{"content":"मानक लाइब्रेरी का उपयोग करके नमूना कोड का परिचय।\nएक छवि डाउनलोड करें और प्रदर्शित करें 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 import urllib.request import tempfile import os import webbrowser import time url = \u0026#34;https://www.aomori-ringo.or.jp/kids/wp-content/uploads/2021/11/apple.png\u0026#34; try: with urllib.request.urlopen(url) as response: img_data = response.read() # एक अस्थायी फ़ाइल में सहेजें और प्रदर्शित करें with tempfile.NamedTemporaryFile(delete=False, suffix=\u0026#34;.png\u0026#34;) as tmp: tmp.write(img_data) print(f\u0026#34;file://{tmp.name}\u0026#34;) webbrowser.open(f\u0026#34;file://{tmp.name}\u0026#34;) time.sleep(3) except Exception as e: print(f\u0026#34;एक त्रुटि उत्पन्न हुई: {e}\u0026#34;) finally: if \u0026#39;tmp\u0026#39; in locals(): os.unlink(tmp.name) # अस्थायी फ़ाइल हटाएँ ","date":"2025-02-24T18:21:14+09:00","image":"http://kenji.blog/p/python%E3%82%B3%E3%83%BC%E3%83%89%E7%89%87/img_hu6807d8c9816a78d77990562cff91e319_70806_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/python%E3%82%B3%E3%83%BC%E3%83%89%E7%89%87/","title":"पायथन कोड स्निपेट्स"},{"content":"curl से ChatGPT API को कॉल करना यह मान कर चला जाता है कि इसे Windows के कमांड प्रॉम्प्ट से कॉल किया जा रहा है।\n1 2 curl https://api.openai.com/v1/chat/completions -H \u0026#34;Content-Type: application/json\u0026#34; -H \u0026#34;Authorization: Bearer sk-proj-XXXXXXXXXXXXXXXXXXXX\u0026#34; -d \u0026#34;{\u0026#34;\u0026#34;model\u0026#34;\u0026#34;: \u0026#34;\u0026#34;gpt-3.5-turbo\u0026#34;\u0026#34;,\u0026#34;\u0026#34;messages\u0026#34;\u0026#34;: [{\u0026#34;\u0026#34;role\u0026#34;\u0026#34;: \u0026#34;\u0026#34;system\u0026#34;\u0026#34;, \u0026#34;\u0026#34;content\u0026#34;\u0026#34;: \u0026#34;\u0026#34;कृपया कंसाई बोली में उत्तर दें।\u0026#34;\u0026#34;}, {\u0026#34;\u0026#34;role\u0026#34;\u0026#34;: \u0026#34;\u0026#34;user\u0026#34;\u0026#34;, \u0026#34;\u0026#34;content\u0026#34;\u0026#34;: \u0026#34;\u0026#34;यहां वह संदेश डालें जिसे आप भेजना चाहते हैं\u0026#34;\u0026#34;}]}\u0026#34; ","date":"2025-02-01T17:15:34+09:00","image":"http://kenji.blog/p/chatgpt-api%E3%82%92curl%E3%81%8B%E3%82%89%E5%91%BC%E3%81%B3%E5%87%BA%E3%81%99/img_huc9cfad0a382aa812189dd7635d7709f2_1078030_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/chatgpt-api%E3%82%92curl%E3%81%8B%E3%82%89%E5%91%BC%E3%81%B3%E5%87%BA%E3%81%99/","title":"curl से ChatGPT API को कॉल करना"},{"content":"उच्च लाभांश स्टॉक सारांश मित्सुबिशी यूएफजे फाइनेंशियल ग्रुप (8306) सुमितोमो मित्सुई फाइनेंशियल ग्रुप (8316) मित्सुबिशी कॉर्पोरेशन (8058) इतोचु कॉर्पोरेशन (8001) एनटीटी (9432) केडीडीआई (9433) ओकिनावा सेल्युलर टेलीफोन (9436) टोकियो मरीन होल्डिंग्स (8766) टोयोटा मोटर (7203) यामाहा मोटर (7272) असाही ग्रुप होल्डिंग्स (2502) किरिन होल्डिंग्स (2503) जेटी (2914) ब्रिजस्टोन (5108) दाइवा हाउस इंडस्ट्री (1925) सेकिसुई हाउस (1928) क्योसेरा (6971) शिन-एत्सु केमिकल (4063) निट्टो डेंको (6988) ओरिक्स (8591) मित्सुबिशी एचसी कैपिटल (8593) ह्यूलिक (3003) ","date":"2024-12-22T00:56:14+09:00","image":"http://kenji.blog/p/%E9%AB%98%E9%85%8D%E5%BD%93%E6%A0%AA%E3%81%BE%E3%81%A8%E3%82%81/img_huf2943e4fc5463d0d6e36ddd1be1ac839_1663544_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/%E9%AB%98%E9%85%8D%E5%BD%93%E6%A0%AA%E3%81%BE%E3%81%A8%E3%82%81/","title":"उच्च लाभांश स्टॉक सारांश"},{"content":"दीर्घकालिक लक्ष्य 1 वर्ष बाद व्यवसाय शुरू करना वेबसाइट बनाना और सॉफ्टवेयर (निःशुल्क) जारी करना 2 वर्ष बाद 1 करोड़ येन की वार्षिक बिक्री एक किताब प्रकाशित करना सॉफ्टवेयर (सशुल्क) जारी करना 3 वर्ष बाद 10 करोड़ येन की वार्षिक बिक्री 5 वर्ष बाद 1 अरब येन की वार्षिक बिक्री 10 वर्ष बाद 10 अरब येन की वार्षिक बिक्री अल्पकालिक लक्ष्य 1 महीने बाद व्यवसाय योजना तैयार करना 3 महीने बाद व्यवसाय शुरू करने के लिए लगभग 50 लाख येन का फंड जुटाना 6 महीने बाद व्यवसाय शुरू करना 1 वर्ष बाद व्यवसाय को सही रास्ते पर लाना हाल के कार्य लक्ष्य और दृष्टिकोण स्पष्ट करना\nउद्देश्य: सॉफ्टवेयर क्यों बनाया जा रहा है? उदाहरण: कोई समस्या हल करना, नया मूल्य प्रदान करना, विशिष्ट बाजार को लक्षित करना, आदि। दृष्टिकोण: सॉफ्टवेयर के माध्यम से आप कैसा भविष्य प्राप्त करना चाहते हैं? उदाहरण: व्यावसायिक दक्षता, दैनिक जीवन में सुविधा, शिक्षा की गुणवत्ता में सुधार, आदि। बाजार अनुसंधान और आवश्यकता विश्लेषण\nलक्षित उपयोगकर्ता: सॉफ्टवेयर का उपयोग कौन करेगा? आयु वर्ग, पेशा, रुचियाँ आदि निर्दिष्ट करें। प्रतिस्पर्धी अनुसंधान: क्या उसी क्षेत्र में प्रतिस्पर्धी हैं? उनकी ताकत और कमजोरियों का विश्लेषण करें। आवश्यकताओं की पहचान: लक्षित उपयोगकर्ताओं की अनसुलझी समस्याओं और मांगों को समझें। सॉफ्टवेयर डिज़ाइन और विशेषताएं\nमूल कार्यक्षमता: आवश्यक सुविधाओं की सूची बनाएं। उदाहरण: उपयोगकर्ता प्रमाणीकरण, डेटा संग्रहण, विश्लेषण सुविधाएँ, आदि। विभेदीकरण बिंदु: स्पष्ट करें कि यह अन्य कंपनियों के उत्पादों की तुलना में कैसे अद्वितीय है। उदाहरण: सरल यूआई, एआई का उपयोग, उच्च अनुकूलन क्षमता। तकनीकी विनिर्देश: उपयोग की जाने वाली प्रोग्रामिंग भाषा, फ्रेमवर्क, डेटाबेस, आदि। विकास योजना और संसाधन आवंटन\nविकास अनुसूची: परियोजना के प्रत्येक चरण के लिए एक समयरेखा निर्धारित करें। उदाहरण: प्रोटोटाइप विकास, परीक्षण, आधिकारिक रिलीज़। टीम संरचना: आवश्यक प्रतिभा और कौशल सेट (प्रोग्रामर, डिज़ाइनर, मार्केटर, आदि)। बजट: विकास लागत, विपणन लागत और परिचालन लागत का अनुमान लगाएं। विपणन और राजस्व मॉडल\nप्रचार के तरीके: जागरूकता बढ़ाने के लिए सोशल मीडिया, वेबसाइट, विज्ञापन आदि का उपयोग करें। मुद्रीकरण रणनीति: मुफ्त + सशुल्क संस्करण, मासिक सदस्यता, विज्ञापन राजस्व आदि जैसे विकल्पों पर विचार करें। उपयोगकर्ता अधिग्रहण रणनीति: मुफ्त परीक्षण प्रदान करना, मुंह से प्रचार को बढ़ावा देना, उपयोगकर्ता समुदाय बनाना, आदि। संचालन और स्केलिंग\nरिलीज़ के बाद का संचालन: उपयोगकर्ताओं से प्रतिक्रिया एकत्र करना, बग फिक्स करना, नई सुविधाएँ जोड़ना। विकास रणनीति: उपयोगकर्ताओं की संख्या बढ़ाने, अन्य देशों में विस्तार करने और नई सुविधाएँ विकसित करने की योजना बनाएं। जोखिम प्रबंधन: कानूनी मुद्दों और तकनीकी समस्याओं के लिए उपाय तैयार करें। ","date":"2024-12-08T03:32:34+09:00","image":"http://kenji.blog/p/%E7%9B%AE%E6%A8%99/img_huc6a3627da74a1082cbdd433fea41830c_4007614_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/%E0%A4%B2%E0%A4%95%E0%A5%8D%E0%A4%B7%E0%A5%8D%E0%A4%AF/","title":"लक्ष्य"},{"content":"हाल ही में, मुझे चमड़े के उत्पादों में दिलचस्पी हो गई है, और मैंने विभिन्न आइटम खरीदे हैं। इसके साथ ही, चमड़े के उत्पादों के रखरखाव में भी मेरी रुचि बढ़ी है, और मैंने कुछ संबंधित आइटम तैयार किए हैं जिन्हें मैं आपको पेश कर रहा हूं।\nहाल ही में खरीदे गए चमड़े के रखरखाव उत्पाद M.MOWBRAY DELICATE CREAM कीमत: लगभग 1,320 येन\nयह क्रीम पोषण, नमी और लचीलापन प्रभाव प्रदान करती है। यह चमक नहीं देती है, लेकिन ऐसे चमड़े के लिए उपयुक्त है जिसे बहुत अधिक नमी और हाइड्रेशन की आवश्यकता होती है। इसकी गंध अप्रिय नहीं है, लेकिन थोड़ी सी गंध होती है। क्योंकि यह रंगहीन है, मुझे लगता है कि इसकी बहुमुखी प्रतिभा बहुत अधिक है। क्योंकि यह एक हल्की क्रीम है, अन्य क्रीमों की तुलना में थोड़ा अधिक उपयोग करना बेहतर हो सकता है।\nCollonil 1909 Supreme Creme de Luxe कीमत: लगभग 1,777 येन\nएक प्रसिद्ध, मानक और बहुमुखी क्रीम जो आसानी से दाग नहीं छोड़ती है। यह एक ऐसी क्रीम है जो चमड़े के रंग को बहाल करती है और इसे नम रखती है। इससे थोड़ी सी चमक आती है। सफेद रंग की होने के कारण, इससे पानी विकर्षक प्रभाव की भी उम्मीद की जा सकती है।\nM.MOWBRAY SHOE CREAM (काला) कीमत: लगभग 1,000 येन\nजूतों के लिए क्रीम। इसमें मोम, तेल और कार्बनिक विलायक होते हैं। यह चमड़े के रंग को बहाल करती है और चमक प्रदान करती है। काले रंग की होने के कारण, यह काले चमड़े पर लागू होती है। मैं इसे अपने सूट के जूतों के लिए उपयोग करता हूं।\nM.MOWBRAY STAIN REMOVER कीमत: लगभग 700 येन\nयह वह चीज है जो मुझे ब्रश खरीदने पर साथ मिली थी। जूतों के लिए पानी आधारित क्लीनर। यह चमड़े की गंदगी हटाता है। एक कपड़े को इसमें अच्छी तरह भिगोकर और चमड़े पर धीरे से रगड़कर गंदगी हटा दी जाती है।\n","date":"2024-10-30T00:31:46+09:00","image":"http://kenji.blog/p/%E9%9D%A9%E8%A3%BD%E5%93%81%E3%81%AE%E3%83%A1%E3%83%B3%E3%83%86%E3%83%8A%E3%83%B3%E3%82%B9/img_hu3ddba03af9cef883a82321d0a762e708_211817_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/leather-products-maintenance/","title":"चमड़े के उत्पादों का रखरखाव"},{"content":"नमस्ते! आज की कहानी है \u0026ldquo;हैनलॉन का रेज़र\u0026rdquo; के बारे में आज मैं एक थोड़े अजीब नाम वाले सोचने के तरीके के बारे में लिखना चाहूंगा जिसे \u0026ldquo;हैनलॉन का रेज़र\u0026rdquo; कहा जाता है। सिर्फ नाम सुनकर आप सोच सकते हैं, \u0026ldquo;क्या यह कुछ डरावना है\u0026hellip;?\u0026rdquo;, लेकिन वास्तव में यह एक बहुत ही परिचित और दयालु दृष्टिकोण देने वाला विचार है।\nक्या आपने कभी सोचा है, \u0026ldquo;शायद वह व्यक्ति मुझे पसंद नहीं करता\u0026hellip;\u0026rdquo;? उदाहरण के लिए, क्या आपके साथ कभी ऐसा हुआ है?\nव्हाट्सएप पर रिप्लाई देर से आना आँखें मिलने पर भी नमस्ते न करना कोई काम बोलने पर उसे नज़रअंदाज़ कर देना ऐसे समय में, आपको चिंता होने लगती है, \u0026ldquo;क्या वे मुझसे नफरत करते हैं?\u0026rdquo; मेरे साथ भी ऐसा अक्सर होता है। और मैं बेवजह उदास हो जाता हूँ।\nहैनलॉन का रेज़र क्या है? यहीं पर \u0026ldquo;हैनलॉन का रेज़र\u0026rdquo; आता है।\nयह शब्द मूल रूप से अंग्रेजी का \u0026ldquo;Hanlon\u0026rsquo;s Razor\u0026rdquo; है। इसका अर्थ मोटे तौर पर यह है:\n\u0026ldquo;कभी भी उस चीज़ को दुर्भावना का परिणाम न समझें जिसे मूर्खता द्वारा पर्याप्त रूप से समझाया जा सकता हो।\u0026rdquo;\n\u0026hellip;यह कहने का थोड़ा कठोर तरीका है, है ना? इसे थोड़ा और कोमलता से कहें तो:\n\u0026ldquo;भले ही ऐसा लगे कि सामने वाला व्यक्ति आपके साथ बुरा व्यवहार कर रहा है, हो सकता है कि यह सिर्फ उनकी असावधानी या लापरवाही हो।\u0026rdquo;\nयह विचार है।\nयह किसने कहा? रॉबर्ट जे. हैनलॉन कौन हैं? कहा जाता है कि यह शब्द पहली बार 1980 में प्रकाशित पुस्तक \u0026ldquo;Murphy\u0026rsquo;s Law Book Two\u0026rdquo; में सामने आया था।\nलेखकों में से एक, रॉबर्ट जे. हैनलॉन , द्वारा प्रस्तुत विचार का उपयोग ठीक वैसे ही किया गया था, और इसे \u0026ldquo;हैनलॉन का रेज़र\u0026rdquo; नाम दिया गया।\nवैसे, इस \u0026ldquo;रेज़र\u0026rdquo; (उस्तरा) का उपयोग एक दार्शनिक उपकरण के अर्थ में किया जाता है जिसका अर्थ है \u0026ldquo;अनावश्यक चीजों को हटाना और सरलता से सोचना\u0026rdquo;, और यह ओकाम के रेज़र आदि के साथ विचारों को व्यवस्थित करने के लिए इस्तेमाल किया जाने वाला एक मुहावरा है।\nयह सोचना कि \u0026ldquo;कोई बुरी नीयत थी\u0026rdquo; आपको थका देता है उदाहरण के लिए, जब कार्यस्थल पर आपके ईमेल को अनदेखा कर दिया जाता है।\nयदि आप सोचते हैं, \u0026ldquo;वे मुझे जवाब क्यों नहीं दे रहे हैं? क्या वे मुझसे नफरत करते हैं?\u0026rdquo;, तो आप और अधिक नकारात्मक होते चले जाते हैं।\nलेकिन, ध्यान से सोचें तो:\nउन्होंने शायद इसे नहीं देखा उन्होंने जवाब तो लिखा था लेकिन भेजना भूल गए फ़ोन का नोटिफिकेशन दूसरे नोटिफिकेशन्स में दब गया ऐसे कारण आश्चर्यजनक रूप से आम हैं। और हम खुद भी ऐसी गलतियां करते हैं।\nयह अजीब बात है कि हम अपनी गलतियों के प्रति सहिष्णु होते हैं लेकिन दूसरों के प्रति सख्त होते हैं उदाहरण के लिए, जब हम किसी दोस्त के संदेश का जवाब देना भूल जाते हैं।\nहम बिना किसी दुर्भावना के जवाब देते हैं: \u0026ldquo;अरे, माफ़ करना! मैंने नोटिफिकेशन नहीं देखा था~\u0026quot;।\nलेकिन जब कोई दूसरा हमारे साथ ऐसा करता है, तो हम सोचते हैं: \u0026ldquo;मुझे नज़रअंदाज़ कर दिया गया\u0026rdquo;।\nयह बहुत आम बात है। लोग अपनी परिस्थितियों को तो बहुत अच्छी तरह समझते हैं, लेकिन दूसरों की परिस्थितियों को समझना मुश्किल होता है।\nयह मानना ​​कि \u0026ldquo;दुर्भावना है\u0026rdquo; वास्तव में हमारा ही नुकसान है जब कोई कुछ करता है, यदि आप मान लेते हैं कि \u0026ldquo;उसकी बुरी नीयत है\u0026rdquo;, तो आप उस व्यक्ति को अपने दिमाग में दुश्मन बना लेते हैं।\nलेकिन वास्तव में, वे शायद थोड़े अनाड़ी हो सकते हैं या उनके पास अन्य कामों का बोझ हो सकता है।\nबेशक, कुछ लोग सच में बहुत अशिष्ट होते हैं, और अगर आपके साथ बुरा व्यवहार किया जाता है तो आहत होना स्वाभाविक है।\nलेकिन, यह न मानना कि \u0026ldquo;यह निश्चित रूप से दुर्भावना है\u0026rdquo; आपके अपने मन को थोड़ा हल्का कर देता है।\nहालांकि, इसका मतलब यह नहीं है कि आपको सब कुछ सहना चाहिए मैं नहीं चाहता कि आप यहां गलत समझें: मैं यह नहीं कह रहा हूं कि \u0026ldquo;यह सब सिर्फ आपकी अति-चिंता है।\u0026rdquo;\nजब आपके साथ कुछ बुरा होता है, तो यह सोचना बिल्कुल ठीक है, \u0026ldquo;वह बहुत बुरा था।\u0026rdquo;\nहालाँकि, यह मान लेने के बजाय कि \u0026ldquo;उस व्यक्ति का स्वभाव खराब है\u0026rdquo; या \u0026ldquo;उसने जानबूझकर मुझे ठेस पहुँचाने की कोशिश की\u0026rdquo;,\nमेरा प्रस्ताव यह है कि थोड़ा लचीलापन रखें और सोचें, \u0026ldquo;शायद उनकी कोई मजबूरी रही होगी।\u0026rdquo;\nइसलिए: चीजों को थोड़ी सी दयालुता के साथ देखने से आपकी दुनिया बदल सकती है मेरा मानना ​​है कि हैनलॉन का रेज़र \u0026ldquo;दूसरों के प्रति दयालु होने\u0026rdquo; के बारे में कम है और \u0026ldquo;अपने दिल की रक्षा करने का एक तरीका\u0026rdquo; अधिक है।\nजब आप लोगों के कार्यों में दुर्भावना महसूस करते हैं, तो आपकी अपनी भावनाएं भी तनावग्रस्त हो जाती हैं।\nलेकिन, यदि आप सोच सकें, \u0026ldquo;शायद यह सिर्फ एक गलती थी, या उनके पास समय नहीं था\u0026rdquo;, तो आप थोड़ा बेहतर महसूस करेंगे।\nयह सोचने का एक ऐसा तरीका है जिसका उपयोग आप अपने भले के लिए कर सकते हैं।\nअंत में: कृपया अपने अनुभव भी साझा करें इसे पढ़ने के लिए आपका बहुत-बहुत धन्यवाद।\nयदि आपके पास ऐसी कोई कहानी है जब \u0026ldquo;मुझे ऐसे समय में बुरा लगा था~\u0026rdquo;, तो कृपया मुझे बताएं।\nसिर्फ अपने अनुभवों को शब्दों में बयां करने से ही मन को थोड़ी शांति मिल सकती है, है ना?\nफिर मिलेंगे!\n","date":"2024-09-24T18:14:34+09:00","image":"http://kenji.blog/p/%E3%83%8F%E3%83%B3%E3%83%AD%E3%83%B3%E3%81%AE%E5%89%83%E5%88%80/img_hu0c32762ee7cb281fb24d789425dae55e_82924_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/hanlons-razor/","title":"हैनलॉन का रेज़र"},{"content":"कंप्यूटर का बुनियादी ज्ञान यह पृष्ठ समझाता है कि कंप्यूटर क्या है।\nकंप्यूटर की परिभाषा कंप्यूटर एक मशीन है जिसमें निम्नलिखित 5 उपकरण होते हैं:\nइनपुट डिवाइस आउटपुट डिवाइस स्टोरेज डिवाइस कंट्रोल यूनिट अरिथमेटिक लॉजिक यूनिट संक्षेप में, कंप्यूटर एक ऐसी मशीन है जो दिए गए इनपुट के लिए विशिष्ट प्रोसेसिंग करती है और परिणाम को आउटपुट के रूप में देती है। यह इनपुट किए गए डेटा को स्टोर कर सकता है, ऑपरेशन कर सकता है और आउटपुट दे सकता है। कंट्रोल का कार्य उपरोक्त 4 उपकरणों को नियंत्रित करना है।\nकंप्यूटर चलाने के लिए क्या चाहिए कंप्यूटर चलाने के लिए उपकरणों (हार्डवेयर) के अलावा प्रोग्राम (सॉफ्टवेयर) की भी आवश्यकता होती है।\nप्रोग्राम में, हम कंप्यूटर को निर्देश देते हैं कि उसे क्या प्रोसेसिंग करनी है। प्रोग्राम उस प्रारूप में लिखे जाते हैं जिसे कंप्यूटर समझ सके।\nप्रोग्राम का एक उदाहरण नीचे दिया गया है: 1 से इनपुट किए गए पूर्णांक तक का योग निकालने का प्रोग्राम\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 #include \u0026lt;iostream\u0026gt; using namespace std; int main() { // आवश्यक मेमोरी स्पेस का आवंटन int n, sum = 0; // आउटपुट cout \u0026lt;\u0026lt; \u0026#34;कृपया एक पूर्णांक दर्ज करें: \u0026#34;; // इनपुट cin \u0026gt;\u0026gt; n; // ऑपरेशन for (int i = 1; i \u0026lt;= n; i++) { // ऑपरेशन sum += i; } // आउटपुट cout \u0026lt;\u0026lt; \u0026#34;1 से \u0026#34; \u0026lt;\u0026lt; n \u0026lt;\u0026lt; \u0026#34; तक का योग \u0026#34; \u0026lt;\u0026lt; sum \u0026lt;\u0026lt; \u0026#34; है।\u0026#34; \u0026lt;\u0026lt; endl; // समाप्त return 0; } प्रोग्राम को कंपाइलर द्वारा मशीन कोड में परिवर्तित किया जाता है, जिससे यह ऐसे प्रारूप में बदल जाता है जिसे कंप्यूटर निष्पादित कर सके।\n","date":"2024-09-19T01:10:20+09:00","image":"http://kenji.blog/p/%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E3%81%AE%E5%9F%BA%E6%9C%AC%E7%9F%A5%E8%AD%98/img_hubc9c51905d797e9d57f0ff169cf73b36_367819_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E3%81%AE%E5%9F%BA%E6%9C%AC%E7%9F%A5%E8%AD%98/","title":"कंप्यूटर का बुनियादी ज्ञान"},{"content":"अनुशंसित iOS ऐप्स X Instagram facebook youtube TikTok Microsoft Edge Firefox Google Chrome ChatGPT LINE Microsoft Teams Notion Goodnotes 6 TeamViewer DropBox GitHub Amazon PayPay WolframAlpha Mercari ","date":"2024-09-18T23:31:20+09:00","image":"http://kenji.blog/p/%E3%81%8A%E3%81%99%E3%81%99%E3%82%81ios%E3%82%A2%E3%83%97%E3%83%AA/img_huad2df38b51218b64bee99f031553dd91_79847_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/%E0%A4%85%E0%A4%A8%E0%A5%81%E0%A4%B6%E0%A4%82%E0%A4%B8%E0%A4%BF%E0%A4%A4-ios-%E0%A4%90%E0%A4%AA%E0%A5%8D%E0%A4%B8/","title":"अनुशंसित iOS ऐप्स"},{"content":"एक बूढ़े जोड़े, एक गधे और हमारी \u0026ldquo;किसकी सुनें\u0026rdquo; की समस्या नमस्ते!\nआज मैं एक ऐसी बात पर चर्चा करना चाहता हूँ, जिसने मुझे \u0026ldquo;एक बूढ़े जोड़े और एक गधे की कहानी\u0026rdquo; सुनने के बाद सोचने पर मजबूर कर दिया।\nमुझे यकीन है कि आप में से कई लोगों ने इसे सुना होगा। यह उन प्रसिद्ध दंतकथाओं में से एक है।\n\u0026ldquo;एक बूढ़े जोड़े और एक गधे की कहानी\u0026rdquo; क्या है? बहुत समय पहले, एक बूढ़ा जोड़ा और एक गधा था।\nशुरुआत में, बूढ़ा आदमी गधे पर सवार था और उसकी पत्नी पैदल चल रही थी। तभी वहाँ से गुजरने वाले एक व्यक्ति ने कहा:\n\u0026ldquo;कैसा आदमी है, अपनी बूढ़ी पत्नी को पैदल चला रहा है और खुद सवारी कर रहा है!\u0026rdquo;\nयह सुनकर बूढ़े जोड़े ने फैसला किया कि पत्नी को गधे पर बैठना चाहिए। फिर किसी और ने कहा:\n\u0026ldquo;यह कितना अपमानजनक है कि एक महिला गधे पर सवारी कर रही है और आदमी पैदल चल रहा है!\u0026rdquo;\nतो, उन्होंने फैसला किया कि दोनों को गधे पर बैठना चाहिए। फिर उन्होंने सुना:\n\u0026ldquo;बेचारा गधा, दो लोगों का भार बहुत भारी है!\u0026rdquo;\nअगर ऐसा है, तो दोनों गधे से उतर गए और पैदल चलने लगे। लेकिन फिर\u0026hellip;\n\u0026ldquo;जब तुम्हारे पास गधा है तो कोई सवारी क्यों नहीं कर रहा है?\u0026rdquo;\nअंत में, बूढ़ा जोड़ा पूरी तरह से हैरान और परेशान रह गया।\n\u0026ldquo;सबकी राय सुनना\u0026rdquo; सही तर्क है, लेकिन\u0026hellip; इस कहानी को अक्सर एक सबक के रूप में लिया जाता है: \u0026ldquo;अगर आप दूसरों की बातों की बहुत अधिक परवाह करेंगे, तो इसका कोई अंत नहीं होगा।\u0026rdquo;\nलेकिन वास्तविकता इतनी सरल नहीं है।\nऐसे कई लोग हैं जो कहते हैं: \u0026ldquo;दूसरों की बातों की परवाह मत करो!\u0026rdquo;\nहालांकि, सब कुछ अनदेखा करना थोड़ा मुश्किल है। उदाहरण के लिए, सोशल मीडिया पर कुछ पोस्ट करते समय। या यह सोचते समय कि कंपनी की पार्टी में क्या बात करें। आप अनिवार्य रूप से किसी की प्रतिक्रिया की परवाह करते हैं।\nऐसा इसलिए है क्योंकि \u0026ldquo;दूसरों की राय\u0026rdquo; अक्सर हमारी सुरक्षा और प्रतिष्ठा से जुड़ी होती है।\nफिर भी, बहुत अधिक प्रभावित होने से जीवन कठिन हो जाता है मुझे लगता है कि शुरुआत में, यह जोड़ा बस सोच रहा था \u0026ldquo;हमें क्या करना चाहिए?\u0026rdquo;\nलेकिन वे चाहे जो भी करें, कोई न कोई शिकायत करेगा ही।\nऔर फिर वे चक्कर में पड़ गए: \u0026ldquo;तो चलो ऐसे करते हैं\u0026rdquo;, \u0026ldquo;शायद यह बेहतर होगा?\u0026rdquo;, और इससे पहले कि वे समझ पाते, वे यह भूल गए कि वे वास्तव में क्या करना चाहते थे।\nयह कुछ ऐसा है जो हमारे दैनिक जीवन में भी बहुत होता है।\nबॉस की उम्मीदें, माता-पिता के शब्द, सोशल मीडिया पर \u0026ldquo;लाइक्स\u0026rdquo; की संख्या। इन चीजों के साथ तालमेल बिठाते हुए, क्या आपको कभी ऐसा लगता है कि आप भूल जाते हैं कि आप वास्तव में क्या चाहते हैं?\n\u0026ldquo;किसकी सुनें\u0026rdquo; यह चुनना महत्वपूर्ण है तो, हमें क्या करना चाहिए? इसका कोई एक सही उत्तर नहीं है।\nहालांकि, \u0026ldquo;हर किसी की राय का पालन करना\u0026rdquo; यथार्थ रूप से असंभव है।\nयही कारण है कि मेरा मानना है कि अपने लिए यह चुनना महत्वपूर्ण है कि \u0026ldquo;किसकी सुनें\u0026rdquo;।\nउदाहरण के लिए, \u0026ldquo;केवल उन लोगों की सलाह सुनें जिनका आप सम्मान करते हैं\u0026rdquo; या \u0026ldquo;आपकी पिछली स्थिति क्या स्वीकार करेगी, इसे अपना मानक बनाएं\u0026rdquo;।\nयदि आपके पास केवल एक मानक है जिस पर आप विश्वास कर सकते हैं कि \u0026ldquo;मैं इस पर विश्वास करना चाहता हूँ,\u0026rdquo; तो दुनिया का शोर थोड़ा कम हो जाएगा।\nइसलिए, जब आप थोड़ा थका हुआ महसूस करें शायद \u0026ldquo;एक बूढ़े जोड़े और एक गधे\u0026rdquo; की कहानी को याद करना अच्छा हो।\nदूसरों की नज़रों की परवाह करना स्वाभाविक है।\nलेकिन अगर आप हर किसी को खुश करने की कोशिश करेंगे, तो आप भी गधे से उतर जाएंगे।\nकभी-कभी, यह सोचना कि \u0026ldquo;शायद मेरी अपनी भावनाओं को प्राथमिकता देना ठीक है\u0026rdquo; आपके दिल को थोड़ा हल्का कर सकता है।\n","date":"2024-09-18T00:56:59+09:00","image":"http://kenji.blog/p/%E8%80%81%E5%A4%AB%E5%A9%A6%E3%81%A8%E3%83%AD%E3%83%90%E3%81%AE%E8%A9%B1/img_hu4e12b653e0413f37819b2904ce683e39_500631_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/%E0%A4%8F%E0%A4%95-%E0%A4%AC%E0%A5%82%E0%A4%A2%E0%A4%BC%E0%A5%87-%E0%A4%9C%E0%A5%8B%E0%A4%A1%E0%A4%BC%E0%A5%87-%E0%A4%94%E0%A4%B0-%E0%A4%8F%E0%A4%95-%E0%A4%97%E0%A4%A7%E0%A5%87-%E0%A4%95%E0%A5%80-%E0%A4%95%E0%A4%B9%E0%A4%BE%E0%A4%A8%E0%A5%80/","title":"एक बूढ़े जोड़े और एक गधे की कहानी"},{"content":"नीला एलईडी बनाना लगभग असंभव क्यों था एक अंग्रेजी वृत्तचित्र का परिचय। बहुत दिलचस्प। यह एक मजबूत प्रभाव है कि जिस जापानी व्यक्ति ने इस बेहद कठिन समस्या को हल किया, उसे शुरुआत में जापान में ज्यादा सराहना नहीं मिली।\n","date":"2024-09-15T00:43:52+09:00","image":"http://kenji.blog/p/%E3%81%AA%E3%81%9C%E9%9D%92%E8%89%B2led%E3%82%92%E4%BD%9C%E3%82%8B%E3%81%93%E3%81%A8%E3%81%8C%E3%81%BB%E3%81%BC%E4%B8%8D%E5%8F%AF%E8%83%BD%E3%81%A0%E3%81%A3%E3%81%9F%E3%81%AE%E3%81%8B/img_hu003acf083dbe465265af012766f30af7_1201686_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/%E3%81%AA%E3%81%9C%E9%9D%92%E8%89%B2led%E3%82%92%E4%BD%9C%E3%82%8B%E3%81%93%E3%81%A8%E3%81%8C%E3%81%BB%E3%81%BC%E4%B8%8D%E5%8F%AF%E8%83%BD%E3%81%A0%E3%81%A3%E3%81%9F%E3%81%AE%E3%81%8B/","title":"नीला एलईडी बनाना लगभग असंभव क्यों था"},{"content":"VSCode में Qt डेवलपमेंट शुरू करना: Qt Extension Pack कैसे इंस्टॉल करें नमस्ते, मैं Kenji हूँ। इस बार मैं \u0026ldquo;Visual Studio Code (इसके बाद VSCode) में Qt डेवलपमेंट वातावरण को कैसे सेट करें\u0026rdquo; का परिचय दूंगा।\nहाल ही में, आधिकारिक Qt Creator के अलावा, हल्के और अत्यधिक एक्सटेंसिबल VSCode का उपयोग करके Qt ऐप्स विकसित करने के इच्छुक लोगों की संख्या बढ़ रही है। ऐसे लोगों के लिए, मैं \u0026ldquo;Qt Extension Pack\u0026rdquo; की सलाह देता हूँ। बस इस एक्सटेंशन पैक को इंस्टॉल करने से आपको Qt से संबंधित सभी प्रमुख एक्सटेंशन एक साथ मिल जाएंगे।\nलक्षित दर्शक जो लोग Qt का उपयोग करके GUI ऐप डेवलपमेंट शुरू करना चाहते हैं जो लोग Qt Creator के बजाय VSCode में डेवलपमेंट करना चाहते हैं जिन लोगों को एक-एक करके एक्सटेंशन खोजना मुश्किल लगता है पूर्वापेक्षाएँ VSCode इंस्टॉल होना चाहिए (आप इसे आधिकारिक वेबसाइट से मुफ्त में डाउनलोड कर सकते हैं) Qt लाइब्रेरी स्वयं इंस्टॉल होनी चाहिए (Qt की आधिकारिक वेबसाइट) Qt Extension Pack क्या है? Qt Extension Pack VSCode के लिए एक एक्सटेंशन पैक है। इसे इंस्टॉल करने से, निम्नलिखित सुविधाएँ स्वचालित रूप से जुड़ जाती हैं:\n.ui फ़ाइलों के लिए समर्थन (Qt Designer) .pro और .qrc फ़ाइलों के लिए सिंटैक्स हाइलाइटिंग Qt के लिए C++ कोड पूर्णता, बिल्ड और डिबग समर्थन Qt Resource Browser (संसाधन संदर्भ) इंस्टॉलेशन के चरण 1. VSCode खोलें सबसे पहले, VSCode प्रारंभ करें।\n2. एक्सटेंशन व्यू खोलें \u0026ldquo;एक्सटेंशन\u0026rdquo; प्रदर्शित करने के लिए बाईं ओर एक्टिविटी बार (वर्गाकार ब्लॉक आइकन) पर क्लिक करें।\nया आप शॉर्टकट के रूप में Ctrl + Shift + X दबा सकते हैं।\n3. \u0026ldquo;Qt Extension Pack\u0026rdquo; खोजें सर्च बार में निम्नलिखित कीवर्ड दर्ज करें:\n1 Qt Extension Pack 4. इंस्टॉल बटन पर क्लिक करें जब लक्षित पैक प्रदर्शित हो जाए, तो \u0026ldquo;इंस्टॉल\u0026rdquo; बटन पर क्लिक करें। इससे निम्नलिखित जैसे कई एक्सटेंशन एक ही बार में इंस्टॉल हो जाएंगे:\nQt Language Support QML Support Qt Designer Integration CMake Tools (CMake संगत Qt डेवलपमेंट के लिए आवश्यक) प्रोजेक्ट सेटिंग पूरक (CMake + Qt उदाहरण) यदि आप CMake-आधारित Qt का उपयोग करते हैं, तो निम्नलिखित एक्सटेंशन के साथ संयोजन की अनुशंसा की जाती है:\nCMake Tools CMake Language Support इसके अलावा, यदि आप CMakeLists.txt में निम्नलिखित विवरण शामिल करते हैं, तो Qt के साथ एकीकरण सुचारू होगा:\n1 2 find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(MyApp PRIVATE Qt6::Widgets) बोनस: मैं .ui फ़ाइलें कैसे खोलूं? .ui फ़ाइलों को Qt Designer में संपादित किया जा सकता है। VSCode में, आप .ui फ़ाइल पर राइट-क्लिक करने में सक्षम होंगे → Open with Qt Designer चुनें (पर्यावरण चर PATH में Qt Designer शामिल होना चाहिए)।\nसारांश चरण सामग्री 1 VSCode प्रारंभ करें 2 एक्सटेंशन पैनल खोलें 3 \u0026ldquo;Qt Extension Pack\u0026rdquo; खोजें 4 इंस्टॉल बटन पर क्लिक करें VSCode में Qt वातावरण बनाना पहले की तुलना में बहुत आसान हो गया है। इसमें Qt Creator के विकल्प के रूप में पर्याप्त सुविधाएँ हैं और उन लोगों के लिए अनुशंसित है जो हल्के ढंग से काम करना चाहते हैं।\nअनुशंसित लिंक संग्रह Qt आधिकारिक Qt Extension Pack - Visual Studio Marketplace VSCode आधिकारिक CMake Tools एक्सटेंशन अंत में भविष्य में, मैं इस वातावरण में Qt के UI टूल और QML का उपयोग करके विकास को आगे बढ़ाने की योजना बना रहा हूँ। अगली बार, मैं VSCode से Qt Hello World ऐप कैसे बनाएं और चलाएं के बारे में बताऊंगा।\nफिर मिलेंगे!\n","date":"2024-09-13T00:53:53+09:00","image":"http://kenji.blog/p/visual-studio-code-%E3%81%AB-qt-extension-pack-%E3%82%92%E5%85%A5%E3%82%8C%E3%81%A6%E3%81%BF%E3%81%9F/img_1_hu3662f535d644da02b1919ea56b7b16c2_319254_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/visual-studio-code-%E3%81%AB-qt-extension-pack-%E3%82%92%E5%85%A5%E3%82%8C%E3%81%A6%E3%81%BF%E3%81%9F/","title":"मैंने Visual Studio Code में Qt Extension Pack इंस्टॉल करने का प्रयास किया"},{"content":"कैसे जांचें कि आपका iPhone SIM लॉक है या नहीं होम स्क्रीन \u0026gt; सेटिंग्स \u0026gt; सामान्य \u0026gt; परिचय \u0026gt; नेटवर्क प्रदाता लॉक\nजांचें कि क्या यह \u0026ldquo;कोई SIM प्रतिबंध नहीं\u0026rdquo; दिखाता है या कोई लॉक है।\n","date":"2024-09-12T00:32:11+09:00","image":"http://kenji.blog/p/iphone%E3%81%ABsim%E3%83%AD%E3%83%83%E3%82%AF%E3%81%8C%E3%81%8B%E3%81%8B%E3%81%A3%E3%81%A6%E3%81%84%E3%82%8B%E3%81%8B%E7%A2%BA%E8%AA%8D%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/img_huadfe7e53f677430d2790fc209a2a5361_107562_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/iphone%E3%81%ABsim%E3%83%AD%E3%83%83%E3%82%AF%E3%81%8C%E3%81%8B%E3%81%8B%E3%81%A3%E3%81%A6%E3%81%84%E3%82%8B%E3%81%8B%E7%A2%BA%E8%AA%8D%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/","title":"कैसे जांचें कि आपका iPhone SIM लॉक है या नहीं"},{"content":"अवलोकन 1 क्लास P, नियतात्मक ट्यूरिंग मशीन (deterministic Turing machine) में बहुपद समय (polynomial time) में तय की जा सकने वाली समस्याओं का वर्ग है, और क्लास NP उन समस्याओं का वर्ग है जिसमें, यदि हाँ (Yes) होने का प्रमाण (जिसे Witness कहा जाता है) दिया जाता है, तो बहुपद समय में Witness की वैधता को जाँचा जा सकता है (इसे सत्यापन कहा जाता है)। चूँकि बहुपद समय में तय की जा सकने वाली समस्याओं को बहुपद समय में सत्यापित किया जा सकता है, यह स्पष्ट है कि P⊆NP, लेकिन यह स्पष्ट नहीं है कि P, NP का उचित उपसमुच्चय (proper subset) है या नहीं। अभी तक कोई प्रमाण नहीं है, लेकिन कई शोधकर्ताओं का मानना है कि P≠NP है। और यह अनुमान कि यह क्लास P और क्लास NP समान नहीं हैं, \u0026#34;P≠NP अनुमान\u0026#34; कहलाता है। संदर्भ साइट : https://daigakudenki.com/np-hard/\n","date":"2024-09-11T02:22:39+09:00","permalink":"http://kenji.blog/hi/p/pnp%E4%BA%88%E6%83%B3/","title":"P≠NP अनुमान"},{"content":"मुझे फिर से Microsoft MVP (2024-2025) से सम्मानित किया गया है नमस्ते, मैं kenji हूँ। मुझे यह बताते हुए खुशी हो रही है कि मुझे इस साल भी Microsoft MVP (Most Valuable Professional) से सम्मानित किया गया है। यह 8वीं बार है जब मुझे यह पुरस्कार मिला है।\nचूंकि मौका मिला है, इसलिए मैं थोड़ा इस बारे में लिखना चाहूंगा कि MVP क्या है।\nMicrosoft MVP क्या है? भले ही इसे MVP कहा जाता है, लेकिन हम खेल में सबसे मूल्यवान खिलाड़ी के बारे में बात नहीं कर रहे हैं (हालांकि कभी-कभी मुझसे यह पूछा जाता है\u0026hellip;)। Microsoft MVP (Most Valuable Professional) उन लोगों को दी जाने वाली एक उपाधि है जो समुदाय के साथ Microsoft प्रौद्योगिकियों के बारे में अपने ज्ञान और अनुभव को सक्रिय रूप से साझा करते हैं।\nतकनीकी ब्लॉग लिखना, प्रश्नोत्तर वेबसाइटों पर प्रश्नों के उत्तर देना, नमूना कोड प्रकाशित करना, या इवेंट्स में प्रस्तुतियाँ देना। \u0026ldquo;आप जो जानते हैं उसे इस तरह से साझा करना जो दूसरों के लिए उपयोगी हो\u0026rdquo; —— इस तरह की निरंतर गतिविधियों का मूल्यांकन किया जाता है।\nपुरस्कार विजेता दुनिया भर में हैं, लेकिन हर साल संख्या सीमित होती है, और फिर से पुरस्कार प्राप्त करना आसान नहीं है। ऐसी परिस्थितियों में, मुझे फिर से मान्यता मिलने के लिए मैं वास्तव में आभारी हूँ।\nपुरस्कार का कारण इस बार का पुरस्कार \u0026ldquo;Developer Technologies\u0026rdquo; श्रेणी में एक नवीनीकरण है। पिछले एक साल में, मैं इस तरह की गतिविधियों में शामिल रहा हूँ:\nMicrosoft से संबंधित प्रौद्योगिकियों के बारे में ब्लॉग लेख लिखना तकनीकी प्रश्नोत्तर वेबसाइटों पर उत्तर पोस्ट करना GitHub पर नमूना कोड प्रकाशित करना अध्ययन समूहों और तकनीकी आयोजनों में बोलना आदि इनमें से कोई भी असाधारण गतिविधि नहीं है, लेकिन मैंने हमेशा \u0026ldquo;मैंने जो प्रयास किया और जो काम किया\u0026rdquo; और \u0026ldquo;जहाँ मुझे परेशानी हुई लेकिन मैं हल कर सका\u0026rdquo; को इस तरह साझा करने का प्रयास किया है जो थोड़ा उपयोगी हो।\nमुझे सच में खुशी है कि इसने इस तरह का रूप ले लिया है।\nभविष्य को देखते हुए तकनीकी दुनिया बहुत तेजी से आगे बढ़ती है, सिर्फ इसके साथ बने रहने की कोशिश करना भी मुश्किल है। लेकिन इसके कारण, मेरा मानना है कि \u0026ldquo;वास्तविक जानकारी\u0026rdquo; साझा करना बहुत मायने रखता है - जैसे व्यवहार में इसका उपयोग करना कैसा था और क्या समझना मुश्किल था।\nमैं अपने स्वयं के गति से जारी रखने की योजना बना रहा हूँ, बिना खुद पर अधिक दबाव डाले। मुझे खुशी होगी अगर मैं ऐसी जानकारी प्रदान करना जारी रख सकूं जिससे किसी को लगे, \u0026ldquo;आह, इससे मदद मिली\u0026rdquo;।\nआपके निरंतर समर्थन के लिए बहुत-बहुत धन्यवाद।\n","date":"2024-09-03T21:25:20+09:00","image":"http://kenji.blog/p/microsoft-mvp2024-2025%E3%82%92%E5%86%8D%E5%8F%97%E8%B3%9E%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F/img_hu90bf51ced9d60993f005bc037644a192_1013423_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/mujhe-phir-se-microsoft-mvp-2024-2025-se-sammanit-kiya-gaya-hai/","title":"मुझे फिर से Microsoft MVP (2024-2025) से सम्मानित किया गया है"},{"content":"yt-dlp क्या है yt-dlp YouTube वीडियो डाउनलोड करने के लिए एक कमांड-लाइन टूल है। वीडियो डाउनलोड करने के अलावा, आप इसे mp3 फ़ॉर्मेट में संगीत फ़ाइल के रूप में भी डाउनलोड कर सकते हैं।\nडाउनलोड और इंस्टॉलेशन yt-dlp रिलीज़ पेज से नवीनतम yt-dlp.exe डाउनलोड करें। yt-dlp.exe को किसी भी फ़ोल्डर में रखें। yt-dlp.exe के फ़ोल्डर पथ को पर्यावरण चर Path में जोड़ें। उपयोग कैसे करें कमांड प्रॉम्प्ट में yt-dlp.exe चलाएँ और YouTube वीडियो का URL निर्दिष्ट करें।\n1 yt-dlp.exe \u0026#34;https://www.youtube.com/watch?v=VIDEO_ID\u0026#34; ※ आप तर्क (argument) के रूप में केवल VIDEO_ID का उपयोग भी कर सकते हैं।\nइसे mp3 संगीत फ़ाइल के रूप में डाउनलोड करने के लिए, निम्न कमांड चलाएँ:\n1 yt-dlp.exe --extract-audio --audio-format mp3 --embed-thumbnail --add-metadata \u0026#34;https://www.youtube.com/watch?v=VIDEO_ID\u0026#34; इसके साथ, वीडियो उस वर्तमान निर्देशिका में डाउनलोड हो जाएगा जहाँ कमांड निष्पादित किया गया था।\nबस इतना ही।\n","date":"2024-09-03T14:09:26+09:00","image":"http://kenji.blog/p/yt-dlp.exe-%E3%81%AB%E3%82%88%E3%82%8B-youtube-%E5%8B%95%E7%94%BB%E3%81%AE%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89%E6%96%B9%E6%B3%95/img_1_hu05024a06b03b28eb7dbfa3d8c8b493fd_22080_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/yt-dlp.exe-%E3%81%AB%E3%82%88%E3%82%8B-youtube-%E5%8B%95%E7%94%BB%E3%81%AE%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89%E6%96%B9%E6%B3%95/","title":"yt-dlp.exe से YouTube वीडियो कैसे डाउनलोड करें"},{"content":" फुटबॉल बॉल बॉय @gg211204 『वह दिन जब बॉल बॉय हीरो बन गया』 इस दिन टीम को बचाने वाले बॉल बॉय को बाद में क्लब में आमंत्रित किया गया और खिलाड़ियों के साथ भोजन किया। #トッテナム #スパーズ #モウリーニョ #ボールボーイ ♬ original sound - じょり स्टारबक्स ","date":"2024-08-25T16:24:35+09:00","image":"http://kenji.blog/p/%E3%82%B7%E3%83%A7%E3%83%BC%E3%83%88%E5%8B%95%E7%94%BB%E3%83%AA%E3%83%B3%E3%82%AF/img_hu6a40cd72b9cd9a636c4c642d7bc2c778_3354885_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/%E0%A4%B6%E0%A5%89%E0%A4%B0%E0%A5%8D%E0%A4%9F-%E0%A4%B5%E0%A5%80%E0%A4%A1%E0%A4%BF%E0%A4%AF%E0%A5%8B-%E0%A4%B2%E0%A4%BF%E0%A4%82%E0%A4%95/","title":"शॉर्ट वीडियो लिंक"},{"content":"नमस्ते!\nआज, मैं आइंस्टीन के उद्धरणों के बारे में बात करना चाहूंगा।\nक्या दुनिया आपके अच्छे कामों को महत्व नहीं देती? 1 2 3 4 5 6 दुनिया आपके द्वारा किए गए दस लाख अच्छे कामों का कभी मूल्यांकन नहीं करेगी। लेकिन वे आपके द्वारा की गई एक गलत बात की आलोचना करेंगे... लेकिन निराश न हों \u0026#34;हमेशा हर हंसी और आलोचना से ऊपर उठें। मजबूत बने रहें।\u0026#34; - अल्बर्ट आइंस्टीन ये ऐसे शब्द हैं जो कथित तौर पर आइंस्टीन द्वारा बोले गए थे। वे उस समाज की कठोरता की ओर तीखेपन से इशारा करते हैं जिसे हम हर दिन महसूस करते हैं और लोगों के मूल्यांकन में पक्षपात को भी।\nफिर भी, उठते रहें \u0026ldquo;हमेशा हर हंसी और आलोचना से ऊपर उठें। मजबूत बने रहें।\u0026rdquo;\nइन आगे के शब्दों को उपर्युक्त कठोर वास्तविकता का आइंस्टीन का उत्तर कहा जा सकता है। वे हमें आलोचना या उपहास के आगे न झुकने और खुद पर विश्वास के साथ आगे बढ़ते रहने का महत्व सिखाते हैं।\nआइंस्टीन की शिक्षाओं को दैनिक जीवन में लागू करना यह उद्धरण हमारे दैनिक जीवन से गहराई से जुड़ा हुआ है। उदाहरण के लिए, ऐसा समय हो सकता है जब काम पर आपके प्रयासों को मान्यता नहीं मिलती है, और केवल छोटी-मोटी गलतियाँ ही सामने आती हैं। इसके अलावा, सोशल मीडिया पर आपके बयानों को संदर्भ से बाहर लिया जा सकता है और उनकी आलोचना की जा सकती है।\nऐसे समय में, आइंस्टीन के इन शब्दों को याद करने का प्रयास करें। दूसरों के मूल्यांकन से खुश या दुखी होने के बजाय अपने विश्वासों को बनाए रखना महत्वपूर्ण है।\nनिष्कर्ष आइंस्टीन का यह उद्धरण हमें \u0026ldquo;दूसरों के मूल्यांकन से प्रभावित हुए बिना खुद पर विश्वास करके जीने\u0026rdquo; का महत्व सिखाता है। आइए आलोचना या उपहास के आगे झुके बिना उस रास्ते पर चलने का साहस रखें जिस पर हम विश्वास करते हैं।\nअंत में, आइंस्टीन के शब्द एक बार फिर।\n\u0026ldquo;हमेशा हर हंसी और आलोचना से ऊपर उठें। मजबूत बने रहें।\u0026rdquo;\nमुझे उम्मीद है कि ये शब्द आपके दिल में गूंजेंगे और आपको एक सकारात्मक कदम आगे बढ़ाने के लिए प्रेरित करेंगे।\n","date":"2024-08-24T18:38:47+09:00","image":"http://kenji.blog/p/%E3%82%A2%E3%82%A4%E3%83%B3%E3%82%B7%E3%83%A5%E3%82%BF%E3%82%A4%E3%83%B3%E3%81%AE%E5%90%8D%E8%A8%80/Solvay_conference_1927_hu5334df7b0e2e62905cb44adbbbde85ad_2671814_120x120_fill_q75_box_smart1.jpg","permalink":"http://kenji.blog/hi/p/%E0%A4%86%E0%A4%87%E0%A4%82%E0%A4%B8%E0%A5%8D%E0%A4%9F%E0%A5%80%E0%A4%A8-%E0%A4%95%E0%A5%87-%E0%A4%89%E0%A4%A6%E0%A5%8D%E0%A4%A7%E0%A4%B0%E0%A4%A3/","title":"आइंस्टीन के उद्धरण"},{"content":"नीचे एक सरल C कोड दिया गया है जो एक निर्दिष्ट सीमा के भीतर अभाज्य संख्याएँ (prime numbers) उत्पन्न करता है। इस उदाहरण में, हम 1 से n तक की अभाज्य संख्याओं को सूचीबद्ध करते हैं।\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 #include \u0026lt;stdio.h\u0026gt; #include \u0026lt;stdbool.h\u0026gt; bool isPrime(int num) { if (num \u0026lt;= 1) return false; if (num \u0026lt;= 3) return true; if (num % 2 == 0 || num % 3 == 0) return false; for (int i = 5; i * i \u0026lt;= num; i += 6) { if (num % i == 0 || num % (i + 2) == 0) return false; } return true; } void printPrimes(int n) { printf(\u0026#34;2 \u0026#34;); for (int i = 3; i \u0026lt;= n; i += 2) { if (isPrime(i)) { printf(\u0026#34;%d \u0026#34;, i); } } printf(\u0026#34;\\n\u0026#34;); } int main() { int n; printf(\u0026#34;अभाज्य संख्याएँ उत्पन्न करने के लिए सीमा का अधिकतम मान दर्ज करें: \u0026#34;); scanf(\u0026#34;%d\u0026#34;, \u0026amp;n); printf(\u0026#34;1 से %d तक की अभाज्य संख्याएँ निम्नलिखित हैं:\\n\u0026#34;, n); printPrimes(n); return 0; } यह कोड इस प्रकार काम करता है:\nisPrime फ़ंक्शन: यह निर्धारित करता है कि दी गई संख्या अभाज्य है या नहीं। दक्षता के लिए, यह पहले जाँचता है कि क्या यह 2 और 3 से विभाज्य है, और फिर 6 के गुणकों में जाँच के साथ आगे बढ़ता है। printPrimes फ़ंक्शन: निर्दिष्ट सीमा के भीतर अभाज्य संख्याएँ आउटपुट करता है। 2 सबसे पहले आउटपुट होता है, और फिर केवल विषम संख्याओं की जाँच की जाती है। main फ़ंक्शन: उपयोगकर्ता से सीमा का अधिकतम मान दर्ज करने के लिए कहता है, और उस सीमा के भीतर अभाज्य संख्याएँ आउटपुट करता है। यदि आप इस कोड को संकलित और चलाते हैं, तो निर्दिष्ट सीमा के भीतर अभाज्य संख्याएँ प्रदर्शित होंगी।\n","date":"2024-08-24T09:38:10+09:00","image":"http://kenji.blog/p/%E7%B4%A0%E6%95%B0%E3%82%92%E7%94%9F%E6%88%90%E3%81%99%E3%82%8Bc%E8%A8%80%E8%AA%9E%E3%82%B3%E3%83%BC%E3%83%89/img_hu31b8bd853d4750e84615619ef286e5d3_22034_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/%E0%A4%85%E0%A4%AD%E0%A4%BE%E0%A4%9C%E0%A5%8D%E0%A4%AF-%E0%A4%B8%E0%A4%82%E0%A4%96%E0%A5%8D%E0%A4%AF%E0%A4%BE%E0%A4%8F%E0%A4%81-%E0%A4%89%E0%A4%A4%E0%A5%8D%E0%A4%AA%E0%A4%A8%E0%A5%8D%E0%A4%A8-%E0%A4%95%E0%A4%B0%E0%A4%A8%E0%A5%87-%E0%A4%95%E0%A5%87-%E0%A4%B2%E0%A4%BF%E0%A4%8F-c-%E0%A4%95%E0%A5%8B%E0%A4%A1/","title":"अभाज्य संख्याएँ उत्पन्न करने के लिए C कोड"},{"content":"\nअकिको योसानो ** \u0026ldquo;तुम मत मरना\u0026rdquo; **\n―― पोर्ट आर्थर की घेराबंदी करने वाली सेना में अपने छोटे भाई के लिए विलाप\nआह, मेरे भाई, मैं तुम्हारे लिए रोती हूँ,\nतुम मत मरना,\nसबसे छोटे होने के नाते\nमाता-पिता का प्यार तुम्हारे लिए सबसे बढ़कर था,\nक्या माता-पिता ने तुम्हें हथियार पकड़ना\nऔर लोगों को मारना सिखाया था?\nक्या उन्होंने तुम्हें चौबीस साल तक इसलिए पाला\nताकि तुम लोगों को मारो और मर जाओ?\nसकाई शहर के व्यापारियों के\nएक पुराने घर के अभिमानी मुखिया के रूप में\nचूँकि तुम माता-पिता का नाम आगे बढ़ा रहे हो,\nतुम मत मरना,\nचाहे पोर्ट आर्थर का किला गिरे,\nया न गिरे, इससे क्या फर्क पड़ता है?\nशायद तुम नहीं जानते, लेकिन व्यापारियों के\nघर के नियमों में ऐसा कुछ नहीं है।\nतुम मत मरना,\nसम्राट स्वयं युद्ध में\nनहीं जाते हैं,\nलोगों को एक-दूसरे का खून बहाने,\nजानवरों के रास्ते पर मरने के लिए छोड़ना,\nऔर मरने को मनुष्य का गौरव मानना,\nचूँकि सम्राट का हृदय गहरा है,\nवे स्वाभाविक रूप से ऐसा कैसे सोच सकते हैं?\nआह, मेरे भाई, युद्ध में\nतुम मत मरना,\nहमारी माँ, जिन्होंने पिछले पतझड़ में\nहमारे पिता को खो दिया था,\nअपने दुख के बीच, दर्दनाक रूप से\nअपने बेटे को बुलाए जाने के बाद घर की रखवाली कर रही हैं,\nऔर इस शांति के महान युग में भी जिसके बारे में हम सुनते हैं,\nमाँ के सफेद बाल और भी बढ़ गए हैं।\nपर्दे के पीछे लेटकर रोने वाली\nकमजोर, युवा नई पत्नी को,\nक्या तुम भूल गए हो? क्या तुम उसके बारे में सोचते हो?\nउस युवती के दिल के बारे में सोचो\nजो दस महीने साथ रहने से पहले ही अलग हो गई,\nइस दुनिया में तुम्हारे अलावा,\nआह, वह और किस पर भरोसा कर सकती है?\nतुम मत मरना।\n","date":"2024-07-25T13:16:47+09:00","permalink":"http://kenji.blog/hi/p/tum-mat-marna/","title":"तुम मत मरना"},{"content":"\n🔹 व्यक्ति का अवलोकन योसानो अकीको (1878–1942) एक जापानी कवि, लेखक और विचारक थीं जो मीजी काल से लेकर प्रारंभिक शोवा काल तक सक्रिय थीं। वह विशेष रूप से अपने भावुक और व्यक्तिगत तंका (लघु कविता) के लिए जानी जाती हैं। उन्होंने आधुनिक जापानी साहित्य में महिलाओं की स्वतंत्रता और प्रेम की अभिव्यक्ति के लिए नए क्षितिज खोले।\nअसली नाम : योसानो (विवाह पूर्व: हो) शो\nजन्म स्थान : सकाई (सकाई शहर, ओसाका प्रान्त)\nपति : योसानो तेक्कन (कवि)\nसक्रियता का मुख्य काल : मीजी काल के अंत से लेकर प्रारंभिक शोवा काल तक\nविशेषताएं :\nमहिलाओं की रोमांटिक भावनाओं को खुलकर व्यक्त करने वाले तंका के लिए जानी जाती हैं। नारीवादी आदर्शों को अपनाया, महिलाओं की शिक्षा और स्वतंत्रता को बढ़ावा दिया। रूस-जापान युद्ध की आलोचना करते हुए शांतिवादी दृष्टिकोण भी दिखाया। साहित्यिक पत्रिका \u0026ldquo;म्योजो\u0026rdquo; (Myōjō) की मुख्य सदस्य। 🔹 प्रमुख कार्य, उनका सारांश और विशेषताएं 1. \u0026ldquo;मिदारेगमी\u0026rdquo; (उलझे बाल) (1901) अवलोकन : उनका पहला कविता संग्रह। 20 के दशक की शुरुआत में प्रकाशित, इसने जापानी साहित्यिक दुनिया में एक बड़ा प्रभाव डाला। विशेषताएं : एक महिला के दृष्टिकोण से प्रेम की भावनाओं और शारीरिक इच्छाओं को खुलकर व्यक्त किया। प्रसिद्ध कविता : बिना छुए मेरी नरम त्वचा के इस गर्म खून को, क्या तुम अकेला महसूस नहीं करते, जो मुझे नैतिकता का मार्ग पढ़ा रहे हो?\n→ तत्कालीन नैतिकता के हिसाब से साहसिक माने जाने वाले प्रेम विचारों को खुद महिलाओं के शब्दों में व्यक्त करने के कारण यह चर्चा का विषय बन गया।\n2. \u0026ldquo;किमी शिनितामो कोतो नकारे\u0026rdquo; (तुम मत मरना) (1904) प्रारूप : कविता (तंका नहीं, बल्कि मुक्त छंद कविता) सामग्री : अपने छोटे भाई को संबोधित एक युद्ध-विरोधी कविता जो रूस-जापान युद्ध में गया था। अंश : तुम मत मरना क्योंकि तुम सबसे छोटे हो माँ की आँखों से बहुत आँसू बहे तुम्हारे आस्तीन को निचोड़ते हुए\u0026hellip;\nमहत्व : ऐसे समय में जब युद्ध का महिमामंडन करने की प्रवृत्ति मजबूत थी, अपने भाई की मृत्यु से डरने वाली महिला के दृष्टिकोण से युद्ध का विरोध करना अभूतपूर्व था। 🔹 प्रभाव और मूल्यांकन महिला मुक्ति, शांतिवाद और शिक्षा के प्रसार जैसी सामाजिक रूप से उन्नत गतिविधियों को अंजाम दिया। अपने बाद के वर्षों में, उन्होंने महिला शिक्षा के लिए खुद को समर्पित किया और एक महिला विश्वविद्यालय (जैसे बंका गकुइन) की स्थापना में शामिल थीं। युद्ध-पूर्व जापान में सबसे महत्वपूर्ण महिला बुद्धिजीवियों और साहित्यकारों में से एक। 🔹 सारांश मद सामग्री नाम योसानो अकीको गतिविधि के क्षेत्र तंका, कविता, आलोचना, शिक्षा प्रमुख कार्य \u0026ldquo;मिदारेगमी\u0026rdquo;, \u0026ldquo;किमी शिनितामो कोतो नकारे\u0026rdquo; विशेषताएं प्रेम की स्वतंत्रता, महिलाओं की स्वतंत्रता, शांतिवाद की अभिव्यक्ति आधुनिक प्रभाव नारीवादी साहित्य, आधुनिक तंका का नवाचार, युद्ध-विरोधी कविता की अग्रणी ","date":"2024-07-25T13:08:36+09:00","permalink":"http://kenji.blog/hi/p/about-yosano-akiko/","title":"योसानो अकीको के बारे में"},{"content":"Mathematica का परिचय समीकरण हल करना 1 Solve[x^2 - 3 x + 2 == 0, x] आउटपुट\n1 {{x -\u0026gt; 1}, {x -\u0026gt; 2}} पूर्णांक सीमा में समीकरण का हल ढूँढना 1 Solve[x^2 - 3 x + 2 == 0 \u0026amp;\u0026amp; 0 \u0026lt;= x \u0026lt;= 2, x, Integers] आउटपुट\n1 {{x -\u0026gt; 1}, {x -\u0026gt; 2}} युगपत समीकरण हल करना 1 Solve[{x + y == 3, x - y == 1}, {x, y}] आउटपुट\n1 {{x -\u0026gt; 2, y -\u0026gt; 1}} असमानताएं हल करना 1 Reduce[x^2 - 3 x + 2 \u0026gt; 0, x] आउटपुट\n1 x \u0026lt; 1 || x \u0026gt; 2 अवकलन करना 1 D[x^2, x] आउटपुट\n1 2 x समाकलन करना 1 Integrate[x^2, x] आउटपुट\n1 x^3/3 सीमा ज्ञात करना 1 Limit[1/x, x -\u0026gt; 0] आउटपुट\n1 Infinity श्रृंखला ज्ञात करना 1 Sum[1/n^2, {n, 1, Infinity}] आउटपुट\n1 π^2/6 मैट्रिक्स बनाना 1 m = {{1, 2}, {3, 4}} मैट्रिक्स का गुणनफल ज्ञात करना 1 m . m आउटपुट\n1 {{7, 10}, {15, 22}} व्युत्क्रम मैट्रिक्स ज्ञात करना 1 Inverse[m] आउटपुट\n1 {{-2, 1}, {1.5, -0.5}} आइगेनवैल्यू और आइगेनवेक्टर ज्ञात करना 1 Eigensystem[m] आउटपुट\n1 {{5, 0}, {{1, 1}, {1, -1}}} सदिशों का बिंदु गुणनफल ज्ञात करना 1 {1, 2} . {3, 4} आउटपुट\n1 11 सदिशों का क्रॉस गुणनफल ज्ञात करना 1 Cross[{1, 2, 3}, {4, 5, 6}] आउटपुट\n1 {-3, 6, -3} सदिश का परिमाण ज्ञात करना 1 Norm[{1, 2, 3}] आउटपुट\n1 √14 सदिशों का कोण ज्ञात करना 1 ArcCos[{1, 2} . {3, 4}/(Norm[{1, 2}] Norm[{3, 4}])] आउटपुट\n1 ArcCos[11/(√5 √25)] सदिश का प्रक्षेपण ज्ञात करना 1 {1, 2} . {3, 4}/Norm[{3, 4}] {3, 4}/Norm[{3, 4}] आउटपुट\n1 {11/5, 22/5} सदिश का घूर्णन ज्ञात करना 1 RotationMatrix[π/2].{1, 0} आउटपुट\n1 {0, 1} सदिश का स्थानांतरण ज्ञात करना 1 TranslationTransform[{1, 2}][{3, 4}] आउटपुट\n1 {4, 6} सदिश की स्केलिंग ज्ञात करना 1 ScalingTransform[{2, 3}][{1, 1}] आउटपुट\n1 {2, 3} सदिश का परावर्तन ज्ञात करना 1 ReflectionTransform[{1, 1}][{1, 1}] आउटपुट\n1 {0, 0} यादृच्छिक संख्याएँ उत्पन्न करना 1 RandomReal[] आउटपुट\n1 0.123456 यादृच्छिक संख्याएँ उत्पन्न करना (पूर्णांक) 1 RandomInteger[] आउटपुट\n1 123456 यादृच्छिक संख्याएँ उत्पन्न करना (सीमा निर्दिष्ट) 1 RandomReal[{1, 10}] आउटपुट\n1 5.6789 यादृच्छिक संख्याएँ उत्पन्न करना (पूर्णांक, सीमा निर्दिष्ट) 1 RandomInteger[{1, 10}] आउटपुट\n1 5 यादृच्छिक संख्याएँ उत्पन्न करना (वितरण निर्दिष्ट) 1 RandomVariate[NormalDistribution[0, 1]] आउटपुट\n1 0.123456 यादृच्छिक संख्याएँ उत्पन्न करना (वितरण, मात्रा निर्दिष्ट) 1 RandomVariate[NormalDistribution[0, 1], 10] आउटपुट\n1 {0.123456, 0.234567, ..., 0.987654} यादृच्छिक संख्याएँ उत्पन्न करना (वितरण, मात्रा, बीज निर्दिष्ट) 1 2 SeedRandom[12345] RandomVariate[NormalDistribution[0, 1], 10] आउटपुट\n1 {0.123456, 0.234567, ..., 0.987654} सरणी के तत्वों पर फ़ंक्शन लागू करना 1 2 3 Map[Sqrt, {1, 4, 9}] Sqrt /@ {1, 4, 9} Map[#^(1/2)\u0026amp;, {1, 4, 9}] आउटपुट\n1 {1, 2, 3} लैम्ब्डा एक्सप्रेशन का उपयोग करके फ़ंक्शन परिभाषित करना 1 2 f = Function[x, x^2] f[3] आउटपुट\n1 9 फ़ंक्शन रचना 1 2 3 4 f = Function[x, x^2] g = Function[x, x + 1] h = Function[x, f[g[x]]] h[3] आउटपुट\n1 16 पिछली गणना के परिणाम का संदर्भ देना 1 % + 1 आउटपुट\n1 17 शुद्ध फ़ंक्शन 1 (#+3)\u0026amp;[5] आउटपुट\n1 8 सरणी निष्कर्षण 1 2 Select[{1, 2, 3, 4, 5}, EvenQ] Select[{1, 2, 3, 4, 5}, Mod[#,2]==0\u0026amp;] आउटपुट\n1 {2, 4} ","date":"2024-07-25T01:36:19+09:00","image":"http://kenji.blog/p/mathematica%E5%85%A5%E9%96%80/img_hucba782cf2f6047b30fd8084b4d887659_22760_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/mathematica%E5%85%A5%E9%96%80/","title":"Mathematica का परिचय"},{"content":"Hugo क्या है Hugo एक स्टैटिक साइट जनरेटर है। आप Markdown फ़ाइलों को HTML में परिवर्तित करके एक वेबसाइट बना सकते हैं। Hugo Go भाषा में लिखा गया है और बहुत तेज़ी से काम करता है।\nयह ब्लॉग भी Hugo से बनाया गया है।\nHugo CLI स्थापित करना Hugo CLI स्थापित करने के लिए, नीचे दिया गया कमांड चलाएँ।\n※ यह macOS का एक उदाहरण है। अन्य ऑपरेटिंग सिस्टम के लिए, कृपया आधिकारिक दस्तावेज़ देखें।\n1 brew install hugo आप इसे Homebrew का उपयोग करके स्थापित कर सकते हैं।\nHugo कमांड सूची Hugo में विभिन्न कमांड उपलब्ध हैं। नीचे आमतौर पर उपयोग किए जाने वाले कमांड दिए गए हैं।\nएक नई साइट बनाना 1 hugo new site \u0026lt;साइट का नाम\u0026gt; एक नई साइट बनाने का कमांड। \u0026lt;साइट का नाम\u0026gt; में, साइट का नाम निर्दिष्ट करें।\nएक नया लेख बनाना 1 hugo new \u0026lt;लेख का नाम\u0026gt;.md एक नया लेख बनाने का कमांड। \u0026lt;लेख का नाम\u0026gt; में, लेख का नाम निर्दिष्ट करें।\nसर्वर शुरू करना 1 hugo server स्थानीय सर्वर शुरू करने का कमांड। इसे http://localhost:1313 पर एक्सेस किया जा सकता है।\nबिल्ड करना 1 hugo साइट को बिल्ड करने का कमांड। HTML फ़ाइलें public निर्देशिका (डायरेक्टरी) में उत्पन्न होंगी।\nडिप्लॉय करना 1 hugo deploy साइट को डिप्लॉय करने का कमांड। डिप्लॉयमेंट गंतव्य की सेटिंग config.toml फ़ाइल में की जाती है।\nलेखों की सूची प्रदर्शित करना 1 hugo list all लेखों की सूची प्रदर्शित करने का कमांड।\nसेटिंग्स की जाँच करना 1 hugo config सेटिंग्स की जाँच करने का कमांड।\nमदद प्रदर्शित करना 1 hugo help मदद प्रदर्शित करने का कमांड।\nसंस्करण प्रदर्शित करना 1 hugo version संस्करण (वर्जन) प्रदर्शित करने का कमांड।\nयह Hugo कमांड की सूची थी। कई अन्य कमांड उपलब्ध हैं, इसलिए कृपया आधिकारिक दस्तावेज़ देखें।\nसंदर्भ Hugo आधिकारिक दस्तावेज़ ","date":"2024-05-31T01:36:00+09:00","image":"http://kenji.blog/p/hugo%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E4%B8%80%E8%A6%A7/img_hu415dc7e70376ac350673d0366f70ca4b_19909_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/hugo%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E4%B8%80%E8%A6%A7/","title":"Hugo कमांड सूची"},{"content":"Visual Studio Code अनुशंसित एक्सटेंशन्स की सूची श्रेणी नाम प्रदाता विवरण वर्चुअल और कंटेनर प्रबंधन Remote Devlopment Microsoft SSH कनेक्शन के माध्यम से वर्चुअल कंटेनर/WSL से जुड़कर रिमोट विकास का समर्थन करता है वर्चुअल और कंटेनर प्रबंधन Docker Microsoft Docker कंटेनरों के प्रबंधन का समर्थन करता है कोड प्रबंधन GitHub Pull Requests GitHub VSCode पर GitHub के पुल रिक्वेस्ट का प्रबंधन करता है कोड प्रबंधन GitHub Copilot GitHub AI द्वारा कोड पूरा करने का समर्थन करता है कोड प्रबंधन Git Graph mhutchie Git की ब्रांच और कमिट्स को ग्राफिकल तरीके से प्रदर्शित करता है कोड प्रबंधन Git History Don Jayamanne Git का इतिहास प्रदर्शित करता है ब्राउज़र और वेब विकास Debugger for Firefox Firefox DevTools VSCode पर Firefox के डीबगर का उपयोग करता है ब्राउज़र और वेब विकास Microsoft Edge Tool For VScode Microsoft VSCode पर Edge के डेवलपर टूल का उपयोग करता है ब्राउज़र और वेब विकास Vue Language Features(Volar) Vue Vue की भाषा सुविधाओं का समर्थन करता है ब्राउज़र और वेब विकास JavaScript (ES6) code snippets charalampos karypidis JavaScript के स्निपेट प्रदान करता है ब्राउज़र और वेब विकास Tailwind CSS IntelliSense Tailwind Labs Tailwind CSS के स्निपेट प्रदान करता है क्लाउड विकास AWS Toolkit Amazon Web Services AWS विकास का समर्थन करता है क्लाउड विकास Azure Tools Microsoft Azure विकास का समर्थन करता है क्लाउड विकास Google Cloud Tools Google Cloud Google Cloud विकास का समर्थन करता है डेटाबेस MySQL Jun Han MySQL विकास का समर्थन करता है डेटाबेस SQL Server(mssql) Microsoft SQL Server विकास का समर्थन करता है डेटाबेस PostgreSQL Chris Kolkman PostgreSQL विकास का समर्थन करता है एंबेडेड सिस्टम PlatformIO PlatformIO PlatformIO विकास का समर्थन करता है एंबेडेड सिस्टम Arduino Microsoft Arduino विकास का समर्थन करता है एंबेडेड सिस्टम WorkBench Particle Particle द्वारा प्रदान किए गए विकास वातावरण, फर्मवेयर, लाइब्रेरी, और क्लाउड एकीकरण से लेकर IoT के लिए विकास का समर्थन करता है C/C++ C/C++ Extension Pack Microsoft C/C++ विकास का समर्थन करता है C/C++ C/C++ Runner franneck94 C/C++ का कोड निष्पादित करता है (gcc, msvc, और cuda nvcc कंपाइलर के लिए समर्थन) C/C++ Cortex-Debug marus25 Cortex-A/R/M माइक्रोकंट्रोलर्स की डीबगिंग का समर्थन करता है Python Python Extension Pack Microsoft Python विकास का समर्थन करता है Python jupyter Microsoft Jupyter Notebook विकास का समर्थन करता है उपयोगिता और UI एक्सटेंशन Makrdown All in One Yu Zhang Markdown लेखन का समर्थन करता है उपयोगिता और UI एक्सटेंशन Hex Editor Microsoft बाइनरी फ़ाइलों को संपादित करता है उपयोगिता और UI एक्सटेंशन vscode-pdf tomoki1207 PDF फ़ाइलें प्रदर्शित करता है उपयोगिता और UI एक्सटेंशन Rainbow CSV mechatroner CSV फ़ाइलों को रंगीन रूप में प्रदर्शित करता है उपयोगिता और UI एक्सटेंशन Draw.io Integration Henning Dieterichs VSCode पर Draw.io का उपयोग करता है उपयोगिता और UI एक्सटेंशन Japanese Language Pack for Visual Studio Code Microsoft जापानी भाषा पैक उपयोगिता और UI एक्सटेंशन Live Share Microsoft रीयल-टाइम सहयोगात्मक कार्य का समर्थन करता है ","date":"2024-05-29T17:20:19+09:00","image":"http://kenji.blog/p/visual-studio-code%E3%81%8A%E3%81%99%E3%81%99%E3%82%81%E6%8B%A1%E5%BC%B5%E6%A9%9F%E8%83%BD/img_hu9f3ce3d75e92e9f1ca11d3e7a3c7b710_108332_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/visual-studio-code%E3%81%8A%E3%81%99%E3%81%99%E3%82%81%E6%8B%A1%E5%BC%B5%E6%A9%9F%E8%83%BD/","title":"Visual Studio Code अनुशंसित एक्सटेंशन्स"},{"content":"mermaid.js क्या है mermaid.js एक JavaScript लाइब्रेरी है जो आपको फ्लोचार्ट, डायग्राम और गैंट चार्ट जैसे जटिल डायग्राम को टेक्स्ट-आधारित मूल सिंटैक्स (Mermaid सिंटैक्स) लिखकर ग्राफिक रूप से प्रदर्शित करने की अनुमति देती है। इसे GitHub, Qiita और Notion जैसी विभिन्न सेवाओं में भी अपनाया गया है। इस बार, हम hugo में mermaid.js का उपयोग करने का प्रयास करेंगे।\nhugo में mermaid.js को सक्षम करना चरण इस प्रकार हैं:\nlayouts/partials/extend_footer.html में निम्नलिखित जोड़ें। 1 2 3 4 5 6 7 8 9 10 11 12 13 {{ if or .Params.mermaid .Site.Params.mermaid }} \u0026lt;script src=\u0026#34;https://cdn.jsdelivr.net/npm/mermaid@10.3.0/dist/mermaid.min.js\u0026#34;\u0026gt;\u0026lt;/script\u0026gt; {{- $loadmermaid := resources.Get \u0026#34;js/load-mermaid.js\u0026#34; }} \u0026lt;script src=\u0026#34;{{ $loadmermaid.RelPermalink }}\u0026#34;\u0026gt;\u0026lt;/script\u0026gt; \u0026lt;script\u0026gt; window.initMermaid(); if (isDarkTheme()) { setPrefTheme(\u0026#39;dark\u0026#39;); } else { setPrefTheme(\u0026#39;light\u0026#39;); } \u0026lt;/script\u0026gt; {{ end }} ※ mermaid.min.js केवल तभी लोड होता है जब if स्टेटमेंट में mermaid: true सेट किया जाता है। यह लाइब्रेरी लगभग 3MB की है और आश्चर्यजनक रूप से बड़ी है।\nassets/js/load-mermaid.js बनाएं। इस प्रक्रिया का उपयोग थीम बदलने पर इनिशियलाइज़ करने और गतिशील रूप से फिर से बनाने के लिए किया जाता है। 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 (function(window){ \u0026#39;use strict\u0026#39; const elementCode = \u0026#39;.mermaid\u0026#39; const loadMermaid = function(theme) { window.mermaid.initialize({theme}) window.mermaid.init({theme}, document.querySelectorAll(elementCode)) } const saveOriginalData = function(){ return new Promise((resolve, reject) =\u0026gt; { try { var els = document.querySelectorAll(elementCode), count = els.length; els.forEach(element =\u0026gt; { element.setAttribute(\u0026#39;data-original-code\u0026#39;, element.innerHTML) count-- if(count == 0){ resolve() } }); } catch (error) { reject(error) } }) } const resetProcessed = function(){ return new Promise((resolve, reject) =\u0026gt; { try { var els = document.querySelectorAll(elementCode), count = els.length; els.forEach(element =\u0026gt; { if(element.getAttribute(\u0026#39;data-original-code\u0026#39;) != null){ element.removeAttribute(\u0026#39;data-processed\u0026#39;) element.innerHTML = element.getAttribute(\u0026#39;data-original-code\u0026#39;) } count-- if(count == 0){ resolve() } }); } catch (error) { reject(error) } }) } const init = ()=\u0026gt;{ saveOriginalData() .catch( console.error ) document.body.addEventListener(\u0026#39;dark-theme-set\u0026#39;, ()=\u0026gt;{ resetProcessed() .then(loadMermaid(\u0026#39;dark\u0026#39;)) .catch(console.error) }) document.body.addEventListener(\u0026#39;light-theme-set\u0026#39;, ()=\u0026gt;{ resetProcessed() .then(loadMermaid(\u0026#39;default\u0026#39;)) .catch(console.error) }) } window.initMermaid = init })(window); इसके लिए आधार कोड निम्नलिखित से संदर्भित किया गया था:\nReinitialize with new theme #1945 header.html में थीम बदलते समय प्रक्रिया को संशोधित करें 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 function switchTheme(theme) { switch (theme) { case \u0026#39;light\u0026#39;: {{ if or .Params.mermaid .Site.Params.mermaid }} document.body.dispatchEvent(new CustomEvent(\u0026#39;light-theme-set\u0026#39;)); {{ end }} document.body.classList.remove(\u0026#39;dark\u0026#39;); break; case \u0026#39;dark\u0026#39;: {{ if or .Params.mermaid .Site.Params.mermaid }} document.body.dispatchEvent(new CustomEvent(\u0026#39;dark-theme-set\u0026#39;)); {{ end }} document.body.classList.add(\u0026#39;dark\u0026#39;); break; // auto default: if (window.matchMedia(\u0026#39;(prefers-color-scheme: dark)\u0026#39;).matches) { {{ if or .Params.mermaid .Site.Params.mermaid }} document.body.dispatchEvent(new CustomEvent(\u0026#39;dark-theme-set\u0026#39;)); {{ end }} document.body.classList.add(\u0026#39;dark\u0026#39;); } } } layouts/shortcodes/mermaid.html बनाएं 1 2 3 \u0026lt;div class=\u0026#34;mermaid\u0026#34; align=\u0026#34;{{ if .Get \u0026#34;align\u0026#34; }}{{ .Get \u0026#34;align\u0026#34; }}{{ else }}center{{ end }}\u0026#34;\u0026gt; {{ safeHTML .Inner }} \u0026lt;/div\u0026gt; उपरोक्त चरणों के साथ, mermaid.js का उपयोग करने की तैयारी पूरी हो गई है।\nmermaid.js का प्रयास करना लेख की परिभाषा में निम्नलिखित जोड़ें 1 marmaid: true लेख के मुख्य भाग में निम्नलिखित जोड़ें फ्लोचार्ट\n1 2 3 4 5 6 {{\u0026lt;mermaid align=\u0026#34;center\u0026#34;\u0026gt;}} graph TD A[प्रारंभ] --\u0026gt;|शर्त 1| B(शर्त 2) B --\u0026gt; C{शर्त 3} C --\u0026gt;|शर्त 4| D[अंत] {{\u0026lt;/mermaid\u0026gt;}} आउटपुट परिणाम\ngraph TD A[प्रारंभ] --\u003e|शर्त 1| B(शर्त 2) B --\u003e C{शर्त 3} C --\u003e|शर्त 4| D[अंत] गैंट चार्ट\n1 2 3 4 5 6 7 8 9 10 11 12 {{\u0026lt;mermaid align=\u0026#34;center\u0026#34;\u0026gt;}} gantt section Project आवश्यकता परिभाषा :done, a, 2024-05-25, 5d मूल डिज़ाइन :done, b, after a, 5d विस्तृत डिज़ाइन :done, c, after b, 5d निर्माण :active, d, after c, 10d यूनिट टेस्ट :crit, e, after d, 5d एकीकरण परीक्षण : f, after e, 5d सिस्टम टेस्ट : g, after f, 5d रिलीज़ :milestone, h, after g, 1d {{\u0026lt;/mermaid\u0026gt;}} आउटपुट परिणाम\ngantt section Project आवश्यकता परिभाषा :done, a, 2024-05-25, 5d मूल डिज़ाइन :done, b, after a, 5d विस्तृत डिज़ाइन :done, c, after b, 5d निर्माण :active, d, after c, 10d यूनिट टेस्ट :crit, e, after d, 5d एकीकरण परीक्षण : f, after e, 5d सिस्टम टेस्ट : g, after f, 5d रिलीज़ :milestone, h, after g, 1d अनुक्रम आरेख\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 {{\u0026lt;mermaid align=\u0026#34;center\u0026#34;\u0026gt;}} sequenceDiagram participant user participant view participant controller participant model participant database user-\u0026gt;\u0026gt;view: ID/PW दर्ज करें view-\u0026gt;\u0026gt;controller: प्रमाणीकरण अनुरोध controller-\u0026gt;\u0026gt;model: प्रमाणीकरण अनुरोध model-\u0026gt;\u0026gt;database: प्रमाणीकरण अनुरोध database--\u0026gt;\u0026gt;model: प्रमाणीकरण परिणाम वापस करें model--\u0026gt;\u0026gt;controller: प्रमाणीकरण परिणाम वापस करें controller--\u0026gt;\u0026gt;view: प्रमाणीकरण परिणाम वापस करें view--\u0026gt;\u0026gt;user: प्रमाणीकरण परिणाम प्रदर्शित करें {{\u0026lt;/mermaid\u0026gt;}} आउटपुट परिणाम\nsequenceDiagram participant user participant view participant controller participant model participant database user-\u003e\u003eview: ID/PW दर्ज करें view-\u003e\u003econtroller: ajax पूछताछ controller-\u003e\u003emodel: प्रमाणीकरण अनुरोध model-\u003e\u003edatabase: SQL जारी करना database--\u003e\u003emodel: SQL परिणाम वापस करें model--\u003e\u003econtroller: अनुरोध परिणाम वापस करें controller--\u003e\u003eview: ajax पूछताछ परिणाम वापस करें view--\u003e\u003euser: प्रमाणीकरण परिणाम प्रदर्शित करें बस इतना ही।\nसंदर्भ mermaid.js आधिकारिक साइट डेमो साइट जहाँ आप mermaid सिंटैक्स का पूर्वावलोकन कर सकते हैं ","date":"2024-05-25T02:18:09+09:00","image":"http://kenji.blog/p/mermaid.js%E3%82%92%E8%A9%A6%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B/img_2_huc7c099ec3ef9a6ce3efa5818e1489313_12585_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/mermaid.js%E3%82%92%E8%A9%A6%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B/","title":"mermaid.js का परीक्षण"},{"content":"git reset को कैसे अनडू करें git commit करने के बाद, यदि आप गलती से git reset चला देते हैं, तो यहां बताया गया है कि git reset को कैसे अनडू करें (git commit के समय की स्थिति को कैसे रिस्टोर करें)।\nरिसेट से पहले के कमिट ID को git reflog से जांचें git reset --hard HEAD@{नंबर} के साथ रिसेट से पहले की स्थिति में वापस लौटें git reset को अनडू करने के बारे में बस इतना ही।\n","date":"2024-05-15T23:32:43+09:00","image":"http://kenji.blog/p/git-reset%E3%82%92%E5%8F%96%E3%82%8A%E6%B6%88%E3%81%99%E6%96%B9%E6%B3%95/img_hu1637c23702d7aac8be6c2641e62ebc1a_73066_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/git-reset-ko-kaise-undo-kare/","title":"git reset को कैसे अनडू करें"},{"content":"MS-DOS 4.0 का ओपन सोर्स होना माइक्रोसॉफ्ट ने लगभग 40 साल पहले जारी किए गए MS-DOS 4.0 का सोर्स कोड जारी किया है। यह लगभग पूरी तरह से 8086 असेंबली कोड में लिखा गया है।\nगिटहब रिपॉजिटरी https://github.com/microsoft/MS-DOS\nसंदर्भ साइट Open Sourcing MS-DOS 4.0 ","date":"2024-05-05T16:44:28+09:00","image":"http://kenji.blog/p/ms-dos-4.0-%E3%81%AE%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3%E3%82%BD%E3%83%BC%E3%82%B9%E5%8C%96/img_hu44e977c98e405f06fee0746ba6885217_23034_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/ms-dos-4.0-%E3%81%AE%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3%E3%82%BD%E3%83%BC%E3%82%B9%E5%8C%96/","title":"MS-DOS 4.0 का ओपन सोर्स होना"},{"content":" रीडेबल कोड प्रिंसिपल्स ऑफ प्रोग्रामिंग द प्रैगमैटिक प्रोग्रामर वेब का समर्थन करने वाली तकनीकें सुरक्षित वेब एप्लिकेशन कैसे बनाएं नेटवर्क कैसे जुड़ते हैं विशेषज्ञों से SQL संपूर्ण गाइड डॉकर प्रैक्टिकल गाइड कुबेरनेट्स संपूर्ण गाइड कोड कम्प्लीट दूसरा संस्करण क्लीन कोड: चपल सॉफ्टवेयर शिल्प कौशल क्लीन आर्किटेक्चर: सॉफ्टवेयर संरचना और डिजाइन गेम प्रोग्रामर बनने से पहले जानने योग्य तकनीकें बीइंग गीक ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग क्यों? ","date":"2024-05-05T16:03:33+09:00","image":"http://kenji.blog/p/%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2%E5%88%9D%E5%AD%A6%E8%80%85%E3%81%AB%E3%81%8A%E3%81%99%E3%81%99%E3%82%81%E3%81%AE%E6%9B%B8%E7%B1%8D/img_huefc28c3d74f521b3206dda9fd272911e_636136_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/%E0%A4%B6%E0%A5%81%E0%A4%B0%E0%A5%81%E0%A4%86%E0%A4%A4%E0%A5%80-%E0%A4%87%E0%A4%82%E0%A4%9C%E0%A5%80%E0%A4%A8%E0%A4%BF%E0%A4%AF%E0%A4%B0%E0%A5%8B%E0%A4%82-%E0%A4%95%E0%A5%87-%E0%A4%B2%E0%A4%BF%E0%A4%8F-%E0%A4%85%E0%A4%A8%E0%A5%81%E0%A4%B6%E0%A4%82%E0%A4%B8%E0%A4%BF%E0%A4%A4-%E0%A4%AA%E0%A5%81%E0%A4%B8%E0%A5%8D%E0%A4%A4%E0%A4%95%E0%A5%87%E0%A4%82/","title":"शुरुआती इंजीनियरों के लिए अनुशंसित पुस्तकें"},{"content":"मैंने एक एक्सेल कैलेंडर टेम्पलेट (अवकाश समर्थित संस्करण) बनाया है! मैंने एक एक्सेल टेम्पलेट बनाया है जहाँ, वर्ष और महीना दर्ज करने पर, उस महीने के कैलेंडर पर अवकाश प्रदर्शित होते हैं।\nकृपया डाउनलोड करें और इसका उपयोग करें। कैलेंडर.xlsx\n","date":"2024-05-01T00:15:57+09:00","image":"http://kenji.blog/p/excel%E3%81%AE%E3%82%AB%E3%83%AC%E3%83%B3%E3%83%80%E3%83%BC%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E4%BC%91%E6%97%A5%E5%AF%BE%E5%BF%9C%E7%89%88/img_hu8d7d9eeba53cb2329139f98aded52558_13893_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/excel%E3%81%AE%E3%82%AB%E3%83%AC%E3%83%B3%E3%83%80%E3%83%BC%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E4%BC%91%E6%97%A5%E5%AF%BE%E5%BF%9C%E7%89%88/","title":"एक्सेल कैलेंडर टेम्पलेट (अवकाश समर्थित संस्करण)"},{"content":"※ यह Windows 11 के लिए सेटअप प्रक्रिया है।\nकंट्रोल पैनल खोलें पावर ऑप्शंस चुनें \u0026ldquo;पावर बटन क्या करते हैं, चुनें\u0026rdquo; पर क्लिक करें \u0026ldquo;वर्तमान में अनुपलब्ध सेटिंग्स बदलें\u0026rdquo; पर क्लिक करें \u0026ldquo;तेज़ स्टार्टअप चालू करें (अनुशंसित)\u0026rdquo; को अनचेक करें \u0026ldquo;परिवर्तन सहेजें\u0026rdquo; पर क्लिक करें संदर्भ \\[Windows 10\\] कृपया मुझे बताएं कि फास्ट स्टार्टअप को कैसे डिसेबल करें।\n","date":"2024-04-29T19:42:20+09:00","image":"http://kenji.blog/p/%E3%83%9E%E3%83%AB%E3%83%81%E3%83%A2%E3%83%8B%E3%82%BF%E3%81%A7%E6%AF%8E%E5%9B%9E%E8%B5%B7%E5%8B%95%E6%99%82%E3%81%ABdpi%E3%81%AE%E8%A8%AD%E5%AE%9A%E3%81%8C%E3%83%AA%E3%82%BB%E3%83%83%E3%83%88%E3%81%95%E3%82%8C%E3%81%A6%E3%81%97%E3%81%BE%E3%81%86%E3%81%A8%E3%81%8D%E3%81%AE%E5%AF%BE%E5%87%A6%E6%B3%95/img_huc496c8f1febcd28bf66466cd5e2648a0_37147_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/%E0%A4%AE%E0%A4%B2%E0%A5%8D%E0%A4%9F%E0%A5%80%E0%A4%AA%E0%A4%B2-%E0%A4%AE%E0%A5%89%E0%A4%A8%E0%A4%BF%E0%A4%9F%E0%A4%B0-%E0%A4%95%E0%A5%87-%E0%A4%B8%E0%A4%BE%E0%A4%A5-%E0%A4%B8%E0%A5%8D%E0%A4%9F%E0%A4%BE%E0%A4%B0%E0%A5%8D%E0%A4%9F%E0%A4%85%E0%A4%AA-%E0%A4%AA%E0%A4%B0-dpi-%E0%A4%B8%E0%A5%87%E0%A4%9F%E0%A4%BF%E0%A4%82%E0%A4%97%E0%A5%8D%E0%A4%B8-%E0%A4%95%E0%A5%87-%E0%A4%B0%E0%A5%80%E0%A4%B8%E0%A5%87%E0%A4%9F-%E0%A4%B9%E0%A5%8B%E0%A4%A8%E0%A5%87-%E0%A4%95%E0%A5%8B-%E0%A4%95%E0%A5%88%E0%A4%B8%E0%A5%87-%E0%A4%A0%E0%A5%80%E0%A4%95-%E0%A4%95%E0%A4%B0%E0%A5%87%E0%A4%82/","title":"मल्टीपल मॉनिटर के साथ स्टार्टअप पर DPI सेटिंग्स के रीसेट होने को कैसे ठीक करें"},{"content":"गिट रिपॉजिटरी का केवल नवीनतम संस्करण प्राप्त करें आप निम्नलिखित कमांड का उपयोग करके रिपॉजिटरी का केवल नवीनतम संस्करण प्राप्त कर सकते हैं। यह तब उपयोगी होता है जब आप डिस्क स्थान बचाने के लिए जल्दी से रिपॉजिटरी प्राप्त करना चाहते हैं।\n1 git clone --depth 1 \u0026lt;रिपॉजिटरी URL\u0026gt; ","date":"2024-04-27T02:54:12+09:00","image":"http://kenji.blog/p/git%E3%83%AA%E3%83%9D%E3%82%B8%E3%83%88%E3%83%AA%E3%81%AE%E6%9C%80%E6%96%B0%E3%81%A0%E3%81%91%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B/img_hu2ecde82e40aa31a994850b70302683b4_5304_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/%E0%A4%97%E0%A4%BF%E0%A4%9F-%E0%A4%B0%E0%A4%BF%E0%A4%AA%E0%A5%89%E0%A4%9C%E0%A4%BF%E0%A4%9F%E0%A4%B0%E0%A5%80-%E0%A4%95%E0%A4%BE-%E0%A4%95%E0%A5%87%E0%A4%B5%E0%A4%B2-%E0%A4%A8%E0%A4%B5%E0%A5%80%E0%A4%A8%E0%A4%A4%E0%A4%AE-%E0%A4%B8%E0%A4%82%E0%A4%B8%E0%A5%8D%E0%A4%95%E0%A4%B0%E0%A4%A3-%E0%A4%AA%E0%A5%8D%E0%A4%B0%E0%A4%BE%E0%A4%AA%E0%A5%8D%E0%A4%A4-%E0%A4%95%E0%A4%B0%E0%A5%87%E0%A4%82/","title":"गिट रिपॉजिटरी का केवल नवीनतम संस्करण प्राप्त करें"},{"content":"GitHub Copilot में निम्नलिखित त्रुटि प्रदर्शित होने पर क्या करें 19/04/2024 के आसपास से GitHub Copilot ने काम करना बंद कर दिया। त्रुटि संदेश इस प्रकार है:\n1 2 [ERROR] [ghostText] [2024-04-21T04:06:46.900Z] Error on ghost text request: (FetchError) unable to verify the first certificate [ERROR] [certificates] [2024-04-21T04:06:46.901Z] Your current Copilot license doesn\u0026#39;t support proxy connections with custom certificates. Please visit https://gh.io/copilot-network-errors to learn more. Original cause: {\u0026#34;type\u0026#34;:\u0026#34;system\u0026#34;,\u0026#34;_name\u0026#34;:\u0026#34;FetchError\u0026#34;,\u0026#34;code\u0026#34;:\u0026#34;UNABLE_TO_VERIFY_LEAF_SIGNATURE\u0026#34;} समाधान यह ESET का एक बग प्रतीत होता है। ESET की उन्नत सेटिंग्स में \u0026ldquo;SSL/TLS सक्षम करें\u0026rdquo; को बंद करें। संदर्भ ऐसा लगता है कि AWS CDK में भी यही त्रुटि हो रही है।\nAWS CDK bootstrap certificate warning-error ","date":"2024-04-21T18:47:26+09:00","image":"http://kenji.blog/p/%E8%A8%BC%E6%98%8E%E6%9B%B8%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%A7github-copilot%E3%81%8C%E4%BD%BF%E3%81%88%E3%81%AA%E3%81%8F%E3%81%AA%E3%81%A3%E3%81%9F%E5%A0%B4%E5%90%88%E3%81%AE%E5%AF%BE%E5%87%A6%E6%96%B9%E6%B3%95/img_hue52485515660c172702881501d13c34d_319675_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/%E0%A4%B8%E0%A4%B0%E0%A5%8D%E0%A4%9F%E0%A4%BF%E0%A4%AB%E0%A4%BF%E0%A4%95%E0%A5%87%E0%A4%9F-%E0%A4%8F%E0%A4%B0%E0%A4%B0-%E0%A4%95%E0%A5%87-%E0%A4%95%E0%A4%BE%E0%A4%B0%E0%A4%A3-github-copilot-%E0%A4%95%E0%A4%BE%E0%A4%AE-%E0%A4%A8-%E0%A4%95%E0%A4%B0%E0%A4%A8%E0%A5%87-%E0%A4%AA%E0%A4%B0-%E0%A4%95%E0%A5%88%E0%A4%B8%E0%A5%87-%E0%A4%A0%E0%A5%80%E0%A4%95-%E0%A4%95%E0%A4%B0%E0%A5%87%E0%A4%82/","title":"सर्टिफिकेट एरर के कारण GitHub Copilot काम न करने पर कैसे ठीक करें"},{"content":"\nvim परिचय डाउनलोड और इंस्टालेशन https://www.vim.org/download.php\nउपरोक्त वेबसाइट से, अपने ऑपरेटिंग सिस्टम के अनुसार उपयुक्त मॉड्यूल डाउनलोड और इंस्टॉल करें।\nWindows के लिए, gvim_X.X.X_x64_signed.exe चुनना एक अच्छा विकल्प होगा।\nशुरू करने का तरीका Windows के मामले में, आपको Path पर्यावरण चर (Environment Variable) में उस फ़ोल्डर को पंजीकृत करना होगा जहाँ vim.exe स्थित है।\nशुरू करने का तरीका:\n1 vim फ़ाइल का नाम निर्दिष्ट करके शुरू करना:\n1 vim filename.txt बाहर निकलने (Exit) का तरीका बाहर निकलने के लिए, : (कोलन) टाइप करें, फिर q टाइप करें, और Enter दबाएं।\n1 :q यदि आपने फ़ाइल में बदलाव किए हैं, तो यह अंतिम परिवर्तन के बाद से सहेजा नहीं गया (बदलावों को छोड़ने के लिए ! जोड़ें) प्रदर्शित करेगा। आप परिवर्तनों को छोड़कर बलपूर्वक बाहर निकल सकते हैं।\n1 :q! फ़ाइल को सहेजने और बाहर निकलने के लिए:\n1 :wq नीचे दिए गए कमांड का अर्थ भी समान है:\n1 :x इसके अलावा, आप Shift को दबाए रखते हुए दो बार z दबाकर भी बाहर निकल सकते हैं। (यह :wq के समान है)\nमोड्स vim में एक कमांड मोड (Command Mode) और एक इन्सर्ट मोड (Insert Mode) होता है। जब आप vim शुरू करते हैं, तो यह कमांड मोड में होता है, और i कुंजी दबाने पर यह इन्सर्ट मोड में चला जाता है।\nइन्सर्ट मोड में, आप टेक्स्ट टाइप कर सकते हैं। इन्सर्ट मोड से वापस कमांड मोड में जाने के लिए, ESC कुंजी दबाएं।\nयह मोड बदलना vim की एक प्रमुख विशेषता है।\nकर्सर मूवमेंट और स्क्रॉलिंग यहाँ कमांड मोड के दौरान कर्सर मूवमेंट और स्क्रॉलिंग का सारांश दिया गया है।\nकुंजी विवरण h (या Ctrl+H, BackSpace, ←) बाईं ओर जाएँ j (या Ctrl+J / N, ↓) नीचे जाएँ k (या Ctrl+P, ↑) ऊपर जाएँ l (या Space, →) दाईं ओर जाएँ + (या Enter) अगली लाइन की शुरुआत में जाएँ - पिछली लाइन की शुरुआत में जाएँ Ctrl+B (या PageUp) ऊपर की ओर स्क्रॉल करें (पेज) Ctrl+F (या PageDown) नीचे की ओर स्क्रॉल करें (पेज) Ctrl+U ऊपर की ओर आधा स्क्रॉल करें Ctrl+D नीचे की ओर आधा स्क्रॉल करें Ctrl+Y ऊपर की ओर 1 लाइन स्क्रॉल करें Ctrl+E नीचे की ओर 1 लाइन स्क्रॉल करें z Enter कर्सर वाली लाइन को स्क्रीन के ऊपर स्क्रॉल करें z . कर्सर वाली लाइन को स्क्रीन के मध्य में स्क्रॉल करें z - कर्सर वाली लाइन को स्क्रीन के नीचे स्क्रॉल करें 0 (या |) कर्सर को लाइन की शुरुआत में ले जाएँ $ कर्सर को लाइन के अंत में ले जाएँ ^ (या _) कर्सर को लाइन की शुरुआत में ले जाएँ (स्पेस, Tab को छोड़कर) G (या :$) कर्सर को अंतिम लाइन पर ले जाएँ :लाइन_नंबर Enter निर्दिष्ट लाइन पर जाएँ उपर्युक्त मूवमेंट कुंजियों से पहले एक नंबर टाइप करके, आप उस संख्या के बराबर कई बार आगे बढ़ सकते हैं। (उदाहरण के लिए, 3j टाइप करने से आप वर्तमान कर्सर स्थान से 3 लाइनें नीचे चले जाएंगे।)\nअन्य कमांड कुंजी विवरण Ctrl+L स्क्रीन को फिर से ड्रा करें Ctrl+G फ़ाइल में लाइनों की कुल संख्या, कर्सर की स्थिति आदि प्रदर्शित करें ","date":"2024-04-19T22:06:34+09:00","image":"http://kenji.blog/p/vim%E5%85%A5%E9%96%80/img_hu70487bce4333a61ad5b3ba8ed7939499_17904_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/vim%E5%85%A5%E9%96%80/","title":"vim परिचय"},{"content":"DestroyIcon को कॉल करने की आवश्यकता के बारे में निम्नलिखित मामलों में DestroyIcon को कॉल करना आवश्यक है:\nCreateIconFromResourceEx (यदि LR_SHARED ध्वज के बिना कॉल किया गया हो) CreateIconIndirect CopyIcon जब उपरोक्त फ़ंक्शंस द्वारा बनाया गया हो।\nLoadIcon LoadImage (यदि LR_SHARED ध्वज का उपयोग कर रहे हैं) CopyImage (यदि LR_COPYRETURNORG ध्वज का उपयोग कर रहे हैं और hImage पैरामीटर एक साझा आइकन है) CreateIconFromResource CreateIconFromResourceEx (यदि LR_SHARED ध्वज का उपयोग कर रहे हैं) उपरोक्त मामलों में बनाए और लोड किए गए आइकन के लिए DestroyIcon को कॉल नहीं करना चाहिए।\nसंदर्भ DestroyIcon फ़ंक्शन (winuser.h) ","date":"2024-04-19T01:55:17+09:00","permalink":"http://kenji.blog/hi/p/loadicon-%E0%A4%95%E0%A5%8B-destroyicon-%E0%A4%95%E0%A5%89%E0%A4%B2-%E0%A4%95%E0%A4%B0%E0%A4%A8%E0%A5%87-%E0%A4%95%E0%A5%80-%E0%A4%86%E0%A4%B5%E0%A4%B6%E0%A5%8D%E0%A4%AF%E0%A4%95%E0%A4%A4%E0%A4%BE-%E0%A4%A8%E0%A4%B9%E0%A5%80%E0%A4%82-%E0%A4%B9%E0%A5%88/","title":"LoadIcon को DestroyIcon कॉल करने की आवश्यकता नहीं है"},{"content":"जनरेटिव एआई पर व्याख्यान वीडियो \u0026ldquo;जनरेटिव एआई\u0026rdquo; (1) मासायुकी नाकाओ, टोक्यो विश्वविद्यालय के प्रोफेसर 2023.9.8 \u0026ldquo;जनरेटिव एआई\u0026rdquo; (2) कुनियोशी सकाई, टोक्यो विश्वविद्यालय के प्रोफेसर 2023.10.11 \u0026ldquo;जनरेटिव एआई\u0026rdquo; (3) युताका मात्सुओ, टोक्यो विश्वविद्यालय के प्रोफेसर 2024.3.15 ","date":"2024-04-16T02:13:56+09:00","image":"http://kenji.blog/p/%E7%94%9F%E6%88%90ai%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6/img_hu1a8581c4b72be646476cf90db2209d32_686551_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/%E0%A4%9C%E0%A4%A8%E0%A4%B0%E0%A5%87%E0%A4%9F%E0%A4%BF%E0%A4%B5-%E0%A4%8F%E0%A4%86%E0%A4%88-%E0%A4%95%E0%A5%87-%E0%A4%AC%E0%A4%BE%E0%A4%B0%E0%A5%87-%E0%A4%AE%E0%A5%87%E0%A4%82/","title":"जनरेटिव एआई के बारे में"},{"content":"curl के साथ QR कोड जनरेट करें ध्यान दें: प्रस्तुत विधियाँ सर्वर-साइड पर उत्पन्न एक QR कोड वापस करती हैं, इसलिए लॉग रिकॉर्ड किए जा सकते हैं। व्यक्तिगत जानकारी जैसी गोपनीय जानकारी को QR कोड में परिवर्तित करते समय सावधान रहें।\nविधि 1 यह कमांड प्रॉम्प्ट में QR कोड जनरेट करने की एक विधि है। qrenco.de टेक्स्ट-आधारित प्रतिक्रिया देता है।\n1 curl qrenco.de/kenji.blog आउटपुट परिणाम 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 █████████████████████████████ █████████████████████████████ ████ ▄▄▄▄▄ █ ▄ ▄ █ ▄▄▄▄▄ ████ ████ █ █ █ ▀▀▀██ █ █ ████ ████ █▄▄▄█ █▀▀█▀▄█ █▄▄▄█ ████ ████▄▄▄▄▄▄▄█▄▀ ▀ █▄▄▄▄▄▄▄████ ████▄ █▀▄ ▄▀█▄▀ ▀██▄▀ ▄████ ████▀▀▀█ ▄▄ ▄█▄█▀█▀▄██ ▀████ ████▄▄▄██▄▄█ █▀█ ▄██▀▀█ █████ ████ ▄▄▄▄▄ █▀█ ▀ ▄▀▄▄▄ ▀████ ████ █ █ █▄▄ ▄▀▄▀▄ ██ ▀████ ████ █▄▄▄█ █▀▀█ ▀▄▄▄ ▄▄██████ ████▄▄▄▄▄▄▄█▄▄███▄▄█▄███▄████ █████████████████████████████ █████████████████████████████ संदर्भ qrenco.de विधि 2 api.qrserver.com एक छवि लौटाता है।\n1 curl -o qr.png \u0026#34;https://api.qrserver.com/v1/create-qr-code/?size=150x150\u0026amp;data=HelloWorld\u0026#34; आउटपुट परिणाम संदर्भ QR Code Generator ","date":"2024-04-16T00:42:27+09:00","image":"http://kenji.blog/p/curl%E3%81%A7qr%E3%82%B3%E3%83%BC%E3%83%89%E7%94%9F%E6%88%90/img_hub03976e78daddb607d3d46f69887db4b_11127_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/curl%E3%81%A7qr%E3%82%B3%E3%83%BC%E3%83%89%E7%94%9F%E6%88%90/","title":"curl के साथ QR कोड जनरेट करें"},{"content":"शॉर्टकट सूची शॉर्टकट कुंजी विवरण Ctrl + B बोल्ड करें Ctrl + I इटैलिक करें Ctrl + U अंडरलाइन करें Ctrl + E केंद्र में संरेखित करें Ctrl + L बाएं संरेखित करें Ctrl + R दाएं संरेखित करें Ctrl + ] फ़ॉन्ट आकार बढ़ाएं Ctrl + [ फ़ॉन्ट आकार घटाएं Ctrl + C कॉपी करें Ctrl + V पेस्ट करें Ctrl + X कट करें Ctrl + Z पूर्ववत करें Ctrl + Y फिर से करें Ctrl + A सभी चुनें Shift + तीर कुंजियां सीमा का चयन करें Ctrl + F टेक्स्ट खोजें Ctrl + H टेक्स्ट बदलें Ctrl + P प्रिंट पूर्वावलोकन Ctrl + S दस्तावेज़ सहेजें F12 इस रूप में सहेजें Ctrl + Home दस्तावेज़ की शुरुआत में जाएं Ctrl + End दस्तावेज़ के अंत में जाएं संदर्भ Word में कीबोर्ड शॉर्टकट ","date":"2024-04-07T14:18:51+09:00","image":"http://kenji.blog/p/microsoft-word%E3%81%AE%E3%82%B7%E3%83%A7%E3%83%BC%E3%83%88%E3%82%AB%E3%83%83%E3%83%88%E4%B8%80%E8%A6%A7/img_hu52c1b9e3b4195e8df02b1851180b33b3_10388_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/microsoft-word%E3%81%AE%E3%82%B7%E3%83%A7%E3%83%BC%E3%83%88%E3%82%AB%E3%83%83%E3%83%88%E4%B8%80%E8%A6%A7/","title":"Microsoft Word शॉर्टकट सूची"},{"content":"यहां \u0026ldquo;Tab Auto Refresh\u0026rdquo; नामक एक Edge ब्राउज़र एक्सटेंशन प्रस्तुत है जो वेब पेजों को स्वचालित रूप से रिफ्रेश करता है।\nTab Auto Refresh स्थापित करना Tab Auto Refresh\nऊपर दी गई साइट पर जाएं और इंस्टॉल करें पर क्लिक करें।\nएक्सटेंशन जोड़ें पर क्लिक करें।\nउपयोग कैसे करें इंस्टॉलेशन पूरा होने के बाद, Edge के ऊपरी दाएं कोने में एक आइकन जुड़ जाएगा।\nवह वेब पेज खोलें जिसे आप ऑटो-रिफ्रेश करना चाहते हैं और ऑटो-रिफ्रेश शुरू करने के लिए आइकन पर क्लिक करें।\nहरे रंग से हाइलाइट किया गया क्षेत्र ऑटो-रिफ्रेश अंतराल है। ऑटो-रिफ्रेश के लिए समय चुनें।\nऑटो-रिफ्रेश को रोकने के लिए, आइकन पर क्लिक करें और फिर Stop reloading this tab पर क्लिक करें।\n","date":"2024-04-06T15:36:54+09:00","image":"http://kenji.blog/p/web%E3%83%9A%E3%83%BC%E3%82%B8%E3%81%AE%E8%87%AA%E5%8B%95%E6%9B%B4%E6%96%B0%E3%83%96%E3%83%A9%E3%82%A6%E3%82%B6%E6%8B%A1%E5%BC%B5edge%E3%82%A2%E3%83%89%E3%82%AA%E3%83%B3/img_hu57eb7510f8ab42d5a8107b2d3db76a45_3448_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/web%E3%83%9A%E3%83%BC%E3%82%B8%E3%81%AE%E8%87%AA%E5%8B%95%E6%9B%B4%E6%96%B0%E3%83%96%E3%83%A9%E3%82%A6%E3%82%B6%E6%8B%A1%E5%BC%B5edge%E3%82%A2%E3%83%89%E3%82%AA%E3%83%B3/","title":"वेब पेज ऑटो-रिफ्रेश ब्राउज़र एक्सटेंशन (Edge ऐड-ऑन)"},{"content":"विज़ुअल स्टूडियो शॉर्टकट सूची मैंने विज़ुअल स्टूडियो शॉर्टकट्स की एक सूची बनाई है जिनका मैं व्यक्तिगत रूप से अक्सर उपयोग करता हूँ। विज़ुअल स्टूडियो के कीबोर्ड शॉर्टकट्स को याद करके, आप विकास कार्य को अधिक कुशलता से कर सकते हैं। कृपया उनका लाभ उठाएं।\n※विज़ुअल स्टूडियो 2022 में सत्यापित।\nशॉर्टकट कुंजी विवरण F1 चयनित शब्द के लिए सहायता दिखाएं F2 बुकमार्क पर जाएं Ctrl + F2 एक बुकमार्क जोड़ें Ctrl + Shift + F2 सभी बुकमार्क हटाएं F5 बिल्ड करें और चलाएं (डीबग के साथ) Ctrl + F5 बिल्ड करें और चलाएं (डीबग के बिना) F7 बिल्ड F9 कर्सर लाइन में ब्रेकपॉइंट जोड़ें Ctrl + F9 कर्सर लाइन के ब्रेकपॉइंट को अक्षम करें Shift + Ctrl + F9 सभी ब्रेकपॉइंट्स हटाएं F10 स्टेप ओवर F11 स्टेप इन F12 परिभाषा पर जाएं Ctrl + D कर्सर लाइन की प्रतिलिपि बनाएँ Ctrl + X कोई चयन न होने पर लाइन काटें Ctrl + Shift + ] कर्सर पर कोष्ठक से मेल खाने वाले कोष्ठक तक चयन करें Alt + ऊपर/नीचे तीर कुंजी कर्सर लाइन को ऊपर या नीचे ले जाएँ Alt + Shift + तीर कुंजी मल्टी-कर्सर/ब्लॉक चयन Ctrl + Tab स्रोत कोड/विंडो दृश्य स्विच करें Ctrl + Shift + V क्लिपबोर्ड इतिहास दिखाएं Ctrl + K के बाद Ctrl + C कर्सर लाइन को कमेंट आउट करें Ctrl + K के बाद Ctrl + U कर्सर लाइन को अनकमेंट करें Ctrl + G निर्दिष्ट लाइन नंबर पर जाएं Ctrl + F खोजें Ctrl + Shift + F वैश्विक खोज Ctrl + H बदलें Ctrl + Shift + F वैश्विक बदलाव Ctrl + Tab स्रोत कोड/विंडो दृश्य स्विच करें Ctrl + Space शब्द पूर्णता Ctrl + Alt + L सॉल्यूशन एक्सप्लोरर विंडो खोलें Ctrl + Shift + E रिसोर्स व्यू विंडो खोलें Ctrl + 0 के बाद Ctrl + G Git कमिट विंडो खोलें संदर्भ विज़ुअल स्टूडियो में डिफ़ॉल्ट कीबोर्ड शॉर्टकट ","date":"2024-04-06T11:27:37+09:00","image":"http://kenji.blog/p/visual-studio-%E3%82%B7%E3%83%A7%E3%83%BC%E3%83%88%E3%82%AB%E3%83%83%E3%83%88%E4%B8%80%E8%A6%A7/img_hue1a55f22c15dca7427db7cd2dfd89735_223690_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/%E0%A4%B5%E0%A4%BF%E0%A4%9C%E0%A4%BC%E0%A5%81%E0%A4%85%E0%A4%B2-%E0%A4%B8%E0%A5%8D%E0%A4%9F%E0%A5%82%E0%A4%A1%E0%A4%BF%E0%A4%AF%E0%A5%8B-%E0%A4%B6%E0%A5%89%E0%A4%B0%E0%A5%8D%E0%A4%9F%E0%A4%95%E0%A4%9F-%E0%A4%B8%E0%A5%82%E0%A4%9A%E0%A5%80/","title":"विज़ुअल स्टूडियो शॉर्टकट सूची"},{"content":"यहां बताया गया है कि Windows 10/11 में एक्सप्लोरर के राइट-क्लिक मेनू (संदर्भ मेनू) में Hidemaru Editor के grep को कैसे जोड़ा जाए।\nचेतावनी: निम्नलिखित प्रक्रिया रजिस्ट्री को बदल देती है। कृपया इसे अपने जोखिम पर करें।\nप्रक्रिया नीचे दिए गए लिंक को खोलें और इसे किसी भी फ़ोल्डर में सहेजें। 秀丸レジストリ登録.reg\nरजिस्ट्री में जोड़ने के लिए 秀丸レジストリ登録.reg फ़ाइल पर डबल-क्लिक करें। संदर्भ 秀丸grepをフォルダの右クリックメニューから行う ","date":"2024-04-03T00:00:46+09:00","image":"http://kenji.blog/p/%E3%82%A8%E3%82%AF%E3%82%B9%E3%83%97%E3%83%AD%E3%83%BC%E3%83%A9%E3%83%BC%E3%81%AE%E5%8F%B3%E3%82%AF%E3%83%AA%E3%83%83%E3%82%AF%E3%83%A1%E3%83%8B%E3%83%A5%E3%83%BC%E3%81%AB%E7%A7%80%E4%B8%B8%E3%82%A8%E3%83%87%E3%82%A3%E3%82%BFgrep%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%99%E3%82%8B/img_hu1bfa3588f39c8e6af312f48159d52b67_932_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/%E0%A4%8F%E0%A4%95%E0%A5%8D%E0%A4%B8%E0%A4%AA%E0%A5%8D%E0%A4%B2%E0%A5%8B%E0%A4%B0%E0%A4%B0-%E0%A4%B8%E0%A4%82%E0%A4%A6%E0%A4%B0%E0%A5%8D%E0%A4%AD-%E0%A4%AE%E0%A5%87%E0%A4%A8%E0%A5%82-%E0%A4%AE%E0%A5%87%E0%A4%82-hidemaru-editor-grep-%E0%A4%9C%E0%A5%8B%E0%A4%A1%E0%A4%BC%E0%A5%87%E0%A4%82/","title":"एक्सप्लोरर संदर्भ मेनू में Hidemaru Editor grep जोड़ें"},{"content":"क्या आप बर्थडे पैराडॉक्स के बारे में जानते हैं? मैं आपको एक थोड़ी अजीब बात बताता हूँ। आपके अनुसार \u0026ldquo;किसी के समान जन्मदिन होने की संभावना\u0026rdquo; को उच्च होने के लिए कितने लोगों को इकट्ठा होना चाहिए?\nउदाहरण के लिए, एक वर्ष में 365 दिन होते हैं, इसलिए जब आपको बताया जाता है कि \u0026ldquo;यदि 23 लोग इकट्ठा होते हैं, तो किसी के साथ जन्मदिन साझा करने की संभावना 50% से अधिक है\u0026rdquo;\u0026hellip; यह कुछ हद तक अंतर्ज्ञान के विरुद्ध लगता है।\nलेकिन यह वास्तव में 50% से अधिक है।\nऐसा क्यों होता है? इस घटना को \u0026ldquo;बर्थडे पैराडॉक्स\u0026rdquo; कहा जाता है। नाम \u0026ldquo;विरोधाभास (पैराडॉक्स)\u0026rdquo; है, लेकिन इसका एक उचित गणितीय कारण है।\nजब लोगों की संख्या \u0026ldquo;n\u0026rdquo; होती है, तो किसी का भी जन्मदिन समान न होने की संभावना की गणना निम्नलिखित सूत्र द्वारा की जा सकती है:\n1 P(कोई समान नहीं) = 365/365 × 364/365 × 363/365 × ... × (365 - n + 1)/365 इसे 1 से घटाने पर, \u0026ldquo;किसी के साथ समान होने की संभावना\u0026rdquo; सामने आती है।\nआइए परिणाम देखें\u0026hellip; लोगों की संख्या समान जन्मदिन वाले लोगों की संभावना 10 लोग लगभग 11.7% 20 लोग लगभग 41.1% 23 लोग लगभग 50.7% (यहाँ ध्यान दें!) 30 लोग लगभग 70.6% 70 लोग आश्चर्यजनक रूप से लगभग 99.9%! यानी, केवल 23 लोगों के होने पर, आधे से अधिक संभावना है कि किसी का जन्मदिन समान होगा। स्कूल की कक्षा या काम पर बैठक में भी यह काफी लागू होता है।\nनिष्कर्ष: अंतर्ज्ञान और गणित के बीच का अंतर दिलचस्प है \u0026ldquo;बर्थडे पैराडॉक्स\u0026rdquo; एक दिलचस्प उदाहरण है कि हमारा अंतर्ज्ञान और वास्तविक गणितीय संभावना कैसे भिन्न होती है। इस तरह की बातें जानने से छोटी बातचीत और क्विज़ मज़ेदार हो सकते हैं!\nसंदर्भ लिंक जन्मदिन का विरोधाभास (Wikipedia) ","date":"2024-04-02T01:20:50+09:00","image":"http://kenji.blog/p/%E3%83%90%E3%83%BC%E3%82%B9%E3%83%87%E3%82%A4%E3%83%91%E3%83%A9%E3%83%89%E3%83%83%E3%82%AF%E3%82%B9%E3%81%A8%E3%81%AF/img_huf1a218b90023063d558c5c810438e753_117620_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/%E3%83%90%E3%83%BC%E3%82%B9%E3%83%87%E3%82%A4%E3%83%91%E3%83%A9%E3%83%89%E3%83%83%E3%82%AF%E3%82%B9%E3%81%A8%E3%81%AF/","title":"बर्थडे पैराडॉक्स क्या है?"},{"content":"स्निपिंग टूल (Snipping Tool) क्या है स्निपिंग टूल विंडोज में एक अंतर्निहित स्क्रीनशॉट टूल है। आप स्क्रीन के एक हिस्से को काटकर सहेज सकते हैं, पूरी स्क्रीन कैप्चर कर सकते हैं, या रिकॉर्ड कर सकते हैं।\nस्निपिंग टूल कैसे प्रारंभ करें इसे शुरू करने के मुख्य रूप से 3 तरीके हैं:\nWin कुंजी दबाएं, Snipping Tool टाइप करें और Enter कुंजी दबाएं। Win कुंजी + Shift + S कुंजी दबाएं। Win कुंजी + R कुंजी दबाएं, snippingtool टाइप करें और Enter कुंजी दबाएं। स्निपिंग टूल का उपयोग कैसे करें कैप्चर की गई छवि को सहेजने के चरण इस प्रकार हैं: कैमरा आइकन चुनें। नया बटन पर क्लिक करें। उस क्षेत्र का चयन करें जिसे आप कैप्चर करना चाहते हैं। इस रूप में सहेजें (Save as) बटन पर क्लिक करें। सहेजने का स्थान और फ़ाइल का नाम दर्ज करें और सहेजें। कैप्चर किए गए वीडियो को सहेजने के चरण इस प्रकार हैं: वीडियो आइकन चुनें। नया बटन पर क्लिक करें। उस क्षेत्र का चयन करें जिसे आप कैप्चर करना चाहते हैं। प्रारंभ (Start) बटन पर क्लिक करें। स्क्रीन रिकॉर्ड करें। रोकें (Stop) बटन पर क्लिक करें। इस रूप में सहेजें (Save as) बटन पर क्लिक करें। सहेजने का स्थान और फ़ाइल का नाम दर्ज करें और सहेजें। संदर्भ स्निपिंग टूल का उपयोग करके स्क्रीनशॉट कैप्चर करें ","date":"2024-04-01T23:19:45+09:00","image":"http://kenji.blog/p/snipping-tool%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9/img_hu405fe4bbcac8bf4b2046262eb8f35d4a_18613_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/%E0%A4%B8%E0%A5%8D%E0%A4%A8%E0%A4%BF%E0%A4%AA%E0%A4%BF%E0%A4%82%E0%A4%97-%E0%A4%9F%E0%A5%82%E0%A4%B2-snipping-tool-%E0%A4%95%E0%A4%BE-%E0%A4%89%E0%A4%AA%E0%A4%AF%E0%A5%8B%E0%A4%97-%E0%A4%95%E0%A5%88%E0%A4%B8%E0%A5%87-%E0%A4%95%E0%A4%B0%E0%A5%87%E0%A4%82/","title":"स्निपिंग टूल (Snipping Tool) का उपयोग कैसे करें"},{"content":"यहां बताया गया है कि कंप्यूटर को लॉक करने के लिए शॉर्टकट कैसे बनाएं।\nयह सुविधाजनक है क्योंकि आप डेस्कटॉप पर बनाए गए शॉर्टकट पर डबल-क्लिक करके अपने कंप्यूटर को लॉक कर सकते हैं।\nकैसे बनाएं 1. डेस्कटॉप पर राइट-क्लिक करें, नया \u0026gt; शॉर्टकट चुनें 2. शॉर्टकट बनाने की स्क्रीन दिखाई देगी, rundll32.exe user32.dll,LockWorkStation दर्ज करें और अगला पर क्लिक करें 3. शॉर्टकट का नाम कंप्यूटर लॉक करें दर्ज करें और समाप्त पर क्लिक करें 4. बनाए गए शॉर्टकट का आइकन बदलें बनाए गए शॉर्टकट पर राइट-क्लिक करें और गुण चुनें\nआइकन बदलें पर क्लिक करें\nपीले लॉक आइकन को चुनें और ओके पर क्लिक करें, गुण बंद करने के लिए फिर से ओके पर क्लिक करें\nबस इतना ही।\nबनाए गए शॉर्टकट पर डबल-क्लिक करने से कंप्यूटर लॉक हो जाएगा।\nआप उसी तरह कंप्यूटर को लॉक करने के लिए Win कुंजी + L कुंजी भी दबा सकते हैं।\n※ ध्यान दें: कंप्यूटर को लॉक करने पर कोई पुष्टिकरण संवाद प्रदर्शित नहीं होगा।\n","date":"2024-04-01T01:37:49+09:00","image":"http://kenji.blog/p/%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E3%83%BC%E3%82%92%E3%83%AD%E3%83%83%E3%82%AF%E3%81%99%E3%82%8B%E3%82%B7%E3%83%A7%E3%83%BC%E3%83%88%E3%82%AB%E3%83%83%E3%83%88%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/img_hud14aa91db8f19c318807d0f2f72ee0fc_128434_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/%E0%A4%95%E0%A4%82%E0%A4%AA%E0%A5%8D%E0%A4%AF%E0%A5%82%E0%A4%9F%E0%A4%B0-%E0%A4%95%E0%A5%8B-%E0%A4%B2%E0%A5%89%E0%A4%95-%E0%A4%95%E0%A4%B0%E0%A4%A8%E0%A5%87-%E0%A4%95%E0%A5%87-%E0%A4%B2%E0%A4%BF%E0%A4%8F-%E0%A4%B6%E0%A5%89%E0%A4%B0%E0%A5%8D%E0%A4%9F%E0%A4%95%E0%A4%9F-%E0%A4%95%E0%A5%88%E0%A4%B8%E0%A5%87-%E0%A4%AC%E0%A4%A8%E0%A4%BE%E0%A4%8F%E0%A4%82/","title":"कंप्यूटर को लॉक करने के लिए शॉर्टकट कैसे बनाएं"},{"content":"मोंटी हॉल समस्या क्या है? मोंटी हॉल समस्या एक अमेरिकी टेलीविजन शो \u0026ldquo;Let\u0026rsquo;s Make a Deal\u0026rdquo; में खेले जाने वाले गेम से प्रेरित है, और यह इस प्रकार है:\nपूर्व शर्तें: 3 दरवाजों में से 1 के पीछे एक पुरस्कार है, और बाकी 2 के पीछे कुछ नहीं है।\nप्रतिभागी 3 दरवाजों में से 1 को चुनता है। होस्ट, प्रतिभागी द्वारा नहीं चुने गए 2 दरवाजों में से 1 दरवाजा खोलता है, जिसके पीछे कुछ नहीं होता। प्रतिभागी से पूछा जाता है कि क्या वे अपना चुना हुआ दरवाजा बदलना चाहते हैं। इस समय, समस्या यह सोचना है कि प्रतिभागी के लिए दरवाजा बदलना बेहतर है या नहीं।\nसमाधान मोंटी हॉल समस्या का समाधान इस प्रकार है:\nयदि प्रतिभागी अपना प्रारंभिक चुना हुआ दरवाजा नहीं बदलता है\nजीतने की प्रायिकता: 1/3 हारने की प्रायिकता: 2/3 होस्ट द्वारा खाली दरवाजा खोलने के बाद\nयदि नहीं बदलता है, जीतने की प्रायिकता: 1/3 (1. की जीतने की प्रायिकता से अपरिवर्तित) यदि बदलता है, जीतने की प्रायिकता: 2/3 (1. में जीतने के अलावा की प्रायिकता) इसलिए, यदि प्रतिभागी दरवाजा बदलता है तो जीतने की प्रायिकता अधिक होती है।\nसंदर्भ विकिपीडिया Monty Hall problem ","date":"2024-03-31T23:41:51+09:00","image":"http://kenji.blog/p/%E3%83%A2%E3%83%B3%E3%83%86%E3%82%A3%E3%83%9B%E3%83%BC%E3%83%AB%E5%95%8F%E9%A1%8C/img_1_hu20d98afb87b485a440eb6d6beaf3ac5e_189614_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/%E3%83%A2%E3%83%B3%E3%83%86%E3%82%A3%E3%83%9B%E3%83%BC%E3%83%AB%E5%95%8F%E9%A1%8C/","title":"मोंटी हॉल समस्या"},{"content":"micro डाउनलोड करें https://github.com/zyedidia/micro/releases\nऊपर दिए गए लिंक को खोलें, Show all XX assets (X की जगह संख्या है) पर क्लिक करें और micro-X.X.XX-win64.zip (X की जगह संख्या है) डाउनलोड करें। ज़िप फ़ाइल को अनज़िप करें और सभी फ़ाइलों को अपनी पसंद के किसी भी फ़ोल्डर में रखें।\nपर्यावरण चर (Environment Variables) सेट करें कमांड प्रॉम्प्ट से micro.exe का उपयोग करने के लिए, आपको पर्यावरण चर सेट करने की आवश्यकता है।\nWin की + R की दबाएं, sysdm.cpl टाइप करें और Enter की दबाएं। सिस्टम गुण (System Properties) के सिस्टम गुण पर क्लिक करें। पर्यावरण चर (Environment Variables) पर क्लिक करें। सिस्टम चर (System variables) में Path चुनें और संपादित करें (Edit) पर क्लिक करें। नया (New) पर क्लिक करें और उस फ़ोल्डर का पथ जोड़ें जिसमें micro.exe है। सभी संवाद बॉक्स बंद करने के लिए OK पर क्लिक करें। कमांड प्रॉम्प्ट को पुनरारंभ करें और यह जांचने के लिए nano टाइप करें कि क्या इसे निष्पादित किया जा सकता है। micro का उपयोग कैसे करें जब आप कमांड प्रॉम्प्ट में micro टाइप करते हैं और इसे निष्पादित करते हैं, तो निम्नलिखित स्क्रीन दिखाई देगी। मुख्य संचालन और शॉर्टकट कुंजियाँ इस प्रकार हैं:\nशॉर्टकट कुंजी संचालन Ctrl+Q फ़ाइल बंद करें Ctrl+S फ़ाइल सहेजें Ctrl+O फ़ाइल खोलें Ctrl+A सभी का चयन करें Ctrl+X चयन को काटें (Cut) Ctrl+C चयन की प्रतिलिपि बनाएँ (Copy) Ctrl+V चिपकाएँ (Paste) Ctrl+Z पूर्ववत करें (Undo) Ctrl+Y फिर से करें (Redo) Ctrl+E एडिटर कमांड निष्पादित करें संदर्भ micro ","date":"2024-03-31T21:50:39+09:00","image":"http://kenji.blog/p/%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%82%A8%E3%83%87%E3%82%A3%E3%82%BFmicro%E3%82%92windows%E3%81%AB%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/img_hu5c724e25c36dcf3781d5276f98286fd4_13721_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/%E0%A4%B5%E0%A4%BF%E0%A4%82%E0%A4%A1%E0%A5%8B%E0%A4%9C-%E0%A4%AA%E0%A4%B0-micro-%E0%A4%9F%E0%A5%87%E0%A4%95%E0%A5%8D%E0%A4%B8%E0%A5%8D%E0%A4%9F-%E0%A4%8F%E0%A4%A1%E0%A4%BF%E0%A4%9F%E0%A4%B0-%E0%A4%95%E0%A5%88%E0%A4%B8%E0%A5%87-%E0%A4%87%E0%A4%A8%E0%A4%B8%E0%A5%8D%E0%A4%9F%E0%A5%89%E0%A4%B2-%E0%A4%95%E0%A4%B0%E0%A5%87%E0%A4%82/","title":"विंडोज पर micro टेक्स्ट एडिटर कैसे इनस्टॉल करें"},{"content":"nano.exe डाउनलोड करें https://sourceforge.net/projects/nano-for-windows/\nउपरोक्त लिंक खोलें, Download पर क्लिक करें और GNU-Nano_Win32(static).zip डाउनलोड करें। ज़िप फ़ाइल निकालें और nano.exe को किसी भी फ़ोल्डर में रखें।\nजापानी इनपुट समर्थित नहीं है (31/03/2024 तक)। पर्यावरण चर सेट करें कमांड प्रॉम्प्ट से nano.exe का उपयोग करने के लिए, आपको पर्यावरण चर (environment variables) सेट करने होंगे।\nWin कुंजी + R कुंजी दबाएं, sysdm.cpl टाइप करें और Enter कुंजी दबाएं। सिस्टम गुण में सिस्टम गुण पर क्लिक करें। पर्यावरण चर पर क्लिक करें। सिस्टम चर के तहत Path चुनें और संपादित करें पर क्लिक करें। नया पर क्लिक करें और nano.exe का पथ (path) जोड़ें। सभी संवाद बॉक्स बंद करने के लिए OK पर क्लिक करें। कमांड प्रॉम्प्ट को पुनरारंभ करें, nano टाइप करें और जांचें कि यह चलता है या नहीं। nano का उपयोग कैसे करें जब आप nano टाइप करते हैं और चलाते हैं, तो निम्न स्क्रीन प्रदर्शित होती है।\nशॉर्टकट का विवरण स्क्रीन के नीचे प्रदर्शित होता है।\nप्रतीकों के अर्थ इस प्रकार हैं:\n^ का मतलब Ctrl कुंजी है। M- का मतलब Alt कुंजी है। सहेजने और बंद करने के लिए, Ctrl + S दबाएं, और फिर Ctrl + X दबाएं।\nसंदर्भ GNU nano ","date":"2024-03-31T18:09:32+09:00","image":"http://kenji.blog/p/cli%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%82%A8%E3%83%87%E3%82%A3%E3%82%BFnano%E3%82%92windows%E3%81%AB%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/img_1_hud0bad6678c124835195c96dbf5908709_45668_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/cli%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%82%A8%E3%83%87%E3%82%A3%E3%82%BFnano%E3%82%92windows%E3%81%AB%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/","title":"विंडोज पर CLI टेक्स्ट एडिटर nano कैसे इंस्टॉल करें"},{"content":"wsl में \u0026lsquo;Temporary failure resolving\u0026hellip;\u0026rsquo; त्रुटि को कैसे ठीक करें 1 2 3 4 kenji@MyComputer:~$ sudo apt update [sudo] password for kenji: Err:1 http://archive.ubuntu.com/ubuntu focal InRelease Temporary failure resolving \u0026#39;archive.ubuntu.com\u0026#39; जब wsl में उपरोक्त त्रुटि प्रदर्शित होती है, तो DNS सर्वर सेटिंग्स गलत हो सकती हैं। मेरे वातावरण में, इसे निम्नलिखित चरणों से हल किया गया था।\nwsl प्रारंभ करें। sudo nano /etc/resolv.conf निष्पादित करें। nameserver लाइन को निम्नानुसार बदलें: 1 nameserver 8.8.8.8 Ctrl + S के साथ सहेजें, और Ctrl + X के साथ बाहर निकलें। sudo apt update निष्पादित करें। यदि त्रुटि प्रदर्शित नहीं होती है, तो यह हल हो गया है। यदि उपरोक्त चरणों से हल नहीं होता है ऐसा लगता है कि ऐसे मामले हैं जहां उपरोक्त चरणों से इसका समाधान नहीं होता है। कृपया निम्नलिखित लेख देखें।\nWSL में apt update के दौरान \u0026lsquo;Temporary failure resolving ～\u0026rsquo; को कैसे हल करें ","date":"2024-03-31T16:57:33+09:00","image":"http://kenji.blog/p/wsl-%E3%81%A7temporary-failure-resolving%E3%81%A8%E8%A1%A8%E7%A4%BA%E3%81%95%E3%82%8C%E3%82%8B%E5%A0%B4%E5%90%88%E3%81%AE%E5%AF%BE%E5%87%A6%E6%96%B9%E6%B3%95/img_hu6b9065bcca76a2739d7c532080d71efa_118604_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/wsl-%E3%81%A7temporary-failure-resolving%E3%81%A8%E8%A1%A8%E7%A4%BA%E3%81%95%E3%82%8C%E3%82%8B%E5%A0%B4%E5%90%88%E3%81%AE%E5%AF%BE%E5%87%A6%E6%96%B9%E6%B3%95/","title":"wsl में 'Temporary failure resolving...' त्रुटि को कैसे ठीक करें"},{"content":"टास्कबार पर राइट-क्लिक करके बंद करने का तरीका यह तरीका Windows 10 के लिए है। ऐसा लगता है कि Windows 11 में यह मेनू दिखाई नहीं देता है। अगर आप टास्कबार पर Shift और Ctrl कुंजियों को दबाए रखते हुए राइट-क्लिक करते हैं, तो मेनू में एक्सप्लोरर से बाहर निकलें दिखाई देगा।\nटास्क मैनेजर से बंद करने का तरीका टास्क मैनेजर खोलने के लिए Ctrl + Shift + Esc कुंजियां दबाएं। विवरण चुनें। explorer.exe चुनें, Delete कुंजी दबाएं, और जब पूछा जाए क्या आप explorer.exe को समाप्त करना चाहते हैं?, तो प्रक्रिया समाप्त करें चुनें। कमांड प्रॉम्प्ट से बंद करने का तरीका Win + R कुंजियां दबाएं, cmd टाइप करें, और Enter दबाएं। taskkill /f /im explorer.exe टाइप करें, और Enter दबाएं। टास्क मैनेजर से एक्सप्लोरर को शुरू करने का तरीका टास्क मैनेजर खोलने के लिए Ctrl + Shift + Esc कुंजियां दबाएं। फ़ाइल मेनू से, नया कार्य चलाएं चुनें। explorer.exe टाइप करें, और Enter दबाएं। ","date":"2024-03-30T15:40:24+09:00","image":"http://kenji.blog/p/%E3%82%A8%E3%82%AF%E3%82%B9%E3%83%97%E3%83%AD%E3%83%BC%E3%83%A9%E3%83%BC%E3%81%AE%E7%B5%82%E4%BA%86%E5%86%8D%E8%B5%B7%E5%8B%95%E6%96%B9%E6%B3%95/img_2_hue735828bd961ff4973e3abea5e21f198_20142_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/%E3%82%A8%E3%82%AF%E3%82%B9%E3%83%97%E3%83%AD%E3%83%BC%E3%83%A9%E3%83%BC%E3%81%AE%E7%B5%82%E4%BA%86%E5%86%8D%E8%B5%B7%E5%8B%95%E6%96%B9%E6%B3%95/","title":"एक्सप्लोरर को बंद और रीस्टार्ट कैसे करें"},{"content":"Windows 11 में क्लासिक राइट-क्लिक मेनू को कैसे पुनर्स्थापित करें यहाँ बताया गया है कि Windows 11 में क्लासिक राइट-क्लिक मेनू को कैसे पुनर्स्थापित किया जाए।\nरजिस्ट्री संपादक खोलें। Win कुंजी + R कुंजी दबाएँ, regedit टाइप करें और Enter कुंजी दबाएँ। HKEY_CURRENT_USER\\Software\\Classes\\CLSID\\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2} पर जाएँ। यदि यह कुंजी मौजूद नहीं है, तो इसे बनाएँ।\nHKEY_CURRENT_USER\\Software\\Classes\\CLSID\\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\\InprocServer32 पर जाएँ। यदि यह कुंजी मौजूद नहीं है, तो इसे बनाएँ।\nपुष्टि करें कि InprocServer32 में (डिफ़ॉल्ट) का कोई मान नहीं है।\nकंप्यूटर को पुनरारंभ करें। पुष्टि करें कि राइट-क्लिक मेनू क्लासिक संस्करण में वापस आ गया है। ","date":"2024-03-30T13:13:36+09:00","image":"http://kenji.blog/p/windows-11%E3%81%AE%E5%8F%B3%E3%82%AF%E3%83%AA%E3%83%83%E3%82%AF%E3%83%A1%E3%83%8B%E3%83%A5%E3%83%BC%E3%82%92%E5%BE%93%E6%9D%A5%E7%89%88%E3%81%AB%E6%88%BB%E3%81%99%E6%96%B9%E6%B3%95/img_hub131b7dada89fffcdae45f20639b1ab3_50623_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/how-to-restore-classic-context-menu-windows-11/","title":"Windows 11 में क्लासिक राइट-क्लिक मेनू को कैसे पुनर्स्थापित करें"},{"content":"JetBrains Mono यह JetBrains द्वारा प्रदान किया गया एक ओपन-सोर्स प्रोग्रामिंग फ़ॉन्ट है।\nडाउनलोड: https://www.jetbrains.com/ja-jp/lp/mono/\nHackGen हकुगेन (HackGen) एक प्रोग्रामिंग फ़ॉन्ट है जो प्रोग्रामिंग के लिए डिज़ाइन किए गए अंग्रेजी फ़ॉन्ट Hack और Source Han Sans से प्राप्त फ़ॉन्ट GenJyuu Gothic को मिलाकर बनाया गया है।\nडाउनलोड: https://github.com/yuru7/HackGen/releases\nRicty Diminished Ricty Diminished , Ricty का एक सिस्टर फ़ॉन्ट है, जिसे Inconsolata और Migu 1M के बजाय Inconsolata और Circle M+ 1m को Ricty जनरेशन स्क्रिप्ट के साथ मिलाकर बनाया गया है। क्योंकि इसमें IPA Gothic के ग्लिफ़ शामिल नहीं हैं, इसके पास उपयोग करने योग्य कांजी ग्लिफ़्स की संख्या कम है, लेकिन इसके बदले में इसे SIL Open Font License के तहत वितरित किया जा सकता है।\nडाउनलोड: https://rictyfonts.github.io/diminished\nCica अल्फ़ान्यूमेरिक वर्णों और प्रतीकों के लिए Hack + DejaVu Sans Mono का उपयोग किया गया है। अन्य वर्णों के लिए, यह एक प्रोग्रामिंग फ़ॉन्ट है जो Rounded Mgen+ का उपयोग करता है।\nडाउनलोड: https://github.com/miiton/Cica/releases\nसंदर्भ:\nHack DejaVu Sans Mono Rounded Mgen+ Migu यह M+ और IPA का एक संयुक्त फ़ॉन्ट है।\nडाउनलोड: https://itouhiro.github.io/mixfont-mplus-ipa/migu/\nOsaka यह एक फ़ॉन्ट है जो Mac OS मानक फ़ॉन्ट Osaka को Windows पर उपयोग करने की अनुमति देता है।\nडाउनलोड: http://ifs.nog.cc/osakattf.hp.infoseek.co.jp/\nPlemolJP यह एक प्रोग्रामिंग फ़ॉन्ट है जो IBM द्वारा जारी किए गए ओपन-सोर्स जापानी फ़ॉन्ट IBM Plex Sans JP और IBM की Plex श्रृंखला से IBM Plex Mono को जोड़ता है।\nडाउनलोड: https://github.com/yuru7/PlemolJP/releases\n","date":"2024-03-30T02:21:31+09:00","image":"http://kenji.blog/p/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E3%81%A7%E4%BD%BF%E3%81%88%E3%82%8B%E3%83%95%E3%82%A9%E3%83%B3%E3%83%88%E9%9B%86/img_hu5455a1c7ae52190ddcafb3051b00c15b_52757_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/programming-fonts-collection/","title":"प्रोग्रामिंग के लिए फ़ॉन्ट्स का संग्रह"},{"content":"यहाँ \u0026lsquo;hide\u0026rsquo; कमांड के साथ हिदेमारू एडिटर (Hidemaru Editor) को शुरू करने का तरीका बताया गया है। नोट: इस तरीके का परीक्षण Windows 10/11 पर किया गया है।\nरजिस्ट्री एडिटर (Registry Editor) खोलें। HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths पर जाएँ। App Paths के अंतर्गत hide.exe नामक एक कुंजी (key) बनाएँ। इस कुंजी के नाम में .exe से पहले का भाग कमांड का नाम बन जाता है। hide.exe कुंजी के (Default) मान को हिदेमारू एडिटर की निष्पादन योग्य फ़ाइल (executable file) के पथ (path) पर सेट करें। मेरे वातावरण में, यह \u0026quot;C:\\Program Files (x86)\\Hidemaru\\Hidemaru.exe\u0026quot; था। hide.exe कुंजी में Path नामक एक स्ट्रिंग (String) मान बनाएँ। Path के डेटा को उस फ़ोल्डर के पथ पर सेट करें जिसमें हिदेमारू एडिटर की निष्पादन योग्य फ़ाइल है। मेरे वातावरण में, यह \u0026quot;C:\\Program Files (x86)\\Hidemaru\u0026quot; था। अब, Run डायलॉग बॉक्स में (जिसे Win + R दबाकर खोला जाता है), आप hide कमांड टाइप करके हिदेमारू एडिटर को शुरू कर सकते हैं। इसके अलावा, कमांड प्रॉम्प्ट (Command Prompt) में, आप इसे start hide कमांड के साथ शुरू कर सकते हैं। 1 2 3 4 5 Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\hide.exe] @=\u0026#34;\\\u0026#34;C:\\\\Program Files (x86)\\\\Hidemaru\\\\Hidemaru.exe\\\u0026#34;\u0026#34; \u0026#34;Path\u0026#34;=\u0026#34;\\\u0026#34;C:\\\\Program Files (x86)\\\\Hidemaru\\\\\\\u0026#34;\u0026#34; यदि आप उपरोक्त सामग्री को .reg फ़ाइल के रूप में सहेजते हैं और इसे चलाते हैं, तो सेटिंग्स रजिस्ट्री में जोड़ दी जाएंगी।\n","date":"2024-03-29T23:45:37+09:00","image":"http://kenji.blog/p/%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89hide%E3%81%A7%E7%A7%80%E4%B8%B8%E3%82%A8%E3%83%87%E3%82%A3%E3%82%BF%E3%82%92%E7%AB%8B%E3%81%A1%E4%B8%8A%E3%81%92%E3%82%8B%E6%96%B9%E6%B3%95/img_2_hu43898a3aaad9ace099d9a060bc7203e5_68153_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/hide-command-ke-saath-hidemaru-editor-kaise-shuru-karein/","title":"'hide' कमांड के साथ हिदेमारू एडिटर (Hidemaru Editor) कैसे शुरू करें"},{"content":"गणित की अनसुलझी समस्याएँ यहाँ गणित की अनसुलझी समस्याओं के बारे में बताया गया है। हालाँकि समस्याएँ सरल हैं, लेकिन ऐसी कई समस्याएँ हैं जो अभी तक सिद्ध नहीं हुई हैं।\nक्या पूर्ण संख्याएँ अनंत हैं? पूर्ण संख्या वह प्राकृतिक संख्या है जिसके धनात्मक विभाजकों (स्वयं को छोड़कर) का योग स्वयं उस संख्या के बराबर होता है। उदाहरण के लिए,\n6 के विभाजक 1, 2, 3 हैं, और चूँकि 1+2+3=6 है, यह एक पूर्ण संख्या है। 28 के विभाजक 1, 2, 4, 7, 14 हैं, और चूँकि 1+2+4+7+14=28 है, यह एक पूर्ण संख्या है। वर्तमान में केवल 51 पूर्ण संख्याएँ खोजी गई हैं, और यह अनुमान है कि वे अनंत हैं, लेकिन यह अभी तक सिद्ध नहीं हुआ है।\nगोल्डबैक अनुमान गोल्डबैक अनुमान यह है कि 2 से बड़ी प्रत्येक सम संख्या को दो अभाज्य संख्याओं के योग के रूप में व्यक्त किया जा सकता है। (यहाँ अभाज्य संख्या वह प्राकृतिक संख्या है जिसके 1 और स्वयं के अलावा कोई विभाजक नहीं होते हैं।)\nउदाहरण के लिए,\n4=2+2 6=3+3 8=3+5 10=3+7=5+5 समस्या अपने आप में बहुत सरल है, लेकिन इसे अभी तक सिद्ध नहीं किया गया है।\nरीमैन परिकल्पना रीमैन परिकल्पना यह अनुमान है कि रीमैन ज़ीटा फ़ंक्शन के शून्य केवल ऋणात्मक सम संख्याएँ और वे सम्मिश्र संख्याएँ हैं जिनका वास्तविक भाग 1/2 है।\nरीमैन ज़ीटा फ़ंक्शन $\\zeta$ को इस प्रकार परिभाषित किया गया है, जहाँ $s$ एक सम्मिश्र संख्या है और $n$ एक प्राकृतिक संख्या है:\n$$\\zeta(s):=\\sum _{n=1}^{\\infty }{\\frac {1}{n^{s}}}=1+{\\frac {1}{2^{s}}}+{\\frac {1}{3^{s}}}+{\\frac {1}{4^{s}}}+\\cdots$$ ","date":"2024-03-02T22:57:36+09:00","image":"http://kenji.blog/p/%E6%95%B0%E5%AD%A6%E3%81%AE%E6%9C%AA%E8%A7%A3%E6%B1%BA%E5%95%8F%E9%A1%8C/img_hub174c33a50b5d9de07ec5dc9c7de1bd4_731181_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/ganit-ki-anasuljhi-samasyaen/","title":"गणित की अनसुलझी समस्याएँ"},{"content":"मैंने विभिन्न संस्करण जानकारी संवाद एकत्र करने का प्रयास किया Windows 11 सबसे पहले, यहाँ उस Windows 11 की संस्करण जानकारी है जिसका मैं अभी उपयोग कर रहा हूँ। IntelliJ IDEA (Community Edition) यह वह वातावरण है जहाँ मैं यह ब्लॉग लिख रहा हूँ। Visual Studio Code यह भी एक संपादक है जिसका मैं अक्सर उपयोग करता हूँ। यह आश्चर्यजनक रूप से सरल है। Visual Studio यह वह विकास वातावरण है जिसका उपयोग मैं C++ के लिए करता हूँ। LINE (Windows) यह LINE का Windows संस्करण है। Paint.NET यह एक छवि संपादन सॉफ्टवेयर है। sakura editor यह एक पाठ संपादक है। Google Chrome यह Google Chrome है। Edge के आने के बाद से, मैं इसका ज्यादा उपयोग नहीं करता। Firefox यह Firefox है। मैं आजकल इसका ज्यादा उपयोग नहीं करता। Microsoft Edge यह Microsoft Edge है। मैं आजकल इसका ज्यादा उपयोग करता हूँ। OBS Studio यह OBS Studio है। मैं आजकल इसका ज्यादा उपयोग नहीं करता। TradingView यह TradingView है। मैं आजकल इसका उपयोग डॉलर-येन का चार्ट देखने के लिए करता हूँ। Spy++ यह Spy++ है। यह Windows SDK में शामिल एक उपकरण है। dependency walker यह dependency walker है। यह Windows SDK में शामिल एक उपकरण है। resource hacker यह resource hacker है। यह निष्पादन योग्य फ़ाइलों के संसाधनों को संपादित करने और निकालने के लिए एक उपकरण है। Microsoft Excel यह Microsoft Excel है। bandicam यह bandicam है। यह एक वीडियो कैप्चर टूल है। winmerge यह winmerge है। यह फ़ाइलों के बीच अंतर देखने के लिए एक उपकरण है। iTunes यह iTunes है। मैं आजकल इसका ज्यादा उपयोग नहीं करता। Hidemaru Editor यह हिदेमारू संपादक (Hidemaru Editor) है। यह एक पाठ संपादक है। Adobe Photoshop CS6 यह Adobe Photoshop CS6 है। Adobe Illustrator CS6 यह Adobe Illustrator CS6 है। ESET NOD32 यह ESET NOD32 है। NotePad++ यह NotePad++ है। यह एक पाठ संपादक है। MIFES यह MIFES है। मैं आजकल इसका ज्यादा उपयोग नहीं करता। ","date":"2024-03-02T21:32:11+09:00","image":"http://kenji.blog/p/%E3%81%84%E3%82%8D%E3%82%93%E3%81%AA%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E6%83%85%E5%A0%B1%E3%83%80%E3%82%A4%E3%82%A2%E3%83%AD%E3%82%B0%E9%9B%86%E3%82%81%E3%81%A6%E3%81%BF%E3%81%9F/img_hub829fc9858068bdd622cbafca10cd245_20954_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/%E3%81%84%E3%82%8D%E3%82%93%E3%81%AA%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E6%83%85%E5%A0%B1%E3%83%80%E3%82%A4%E3%82%A2%E3%83%AD%E3%82%B0%E9%9B%86%E3%82%81%E3%81%A6%E3%81%BF%E3%81%9F/","title":"मैंने विभिन्न संस्करण जानकारी संवाद एकत्र करने का प्रयास किया"},{"content":"GIF एनिमेटेड स्क्रीन रिकॉर्डिंग टूल मैंने स्क्रीन रिकॉर्ड करने और इसे GIF एनीमेशन बनाने के लिए एक टूल बनाया है। इस टूल का उपयोग करके, आप स्क्रीन पर होने वाले कार्यों को रिकॉर्ड कर सकते हैं और उन्हें Microsoft Teams जैसे संचार टूल पर साझा कर सकते हैं।\nउपयोग कैसे करें टूल लॉन्च करें रिकॉर्ड करने के लिए क्षेत्र निर्दिष्ट करें। यदि निर्दिष्ट नहीं है, तो पूरी स्क्रीन रिकॉर्ड की जाएगी। रिकॉर्ड बटन दबाएं रिकॉर्डिंग रोकें बटन दबाएं GIF एनीमेशन निष्पादन योग्य फ़ाइल के समान स्थान पर आउटपुट होगा डाउनलोड डाउनलोड\nऊपर दिया गया लिंक खोलें, और निष्पादन योग्य फ़ाइल डाउनलोड करने के लिए GIFScreenRecorder.exe लिंक पर क्लिक करें।\nस्रोत कोड GitHub\n","date":"2024-02-08T01:23:01+09:00","image":"http://kenji.blog/p/gif%E3%82%A2%E3%83%8B%E3%83%A1%E7%94%BB%E9%9D%A2%E9%8C%B2%E7%94%BB%E3%83%84%E3%83%BC%E3%83%AB/img_hua1d1e581d2290ce1c516887dff1e6eb0_11957_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/gif-%E0%A4%8F%E0%A4%A8%E0%A4%BF%E0%A4%AE%E0%A5%87%E0%A4%9F%E0%A5%87%E0%A4%A1-%E0%A4%B8%E0%A5%8D%E0%A4%95%E0%A5%8D%E0%A4%B0%E0%A5%80%E0%A4%A8-%E0%A4%B0%E0%A4%BF%E0%A4%95%E0%A5%89%E0%A4%B0%E0%A5%8D%E0%A4%A1%E0%A4%BF%E0%A4%82%E0%A4%97-%E0%A4%9F%E0%A5%82%E0%A4%B2/","title":"GIF एनिमेटेड स्क्रीन रिकॉर्डिंग टूल"},{"content":"PMP परीक्षा अध्ययन सारांश PMP परीक्षा अध्ययन का सारांश।\nअवलोकन PMP प्रोजेक्ट मैनेजमेंट का एक प्रमाणन है। यह PMBOK (नवीनतम 7वां संस्करण) नामक गाइडबुक पर आधारित प्रमाणन है। PMP परीक्षा में 230 मिनट में 180 प्रश्न पूछे जाते हैं, लेकिन 5 प्रश्न डमी होते हैं, इसलिए 175 प्रश्नों में से 106 या उससे अधिक के सही उत्तर देने पर उत्तीर्ण माना जाता है। उत्तर बहुविकल्पीय होते हैं, जिनमें से अधिकांश 4-विकल्प वाले होते हैं, लेकिन कुछ 5-विकल्प या बहु-चयन वाले भी होते हैं।\nसर्वेंट लीडरशिप नेतृत्व की एक शैली जो ऊपर से आदेश देने के बजाय नीचे से समर्थन करती है।\nसर्वेंट लीडरशिप के 10 सिद्धांत (विशेषताएं) सुनना (Listening) सहानुभूति (Empathy) उपचार (Healing) जागरूकता (Awareness) अनुनय (Persuasion) वैचारिकीकरण (Conceptualization) दूरदर्शिता (Foresight) भण्डारीपन (Stewardship) लोगों के विकास के प्रति प्रतिबद्धता (Commitment to the growth of people) समुदाय निर्माण (Building community) एजाइल मेनिफेस्टो के 4 मूल्य हम सॉफ्टवेयर विकास के व्यावहारिक कार्यों के माध्यम से या दूसरों की सहायता करने के माध्यम से, बेहतर विकास विधियों को खोजने का प्रयास कर रहे हैं। इस कार्य के माध्यम से, हम निम्नलिखित मूल्यों तक पहुंचे हैं:\nप्रक्रियाओं और उपकरणों से अधिक व्यक्तियों और अंतःक्रियाओं को, व्यापक दस्तावेज़ीकरण से अधिक कार्यशील सॉफ्टवेयर को, अनुबंध वार्ता से अधिक ग्राहक सहयोग को, एक योजना का पालन करने से अधिक बदलाव पर प्रतिक्रिया को, मूल्य मानते हैं। अर्थात, बाईं ओर की बातों में मूल्य है, यह मानते हुए भी, हम दाईं ओर की बातों को अधिक महत्व देते हैं।\nएजाइल मेनिफेस्टो\nएजाइल एजाइल मेनिफेस्टो के पीछे के 12 सिद्धांत हमारी सर्वोच्च प्राथमिकता ग्राहक की संतुष्टि है, जो मूल्यवान सॉफ्टवेयर की शीघ्र और निरंतर डिलीवरी के माध्यम से प्राप्त की जाती है। विकास के बाद के चरणों में भी बदलती आवश्यकताओं का स्वागत है। बदलाव का लाभ उठाकर ग्राहक की प्रतिस्पर्धात्मक बढ़त बढ़ाई जाती है। कार्यशील सॉफ्टवेयर को अक्सर वितरित करें, कुछ हफ्तों से लेकर कुछ महीनों तक, कम समय सीमा को प्राथमिकता देते हुए। व्यवसाय से जुड़े लोगों और डेवलपर्स को पूरे प्रोजेक्ट में रोज़ाना एक साथ काम करना चाहिए। प्रेरित व्यक्तियों के इर्द-गिर्द प्रोजेक्ट्स बनाएँ। उन्हें पर्यावरण और समर्थन दें, और काम पूरा करने के लिए उन पर भरोसा करें। विकास टीम के भीतर और टीम तक जानकारी पहुँचाने का सबसे कुशल और प्रभावी तरीका आमने-सामने बातचीत है। कार्यशील सॉफ्टवेयर प्रगति का प्राथमिक उपाय है। एजाइल प्रक्रियाएं टिकाऊ विकास को बढ़ावा देती हैं। प्रायोजकों, डेवलपर्स और उपयोगकर्ताओं को निरंतर गति बनाए रखने में सक्षम होना चाहिए। तकनीकी उत्कृष्टता और अच्छे डिज़ाइन पर निरंतर ध्यान एजिलिटी बढ़ाता है। सादगी (किए गए काम की मात्रा को अधिकतम करने की कला) आवश्यक है। सर्वोत्तम आर्किटेक्चर, आवश्यकताएं और डिज़ाइन स्व-व्यवस्थित टीमों से उभरते हैं। नियमित अंतराल पर, टीम विचार करती है कि कैसे अधिक प्रभावी बना जाए, और तदनुसार अपने व्यवहार को समायोजित करती है। एजाइल मेनिफेस्टो के पीछे के सिद्धांत\nशब्दावली एपिक (Epic - संक्षिप्त) यूजर स्टोरी (User Story - उत्पाद बैकलॉग में पंजीकृत इकाई, प्राथमिकता देने की इकाई) टास्क (Task - तकनीकी कार्य वस्तु, समय अनुमान का विषय) उत्पाद बैकलॉग / उत्पाद बैकलॉग आइटम उत्पाद स्वामी (Product Owner) स्टेकहोल्डर (Stakeholder) एजाइल प्रैक्टिस गाइड (पुस्तक) लीन डेवलपमेंट (Lean Development) कानबान (Kanban) वैल्यू चेन (Value Chain) AC (Actual Cost - वास्तविक लागत) EV (Earned Value - अर्जित मूल्य) PV (Planned Value - नियोजित मूल्य) EVA (Earned Value Analysis) SPI (SPI: Schedule Performance Index = EV / PV) CPI (CPI: Cost Performance Index = EV / AC) EVM (Earned Value Management) BAC (Budget At Completion - पूर्णता पर बजट) ETC (Estimate To Complete - पूरा होने का अनुमान) EAC (Estimate At Completion - पूरा होने पर अनुमान) कार्यात्मक प्रकार (Functional) मैट्रिक्स प्रकार (Matrix) प्रोजेक्ट प्रकार (Projectized) सर्वेंट लीडरशिप (Servant Leadership) टकमैन मॉडल (निर्मित होना, तूफान, सामान्यीकरण, प्रदर्शन, स्थगन - Forming, Storming, Norming, Performing, Adjourning) टीम चार्टर (Team Charter) प्लानिंग पोकर (फिबोनाची अनुक्रम) रेट्रोस्पेक्टिव (Retrospective - पूर्वव्यापी गतिविधियां) वर्चुअल टीम (Virtual Team) प्रोजेक्ट चार्टर (Project Charter) संघर्ष (टकराव/समस्या समाधान, सहयोग, समझौता, चिकना करना/अनुकूलन, जबरदस्ती करना, वापस लेना/बचना - 6 तरीके) वैल्यू स्ट्रीम मैपिंग (Value Stream Mapping) मेंटरिंग (Mentoring) कोचिंग (Coaching) प्रशिक्षण (Training) डगलस मैकग्रेगर का XY सिद्धांत SWOT विश्लेषण Strength (ताकत), Weakness (कमजोरी), Opportunity (अवसर), Threat (खतरा) SECI मॉडल (Socialization - समाजीकरण, Externalization - बाहरीकरण, Combination - संयोजन, Internalization - आंतरिककरण) PDCA, PDSA PESTLE (Political राजनीतिक, Economic आर्थिक, Social सामाजिक, Technological तकनीकी, Legal कानूनी, Environmental पर्यावरणीय) VUCA (अस्थिरता, अनिश्चितता, जटिलता, अस्पष्टता) मोंटे कार्लो विधि डिसीजन ट्री विश्लेषण अपेक्षित मौद्रिक मूल्य (EMV) नेट प्रमोटर स्कोर लागत-लाभ विश्लेषण स्प्रिंट रिव्यू (Sprint Review) रिलीज प्रबंधन (Release Management) SOW (Statement of Work) कार्य का विवरण \u0026ldquo;परियोजना के दायरे, उद्देश्य, वितरण, अवधि, संसाधन आदि का विस्तृत विवरण युक्त दस्तावेज\u0026rdquo; P-SOW (प्रोक्योरमेंट स्टेटमेंट ऑफ वर्क) RFI (Request For Information) जानकारी के लिए अनुरोध RFP (Request For Proposal) प्रस्ताव के लिए अनुरोध निश्चित मूल्य अनुबंध (FP: Fixed Price) समय और सामग्री अनुबंध (T\u0026amp;M: Time and Material) लागत प्रतिपूर्ति अनुबंध (CR: Cost Reimbursable) निश्चित मूल्य प्रोत्साहन शुल्क (FPIF) स्कोप क्रीप (Scope Creep) कानो विश्लेषण (Kano Analysis) फंड वितरण विधि 100-अंक विधि MSCW (Must, Should, Could, Would) विधि ट्रेसेबिलिटी मैट्रिक्स WBS डिक्शनरी वेलोसिटी (प्रत्येक पुनरावृत्ति में प्राप्त स्टोरी पॉइंट्स की संख्या) वेलोसिटी चार्ट एंगेजमेंट मैट्रिक्स (अनजान, प्रतिरोधी, तटस्थ, सहायक, अग्रणी) फेज़ गेट (Phase Gate) सूचना रेडिएटर (Information Radiator) बर्नडाउन चार्ट (Burndown Chart) बर्नअप चार्ट (Burnup Chart) संचयी प्रवाह आरेख (Cumulative Flow Diagram) QCD (Quality, Cost, Delivery - गुणवत्ता, लागत, वितरण) सर्पिल मॉडल (Spiral) क्रिटिकल चेन (Critical Chain) फीचर (Feature) पुनरावृत्ति (Iteration) / स्प्रिंट (Sprint) इटेरेटिव (Iterative) इंक्रीमेंटल (Incremental) इंक्रीमेंट (वृद्धिशील वितरण) लचीलापन (Resilience) भण्डारीपन (Stewardship) ईमानदार और विश्वसनीय व्यवहार और जिम्मेदार कार्य (निर्णय लेना) एस्केलेशन (Escalation) KPT (Keep, Problem, Try) RACI (Responsible, Accountable, Consulted, Informed) PMO (Project Management Office) सहायक, नियंत्रक, निर्देशक ताल (Cadence) टेलरिंग (Tailoring) न्यूरोलॉजिकल स्तर (पर्यावरण, व्यवहार, क्षमताएं, विश्वास/मूल्य, पहचान) बिजनेस केस (परियोजना के उद्देश्य, लाभ, जोखिम, निवेश पर प्रतिफल आदि का दस्तावेजीकरण) प्रवृत्ति विश्लेषण (रन चार्ट का उपयोग करके किया जाता है, भविष्य के परिणामों की भविष्यवाणी करने के लिए गणितीय तकनीकों का उपयोग करता है) गुणवत्ता प्रबंधन योजना (परियोजना वितरण की गुणवत्ता के लिए रणनीति और दृष्टिकोण को परिभाषित करता है) गवर्नेंस प्रक्रिया (Governance Process) उत्पाद स्वामी (उत्पाद दृष्टि, उत्पाद बैकलॉग प्राथमिकता, उत्पाद रिलीज) प्रोजेक्ट ओनर (प्रोजेक्ट का प्रायोजक/ग्राहक) प्रोजेक्ट मैनेजर (पूरी परियोजना का प्रबंधन करता है) प्रोजेक्ट लीडर (साइट पर निर्देशन) प्रोजेक्ट सदस्य (परियोजना को आगे बढ़ाते हैं) हाइब्रिड दृष्टिकोण न्यूनतम व्यवहार्य उत्पाद (MVP) इटरेशन रिव्यू वर्कशॉप प्रोजेक्ट बेनिफिट मैनेजमेंट प्लान (परियोजना के लक्ष्य लाभ, उन्हें साकार करने के लिए रणनीतिक साधन, और समय सीमा) मुख्य प्रदर्शन संकेतक (KPI) ऑनसाइट (साइट पर, स्थानीय रूप से) समरूप अनुमान (Analogous Estimating) तीन-बिंदु अनुमान (Three-point Estimating) पैरामीट्रिक अनुमान (Parametric Estimating) प्रोजेक्ट रिव्यू बिग बैंग दृष्टिकोण DSDM (Dynamic Systems Development Method) ब्रूक्स का नियम (Brooks\u0026rsquo;s law) बिग बैंग दृष्टिकोण (सभी एक साथ एक ही समय में पेश किए गए) रिस्क रजिस्टर (जोखिम प्रबंधन उपकरण के रूप में उपयोग किया जाने वाला दस्तावेज, संभावित झटकों की पहचान करने के लिए) जोखिम रजिस्टर (Risk Register) SL सिद्धांत (स्थिति के अनुसार 4 व्यवहार) क्षमता (Competence) प्रतिबद्धता (Commitment) संदर्भ स्क्रम गाइड (Ken Schwaber \u0026amp; Jeff Sutherland) PMI ECO (जापानी संस्करण) पृष्ठ एजाइल प्रैक्टिस गाइड PMI आचार संहिता और पेशेवर आचरण अध्ययन सामग्री ｢PMP® प्रमाणन परीक्षा｣ पहली बार में पास करने का लक्ष्य! कुशल परीक्षा तैयारी के लिए रणनीति पाठ्यक्रम (2021) एजाइल समर्थित ","date":"2024-02-04T18:41:31+09:00","image":"http://kenji.blog/p/pmp%E5%8B%89%E5%BC%B7/img_hu67a0961bf8e284d45690ac9cdb09e5b3_16702_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/pmp%E5%8B%89%E5%BC%B7/","title":"PMP अध्ययन"},{"content":"अवलोकन जापान में आई प्राकृतिक आपदाओं के बारे में नोट्स\n1 जनवरी 2024 नोटो प्रायद्वीप भूकंप ","date":"2024-01-07T00:50:09+09:00","image":"http://kenji.blog/p/%E6%97%A5%E6%9C%AC%E3%81%AE%E7%81%BD%E5%AE%B3/img_hue649e8d0b3bd837ea85e155e108b15fd_273208_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/%E6%97%A5%E6%9C%AC%E3%81%AE%E7%81%BD%E5%AE%B3/","title":"जापान में आपदाएं"},{"content":"सात जड़ी बूटियां (ननाकुसा) सेरी (Seri) नाज़ुना (Nazuna) गोग्यो (Gogyo) हाकोबेरा (Hakobera) होतोकेनोज़ा (Hotokenoza) सुज़ुना (Suzuna) सुज़ुशिरो (Suzushiro) ","date":"2024-01-06T22:22:00+09:00","image":"http://kenji.blog/p/%E4%B8%83%E8%8D%89%E7%B2%A5%E3%81%AE%E3%83%AC%E3%82%B7%E3%83%94/img_hu3e148c57f6499065259203ce3bd1c8c5_295252_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/nanakusa-gayu-recipe/","title":"नानाकुसा-गायू (सात जड़ी बूटियों का दलिया) पकाने की विधि"},{"content":"अनुशंसित जापानी संगीत チューリップ - 青春の影 イルカ - なごり雪 河島英五 - 酒と泪と男と女 Orangestar - Surges 竹内まりや - Plastic Love RADWIMPS - 前前前世 BEGIN - 島人ぬ宝 ザ・ブルーハーツ - 情熱の薔薇 荒井由実 - ルージュの伝言 Begin - 海の声 荒井由実 - ひこうき雲 Love is Over - 欧陽菲菲 クラムボン - 波よせて RADWIMPS - スパークル かりゆし58 - アンマー かりゆし58 - オワリはじまり テレサ・テン - 時の流れに身をまかせ 宇多田ヒカル『One Last Kiss』 不可思議/wonderboy - Pellicule (Official Music Video) Kamen Rider Black RX - Opening Song たしかなこと / 小田和正 - Covered by パクユナ 【Japanese healing song】Hana／Kosuke Atari（covered by Leah） 「真夜中のドア〜stay with me」/ 松原みき Official Lyric Video Midnight Pretenders Anri - Last Summer Whisper 1985 - The Blue Hearts BUMP OF CHICKEN - supernova チューリップ　心の旅　1972 小さな恋のうた ASKA - はじまりはいつも雨 (Official Music Video) キリンジ - エイリアンズ あの日の空よ - 南こうせつ ","date":"2024-01-06T04:11:01+09:00","image":"http://kenji.blog/p/%E5%A5%BD%E3%81%8D%E3%81%AA%E9%82%A6%E6%A5%BD/img_hub840e0bd8da1fd2845b1fe157b13d9d8_1067024_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/%E0%A4%AA%E0%A4%B8%E0%A4%82%E0%A4%A6%E0%A5%80%E0%A4%A6%E0%A4%BE-%E0%A4%9C%E0%A4%BE%E0%A4%AA%E0%A4%BE%E0%A4%A8%E0%A5%80-%E0%A4%B8%E0%A4%82%E0%A4%97%E0%A5%80%E0%A4%A4/","title":"पसंदीदा जापानी संगीत"},{"content":"अनुशंसित पश्चिमी संगीत Keane - Somewhere Only We Know Ben E. King - Stand By Me The Beatles - Hey Jude The Mamas \u0026amp; The Papas - California Dreamin' Ed Sheeran - Shape of You Mark Ronson ft. Bruno Mars – Uptown Funk Sugar - Maroon 5 Bette Midler - The Rose Green Day - Basket Case Coldplay - Viva La VidaViva La Vida Maroon 5 - Memories (Lyrics) Dido - Thank You (Official Video) बॉब डिलन - Blowin\u0026rsquo;The Wind(ब्लोइन\u0026rsquo; द विंड) Coldplay - Yellow Eric Clapton - Tears In Heaven B. J. Thomas - Raindrops Keep Fallin\u0026rsquo; on My Head (Stereo / Lyrics) Take Me Home, Country Roads Simon \u0026amp; Garfunkel - Mrs. Robinson (Audio) Taylor Swift - Love Story (Live on Letterman) Wiz Khalifa - See You Again ft. Charlie Puth [Official Video] Furious 7 Soundtrack The Top (Extended Mix) Something Just Like This Feelings Yesterday Once More Carpenters - Top Of The World I Need To Be In Love [जापानी अनुवाद के साथ] कारपेंटर्स Bob Marley \u0026amp; The Wailers \u0026ldquo;Three Little Birds\u0026rdquo; Alan Walker - All Falls Down (feat. Noah Cyrus with Digital Farm Animals) Alan Walker - Darkside (feat. Au/Ra and Tomine Harket) Alan Walker - Alone Alan Walker - Sing Me To Sleep Alan Walker - Faded killing me softly with his song a-ha - Take On Me (Official Video) ","date":"2024-01-05T00:14:22+09:00","image":"http://kenji.blog/p/%E5%A5%BD%E3%81%8D%E3%81%AA%E6%B4%8B%E6%A5%BD/img_hued679cc884753e5576b95c5f8e6f029a_283063_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/%E5%A5%BD%E3%81%8D%E3%81%AA%E6%B4%8B%E6%A5%BD/","title":"पसंदीदा पश्चिमी संगीत"},{"content":"कमांड प्रॉम्प्ट में PowerToys स्थापित करें यहाँ कमांड प्रॉम्प्ट का उपयोग करके PowerToys स्थापित करने का तरीका दिया गया है।\n1 winget install Microsoft.PowerToys --source winget कमांड प्रॉम्प्ट में PowerToys अनइंस्टॉल करें 1 winget uninstall --name PowerToys ","date":"2023-09-30T21:23:00+09:00","image":"http://kenji.blog/p/powertoys%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB/img_hud87e455d0958ca41a83ffdf977dac7c2_37972_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/powertoys%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB/","title":"कमांड प्रॉम्प्ट में PowerToys स्थापित करें"},{"content":"आइए सम्मान दिखाएं आइए उन लोगों का सम्मान करें जो वे काम कर सकते हैं जो हम नहीं कर सकते।\nसमाज में आश्चर्यजनक रूप से ऐसे कई लोग हैं जो नौकरियों और पदों को ऊंच-नीच का दर्जा देते हैं और सम्मान नहीं दिखा पाते हैं।\nआइए उन लोगों का सम्मान करें जो वे काम पूरा करते हैं जो हम नहीं कर सकते, चाहे वह काम कोई भी हो।\nमैं इसे ध्यान में रखना चाहता हूं।\n","date":"2023-08-01T23:42:31+09:00","image":"http://kenji.blog/p/%E8%87%AA%E5%88%86%E3%81%AB%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84%E3%81%93%E3%81%A8%E3%81%8C%E3%81%A7%E3%81%8D%E3%82%8B%E4%BA%BA%E3%81%AB%E6%95%AC%E6%84%8F%E3%82%92%E6%89%95%E3%81%8A%E3%81%86/img_hu0ec845f1b3d93c1f1262f8f9c2fb19a8_357395_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/%E0%A4%89%E0%A4%A8-%E0%A4%B2%E0%A5%8B%E0%A4%97%E0%A5%8B%E0%A4%82-%E0%A4%95%E0%A4%BE-%E0%A4%B8%E0%A4%AE%E0%A5%8D%E0%A4%AE%E0%A4%BE%E0%A4%A8-%E0%A4%95%E0%A4%B0%E0%A5%87%E0%A4%82-%E0%A4%9C%E0%A5%8B-%E0%A4%B5%E0%A4%B9-%E0%A4%95%E0%A4%B0-%E0%A4%B8%E0%A4%95%E0%A4%A4%E0%A5%87-%E0%A4%B9%E0%A5%88%E0%A4%82-%E0%A4%9C%E0%A5%8B-%E0%A4%B9%E0%A4%AE-%E0%A4%A8%E0%A4%B9%E0%A5%80%E0%A4%82-%E0%A4%95%E0%A4%B0-%E0%A4%B8%E0%A4%95%E0%A4%A4%E0%A5%87/","title":"उन लोगों का सम्मान करें जो वह कर सकते हैं जो हम नहीं कर सकते"},{"content":"स्पलैटून 2 संभवतः मेरे जीवन में सबसे लंबे समय तक खेला जाने वाला गेम स्पलैटून 2 है। मैंने स्टोरी मोड लगभग नहीं खेला है, लेकिन 4-ऑन-4 ऑनलाइन मल्टीप्लेयर मैचमेकिंग बहुत अच्छी तरह से डिज़ाइन की गई है, जिससे आप अपने समान स्तर के लोगों के खिलाफ खेल सकते हैं, इसलिए इसमें ऐसा मज़ा है जो कभी पुराना नहीं होता। इसके अलावा, सहयोगियों और विरोधियों की गतिविधियों को पढ़कर जीतने की रणनीति बनाना भी मजेदार है।\nहथियार मेरे द्वारा सबसे ज्यादा इस्तेमाल किए जाने वाले हथियार क्रमशः \u0026ldquo;Foil Squeezer\u0026rdquo;, \u0026ldquo;Splattershot Jr.\u0026rdquo;, \u0026ldquo;Splat Roller\u0026rdquo;, और \u0026ldquo;Foil Flingza Roller\u0026rdquo; हैं। \u0026ldquo;Splattershot Jr.\u0026rdquo; शुरुआती लोगों के लिए एक हथियार है, और मैं इसे शुरुआत में बहुत इस्तेमाल करता था।\nप्रत्येक के लिए इंक पॉइंट नीचे दिए गए हैं:\nहथियार इंक पॉइंट Foil Flingza Roller 6,636,594p Splat Roller 6,200,629p Splattershot Jr. 4,211,759p Foil Squeezer 744,678p Splattershot 301,238p लेवल के बारे में मुझे लगता है कि मैं A+ और S+ के बीच ऊपर-नीचे हो रहा हूं, और ऐसी स्थिति है जहां मैं S+ के शीर्ष पर नहीं पहुंच पा रहा हूं, लेकिन मैं रैंक बढ़ाने से ज्यादा मैचों का आनंद ले रहा हूं। (यदि रैंक बहुत अधिक हो जाता है, तो विरोधी भी मजबूत हो जाते हैं और तनाव आ जाता है, इसलिए मैं इसका आनंद नहीं ले पाता)\nखेलने का समय मेरा खेलने का समय 2500 घंटे से अधिक हो चुका है।\nभविष्य के लक्ष्य मेरा लक्ष्य खेल के स्तर को बनाए रखना और आनंद लेना है, लेकिन मैं पैसे और गियर को अधिकतम (कैप) तक पहुंचाना भी चाहूंगा। चूंकि स्पलैटून 3 जारी किया गया था, मैचमेकिंग में अधिक समय लग रहा है और कई बार मैच नहीं मिल पाता, इसलिए मैं इस उम्मीद के साथ खेलते रहना चाहता हूं कि खिलाड़ियों की संख्या और कम न हो।\n","date":"2023-08-01T00:26:30+09:00","image":"http://kenji.blog/p/%E3%82%B9%E3%83%97%E3%83%A9%E3%83%88%E3%82%A5%E3%83%BC%E3%83%B32/img_hu177387d05aedc7553df9576fd3706d02_192717_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/splatoon-2/","title":"स्पलैटून 2"},{"content":"Microsoft MVP अवार्ड प्राप्त करने के बारे में (2023-2024) मुझे यह बताते हुए खुशी हो रही है कि मुझे Microsoft MVP (2023-2024) से सम्मानित किया गया है। 2017 से लगातार यह मेरा 7वां वर्ष है जब मुझे यह पुरस्कार मिला है।\nमुझे यह पुरस्कार Developer Technologies श्रेणी में मिला है।\nअपनी पिछली गतिविधियों को देखते हुए, मैंने निम्नलिखित गतिविधियों में हिस्सा लिया है:\nGitHub पर कोड साझा करना ब्लॉग और सोशल मीडिया (जैसे Twitter) पर तकनीकी जानकारी साझा करना MSDN फोरम पर योगदान देना Microsoft उत्पादों पर फीडबैक देना मैं भविष्य में और भी बेहतर लेख लिखने और जानकारी साझा करने का प्रयास करता रहूंगा।\nआपके निरंतर समर्थन के लिए धन्यवाद।\n","date":"2023-07-31T19:15:14+09:00","image":"http://kenji.blog/p/microsoft-mvp%E5%8F%97%E8%B3%9E%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A62023-2024/img_hua5cba2ce9936d80b2181232333db0622_19957_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/microsoft-mvp-%E0%A4%85%E0%A4%B5%E0%A4%BE%E0%A4%B0%E0%A5%8D%E0%A4%A1-%E0%A4%AA%E0%A5%8D%E0%A4%B0%E0%A4%BE%E0%A4%AA%E0%A5%8D%E0%A4%A4-%E0%A4%95%E0%A4%B0%E0%A4%A8%E0%A5%87-%E0%A4%95%E0%A5%87-%E0%A4%AC%E0%A4%BE%E0%A4%B0%E0%A5%87-%E0%A4%AE%E0%A5%87%E0%A4%82-2023-2024/","title":"Microsoft MVP अवार्ड प्राप्त करने के बारे में (2023-2024)"},{"content":"प्राचीन ग्रीस की तीन शास्त्रीय निर्माण समस्याएं एक वृत्त दिए जाने पर, उसके समान क्षेत्रफल वाले वर्ग का निर्माण करना (वृत्त का वर्गाकार करना) किसी भी दिए गए कोण को तीन बराबर भागों में विभाजित करना (कोण का त्रिभाजन) एक घन दिए जाने पर, उसके दोगुने आयतन वाले घन का निर्माण करना (घन का द्विगुणन) आर्किमिडीज़ का सर्पिल एक तल पर, एक किरण OB एक निश्चित बिंदु O के चारों ओर एक समान गति से घूमती है। यदि प्रारंभिक स्थिति OA है, और उसी समय बिंदु P, O से शुरू होकर OB के साथ निरंतर गति से आगे बढ़ता है, तो बिंदु P द्वारा खींची गई रेखा आर्किमिडीज़ का सर्पिल है।\nपप्पस का प्रमेय साइक्लोइड निकोमेडीज का कॉन्कोइड डायोक्लेस का सिसॉयड फर्मेट की स्पर्शरेखा विधि डेसकार्टेस की सामान्य विधि कालक्रम वर्ष घटना लगभग 3400 ईसा पूर्व सुमेरियन लेखांकन के लिए मिट्टी के टोकन का उपयोग करते हैं लगभग 3000 ईसा पूर्व मिस्र में चित्रलिपि गणित का उदय लगभग 2800 ईसा पूर्व सिंधु घाटी सभ्यता में दशमलव प्रणाली पर आधारित वजन और माप का उपयोग लगभग 2700 ईसा पूर्व मिस्रवासी कोणों की पुष्टि करने के लिए रस्सियों और पाइथागोरस त्रिक का उपयोग करते हैं लगभग 2500 ईसा पूर्व गणना के लिए उपयोग किया जाने वाला उपकरण, अबैकस, खोजा गया लगभग 2500 ईसा पूर्व संदर्भ गणित का इतिहास ","date":"2023-07-22T15:25:10+09:00","image":"http://kenji.blog/p/%E6%95%B0%E5%AD%A6%E3%81%AE%E6%AD%B4%E5%8F%B2/img_hu67324d5a4a949c1841dc5158adcb7086_428375_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/history-of-mathematics/","title":"गणित का इतिहास"},{"content":"Elecom ट्रैकबॉल Deft Pro M-DPT1MRBK के बारे में Elecom का ट्रैकबॉल \u0026ldquo;Deft Pro M-DPT1MRBK\u0026rdquo; खरीदे हुए मुझे लगभग एक सप्ताह हो गया है, इसलिए मैं अपने उपयोग के अनुभव की समीक्षा करूंगा।\nमुख्य विशेषताएं\nबटनों की संख्या 8 है, जो काफी है तीन तरीकों से कनेक्ट किया जा सकता है: वायर्ड, वायरलेस रिसीवर, और ब्लूटूथ बड़ी गेंद (मध्यम आकार का व्यास 44 मिमी) Amazon पर खरीद मूल्य: ￥7,012 (2 मई 2021 तक) अच्छे बिंदु माउस की तुलना में कलाई को हिलाने की आवश्यकता नहीं होती है, जिससे कलाई पर तनाव कम होता है बहुत सारे बटन होने के कारण, आप बटनों को विभिन्न कार्य सौंप सकते हैं वर्तमान में, इसे ऊपर के रूप में सेट किया गया है। आप प्रत्येक एप्लिकेशन के लिए बटन असाइनमेंट भी बदल सकते हैं। बटन असाइनमेंट के लिए समर्पित सॉफ़्टवेयर इंस्टॉलेशन आवश्यक है। चूंकि गेंद बड़ी है, इसलिए ट्रैकबॉल के बीच भी बारीक गति करना अपेक्षाकृत आसान है बुरे बिंदु ट्रैकबॉल के चारों ओर धूल जमा हो जाती है, इसलिए गेंद को नियमित रूप से (हर कुछ दिनों में लगभग एक बार) निकालना और साफ करना आवश्यक है तर्जनी, मध्यमा आदि से कर्सर ले जाना, और अंगूठे से माउस व्हील चलाना माउस से अलग अहसास देता है, इसलिए इसकी आदत पड़ने में समय लगता है यद्यपि मैंने ऊपर लिखा है कि बारीक हलचल करना आसान है, ट्रैकबॉल के साथ कर्सर को 1 पिक्सेल से ले जाना अभी भी मुश्किल है बायां बटन दबाते समय व्हील को संचालित नहीं किया जा सकता है (उदाहरण के लिए, जब आप पेंट में किसी क्षेत्र का चयन करते समय ज़ूम इन/आउट करना चाहते हैं) कुल मिलाकर, हालांकि मुझे लगता है कि यह ट्रैकबॉल के लिए महंगा है, लेकिन आमतौर पर इसे चलाना काफी आसान है, और मुझे लगता है कि मेरे काम की उत्पादकता बढ़ गई है। मुझे उम्मीद है कि यह उन लोगों के लिए उपयोगी होगा जो इसे खरीदने पर विचार कर रहे हैं।\n","date":"2023-05-02T23:28:33+09:00","image":"http://kenji.blog/p/%E3%83%88%E3%83%A9%E3%83%83%E3%82%AF%E3%83%9C%E3%83%BC%E3%83%ABdeft-prom-dpt1mrbk%E3%81%AE%E3%81%99%E3%81%99%E3%82%81/img_hue224b6b6b3d7da0ebda5f0b37d429b68_231359_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/trackball-deft-pro-m-dpt1mrbk-recommendation/","title":"ट्रैकबॉल डेफ्ट प्रो (M-DPT1MRBK) की सिफारिश"},{"content":"wxWidgets क्या है wxWidgets एक C++ GUI लाइब्रेरी है जो Windows, Mac, Linux, Android, iOS आदि प्लेटफॉर्म पर काम करती है।\nwxWidgets की स्थापना https://www.wxwidgets.org/downloads/ खोलें और Windows Installer डाउनलोड करें। स्थापित करने के लिए wxMSW-3.2.2.1-Setup.exe चलाएं। इंस्टॉल किए गए फ़ोल्डर से \u0026ldquo;C:\\wxWidgets-3.2.2.1\\build\\msw\\wx_vc17.sln\u0026rdquo; खोलें। wx_vc17.sln खोलने के बाद Build \u0026gt; Batch Build चुनें। Select All बटन दबाएं, और फिर Rebuild बटन दबाएं। निर्माण समाप्त होने के बाद, विज़ुअल स्टूडियो को अस्थायी रूप से बंद कर दें। उदाहरण प्रोजेक्ट बनाना Visual Studio खोलें। File \u0026gt; New \u0026gt; Project चुनें। Windows Desktop Application चुनें (टैब हैं C++, Windows, Desktop)। Project name में wxWidgetsSample दर्ज करें। Create पर क्लिक करें। wxWidgetsSample पर राइट-क्लिक करें और Properties चुनें। Configuration Properties \u0026gt; C/C++ \u0026gt; Additional Include Directories में C:\\wxWidgets-3.2.2.1\\include और C:\\wxWidgets-3.2.2.1\\include\\msvc जोड़ें। Configuration Properties \u0026gt; Linker \u0026gt; Additional Library Directories में C:\\wxWidgets-3.2.2.1\\lib\\vc_x64_lib जोड़ें। wxWidgetsSample.cpp खोलें और इसे नीचे दिए गए कोड से बदलें। 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 #pragma comment(linker,\u0026#34;\\\u0026#34;/manifestdependency:type=\u0026#39;win32\u0026#39; name=\u0026#39;Microsoft.Windows.Common-Controls\u0026#39; version=\u0026#39;6.0.0.0\u0026#39; processorArchitecture=\u0026#39;*\u0026#39; publicKeyToken=\u0026#39;6595b64144ccf1df\u0026#39; language=\u0026#39;*\u0026#39;\\\u0026#34;\u0026#34;) #include \u0026lt;wx/wxprec.h\u0026gt; #ifndef WX_PRECOMP #include \u0026lt;wx/wx.h\u0026gt; #endif class MyApp : public wxApp { public: virtual bool OnInit(); }; class MyFrame : public wxFrame { public: MyFrame(); private: void OnHello(wxCommandEvent\u0026amp; event); void OnExit(wxCommandEvent\u0026amp; event); void OnAbout(wxCommandEvent\u0026amp; event); }; enum { ID_Hello = 1 }; wxIMPLEMENT_APP(MyApp); bool MyApp::OnInit() { MyFrame* frame = new MyFrame(); frame-\u0026gt;Show(true); return true; } MyFrame::MyFrame() : wxFrame(NULL, wxID_ANY, \u0026#34;Hello World\u0026#34;) { wxMenu* menuFile = new wxMenu; menuFile-\u0026gt;Append(ID_Hello, \u0026#34;\u0026amp;Hello...\\tCtrl-H\u0026#34;, \u0026#34;Help string shown in status bar for this menu item\u0026#34;); menuFile-\u0026gt;AppendSeparator(); menuFile-\u0026gt;Append(wxID_EXIT); wxMenu* menuHelp = new wxMenu; menuHelp-\u0026gt;Append(wxID_ABOUT); wxMenuBar* menuBar = new wxMenuBar; menuBar-\u0026gt;Append(menuFile, \u0026#34;\u0026amp;File\u0026#34;); menuBar-\u0026gt;Append(menuHelp, \u0026#34;\u0026amp;Help\u0026#34;); SetMenuBar(menuBar); wxButton* button1 = new wxButton(this, ID_Hello, _(\u0026#34;Hello\u0026#34;), wxPoint(20, 20), wxSize(100, 32)); Connect(ID_Hello, wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(MyFrame::OnHello)); wxButton* button2 = new wxButton(this, wxID_ABOUT, _(\u0026#34;About\u0026#34;), wxPoint(20, 60), wxSize(100, 32)); Connect(wxID_ABOUT, wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(MyFrame::OnAbout)); wxButton* button3 = new wxButton(this, wxID_EXIT, _(\u0026#34;Exit\u0026#34;), wxPoint(20, 100), wxSize(100, 32)); Connect(wxID_EXIT, wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(MyFrame::OnExit)); CreateStatusBar(); SetStatusText(\u0026#34;Welcome to wxWidgets!\u0026#34;); Bind(wxEVT_MENU, \u0026amp;MyFrame::OnHello, this, ID_Hello); Bind(wxEVT_MENU, \u0026amp;MyFrame::OnAbout, this, wxID_ABOUT); Bind(wxEVT_MENU, \u0026amp;MyFrame::OnExit, this, wxID_EXIT); } void MyFrame::OnExit(wxCommandEvent\u0026amp; event) { Close(true); } void MyFrame::OnAbout(wxCommandEvent\u0026amp; event) { wxMessageBox(\u0026#34;This is a wxWidgets\u0026#39; Hello world sample\u0026#34;, \u0026#34;About Hello World\u0026#34;, wxOK | wxICON_INFORMATION); } void MyFrame::OnHello(wxCommandEvent\u0026amp; event) { wxLogMessage(\u0026#34;Hello world from wxWidgets!\u0026#34;); } बिल्ड और रन करने पर, नीचे दिए गए अनुसार एक विंडो खुलेगी। संदर्भ उदाहरण प्रोजेक्ट नीचे दिया गया है। wxWidgetsSample\nआधिकारिक वेबसाइट C++ और wxWidgets का उपयोग करके गेम यही सब है।\n","date":"2023-04-18T00:18:22+09:00","image":"http://kenji.blog/p/wxwidgets-%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB/img_hud707912b3d08e9053ad61da0782a9b23_168133_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/wxwidgets-%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB/","title":"wxWidgets का उपयोग करते हुए उदाहरण"},{"content":"देखने वाली फ़िल्में (देखने के बाद चेक करें) माकिया: व्हेन द प्रॉमिस्ड फ्लावर ब्लूम्स द प्रोफेसर्स बिलवेड इक्वेशन समर वॉर्स हिडन फिगर्स गुड विल हंटिंग अ ब्यूटीफुल माइंड द थ्योरी ऑफ़ एवरीथिंग द मैन हू न्यू इन्फिनिटी हॉकिंग (बेनेडिक्ट कंबरबैच) तेंची मीसात्सू पाई (π) 21 आईक्यू प्रूफ 3 इडियट्स बफ़ेलो \u0026lsquo;66 ए क्लॉकवर्क ऑरेंज बैकड्राफ्ट असाकुसा किड टॉप गन द मैट्रिक्स रिसरेक्शन्स आई एम लीजेंड द दा विंची कोड द सोशल नेटवर्क स्टाइन्स;गेट प्लैनेटेस ग्रेविटी वायलेट एवरगार्डन साइको-पास डेमन स्लेयर प्रिंसेस मोनोनोके विनी ज़ीरो फोकस ज़ूटोपिया योर नेम वेदरिंग विद यू बैक टू द फ्यूचर (1, 2, 3) शिन गॉडज़िला शिन अल्ट्रामैन शिन कामेन राइडर सुज़ुमे द फर्स्ट स्लैम डंक ","date":"2023-04-17T00:34:13+09:00","image":"http://kenji.blog/p/%E6%98%A0%E7%94%BBtodo%E3%83%AA%E3%82%B9%E3%83%88/image_hu831a556e644f698f06f7bab476f01bf6_248271_120x120_fill_q75_box_smart1.jpg","permalink":"http://kenji.blog/hi/p/%E6%98%A0%E7%94%BBtodo%E3%83%AA%E3%82%B9%E3%83%88/","title":"फ़िल्में TODO सूची"},{"content":"कूल वेब पेज टेम्पलेट\nhtml5up https://html5up.net/ मैंने सोचा कि मैं इसका इस्तेमाल करना चाहूंगा, इसलिए यहाँ एक नोट है।\n","date":"2023-04-17T00:26:55+09:00","image":"http://kenji.blog/p/%E3%81%8B%E3%81%A3%E3%81%93%E3%81%84%E3%81%84-web-%E3%83%9A%E3%83%BC%E3%82%B8%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88html5up/img_huc021190a6647c74fdf17f0c26cf7f09d_324732_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/%E3%81%8B%E3%81%A3%E3%81%93%E3%81%84%E3%81%84-web-%E3%83%9A%E3%83%BC%E3%82%B8%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88html5up/","title":"कूल वेब पेज टेम्पलेट (html5up)"},{"content":"पूर्व शर्तें ISO C++ 20 मानक (/std:c++20) कोड 1 2 3 4 #include \u0026lt;chrono\u0026gt; #include \u0026lt;format\u0026gt; std::string datetime = std::format(\u0026#34;{:%FT%TZ}\u0026#34;, system_clock::now()); इस प्रकार आप C++ में वर्तमान समय को ISO 8601 प्रारूप में प्रिंट कर सकते हैं।\nसंदर्भ std::format ","date":"2023-04-15T19:35:27+09:00","image":"http://kenji.blog/p/c-%E3%81%A7%E7%8F%BE%E5%9C%A8%E6%99%82%E5%88%BB%E3%82%92iso8601%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%83%E3%83%88%E3%81%A7%E5%87%BA%E5%8A%9B%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/img_hu7d543f2117b8a102814b6a542ff27896_11509_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/c-%E3%81%A7%E7%8F%BE%E5%9C%A8%E6%99%82%E5%88%BB%E3%82%92iso8601%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%83%E3%83%88%E3%81%A7%E5%87%BA%E5%8A%9B%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/","title":"C++ में वर्तमान समय को ISO 8601 प्रारूप में कैसे प्रिंट करें"},{"content":"यहाँ बताया गया है कि Windows को शटडाउन करने के लिए शॉर्टकट कैसे बनाया जाए।\nयह सुविधाजनक है क्योंकि आप डेस्कटॉप जैसी जगह पर बनाए गए शॉर्टकट पर डबल-क्लिक करके कंप्यूटर को शटडाउन कर सकते हैं।\nबनाने का तरीका 1. डेस्कटॉप पर राइट-क्लिक करें, और नया \u0026gt; शॉर्टकट चुनें 2. शॉर्टकट बनाने की स्क्रीन दिखाई देगी, इसमें shutdown.exe -s -f -t 0 दर्ज करें और अगला पर क्लिक करें 3. शॉर्टकट का नाम शटडाउन दर्ज करें और समाप्त पर क्लिक करें 4. बनाए गए शॉर्टकट का आइकन बदलें बनाए गए शॉर्टकट पर राइट-क्लिक करें और गुण चुनें\nआइकन बदलें पर क्लिक करें\nलाल चौकोर आइकन चुनें और ठीक पर क्लिक करें, फिर गुण विंडो बंद करने के लिए फिर से ठीक पर क्लिक करें।\nबस इतना ही।\nबनाए गए शॉर्टकट पर डबल-क्लिक करने पर Windows शटडाउन हो जाएगा।\n※ ध्यान दें: शटडाउन पुष्टिकरण संवाद बॉक्स प्रदर्शित नहीं किया जाएगा।\n","date":"2023-04-11T17:03:32+09:00","image":"http://kenji.blog/p/windows-%E3%82%92%E3%82%B7%E3%83%A3%E3%83%83%E3%83%88%E3%83%80%E3%82%A6%E3%83%B3%E3%81%99%E3%82%8B%E3%82%B7%E3%83%A7%E3%83%BC%E3%83%88%E3%82%AB%E3%83%83%E3%83%88%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/img_hu9b7c59b017f6e7ad15ccc41a6e668b14_6147_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/windows-%E0%A4%95%E0%A5%8B-%E0%A4%B6%E0%A4%9F%E0%A4%A1%E0%A4%BE%E0%A4%89%E0%A4%A8-%E0%A4%95%E0%A4%B0%E0%A4%A8%E0%A5%87-%E0%A4%95%E0%A5%87-%E0%A4%B2%E0%A4%BF%E0%A4%8F-%E0%A4%B6%E0%A5%89%E0%A4%B0%E0%A5%8D%E0%A4%9F%E0%A4%95%E0%A4%9F-%E0%A4%95%E0%A5%88%E0%A4%B8%E0%A5%87-%E0%A4%AC%E0%A4%A8%E0%A4%BE%E0%A4%8F%E0%A4%82/","title":"Windows को शटडाउन करने के लिए शॉर्टकट कैसे बनाएं"},{"content":"मैं आपको बताऊंगा कि paint.net का उपयोग करके किसी छवि के विशिष्ट भागों पर मोज़ेक कैसे लागू करें।\nइंटरनेट पर छवियों को अपलोड करते समय, ऐसे मामले हो सकते हैं जहां आप छवि के विशिष्ट भागों में मोज़ेक जोड़ना चाहते हैं। paint.net का उपयोग करके, आप छवियों को तुरंत संसाधित कर सकते हैं।\nप्रक्रिया 1. उस छवि को paint.net में खोलें जिस पर आप मोज़ेक लागू करना चाहते हैं 2. चयन उपकरण का उपयोग करके, उस क्षेत्र का चयन करें जहां आप मोज़ेक जोड़ना चाहते हैं (एकाधिक चयन संभव है) 3. मेनू \u0026gt; प्रभाव \u0026gt; विकृत करें \u0026gt; मोज़ेक चुनें सेल आकार के अनुसार मोज़ेक प्रसंस्करण का खुरदरापन सेट करें। संख्या जितनी बड़ी होगी, छुपाव उतना ही अधिक होगा। [छोटा करें] मल्टीसैंपल बिलिनियर चुनें [बड़ा करें] निकटतम पड़ोसी चुनें संवाद बॉक्स को OK के साथ बंद करें।\n4. छवि को मोज़ेक के साथ संसाधित किया जाएगा, फिर छवि को सहेजें। बस इतना ही।\n","date":"2023-04-11T16:33:10+09:00","image":"http://kenji.blog/p/paint.net%E3%81%A7%E7%94%BB%E5%83%8F%E3%81%AE%E7%89%B9%E5%AE%9A%E5%80%8B%E6%89%80%E3%81%AB%E3%83%A2%E3%82%B6%E3%82%A4%E3%82%AF%E3%82%92%E3%81%8B%E3%81%91%E3%82%8B%E6%96%B9%E6%B3%95/img_huffa96a6cc9046fae85e7535d0c0f77f3_7385_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/paint.net%E3%81%A7%E7%94%BB%E5%83%8F%E3%81%AE%E7%89%B9%E5%AE%9A%E5%80%8B%E6%89%80%E3%81%AB%E3%83%A2%E3%82%B6%E3%82%A4%E3%82%AF%E3%82%92%E3%81%8B%E3%81%91%E3%82%8B%E6%96%B9%E6%B3%95/","title":"paint.net का उपयोग करके किसी छवि के विशिष्ट भागों पर मोज़ेक कैसे लागू करें"},{"content":"यहाँ paint.net का उपयोग करके किसी छवि में बॉर्डर जोड़ने का तरीका बताया गया है।\nप्रक्रिया 1. paint.net में वह छवि खोलें जिसमें आप बॉर्डर जोड़ना चाहते हैं 2. द्वितीयक रंग सेट करें (यह बॉर्डर का रंग होगा) यदि रंग पैलेट दिखाई नहीं दे रहा है, तो अपने कीबोर्ड पर F8 कुंजी दबाएं।\nकाला सेट करने के लिए, पर क्लिक करें।\n3. मेनू \u0026gt; छवि \u0026gt; कैनवास का आकार बदलें चुनें चौड़ाई और ऊंचाई दोनों को 2 पिक्सेल बढ़ाएं। 2 पिक्सेल बढ़ाने से 1 पिक्सेल का बॉर्डर बनेगा। यदि आप 5 पिक्सेल का बॉर्डर चाहते हैं, तो चौड़ाई और ऊंचाई को 10-10 पिक्सेल बढ़ाएं।\nएंकर के लिए \u0026ldquo;केंद्र\u0026rdquo; चुनें और OK पर क्लिक करें।\n4. छवि में एक बॉर्डर जुड़ जाएगा, इसलिए छवि को सहेजें। बस इतना ही।\n","date":"2023-04-11T14:31:59+09:00","image":"http://kenji.blog/p/paint.net%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E7%94%BB%E5%83%8F%E3%81%AB%E6%9E%A0%E7%B7%9A%E3%82%92%E3%81%A4%E3%81%91%E3%82%8B%E6%96%B9%E6%B3%95/img_3_hu0a2e55b3f220b3e7559f248d1c86ab19_112900_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/how-to-add-border-to-image-using-paint-net/","title":"paint.net का उपयोग करके छवि में बॉर्डर कैसे जोड़ें"},{"content":"परिचय Ranklet नामक सेवा का उपयोग करके, आप Google Analytics से लोकप्रिय पेज रैंकिंग प्राप्त करके आसानी से प्रदर्शित कर सकते हैं।\nइस लेख में, मैं HUGO ब्लॉग में इसे प्रदर्शित करने का तरीका बताऊंगा।\nडेमो छवि तैयारी साइट पर Google Analytics सेटअप होना चाहिए चरण Ranklet पर जाएं Sign in with Google पर क्लिक करें और Google खाते से लॉग इन करें (यह Google Analytics खाते से जुड़ा होना चाहिए) अनुमति दें पर क्लिक करें\nबुनियादी जानकारी सेट करें मैंने इसे ऊपर दिखाए अनुसार कॉन्फ़िगर किया।\nGoogle Analytics View में वह व्यू चुनें जिससे आप रैंकिंग प्राप्त करना चाहते हैं। टेक्स्ट प्रतिस्थापन सेट करें मैंने इसे ऊपर दिखाए अनुसार सेट किया। पेज शीर्षक से | kenji.blog को हटाने के लिए इसे सेट किया गया है।\nटेम्प्लेट सेट करें HTML (रैंकिंग संख्या को छिपा दिया गया है) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 \u0026lt;div class=\u0026#34;ranklet ranklet-reset\u0026#34;\u0026gt; \u0026lt;table class=\u0026#34;ranklet-table\u0026#34;\u0026gt; \u0026lt;tbody class=\u0026#34;ranklet-pages\u0026#34;\u0026gt; {{#context.pages}} \u0026lt;tr class=\u0026#34;ranklet-page\u0026#34;\u0026gt; \u0026lt;td class=\u0026#34;ranklet-image\u0026#34;\u0026gt; {{#image}} \u0026lt;a href=\u0026#34;{{url}}\u0026#34; class=\u0026#34;ranklet-link\u0026#34;\u0026gt; \u0026lt;img class=\u0026#34;ranklet-img\u0026#34; src=\u0026#34;{{image}}\u0026#34; /\u0026gt; \u0026lt;/a\u0026gt; {{/image}} \u0026lt;/td\u0026gt; \u0026lt;td class=\u0026#34;ranklet-meta\u0026#34;\u0026gt; \u0026lt;div class=\u0026#34;ranklet-title\u0026#34;\u0026gt; \u0026lt;a href=\u0026#34;{{url}}\u0026#34; class=\u0026#34;ranklet-link\u0026#34;\u0026gt; {{title}} \u0026lt;/a\u0026gt; \u0026lt;/div\u0026gt; {{#description}} \u0026lt;div class=\u0026#34;ranklet-description\u0026#34;\u0026gt; \u0026lt;a href=\u0026#34;{{url}}\u0026#34; class=\u0026#34;ranklet-link\u0026#34;\u0026gt; {{description}} \u0026lt;/a\u0026gt; \u0026lt;/div\u0026gt; {{/description}} \u0026lt;/td\u0026gt; \u0026lt;/tr\u0026gt; {{/context.pages}} \u0026lt;/tbody\u0026gt; \u0026lt;/table\u0026gt; \u0026lt;/div\u0026gt; CSS (फ़ॉन्ट आकार बदला और विवरण को 3 पंक्तियों में प्रदर्शित करने के लिए सेट किया) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 #ranklet-{{context.id}} { .ranklet-reset { // रीसेट table, tr, td, div, span { margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; line-height: 1; box-sizing: border-box; } } .ranklet-table { border-collapse: separate; border-spacing: 8px 24px; width: 100%; word-break: break-all; td { vertical-align: middle; } .ranklet-rank { text-align: center; font-size: 120%; } .ranklet-image { text-align: center; img { max-width: 128px; max-height: 128px; } } .ranklet-meta { .ranklet-title { font-size: 20px; line-height: 125%; } .ranklet-description { font-size: 16px; margin-top: 8px; line-height: 125%; display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3; /* पंक्तियों की संख्या */ } } } } JavaScript में कोई बदलाव नहीं \u0026ldquo;साइट पर प्रकाशित करें\u0026rdquo; से HTML कॉपी करें प्रदर्शित HTML को कॉपी करें\nHUGO टेम्प्लेट में पेस्ट करें layouts/partials/ranklet.html बनाएं और कॉपी किए गए HTML को पेस्ट करें 1 \u0026lt;div id=\u0026#34;ranklet-11958\u0026#34;\u0026gt;\u0026lt;/div\u0026gt;\u0026lt;script src=\u0026#34;//widget.ranklet.com/v1/ranklet/s3/widgets/11958/widget.js\u0026#34;\u0026gt;\u0026lt;/script\u0026gt; layouts/_default/single.html में \u0026lt;/footer\u0026gt; से पहले वाली पंक्ति पर नीचे दिया गया कोड पेस्ट करें 1 {{- partial \u0026#34;ranklet.html\u0026#34; . }} बस इतना ही। अब रैंकिंग इस पेज के नीचे दिखाए अनुसार प्रदर्शित होगी।\n","date":"2023-04-10T20:26:57+09:00","image":"http://kenji.blog/p/google%E3%82%A2%E3%83%8A%E3%83%AA%E3%83%86%E3%82%A3%E3%82%AF%E3%82%B9%E3%81%8B%E3%82%89%E4%BA%BA%E6%B0%97%E3%83%9A%E3%83%BC%E3%82%B8%E3%83%A9%E3%83%B3%E3%82%AD%E3%83%B3%E3%82%B0%E3%82%92%E5%8F%96%E5%BE%97%E3%81%97%E3%81%A6%E9%85%8D%E7%BD%AE%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/img_hue19aa55fc0e6d690cd31b7a50b796054_6753_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/google%E3%82%A2%E3%83%8A%E3%83%AA%E3%83%86%E3%82%A3%E3%82%AF%E3%82%B9%E3%81%8B%E3%82%89%E4%BA%BA%E6%B0%97%E3%83%9A%E3%83%BC%E3%82%B8%E3%83%A9%E3%83%B3%E3%82%AD%E3%83%B3%E3%82%B0%E3%82%92%E5%8F%96%E5%BE%97%E3%81%97%E3%81%A6%E9%85%8D%E7%BD%AE%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/","title":"Google Analytics से लोकप्रिय पेज रैंकिंग प्राप्त करके प्रदर्शित करने का तरीका"},{"content":"Python Google Colaboratory Google Colaboratory एक ऑनलाइन Python निष्पादन वातावरण है।\nGPU का उपयोग भी संभव है। Colab नोटबुक का उपयोग करके, आप एक ही दस्तावेज़ में निष्पादन योग्य कोड और रिच टेक्स्ट (चित्र, HTML, LaTeX, आदि सहित) लिख सकते हैं। यह Jupyter Notebook पर आधारित है।\nRust Rust Playground JavaScript Javascript Playground Java paiza.IO Online Java compiler Haskell Haskell Playground Swift Online Swift Playground C++ C++ 14 अन्य AWS Cloud9 Amazon AWS द्वारा प्रदान किया गया एक ऑनलाइन एकीकृत विकास वातावरण। इसमें Node.js, JavaScript, Python, PHP, Ruby, Go, C++ जैसी 40 से अधिक प्रोग्रामिंग भाषाओं के लिए टूल पहले से पैक होते हैं।\nVisual Studio Code for the Web Microsoft द्वारा प्रदान किया गया एक ऑनलाइन विकास वातावरण। हालाँकि, संकलन (compilation) की आवश्यकता वाली भाषाओं को निष्पादित या डीबग नहीं किया जा सकता है।\npaiza.IO एक ऑनलाइन निष्पादन वातावरण जो C, C++, Java, Ruby, Python, PHP, Perl आदि जैसी 24 प्रमुख भाषाओं का समर्थन करता है।\nCodePen HTML, CSS और JavaScript के लिए एक ऑनलाइन निष्पादन वातावरण।\ncodeanywhere एक ऑनलाइन IDE। आपको कोड साझा करने और चैट करने की अनुमति देता है।\n","date":"2023-04-09T14:01:00+09:00","image":"http://kenji.blog/p/%E3%82%AA%E3%83%B3%E3%83%A9%E3%82%A4%E3%83%B3%E3%81%AE%E3%82%B3%E3%83%BC%E3%83%89%E5%AE%9F%E8%A1%8C%E7%92%B0%E5%A2%83%E3%81%BE%E3%81%A8%E3%82%81/img_hu1a682c657d060df2f584d6c279d355c7_129199_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/%E3%82%AA%E3%83%B3%E3%83%A9%E3%82%A4%E3%83%B3%E3%81%AE%E3%82%B3%E3%83%BC%E3%83%89%E5%AE%9F%E8%A1%8C%E7%92%B0%E5%A2%83%E3%81%BE%E3%81%A8%E3%82%81/","title":"[भाषा के अनुसार] ऑनलाइन कोड निष्पादन वातावरण सारांश"},{"content":"इरेटोस्थनीज की छलनी क्या है? इरेटोस्थनीज की छलनी एक एल्गोरिथ्म है जो किसी दी गई संख्या से छोटे सभी अभाज्य संख्याओं (prime numbers) को सूचीबद्ध करता है। यह एल्गोरिथ्म सरल है और इसे निम्नलिखित चरणों में लागू किया जा सकता है:\nN तत्वों वाली एक बूलियन ऐरे बनाएँ और सभी तत्वों को true से इनिशियलाइज़ करें। ऐरे के 0वें और 1ले तत्व को false सेट करें (क्योंकि 0 और 1 अभाज्य नहीं हैं)। यदि ऐरे का दूसरा तत्व true है, तो 2 को अभाज्य के रूप में आउटपुट करें। ऐरे में $2^2$ और उससे अधिक 2 के गुणजों (multiples) वाले तत्वों को false सेट करें ※ यदि ऐरे का तीसरा तत्व true है, तो 3 को अभाज्य के रूप में आउटपुट करें। ऐरे में $3^2$ और उससे अधिक 3 के गुणजों वाले तत्वों को false सेट करें। चौथे, 5वें, \u0026hellip;, Nवें तत्वों के लिए यही प्रक्रिया दोहराएँ। ※ हम वर्गों (squares) से ऊपर के तत्वों को false सेट करते हैं क्योंकि वर्ग से छोटी संख्याओं पर पहले ही प्रक्रिया हो चुकी होती है।\nRust में कार्यान्वयन 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 fn main() { let n = 1000; let mut is_prime = vec![true; n+1]; is_prime[0] = false; is_prime[1] = false; for i in 2..=n { if is_prime[i] { println!(\u0026#34;{}\u0026#34;, i); let mut j = i * i; while j \u0026lt;= n { is_prime[j] = false; j += i; } } } } थोड़ा अनुकूलित संस्करण निम्नलिखित बिंदुओं को ध्यान में रखते हुए, हम थोड़ा तेज़ कार्यान्वयन बना सकते हैं:\nऐरे को true के बजाय false से इनिशियलाइज़ करें (यह तेज़ है)। चूँकि 2 के गुणज अभाज्य नहीं होते हैं, इसलिए 2 के गुणजों को false सेट करने की प्रक्रिया को छोड़ दें। n तक लूप करने की आवश्यकता नहीं है; n के वर्गमूल तक अभाज्य संख्याओं को सूचीबद्ध करना, n से छोटे या उसके बराबर सभी अभाज्यों को खोजने के लिए पर्याप्त है। 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 fn main() { let n = 1000; let mut is_prime = vec![false; n+1]; is_prime[2] = true; for i in (3..=n).step_by(2) { is_prime[i] = true; } for i in 3..=((n as f64).sqrt() as usize) { if is_prime[i] { let mut j = i * i; while j \u0026lt;= n { is_prime[j] = false; j += i * 2; } } } for i in (2..=n).filter(|\u0026amp;x| is_prime[x]) { println!(\u0026#34;{}\u0026#34;, i); } } संदर्भ इरेटोस्थनीज की छलनी ","date":"2023-04-09T12:54:24+09:00","image":"http://kenji.blog/p/%E3%82%A8%E3%83%A9%E3%83%88%E3%82%B9%E3%83%86%E3%83%8D%E3%82%B9%E3%81%AE%E7%AF%A9%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A61000%E4%BB%A5%E4%B8%8B%E3%81%AE%E7%B4%A0%E6%95%B0%E3%82%92%E5%88%97%E6%8C%99%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/img_hud779f88eb17786b23927bc052940ab95_400805_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/%E0%A4%87%E0%A4%B0%E0%A5%87%E0%A4%9F%E0%A5%8B%E0%A4%B8%E0%A5%8D%E0%A4%A5%E0%A4%A8%E0%A5%80%E0%A4%9C-%E0%A4%95%E0%A5%80-%E0%A4%9B%E0%A4%B2%E0%A4%A8%E0%A5%80-%E0%A4%95%E0%A4%BE-%E0%A4%89%E0%A4%AA%E0%A4%AF%E0%A5%8B%E0%A4%97-%E0%A4%95%E0%A4%B0%E0%A4%95%E0%A5%87-1000-%E0%A4%B8%E0%A5%87-%E0%A4%95%E0%A4%AE-%E0%A4%85%E0%A4%AD%E0%A4%BE%E0%A4%9C%E0%A5%8D%E0%A4%AF-%E0%A4%B8%E0%A4%82%E0%A4%96%E0%A5%8D%E0%A4%AF%E0%A4%BE%E0%A4%93%E0%A4%82-%E0%A4%95%E0%A5%8B-%E0%A4%B8%E0%A5%82%E0%A4%9A%E0%A5%80%E0%A4%AC%E0%A4%A6%E0%A5%8D%E0%A4%A7-%E0%A4%95%E0%A4%B0%E0%A4%A8%E0%A5%87-%E0%A4%95%E0%A5%80-%E0%A4%B5%E0%A4%BF%E0%A4%A7%E0%A4%BF/","title":"इरेटोस्थनीज की छलनी का उपयोग करके 1000 से कम अभाज्य संख्याओं को सूचीबद्ध करने की विधि"},{"content":"टर्मिनल के माध्यम से स्थापना टर्मिनल खोलें sudo gem install cocoapods चलाएँ → किसी कारण से, निम्न त्रुटि संदेश दिखाई दिया और स्थापना विफल रही। आउटपुट 1 2 3 ERROR: Error installing cocoapods: The last version of activesupport (\u0026gt;= 5.0, \u0026lt; 8) to support your Ruby \u0026amp; RubyGems was 6.1.7.3. Try installing it with `gem install activesupport -v 6.1.7.3` and then running the current command again activesupport requires Ruby version \u0026gt;= 2.7.0. The current ruby version is 2.6.10.210. इसलिए, मैंने त्रुटि संदेश के लिए वेब पर खोज की (नीचे \u0026ldquo;संदर्भ\u0026rdquo; देखें) और निम्न कमांड चलाया: 1 /bin/bash -c \u0026#34;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)\u0026#34; आउटपुट 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 ==\u0026gt; Checking for `sudo` access (which may request your password)... ==\u0026gt; This script will install: /usr/local/bin/brew /usr/local/share/doc/homebrew /usr/local/share/man/man1/brew.1 /usr/local/share/zsh/site-functions/_brew /usr/local/etc/bash_completion.d/brew /usr/local/Homebrew ==\u0026gt; The following new directories will be created: /usr/local/bin /usr/local/etc /usr/local/include /usr/local/lib /usr/local/sbin /usr/local/share /usr/local/var /usr/local/opt /usr/local/share/zsh /usr/local/share/zsh/site-functions /usr/local/var/homebrew /usr/local/var/homebrew/linked /usr/local/Cellar /usr/local/Caskroom /usr/local/Frameworks ==\u0026gt; The Xcode Command Line Tools will be installed. Press RETURN/ENTER to continue or any other key to abort: ==\u0026gt; /usr/bin/sudo /bin/mkdir -p /usr/local/bin /usr/local/etc /usr/local/include /usr/local/lib /usr/local/sbin /usr/local/share /usr/local/var /usr/local/opt /usr/local/share/zsh /usr/local/share/zsh/site-functions /usr/local/var/homebrew /usr/local/var/homebrew/linked /usr/local/Cellar /usr/local/Caskroom /usr/local/Frameworks ==\u0026gt; /usr/bin/sudo /bin/chmod ug=rwx /usr/local/bin /usr/local/etc /usr/local/include /usr/local/lib /usr/local/sbin /usr/local/share /usr/local/var /usr/local/opt /usr/local/share/zsh /usr/local/share/zsh/site-functions /usr/local/var/homebrew /usr/local/var/homebrew/linked /usr/local/Cellar /usr/local/Caskroom /usr/local/Frameworks ==\u0026gt; /usr/bin/sudo /bin/chmod go-w /usr/local/share/zsh /usr/local/share/zsh/site-functions ==\u0026gt; /usr/bin/sudo /usr/sbin/chown kenji /usr/local/bin /usr/local/etc /usr/local/include /usr/local/lib /usr/local/sbin /usr/local/share /usr/local/var /usr/local/opt /usr/local/share/zsh /usr/local/share/zsh/site-functions /usr/local/var/homebrew /usr/local/var/homebrew/linked /usr/local/Cellar /usr/local/Caskroom /usr/local/Frameworks ==\u0026gt; /usr/bin/sudo /usr/bin/chgrp admin /usr/local/bin /usr/local/etc /usr/local/include /usr/local/lib /usr/local/sbin /usr/local/share /usr/local/var /usr/local/opt /usr/local/share/zsh /usr/local/share/zsh/site-functions /usr/local/var/homebrew /usr/local/var/homebrew/linked /usr/local/Cellar /usr/local/Caskroom /usr/local/Frameworks ==\u0026gt; /usr/bin/sudo /bin/mkdir -p /usr/local/Homebrew ==\u0026gt; /usr/bin/sudo /usr/sbin/chown -R kenji:admin /usr/local/Homebrew ==\u0026gt; /usr/bin/sudo /bin/mkdir -p /Users/kenji/Library/Caches/Homebrew ==\u0026gt; /usr/bin/sudo /bin/chmod g+rwx /Users/kenji/Library/Caches/Homebrew ==\u0026gt; /usr/bin/sudo /usr/sbin/chown -R kenji /Users/kenji/Library/Caches/Homebrew ==\u0026gt; Searching online for the Command Line Tools ==\u0026gt; /usr/bin/sudo /usr/bin/touch /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress ==\u0026gt; Installing Command Line Tools for Xcode-14.3 ==\u0026gt; /usr/bin/sudo /usr/sbin/softwareupdate -i Command\\ Line\\ Tools\\ for\\ Xcode-14.3 Software Update Tool Finding available software Downloading Command Line Tools for Xcode Downloaded Command Line Tools for Xcode Installing Command Line Tools for Xcode Done with Command Line Tools for Xcode Done. ==\u0026gt; /usr/bin/sudo /usr/bin/xcode-select --switch /Library/Developer/CommandLineTools ==\u0026gt; /usr/bin/sudo /bin/rm -f /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress ==\u0026gt; Downloading and installing Homebrew... remote: Enumerating objects: 236191, done. remote: Counting objects: 100% (504/504), done. remote: Compressing objects: 100% (327/327), done. remote: Total 236191 (delta 176), reused 468 (delta 158), pack-reused 235687 Receiving objects: 100% (236191/236191), 68.37 MiB | 15.51 MiB/s, done. Resolving deltas: 100% (173058/173058), done. From https://github.com/Homebrew/brew * [new branch] master -\u0026gt; origin/master * [new branch] test-runners -\u0026gt; origin/test-runners * [new tag] 0.1 -\u0026gt; 0.1 * [new tag] 0.2 -\u0026gt; 0.2 * [new tag] 0.3 -\u0026gt; 0.3 * [new tag] 0.4 -\u0026gt; 0.4 * [new tag] 0.5 -\u0026gt; 0.5 * [new tag] 0.6 -\u0026gt; 0.6 * [new tag] 0.7 -\u0026gt; 0.7 * [new tag] 0.7.1 -\u0026gt; 0.7.1 * [new tag] 0.8 -\u0026gt; 0.8 * [new tag] 0.8.1 -\u0026gt; 0.8.1 * [new tag] 0.9 -\u0026gt; 0.9 * [new tag] 0.9.1 -\u0026gt; 0.9.1 * [new tag] 0.9.2 -\u0026gt; 0.9.2 * [new tag] 0.9.3 -\u0026gt; 0.9.3 * [new tag] 0.9.4 -\u0026gt; 0.9.4 * [new tag] 0.9.5 -\u0026gt; 0.9.5 * [new tag] 0.9.8 -\u0026gt; 0.9.8 * [new tag] 0.9.9 -\u0026gt; 0.9.9 * [new tag] 1.0.0 -\u0026gt; 1.0.0 * [new tag] 1.0.1 -\u0026gt; 1.0.1 * [new tag] 1.0.2 -\u0026gt; 1.0.2 * [new tag] 1.0.3 -\u0026gt; 1.0.3 * [new tag] 1.0.4 -\u0026gt; 1.0.4 * [new tag] 1.0.5 -\u0026gt; 1.0.5 * [new tag] 1.0.6 -\u0026gt; 1.0.6 * [new tag] 1.0.7 -\u0026gt; 1.0.7 * [new tag] 1.0.8 -\u0026gt; 1.0.8 * [new tag] 1.0.9 -\u0026gt; 1.0.9 * [new tag] 1.1.0 -\u0026gt; 1.1.0 * [new tag] 1.1.1 -\u0026gt; 1.1.1 * [new tag] 1.1.10 -\u0026gt; 1.1.10 * [new tag] 1.1.11 -\u0026gt; 1.1.11 * [new tag] 1.1.12 -\u0026gt; 1.1.12 * [new tag] 1.1.13 -\u0026gt; 1.1.13 * [new tag] 1.1.2 -\u0026gt; 1.1.2 * [new tag] 1.1.3 -\u0026gt; 1.1.3 * [new tag] 1.1.4 -\u0026gt; 1.1.4 * [new tag] 1.1.5 -\u0026gt; 1.1.5 * [new tag] 1.1.6 -\u0026gt; 1.1.6 * [new tag] 1.1.7 -\u0026gt; 1.1.7 * [new tag] 1.1.8 -\u0026gt; 1.1.8 * [new tag] 1.1.9 -\u0026gt; 1.1.9 * [new tag] 1.2.0 -\u0026gt; 1.2.0 * [new tag] 1.2.1 -\u0026gt; 1.2.1 * [new tag] 1.2.2 -\u0026gt; 1.2.2 * [new tag] 1.2.3 -\u0026gt; 1.2.3 * [new tag] 1.2.4 -\u0026gt; 1.2.4 * [new tag] 1.2.5 -\u0026gt; 1.2.5 * [new tag] 1.2.6 -\u0026gt; 1.2.6 * [new tag] 1.3.0 -\u0026gt; 1.3.0 * [new tag] 1.3.1 -\u0026gt; 1.3.1 * [new tag] 1.3.2 -\u0026gt; 1.3.2 * [new tag] 1.3.3 -\u0026gt; 1.3.3 * [new tag] 1.3.4 -\u0026gt; 1.3.4 * [new tag] 1.3.5 -\u0026gt; 1.3.5 * [new tag] 1.3.6 -\u0026gt; 1.3.6 * [new tag] 1.3.7 -\u0026gt; 1.3.7 * [new tag] 1.3.8 -\u0026gt; 1.3.8 * [new tag] 1.3.9 -\u0026gt; 1.3.9 * [new tag] 1.4.0 -\u0026gt; 1.4.0 * [new tag] 1.4.1 -\u0026gt; 1.4.1 * [new tag] 1.4.2 -\u0026gt; 1.4.2 * [new tag] 1.4.3 -\u0026gt; 1.4.3 * [new tag] 1.5.0 -\u0026gt; 1.5.0 * [new tag] 1.5.1 -\u0026gt; 1.5.1 * [new tag] 1.5.10 -\u0026gt; 1.5.10 * [new tag] 1.5.11 -\u0026gt; 1.5.11 * [new tag] 1.5.12 -\u0026gt; 1.5.12 * [new tag] 1.5.13 -\u0026gt; 1.5.13 * [new tag] 1.5.14 -\u0026gt; 1.5.14 * [new tag] 1.5.2 -\u0026gt; 1.5.2 * [new tag] 1.5.3 -\u0026gt; 1.5.3 * [new tag] 1.5.4 -\u0026gt; 1.5.4 * [new tag] 1.5.5 -\u0026gt; 1.5.5 * [new tag] 1.5.6 -\u0026gt; 1.5.6 * [new tag] 1.5.7 -\u0026gt; 1.5.7 * [new tag] 1.5.8 -\u0026gt; 1.5.8 * [new tag] 1.5.9 -\u0026gt; 1.5.9 * [new tag] 1.6.0 -\u0026gt; 1.6.0 * [new tag] 1.6.1 -\u0026gt; 1.6.1 * [new tag] 1.6.10 -\u0026gt; 1.6.10 * [new tag] 1.6.11 -\u0026gt; 1.6.11 * [new tag] 1.6.12 -\u0026gt; 1.6.12 * [new tag] 1.6.13 -\u0026gt; 1.6.13 * [new tag] 1.6.14 -\u0026gt; 1.6.14 * [new tag] 1.6.15 -\u0026gt; 1.6.15 * [new tag] 1.6.16 -\u0026gt; 1.6.16 * [new tag] 1.6.17 -\u0026gt; 1.6.17 * [new tag] 1.6.2 -\u0026gt; 1.6.2 * [new tag] 1.6.3 -\u0026gt; 1.6.3 * [new tag] 1.6.4 -\u0026gt; 1.6.4 * [new tag] 1.6.5 -\u0026gt; 1.6.5 * [new tag] 1.6.6 -\u0026gt; 1.6.6 * [new tag] 1.6.7 -\u0026gt; 1.6.7 * [new tag] 1.6.8 -\u0026gt; 1.6.8 * [new tag] 1.6.9 -\u0026gt; 1.6.9 * [new tag] 1.7.0 -\u0026gt; 1.7.0 * [new tag] 1.7.1 -\u0026gt; 1.7.1 * [new tag] 1.7.2 -\u0026gt; 1.7.2 * [new tag] 1.7.3 -\u0026gt; 1.7.3 * [new tag] 1.7.4 -\u0026gt; 1.7.4 * [new tag] 1.7.5 -\u0026gt; 1.7.5 * [new tag] 1.7.6 -\u0026gt; 1.7.6 * [new tag] 1.7.7 -\u0026gt; 1.7.7 * [new tag] 1.8.0 -\u0026gt; 1.8.0 * [new tag] 1.8.1 -\u0026gt; 1.8.1 * [new tag] 1.8.2 -\u0026gt; 1.8.2 * [new tag] 1.8.3 -\u0026gt; 1.8.3 * [new tag] 1.8.4 -\u0026gt; 1.8.4 * [new tag] 1.8.5 -\u0026gt; 1.8.5 * [new tag] 1.8.6 -\u0026gt; 1.8.6 * [new tag] 1.9.0 -\u0026gt; 1.9.0 * [new tag] 1.9.1 -\u0026gt; 1.9.1 * [new tag] 1.9.2 -\u0026gt; 1.9.2 * [new tag] 1.9.3 -\u0026gt; 1.9.3 * [new tag] 2.0.0 -\u0026gt; 2.0.0 * [new tag] 2.0.1 -\u0026gt; 2.0.1 * [new tag] 2.0.2 -\u0026gt; 2.0.2 * [new tag] 2.0.3 -\u0026gt; 2.0.3 * [new tag] 2.0.4 -\u0026gt; 2.0.4 * [new tag] 2.0.5 -\u0026gt; 2.0.5 * [new tag] 2.0.6 -\u0026gt; 2.0.6 * [new tag] 2.1.0 -\u0026gt; 2.1.0 * [new tag] 2.1.1 -\u0026gt; 2.1.1 * [new tag] 2.1.10 -\u0026gt; 2.1.10 * [new tag] 2.1.11 -\u0026gt; 2.1.11 * [new tag] 2.1.12 -\u0026gt; 2.1.12 * [new tag] 2.1.13 -\u0026gt; 2.1.13 * [new tag] 2.1.14 -\u0026gt; 2.1.14 * [new tag] 2.1.15 -\u0026gt; 2.1.15 * [new tag] 2.1.16 -\u0026gt; 2.1.16 * [new tag] 2.1.2 -\u0026gt; 2.1.2 * [new tag] 2.1.3 -\u0026gt; 2.1.3 * [new tag] 2.1.4 -\u0026gt; 2.1.4 * [new tag] 2.1.5 -\u0026gt; 2.1.5 * [new tag] 2.1.6 -\u0026gt; 2.1.6 * [new tag] 2.1.7 -\u0026gt; 2.1.7 * [new tag] 2.1.8 -\u0026gt; 2.1.8 * [new tag] 2.1.9 -\u0026gt; 2.1.9 * [new tag] 2.2.0 -\u0026gt; 2.2.0 * [new tag] 2.2.1 -\u0026gt; 2.2.1 * [new tag] 2.2.10 -\u0026gt; 2.2.10 * [new tag] 2.2.11 -\u0026gt; 2.2.11 * [new tag] 2.2.12 -\u0026gt; 2.2.12 * [new tag] 2.2.13 -\u0026gt; 2.2.13 * [new tag] 2.2.14 -\u0026gt; 2.2.14 * [new tag] 2.2.15 -\u0026gt; 2.2.15 * [new tag] 2.2.16 -\u0026gt; 2.2.16 * [new tag] 2.2.17 -\u0026gt; 2.2.17 * [new tag] 2.2.2 -\u0026gt; 2.2.2 * [new tag] 2.2.3 -\u0026gt; 2.2.3 * [new tag] 2.2.4 -\u0026gt; 2.2.4 * [new tag] 2.2.5 -\u0026gt; 2.2.5 * [new tag] 2.2.6 -\u0026gt; 2.2.6 * [new tag] 2.2.7 -\u0026gt; 2.2.7 * [new tag] 2.2.8 -\u0026gt; 2.2.8 * [new tag] 2.2.9 -\u0026gt; 2.2.9 * [new tag] 2.3.0 -\u0026gt; 2.3.0 * [new tag] 2.4.0 -\u0026gt; 2.4.0 * [new tag] 2.4.1 -\u0026gt; 2.4.1 * [new tag] 2.4.10 -\u0026gt; 2.4.10 * [new tag] 2.4.11 -\u0026gt; 2.4.11 * [new tag] 2.4.12 -\u0026gt; 2.4.12 * [new tag] 2.4.13 -\u0026gt; 2.4.13 * [new tag] 2.4.14 -\u0026gt; 2.4.14 * [new tag] 2.4.15 -\u0026gt; 2.4.15 * [new tag] 2.4.16 -\u0026gt; 2.4.16 * [new tag] 2.4.2 -\u0026gt; 2.4.2 * [new tag] 2.4.3 -\u0026gt; 2.4.3 * [new tag] 2.4.4 -\u0026gt; 2.4.4 * [new tag] 2.4.5 -\u0026gt; 2.4.5 * [new tag] 2.4.6 -\u0026gt; 2.4.6 * [new tag] 2.4.7 -\u0026gt; 2.4.7 * [new tag] 2.4.8 -\u0026gt; 2.4.8 * [new tag] 2.4.9 -\u0026gt; 2.4.9 * [new tag] 2.5.0 -\u0026gt; 2.5.0 * [new tag] 2.5.1 -\u0026gt; 2.5.1 * [new tag] 2.5.10 -\u0026gt; 2.5.10 * [new tag] 2.5.11 -\u0026gt; 2.5.11 * [new tag] 2.5.12 -\u0026gt; 2.5.12 * [new tag] 2.5.2 -\u0026gt; 2.5.2 * [new tag] 2.5.3 -\u0026gt; 2.5.3 * [new tag] 2.5.4 -\u0026gt; 2.5.4 * [new tag] 2.5.5 -\u0026gt; 2.5.5 * [new tag] 2.5.6 -\u0026gt; 2.5.6 * [new tag] 2.5.7 -\u0026gt; 2.5.7 * [new tag] 2.5.8 -\u0026gt; 2.5.8 * [new tag] 2.5.9 -\u0026gt; 2.5.9 * [new tag] 2.6.0 -\u0026gt; 2.6.0 * [new tag] 2.6.1 -\u0026gt; 2.6.1 * [new tag] 2.6.2 -\u0026gt; 2.6.2 * [new tag] 2.7.0 -\u0026gt; 2.7.0 * [new tag] 2.7.1 -\u0026gt; 2.7.1 * [new tag] 2.7.2 -\u0026gt; 2.7.2 * [new tag] 2.7.3 -\u0026gt; 2.7.3 * [new tag] 2.7.4 -\u0026gt; 2.7.4 * [new tag] 2.7.5 -\u0026gt; 2.7.5 * [new tag] 2.7.6 -\u0026gt; 2.7.6 * [new tag] 2.7.7 -\u0026gt; 2.7.7 * [new tag] 3.0.0 -\u0026gt; 3.0.0 * [new tag] 3.0.1 -\u0026gt; 3.0.1 * [new tag] 3.0.10 -\u0026gt; 3.0.10 * [new tag] 3.0.11 -\u0026gt; 3.0.11 * [new tag] 3.0.2 -\u0026gt; 3.0.2 * [new tag] 3.0.3 -\u0026gt; 3.0.3 * [new tag] 3.0.4 -\u0026gt; 3.0.4 * [new tag] 3.0.5 -\u0026gt; 3.0.5 * [new tag] 3.0.6 -\u0026gt; 3.0.6 * [new tag] 3.0.7 -\u0026gt; 3.0.7 * [new tag] 3.0.8 -\u0026gt; 3.0.8 * [new tag] 3.0.9 -\u0026gt; 3.0.9 * [new tag] 3.1.0 -\u0026gt; 3.1.0 * [new tag] 3.1.1 -\u0026gt; 3.1.1 * [new tag] 3.1.10 -\u0026gt; 3.1.10 * [new tag] 3.1.11 -\u0026gt; 3.1.11 * [new tag] 3.1.12 -\u0026gt; 3.1.12 * [new tag] 3.1.2 -\u0026gt; 3.1.2 * [new tag] 3.1.3 -\u0026gt; 3.1.3 * [new tag] 3.1.4 -\u0026gt; 3.1.4 * [new tag] 3.1.5 -\u0026gt; 3.1.5 * [new tag] 3.1.6 -\u0026gt; 3.1.6 * [new tag] 3.1.7 -\u0026gt; 3.1.7 * [new tag] 3.1.8 -\u0026gt; 3.1.8 * [new tag] 3.1.9 -\u0026gt; 3.1.9 * [new tag] 3.2.0 -\u0026gt; 3.2.0 * [new tag] 3.2.1 -\u0026gt; 3.2.1 * [new tag] 3.2.10 -\u0026gt; 3.2.10 * [new tag] 3.2.11 -\u0026gt; 3.2.11 * [new tag] 3.2.12 -\u0026gt; 3.2.12 * [new tag] 3.2.13 -\u0026gt; 3.2.13 * [new tag] 3.2.14 -\u0026gt; 3.2.14 * [new tag] 3.2.15 -\u0026gt; 3.2.15 * [new tag] 3.2.16 -\u0026gt; 3.2.16 * [new tag] 3.2.17 -\u0026gt; 3.2.17 * [new tag] 3.2.2 -\u0026gt; 3.2.2 * [new tag] 3.2.3 -\u0026gt; 3.2.3 * [new tag] 3.2.4 -\u0026gt; 3.2.4 * [new tag] 3.2.5 -\u0026gt; 3.2.5 * [new tag] 3.2.6 -\u0026gt; 3.2.6 * [new tag] 3.2.7 -\u0026gt; 3.2.7 * [new tag] 3.2.8 -\u0026gt; 3.2.8 * [new tag] 3.2.9 -\u0026gt; 3.2.9 * [new tag] 3.3.0 -\u0026gt; 3.3.0 * [new tag] 3.3.1 -\u0026gt; 3.3.1 * [new tag] 3.3.10 -\u0026gt; 3.3.10 * [new tag] 3.3.11 -\u0026gt; 3.3.11 * [new tag] 3.3.12 -\u0026gt; 3.3.12 * [new tag] 3.3.13 -\u0026gt; 3.3.13 * [new tag] 3.3.14 -\u0026gt; 3.3.14 * [new tag] 3.3.15 -\u0026gt; 3.3.15 * [new tag] 3.3.16 -\u0026gt; 3.3.16 * [new tag] 3.3.2 -\u0026gt; 3.3.2 * [new tag] 3.3.3 -\u0026gt; 3.3.3 * [new tag] 3.3.4 -\u0026gt; 3.3.4 * [new tag] 3.3.5 -\u0026gt; 3.3.5 * [new tag] 3.3.6 -\u0026gt; 3.3.6 * [new tag] 3.3.7 -\u0026gt; 3.3.7 * [new tag] 3.3.8 -\u0026gt; 3.3.8 * [new tag] 3.3.9 -\u0026gt; 3.3.9 * [new tag] 3.4.0 -\u0026gt; 3.4.0 * [new tag] 3.4.1 -\u0026gt; 3.4.1 * [new tag] 3.4.10 -\u0026gt; 3.4.10 * [new tag] 3.4.11 -\u0026gt; 3.4.11 * [new tag] 3.4.2 -\u0026gt; 3.4.2 * [new tag] 3.4.3 -\u0026gt; 3.4.3 * [new tag] 3.4.4 -\u0026gt; 3.4.4 * [new tag] 3.4.5 -\u0026gt; 3.4.5 * [new tag] 3.4.6 -\u0026gt; 3.4.6 * [new tag] 3.4.7 -\u0026gt; 3.4.7 * [new tag] 3.4.8 -\u0026gt; 3.4.8 * [new tag] 3.4.9 -\u0026gt; 3.4.9 * [new tag] 3.5.0 -\u0026gt; 3.5.0 * [new tag] 3.5.1 -\u0026gt; 3.5.1 * [new tag] 3.5.10 -\u0026gt; 3.5.10 * [new tag] 3.5.2 -\u0026gt; 3.5.2 * [new tag] 3.5.3 -\u0026gt; 3.5.3 * [new tag] 3.5.4 -\u0026gt; 3.5.4 * [new tag] 3.5.5 -\u0026gt; 3.5.5 * [new tag] 3.5.6 -\u0026gt; 3.5.6 * [new tag] 3.5.7 -\u0026gt; 3.5.7 * [new tag] 3.5.8 -\u0026gt; 3.5.8 * [new tag] 3.5.9 -\u0026gt; 3.5.9 * [new tag] 3.6.0 -\u0026gt; 3.6.0 * [new tag] 3.6.1 -\u0026gt; 3.6.1 * [new tag] 3.6.10 -\u0026gt; 3.6.10 * [new tag] 3.6.11 -\u0026gt; 3.6.11 * [new tag] 3.6.12 -\u0026gt; 3.6.12 * [new tag] 3.6.13 -\u0026gt; 3.6.13 * [new tag] 3.6.14 -\u0026gt; 3.6.14 * [new tag] 3.6.15 -\u0026gt; 3.6.15 * [new tag] 3.6.16 -\u0026gt; 3.6.16 * [new tag] 3.6.17 -\u0026gt; 3.6.17 * [new tag] 3.6.18 -\u0026gt; 3.6.18 * [new tag] 3.6.19 -\u0026gt; 3.6.19 * [new tag] 3.6.2 -\u0026gt; 3.6.2 * [new tag] 3.6.20 -\u0026gt; 3.6.20 * [new tag] 3.6.21 -\u0026gt; 3.6.21 * [new tag] 3.6.3 -\u0026gt; 3.6.3 * [new tag] 3.6.4 -\u0026gt; 3.6.4 * [new tag] 3.6.5 -\u0026gt; 3.6.5 * [new tag] 3.6.6 -\u0026gt; 3.6.6 * [new tag] 3.6.7 -\u0026gt; 3.6.7 * [new tag] 3.6.8 -\u0026gt; 3.6.8 * [new tag] 3.6.9 -\u0026gt; 3.6.9 * [new tag] 4.0.0 -\u0026gt; 4.0.0 * [new tag] 4.0.1 -\u0026gt; 4.0.1 * [new tag] 4.0.10 -\u0026gt; 4.0.10 * [new tag] 4.0.11 -\u0026gt; 4.0.11 * [new tag] 4.0.2 -\u0026gt; 4.0.2 * [new tag] 4.0.3 -\u0026gt; 4.0.3 * [new tag] 4.0.4 -\u0026gt; 4.0.4 * [new tag] 4.0.5 -\u0026gt; 4.0.5 * [new tag] 4.0.6 -\u0026gt; 4.0.6 * [new tag] 4.0.7 -\u0026gt; 4.0.7 * [new tag] 4.0.8 -\u0026gt; 4.0.8 * [new tag] 4.0.9 -\u0026gt; 4.0.9 HEAD is now at c51687009 Merge pull request #15168 from reitermarkus/api-ruby-source-path ==\u0026gt; Installation successful! ==\u0026gt; Homebrew has enabled anonymous aggregate formulae and cask analytics. Read the analytics documentation (and how to opt-out) here: https://docs.brew.sh/Analytics No analytics data has been sent yet (nor will any be during this install run). ==\u0026gt; Homebrew is run entirely by unpaid volunteers. Please consider donating: https://github.com/Homebrew/brew#donations ==\u0026gt; Next steps: - Run these two commands in your terminal to add Homebrew to your PATH: (echo; echo \u0026#39;eval \u0026#34;$(/usr/local/bin/brew shellenv)\u0026#34;\u0026#39;) \u0026gt;\u0026gt; /Users/kenji/.zprofile eval \u0026#34;$(/usr/local/bin/brew shellenv)\u0026#34; - Run brew help to get started - Further documentation: https://docs.brew.sh brew install cocoapods चलाएँ आउटपुट 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 Warning: Treating cocoapods as a formula. For the cask, use homebrew/cask/cocoapods ==\u0026gt; Fetching dependencies for cocoapods: libyaml, ca-certificates, openssl@1.1, readline and ruby ==\u0026gt; Fetching libyaml ==\u0026gt; Downloading https://ghcr.io/v2/homebrew/core/libyaml/manifests/0.2.5 ######################################################################## 100.0% ==\u0026gt; Downloading https://ghcr.io/v2/homebrew/core/libyaml/blobs/sha256:b49e62f014 ==\u0026gt; Downloading from https://pkg-containers.githubusercontent.com/ghcr1/blobs/sh ######################################################################## 100.0% ==\u0026gt; Fetching ca-certificates ==\u0026gt; Downloading https://ghcr.io/v2/homebrew/core/ca-certificates/manifests/2023- ######################################################################## 100.0% ==\u0026gt; Downloading https://ghcr.io/v2/homebrew/core/ca-certificates/blobs/sha256:11 ==\u0026gt; Downloading from https://pkg-containers.githubusercontent.com/ghcr1/blobs/sh ######################################################################## 100.0% ==\u0026gt; Fetching openssl@1.1 ==\u0026gt; Downloading https://ghcr.io/v2/homebrew/core/openssl/1.1/manifests/1.1.1t ######################################################################## 100.0% ==\u0026gt; Downloading https://ghcr.io/v2/homebrew/core/openssl/1.1/blobs/sha256:97676d ==\u0026gt; Downloading from https://pkg-containers.githubusercontent.com/ghcr1/blobs/sh ######################################################################## 100.0% ==\u0026gt; Fetching readline ==\u0026gt; Downloading https://ghcr.io/v2/homebrew/core/readline/manifests/8.2.1 ######################################################################## 100.0% ==\u0026gt; Downloading https://ghcr.io/v2/homebrew/core/readline/blobs/sha256:abe9d3f3e ==\u0026gt; Downloading from https://pkg-containers.githubusercontent.com/ghcr1/blobs/sh ######################################################################## 100.0% ==\u0026gt; Fetching ruby ==\u0026gt; Downloading https://ghcr.io/v2/homebrew/core/ruby/manifests/3.2.2 ######################################################################## 100.0% ==\u0026gt; Downloading https://ghcr.io/v2/homebrew/core/ruby/blobs/sha256:a4ac080688e87 ==\u0026gt; Downloading from https://pkg-containers.githubusercontent.com/ghcr1/blobs/sh ######################################################################## 100.0% ==\u0026gt; Fetching cocoapods ==\u0026gt; Downloading https://ghcr.io/v2/homebrew/core/cocoapods/manifests/1.12.0 ######################################################################## 100.0% ==\u0026gt; Downloading https://ghcr.io/v2/homebrew/core/cocoapods/blobs/sha256:11226288 ==\u0026gt; Downloading from https://pkg-containers.githubusercontent.com/ghcr1/blobs/sh ######################################################################## 100.0% ==\u0026gt; Installing dependencies for cocoapods: libyaml, ca-certificates, openssl@1.1, readline and ruby ==\u0026gt; Installing cocoapods dependency: libyaml ==\u0026gt; Pouring libyaml--0.2.5.ventura.bottle.tar.gz 🍺 /usr/local/Cellar/libyaml/0.2.5: 10 files, 330KB ==\u0026gt; Installing cocoapods dependency: ca-certificates ==\u0026gt; Pouring ca-certificates--2023-01-10.all.bottle.tar.gz ==\u0026gt; Regenerating CA certificate bundle from keychain, this may take a while... 🍺 /usr/local/Cellar/ca-certificates/2023-01-10: 3 files, 216.9KB ==\u0026gt; Installing cocoapods dependency: openssl@1.1 ==\u0026gt; Pouring openssl@1.1--1.1.1t.ventura.bottle.tar.gz 🍺 /usr/local/Cellar/openssl@1.1/1.1.1t: 8,101 files, 18.5MB ==\u0026gt; Installing cocoapods dependency: readline ==\u0026gt; Pouring readline--8.2.1.ventura.bottle.tar.gz 🍺 /usr/local/Cellar/readline/8.2.1: 50 files, 1.7MB ==\u0026gt; Installing cocoapods dependency: ruby ==\u0026gt; Pouring ruby--3.2.2.ventura.bottle.tar.gz 🍺 /usr/local/Cellar/ruby/3.2.2: 16,605 files, 46.3MB ==\u0026gt; Installing cocoapods ==\u0026gt; Pouring cocoapods--1.12.0.ventura.bottle.tar.gz 🍺 /usr/local/Cellar/cocoapods/1.12.0: 13,436 files, 27.8MB ==\u0026gt; Running `brew cleanup cocoapods`... Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP. Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`). pod --version चलाएँ आउटपुट 1 1.12.0 ऐसा लगता है कि यह सफलतापूर्वक स्थापित हो गया है।\nसंदर्भ Installing \u0026ldquo;CocoaPods\u0026rdquo; ","date":"2023-04-09T03:25:54+09:00","image":"http://kenji.blog/p/mac%E3%81%ABcocoapods%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/img_1_hu5a3007afd3f7cdc4b526573a36fbeca4_11833_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/mac%E3%81%ABcocoapods%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/","title":"mac पर CocoaPods कैसे स्थापित करें"},{"content":"Salesforce SOQL का उपयोग करके प्रतिदिन बनाए गए रिकॉर्ड्स की संख्या कैसे प्राप्त करें डेवलपर कंसोल खोलें। Query Editor टैब खोलें। निम्नलिखित SOQL को पेस्ट करें और चलाएं। 1 select day_only(createdDate), count(createdDate) from account group by day_only(createdDate) order by count(createdDate) desc limit 10 कृपया account को उस ऑब्जेक्ट के नाम में बदलें जिसे आप प्राप्त करना चाहते हैं और निष्पादित करें।\nसंदर्भ Is there a way to group by the date portion of a datetime field in SOQL? ","date":"2023-04-09T02:50:30+09:00","image":"http://kenji.blog/p/salesforce%E3%81%AEsoql%E3%82%92%E5%88%A9%E7%94%A8%E3%81%97%E3%81%A6%E6%97%A5%E5%88%A5%E3%81%AE%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E4%BD%9C%E6%88%90%E6%95%B0%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/img_hub769e11b0a209a1986a31ec50fb9e2d1_10470_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/salesforce-soql-%E0%A4%95%E0%A4%BE-%E0%A4%89%E0%A4%AA%E0%A4%AF%E0%A5%8B%E0%A4%97-%E0%A4%95%E0%A4%B0%E0%A4%95%E0%A5%87-%E0%A4%AA%E0%A5%8D%E0%A4%B0%E0%A4%A4%E0%A4%BF%E0%A4%A6%E0%A4%BF%E0%A4%A8-%E0%A4%AC%E0%A4%A8%E0%A4%BE%E0%A4%8F-%E0%A4%97%E0%A4%8F-%E0%A4%B0%E0%A4%BF%E0%A4%95%E0%A5%89%E0%A4%B0%E0%A5%8D%E0%A4%A1%E0%A5%8D%E0%A4%B8-%E0%A4%95%E0%A5%80-%E0%A4%B8%E0%A4%82%E0%A4%96%E0%A5%8D%E0%A4%AF%E0%A4%BE-%E0%A4%95%E0%A5%88%E0%A4%B8%E0%A5%87-%E0%A4%AA%E0%A5%8D%E0%A4%B0%E0%A4%BE%E0%A4%AA%E0%A5%8D%E0%A4%A4-%E0%A4%95%E0%A4%B0%E0%A5%87%E0%A4%82/","title":"Salesforce SOQL का उपयोग करके प्रतिदिन बनाए गए रिकॉर्ड्स की संख्या कैसे प्राप्त करें"},{"content":"\nआपको क्या चाहिए Google खाता चरण https://colab.research.google.com/ पर जाएं \u0026ldquo;फ़ाइल\u0026rdquo; -\u0026gt; \u0026ldquo;नई नोटबुक\u0026rdquo; चुनें नीचे दिए गए कोड को पेस्ट करें और चलाएं 1 2 3 4 5 6 7 import matplotlib.pyplot as plt import numpy as np x = np.linspace(0, 2*np.pi, 500) plt.plot(x, np.sin(x), label=\u0026#34;sin curve\u0026#34;) plt.plot(x, np.cos(x), label=\u0026#34;cos curve\u0026#34;) plt.legend() # लीजेंड दिखाएं plt.show() निष्पादन परिणाम संदर्भ matplotlib.pyplot — Matplotlib 3.5.3 documentation ","date":"2023-04-09T01:02:19+09:00","image":"http://kenji.blog/p/pythonmatplotlib.pyplot%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%82%B0%E3%83%A9%E3%83%95%E3%82%92%E6%8F%8F%E7%94%BB%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/img_hucdb24ab588d845f9f7a56ef99be2c709_27745_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/python-matplotlib.pyplot-%E0%A4%95%E0%A4%BE-%E0%A4%89%E0%A4%AA%E0%A4%AF%E0%A5%8B%E0%A4%97-%E0%A4%95%E0%A4%B0%E0%A4%95%E0%A5%87-%E0%A4%97%E0%A5%8D%E0%A4%B0%E0%A4%BE%E0%A4%AB%E0%A4%BC-%E0%A4%95%E0%A5%88%E0%A4%B8%E0%A5%87-%E0%A4%AC%E0%A4%A8%E0%A4%BE%E0%A4%8F%E0%A4%82/","title":"Python (matplotlib.pyplot) का उपयोग करके ग्राफ़ कैसे बनाएं"},{"content":"क्या चाहिए Twitter API Twitter API SECRET Twitter ACCESS TOKEN Twitter ACCESS TOKEN SECRET Google अकाउंट Twitter API कैसे प्राप्त करें, इसके लिए संदर्भ साइट देखें।\nAPI का उपयोग करके ट्वीट करने के चरण https://colab.research.google.com/ पर जाएं \u0026ldquo;फ़ाइल\u0026rdquo; -\u0026gt; \u0026ldquo;नई नोटबुक\u0026rdquo; चुनें नीचे दिया गया कोड पेस्ट करें और चलाएं (कृपया अपने द्वारा प्राप्त वास्तविक मानों का उपयोग करें) 1 2 3 4 API_KEY = \u0026#39;9Smu2f2RoLqbVQHQq6n79Z2JW\u0026#39; API_SECRET = \u0026#39;uGVRIkLL2l8sRyPv2Lr4mXxXppnQF1isMoRnvktcXCtFgAK2R8\u0026#39; ACCESS_TOKEN = \u0026#39;0367292979164670705-7hSErDoQbO6fkFtnn5UY0vqpvecy0O\u0026#39; ACCESS_TOKEN_SECRET = \u0026#39;pUv81U9GVzZirz5g4AxZPHAJ4GpSXnBo8GUcZ1egtjw9q\u0026#39; नीचे दिया गया कोड पेस्ट करें और चलाएं 1 import tweepy नीचे दिया गया कोड पेस्ट करें और चलाएं (API v1.1) 1 2 3 4 auth = tweepy.OAuthHandler(API_KEY, API_SECRET) auth.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET) api = tweepy.API(auth) api.update_status(\u0026#34;hello\u0026#34;) → hello कहने वाला एक ट्वीट पोस्ट किया जाएगा\nनीचे दिया गया कोड पेस्ट करें और चलाएं (API v2.0) 1 2 client = tweepy.Client(consumer_key=API_KEY, consumer_secret=API_SECRET, access_token=ACCESS_TOKEN, access_token_secret=ACCESS_TOKEN_SECRET) client.create_tweet(text=\u0026#39;hello v2\u0026#39;) → hello v2 कहने वाला एक ट्वीट पोस्ट किया जाएगा\nबस इतना ही\nसंदर्भ 【अप्रैल 2021 तक】उपयोग उदाहरणों और स्क्रीनशॉट के साथ Twitter API उपयोग एप्लिकेशन की विस्तृत व्याख्या 【जटिल सेटिंग्स की कोई आवश्यकता नहीं!】Twitter API परीक्षण वातावरण के लिए Google Colaboratory की अनुशंसा की जाती है 【स्रोत कोड भी साझा किया गया है】 【Tweepy】Twitter API v2: ट्वीट, रिप्लाई, पोल वाले ट्वीट, मीडिया वाले ट्वीट (v1.1) [Python] ","date":"2023-04-08T18:48:32+09:00","image":"http://kenji.blog/p/twitter-api%E3%81%A8google-colaboratory%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6tweet%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/img_hu92a10d7ea1c17ea4dcc0d2e0b77b6296_75327_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/how-to-tweet-using-twitter-api-and-google-colaboratory-hi/","title":"Twitter API और Google Colaboratory का उपयोग करके ट्वीट कैसे करें"},{"content":"OpenSSL क्या है? यह एक ओपन-सोर्स लाइब्रेरी है जो एन्क्रिप्टेड संचार करने के लिए आवश्यक प्रोसेसिंग प्रदान करती है।\nइसे किसी प्रोग्राम से उपयोग करने के लिए, चूंकि C स्रोत कोड प्रकाशित है, आपको लाइब्रेरी बनाने के लिए इसे बिल्ड करना होगा।\nनीचे, हम बिल्ड प्रक्रिया का परिचय दे रहे हैं।\nबिल्ड वातावरण की तैयारी Perl\nhttps://strawberryperl.com/ से strawberry-perl-5.32.1.1-64bit.msi डाउनलोड करें। नवीनतम संस्करण ठीक रहेगा।\nNASM\nhttps://www.nasm.us/ के Download से 2.16.01/nasm-2.16.01-win64.zip डाउनलोड करें। नवीनतम गैर-RC संस्करण ठीक रहेगा। स्थापना के बाद, आपको उस फ़ोल्डर को पर्यावरण चर PATH में पंजीकृत करना होगा जहाँ NASM स्थापित है।\nVisual Studio 2022 या Build Tools for Visual Studio 2022\nhttps://visualstudio.microsoft.com/ja/downloads/ से Visual Studio 2022 Community या Build Tools for Visual Studio 2022 इंस्टॉल करें।\nWindows पर OpenSSL बिल्ड प्रक्रिया https://www.openssl.org/source/ से openssl-3.1.0.tar.gz डाउनलोड करें और इसे एक्सट्रेक्ट करें। यदि आप इसे एक्सट्रेक्ट नहीं कर सकते हैं, तो कमांड प्रॉम्प्ट में tar -xzf openssl-3.1.0.tar.gz चलाएँ। प्रशासक विशेषाधिकारों के साथ कमांड प्रॉम्प्ट प्रारंभ करें। एक्सट्रेक्ट किए गए फ़ोल्डर को खोलें। निम्नलिखित कमांड चलाएँ। *अपने स्थापित Visual Studio संस्करण से मेल खाने के लिए Community भाग बदलें। 1 \u0026#34;C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Auxiliary\\Build\\vcvarsall.bat\u0026#34; x64 निम्नलिखित कमांड चलाएँ: 1 perl Configure VC-WIN64A निम्नलिखित कमांड चलाएँ (इसमें काफी समय लगता है): 1 nmake निम्नलिखित कमांड चलाएँ (इसमें काफी समय लगता है): 1 nmake test निम्नलिखित कमांड चलाएँ: 1 nmake install यदि सफल होता है, तो OpenSSL C:\\Program Files\\OpenSSL में स्थापित हो जाएगा।\nबस इतना ही।\nसंदर्भ https://ja.wikipedia.org/wiki/OpenSSL\n","date":"2023-04-07T21:06:32+09:00","image":"http://kenji.blog/p/windows-%E3%81%A7-openssl-%E3%82%92%E3%83%93%E3%83%AB%E3%83%89%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/img_hu856dff3329e4daff79f775d47e5cc35b_35659_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/windows-%E3%81%A7-openssl-%E3%82%92%E3%83%93%E3%83%AB%E3%83%89%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/","title":"Windows पर OpenSSL को कैसे बिल्ड करें"},{"content":"i18n क्या है? i18n, Internationalization (अंतर्राष्ट्रीयकरण) का संक्षिप्त रूप है। चूँकि Internationalization बहुत लंबा है, इसलिए इसे i18n के रूप में संक्षिप्त किया गया है क्योंकि पहले i और अंतिम n के बीच 18 अक्षर होते हैं।\nइसका उपयोग अक्सर सॉफ्टवेयर अंतर्राष्ट्रीयकरण के संदर्भ में किया जाता है।\nअंतर्राष्ट्रीयकरण में विचार करने के लिए मुख्य आइटम निम्नलिखित हैं: 1\nकैरेक्टर सेट (मानक कैरेक्टर कोड, आदि) टेक्स्ट की दिशा (बाएं से दाएं, दाएं से बाएं, ऊपर से नीचे बाएं की ओर, आदि) भाषा / टेक्स्ट फ़ॉन्ट प्रारूप संख्याएं (दशमलव बिंदु वर्ण, हज़ार विभाजक वर्ण, समूहीकृत किए जाने वाले अंकों की संख्या, आदि) दिनांक और समय (दिनांक प्रारूप, उपयोग किए जाने वाले कैलेंडर में अंतर जैसे इस्लामी / ग्रेगोरियन / यहूदी / जापानी, आदि) दिनांक और समय की जानकारी में समय क्षेत्र (टाइम ज़ोन) का अंतर मुद्रा की जानकारी अंतर्राष्ट्रीयकरण और स्थानीयकरण - विकिपीडिया\u0026#160;\u0026#x21a9;\u0026#xfe0e;\n","date":"2023-04-07T00:42:02+09:00","image":"http://kenji.blog/p/i18n%E3%81%A8%E3%81%AF/img_hu5547e5059a9dab53fb09979c54309752_11855_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/i18n%E3%81%A8%E3%81%AF/","title":"i18n क्या है?"},{"content":"HTML के साथ प्रेजेंटेशन कैसे बनाएं reveal.js, HTML और Markdown का उपयोग करने वाला एक प्रेजेंटेशन निर्माण उपकरण है, जिसमें निम्नलिखित विशेषताएं हैं:\nगणितीय सूत्र, एनिमेशन और स्वाइप संचालन जैसी विभिन्न प्रेजेंटेशन विशेषताएं अनुकूलन योग्य थीम और लेआउट माउस, कीबोर्ड और टचपैड जैसे कई उपकरणों के लिए नेविगेशन समर्थन स्लाइड ऑटो-प्ले और एम्बेडेड वीडियो जैसी उन्नत विशेषताएं प्रदान करता है PDF प्रारूप में निर्यात किया जा सकता है इन सुविधाओं के साथ, उपयोगकर्ता आसानी से इंटरैक्टिव और आकर्षक प्रेजेंटेशन बना सकते हैं।\nreveal.js की स्थापना और उपयोग इसे उपयोग करने का सबसे आसान तरीका निम्नलिखित पृष्ठ से संपूर्ण ZIP डाउनलोड करना और उसे निकालना है।\nhttps://revealjs.com/installation खोलें और लिंक से master.zip डाउनलोड करें निकाले गए फ़ोल्डर में मौजूद index.html को ब्राउज़र में खोलें अपनी खुद की प्रेजेंटेशन सामग्री बनाने के लिए index.html को फिर से लिखें ※ चूंकि डेमो HTML कोड demo.html में लिखा गया है, आप इसे संदर्भ के रूप में उपयोग कर सकते हैं।\nकैसे उपयोग करें आपके द्वारा बनाए गए प्रेजेंटेशन को वेब पेजों के रूप में प्रकाशित किया जा सकता है या PDF के रूप में निर्यात किया जा सकता है। इसके अलावा, चूंकि प्रेजेंटेशन का स्रोत पाठ है, इसलिए इसे संस्करण नियंत्रण प्रणाली के साथ प्रबंधित करना आसान है।\nMarkdown प्रारूप में प्रेजेंटेशन सामग्री बनाना भी संभव लगता है।\nसंदर्भ आइए भविष्य में प्रेजेंटेशन सामग्री के लिए reveal.js का उपयोग करें Markdown सिंटैक्स नमूना सूची ","date":"2023-04-06T23:23:46+09:00","image":"http://kenji.blog/p/html%E3%81%A7%E3%83%97%E3%83%AC%E3%82%BC%E3%83%B3%E8%B3%87%E6%96%99%E3%82%92%E4%BD%9C%E3%82%8B%E6%96%B9%E6%B3%95reveal.js/img_hu4de64f3f6be8c50037c2a4c6c2d48287_30871_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/html%E3%81%A7%E3%83%97%E3%83%AC%E3%82%BC%E3%83%B3%E8%B3%87%E6%96%99%E3%82%92%E4%BD%9C%E3%82%8B%E6%96%B9%E6%B3%95reveal.js/","title":"HTML के साथ प्रेजेंटेशन कैसे बनाएं (reveal.js)"},{"content":"Stable diffusion क्या है Stable diffusion म्यूनिख विश्वविद्यालय, जर्मनी की एक शोध टीम द्वारा विकसित एक AI है, जो इनपुट टेक्स्ट जानकारी से इमेजेज जनरेट करता है। विभिन्न इमेजेज पर ट्रेनिंग देकर, यह वास्तविक तस्वीरों से लेकर इलस्ट्रेशन्स तक विभिन्न प्रकार की इमेजेज जनरेट कर सकता है।\nइस बार, मैं पेश करूंगा कि Stable diffusion के प्री-ट्रेंड डेटा का उपयोग करके इलस्ट्रेशन इमेजेज कैसे जनरेट करें।\nआपको क्या चाहिए Google अकाउंट केवल यही\nजनरेशन प्रक्रिया https://colab.research.google.com खोलें ऊपर बाईं ओर फ़ाइल से नई नोटबुक चुनें संपादित करें से नोटबुक सेटिंग चुनें हार्डवेयर एक्सेलेरेटर को GPU में बदलें नीचे दिए गए कोड को पेस्ट करें और चलाएं 1 !pip install diffusers==0.8.0 transformers नीचे दिए गए कोड को पेस्ट करें और चलाएं 1 from diffusers import StableDiffusionPipeline नीचे दिए गए कोड को पेस्ट करें और चलाएं 1 2 pipe = StableDiffusionPipeline.from_pretrained(\u0026#34;gsdf/Counterfeit-V2.5\u0026#34;) pipe.to(\u0026#34;cuda\u0026#34;) नीचे दिए गए कोड को पेस्ट करें और चलाएं 1 2 3 4 5 prompt = \u0026#34;((masterpiece,best quality)),1girl, solo, animal ears, rabbit, barefoot, knees up, dress, sitting, rabbit ears, short sleeves, looking at viewer, grass, short hair, smile, white hair, puffy sleeves, outdoors, puffy short sleeves, bangs, on ground, full body, animal, white dress, sunlight, brown eyes, dappled sunlight, day, depth of field\u0026#34; n_prompt = \u0026#34;EasyNegative, extra fingers,fewer fingers\u0026#34; image = pipe(prompt, negative_prompt = n_prompt).images[0] image यहाँ उपयोग किया गया Prompt, https://huggingface.co/gsdf/Counterfeit-V2.5 के Prompt पर आधारित है।\nजनरेट किए गए परिणाम (कुछ) संदर्भ https://huggingface.co/gsdf/Counterfeit-V2.5 मैंने 15 मिनट में आर्टिफिशियल इंटेलिजेंस (AI) का उपयोग करके एक इमेज जनरेशन प्रोग्राम बनाया 【लाइव प्रोग्रामिंग】 ","date":"2023-04-06T00:43:19+09:00","image":"http://kenji.blog/p/aistablediffusion%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%82%A4%E3%83%A9%E3%82%B9%E3%83%88%E7%94%BB%E5%83%8F%E7%94%9F%E6%88%90%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/img_hu25483e02f36587a64f3cf042db15c245_550570_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/aistablediffusion%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%82%A4%E3%83%A9%E3%82%B9%E3%83%88%E7%94%BB%E5%83%8F%E7%94%9F%E6%88%90%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/","title":"AI (Stable Diffusion) का उपयोग करके इलस्ट्रेशन इमेजेज कैसे जनरेट करें"},{"content":"एग्जीक्यूटेबल फाइल (exe) क्या है? विंडोज़ पर चलने वाली एक फाइल। यह मूल रूप से PE (पोर्टेबल एग्जीक्यूटेबल) प्रारूप नामक प्रारूप में लिखी जाती है। इसमें निष्पादन के लिए मशीन भाषा का कोड, और आइकन और चित्र जैसे संसाधन शामिल होते हैं।\nएग्जीक्यूटेबल फाइलों का विश्लेषण करने के लिए कई टूल्स उपलब्ध हैं, इसलिए इस बार हम उनका परिचय देंगे।\n7-Zip EXE फाइलें अक्सर संकुचित (कंप्रेस्ड) करके बनाई जाती हैं क्योंकि उनका आकार बड़ा हो सकता है। इस मामले में, आप फाइल संपीड़न/निष्कर्षण सॉफ़्टवेयर 7-Zip का उपयोग करके एग्जीक्यूटेबल फाइल को निकाल सकते हैं और सामग्री की जांच कर सकते हैं। इसी तरह निष्कर्षण करने वाला एक और टूल WinRAR भी है।\nResource Hacker आप EXE फाइल के भीतर के संसाधनों (आइकन, बिटमैप, डायलॉग बॉक्स, स्ट्रिंग्स आदि) को निकाल सकते हैं। यह एक बाइनरी एडिटर के रूप में भी कार्य करता है, इसलिए आप EXE फाइल की सामग्री को संपादित और फिर से लिख सकते हैं।\nPE Explorer आप विंडोज़ के लिए PE फाइलों (EXE, DLL, OCX, SYS, ड्राइवर्स) का विश्लेषण कर सकते हैं। PE Explorer फ़ाइल संरचना, फ़ाइल हेडर, डायरेक्टरी एंट्रीज़, और एक्सपोर्ट किए गए फ़ंक्शंस और सिंबल्स को प्रदर्शित करने जैसी विभिन्न विश्लेषण सुविधाएँ प्रदान करता है।\nDependency Walker आप उन DLL फाइलों की जांच कर सकते हैं जिन पर EXE फाइल निर्भर करती है, और देख सकते हैं कि वे सही ढंग से लोड हो रही हैं या नहीं। इसके अलावा, आप DLL फाइलों के फ़ंक्शन कॉल को भी ट्रैक कर सकते हैं।\nGhidra यह एक शक्तिशाली रिवर्स इंजीनियरिंग टूल है जिसे NSA (अमेरिकी राष्ट्रीय सुरक्षा एजेंसी) द्वारा विकसित किया गया है और इसे ओपन सोर्स के रूप में मुफ्त में जारी किया गया है। यह न केवल EXE फाइलों को डिसअसेंबल (असेंबली भाषा में बदलना) कर सकता है, बल्कि इसमें सी भाषा (C language) के करीब डीकंपाइल करने की सुविधा भी है, जिससे यह बहुत लोकप्रिय है।\nIDA Free / IDA Pro यह एक अत्यधिक कार्यात्मक डिसअसेंबलर और डीकंपाइलर है जो मैलवेयर विश्लेषण और रिवर्स इंजीनियरिंग में वैश्विक उद्योग मानक बन गया है। Pro संस्करण बहुत महंगा है, लेकिन यदि यह व्यक्तिगत या गैर-व्यावसायिक उद्देश्यों के लिए है, तो आप सीमित सुविधाओं वाले \u0026ldquo;IDA Free\u0026rdquo; का मुफ्त में उपयोग कर सकते हैं।\nx64dbg (x32dbg) यह विंडोज़ के लिए एक ओपन सोर्स डीबगर है। यह \u0026ldquo;डायनामिक एनालिसिस\u0026rdquo; में माहिर है, जो एग्जीक्यूटेबल फाइल को चलाते समय कदम दर कदम इसकी सामग्री और मेमोरी की स्थिति का विश्लेषण करता है, और अक्सर क्रैक्मी (विश्लेषण के लिए चुनौती कार्यक्रम) को डिक्रिप्ट करने और मैलवेयर के व्यवहार की जांच करने के लिए उपयोग किया जाता है।\nILSpy / dotPeek यदि लक्षित EXE फाइल C# जैसी .NET आधारित भाषाओं में बनाई गई है, तो आप इन टूल्स का उपयोग करके इसे मूल स्रोत कोड जैसी स्थिति में डीकंपाइल कर सकते हैं और इसकी पूरी सामग्री को उजागर कर सकते हैं।\nये टूल्स EXE फाइल की सामग्री की जांच करने के लिए उपयोगी हैं, लेकिन सावधानी बरतने की आवश्यकता है। फ़ाइलों को संपादित करना या अनधिकृत उद्देश्यों के लिए उनका उपयोग करना कॉपीराइट कानूनों और सुरक्षा समस्याओं का कारण बन सकता है, इसलिए कृपया उनका पूरी समझ के साथ उपयोग करें।\n","date":"2023-04-05T23:31:06+09:00","image":"http://kenji.blog/p/%E5%AE%9F%E8%A1%8C%E3%83%95%E3%82%A1%E3%82%A4%E3%83%ABexe%E3%81%AE%E4%B8%AD%E8%BA%AB%E3%82%92%E8%A7%A3%E6%9E%90%E3%81%99%E3%82%8B%E3%83%84%E3%83%BC%E3%83%AB/img_1_hu9e069acaa7fdaa872d319a8c6d6e1444_1819799_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/%E0%A4%8F%E0%A4%97%E0%A5%8D%E0%A4%9C%E0%A5%80%E0%A4%95%E0%A5%8D%E0%A4%AF%E0%A5%82%E0%A4%9F%E0%A5%87%E0%A4%AC%E0%A4%B2-%E0%A4%AB%E0%A4%BE%E0%A4%87%E0%A4%B2-exe-%E0%A4%95%E0%A5%80-%E0%A4%B8%E0%A4%BE%E0%A4%AE%E0%A4%97%E0%A5%8D%E0%A4%B0%E0%A5%80-%E0%A4%95%E0%A4%BE-%E0%A4%B5%E0%A4%BF%E0%A4%B6%E0%A5%8D%E0%A4%B2%E0%A5%87%E0%A4%B7%E0%A4%A3-%E0%A4%95%E0%A4%B0%E0%A4%A8%E0%A5%87-%E0%A4%B5%E0%A4%BE%E0%A4%B2%E0%A5%87-%E0%A4%9F%E0%A5%82%E0%A4%B2%E0%A5%8D%E0%A4%B8/","title":"एग्जीक्यूटेबल फाइल (exe) की सामग्री का विश्लेषण करने वाले टूल्स"},{"content":"परिचय यहाँ मैं बताऊंगा कि Mac पर Windows की तरह (Alt+Tab) एप्लिकेशन कैसे स्विच करें।\nचूँकि डिफ़ॉल्ट सेटिंग्स को बदलकर इसे प्राप्त करना मुश्किल है, इस विधि में एक एप्लिकेशन इंस्टॉल करना शामिल है।\nडेमो छवि सेटअप विधि (macOS Ventura) https://alt-tab-macos.netlify.app खोलें Download the latest release पर क्लिक करें डाउनलोड किया गया एप्लिकेशन खोलें इसे इंस्टॉल करने के लिए निर्देशों का पालन करें अब, आप Windows की तरह ही Alt+Tab का उपयोग करके एप्लिकेशन स्विच कर पाएंगे।\nबस इतना ही\n","date":"2023-04-05T02:20:12+09:00","image":"http://kenji.blog/p/mac%E3%81%A7windows%E3%83%A9%E3%82%A4%E3%82%AFalt-tab%E3%81%AB%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E5%88%87%E3%82%8A%E6%9B%BF%E3%81%88%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/img_hu9e86c898d72728906fc707b47dff25e0_55585_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/mac%E3%81%A7windows%E3%83%A9%E3%82%A4%E3%82%AFalt-tab%E3%81%AB%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E5%88%87%E3%82%8A%E6%9B%BF%E3%81%88%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/","title":"Mac पर Windows की तरह (Alt+Tab) एप्लिकेशन कैसे स्विच करें"},{"content":"परिचय जब आप विंडोज़ और मैक के बीच स्विच करते हैं, तो अक्सर उपयोग किए जाने वाले कीबोर्ड शॉर्टकट जैसे कॉपी, पेस्ट और अनडू अलग-अलग होते हैं, इसलिए मैं उन्हें समान करने का तरीका बताऊंगा।\nसेटअप विधि (macOS Ventura) सिस्टम सेटिंग्स खोलें कीबोर्ड चुनें कीबोर्ड शॉर्टकट चुनें मॉडिफायर कीज़ चुनें Control(^) की को \u0026ldquo;⌘ Command\u0026rdquo; पर सेट करें Command(⌘) की को \u0026ldquo;^ Control\u0026rdquo; पर सेट करें डन पर क्लिक करें समाप्त\n","date":"2023-04-05T00:49:02+09:00","image":"http://kenji.blog/p/mac%E3%81%A7%E3%82%B3%E3%83%94%E3%83%BC%E3%83%9A%E3%83%BC%E3%82%B9%E3%83%88%E3%81%AE%E3%82%B7%E3%83%A7%E3%83%BC%E3%83%88%E3%82%AB%E3%83%83%E3%83%88%E3%82%AD%E3%83%BC%E3%82%92windows%E3%81%A8%E5%90%88%E3%82%8F%E3%81%9B%E3%82%8B%E6%96%B9%E6%B3%95/img_hu81c2d0d61c05f6ce24b15f479442c3bc_211588_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/mac%E3%81%A7%E3%82%B3%E3%83%94%E3%83%BC%E3%83%9A%E3%83%BC%E3%82%B9%E3%83%88%E3%81%AE%E3%82%B7%E3%83%A7%E3%83%BC%E3%83%88%E3%82%AB%E3%83%83%E3%83%88%E3%82%AD%E3%83%BC%E3%82%92windows%E3%81%A8%E5%90%88%E3%82%8F%E3%81%9B%E3%82%8B%E6%96%B9%E6%B3%95/","title":"मैक में कॉपी और पेस्ट शॉर्टकट कीज़ को विंडोज़ के समान कैसे करें"},{"content":"परिचय मैं US कीबोर्ड का उपयोग करता हूं, और Windows पर मैं Alt + ` के साथ जापानी इनपुट स्विच करता हूं। मैं Mac पर भी उसी कुंजी के साथ स्विच करना चाहता था, और शोध करने पर मुझे पता चला कि इसे सेटिंग्स में बदला जा सकता है।\nसेटिंग विधि (macOS Ventura) सिस्टम सेटिंग्स खोलें कीबोर्ड चुनें कीबोर्ड शॉर्टकट चुनें इनपुट स्रोत चुनें इनपुट मेनू में अगले स्रोत का चयन करें के दाईं ओर शॉर्टकट डिस्प्ले पर डबल-क्लिक करें Alt + ` टाइप करें संपन्न पर क्लिक करें अब, आप अंग्रेजी ⇔ जापानी को Alt + ` के साथ स्विच कर सकते हैं। हालाँकि, डिफ़ॉल्ट रूप से, कटकाना स्विचिंग में शामिल हो जाता है, इसलिए मैंने नीचे दिए गए चरणों का पालन करके इनपुट स्रोत से कटकाना को हटा दिया।\nसिस्टम सेटिंग्स खोलें कीबोर्ड चुनें इनपुट स्रोतों में जापानी - रोमाजी इनपुट के दाईं ओर स्थित संपादित करें पर क्लिक करें जापानी - रोमाजी इनपुट पर क्लिक करें इनपुट मोड में कटकाना को अनचेक करें संपन्न पर क्लिक करें बस इतना ही\n","date":"2023-04-04T23:02:12+09:00","image":"http://kenji.blog/p/mac%E3%81%A7%E6%97%A5%E6%9C%AC%E8%AA%9E%E8%8B%B1%E8%AA%9E%E5%85%A5%E5%8A%9B%E5%88%87%E3%82%8A%E6%9B%BF%E3%81%88%E3%81%AE%E3%82%B7%E3%83%A7%E3%83%BC%E3%83%88%E3%82%AB%E3%83%83%E3%83%88%E3%82%AD%E3%83%BC%E3%82%92%E5%A4%89%E6%9B%B4%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/img_hu79c9b62a36c4ad9394525ea6ed769587_198703_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/mac%E3%81%A7%E6%97%A5%E6%9C%AC%E8%AA%9E%E8%8B%B1%E8%AA%9E%E5%85%A5%E5%8A%9B%E5%88%87%E3%82%8A%E6%9B%BF%E3%81%88%E3%81%AE%E3%82%B7%E3%83%A7%E3%83%BC%E3%83%88%E3%82%AB%E3%83%83%E3%83%88%E3%82%AD%E3%83%BC%E3%82%92%E5%A4%89%E6%9B%B4%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/","title":"Mac पर जापानी ⇔ अंग्रेजी इनपुट स्विचिंग के लिए कीबोर्ड शॉर्टकट कैसे बदलें"},{"content":"Windows में PATH में मौजूद एक्ज़ीक्यूटेबल फ़ाइल का स्थान कैसे खोजें जब आप किसी एक्ज़ीक्यूटेबल फ़ाइल को निर्दिष्ट करके कमांड चलाते हैं, तो कभी-कभी आप जानना चाहते हैं कि वह एक्ज़ीक्यूटेबल फ़ाइल कहाँ स्थित है। ऐसे मामलों में, आप निम्न कमांड से एक्ज़ीक्यूटेबल फ़ाइल का स्थान जान सकते हैं।\n1 where \u0026lt;एक्ज़ीक्यूटेबल_फ़ाइल_का_नाम\u0026gt; उदाहरण के लिए, यदि आप पेंट (mspaint.exe) का स्थान जानना चाहते हैं, तो आप निम्न कार्य कर सकते हैं:\n1 where mspaint.exe संदर्भ How do I find the location of an executable in Windows? ","date":"2023-04-03T00:02:55+09:00","image":"http://kenji.blog/p/windows-%E3%81%A7%E3%83%91%E3%82%B9%E3%81%AE%E9%80%9A%E3%81%A3%E3%81%9F%E5%AE%9F%E8%A1%8C%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E5%A0%B4%E6%89%80%E3%82%92%E8%A6%8B%E3%81%A4%E3%81%91%E3%82%8B%E6%96%B9%E6%B3%95/img_hub74cf0d67f87eb185fadea6cd8747be8_5455_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/windows-%E3%81%A7%E3%83%91%E3%82%B9%E3%81%AE%E9%80%9A%E3%81%A3%E3%81%9F%E5%AE%9F%E8%A1%8C%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E5%A0%B4%E6%89%80%E3%82%92%E8%A6%8B%E3%81%A4%E3%81%91%E3%82%8B%E6%96%B9%E6%B3%95/","title":"Windows में PATH में मौजूद एक्ज़ीक्यूटेबल फ़ाइल का स्थान कैसे खोजें"},{"content":"mac mini (2018) खरीदा मैंने Mercari पर एक पुराना mac mini (2018) खरीदा है। स्पेसिफिकेशन नीचे दिए गए हैं।\nCPU: 3.2GHz 6-कोर Intel Core i7 मेमोरी: 32GB स्टोरेज: 1TB SSD कीमत ￥ 77,000 थी\nखरीदने का कारण मैं स्मार्टफोन ऐप्स विकसित करने के लिए काम पर लगभग समान स्पेसिफिकेशन वाले mac mini का उपयोग करता हूं, लेकिन मैं घर पर भी एक विकास का माहौल (विशेष रूप से xcode चलाने के लिए) स्थापित करना चाहता था। मेरे पास एक macbook pro है, लेकिन मैंने इसे 9 साल पहले खरीदा था और यह काफी धीमा है इसलिए मैं इसका मुश्किल से उपयोग करता हूं। मैं व्यक्तिगत रूप से iOS ऐप विकसित करना चाहता था। तुरंत xcode और inteliJ IDEA स्थापित करना xcode का संस्करण Version 14.3 (14E222b) है inteliJ IDEA का संस्करण 2023.1 है चलिए! विकास शुरू करते हैं!\n","date":"2023-04-02T18:05:30+09:00","image":"http://kenji.blog/p/mac-mini2018%E3%82%92%E8%B3%BC%E5%85%A5/img_huc5df0470d74ce7a0046f11abaa7c5815_30469_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/mac-mini2018%E3%82%92%E8%B3%BC%E5%85%A5/","title":"mac mini (2018) खरीदा"},{"content":"\u0026ldquo;Unsplash\u0026rdquo; के बारे में https://unsplash.com/ja/\nफोटो सामग्री साइट \u0026ldquo;Unsplash\u0026rdquo; को संक्षेप में इस प्रकार समझा जा सकता है:\nसभी छवियों का उपयोग मुफ्त में किया जा सकता है व्यावसायिक उपयोग ठीक है छवि प्रसंस्करण ठीक है अनुमति की आवश्यकता नहीं है क्रेडिट की कोई आवश्यकता नहीं है ब्लॉग लेख लिखने के लिए यह बहुत ही उपयोग में आसान है, इसलिए कृपया इसे आजमाएं।\n※ लाइसेंस के लिए, कृपया नीचे दिए गए \u0026ldquo;फ़ुटनोट\u0026rdquo; देखें। 1\nहम इस साइट का भी उपयोग करेंगे।\nUnsplash लाइसेंस\u0026#160;\u0026#x21a9;\u0026#xfe0e;\n","date":"2023-04-02T14:44:17+09:00","image":"http://kenji.blog/p/%E3%83%96%E3%83%AD%E3%82%B0%E3%81%A7%E4%BD%BF%E3%81%88%E3%82%8B%E5%86%99%E7%9C%9F%E7%B4%A0%E6%9D%90%E3%82%B5%E3%82%A4%E3%83%88unsplash%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6/img_1_hu43cbd10eab78d2e7468dbb36abe8d794_828454_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/%E0%A4%AC%E0%A5%8D%E0%A4%B2%E0%A5%89%E0%A4%97-%E0%A4%95%E0%A5%87-%E0%A4%B2%E0%A4%BF%E0%A4%8F-%E0%A4%87%E0%A4%B8%E0%A5%8D%E0%A4%A4%E0%A5%87%E0%A4%AE%E0%A4%BE%E0%A4%B2-%E0%A4%B9%E0%A5%8B%E0%A4%A8%E0%A5%87-%E0%A4%B5%E0%A4%BE%E0%A4%B2%E0%A5%80-%E0%A4%AB%E0%A5%8B%E0%A4%9F%E0%A5%8B-%E0%A4%B8%E0%A4%BE%E0%A4%87%E0%A4%9F-unsplash-%E0%A4%95%E0%A5%87-%E0%A4%AC%E0%A4%BE%E0%A4%B0%E0%A5%87-%E0%A4%AE%E0%A5%87%E0%A4%82/","title":"ब्लॉग के लिए इस्तेमाल होने वाली फोटो साइट \"Unsplash\" के बारे में"},{"content":"egui का नमूना प्राप्त करें आप निम्न कमांड के साथ egui नमूना चला सकते हैं।\n1 2 3 git clone https://github.com/emilk/eframe_template/ egui_test cd egui_test cargo run जापानी-समर्थित फ़ॉन्ट लोड करें जापानी प्रदर्शित करने के लिए, आपको एक ऐसा फ़ॉन्ट लोड करना होगा जो जापानी भाषा का समर्थन करता हो।\nsrc/app.rs में, pub fn new विधि के अंदर निम्नलिखित पंक्तियाँ जोड़ें।\n1 2 3 4 5 6 7 8 9 10 11 12 // जापानी-समर्थित फ़ॉन्ट लोड करें let mut fonts = egui::FontDefinitions::default(); fonts.font_data.insert( \u0026#34;Meiryo\u0026#34;.to_owned(), egui::FontData::from_static(include_bytes!(\u0026#34;C:/Windows/Fonts/Meiryo.ttc\u0026#34;)), ); fonts .families .entry(egui::FontFamily::Proportional) .or_default() .insert(0, \u0026#34;Meiryo\u0026#34;.to_owned()); cc.egui_ctx.set_fonts(fonts); अब आप जापानी प्रदर्शित कर सकते हैं। ","date":"2023-04-01T03:17:52+09:00","image":"http://kenji.blog/p/egui%E3%81%A7%E6%97%A5%E6%9C%AC%E8%AA%9E%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/img_hu6798dc327f7454fc6cd8b8de1315ab03_5786_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/egui-me-japanese-kaise-pradarshit-kare/","title":"egui में जापानी कैसे प्रदर्शित करें"},{"content":"KaTeX क्या है KaTeX HTML में LaTeX-शैली के गणित सूत्रों को प्रदर्शित करने के लिए एक जावास्क्रिप्ट (javascript) लाइब्रेरी है।\nविशेष रूप से, आप नीचे दिए गए जैसे गणित सूत्र प्रदर्शित कर सकते हैं।\n$$f(x) = x^2 + x + 41$$ LaTeX-शैली के अन्य गणित सूत्र प्रदर्शन पुस्तकालय भी प्रतीत होते हैं, लेकिन KaTeX अपनी सादगी और गति के लिए जाना जाता है।\nhugo में कैसे शामिल करें hugo के फ़ोल्डर पदानुक्रम में एक नया layouts/partials/math.html बनाएँ। सामग्री इस प्रकार होनी चाहिए।\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 \u0026lt;link rel=\u0026#34;stylesheet\u0026#34; href=\u0026#34;https://cdn.jsdelivr.net/npm/katex@0.16.4/dist/katex.min.css\u0026#34; integrity=\u0026#34;sha384-vKruj+a13U8yHIkAyGgK1J3ArTLzrFGBbBc0tDp4ad/EyewESeXE/Iv67Aj8gKZ0\u0026#34; crossorigin=\u0026#34;anonymous\u0026#34;\u0026gt; \u0026lt;script defer src=\u0026#34;https://cdn.jsdelivr.net/npm/katex@0.16.4/dist/katex.min.js\u0026#34; integrity=\u0026#34;sha384-PwRUT/YqbnEjkZO0zZxNqcxACrXe+j766U2amXcgMg5457rve2Y7I6ZJSm2A0mS4\u0026#34; crossorigin=\u0026#34;anonymous\u0026#34;\u0026gt;\u0026lt;/script\u0026gt; \u0026lt;script defer src=\u0026#34;https://cdn.jsdelivr.net/npm/katex@0.16.4/dist/contrib/auto-render.min.js\u0026#34; integrity=\u0026#34;sha384-+VBxd3r6XgURycqtZ117nYw44OOcIax56Z4dCRWbxyPt0Koah1uHoK0o4+/RRE05\u0026#34; crossorigin=\u0026#34;anonymous\u0026#34;\u0026gt;\u0026lt;/script\u0026gt; \u0026lt;script\u0026gt; document.addEventListener(\u0026#34;DOMContentLoaded\u0026#34;, function() { renderMathInElement( document.body, { delimiters: [ {left: \u0026#34;$$\u0026#34;, right: \u0026#34;$$\u0026#34;, display: true}, {left: \u0026#34;\\\\[\u0026#34;, right: \u0026#34;\\\\]\u0026#34;, display: true}, {left: \u0026#34;$\u0026#34;, right: \u0026#34;$\u0026#34;, display: false}, {left: \u0026#34;\\\\(\u0026#34;, right: \u0026#34;\\\\)\u0026#34;, display: false} ] }); }); \u0026lt;/script\u0026gt; इसके बाद, मौजूदा फ़ाइल layouts/partials/extend_head.html में निम्नलिखित कोड जोड़ें। 1 2 3 {{ if or .Params.math .Site.Params.math }} {{ partial \u0026#34;math.html\u0026#34; . }} {{ end }} अब आप KaTeX का उपयोग करने के लिए तैयार हैं। आप पेज के front matter में math: true जोड़कर KaTeX को सक्षम कर सकते हैं।\nइसके बाद आपको बस पेज लेख के मुख्य भाग में LaTeX-शैली में सूत्र लिखना है। 1 $$ e^{i \\pi} = -1 $$ जैसा कि ऊपर लिखा गया है, यह नीचे दिए गए अनुसार प्रदर्शित होगा।\n$$ e^{i \\pi} = -1 $$ संदर्भ Math Typesetting | PaperModX KaTex Auto-render Extension KaTeX का परिचय | The Strange Storage ","date":"2023-03-31T23:11:26+09:00","image":"http://kenji.blog/p/hugo%E3%81%A7katexlatex%E9%A2%A8%E6%95%B0%E5%BC%8F%E8%A1%A8%E7%A4%BA%E3%82%92%E6%9C%89%E5%8A%B9%E3%81%AB%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/img_hu4b1d83d24aac47c2cd375cc93b995e98_26739_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/how-to-enable-katex-in-hugo/","title":"ह्यूगो (hugo) में KaTeX (LaTeX-शैली गणित सूत्र प्रदर्शन) को कैसे सक्षम करें"},{"content":"लोक व्यवहार (लोगों को प्रभावित कैसे करें) https://amzn.to/3YTv0Dr\nनापसंद किए जाने का साहस https://amzn.to/3n3SVCQ\nLIFE SHIFT 100 साल के जीवन की रणनीति https://amzn.to/3TtKUDf\nअति प्रभावकारी लोगों की 7 आदतें https://amzn.to/3TqfjSO\n","date":"2023-03-19T18:13:14+09:00","image":"http://kenji.blog/p/%E3%81%8A%E3%81%99%E3%81%99%E3%82%81%E3%81%AE%E3%83%93%E3%82%B8%E3%83%8D%E3%82%B9%E6%9B%B8/img_huc9a897f0643b20664d8e252d3dd67b22_2836610_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/anushansit-vyavsayik-pustakein/","title":"अनुशंसित व्यावसायिक पुस्तकें"},{"content":"अनुशंसित क्रोम एक्सटेंशन मैं वर्तमान में जिन क्रोम एक्सटेंशन का उपयोग कर रहा हूँ, उन्हें प्रस्तुत कर रहा हूँ। हालाँकि ये क्रोम के लिए हैं, लेकिन इन्हें Microsoft Edge पर भी इस्तेमाल किया जा सकता है।\n1. simpleGestures यह एक एक्सटेंशन है जो आपको माउस जेस्चर का उपयोग करने की सुविधा देता है। आप कीबोर्ड का उपयोग किए बिना या टूलबार के बटन पर जाए बिना ब्राउज़र को संचालित कर सकते हैं।\nउदाहरण के लिए, दायां माउस बटन दबाते हुए माउस को बाईं ओर खिसकाने पर आप वापस जा सकते हैं, और दायां माउस बटन दबाते हुए माउस को दाईं ओर खिसकाने पर आगे बढ़ सकते हैं।\nचूंकि यह ओपन सोर्स है, इसलिए यह अत्यधिक विश्वसनीय भी है।\nsimpleGestures github 2. uBlock Origin विज्ञापन ब्लॉक करने वाला एक एक्सटेंशन। ओपन-सोर्स होने के कारण, यह अत्यधिक विश्वसनीय है। इसके अतिरिक्त, यह कम CPU और मेमोरी का उपयोग करता है और सुचारू रूप से काम करता है।\nuBlock Origin github 3. DeepL अनुवादक एक क्रोम एक्सटेंशन जो आपको विश्व-प्रसिद्ध अनुवाद सेवा DeepL का उपयोग करके पृष्ठों का अनुवाद करने की सुविधा देता है। जब आप ब्राउज़र में उस टेक्स्ट का चयन करते हैं जिसका आप अनुवाद करना चाहते हैं, तो DeepL का आइकन दिखाई देता है, और इस पर क्लिक करने से यह अपने आप अनुवादित हो जाता है।\nDeepL Translator 4. ChatGPT Sidebar यह एक्सटेंशन आपको साइडबार में ChatGPT का उपयोग करने देता है। आप Ctrl+P के साथ साइडबार खोल सकते हैं और तुरंत AI से प्रश्न पूछ सकते हैं। यदि पृष्ठ पर कोई टेक्स्ट चुना गया है, तो इसे सीधे प्रश्न में कॉपी कर लिया जाता है, इसलिए आप Ctrl+Enter दबाकर तुरंत पूछ सकते हैं।\nChatGPT Sidebar 5. Salesforce DevTools एक एक्सटेंशन जो Salesforce विकास के लिए उपयोगी सुविधाएँ जोड़ता है। मुझे लगता है कि यह उन लोगों के लिए अनावश्यक है जो Salesforce का उपयोग नहीं करते हैं।\nSalesforce DevTools ","date":"2023-03-19T02:54:30+09:00","image":"http://kenji.blog/p/%E3%81%8A%E3%81%99%E3%81%99%E3%82%81%E3%81%AE-chorme-%E6%8B%A1%E5%BC%B5/img_4_hue5f33cff57d8628a1113ed27818b8d04_20776_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/%E3%81%8A%E3%81%99%E3%81%99%E3%82%81%E3%81%AE-chorme-%E6%8B%A1%E5%BC%B5/","title":"अनुशंसित क्रोम एक्सटेंशन"},{"content":"egui क्या है यह एक GUI लाइब्रेरी है जिसका उपयोग Rust में किया जा सकता है।\negui का उपयोग करके देखें आप निम्नलिखित कमांड से egui के उदाहरण को चला सकते हैं।\n1 2 3 git clone https://github.com/emilk/eframe_template/ egui_test cd egui_test cargo run उसके बाद, आप उदाहरण कोड के साथ खेलते हुए विभिन्न चीजों का परीक्षण कर सकते हैं।\nसंदर्भ आधिकारिक GitHub\n","date":"2023-03-18T10:27:02+09:00","image":"http://kenji.blog/p/egui%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%BF%E3%82%8B/demo_hu16f50e8d6a05810ce904e73f9e33bab1_152754_120x120_fill_box_smart1_1.gif","permalink":"http://kenji.blog/hi/p/egui%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%BF%E3%82%8B/","title":"egui का उपयोग करके देखें"},{"content":"rustc को अपडेट करने का तरीका बस कमांड में निम्नलिखित एक पंक्ति चलाएं।\n1 rustup update आउटपुट संदर्भ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 rustup update info: syncing channel updates for \u0026#39;stable-x86_64-pc-windows-msvc\u0026#39; warning: Signature verification failed for \u0026#39;https://static.rust-lang.org/dist/channel-rust-stable.toml\u0026#39; info: latest update on 2023-03-09, rust version 1.68.0 (2c8cc3432 2023-03-06) info: downloading component \u0026#39;rust-src\u0026#39; info: downloading component \u0026#39;cargo\u0026#39; info: downloading component \u0026#39;clippy\u0026#39; info: downloading component \u0026#39;rust-docs\u0026#39; info: downloading component \u0026#39;rust-std\u0026#39; info: downloading component \u0026#39;rustc\u0026#39; 63.9 MiB / 63.9 MiB (100 %) 37.5 MiB/s in 1s ETA: 0s info: downloading component \u0026#39;rustfmt\u0026#39; info: removing previous version of component \u0026#39;rust-src\u0026#39; info: removing previous version of component \u0026#39;cargo\u0026#39; info: removing previous version of component \u0026#39;clippy\u0026#39; info: removing previous version of component \u0026#39;rust-docs\u0026#39; info: removing previous version of component \u0026#39;rust-std\u0026#39; info: removing previous version of component \u0026#39;rustc\u0026#39; info: removing previous version of component \u0026#39;rustfmt\u0026#39; info: installing component \u0026#39;rust-src\u0026#39; info: installing component \u0026#39;cargo\u0026#39; info: installing component \u0026#39;clippy\u0026#39; info: installing component \u0026#39;rust-docs\u0026#39; 19.4 MiB / 19.4 MiB (100 %) 2.4 MiB/s in 6s ETA: 0s info: installing component \u0026#39;rust-std\u0026#39; 27.6 MiB / 27.6 MiB (100 %) 12.7 MiB/s in 2s ETA: 0s info: installing component \u0026#39;rustc\u0026#39; 63.9 MiB / 63.9 MiB (100 %) 13.8 MiB/s in 4s ETA: 0s info: installing component \u0026#39;rustfmt\u0026#39; info: checking for self-updates info: downloading self-update stable-x86_64-pc-windows-msvc updated - rustc 1.68.0 (2c8cc3432 2023-03-06) (from rustc 1.64.0 (a55dd71d5 2022-09-19)) info: cleaning up downloads \u0026amp; tmp directories ","date":"2023-03-18T10:27:02+09:00","image":"http://kenji.blog/p/rustc%E3%82%92%E3%82%A2%E3%83%83%E3%83%97%E3%83%87%E3%83%BC%E3%83%88%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/img_hu2f4438039b9bb5f2180f9e10d772e3b3_30692_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/rustc%E3%82%92%E3%82%A2%E3%83%83%E3%83%97%E3%83%87%E3%83%BC%E3%83%88%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/","title":"rustc को अपडेट करने का तरीका"},{"content":"YAMAHA AG03 शोर खत्म करने का तरीका AG03 मॉनिटर के जरिए पीसी की आवाज़ सुनते समय, मुझे नियमित रूप से (लगभग हर 1 से 3 मिनट में) कुछ कर्कश शोर सुनाई देता था। खोज करने पर, मुझे AG03 में शोर को हल करने के लिए निम्नलिखित तरीका मिला।\nhttps://jp.yamaha.com/support/updates/yamaha_steinberg_usb_driver_for_win.html\nउपरोक्त साइट से Yamaha Steinberg USB Driver डाउनलोड और इंस्टॉल करने के बाद, शोर खत्म हो गया।\n今すぐ購入 संदर्भ https://web.archive.org/web/20201003230738/http://yamaha.custhelp.com/app/answers/detail/a_id/7202\n","date":"2023-03-18T01:17:10+09:00","image":"http://kenji.blog/p/ag03%E3%83%8E%E3%82%A4%E3%82%BA%E8%A7%A3%E6%B6%88%E6%96%B9%E6%B3%95/img_hu7b60ee71c94898202eca721f7c6778b5_180745_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/ag03%E3%83%8E%E3%82%A4%E3%82%BA%E8%A7%A3%E6%B6%88%E6%96%B9%E6%B3%95/","title":"AG03 शोर खत्म करने का तरीका"},{"content":"एक सक्रिय इंजीनियर द्वारा अनुशंसित और वांछित पीसी पेरिफेरल्स कीबोर्ड निस्संदेह, बिना संपर्क वाले कैपेसिटिव कीबोर्ड की अत्यधिक अनुशंसा की जाती है क्योंकि वे आसानी से टूटते नहीं हैं। मेरे पास 10 साल से अधिक समय से RealForce है और यह अभी भी काम कर रहा है। मैं जो प्रकार उपयोग कर रहा हूं वह अंग्रेजी लेआउट वाला साइलेंट मॉडल है।\nहालाँकि, हाल ही में मुझे Logitech MX Keys नामक कीबोर्ड में भी दिलचस्पी हुई है।\nट्रैकबॉल पॉइंटिंग डिवाइस के लिए, चूहों (mouse) के बजाय ट्रैकबॉल की सिफारिश की जाती है क्योंकि वे थकान कम करते हैं।\nमैं Logitech MX Ergo का उपयोग कर रहा हूं। यह 10,000 येन से अधिक का महंगा उपकरण है, लेकिन मुझे लगता है कि यह कीमत से अधिक मूल्यवान है।\nमैं बड़े बॉल प्रकार वाले DEFT PRO(M-DPT1MRXBK) में भी रुचि रखता हूं, जिसे तर्जनी और मध्यमा अंगुली से संचालित किया जाता है। डिस्प्ले कुछ भी चलेगा, लेकिन उच्च रिज़ॉल्यूशन वाले 4K डिस्प्ले की अनुशंसा की जाती है।\nवर्तमान में मैं DELL 4K डिस्प्ले का उपयोग कर रहा हूं।\nअब, मैं EIZO डिस्प्ले या DELL डिस्प्ले जैसा एक वाइड डिस्प्ले चाहता हूँ।\n","date":"2023-02-28T00:51:49+09:00","image":"http://kenji.blog/p/%E3%81%8A%E3%81%99%E3%81%99%E3%82%81%E3%81%AEpc%E5%91%A8%E8%BE%BA%E6%A9%9F%E5%99%A8/img_hu9c34821fcae33240cf8bba1055606dc6_434960_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/%E3%81%8A%E3%81%99%E3%81%99%E3%82%81%E3%81%AEpc%E5%91%A8%E8%BE%BA%E6%A9%9F%E5%99%A8/","title":"अनुशंसित पीसी पेरिफेरल्स"},{"content":"सशुल्क वेब फ़ॉन्ट का उपयोग करने के लिए सेवा fontplus.jp https://fontplus.jp/\n1,100 येन प्रति माह पर, सभी फ़ॉन्ट का उपयोग किया जा सकता है और यह कई वेबसाइटों पर उपयोग का समर्थन करता है।\n","date":"2023-02-07T20:59:01+09:00","image":"http://kenji.blog/p/fontplus.jp/img_hu81cfc4bed02bb5cdb36d3ac7fae3e538_91722_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/fontplus.jp/","title":"fontplus.jp के बारे में"},{"content":"डिफ़ॉल्ट रूप से, HUGO लेखों में HTML टैग के उपयोग की अनुमति नहीं देता है, लेकिन आप config.toml में निम्नलिखित विवरण जोड़कर इसे सक्षम कर सकते हैं।\n1 2 [markup.goldmark.renderer] unsafe = true संदर्भ: Configure Markup\n","date":"2023-01-17T19:20:32+09:00","image":"http://kenji.blog/p/hugo%E3%81%A7html%E3%82%BF%E3%82%B0%E3%82%92%E4%BD%BF%E3%81%86/img_hu415dc7e70376ac350673d0366f70ca4b_19909_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/hugo-%E0%A4%AE%E0%A5%87%E0%A4%82-html-%E0%A4%9F%E0%A5%88%E0%A4%97-%E0%A4%95%E0%A4%BE-%E0%A4%89%E0%A4%AA%E0%A4%AF%E0%A5%8B%E0%A4%97-%E0%A4%95%E0%A4%B0%E0%A4%A8%E0%A4%BE/","title":"HUGO में HTML टैग का उपयोग करना"},{"content":"GitHub प्रायोजकों की तलाश मुझे खुशी होगी अगर आप नीचे दिए गए बटन से GitHub प्रायोजक बन सकें।\nइसका उपयोग उपकरण विकास आदि के लिए किया जाएगा।\nमैं तब तक पूरी कोशिश करना चाहता हूँ जब तक मैं कोड साइनिंग सर्टिफिकेट न जोड़ सकूँ!\n","date":"2023-01-17T18:13:56+09:00","image":"http://kenji.blog/p/github%E3%82%B9%E3%83%9D%E3%83%B3%E3%82%B5%E3%83%BC%E5%8B%9F%E9%9B%86/img_hueb38a852fa4aae54f384564ce61ae26b_130999_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/github-%E0%A4%AA%E0%A5%8D%E0%A4%B0%E0%A4%BE%E0%A4%AF%E0%A5%8B%E0%A4%9C%E0%A4%95%E0%A5%8B%E0%A4%82-%E0%A4%95%E0%A5%80-%E0%A4%A4%E0%A4%B2%E0%A4%BE%E0%A4%B6/","title":"GitHub प्रायोजकों की तलाश"},{"content":"बटन क्या है बटन GUI नियंत्रणों में से एक है और इसे Windows मानक API का उपयोग करके लागू किया जा सकता है। जब आप स्क्रीन पर किसी क्षेत्र पर क्लिक करते हैं (माउस का बायां बटन नीचे, माउस का बायां बटन ऊपर), तो आप प्रोग्राम में निर्दिष्ट प्रक्रिया को निष्पादित कर सकते हैं।\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 // बटन बनाना CreateWindow( TEXT(\u0026#34;BUTTON\u0026#34;), TEXT(\u0026#34;Close\u0026#34;), WS_CHILD|WS_VISIBLE, 10,10,128,30, hWnd, (HMENU)ID_BUTTON1, ((LPCREATESTRUCT)lParam)-\u0026gt;hInstance, 0); ... // क्लिक किए जाने पर OS द्वारा विंडो को WM_COMMAND संदेश भेजा जाता है। case WM_COMMAND: switch(LOWORD(wParam)) { case ID_BUTTON1: SendMessage(hWnd,WM_CLOSE,0,0); break; } break; नमूना कोड नीचे पोस्ट किया गया है। button\n","date":"2023-01-14T20:24:00+09:00","image":"http://kenji.blog/p/%E3%83%9C%E3%82%BF%E3%83%B3%E3%81%A4%E3%81%84%E3%81%A6/img_hu07b471bb746fa184ff8eeb6f561670e7_8164_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/%E3%83%9C%E3%82%BF%E3%83%B3%E3%81%A4%E3%81%84%E3%81%A6/","title":"बटन के बारे में"},{"content":"एक लैपटॉप ThinkPad (सेकेंड-हैंड) खरीदा लैपटॉप पर मेरा अधिकांश काम रिमोट डेस्कटॉप कनेक्शन के माध्यम से अन्य टर्मिनलों तक पहुँच कर किया जाता है, इसलिए मुझे उच्च-स्पेक वाले पीसी की आवश्यकता नहीं है। एक ChromeBook भी ठीक रहता, लेकिन चूंकि कोई अच्छा डिज़ाइन या उच्च रिज़ॉल्यूशन नहीं था, इसलिए मैंने ThinkPad खरीदा।\nविनिर्देश नीचे दिए गए हैं, और विभिन्न पॉइंट्स का उपयोग करके कीमत लगभग 55,000 येन थी।\nThinkPad T470s CPU: Intel Core i7 7600U RAM: 24GB SSD: 512GB OS: Windows 10 Pro 64bit स्क्रीन: 14.0-इंच चौड़ी (नॉन-ग्लेयर पैनल) रिज़ॉल्यूशन: WQHD LCD 2560×1440 वजन: लगभग 1.32 किलो नोट्स: अंग्रेजी कीबोर्ड चूंकि यह सेकेंड-हैंड है, इसलिए मैंने सोचा कि उपयोग के निशान या खरोंच हो सकते हैं, लेकिन बिल्कुल भी कोई समस्या नहीं है, जो बहुत अच्छी बात है। बैटरी भी अब तक बिना किसी समस्या के काम कर रही है।\nवर्तमान असंतोष इसमें Pause और App कुंजियों का अभाव है। मैं सिस्टम सेटिंग्स खोलने के शॉर्टकट के रूप में Pause कुंजी का उपयोग करता था। इसके अलावा, मैं पॉप-अप मेनू खोलने के लिए App कुंजी का उपयोग करता था, इसलिए इसके बिना यह असुविधाजनक है। PageUp और PageDown कुंजियाँ कीबोर्ड पर तीर कुंजियों के ठीक बगल में हैं, इसलिए मैं अक्सर उन्हें गलती से दबा देता हूँ। यह आदत की बात हो सकती है। अन्य पीसी जिन पर मैंने विचार किया लेकिन खरीदा नहीं ASUS Chromebook Flip C436FA (C436FA-ENG) HP लैपटॉप HP15s-fq संदर्भ: ThinkPad T470s\n","date":"2023-01-13T19:07:00+09:00","image":"http://kenji.blog/p/thinkpad%E4%B8%AD%E5%8F%A4%E3%82%92%E8%B2%B7%E3%81%A3%E3%81%9F/img_hu1990736b7e8b9be3011f0d8e6938401f_246116_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/thinkpad%E4%B8%AD%E5%8F%A4%E3%82%92%E8%B2%B7%E3%81%A3%E3%81%9F/","title":"एक ThinkPad (सेकेंड-हैंड) खरीदा"},{"content":"TeamViewer के साथ आसान रिमोट कनेक्शन TeamViewer का उपयोग करके रिमोट डेस्कटॉप कनेक्शन आसानी से किया जा सकता है।\nरिमोट गंतव्य और रिमोट स्रोत दोनों पर TeamViewer शुरू करें, रिमोट स्रोत पर रिमोट गंतव्य का ID और पासवर्ड दर्ज करने पर रिमोट कनेक्शन किया जा सकता है।\nकमांड लाइन के माध्यम से रिमोट कनेक्ट करने के लिए, निम्न कार्य करें:\n1 %ProgramFiles%\\TeamViewer\\TeamViewer.exe -i \u0026lt;ID\u0026gt; -P \u0026lt;Password\u0026gt; \u0026lt;ID\u0026gt; में रिमोट गंतव्य का ID दर्ज करें, और \u0026lt;Password\u0026gt; में रिमोट गंतव्य का पासवर्ड दर्ज करें।\nयदि आप उपरोक्त कमांड का उपयोग करके एक शॉर्टकट फ़ाइल बनाते हैं, तो यह सुविधाजनक है क्योंकि आप ID/PW दर्ज करने से बच सकते हैं।\nसंदर्भ साइट: Command line parameters\n","date":"2023-01-13T01:45:00+09:00","image":"http://kenji.blog/p/teamviewer%E3%81%A7%E7%B0%A1%E5%8D%98%E3%83%AA%E3%83%A2%E3%83%BC%E3%83%88%E6%8E%A5%E7%B6%9A/img_hu6a85c6015d61f1656b290295e2fefc2b_15316_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/teamviewer-%E0%A4%95%E0%A5%87-%E0%A4%B8%E0%A4%BE%E0%A4%A5-%E0%A4%86%E0%A4%B8%E0%A4%BE%E0%A4%A8-%E0%A4%B0%E0%A4%BF%E0%A4%AE%E0%A5%8B%E0%A4%9F-%E0%A4%95%E0%A4%A8%E0%A5%87%E0%A4%95%E0%A5%8D%E0%A4%B6%E0%A4%A8/","title":"TeamViewer के साथ आसान रिमोट कनेक्शन"},{"content":" मूर्ख अनुभव से सीखते हैं, बुद्धिमान इतिहास से सीखते हैं (ओटो वॉन बिस्मार्क)\nएक आदमी को एक मछली दो और आप उसे एक दिन के लिए खिलाओ; मछली पकड़ना सिखाओ और आप उसे जीवन भर के लिए खिलाओ। (लाओत्से)\nभूखे रहो, मूर्ख रहो (स्टीव जॉब्स)\nकिया गया पूर्ण से बेहतर है। (मार्क जुकरबर्ग)\nइसे सरल रखें (जेम्स गोसलिंग)\nमेरे पास उन लोगों के बारे में चिंता करने का समय नहीं है जो मुझे पसंद नहीं करते। मैं उन लोगों से प्यार करने में बहुत व्यस्त हूँ जो मुझसे प्यार करते हैं। (स्नूपी)\nमनुष्य के लिए सबसे बड़ी खुशी यह है कि उसे ऐसा काम मिले जहां वह खुद का उपयोग कर सके (कार्ल मार्क्स)\nयदि थोड़ा ज्ञान खतरनाक है, तो वह व्यक्ति कहाँ है जिसके पास इतना ज्ञान है कि वह खतरे से बाहर हो? (थॉमस हक्सले 1877)\n\u0026lsquo;इसके विपरीत,\u0026rsquo; ट्वीडलडी ने आगे कहा, \u0026lsquo;यदि ऐसा होता, तो ऐसा हो सकता था; और यदि ऐसा होता, तो ऐसा होता; लेकिन क्योंकि ऐसा नहीं है, तो ऐसा नहीं है। यही तर्क है।\u0026rsquo; (लुईस कैरोल, थ्रू द लुकिंग-ग्लास, 1872)\nक्लाउड शैनन को सूचना युग का पिता कहना अतिशयोक्ति नहीं होगी, और उनकी अकादमिक उपलब्धियां 20वीं सदी की सबसे बड़ी उपलब्धियों में से हैं। (अमेरिकन मैथमेटिकल सोसाइटी की समीक्षा)\nजो लोग प्रतीकात्मक बीजगणित के सिद्धांत की वर्तमान स्थिति से परिचित हैं, वे जानते हैं कि विश्लेषण प्रक्रियाओं की वैधता उपयोग किए गए प्रतीकों की व्याख्या पर निर्भर नहीं करती है, बल्कि पूरी तरह से उनके संयोजन के नियमों पर निर्भर करती है। (जॉर्ज बूल, \u0026ldquo;तर्क का गणितीय विश्लेषण\u0026rdquo; की शुरुआत में 1847)\n","date":"2022-10-15T17:00:43+09:00","image":"http://kenji.blog/p/%E5%90%8D%E8%A8%80%E9%9B%86/img_hu460fc51ec02f7186f7ea8b0f77e830d9_47559_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/%E5%90%8D%E8%A8%80%E9%9B%86/","title":"उद्धरण संग्रह"},{"content":"ग्राफ़ संपादक एक वेबपेज का परिचय जहां आप सरल ग्राफ़ बना सकते हैं।\nhttps://csacademy.com/app/graph_editor/\nआप संख्यात्मक मान दर्ज करके ग्राफ़ बना सकते हैं। इसके अलावा, ऐसा लगता है कि आप माउस से तत्वों को स्थानांतरित भी कर सकते हैं।\nDirected पर क्लिक करके आप एक निर्देशित ग्राफ़ भी बना सकते हैं।\nआप अपने द्वारा बनाए गए ग्राफ़ को Download as PNG का उपयोग करके एक छवि के रूप में सहेज सकते हैं।\n","date":"2022-10-13T23:31:11+09:00","image":"http://kenji.blog/p/%E3%82%B0%E3%83%A9%E3%83%95%E3%82%A8%E3%83%87%E3%82%A3%E3%82%BF/img_hu784f47a1f9126188b11445cd2c37bf68_13497_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/%E3%82%B0%E3%83%A9%E3%83%95%E3%82%A8%E3%83%87%E3%82%A3%E3%82%BF/","title":"ग्राफ़ संपादक"},{"content":"Mathematica के साथ ट्रैवलिंग सेल्समैन समस्या को हल करना समस्या 電車でこんな広告を見かけました😁📸 pic.twitter.com/iXEgvtXrpL\n\u0026mdash; 早稲田大学 早水桃子研究室 (@hayamizu_lab) October 11, 2022 उपाय 1 d=SparseArray[{{1,2}-\u0026gt;10,{2,1}-\u0026gt;10,{1,5}-\u0026gt;15,{5,1}-\u0026gt;15,{1,4}-\u0026gt;12,{4,1}-\u0026gt;12,{1,3}-\u0026gt;20,{3,1}-\u0026gt;20,{2,5}-\u0026gt;10,{5,2}-\u0026gt;10,{3,4}-\u0026gt;10,{4,3}-\u0026gt;10,{3,8}-\u0026gt;30,{8,3}-\u0026gt;30,{3,7}-\u0026gt;20,{7,3}-\u0026gt;20,{3,6}-\u0026gt;25,{6,3}-\u0026gt;25,{4,5}-\u0026gt;15,{5,4}-\u0026gt;15,{4,8}-\u0026gt;20,{8,4}-\u0026gt;20,{5,9}-\u0026gt;18,{9,5}-\u0026gt;18,{5,8}-\u0026gt;15,{8,5}-\u0026gt;15,{6,7}-\u0026gt;5,{7,6}-\u0026gt;5,{7,8}-\u0026gt;35,{8,7}-\u0026gt;35,{8,9}-\u0026gt;12,{9,8}-\u0026gt;12},{9,9},Infinity]; SparseArray फ़ंक्शन का उपयोग करके एक मैट्रिक्स बनाएं। प्रत्येक तत्व उस तत्व की पंक्ति और कॉलम में शहरों के बीच की दूरी का प्रतिनिधित्व करता है। उदाहरण के लिए, पहले तत्व {1,2}-\u0026gt;10 का अर्थ है कि 1 और 2 के बीच की दूरी 10 है। दूसरा-से-अंतिम तत्व {9,9} मैट्रिक्स के आकार को इंगित करता है, और अंतिम तत्व Infinity का अर्थ है कि अनिर्दिष्ट शहरों के बीच पथ की लंबाई अनंत है। दूसरे शब्दों में, इसका मतलब है कि कोई रास्ता नहीं है।\n1 {len,tour}=FindShortestTour[{1,2,3,4,5,6,7,8,9},DistanceFunction-\u0026gt;(d[[#1,#2]]\u0026amp;)] FindShortestTour फ़ंक्शन के साथ, आप ट्रैवलिंग सेल्समैन समस्या को आसानी से हल कर सकते हैं। {1,2,3,4,5,6,7,8,9} शहर के नंबरों को दर्शाता है। DistanceFunction-\u0026gt;(d[[#1,#2]]\u0026amp;) मैट्रिक्स d पास करता है, जो शहरों के बीच की दूरी को दर्शाता है।\nआउटपुट 1 {137, {1, 2, 5, 9, 8, 7, 6, 3, 4}} आउटपुट सबसे छोटी दूरी और उसके संबंधित मार्ग को दर्शाता है। सबसे छोटी दूरी 137 है, और मार्ग 1→2→5→9→8→7→6→3→4→1 है। ABC वर्णमाला क्रम में बदलने पर, यह A, B, E, I, H, G, F, C, D बन जाता है।\n","date":"2022-10-12T19:05:58+09:00","image":"http://kenji.blog/p/mathematica%E3%81%A7%E5%B7%A1%E5%9B%9E%E3%82%BB%E3%83%BC%E3%83%AB%E3%82%B9%E3%83%9E%E3%83%B3%E5%95%8F%E9%A1%8C%E3%82%92%E8%A7%A3%E3%81%8F/img_hucba782cf2f6047b30fd8084b4d887659_22760_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/mathematica-%E0%A4%95%E0%A5%87-%E0%A4%B8%E0%A4%BE%E0%A4%A5-%E0%A4%9F%E0%A5%8D%E0%A4%B0%E0%A5%88%E0%A4%B5%E0%A4%B2%E0%A4%BF%E0%A4%82%E0%A4%97-%E0%A4%B8%E0%A5%87%E0%A4%B2%E0%A5%8D%E0%A4%B8%E0%A4%AE%E0%A5%88%E0%A4%A8-%E0%A4%B8%E0%A4%AE%E0%A4%B8%E0%A5%8D%E0%A4%AF%E0%A4%BE-%E0%A4%95%E0%A5%8B-%E0%A4%B9%E0%A4%B2-%E0%A4%95%E0%A4%B0%E0%A4%A8%E0%A4%BE/","title":"Mathematica के साथ ट्रैवलिंग सेल्समैन समस्या को हल करना"},{"content":"वेबपेज में सभी चेकबॉक्स को चेक करने के लिए, F12 के साथ DevTools खोलें, कंसोल में निम्नलिखित कोड पेस्ट करें और इसे चलाएं।\n1 2 3 4 5 6 let boxes = document.querySelectorAll(\u0026#39;input[type=\u0026#34;checkbox\u0026#34;]\u0026#39;); for (let i = 0; i \u0026lt; boxes.length; i++) { if (!boxes[i].disabled) { boxes[i].checked = true; } } या,\nएक नया बुकमार्क बनाएं और पंजीकरण पते में निम्नलिखित कोड पेस्ट करें (जहां आप आमतौर पर https://\u0026hellip; टाइप करते हैं)। जिस वेबपेज को आप चेक करना चाहते हैं उसे प्रदर्शित करें, और बनाए गए बुकमार्क पर क्लिक करें, सभी चेकबॉक्स चेक हो जाएंगे।\n1 javascript:(function(){let boxes=document.querySelectorAll(\u0026#39;input[type=\u0026#34;checkbox\u0026#34;]\u0026#39;);for(let i=0;i\u0026lt;boxes.length;i++){if(!boxes[i].disabled){boxes[i].checked=true;}}})(); सभी को अनचेक करने के लिए, कृपया उपरोक्त स्क्रिप्ट के boxes[i].checked = true; भाग को boxes[i].checked = false; में बदलें।\n","date":"2022-10-05T20:07:06+09:00","image":"http://kenji.blog/p/web%E3%83%9A%E3%83%BC%E3%82%B8%E5%86%85%E3%81%AE%E3%81%99%E3%81%B9%E3%81%A6%E3%81%AE%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF%E3%83%9C%E3%83%83%E3%82%AF%E3%82%B9%E3%82%92%E5%85%A8%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF%E3%81%99%E3%82%8B/img_hu556225b69f77e68d5b8659c3dfad5080_9228_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/%E0%A4%B5%E0%A5%87%E0%A4%AC%E0%A4%AA%E0%A5%87%E0%A4%9C-%E0%A4%AE%E0%A5%87%E0%A4%82-%E0%A4%B8%E0%A4%AD%E0%A5%80-%E0%A4%9A%E0%A5%87%E0%A4%95%E0%A4%AC%E0%A5%89%E0%A4%95%E0%A5%8D%E0%A4%B8-%E0%A4%95%E0%A5%8B-%E0%A4%9A%E0%A5%87%E0%A4%95-%E0%A4%95%E0%A4%B0%E0%A5%87%E0%A4%82/","title":"वेबपेज में सभी चेकबॉक्स को चेक करें"},{"content":"विल्सन की प्रमेय जब $p$ एक अभाज्य संख्या है, तो $(p−1)!≡−1 \\pmod p$ सत्य है।\nयूलर का सूत्र $e^{iπ}+1=0$\nफ़र्मेट का अंतिम प्रमेय $n≥3$ होने वाले पूर्णांक $n$ के लिए, $x^n+y^n=z^n$ को संतुष्ट करने वाले धनात्मक पूर्णांक $x,y,z$ मौजूद नहीं हैं।\nबासेल समस्या $1/1^2+1/2^2+1/3^2+1/4^2+...=π^2/6$\nयूलर का अभाज्य-उत्पादक सूत्र जब $n$, $0$ से $39$ तक का पूर्णांक होता है, तो $n^2+n+41$ हमेशा अभाज्य संख्या होता है।\n","date":"2022-10-05T13:24:50+09:00","image":"http://kenji.blog/p/%E5%A5%BD%E3%81%8D%E3%81%AA%E6%95%B0%E5%BC%8F/img_huc293f175856c5702bca3e96906ea6e7d_155123_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/%E5%A5%BD%E3%81%8D%E3%81%AA%E6%95%B0%E5%BC%8F/","title":"पसंदीदा गणितीय सूत्र"},{"content":"पूर्वापेक्षाएँ Windows 11 होना चाहिए\nप्रक्रिया Microsoft Store से ऐप इंस्टॉलर इंस्टॉल करें https://www.microsoft.com/store/productId/9NBLGGH4NNS1 कमांड प्रॉम्प्ट में ऐप इंस्टॉल करें 1 winget install Google.Chrome मुख्य ऐप्स जिन्हें इंस्टॉल किया जा सकता है Google Chrome (कमांड winget install Google.Chrome) Microsoft Edge (कमांड winget install Microsoft.Edge) Microsoft Teams (कमांड winget install Microsoft.Teams) Microsoft Office (कमांड winget install Microsoft.Office) Visual Studio Code (कमांड winget install vscode) Slack (कमांड winget install SlackTechnologies.Slack) Discord (कमांड winget install Discord.Discord) Docker Desktop (कमांड winget install Docker.DockerDesktop) Git (कमांड winget install Git) 7zip (कमांड winget install 7zip) VLC (कमांड winget install VideoLAN.VLC) संदर्भ एप्लिकेशन इंस्टॉल और प्रबंधित करने के लिए winget टूल का उपयोग करें\nअतिरिक्त बात मैंने सोचा था कि मैं Paint.Net भी इंस्टॉल कर सकता हूं, लेकिन मैं इसे इंस्टॉल नहीं कर सका।\nhttps://forums.getpaint.net/topic/118574-please-add-paintnet-to-the-available-packages-for-windows-package-manager-winget/\n","date":"2022-10-05T12:15:20+09:00","image":"http://kenji.blog/p/winget-%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%A7%E3%82%A2%E3%83%97%E3%83%AA%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B/img_hu0f8970b897eb9ee188b975a06c549111_1216_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/winget-%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%A7%E3%82%A2%E3%83%97%E3%83%AA%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B/","title":"WinGet का उपयोग करके कमांड लाइन से ऐप इंस्टॉल करें"},{"content":"Rust की विशेषताएं मोज़िला (Mozilla) द्वारा विकसित एक अपेक्षाकृत नई ओपन-सोर्स प्रोग्रामिंग भाषा बिना गार्बेज कलेक्शन वाली एक तेज़ भाषा जो सिस्टम प्रोग्रामिंग के लिए विशेष रूप से डिज़ाइन की गई है इसमें स्वामित्व (ownership) और उधार (borrowing) के अद्वितीय तंत्र भाषा विनिर्देश के रूप में हैं, जो मेमोरी सुरक्षा की गारंटी देते हैं यह क्रॉस-प्लेटफॉर्म पर काम करती है इसमें मानक के रूप में Cargo नामक एक बेहतरीन पैकेज मैनेजर है ","date":"2022-10-03T22:47:20+09:00","image":"http://kenji.blog/p/rust%E3%81%AE%E7%89%B9%E5%BE%B4/img_hu184f8481eb552ab7d9cefed2227c58f9_39839_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/rust%E3%81%AE%E7%89%B9%E5%BE%B4/","title":"Rust की विशेषताएं"},{"content":"Github Actions में डायनामिक रूप से वेरिएबल सेट करने के लिए, आप इसे $env:GITHUB_ENV में जोड़कर प्राप्त कर सकते हैं, जैसा कि नीचे दिखाया गया है।\n【Windows के मामले में】\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 name: Rust on: push: branches: [ \u0026#34;master\u0026#34; ] pull_request: branches: [ \u0026#34;master\u0026#34; ] env: CARGO_TERM_COLOR: always jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Get Environment run: | echo \u0026#39;VERSION=1.0.0\u0026#39; \u0026gt;\u0026gt; $GITHUB_ENV echo \u0026#39;NAME=1.0.0\u0026#39; \u0026gt;\u0026gt; $GITHUB_ENV - name: Display Environment run: | echo $env:VERSION echo $env:NAME - name: Create Release id: create_release uses: actions/create-release@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: tag_name: ${{ env.VERSION }} release_name: ${{ env.VERSION }} draft: false prerelease: false - name: Upload Release Asset id: upload-release-asset uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it\u0026#39;s ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps asset_path: ./target/release/${{ env.NAME }}.exe asset_name: ${{ env.NAME }}.exe asset_content_type: application/octet-stream 【Linux के मामले में】\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 name: Rust on: push: branches: [ \u0026#34;main\u0026#34; ] pull_request: branches: [ \u0026#34;main\u0026#34; ] env: CARGO_TERM_COLOR: always jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Get Environment run: | echo \u0026#39;VERSION=1.0.0\u0026#39; \u0026gt;\u0026gt; $GITHUB_ENV echo \u0026#39;NAME=hello\u0026#39; \u0026gt;\u0026gt; $GITHUB_ENV - name: Display Environment run: | echo ${{ env.VERSION }} echo ${{ env.NAME }} ","date":"2022-10-02T02:33:35+09:00","image":"http://kenji.blog/p/github-actions%E3%81%A7%E5%8B%95%E7%9A%84%E3%81%AB%E5%A4%89%E6%95%B0%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B/img_1_hua65fb3c79313ad0762e062df80261603_10981_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/github-actions%E3%81%A7%E5%8B%95%E7%9A%84%E3%81%AB%E5%A4%89%E6%95%B0%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B/","title":"Github Actions में डायनामिक रूप से वेरिएबल सेट करना"},{"content":"स्थानीय टैग हटाएं मौजूद स्थानीय टैग की जाँच करने के लिए git tag का उपयोग करें। टैग को हटाने के लिए git tag -d v0.1.0 का उपयोग करें। (उस टैग को निर्दिष्ट करें जिसे आप v0.1.0 की जगह हटाना चाहते हैं) रिमोट टैग हटाएं मौजूद रिमोट टैग की जाँच करने के लिए git ls-remote --tags का उपयोग करें। मौजूद रिमोट टैग को हटाने के लिए git push origin --delete v0.1.0 का उपयोग करें। (उस टैग को निर्दिष्ट करें जिसे आप v0.1.0 की जगह हटाना चाहते हैं) संदर्भ gitでtagをリモートとローカルで削除する方法！\n","date":"2022-10-02T02:18:04+09:00","image":"http://kenji.blog/p/git%E3%81%A7%E3%82%BF%E3%82%B0%E3%82%92%E6%B6%88%E3%81%99/img_hu2ecde82e40aa31a994850b70302683b4_5304_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/git%E3%81%A7%E3%82%BF%E3%82%B0%E3%82%92%E6%B6%88%E3%81%99/","title":"git में टैग हटाएं"},{"content":"Rust में एक साधारण विंडो प्रदर्शित करना\n1 2 3 4 5 6 7 8 9 10 [package] name = \u0026#34;win\u0026#34; version = \u0026#34;0.1.0\u0026#34; edition = \u0026#34;2021\u0026#34; # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies.winapi] version = \u0026#34;0.3\u0026#34; features = [\u0026#34;winuser\u0026#34;] स्रोत कोड नीचे है\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 #![windows_subsystem = \u0026#34;windows\u0026#34;] use winapi::{ um::{ winuser::{RegisterClassW, WNDCLASSW, CS_HREDRAW, CS_VREDRAW, LoadIconW, IDI_APPLICATION, LoadCursorW, IDC_ARROW, CreateWindowExW, ShowWindow, SW_NORMAL, UpdateWindow, GetMessageW, TranslateMessage, DispatchMessageW, MSG, WM_DESTROY, PostQuitMessage, DefWindowProcW, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT}, wingdi::{GetStockObject, WHITE_BRUSH}, }, shared::{ windef::{HWND, HBRUSH}, minwindef::{UINT, WPARAM, LPARAM, LRESULT}, }, }; use std::ptr; use std::mem; fn main() { unsafe { let class_name = encode(\u0026#34;my_window_class_name\u0026#34;); if !register_wndclass(\u0026amp;class_name) { return; } let hwnd = create_window(\u0026amp;class_name); if hwnd.is_null() { return; } ShowWindow(hwnd, SW_NORMAL); UpdateWindow(hwnd); let mut msg = mem::uninitialized::\u0026lt;MSG\u0026gt;(); loop { if GetMessageW(\u0026amp;mut msg, ptr::null_mut(), 0, 0) == 0 { return; } TranslateMessage(\u0026amp;mut msg); DispatchMessageW(\u0026amp;mut msg); } } } fn encode(source: \u0026amp;str) -\u0026gt; Vec\u0026lt;u16\u0026gt; { source.encode_utf16().chain(Some(0)).collect() } unsafe fn register_wndclass(class_name: \u0026amp;[u16]) -\u0026gt; bool { let mut winc = mem::zeroed::\u0026lt;WNDCLASSW\u0026gt;(); winc.style = CS_HREDRAW | CS_VREDRAW; winc.lpfnWndProc = Some(win_proc); winc.hIcon = LoadIconW(ptr::null_mut(), IDI_APPLICATION); winc.hCursor = LoadCursorW(ptr::null_mut(), IDC_ARROW); winc.hbrBackground = GetStockObject(WHITE_BRUSH as i32) as HBRUSH; winc.lpszClassName = class_name.as_ptr(); RegisterClassW(\u0026amp;winc) \u0026gt; 0 } unsafe fn create_window(class_name: \u0026amp;[u16]) -\u0026gt; HWND { CreateWindowExW( 0, class_name.as_ptr(), encode(\u0026#34;Hello, World!\u0026#34;).as_ptr(), WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, ptr::null_mut(), ptr::null_mut(), ptr::null_mut(), ptr::null_mut(), ) } unsafe extern \u0026#34;system\u0026#34; fn win_proc(hwnd: HWND, msg: UINT, w_param: WPARAM, l_param: LPARAM) -\u0026gt; LRESULT { match msg { WM_DESTROY =\u0026gt; PostQuitMessage(0), _ =\u0026gt; return DefWindowProcW(hwnd, msg, w_param, l_param), }; 0 } संदर्भ Rust में विंडोज प्रोग्रामिंग - CreateWindow\n","date":"2022-10-01T19:08:58+09:00","image":"http://kenji.blog/p/rust%E3%81%A7%E3%82%B7%E3%83%B3%E3%83%97%E3%83%AB%E3%81%AA%E3%82%A6%E3%82%A3%E3%83%B3%E3%83%89%E3%82%A6%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%99%E3%82%8B/images/rust_logo_huefc2d075e966b0edc0b7186c50038553_22411_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/rust%E3%81%A7%E3%82%B7%E3%83%B3%E3%83%97%E3%83%AB%E3%81%AA%E3%82%A6%E3%82%A3%E3%83%B3%E3%83%89%E3%82%A6%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%99%E3%82%8B/","title":"Rust में एक साधारण विंडो प्रदर्शित करना"},{"content":"Rust में टेस्ट लिखने के लिए, टेस्ट फ़ंक्शन की परिभाषा के ठीक ऊपर #[test] एट्रिब्यूट जोड़कर फ़ंक्शन बनाएं।\n1 2 3 4 5 6 7 8 fn plus(a:i32,b:i32)-\u0026gt;i32 { a+b } #[test] fn plus_test() { assert_eq!(plus(1, 1), 2); } टेस्ट कोड को cargo test से चलाया जा सकता है। जब टेस्ट सफल होता है, तो यह ok आउटपुट देता है। विफल होने पर, यह FAILED आउटपुट देता है।\nसफल होने पर\n1 2 3 4 5 6 7 8 9 C:\\Users\\admin\\Desktop\\test1\u0026gt;cargo test Compiling test1 v0.1.0 (C:\\Users\\admin\\Desktop\\test1) Finished test [unoptimized + debuginfo] target(s) in 0.35s Running unittests src\\main.rs (target\\debug\\deps\\test1-be5d3118bc52cb3a.exe) running 1 test test plus_test ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s विफल होने पर\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 C:\\Users\\admin\\Desktop\\test1\u0026gt;cargo test Compiling test1 v0.1.0 (C:\\Users\\admin\\Desktop\\test1) Finished test [unoptimized + debuginfo] target(s) in 0.33s Running unittests src\\main.rs (target\\debug\\deps\\test1-be5d3118bc52cb3a.exe) running 1 test test plus_test ... FAILED failures: ---- plus_test stdout ---- thread \u0026#39;plus_test\u0026#39; panicked at \u0026#39;assertion failed: `(left == right)` left: `2`, right: `3`\u0026#39;, src\\main.rs:7:5 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace failures: plus_test test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s error: test failed, to rerun pass \u0026#39;--bin test1\u0026#39; ","date":"2022-10-01T02:00:59+09:00","image":"http://kenji.blog/p/rust%E3%81%A7%E3%83%86%E3%82%B9%E3%83%88%E3%82%92%E6%9B%B8%E3%81%8F/images/rust_logo_huefc2d075e966b0edc0b7186c50038553_22411_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/rust%E3%81%A7%E3%83%86%E3%82%B9%E3%83%88%E3%82%92%E6%9B%B8%E3%81%8F/","title":"Rust में टेस्ट लिखना"},{"content":"आप नीचे दिए गए चरणों का पालन करके Rust में MessageBox प्रदर्शित कर सकते हैं।\nRust स्थापित करें। Rust के साथ शुरुआत कैसे करें देखें कमांड प्रॉम्प्ट में cargo new --bin MessageBox चलाएँ। MessageBox निर्देशिका में जाएँ। Cargo.toml खोलें और नीचे दिए गए अनुसार संशोधित करें। 1 2 3 4 5 6 7 8 9 10 [package] name = \u0026#34;hello_world\u0026#34; version = \u0026#34;0.1.0\u0026#34; edition = \u0026#34;2021\u0026#34; # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] winapi = \u0026#34;0.2.7\u0026#34; user32-sys = \u0026#34;0.2.0\u0026#34; src\\main.rs खोलें और नीचे दिए गए अनुसार संशोधित करें। 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 extern crate user32; extern crate winapi; use std::ffi::CString; use user32::MessageBoxA; use winapi::winuser::{MB_OK, MB_ICONINFORMATION}; fn main() { let lp_text = CString::new(\u0026#34;Hello, world!\u0026#34;).unwrap(); let lp_caption = CString::new(\u0026#34;MessageBox Example\u0026#34;).unwrap(); unsafe { MessageBoxA( std::ptr::null_mut(), lp_text.as_ptr(), lp_caption.as_ptr(), MB_OK | MB_ICONINFORMATION ); } } कमांड प्रॉम्प्ट में cargo run चलाएँ। रिलीज़ बिल्ड बनाने के लिए cargo build --release चलाएँ।\nसंदर्भ Hello World MesssageBox example in Rust\n","date":"2022-09-30T23:54:31+09:00","image":"http://kenji.blog/p/rust%E3%81%A7messagebox%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%99%E3%82%8B/images/rust_logo_huefc2d075e966b0edc0b7186c50038553_22411_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/rust-%E0%A4%AE%E0%A5%87%E0%A4%82-messagebox-%E0%A4%AA%E0%A5%8D%E0%A4%B0%E0%A4%A6%E0%A4%B0%E0%A5%8D%E0%A4%B6%E0%A4%BF%E0%A4%A4-%E0%A4%95%E0%A4%B0%E0%A5%87%E0%A4%82/","title":"Rust में MessageBox प्रदर्शित करें"},{"content":"समझने का क्या मतलब है? नमस्ते!\nआज, मैं \u0026ldquo;समझने का क्या मतलब है?\u0026rdquo; विषय पर बात करना चाहूंगा।\nक्या \u0026ldquo;समझना\u0026rdquo; वास्तव में अस्पष्ट है? हमारे दैनिक जीवन में ऐसे क्षण आते हैं जब हमें लगता है कि \u0026ldquo;मैं समझ गया!\u0026quot;। लेकिन अगर आप ध्यान से सोचें, तो क्या वह \u0026ldquo;समझना\u0026rdquo; वास्तव में एक पूर्ण समझ है?\nउदाहरण के लिए, कार चलाना। यदि आप एक्सीलरेटर पर कदम रखते हैं, तो यह आगे बढ़ती है, और यदि आप ब्रेक पर कदम रखते हैं, तो यह रुक जाती है। इसे \u0026ldquo;समझना\u0026rdquo; कहा जा सकता है। हालाँकि, मुझे लगता है कि ऐसे बहुत कम लोग हैं जो विस्तार से बता सकते हैं कि इंजन के अंदर क्या हो रहा है।\nक्या पूर्ण समझ आवश्यक है? दरअसल, भले ही आप सब कुछ पूरी तरह से नहीं समझते हैं, यह अक्सर दैनिक जीवन में बाधा नहीं डालता है। आप स्मार्टफोन की आंतरिक संरचना को जाने बिना भी फोन कॉल कर सकते हैं और संदेश भेज सकते हैं।\nफिर भी, हमें \u0026ldquo;समझने\u0026rdquo; को हल्के में नहीं लेना चाहिए। यदि हमारी समझ गहरी होती है, तो नई खोजें और अंतर्दृष्टि पैदा हो सकती हैं।\nऐसी कई चीजें हैं जो हम नहीं समझते हैं दुनिया में बहुत सी चीजें हैं जिन्हें अभी तक स्पष्ट नहीं किया गया है। उदाहरण के लिए, मानवीय भावनाओं और चेतना के तंत्र, ब्रह्मांड की उत्पत्ति, आदि। ये ऐसे क्षेत्र हैं जिन्हें विज्ञान के आगे बढ़ने पर भी पूरी तरह से \u0026ldquo;समझा\u0026rdquo; नहीं गया है।\nगणित की दुनिया में भी, अनसुलझी समस्याएं हैं जो सरल हैं, जैसे कि \u0026ldquo;गोल्डबैक का अनुमान\u0026rdquo;।\n\u0026ldquo;समझने\u0026rdquo; का मूल्य जब हम अधिक चीजों को \u0026ldquo;समझते\u0026rdquo; हैं, तो हम उन्हें आत्मविश्वास के साथ समझा सकते हैं और दूसरों के साथ प्रभावी ढंग से संवाद कर सकते हैं। एक फायदा यह भी है कि ज्ञान होने से गलत सूचनाओं से गुमराह होना मुश्किल हो जाता है।\nविनम्र दृष्टिकोण महत्वपूर्ण है यह पहचानना कि हम क्या \u0026ldquo;नहीं समझते\u0026rdquo; हैं, विनम्रता की ओर ले जाता है। और इस पहचान के कारण ही सीखते रहने की इच्छा पैदा होती है।\nइसलिए, जबकि \u0026ldquo;समझना\u0026rdquo; महत्वपूर्ण है, सब कुछ पूरी तरह से समझना मुश्किल है। मुझे लगता है कि महत्वपूर्ण बात यह है कि हम अपनी खुद की समझ की सीमाओं को जानें और सीखते रहने का दृष्टिकोण रखें।\n","date":"2022-09-24T02:38:18+09:00","image":"http://kenji.blog/p/%E3%82%8F%E3%81%8B%E3%82%8B%E3%81%A3%E3%81%A6%E3%81%AA%E3%82%93%E3%81%A0%E3%82%8D%E3%81%86/img_hu70cb8dd6d786a678b22436c932461bee_164867_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/samajhne-ka-kya-matlab-hai/","title":"समझने का क्या मतलब है?"},{"content":"मैंने सोचा कि मुझे गणित और कंप्यूटर क्यों पसंद हैं सभी के लिए समान यह हमेशा एक ही इनपुट के लिए एक ही आउटपुट देता है, चाहे व्यक्ति, स्थिति या स्थान कुछ भी हो।\nस्पष्ट नियम नियम स्पष्ट रूप से परिभाषित हैं और कोई बेतुकापन या अन्याय नहीं है।\nव्युत्पन्न उत्तर और सिद्धांत हमेशा के लिए सही हैं एक बार निकाले गए उत्तर के बाद में फिर से लिखे जाने की चिंता करने की आवश्यकता नहीं है।\nएक मध्यम कठिनाई है हमेशा अनसुलझी समस्याएं होती हैं, और आप किसी भी समय समस्या समाधान को चुनौती दे सकते हैं।\n","date":"2022-09-23T01:56:52+09:00","image":"http://kenji.blog/p/%E3%81%AA%E3%81%9C%E6%95%B0%E5%AD%A6%E3%82%84%E8%A8%88%E7%AE%97%E6%A9%9F%E3%81%8C%E5%A5%BD%E3%81%8D%E3%81%AA%E3%82%93%E3%81%A0%E3%82%8D%E3%81%86/img_hue4a786c476ad4bcc54a52cdbffbd292f_6616634_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/%E3%81%AA%E3%81%9C%E6%95%B0%E5%AD%A6%E3%82%84%E8%A8%88%E7%AE%97%E6%A9%9F%E3%81%8C%E5%A5%BD%E3%81%8D%E3%81%AA%E3%82%93%E3%81%A0%E3%82%8D%E3%81%86/","title":"मुझे गणित और कंप्यूटर क्यों पसंद हैं"},{"content":"समुदाय को क्या चाहिए मुझे लगा कि स्क्रैच (Scratch) के समुदाय दिशानिर्देश बहुत परिष्कृत और बेहतरीन हैं। निम्नलिखित बातें लिखी गई थीं:\nहर किसी के साथ सम्मान से पेश आएं।\nसुरक्षित रहें: व्यक्तिगत या संपर्क जानकारी का खुलासा न करें।\nउपयोगी टिप्पणियाँ करें।\nरीमिक्स संस्कृति को समझें।\nईमानदार रहें।\nसाइट को एक सुखद स्थान बनाएं।\nमेरा मानना है कि ये दृष्टिकोण किसी भी समुदाय पर लागू होते हैं।\nhttps://ja.scratch-wiki.info/wiki/%E3%82%B3%E3%83%9F%E3%83%A5%E3%83%8B%E3%83%86%E3%82%A3%E3%83%BC%E3%82%AC%E3%82%A4%E3%83%89%E3%83%A9%E3%82%A4%E3%83%B3\n","date":"2022-09-23T01:37:43+09:00","image":"http://kenji.blog/p/%E3%82%B3%E3%83%9F%E3%83%A5%E3%83%8B%E3%83%86%E3%82%A3%E3%81%AB%E5%BF%85%E8%A6%81%E3%81%AA%E3%81%93%E3%81%A8/img_hueeaef9e10f0c1990dbbf990f6784494a_314802_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/%E0%A4%B8%E0%A4%AE%E0%A5%81%E0%A4%A6%E0%A4%BE%E0%A4%AF-%E0%A4%95%E0%A5%8B-%E0%A4%95%E0%A5%8D%E0%A4%AF%E0%A4%BE-%E0%A4%9A%E0%A4%BE%E0%A4%B9%E0%A4%BF%E0%A4%8F/","title":"समुदाय को क्या चाहिए"},{"content":"फेरमा (P, de Fermat, 1601-1665) 17वीं सदी के फ्रांस के महान गणितज्ञ। विश्लेषणात्मक ज्यामिति, प्रायिकता सिद्धांत और कलन की नींव रखी। वे संख्या सिद्धांत के जनक भी हैं।\nडायोफैंटस (Diophantus, 207 के आसपास-291 के आसपास) यूनानी गणितज्ञ। प्रतीकों का परिचय देने और परिमेय संख्या समाधान के अध्ययन के लिए प्रसिद्ध। उनकी पुस्तक \u0026lsquo;अरिथमेटिका\u0026rsquo; प्रमुख कृति है। समीकरणों के परिमेय समाधान खोजने के क्षेत्र को डायोफैंटाइन विश्लेषण कहा जाता है।\nयूलर (L. Euler, 1707-1783) स्विट्जरलैंड में जन्मे गणित के राजा। गणित के हर संभव क्षेत्र में उपलब्धियां हासिल कीं। 700 से अधिक शोध पत्र और 45 पुस्तकें छोड़ीं।\nलीजेंड्रे (A. M. Legendre, 1752-1833) फ्रांसीसी गणितज्ञ। संख्या सिद्धांत, अण्डाकार अभिन्न, और गुरुत्वाकर्षण समस्याओं में कई उपलब्धियां छोड़ीं। \u0026ldquo;संख्या सिद्धांत\u0026rdquo; शब्द उनकी मुख्य पुस्तक \u0026lsquo;संख्या सिद्धांत\u0026rsquo; से आया है।\nकुमेर (E. E. Kummer, 1810-1893) जर्मन गणितज्ञ। फेरमा के अंतिम प्रमेय में साइक्लोटॉमिक क्षेत्र के संख्या सिद्धांत को लागू करके बड़ी सफलता प्राप्त की।\nडेसकार्टेस (R. Descartes, 1596-1650) फ्रांस के मौलिक दार्शनिक। प्रमुख रचनाओं में \u0026lsquo;प्रणाली पर प्रवचन\u0026rsquo;, \u0026lsquo;ज्यामिति\u0026rsquo; और \u0026lsquo;ब्रह्मांड विज्ञान\u0026rsquo; शामिल हैं।\nपास्कल (B. Pascal, 1623-1662) प्रायिकता सिद्धांत और तरल पदार्थों के अध्ययन के लिए जाने जाने वाले फ्रांसीसी दार्शनिक। बाद में जैनसेनिस्टों में शामिल हो गए और धार्मिक गतिविधियों में संलग्न हुए। \u0026lsquo;पेंसेज़\u0026rsquo; उस समय की उनकी रचना है।\nबाचेट (C. G. Bachet, 1581-1638) फ्रांसीसी रईस जिन्होंने एक शौक के रूप में संख्या पहेली का अध्ययन किया। डायोफैंटस की \u0026lsquo;अरिथमेटिका\u0026rsquo; का लैटिन अनुवाद प्रकाशित किया, और उसमें अपने शोध को टिप्पणियों के रूप में शामिल किया।\nवालिस (J. Wallis, 1616-1703) अंग्रेजी गणितज्ञ। अपनी प्रमुख कृति \u0026lsquo;अनंत का अंकगणित\u0026rsquo; में गणितीय रूप में सीमा की अवधारणा दी और कलन की नींव रखने में योगदान दिया।\nब्राउनकर (W. Brouncker, 1620-1684) आयरिश रईस। रॉयल सोसाइटी (ब्रिटिश अकादमी) के पहले अध्यक्ष। वे गणित के प्रति उत्साही थे और वालिस जैसे लोगों से बातचीत करते थे।\nलैग्रेंज (J. L. Lagrange, 1736-1813) इटली में जन्मे फ्रांसीसी गणितज्ञ। यूलर के उत्तराधिकारी के रूप में बर्लिन अकादमी में गणित विभाग के निदेशक के रूप में कार्य किया। संख्या सिद्धांत और विश्लेषणात्मक यांत्रिकी में प्रमुख उपलब्धियां हासिल कीं।\nसीगल (C. L. Siegel, 1896-1981) जर्मन संख्या सिद्धांतकार। संख्याओं के विश्लेषणात्मक सिद्धांत में कई योगदान दिए।\nफाइबोनैचि (L. Fibonacci, 1175 के आसपास-1250 के आसपास) इतालवी गणितज्ञ। अपनी मुख्य कृति \u0026lsquo;लिबर एबसी\u0026rsquo; में इंडो-अरबी अंकों का उपयोग किया और उनके प्रसार के लिए काम किया। साथ ही, \u0026lsquo;बुक ऑफ स्क्वायर्स\u0026rsquo; में सर्वांगसम संख्याओं पर चर्चा की।\nबेकर (A. Baker, 1939-) ब्रिटिश संख्या सिद्धांतकार। पारलौकिक संख्या सिद्धांत में उनके योगदान के लिए उन्हें हीसुके हिरोनाका के साथ फील्ड्स मेडल से सम्मानित किया गया था।\nपोंकारे (J. Poincare, 1854-1912) अंतिम सार्वभौमिक गणितज्ञ कहलाने वाले फ्रांसीसी गणितज्ञ। ऑटोमॉर्फिक फ़ंक्शंस, गैर-यूक्लिडियन ज्यामिति, अंतर समीकरण, आकाशीय यांत्रिकी और विद्युत गतिशीलता के साथ-साथ वैज्ञानिक टिप्पणियों सहित उत्कृष्ट रचनाएँ छोड़ीं।\nमोर्डेल (L. J. Mordell, 1888-1972) अमेरिकी मूल के गणितज्ञ। माता-पिता लिथुआनिया के आप्रवासी थे। डायोफैंटाइन समीकरणों के सिद्धांत पर कई पत्र लिखे हैं, लेकिन अण्डाकार घटता के सिद्धांत में मोर्डेल का प्रमेय विशेष रूप से प्रसिद्ध है। वेइल ने इसे सामान्य बीजीय वक्रों के मामले में विस्तारित किया, और यहाँ से अंकगणितीय बीजीय ज्यामिति का विस्फोटक विकास शुरू हुआ।\nवेइल (A. Weil, 1906-) यहूदी मूल के फ्रांसीसी गणितज्ञ। जब वे छोटे थे, तो उनकी फेरमा समस्या में रुचि थी, और उन्होंने संख्या सिद्धांत में इसे लागू करने के उद्देश्य से बीजीय ज्यामिति की मौलिक समीक्षा की, और एक सख्त नींव रखी। वे गणित के इतिहास पर अपने काम के लिए भी जाने जाते हैं।\nमेर्सन (M. Mersenne, 1588-1648) फ्रांसीसी मिनिम आदेश के पुजारी। उन्होंने विभिन्न स्थानों के गणितज्ञों के बीच पत्राचार का समन्वय किया। मेर्सन संख्या भी वास्तव में फेरमा द्वारा सोची गई एक संख्या है।\nरोबरवाल (G. P. de Roberval, 1602-1675) फ्रांसीसी गणितज्ञ। उस समय, वे लगभग एकमात्र व्यक्ति थे जिन्हें एक गणितज्ञ के रूप में प्रोफेसर का पद मिला था, और वे साइक्लोइड के अपने अध्ययन के लिए जाने जाते हैं।\nएबेल (N. H. Abel, 1802-1829) नॉर्वेजियन गणितज्ञ। सामान्य 5-डिग्री समीकरणों की अघुलनशीलता, अण्डाकार कार्य सिद्धांत, और हाबिलियन अभिन्न सिद्धांत जैसी उत्कृष्ट उपलब्धियां हासिल कीं, लेकिन कम उम्र में मृत्यु हो गई।\nजैकोबी (K. G. Jacob, 1804-1851) यहूदी मूल के जर्मन गणितज्ञ। अण्डाकार कार्य सिद्धांत, थीटा फ़ंक्शन सिद्धांत, अंतर समीकरण और भिन्नताओं के कलन में प्रमुख उपलब्धियां छोड़ीं। उन्होंने एबेल के काम को दुनिया के सामने पेश किया। विज्ञान का उद्देश्य \u0026ldquo;मानव मन का सम्मान\u0026rdquo; माना और उपयोगितावाद को खारिज करने के लिए जाने जाते हैं।\nगॉस (C. F. Gauss, 1777-1855) जर्मनी में जन्मे गणित के राजा। संख्या सिद्धांत, गैर-यूक्लिडियन ज्यामिति, भूगणित, हाइपरजियोमेट्रिक श्रृंखला, सतह सिद्धांत और भू-चुंबकत्व के अध्ययन के लिए जाने जाते हैं। वे एक पूर्णतावादी थे और कहा जाता है कि जब तक काम इतना परिपूर्ण नहीं हो जाता था कि उसका आधार भी न दिखे, तब तक वे परिणाम प्रकाशित नहीं करते थे। प्रमुख कृति \u0026lsquo;अरिथमेटिकल इन्वेस्टिगेशन\u0026rsquo; आदि।\nलामे (G. Lame, 1795-1870) फ्रांसीसी गणितज्ञ। लोच के सिद्धांत, गर्मी चालन के सिद्धांत आदि में योगदान दिया।\nलिउविल (J. Liouville, 1809-1882) फ्रांसीसी गणितज्ञ। विभेदक समीकरण, पारलौकिक संख्या सिद्धांत और कार्य सिद्धांत में योगदान दिया।\nकॉची (A. L. Cauchy, 1789-1857) फ्रांसीसी गणितज्ञ। बहुत विपुल थे और सैद्धांतिक भौतिकी और गणित में कई उपलब्धियां हासिल कीं। कहा जाता है कि फ्रांस में उनका गॉस के बराबर सम्मान किया जाता है।\nगैलवा (E. Galois, 1811-1832) फ्रांसीसी गणितज्ञ। एबेल के प्रमेय को स्पष्ट किया कि समूह की अवधारणा को पेश करके 5 डिग्री या उससे अधिक के समीकरणों को आम तौर पर बीजगणितीय रूप से हल नहीं किया जा सकता है। एक द्वंद्वयुद्ध में कम उम्र में मारे गए, लेकिन अब यह ज्ञात है कि इसका कारण एक तुच्छ महिला समस्या थी।\nहेंसल (K, Hensel, 1861-1941) जर्मन गणितज्ञ। क्रोनकर के छात्र। कार्य-सैद्धांतिक तरीकों को लागू करके, उन्होंने संख्या सिद्धांत में पी-एडिक (p-adic) संख्या प्रणाली का सिद्धांत पेश किया।\nहेसे (H. Hesse, 1898-1979) जर्मन गणितज्ञ। हेंसल के छात्र, जिन्होंने p-adic विश्लेषण की नींव और इसके अनुप्रयोगों में योगदान दिया। वर्ग क्षेत्र सिद्धांत का विकास, अण्डाकार वक्रों के एल-फ़ंक्शन का अध्ययन, आदि।\nक्रोनकर (L. Kronecker, 1823-1891) यहूदी मूल के जर्मन गणितज्ञ। अण्डाकार कार्य सिद्धांत, संख्या सिद्धांत, आदि में योगदान दिया। गणित की अंकगणितीय नींव की वकालत करने के लिए जाने जाते हैं, लेकिन उनके अत्यधिक व्यक्तिपरक व्यक्तित्व के कारण, बर्लिन विश्वविद्यालय में उनके सहयोगी वीयरस्ट्रास की अनुचित आलोचना और कैंटर के रोजगार में बाधा ने उनके जीवन पर एक नकारात्मक प्रभाव डाला है।\nहिल्बर्ट (D. Hilbert, 1862-1943) जर्मन गणितज्ञ। अपरिवर्तनीय सिद्धांत, बीजीय संख्या सिद्धांत और गणित की नींव सहित गणित के हर क्षेत्र में एक विशाल पदचिह्न छोड़ा। 1900 में पेरिस में गणितज्ञों की अंतर्राष्ट्रीय कांग्रेस में उनके द्वारा प्रस्तावित 23 समस्याओं का गणित के विकास पर गहरा प्रभाव पड़ा।\nरीमैन (B. Riemann, 1826-1866) जर्मन गणितज्ञ। जटिल कार्य सिद्धांत में रीमैन सतहों की अवधारणा, रीमैन ज्यामिति आदि जैसे गणित की नींव से संबंधित प्रमुख उपलब्धियां हासिल कीं।\nफाल्टिंग्स (G. Faltings, 1954-) जर्मन गणितज्ञ। 1983 में मोर्डेल अनुमान का समाधान किया।\nविल्स (A, Wiles, 1953-) ब्रिटिश मूल के गणितज्ञ। इवासावा के मुख्य अनुमान और बर्च और स्विनर्टन-डायर अनुमान के शोध में प्रमुख योगदान दिया, इस क्षेत्र में वे अग्रणी हैं।\nसंदर्भ फ़र्मेट का अंतिम प्रमेय हल हो गया! यूलर से वाइल्स के प्रमाण तक कोदन्शा\n","date":"2022-09-22T23:06:37+09:00","image":"http://kenji.blog/p/%E6%95%B0%E5%AD%A6%E3%81%AE%E5%81%89%E4%BA%BA%E3%81%9F%E3%81%A1/img_hu9ac53943fe4f64bfe30a56c18c498d11_667839_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/%E0%A4%97%E0%A4%A3%E0%A4%BF%E0%A4%A4-%E0%A4%95%E0%A5%87-%E0%A4%AE%E0%A4%B9%E0%A4%BE%E0%A4%A8-%E0%A4%B2%E0%A5%8B%E0%A4%97/","title":"गणित के महान लोग"},{"content":"विंडो शीर्षक की गणना करना PowerShell का उपयोग करके वर्तमान में खुले विंडो के शीर्षकों की गणना करने का तरीका यहां दिया गया है।\n1 Get-Process|where{$_.mainWindowTItle}|Select-Object MainWindowTitle आउटपुट का उदाहरण\n1 2 3 4 5 6 7 8 9 MainWindowTitle --------------- Windows PowerShell Internet Explorer अनाम - पेंट अनाम - नोटपैड कार्य प्रबंधक विंडोज इनपुट एक्सपीरियंस दस्तावेज़ - वर्डपैड ","date":"2022-09-20T17:03:15+09:00","image":"http://kenji.blog/p/%E3%82%A6%E3%82%A3%E3%83%B3%E3%83%89%E3%82%A6%E3%82%BF%E3%82%A4%E3%83%88%E3%83%AB%E3%81%AE%E5%88%97%E6%8C%99/img_huc312ccf5dbdb1b6edae5dc06174466bf_18265_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/%E0%A4%B5%E0%A4%BF%E0%A4%82%E0%A4%A1%E0%A5%8B-%E0%A4%B6%E0%A5%80%E0%A4%B0%E0%A5%8D%E0%A4%B7%E0%A4%95-%E0%A4%95%E0%A5%80-%E0%A4%97%E0%A4%A3%E0%A4%A8%E0%A4%BE-%E0%A4%95%E0%A4%B0%E0%A4%A8%E0%A4%BE/","title":"विंडो शीर्षक की गणना करना"},{"content":"बड़े फ़ोल्डरों को तेज़ी से एक साथ हटाना एक्सप्लोरर में बड़े फ़ोल्डर को हटाते समय, फ़ोल्डर की सामग्री को पहले पूरी तरह से स्कैन किया जाता है और उसके बाद ही डिलीट किया जाता है, इसलिए गति धीमी होती है। यदि आप नीचे दिए गए कमांड से हटाते हैं, तो स्कैनिंग और डिलीट करना एक साथ निष्पादित होते हैं, जिससे आप बड़े फ़ोल्डरों को तेज़ी से हटा सकते हैं।\nकमांड प्रॉम्प्ट में लक्षित फ़ोल्डर के पदानुक्रम पर जाएँ। DEL /F /Q /S फ़ोल्डर_का_नाम \u0026gt; NUL निष्पादित करें। RMDIR /Q /S फ़ोल्डर_का_नाम निष्पादित करें। ","date":"2022-09-20T16:04:02+09:00","image":"http://kenji.blog/p/%E5%A4%A7%E3%81%8D%E3%81%AA%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80%E3%83%BC%E3%82%92%E9%AB%98%E9%80%9F%E4%B8%80%E6%8B%AC%E5%89%8A%E9%99%A4/img_hu0a77dc7478cd7b69f58fbada7141acfe_6495_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/%E5%A4%A7%E3%81%8D%E3%81%AA%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80%E3%83%BC%E3%82%92%E9%AB%98%E9%80%9F%E4%B8%80%E6%8B%AC%E5%89%8A%E9%99%A4/","title":"बड़े फ़ोल्डरों को तेज़ी से एक साथ हटाना"},{"content":"Salesforce Chatter सभी हटाएं कमांड यह Salesforce Chatter में सभी पोस्ट और अटैचमेंट हटाने का एक कमांड है। Developer Console खोलें, Debug मेनू से \u0026ldquo;Open Execute Anonymous Window\u0026rdquo; चुनें, निम्नलिखित कोड को पेस्ट करें और इसे निष्पादित करें। मैं व्यक्तिगत रूप से इसका उपयोग तब करता हूँ जब संगठन की स्टोरेज क्षमता कम होने लगती है।\n1 2 3 4 5 6 delete [select id from FeedItem]; delete [select id from FeedAttachment]; delete [select id from ContentDocument]; // रीसायकल बिन खाली करें database.emptyRecycleBin([select id from ContentDocument where IsDeleted = true ALL ROWS]); ","date":"2022-09-19T21:59:14+09:00","image":"http://kenji.blog/p/salesforce%E3%83%81%E3%83%A3%E3%83%83%E3%82%BF%E3%83%BC%E5%85%A8%E6%B6%88%E3%81%97%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89/img_1_hu1e12ce6e6e64d4f046faca027a6e75ab_14487_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/salesforce%E3%83%81%E3%83%A3%E3%83%83%E3%82%BF%E3%83%BC%E5%85%A8%E6%B6%88%E3%81%97%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89/","title":"Salesforce Chatter सभी हटाएं कमांड"},{"content":"Windows में रोज़ाना इस्तेमाल होने वाले कुछ छोटे टिप्स का संग्रह। अगर आप Windows का उपयोग करना शुरू कर रहे हैं, तो यह आपके लिए मददगार हो सकता है। यहाँ Windows 11 को ध्यान में रखा गया है, लेकिन इनमें से कई चीजें Windows 10 में भी काम करेंगी।\nविंडो बंद करना जब विंडो सक्रिय हो, तब Alt + F4 दबाएँ। जब विंडो सक्रिय हो, तब Ctrl + W दबाएँ। टैब या विंडो बंद करें (केवल समर्थित एप्लिकेशन के लिए)। विंडो के टाइटल बार के बाएँ आइकन पर डबल क्लिक करें। विंडो के टाइटल बार के × पर क्लिक करें। डेस्कटॉप दिखाना Win + D। 2 बार दबाने पर यह पिछली विंडो स्थिति में वापस आ जाएगा। जब आप केवल एक पल के लिए डेस्कटॉप दिखाना चाहते हैं तो यह उपयोगी है। Win + M। सभी ऐप्स को छोटा (minimize) करें। 2 बार दबाने पर भी यह वापस नहीं आएगा। वॉयस इनपुट Win + H। वॉयस इनपुट शुरू करें। वॉयस इनपुट को समाप्त करने के लिए Esc या फिर से Win + H दबाएँ। फ़ाइल एक्सप्लोरर में पुराना राइट-क्लिक मेनू दिखाना Shift + F10 या एप्लिकेशन कुंजी दबाएँ। एप्लिकेशन कुंजी कीबोर्ड के निचले दाएँ हिस्से में होती है। स्क्रीन के हिस्से को कैप्चर करना आप Win + Shift + S दबाकर एक क्षेत्र का चयन कर सकते हैं और स्क्रीन को कैप्चर कर सकते हैं। आप Win + Print Screen या केवल Print Screen दबाकर पूरी स्क्रीन को कैप्चर कर सकते हैं। (Win जोड़ने पर, कैप्चर की गई छवि C:\\Users\\उपयोगकर्ता नाम\\Pictures\\Screenshots में सहेजी जाएगी।) आप Alt + Print Screen दबाकर वर्तमान विंडो को कैप्चर कर सकते हैं। टास्कबार पर पिन किए गए ऐप्स लॉन्च करना आप Win + नंबर कुंजी दबाकर टास्कबार में पिन किए गए ऐप्स लॉन्च कर सकते हैं।\nउदाहरण के लिए, यदि आप Win + 1 दबाते हैं, तो टास्कबार के सबसे बाएँ ऐप को लॉन्च किया जाएगा। आप Win + T के साथ टास्कबार आइकन पर फ़ोकस ले जा सकते हैं, और फिर आप Win + T को कई बार दबा सकते हैं, या आप चयन को स्थानांतरित करने के लिए ← या → का उपयोग कर सकते हैं, और चयनित ऐप को लॉन्च करने के लिए Enter दबा सकते हैं। ज़ूम इन / ज़ूम आउट Win + + दबाने पर Windows मैग्निफायर चालू हो जाता है। फिर आप Win + + या - से स्क्रीन को ज़ूम इन/आउट कर सकते हैं। नोटपैड या ब्राउज़र जैसे ऐप में आप Ctrl + + या - से ज़ूम इन/आउट कर सकते हैं (केवल समर्थित ऐप्स में)। Windows को लॉक करना Win + L Ctrl + Alt + Del → Space या Enter Windows को शटडाउन करना जब आप Win + M या Win + D के साथ डेस्कटॉप पर हों, या Win + T या Win + B के साथ टास्कबार सक्रिय हो, तो Alt + F4 दबाने पर नीचे दिखाया गया डायलॉग दिखाई देगा। सुनिश्चित करें कि \u0026ldquo;शट डाउन\u0026rdquo; चुना गया है और Enter दबाएँ। Win + R → Alt + F4 → Alt + F4 भी काम करता है। आप Win + X → U → U दबाकर शटडाउन कर सकते हैं। आप कमांड प्रॉम्प्ट या Win + R से \u0026ldquo;Run\u0026rdquo; में shutdown /s /t 0 लिखकर शटडाउन कर सकते हैं। /f जोड़ने से फोर्स शटडाउन हो जाएगा। Windows को रीस्टार्ट करना जब आप Win + M या Win + D के साथ डेस्कटॉप पर हों, या Win + T या Win + B के साथ टास्कबार सक्रिय हो, तो Alt + F4 दबाने पर नीचे दिखाया गया डायलॉग दिखाई देगा। एक बार ↓ दबाएँ, \u0026ldquo;रीस्टार्ट\u0026rdquo; चुनें और Enter दबाएँ। Win + R → Alt + F4 → Alt + F4 भी काम करता है। आप Win + X → U → R दबाकर रीस्टार्ट कर सकते हैं। shutdown /r /t 0 से आप रीस्टार्ट कर सकते हैं। /f जोड़ने से फोर्स रीस्टार्ट हो जाएगा। Windows को स्लीप मोड में डालना जब आप Win + M या Win + D के साथ डेस्कटॉप पर हों, या Win + T या Win + B के साथ टास्कबार सक्रिय हो, तो Alt + F4 दबाने पर नीचे दिखाया गया डायलॉग दिखाई देगा। एक बार ↑ दबाएँ, \u0026ldquo;स्लीप\u0026rdquo; चुनें और Enter दबाएँ। Win + R → Alt + F4 → Alt + F4 भी काम करता है। आप Win + R → या कमांड प्रॉम्प्ट में rundll32.exe powrprof.dll,SetSuspendState टाइप करके हाइबरनेट (hibernate) कर सकते हैं। Windows से साइन आउट (लॉगऑफ़) करना जब आप Win + M या Win + D के साथ डेस्कटॉप पर हों, या Win + T या Win + B के साथ टास्कबार सक्रिय हो, तो Alt + F4 दबाने पर नीचे दिखाया गया डायलॉग दिखाई देगा। दो बार ↑ दबाएँ, \u0026ldquo;साइन आउट\u0026rdquo; चुनें और Enter दबाएँ। Win + R → Alt + F4 → Alt + F4 भी काम करता है। Win + X → U → I Ctrl + Alt + Del → दो बार Tab या दो बार ↓ → Enter या Space आप logoff लिखकर साइन आउट (लॉगऑफ़) कर सकते हैं। कीबोर्ड से विंडो ले जाएँ Win + ←: बाईं ओर ले जाएँ Win + →: दाईं ओर ले जाएँ Win + ↑: ऊपर ले जाएँ / अधिकतम करें (maximize) Win + ↓: नीचे ले जाएँ / छोटा करें (minimize) Win + Shift + ← या →: मल्टी-मॉनिटर के बीच ले जाएँ Win + Alt + ← या → या ↑ या ↓: बिना अधिकतम या छोटा किए विंडो ले जाएँ जब विंडो छोटी न हो, तब Alt + Space दबाएँ, फिर M दबाएँ, उसके बाद तीर कुंजियों (arrow keys) से ले जाएँ।\n※ चूँकि विंडो माउस कर्सर का अनुसरण करेगी, इसलिए यदि विंडो स्क्रीन से बाहर चली गई है तो भी आप उसे वापस ला सकते हैं। टास्क मैनेजर में प्रक्रिया को समाप्त करना आप Ctrl + Shift + Esc दबाकर टास्क मैनेजर खोल सकते हैं। आप Ctrl + Tab से टैब के बीच स्विच कर सकते हैं। Details टैब पर जाने के बाद Tab दबाएँ, फिर कीबोर्ड से टाइप करके प्रक्रिया को नाम से खोज सकते हैं। प्रक्रिया का नाम चुने जाने पर, Delete कुंजी दबाएँ और फिर प्रक्रिया को समाप्त करने के लिए Enter दबाएँ। कमांड से प्रक्रिया नाम निर्दिष्ट करके समाप्त करना आप taskkill /f /im प्रक्रिया_का_नाम टाइप करके किसी प्रक्रिया को समाप्त कर सकते हैं। उदाहरण के लिए, आप taskkill /f /im explorer.exe से फ़ाइल एक्सप्लोरर को समाप्त कर सकते हैं। टास्कबार आइकन से एक ही प्रोग्राम की कई विंडो खोलना आप टास्कबार पर Shift कुंजी दबाए रखते हुए लेफ्ट क्लिक करके एक ही प्रोग्राम की कई विंडो खोल सकते हैं। (केवल उन ऐप्स के लिए जो मल्टीपल इंस्टेंस का समर्थन करते हैं) प्रोग्राम को एडमिनिस्ट्रेटर (Administrator) के रूप में चलाना प्रोग्राम खोलते समय Ctrl + Shift दबाए रखने से प्रोग्राम एडमिनिस्ट्रेटर अधिकारों के साथ चलेगा। फ़ाइल एक्सप्लोरर खोलना आप Win + E से फ़ाइल एक्सप्लोरर खोल सकते हैं। Win + R दबाकर \u0026ldquo;Run\u0026rdquo; खोलें, explorer टाइप करें और Enter दबाएँ। आप Ctrl + Shift + N से एक नया फोल्डर बना सकते हैं। फ़ाइल एक्सप्लोरर में वर्तमान स्थान पर कमांड प्रॉम्प्ट खोलना Windows 11 में, आप राइट-क्लिक मेनू में \u0026ldquo;Terminal\u0026rdquo; से कमांड प्रॉम्प्ट खोल सकते हैं। इसके अलावा, आप एड्रेस बार में cmd टाइप करके और Enter दबाकर कमांड प्रॉम्प्ट खोल सकते हैं। क्लिपबोर्ड इतिहास दिखाना आप Win + V से क्लिपबोर्ड इतिहास देख सकते हैं। आप पहले कॉपी किए गए टेक्स्ट या छवि का चयन करके उसे फिर से कॉपी कर सकते हैं। रन (Run) खोलना आप Win + R से \u0026ldquo;Run\u0026rdquo; डायलॉग खोल सकते हैं। नीचे कुछ कमांड दिए गए हैं जिन्हें आप \u0026ldquo;Run\u0026rdquo; या कमांड प्रॉम्प्ट से चला सकते हैं।\nEdge खोलना msedge टाइप करें और Enter दबाएँ। Internet Explorer 11 (IE11) खोलना powershell.exe -Command \u0026quot;(New-Object -ComObject InternetExplorer.Application).Visible = $true\u0026quot; टाइप करें और Enter दबाएँ। टर्मिनल (Terminal) खोलना wt टाइप करें और Enter दबाएँ। कंट्रोल पैनल खोलना control टाइप करें और Enter दबाएँ। आप explorer.exe shell:::{26EE0668-A00A-44D7-9371-BEB064C98683} का उपयोग करके भी इसे खोल सकते हैं। नोटपैड खोलना notepad टाइप करें और Enter दबाएँ। कैलकुलेटर खोलना calc टाइप करें और Enter दबाएँ। पेंट (Paint) खोलना mspaint टाइप करें और Enter दबाएँ। PowerShell खोलना powershell टाइप करें और Enter दबाएँ। Visual Studio Code खोलना code टाइप करें और Enter दबाएँ। Excel खोलना excel टाइप करें और Enter दबाएँ।\n※ केवल तभी जब Excel स्थापित हो। Word खोलना winword टाइप करें और Enter दबाएँ।\n※ केवल तभी जब Word स्थापित हो। PowerPoint खोलना powerpnt टाइप करें और Enter दबाएँ।\n※ केवल तभी जब PowerPoint स्थापित हो। सिस्टम कॉन्फ़िगरेशन (System Configuration) खोलना msconfig टाइप करें और Enter दबाएँ। सिस्टम प्रॉपर्टीज़ (System Properties) खोलना sysdm.cpl टाइप करें और Enter दबाएँ। Windows का वर्ज़न जानकारी खोलना winver टाइप करें और Enter दबाएँ। ऑन-स्क्रीन कीबोर्ड (On-Screen Keyboard) खोलना osk टाइप करें और Enter दबाएँ। वर्डपैड (WordPad) खोलना wordpad या write टाइप करें और Enter दबाएँ। रजिस्ट्री एडिटर (Registry Editor) खोलना regedit टाइप करें और Enter दबाएँ। प्रोग्राम और फीचर्स (Programs and Features) खोलना explorer.exe shell:::{7b81be6a-ce2b-4676-a29e-eb907a5126c5} टाइप करें और Enter दबाएँ। कीबोर्ड प्रॉपर्टीज़ (Keyboard Properties) खोलना explorer.exe shell:::{725BE8F7-668E-4C7B-8F90-46BDB0936430} टाइप करें और Enter दबाएँ। माउस प्रॉपर्टीज़ (Mouse Properties) खोलना explorer.exe shell:::{6C8EEC18-8D75-41B2-A177-8831D59D2D50} टाइप करें और Enter दबाएँ। साउंड (Sound) सेटिंग्स खोलना explorer.exe shell:::{F2DDFC82-8F12-4CDD-B7DC-D4FE1425AA4D} टाइप करें और Enter दबाएँ। यूजर अकाउंट्स (User Accounts) खोलना explorer.exe shell:::{60632754-c523-4b62-b45c-4172da012619} टाइप करें और Enter दबाएँ। मानक संदेश बॉक्स की स्ट्रिंग कॉपी करना आप Ctrl + C के साथ एक मानक संदेश बॉक्स के टेक्स्ट को कॉपी कर सकते हैं। उपरोक्त संदेश बॉक्स को कॉपी करने पर क्लिपबोर्ड पर निम्न टेक्स्ट कॉपी हो जाएगा: 1 2 3 4 5 6 7 [Window Title] वर्डपैड [Main Instruction] क्या आप दस्तावेज़ में किए गए परिवर्तनों को सहेजना चाहते हैं? [सहेजें(S)] [सहेजें नहीं(N)] [रद्द करें] कमांड प्रॉम्प्ट के आउटपुट को क्लिपबोर्ड में कॉपी करना कमांड के अंत में | clip (पाइप+clip) जोड़ने से, जैसे कि echo \u0026quot;hello\u0026quot; | clip, आप मानक आउटपुट को क्लिपबोर्ड में कॉपी कर सकते हैं।\nफोल्डर पदानुक्रम (Folder Hierarchy) को टेक्स्ट के रूप में आउटपुट करना आप कमांड प्रॉम्प्ट में tree कमांड का उपयोग करके फोल्डर पदानुक्रम को ट्री फॉर्मेट में आउटपुट कर सकते हैं।\nआउटपुट का उदाहरण:\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 C:. ├─.idea │ └─libraries ├─binaryeditorbz ├─blog │ ├─archetypes │ ├─content │ ├─data │ ├─layouts │ ├─static │ └─themes │ └─PaperMod │ ├─.git │ │ ├─branches │ │ ├─hooks │ │ ├─info │ │ ├─logs │ │ │ └─refs │ │ │ ├─heads │ │ │ └─remotes │ │ │ └─origin │ │ ├─objects │ │ │ ├─info │ │ │ └─pack │ │ └─refs │ │ ├─heads │ │ ├─remotes │ │ │ └─origin │ │ └─tags │ ├─.github │ │ ├─ISSUE_TEMPLATE │ │ └─workflows │ ├─assets │ │ ├─css │ │ │ ├─common │ │ │ ├─core │ │ │ ├─extended │ │ │ ├─hljs │ │ │ └─includes │ │ └─js │ ├─i18n │ ├─images │ └─layouts │ ├─partials │ │ └─templates │ ├─shortcodes │ └─_default │ └─_markup (यहाँ से आगे हटाया गया) संदर्भ Windows के कीबोर्ड शॉर्टकट्स ","date":"2022-09-18T23:49:29+09:00","image":"http://kenji.blog/p/windows-%E3%81%AE%E3%82%B7%E3%83%A7%E3%83%BC%E3%83%88%E3%82%AB%E3%83%83%E3%83%88%E5%B0%8F%E6%8A%80%E9%9B%86/img_hu13a9ab529476901cdea6aea124c07798_315814_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/windows-%E3%81%AE%E3%82%B7%E3%83%A7%E3%83%BC%E3%83%88%E3%82%AB%E3%83%83%E3%83%88%E5%B0%8F%E6%8A%80%E9%9B%86/","title":"Windows के शॉर्टकट्स और टिप्स"},{"content":"मैं छवि संपादन सॉफ्टवेयर paint.net का परिचय दूंगा, जिसका मैं अक्सर अपने विकास कार्य में उपयोग करता हूं।\nउपयोगी बिंदु जो विंडोज के मानक पेंट में नहीं किए जा सकते पारदर्शिता और अपारदर्शिता को संभाल सकता है जटिल क्षेत्र आकृतियों का स्वचालित चयन कर सकता है परतों को संभाल सकता है स्तर सुधार, चमक, कंट्रास्ट आदि को समायोजित कर सकता है विभिन्न प्रभाव (ब्लर, विरूपण, शोर, आदि) लागू कर सकता है अन्य विशेषताएं उपयोग करने के लिए मुफ़्त संचालन अपेक्षाकृत हल्का है उपयोग करने में सहज और इसमें बहुत सी विचित्रताएं नहीं हैं जापानी (बहुभाषी समर्थन) यह एक उच्च-कार्यात्मक लेकिन उपयोग में आसान सॉफ्टवेयर है। मैंने स्वयं अभी तक सभी सुविधाओं में महारत हासिल नहीं की है।\nयहां इंस्टॉल करें https://www.getpaint.net/download.html\nयदि आप मुफ़्त संस्करण चुनते हैं, तो कृपया लिंक में नीचे लाल घेरे वाले भाग पर क्लिक करें।\nऐसा लगता है कि यदि आप Microsoft Store के माध्यम से इंस्टॉल करते हैं तो यह सशुल्क होगा, लेकिन इसके बदले में आप स्वचालित अपडेट प्राप्त कर सकेंगे। यहां तक कि मुफ्त संस्करण के साथ, यह आपको नवीनतम अद्यतन जानकारी के बारे में सूचित करेगा, ताकि आप काफी आसानी से अपडेट कर सकें।\n","date":"2022-09-14T19:33:31+09:00","image":"http://kenji.blog/p/paint.net%E3%81%AE%E9%AD%85%E5%8A%9B/img_hu407db422a0531b2d8a8b6fa0ee25fc6c_64699_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/paint.net%E3%81%AE%E9%AD%85%E5%8A%9B/","title":"paint.net का आकर्षण"},{"content":"Github रिपॉजिटरी में कस्टम डोमेन सेट करने के लिए, आपको अपने डोमेन की DNS सेटिंग्स को बदलना होगा। यहाँ, हम यह मानकर समझाएंगे कि आप अपने डोमेन को Onamae.com के साथ प्रबंधित करते हैं। आप अन्य रजिस्ट्रार के साथ A रिकॉर्ड्स को अधिलेखित करके समान सेटिंग्स कर सकते हैं।\nOnamae.com में DNS सेटिंग्स बदलें अपने डोमेन की DNS सेटिंग्स को बदलने के लिए, Onamae.com की प्रबंधन स्क्रीन में लॉग इन करें। लॉग इन करने के बाद, डोमेन प्रबंधन स्क्रीन पर जाएँ। एक बार जब आप डोमेन प्रबंधन स्क्रीन पर आ जाते हैं, तो DNS सेटिंग्स बदलें। DNS सेटिंग्स को बदलने के लिए, इस प्रकार कॉन्फ़िगर करें:\nhttps://www.onamae.com/ पर जाएँ और \u0026ldquo;Onamae.com Navi Login\u0026rdquo; पर क्लिक करें अपना \u0026ldquo;Onamae ID (सदस्य ID)\u0026rdquo; और \u0026ldquo;पासवर्ड\u0026rdquo; दर्ज करें और लॉगिन बटन पर क्लिक करें \u0026ldquo;नेम सर्वर सेटिंग्स\u0026rdquo; पर क्लिक करें \u0026ldquo;डोमेन DNS सेटिंग्स\u0026rdquo; पर क्लिक करें उस डोमेन का चयन करें जिसे आप सेट करना चाहते हैं और \u0026ldquo;अगला\u0026rdquo; पर क्लिक करें \u0026ldquo;DNS रिकॉर्ड सेटिंग्स का उपयोग करें\u0026rdquo; के दाईं ओर \u0026ldquo;सेट करें\u0026rdquo; पर क्लिक करें TYPE के लिए A चुनें, TTL के लिए 3600 दर्ज करें, और VALUE के लिए \u0026ldquo;185.199.108.153\u0026rdquo; दर्ज करें, फिर \u0026ldquo;जोड़ें\u0026rdquo; पर क्लिक करें 7 की तरह ही, \u0026ldquo;185.199.109.153\u0026rdquo;, \u0026ldquo;185.199.110.153\u0026rdquo; और \u0026ldquo;185.199.111.153\u0026rdquo; के लिए भी जोड़ें सुनिश्चित करें कि \u0026ldquo;DNS रिकॉर्ड सेटिंग्स के लिए नेम सर्वर परिवर्तन की पुष्टि\u0026rdquo; में चेकबॉक्स चेक किया गया है, और \u0026ldquo;सेटिंग्स स्क्रीन पर जाएँ\u0026rdquo; पर क्लिक करें यदि \u0026ldquo;DNS सेटिंग्स में अनपेक्षित परिवर्तनों को रोकने के लिए\u0026rdquo; कहने वाली स्क्रीन दिखाई देती है, तो \u0026ldquo;सेट न करें\u0026rdquo; पर क्लिक करें (आवश्यकतानुसार चुनें) सेटिंग्स विवरण की पुष्टि करें और \u0026ldquo;सेट करें\u0026rdquo; पर क्लिक करें यह DNS सेटिंग्स को पूरा करता है। इसे प्रतिबिंबित होने में लगभग 72 घंटे तक का समय लग सकता है। यदि यह 72 घंटों के बाद भी प्रतिबिंबित नहीं होता है, तो कृपया Onamae.com समर्थन से संपर्क करने का प्रयास करें। यह जांचने के लिए कि क्या सेटिंग्स आपके स्थानीय परिवेश में प्रतिबिंबित हुई हैं, निम्नलिखित कमांड चलाने का प्रयास करें। कृपया example.com भाग को उस डोमेन से बदलें जिसे आप जाँचना चाहते हैं।\nLinux, Mac के लिए 1 dig example.com +noall +answer -t A यदि परिणाम निम्न है, तो सेटिंग्स प्रतिबिंबित हो गई हैं।\n1 2 3 4 example.com. 0 IN A 185.199.108.153 example.com. 0 IN A 185.199.109.153 example.com. 0 IN A 185.199.110.153 example.com. 0 IN A 185.199.111.153 Windows के लिए 1 nslookup -q=a example.com 8.8.8.8 यदि परिणाम निम्न है, तो सेटिंग्स प्रतिबिंबित हो गई हैं।\n1 2 3 4 5 6 7 8 9 सर्वर: dns.google Address: 8.8.8.8 गैर-आधिकारिक उत्तर: नाम: example.com Addresses: 185.199.108.153 185.199.109.153 185.199.110.153 185.199.111.153 Github रिपॉजिटरी में कस्टम डोमेन सेट करें रिपॉजिटरी पेज खोलें और Settings पर क्लिक करें Pages पर क्लिक करें यदि आप रिपॉजिटरी के स्रोत कोड को वैसे ही प्रकाशित कर रहे हैं, तो Source में \u0026ldquo;Deploy from a branch\u0026rdquo; चुनें। यदि आप HUGO जैसे स्रोत कोड का निर्माण कर रहे हैं, तो \u0026ldquo;GitHub Actions\u0026rdquo; चुनें। Branch में प्रकाशित करने के लिए शाखा का चयन करें और Save पर क्लिक करें Custom domain में वह डोमेन दर्ज करें जो आपको मिला है, और Save पर क्लिक करें। यदि आवश्यक हो, तो HTTPS समर्थन को सक्षम करने के लिए \u0026ldquo;Enforce HTTPS\u0026rdquo; बॉक्स को चेक करें [PR] ","date":"2022-09-13T01:16:40+09:00","image":"http://kenji.blog/p/github%E3%83%AA%E3%83%9D%E3%82%B8%E3%83%88%E3%83%AA%E3%81%AB%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%A0%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/images/octocat_hu8f3e107f91a1c645c9aa316280652835_20372_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/github-%E0%A4%B0%E0%A4%BF%E0%A4%AA%E0%A5%89%E0%A4%9C%E0%A4%BF%E0%A4%9F%E0%A4%B0%E0%A5%80-%E0%A4%AE%E0%A5%87%E0%A4%82-%E0%A4%95%E0%A4%B8%E0%A5%8D%E0%A4%9F%E0%A4%AE-%E0%A4%A1%E0%A5%8B%E0%A4%AE%E0%A5%87%E0%A4%A8-%E0%A4%95%E0%A5%88%E0%A4%B8%E0%A5%87-%E0%A4%B8%E0%A5%87%E0%A4%9F-%E0%A4%95%E0%A4%B0%E0%A5%87%E0%A4%82/","title":"Github रिपॉजिटरी में कस्टम डोमेन कैसे सेट करें"},{"content":"dotnet.exe कमांड का उपयोग करना उपयोगी है क्योंकि यह आपको सरल प्रोग्राम बनाने की अनुमति भी देता है।\n.NET SDK इंस्टॉल करना चूंकि dotnet.exe .NET SDK में शामिल है, इसलिए सबसे पहले .NET SDK को इंस्टॉल करें। cmd.exe को एडमिनिस्ट्रेटर प्रिविलेज के साथ शुरू करें और निम्नलिखित कमांड निष्पादित करें।\n1 winget install Microsoft.DotNet.SDK.6 .gitignore जनरेट करें dotnet.exe के साथ .gitignore जनरेट करने का कमांड निम्नलिखित है।\n1 dotnet new gitignore जनरेट किया गया .gitignore निम्नलिखित है।\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 ## Ignore Visual Studio temporary files, build results, and ## files generated by popular Visual Studio add-ons. ## ## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore # User-specific files *.rsuser *.suo *.user *.userosscache *.sln.docstates # User-specific files (MonoDevelop/Xamarin Studio) *.userprefs # Mono auto generated files mono_crash.* # Build results [Dd]ebug/ [Dd]ebugPublic/ [Rr]elease/ [Rr]eleases/ x64/ x86/ [Ww][Ii][Nn]32/ [Aa][Rr][Mm]/ [Aa][Rr][Mm]64/ bld/ [Bb]in/ [Oo]bj/ [Ll]og/ [Ll]ogs/ # Visual Studio 2015/2017 cache/options directory .vs/ # Uncomment if you have tasks that create the project\u0026#39;s static files in wwwroot #wwwroot/ # Visual Studio 2017 auto generated files Generated\\ Files/ # MSTest test Results [Tt]est[Rr]esult*/ [Bb]uild[Ll]og.* # NUnit *.VisualState.xml TestResult.xml nunit-*.xml # Build Results of an ATL Project [Dd]ebugPS/ [Rr]eleasePS/ dlldata.c # Benchmark Results BenchmarkDotNet.Artifacts/ # .NET project.lock.json project.fragment.lock.json artifacts/ # Tye .tye/ # ASP.NET Scaffolding ScaffoldingReadMe.txt # StyleCop StyleCopReport.xml # Files built by Visual Studio *_i.c *_p.c *_h.h *.ilk *.meta *.obj *.iobj *.pch *.pdb *.ipdb *.pgc *.pgd *.rsp *.sbr *.tlb *.tli *.tlh *.tmp *.tmp_proj *_wpftmp.csproj *.log *.vspscc *.vssscc .builds *.pidb *.svclog *.scc # Chutzpah Test files _Chutzpah* # Visual C++ cache files ipch/ *.aps *.ncb *.opendb *.opensdf *.sdf *.cachefile *.VC.db *.VC.VC.opendb # Visual Studio profiler *.psess *.vsp *.vspx *.sap # Visual Studio Trace Files *.e2e # TFS 2012 Local Workspace $tf/ # Guidance Automation Toolkit *.gpState # ReSharper is a .NET coding add-in _ReSharper*/ *.[Rr]e[Ss]harper *.DotSettings.user # TeamCity is a build add-in _TeamCity* # DotCover is a Code Coverage Tool *.dotCover # AxoCover is a Code Coverage Tool .axoCover/* !.axoCover/settings.json # Coverlet is a free, cross platform Code Coverage Tool coverage*.json coverage*.xml coverage*.info # Visual Studio code coverage results *.coverage *.coveragexml # NCrunch _NCrunch_* .*crunch*.local.xml nCrunchTemp_* # MightyMoose *.mm.* AutoTest.Net/ # Web workbench (sass) .sass-cache/ # Installshield output folder [Ee]xpress/ # DocProject is a documentation generator add-in DocProject/buildhelp/ DocProject/Help/*.HxT DocProject/Help/*.HxC DocProject/Help/*.hhc DocProject/Help/*.hhk DocProject/Help/*.hhp DocProject/Help/Html2 DocProject/Help/html # Click-Once directory publish/ # Publish Web Output *.[Pp]ublish.xml *.azurePubxml # Note: Comment the next line if you want to checkin your web deploy settings, # but database connection strings (with potential passwords) will be unencrypted *.pubxml *.publishproj # Microsoft Azure Web App publish settings. Comment the next line if you want to # checkin your Azure Web App publish settings, but sensitive information contained # in these scripts will be unencrypted PublishScripts/ # NuGet Packages *.nupkg # NuGet Symbol Packages *.snupkg # The packages folder can be ignored because of Package Restore **/[Pp]ackages/* # except build/, which is used as an MSBuild target. !**/[Pp]ackages/build/ # Uncomment if necessary however generally it will be regenerated when needed #!**/[Pp]ackages/repositories.config # NuGet v3\u0026#39;s project.json files produces more ignorable files *.nuget.props *.nuget.targets # Microsoft Azure Build Output csx/ *.build.csdef # Microsoft Azure Emulator ecf/ rcf/ # Windows Store app package directories and files AppPackages/ BundleArtifacts/ Package.StoreAssociation.xml _pkginfo.txt *.appx *.appxbundle *.appxupload # Visual Studio cache files # files ending in .cache can be ignored *.[Cc]ache # but keep track of directories ending in .cache !?*.[Cc]ache/ # Others ClientBin/ ~$* *~ *.dbmdl *.dbproj.schemaview *.jfm *.pfx *.publishsettings orleans.codegen.cs # Including strong name files can present a security risk # (https://github.com/github/gitignore/pull/2483#issue-259490424) #*.snk # Since there are multiple workflows, uncomment next line to ignore bower_components # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) #bower_components/ # RIA/Silverlight projects Generated_Code/ # Backup \u0026amp; report files from converting an old project file # to a newer Visual Studio version. Backup files are not needed, # because we have git ;-) _UpgradeReport_Files/ Backup*/ UpgradeLog*.XML UpgradeLog*.htm ServiceFabricBackup/ *.rptproj.bak # SQL Server files *.mdf *.ldf *.ndf # Business Intelligence projects *.rdl.data *.bim.layout *.bim_*.settings *.rptproj.rsuser *- [Bb]ackup.rdl *- [Bb]ackup ([0-9]).rdl *- [Bb]ackup ([0-9][0-9]).rdl # Microsoft Fakes FakesAssemblies/ # GhostDoc plugin setting file *.GhostDoc.xml # Node.js Tools for Visual Studio .ntvs_analysis.dat node_modules/ # Visual Studio 6 build log *.plg # Visual Studio 6 workspace options file *.opt # Visual Studio 6 auto-generated workspace file (contains which files were open etc.) *.vbw # Visual Studio LightSwitch build output **/*.HTMLClient/GeneratedArtifacts **/*.DesktopClient/GeneratedArtifacts **/*.DesktopClient/ModelManifest.xml **/*.Server/GeneratedArtifacts **/*.Server/ModelManifest.xml _Pvt_Extensions # Paket dependency manager .paket/paket.exe paket-files/ # FAKE - F# Make .fake/ # CodeRush personal settings .cr/personal # Python Tools for Visual Studio (PTVS) __pycache__/ *.pyc # Cake - Uncomment if you are using it # tools/** # !tools/packages.config # Tabs Studio *.tss # Telerik\u0026#39;s JustMock configuration file *.jmconfig # BizTalk build output *.btp.cs *.btm.cs *.odx.cs *.xsd.cs # OpenCover UI analysis results OpenCover/ # Azure Stream Analytics local run output ASALocalRun/ # MSBuild Binary and Structured Log *.binlog # NVidia Nsight GPU debugger configuration file *.nvuser # MFractors (Xamarin productivity tool) working folder .mfractor/ # Local History for Visual Studio .localhistory/ # BeatPulse healthcheck temp database healthchecksdb # Backup folder for Package Reference Convert tool in Visual Studio 2017 MigrationBackup/ # Ionide (cross platform F# VS Code tools) working folder .ionide/ # Fody - auto-generated XML schema FodyWeavers.xsd ## ## Visual studio for Mac ## # globs Makefile.in *.userprefs *.usertasks config.make config.status aclocal.m4 install-sh autom4te.cache/ *.tar.gz tarballs/ test-results/ # Mac bundle stuff *.dmg *.app # content below from: https://github.com/github/gitignore/blob/master/Global/macOS.gitignore # General .DS_Store .AppleDouble .LSOverride # Icon must end with two \\r Icon # Thumbnails ._* # Files that might appear in the root of a volume .DocumentRevisions-V100 .fseventsd .Spotlight-V100 .TemporaryItems .Trashes .VolumeIcon.icns .com.apple.timemachine.donotpresent # Directories potentially created on remote AFP share .AppleDB .AppleDesktop Network Trash Folder Temporary Items .apdisk # content below from: https://github.com/github/gitignore/blob/master/Global/Windows.gitignore # Windows thumbnail cache files Thumbs.db ehthumbs.db ehthumbs_vista.db # Dump file *.stackdump # Folder config file [Dd]esktop.ini # Recycle Bin used on file shares $RECYCLE.BIN/ # Windows Installer files *.cab *.msi *.msix *.msm *.msp # Windows shortcuts *.lnk # JetBrains Rider .idea/ *.sln.iml ## ## Visual Studio Code ## .vscode/* !.vscode/settings.json !.vscode/tasks.json !.vscode/launch.json !.vscode/extensions.json विजुअल स्टूडियो के लिए कई फाइलें हैं, लेकिन इसमें ऐसे आइटम भी शामिल हैं जिन्हें आमतौर पर git पर प्रबंधित करने की आवश्यकता नहीं होती है, जैसे Mac का .DS_Store।\nसंदर्भ साइटें Windows पर .NET इंस्टॉल करें ","date":"2022-09-13T00:25:12+09:00","image":"http://kenji.blog/p/dotnet%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%A7.gitignore%E3%82%92%E7%94%9F%E6%88%90%E3%81%99%E3%82%8B/img_1_huc51d4f51d02497db3544f94dd1182dc1_19208_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/dotnet%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%A7.gitignore%E3%82%92%E7%94%9F%E6%88%90%E3%81%99%E3%82%8B/","title":"dotnet कमांड के साथ .gitignore जनरेट करें"},{"content":"जब मैंने अपने पसंदीदा गेम्स को याद किया, तो पाया कि ये सभी क्लासिक गेम्स हैं। चूंकि इनमें से कई पुराने हैं, यदि आपने अभी तक इन्हें नहीं खेला है तो कृपया इन्हें जरूर खेलें।\nगेम बॉय ओरिजिनल गेम बॉय 1989 में निंटेंडो द्वारा जारी किया गया एक हैंडहेल्ड गेमिंग कंसोल है। इसके बाद गेम बॉय कलर और गेम बॉय एडवांस जैसे उत्तराधिकारी जारी किए गए।\n① Sa・Ga2 सीक्रेट ट्रेजर लीजेंड 1990 में स्क्वायर (अब स्क्वायर एनिक्स) द्वारा जारी किया गया एक आरपीजी गेम। यह एक ऐसी कहानी है जहाँ आप विभिन्न स्तरों पर गुप्त खजाना कहलाने वाली चीजें इकट्ठा करते हैं, यह मेरा खेला हुआ पहला आरपीजी गेम है।\n② कर्बीज़ ड्रीम लैंड 1992 में निंटेंडो द्वारा जारी किया गया एक एक्शन गेम। डेवलपर एचएएल (HAL) लेबोरेटरी है। यह एक ऐसा गेम है जहाँ आप दुश्मनों को अंदर खींचते हैं और हवा खींचकर हवा में तैरते हुए आगे बढ़ते हैं। संगीत और ध्वनि प्रभाव भी काफी अच्छे हैं, जिससे यह एक लयबद्ध गेम बन जाता है।\n③ पोकेमॉन रेड और ग्रीन 1996 में निंटेंडो द्वारा जारी किया गया एक आरपीजी गेम। डेवलपर निंटेंडो ईएडी, गेम फ्रीक और क्रिएचर्स हैं। इसके बाद इसे एनीमे में बदला गया और इसने जबरदस्त लोकप्रियता हासिल की, लेकिन मैंने केवल यह पहला गेम ही खेला है।\nसुपर फैमीकॉम 1990 में निंटेंडो द्वारा जारी किया गया एक घरेलू वीडियो गेम कंसोल। इसे विदेशों में SNES (सुपर निंटेंडो एंटरटेनमेंट सिस्टम) के रूप में भी जाना जाता है।\n④ सुपर मारियो कार्ट 1992 में निंटेंडो द्वारा जारी किया गया सुपर फैमीकॉम गेम। यह एक रेसिंग गेम है जहाँ आप अपने विरोधियों पर कछुए के खोल और केले फेंककर दौड़ में बाधा डालते हुए रैंकिंग के लिए प्रतिस्पर्धा करते हैं। मुझे याद है कि मैं इसे अपने परिवार और दोस्तों के साथ खेलता था।\n⑤ ड्रैगन क्वेस्ट V: हैंड ऑफ द हेवनली ब्राइड 1992 में एनिक्स द्वारा जारी किया गया एक आरपीजी गेम। यह एक ऐसा गेम है जिसमें विवाह साथी चुनने का तत्व है, और पराजित राक्षसों को साथी बनाने का तत्व भी है। मैंने इसे तब तक खेला जब तक कि मैंने कई मेटल स्लाइम्स (Hagure Metal) को अपने दल में शामिल नहीं कर लिया।\n⑥ फाइनल फैंटेसी V 1992 में स्क्वायर द्वारा जारी किया गया एक आरपीजी गेम। इसमें जॉब (पेशे) चुनने और कौशल में महारत हासिल करने का रिप्ले तत्व है। ड्रैगन क्वेस्ट की तरह ही, मुझे गुफाओं में लगातार लेवल अप करना याद है।\n⑦ टोरनेकोज़ ग्रेट एडवेंचर: मिस्ट्री डंगऑन 1993 में चुनसॉफ्ट द्वारा जारी किया गया एक रोगलाइक गेम। मिस्ट्री डंगऑन श्रृंखला का पूर्ववर्ती। इसकी विशेषता यह है कि हर बार डंगऑन का आकार बेतरतीब ढंग से बदल जाता है। इसकी टैगलाइन है \u0026ldquo;एक आरपीजी जिसे आप 1000 बार खेल सकते हैं\u0026rdquo;।\n⑧ मिस्ट्री डंगऑन 2: शिरेन द वांडरर 1995 में चुनसॉफ्ट द्वारा जारी किया गया एक रोगलाइक गेम। मिस्ट्री डंगऑन श्रृंखला \u0026ldquo;टोरनेकोज़ ग्रेट एडवेंचर\u0026rdquo; का सीक्वल। डंगऑन के अंदर दुकानें हैं जहाँ आप आइटम खरीद सकते हैं। (यदि आप बिना खरीदे दुकान से बाहर निकलते हैं तो दुकानदार आपका पीछा करेगा।)\n⑨ MOTHER 2 (अर्थबाउंड) 1994 में निंटेंडो द्वारा जारी किया गया MOTHER श्रृंखला का दूसरा गेम। डेवलपर एप (Ape) और एचएएल (HAL) लेबोरेटरी हैं। बाद में 2006 में MOTHER 3 जारी किया गया था। यह शिगेसातो इतोई द्वारा निर्मित एक गेम है, और यह एक अनोखी दुनिया और दार्शनिक शब्दों से भरा हुआ है।\n⑩ द लीजेंड ऑफ ज़ेल्डा: ए लिंक टू द पास्ट 1991 में निंटेंडो द्वारा जारी किया गया एक एक्शन एडवेंचर गेम। यह एक ऐसा गेम है जहाँ आप विभिन्न आइटम इकट्ठा करते हुए और छोटी पहेलियों को सुलझाते हुए आगे बढ़ते हैं। इसके बाद कई सीक्वल जारी किए गए हैं। (संदर्भ)\nनिंटेंडो स्विच 2017 में निंटेंडो द्वारा जारी किया गया एक घरेलू वीडियो गेम कंसोल।\n⑪ स्प्लैटून 2 2017 में निंटेंडो द्वारा जारी किया गया एक एक्शन शूटिंग गेम। यह एक ऐसा गेम है जहाँ आप जीतने के लिए स्याही का उपयोग करके क्षेत्र पर कब्ज़ा करते हैं या विरोधियों को हराते हैं। 2022 में इसका सीक्वल स्प्लैटून 3 जारी किया गया है。\n","date":"2022-09-12T19:28:50+09:00","image":"http://kenji.blog/p/%E5%A5%BD%E3%81%8D%E3%81%AA%E3%82%B2%E3%83%BC%E3%83%A011%E9%81%B8/img_12_hu03b5dadc912359ffea73dab76258d285_471079_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/11-pasandida-games/","title":"11 पसंदीदा गेम्स"},{"content":"macOS पर .DS_Store को स्वचालित रूप से उत्पन्न होने से रोकने के लिए कमांड निम्नलिखित है। कृपया इसे टर्मिनल में चलाएँ।\n1 defaults write com.apple.desktopservices DSDontWriteNetworkStores true कमांड चलाने के बाद, फ़ाइंडर (Finder) को पुनरारंभ करें।\n1 killall Finder यदि आप सेटिंग्स को पुनर्स्थापित करना चाहते हैं, तो कृपया निम्नलिखित कमांड चलाएँ।\n1 defaults delete com.apple.desktopservices DSDontWriteNetworkStores false उपरोक्त की तरह, यदि आपने सेटिंग्स बदली हैं, तो फ़ाइंडर को पुनरारंभ करें।\n1 killall Finder ","date":"2022-09-12T16:03:42+09:00","image":"http://kenji.blog/p/macos%E3%81%A7.ds_store%E3%82%92%E8%87%AA%E5%8B%95%E7%94%9F%E6%88%90%E3%81%97%E3%81%AA%E3%81%84%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%82%8B%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89/img_hu4b5bbd3b572a7a7eb2cc4ecf633430af_78743_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/macos-par-ds-store-ko-svachalit-roop-se-utpann-hone-se-rokne-ke-liye-command/","title":"macOS पर .DS_Store को स्वचालित रूप से उत्पन्न होने से रोकने के लिए कमांड"},{"content":"वर्तमान निर्देशिका को लक्ष्य फ़ोल्डर में ले जाएँ और सबफ़ोल्डर सहित .DS_Store फ़ाइलों को एक साथ हटाने के लिए निम्नलिखित कमांड चलाएँ।\n1 Get-ChildItem . -include \u0026#39;.DS_Store\u0026#39; -Recurse -Force | Remove-Item -Force ","date":"2022-09-12T10:11:42+09:00","image":"http://kenji.blog/p/powershell%E3%81%A7.ds_store%E3%82%92%E4%B8%80%E6%8B%AC%E5%89%8A%E9%99%A4%E3%81%99%E3%82%8B/img_hu95c0724bd9a903eadf46c7f648acb682_8907_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/powershell-%E0%A4%95%E0%A5%87-%E0%A4%B8%E0%A4%BE%E0%A4%A5-.ds_store-%E0%A4%95%E0%A5%8B-%E0%A4%8F%E0%A4%95-%E0%A4%B8%E0%A4%BE%E0%A4%A5-%E0%A4%B9%E0%A4%9F%E0%A4%BE%E0%A4%8F%E0%A4%82/","title":"PowerShell के साथ .DS_Store को एक साथ हटाएं"},{"content":"HUGO में इस्तेमाल होने वाले शॉर्टकोड YouTube {{\u0026lt;youtube 123456abc\u0026gt;}}\nTwitter {{\u0026lt;twitter 123456abc\u0026gt;}}\nInstagram {{\u0026lt;instagram 123456abc\u0026gt;}}\nFlickr {{\u0026lt;flickr 123456abc\u0026gt;}}\nVimeo {{\u0026lt;vimeo 123456abc\u0026gt;}}\nअन्य Shortcodes\nअतिरिक्त जानकारी यदि आप साइट पर {{\u0026lt; foo \u0026gt;}} प्रदर्शित करना चाहते हैं, तो आपको {{\u0026lt;/* foo */\u0026gt;}} लिखना होगा।\n","date":"2022-09-11T22:59:52+09:00","image":"http://kenji.blog/p/hugo%E3%81%A7%E4%BD%BF%E3%81%88%E3%82%8B%E3%82%B7%E3%83%A7%E3%83%BC%E3%83%88%E3%82%B3%E3%83%BC%E3%83%89/img_hu415dc7e70376ac350673d0366f70ca4b_19909_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/hugo%E3%81%A7%E4%BD%BF%E3%81%88%E3%82%8B%E3%82%B7%E3%83%A7%E3%83%BC%E3%83%88%E3%82%B3%E3%83%BC%E3%83%89/","title":"HUGO में इस्तेमाल होने वाले शॉर्टकोड"},{"content":"डिफ़ॉल्ट लेआउट में इमेज को 100% चौड़ाई के साथ केंद्र में रखा गया है, लेकिन क्योंकि मुझे कभी-कभी यह थोड़ा बड़ा लगता था, मैंने इमेज को शीर्षक के नीचे रैप करने की कोशिश की, और चौड़ाई को लगभग 150px में बदल दिया।\nफ़ाइलों में परिवर्तन इस प्रकार हैं।\nblank.css मार्जिन, इमेज का आकार और टेक्स्ट डिस्प्ले लाइन को बदलने के लिए, blank.css में निम्नलिखित विवरण जोड़ें।\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 .entry-content { -webkit-line-clamp: 4; } .entry-footer { text-align: right; } .entry-cover { margin-bottom: initial; text-align: center; } .entry-cover img { border-radius: 4px; display: inline; max-width: 100%; } .post-meta { display: block; text-align: right; } post-entry.css चूंकि मैं blank.css में परिभाषा को नहीं हटा सका, इसलिए मैंने post-entry.css में निम्नलिखित स्थान पर 1 पंक्ति हटा दी।\n1 2 3 4 5 6 .entry-cover img { border-radius: var(--radius); pointer-events: none; /* width: 100%; */ ← इस लाइन को हटा दें height: auto; } list.html इमेज लेआउट को बदलने के लिए, मैंने list.html में निम्नलिखित स्थान को संशोधित किया है।\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 \u0026lt;article class=\u0026#34;{{ $class }}\u0026#34;\u0026gt; \u0026lt;!-- {{- $isHidden := (site.Params.cover.hidden | default site.Params.cover.hiddenInList) }} --\u0026gt;\u0026lt;!-- नीचे ले जाएँ --\u0026gt; \u0026lt;!-- {{- partial \u0026#34;cover.html\u0026#34; (dict \u0026#34;cxt\u0026#34; . \u0026#34;IsHome\u0026#34; true \u0026#34;isHidden\u0026#34; $isHidden) }} --\u0026gt;\u0026lt;!-- नीचे ले जाएँ --\u0026gt; \u0026lt;header class=\u0026#34;entry-header\u0026#34;\u0026gt; \u0026lt;h2\u0026gt; {{- .Title }} {{- if .Draft }}\u0026lt;sup\u0026gt;\u0026lt;span class=\u0026#34;entry-isdraft\u0026#34;\u0026gt;\u0026amp;nbsp;\u0026amp;nbsp;[draft]\u0026lt;/span\u0026gt;\u0026lt;/sup\u0026gt;{{- end }} \u0026lt;/h2\u0026gt; \u0026lt;/header\u0026gt; \u0026lt;div style=\u0026#34;display:flex;\u0026#34;\u0026gt;\u0026lt;!-- जोड़ा गया --\u0026gt; \u0026lt;div style=\u0026#34;max-width:150px;margin:11px 15px 0px 0px;\u0026#34;\u0026gt;\u0026lt;!-- जोड़ा गया --\u0026gt; {{- $isHidden := (site.Params.cover.hidden | default site.Params.cover.hiddenInList) }}\u0026lt;!-- ऊपर से लाया गया --\u0026gt; {{- partial \u0026#34;cover.html\u0026#34; (dict \u0026#34;cxt\u0026#34; . \u0026#34;IsHome\u0026#34; true \u0026#34;isHidden\u0026#34; $isHidden) }}\u0026lt;!-- ऊपर से लाया गया --\u0026gt; \u0026lt;/div\u0026gt;\u0026lt;!-- जोड़ा गया --\u0026gt; \u0026lt;div style=\u0026#34;width:100%;\u0026#34;\u0026gt;\u0026lt;!-- जोड़ा गया --\u0026gt; {{- if (ne (.Param \u0026#34;hideSummary\u0026#34;) true) }} \u0026lt;div class=\u0026#34;entry-content\u0026#34;\u0026gt; \u0026lt;p\u0026gt;{{ .Summary | plainify | htmlUnescape }}{{ if .Truncated }}...{{ end }}\u0026lt;/p\u0026gt; \u0026lt;/div\u0026gt; {{- end }} {{- if not (.Param \u0026#34;hideMeta\u0026#34;) }} \u0026lt;footer class=\u0026#34;entry-footer\u0026#34;\u0026gt; {{- partial \u0026#34;post_meta.html\u0026#34; . -}} \u0026lt;/footer\u0026gt; {{- end }} \u0026lt;a class=\u0026#34;entry-link\u0026#34; aria-label=\u0026#34;post link to {{ .Title | plainify }}\u0026#34; href=\u0026#34;{{ .Permalink }}\u0026#34;\u0026gt;\u0026lt;/a\u0026gt; \u0026lt;/div\u0026gt;\u0026lt;!-- जोड़ा गया --\u0026gt; \u0026lt;/div\u0026gt;\u0026lt;!-- जोड़ा गया --\u0026gt; \u0026lt;/article\u0026gt; ऐसा लगता है कि ऐसे कुछ अनुरोध नहीं हैं।\nhttps://github.com/adityatelange/hugo-PaperMod/discussions/159#discussioncomment-247844\nअगर मूल डेवलपर्स भी इसका समर्थन कर सकें तो बहुत अच्छा होगा।\n","date":"2022-09-11T18:50:40+09:00","image":"http://kenji.blog/p/papermod%E3%81%AE%E7%94%BB%E5%83%8F%E3%81%AE%E9%85%8D%E7%BD%AE%E5%A4%89%E6%9B%B4/images/img_hu42e770ebe6b22298fe9d1751d1191316_24734_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/papermod-%E0%A4%AE%E0%A5%87%E0%A4%82-%E0%A4%87%E0%A4%AE%E0%A5%87%E0%A4%9C-%E0%A4%B2%E0%A5%87%E0%A4%86%E0%A4%89%E0%A4%9F-%E0%A4%AC%E0%A4%A6%E0%A4%B2%E0%A4%A8%E0%A4%BE/","title":"PaperMod में इमेज लेआउट बदलना"},{"content":"परिचय PaperMod थीम Twitter Card का समर्थन करती है। हालाँकि, Twitter Card सेटिंग्स को config.toml में या प्रत्येक लेख के *.md की हेडर जानकारी में लिखा जाना चाहिए। यदि आप प्रत्येक लेख और config.toml दोनों में सेट करते हैं, तो प्रत्येक लेख की हेडर जानकारी को प्राथमिकता दी जाएगी।\nसेट कैसे करें config.toml config.toml में, [params] के तहत images नामक एक आइटम जोड़ें। images में, Twitter Card पर प्रदर्शित होने वाली छवि का पथ लिखें। यदि आप छवि को static फ़ोल्डर में रखते हैं, तो केवल फ़ाइल नाम निर्दिष्ट करना ठीक है।\n1 2 [params] images = [\u0026#34;twitter_card.jpg\u0026#34;] फ़ोल्डर संरचना\n1 2 3 4 5 6 7 8 9 10 root │ config.toml (यहाँ लिखें) ├─content │ └─posts │ └─लेख फ़ोल्डर │ │ index.md (यहाँ लिखें) │ └─images │ cover.png (यहाँ रखें) └─static twitter_card.jpg (यहाँ रखें) प्रत्येक लेख की हेडर जानकारी प्रत्येक लेख की हेडर जानकारी में, cover के तहत image नामक एक आइटम जोड़ें। यदि आप relative को true पर सेट करते हैं, तो आप इसे लेख के *.md से सापेक्ष पथ के रूप में निर्दिष्ट कर सकते हैं।\n1 2 3 cover: image: \u0026#34;images/cover.jpg\u0026#34; relative: true यदि आप इसे लेख के शीर्ष पर प्रदर्शित नहीं करना चाहते हैं यदि आप लेख के शीर्ष पर कवर छवि प्रदर्शित नहीं करना चाहते हैं, तो cover के तहत hidden नामक एक आइटम जोड़ें और इसे true पर सेट करें।\n1 2 3 4 cover: image: \u0026#34;images/cover.jpg\u0026#34; relative: true hidden: true छवि आकार के बारे में वर्तमान PaperMod विनिर्देश में, ऐसा लगता है कि Twitter Card आकार केवल summary_large_image का समर्थन करता है। summary_large_image के लिए उपयुक्त आकार (रिज़ॉल्यूशन) के कई सिद्धांत हैं, लेकिन 800 x 418 (छवि अनुपात 1.91:1) के आसपास अच्छा लगता है।\nसंदर्भ साइट 1 संदर्भ साइट 2\nयदि संभव हो, तो हम पोस्ट करने से पहले छवि का आकार बदलने की सलाह देते हैं।\nसेटिंग्स की जांच कैसे करें Twitter Card सेटिंग्स की जांच करने के लिए, Twitter Card Validator का उपयोग करें। हालाँकि, चूंकि मेरे वातावरण में पूर्वावलोकन ठीक से प्रदर्शित नहीं हुआ था, यदि पूर्वावलोकन प्रदर्शित नहीं होता है, तो मैं पोस्ट करने से पहले एक बार निजी खाते आदि का उपयोग करके इसकी जांच करने की सलाह देता हूं।\n","date":"2022-09-10T18:41:22+09:00","image":"http://kenji.blog/p/papermod%E3%81%A7twitter-card%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/images/img_hu5e280b2f775d1811bb256626ef7709c6_973665_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/papermod%E3%81%A7twitter-card%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/","title":"PaperMod में Twitter Card कैसे सेट करें"},{"content":"परिचय GitHub Copilot, GitHub द्वारा विकसित एक AI-आधारित कोड कंप्लीशन टूल है। आप डेवलपमेंट एनवायरनमेंट IntelliJ IDEA में GitHub Copilot प्लगइन इंस्टॉल करके IntelliJ IDEA में GitHub Copilot का उपयोग कर सकते हैं। सक्रियण के लिए एक GitHub खाते की आवश्यकता होती है।\nइंस्टॉल कैसे करें IntelliJ IDEA के File मेनू से Settings चुनें Plugins चुनें और सर्च में \u0026ldquo;GitHub Copilot\u0026rdquo; खोजें इंस्टॉल बटन से इंस्टॉल करें IntelliJ IDEA को पुनरारंभ करने के लिए Restart IDE बटन दबाएं IntelliJ IDEA को पुनरारंभ करने के बाद स्थापना पूर्ण हो जाती है। सक्रियण नीचे दाएं कोने में स्थित आइकन पर क्लिक करें Login to Github पर क्लिक करें Copy and Open बटन पर क्लिक करें ब्राउज़र खुल जाएगा। यदि आपने GitHub में लॉग इन नहीं किया है, तो लॉग इन करें, Ctrl+V के साथ कोड पेस्ट करें और Continue बटन पर क्लिक करें Authorize GitHub Copilot Plugin बटन पर क्लिक करें यदि उपरोक्त स्क्रीन दिखाई देती है, तो सक्रियण पूर्ण हो गया है। इसका उपयोग कैसे करें जब आप IntelliJ IDEA एडिटर में कुछ अक्षर टाइप करते हैं, तो GitHub Copilot आपके कोड को पूरा करने का सुझाव देना शुरू कर देगा। कृपया AI द्वारा शक्तिशाली ऑटो-कंप्लीशन सुविधा का आनंद लें!\n","date":"2022-09-10T09:44:55+09:00","image":"http://kenji.blog/p/intellij-idea%E3%81%A7github-copilot%E3%82%92%E4%BD%BF%E3%81%86/images/img_hu78c7d99017ff4692861292fedffeefef_291492_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/intellij-idea-%E0%A4%AE%E0%A5%87%E0%A4%82-github-copilot-%E0%A4%95%E0%A4%BE-%E0%A4%89%E0%A4%AA%E0%A4%AF%E0%A5%8B%E0%A4%97-%E0%A4%95%E0%A4%B0%E0%A4%A8%E0%A4%BE/","title":"IntelliJ IDEA में GitHub Copilot का उपयोग करना"},{"content":"परिचय Go एक अपेक्षाकृत नई प्रोग्रामिंग भाषा है जिसे Google ने 2009 में जारी किया था। Go के कंपाइलर, टूल और लाइब्रेरी ओपन सोर्स के रूप में उपलब्ध हैं। इसके अलावा, Go, C या Java जैसी एक स्टैटिकली टाइप्ड भाषा है, लेकिन यह C भाषा की तरह पॉइंटर्स का उपयोग नहीं करती है।\nइंस्टॉलेशन विधि Go इंस्टॉल करें\nउपरोक्त साइट पर प्रत्येक प्लेटफॉर्म के लिए इंस्टॉलर उपलब्ध हैं।\nस्क्रीन पर दिए गए निर्देशों का पालन करते हुए इंस्टॉलेशन के साथ आगे बढ़ें। इंस्टॉलेशन पूरा हो गया। यह आसान है, है ना?\nपहला प्रोग्राम निम्नलिखित प्रोग्राम को hello.go के रूप में सेव करें।\n1 2 3 4 5 6 7 package main import \u0026#34;fmt\u0026#34; func main() { fmt.Printf(\u0026#34;Hello World\\n\u0026#34;) } कमांड प्रॉम्प्ट या टर्मिनल से go run hello.go चलाने पर, Hello, world! आउटपुट होगा।\nकंपाइल करने के लिए, go build hello.go चलाने पर hello.exe उत्पन्न होगा। hello.exe चलाने पर, Hello, world! आउटपुट होगा।\nआप वेब पेज पर भी कोड चला सकते हैं https://go.dev/play/\nजापानी दस्तावेज़ http://go.shibu.jp/\nGo सीखने के लिए आवश्यक स्पष्टीकरण उपरोक्त लिंक (जापानी अनुवाद संस्करण) में समेकित किए गए हैं। Go से संबंधित तकनीक इतनी खुली और समृद्ध है कि पेपर टेक्स्ट खरीदने की लगभग कोई आवश्यकता नहीं है।\nतो फिर, अपने Go जीवन का आनंद लें!\n","date":"2022-09-10T00:48:17+09:00","image":"http://kenji.blog/p/go%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/images/cover_hu90f0e026fa77d6f7268f9adc11e245d4_5801_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/go-kaise-install-karen/","title":"Go कैसे इंस्टॉल करें"},{"content":"हेगेल का द्वंद्वात्मकता क्या है हेगेल ने उस विरोधाभास के सकारात्मक अर्थ को पकड़ा जिसमें तर्क गिरता है, और तर्क दिया कि, सामान्य रूप से, सभी परिमित चीजें एक प्रेरक शक्ति के रूप में स्वयं में निहित विरोधाभास के साथ अपने विपरीत उत्पन्न करती हैं, और उस मध्यस्थता के माध्यम से, दोनों एक उच्च चरण में ऊपर उठ जाते हैं, जिससे यह वास्तविक दुनिया में सभी आंदोलनों का सिद्धांत बन जाता है। (कोटबैंक से)\nमेरी व्याख्या यह है कि वास्तविक दुनिया में सभी विचारधाराएं और विचार केवल एकतरफा सही नहीं हैं, बल्कि उनके भीतर हमेशा विरोधाभास होते हैं, और उन विरोधी संरचनाओं को समझने या शामिल करने से, मान्यता एक उच्च स्तर तक विकसित होती है।\nमुझे लगता है कि यह न केवल लोगों के सोचने के तरीके पर लागू होता है, बल्कि प्राकृतिक दुनिया की सभी घटनाओं पर भी लागू होता है।\nसभी पदार्थों के लिए, यदि कोई क्रिया होती है, तो प्रतिक्रिया होती है, यदि सभी वस्तुएं चलती हैं, तो घर्षण काम करता है, और गुरुत्वाकर्षण न केवल सूर्य और पृथ्वी बल्कि सभी पदार्थों को एक दूसरे को प्रभावित करता है। नदियों का प्रवाह और हवा का प्रवाह केवल एक दिशा में नहीं बहता है, बल्कि विभिन्न बलों के अधीन होता है, और प्रवाह हर पल बदलता रहता है।\nतकनीकी रूप से कहें तो, कंप्यूटर प्रोग्रामों के अंदर भी हमेशा बग होते हैं, और उन्हें हटाकर, वे उच्च स्तर के प्रोग्राम बन जाते हैं। मुझे लगता है कि यह कहना सुरक्षित है कि बग के बिना एक प्रोग्राम एक उबाऊ प्रोग्राम है जो विकसित नहीं हो रहा है। यह अंततः अप्रचलित हो जाएगा।\nआसपास का वातावरण समय के साथ लगातार बदल रहा है। आत्म-विरोधाभासों को अनदेखा करने या अजीब तरह से सही ठहराने, या अपने सोचने के तरीके को ठीक करने के बजाय, मैं हमेशा अपने सोचने और चीजों को देखने के तरीके की समीक्षा करना चाहता हूं, और अपनी सोच को लचीले ढंग से बदलना चाहता हूं।\n","date":"2022-09-09T23:13:19+09:00","image":"http://kenji.blog/p/%E3%83%98%E3%83%BC%E3%82%B2%E3%83%AB%E3%81%AE%E5%BC%81%E8%A8%BC%E6%B3%95/images/img_huf44f6813611a65fb4bf58b8763a4133a_83624_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/hegel-ki-dvandvatmakata/","title":"हेगेल का द्वंद्वात्मकता (Hegel's Dialectics)"},{"content":"मैं सालों बाद कामुकुरा (रामन) गया।\nहरी प्याज किमची रामन\nयह स्वादिष्ट था। यह एक ऐसा स्वाद है जिसे आप कभी-कभी खाना चाहते हैं।\n","date":"2022-09-09T21:45:19+09:00","image":"http://kenji.blog/p/%E4%BD%95%E5%B9%B4%E3%81%8B%E3%81%B6%E3%82%8A%E3%81%AE%E7%A5%9E%E5%BA%A7%E3%81%8B%E3%82%80%E3%81%8F%E3%82%89%E3%83%A9%E3%83%BC%E3%83%A1%E3%83%B3/images/img2_hu5b1c55ddd3b998ef9e1e7da203dc1109_434676_120x120_fill_q75_box_smart1.jpg","permalink":"http://kenji.blog/hi/p/%E4%BD%95%E5%B9%B4%E3%81%8B%E3%81%B6%E3%82%8A%E3%81%AE%E7%A5%9E%E5%BA%A7%E3%81%8B%E3%82%80%E3%81%8F%E3%82%89%E3%83%A9%E3%83%BC%E3%83%A1%E3%83%B3/","title":"सालों बाद कामुकुरा (रामन)"},{"content":"मैंने Rust में अभाज्य संख्याओं की गणना करने के लिए एक प्रोग्राम लिखा है।\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 fn main() { let max = 1000; let mut primes = vec![2]; let mut n = 3; loop { let mut is_prime = true; for p in \u0026amp;primes { if n % p == 0 { is_prime = false; break; } } if is_prime { primes.push(n); } n += 2; if n \u0026gt; max { break; } } for p in \u0026amp;primes { println!(\u0026#34;{}\u0026#34;, p); } } ","date":"2022-09-09T07:08:49+09:00","image":"http://kenji.blog/p/rust%E3%81%A7%E7%B4%A0%E6%95%B0%E3%82%92%E5%88%97%E6%8C%99%E3%81%99%E3%82%8B/images/img_hu5b7e04bd1dc0eefb45fd25ac4219842a_9797_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/rust-%E0%A4%AE%E0%A5%87%E0%A4%82-%E0%A4%85%E0%A4%AD%E0%A4%BE%E0%A4%9C%E0%A5%8D%E0%A4%AF-%E0%A4%B8%E0%A4%82%E0%A4%96%E0%A5%8D%E0%A4%AF%E0%A4%BE%E0%A4%93%E0%A4%82-%E0%A4%95%E0%A5%80-%E0%A4%97%E0%A4%A3%E0%A4%A8%E0%A4%BE/","title":"Rust में अभाज्य संख्याओं की गणना"},{"content":"शांत जैज़ प्लेलिस्ट ","date":"2022-09-08T17:40:26+09:00","image":"http://kenji.blog/p/%E8%90%BD%E3%81%A1%E7%9D%80%E3%81%84%E3%81%9F%E3%82%B8%E3%83%A3%E3%82%BA/images/img_huddf559c95c5d412c9cd6a131d9beecb1_1507891_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/%E0%A4%B6%E0%A4%BE%E0%A4%82%E0%A4%A4-%E0%A4%9C%E0%A5%88%E0%A4%9C%E0%A4%BC/","title":"शांत जैज़"},{"content":"अप-टेम्पो (Up-tempo)\nElectro Swing Collection Electro Swing Mix 2019 Vol.3 lofi hip hop radio(Live) LoFi जैज़ यही वह प्रेरणा है जिससे मैं हर दिन कड़ी मेहनत से पढ़ाई करता हूँ | 5 hour lofi hip hop / study / work / chill beats ","date":"2022-09-08T08:39:03+09:00","image":"http://kenji.blog/p/%E3%82%AB%E3%83%95%E3%82%A7%E9%9F%B3%E6%A5%BD/images/img_huc541091b3f264af05ecf07abbd33454f_519675_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/cafe-music/","title":"कैफे संगीत"},{"content":"अगर आपके प्रयासों को पहचाना नहीं जाता तो कोई बात नहीं 45年の人生で手に入れた。ぐずぐずした時、いつも背中を押してくれる言葉たち。 pic.twitter.com/EQgmujOSpg\n\u0026mdash; いれぶん (@eleven_s_s) September 6, 2022 मूल्य कहीं अधिक विविध हैं युसुके नरीता \u0026ldquo;मनुष्यों द्वारा झेले जाने वाले दुर्भाग्य में से\u0026rdquo;\nआपके कार्य बिल्कुल वैसे ही परिलक्षित होते हैं हयाओ मियाज़ाकी के विचार ","date":"2022-09-08T02:22:52+09:00","image":"http://kenji.blog/p/%E3%83%A2%E3%83%81%E3%83%99%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%92%E4%B8%8A%E3%81%92%E3%81%A6%E3%81%8F%E3%82%8C%E3%82%8B%E5%8B%95%E7%94%BB/images/img_hu390d0c8e5d67e265b0c5aa8749ccc95d_193793_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/%E3%83%A2%E3%83%81%E3%83%99%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%92%E4%B8%8A%E3%81%92%E3%81%A6%E3%81%8F%E3%82%8C%E3%82%8B%E5%8B%95%E7%94%BB/","title":"वीडियो जो आपकी प्रेरणा बढ़ाते हैं"},{"content":"मैं अपने वर्तमान मुख्य पीसी के विनिर्देशों को लिख रहा हूँ।\nआइटम का नाम मूल्य प्रोसेसर Intel Core i7-8700K CPU @ 3.70GHz 3.70 GHz मेमोरी 32.0 GB सिस्टम का प्रकार 64-बिट ऑपरेटिंग सिस्टम, x64-आधारित प्रोसेसर ओएस Windows 11 Enterprise (संस्करण 21H2, बिल्ड 22000.856) निर्माता Mouse Computer Co., Ltd. ","date":"2022-09-08T01:55:00+09:00","image":"http://kenji.blog/p/%E4%BB%8A%E3%81%AE%E3%83%A1%E3%82%A4%E3%83%B3pc%E3%82%B9%E3%83%9A%E3%83%83%E3%82%AF/images/img_hu731502385ac0a573daf05287c34d796a_240757_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/%E0%A4%B5%E0%A4%B0%E0%A5%8D%E0%A4%A4%E0%A4%AE%E0%A4%BE%E0%A4%A8-%E0%A4%AE%E0%A5%81%E0%A4%96%E0%A5%8D%E0%A4%AF-%E0%A4%AA%E0%A5%80%E0%A4%B8%E0%A5%80-%E0%A4%B5%E0%A4%BF%E0%A4%A8%E0%A4%BF%E0%A4%B0%E0%A5%8D%E0%A4%A6%E0%A5%87%E0%A4%B6/","title":"वर्तमान मुख्य पीसी विनिर्देश"},{"content":"Google Material Symbols and Icons https://fonts.google.com/icons GitHub Octicons https://primer.style/octicons/ Sargam Icons https://sargamicons.com/ हजारों मुफ्त आइकन https://icon-icons.com/ flaticon https://www.flaticon.com/ ICONFINDER https://www.iconfinder.com/ iconfont https://www.iconfont.cn/ open-iconic https://github.com/iconic/open-iconic ","date":"2022-09-07T16:46:56+09:00","image":"http://kenji.blog/p/%E3%82%B7%E3%83%B3%E3%83%97%E3%83%AB%E3%81%AA%E3%82%A2%E3%82%A4%E3%82%B3%E3%83%B3%E9%9B%86%E3%82%B5%E3%82%A4%E3%83%88/img_2_hu3b0847646c9f4aefba079615d2db35cd_21041_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/saral-icon-sangrah-site/","title":"सरल आइकन संग्रह साइटें"},{"content":"मैंने PaperMod थीम की रंग योजना बदल दी है। परिवर्तन विधि के लिए मैंने निम्नलिखित का संदर्भ लिया।\nhttps://github.com/adityatelange/hugo-PaperMod/discussions/645\nCSS का पथ नीचे दिया गया है।\nthemes/PaperMod/assets/css/extended/blank.css\n1 2 3 4 5 6 7 8 9 10 11 12 13 :root { --entry: #fbf7ef; --primary: rgba(113, 103, 91, 1.00); --secondary: rgba(113, 103, 91, 0.95); --tertiary: rgba(113, 103, 91, 0.50); --content: rgba(113, 103, 91, 0.85); --hljs-bg: #34231B; --code-bg: #ebe4d7; --border: #fdfaf5; --theme: #fbf7ef; } .dark { } डार्क मोड के लिए अभी कोई बदलाव नहीं।\n","date":"2022-09-07T15:30:21+09:00","image":"http://kenji.blog/p/papermod%E3%81%AE%E9%85%8D%E8%89%B2%E5%A4%89%E6%9B%B4/img_hu74d0722ae4db8273d5e32f97bb10689d_10515_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/papermod%E3%81%AE%E9%85%8D%E8%89%B2%E5%A4%89%E6%9B%B4/","title":"PaperMod की रंग योजना बदलना"},{"content":"जब माँ बीमार हो गई और बिस्तर पर थी, रात के खाने या नहाने की तैयारी करते समय, मैंने अपनी बेटी (2 साल) से पूछा: \u0026ldquo;क्या हमें माँ से यह करने के लिए कहना चाहिए?\u0026rdquo;, उसने जवाब दिया: \u0026ldquo;नहीं, वह सो रही है!\u0026rdquo; और मुझे लगा कि वह अपने तरीके से विचारशील हो रही थी।\nमुझे यह देखकर खुशी हुई कि वह एक ऐसी व्यक्ति बन रही है जो दूसरों की परवाह करती है।\n","date":"2022-09-07T04:40:52+09:00","image":"http://kenji.blog/p/%E5%AD%90%E4%BE%9B%E3%81%AE%E3%81%9D%E3%82%93%E3%81%9F%E3%81%8F/images/img_hud61af1a628f352ef1641794e80547155_144893_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/bacche-ka-vichar/","title":"बच्चे का विचार"},{"content":"लोकप्रिय हो रहे व्यवसायों की खोज करें लोकप्रिय हो रहे व्यवसायों के बारे में हॉट पेपर के अंदरूनी सूत्रों और एकाउंटेंट से पूछें ऐसे व्यवसायों में प्रवेश न करें जो पहले से ही संतृप्त हैं और जिनमें मजबूत प्रतियोगी हैं केवल उन्हीं व्यवसायों में प्रवेश करें जहाँ आप ग्राहकों को आकर्षित करने के लिए आश्वस्त हैं (उन व्यवसायों में प्रवेश न करें जहाँ मौजूदा व्यवसाय विशेष ग्राहक आकर्षण विधियों (जिनकी नकल नहीं की जा सकती) का उपयोग करते हैं) पूरी तरह से नकल करें प्रवेश करने से पहले व्यावसायिक तर्क पर शोध करें पूरी तरह से नकल करें फिर उसके आधार पर सुधार करें व्यवस्थित करें सब कुछ मैनुअल करें ताकि कोई भी इसे बिना किसी प्रयास के कर सके बिक्री बढ़ाने (ग्राहकों की संख्या, प्रति ग्राहक खर्च) और खर्च कम करने (कार्मिक व्यय, विज्ञापन लागत) के विचारों के बारे में सोचें और उन्हें व्यवस्थित करें प्रबंधन दर्शन प्रबंधक का दर्शन \u0026ldquo;कंपनी के मुनाफे को अधिकतम करना\u0026rdquo; है, न इससे अधिक और न ही इससे कम सामाजिक योगदान या कर्मचारियों द्वारा पसंद किए जाने को प्रबंधन दर्शन बनाना सही नहीं है (सोचें कि ये चीजें बाद में स्वाभाविक रूप से आएंगी) ","date":"2022-09-07T02:36:11+09:00","image":"http://kenji.blog/p/%E7%B5%8C%E5%96%B6%E8%80%85%E3%83%A1%E3%83%A2/images/img_hu8e43d40b92b6a98e30d3360e9f3ab85a_162130_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/management-notes/","title":"प्रबंधन नोट्स"},{"content":"मैं उन चीजों को व्यवस्थित करना चाहता हूं जो मुझे जापानी समाज के बारे में अजीब लगती हैं और मैं क्या सोचता हूं।\nछात्रवृत्ति के बारे में जब जापान में छात्रवृत्ति की बात आती है, तो उनमें से अधिकांश ब्याज के साथ आती हैं और उन्हें वापस चुकाना पड़ता है (छात्र ऋण)। इसके अलावा, 1950 से विश्वविद्यालय की ट्यूशन फीस में लगातार वृद्धि हुई है, और छात्रवृत्ति प्राप्त करने की दर में भी वृद्धि की प्रवृत्ति है।\nदूसरी ओर, हाल ही में औसत कुल उधार राशि 3.24 मिलियन येन तक पहुंच गई है।\nजापान छात्र सेवा संगठन के छात्रवृत्ति उपयोगकर्ताओं में, औसत कुल उधार राशि 3,243,000 येन है। संदर्भ\nयदि कोई 22 वर्ष की आयु में विश्वविद्यालय से स्नातक होता है, और उस पर 3 मिलियन येन तक का कर्ज है, तो स्वाभाविक रूप से शादी की उम्र में देरी होगी, और बच्चों को जन्म देना अधिक कठिन होगा, जो मुझे लगता है कि जापान की गिरती जन्म दर की समस्या के कारणों में से एक है।\nव्यक्तिगत जिम्मेदारी के सिद्धांत का प्रसार यह एक धारणा अधिक हो सकती है, लेकिन मुझे लगता है कि \u0026ldquo;दूसरों का व्यवसाय दूसरों का व्यवसाय है\u0026rdquo; का एक ठंडा सामाजिक दृष्टिकोण है। दशकों तक मंदी के साथ, ऐसी प्रवृत्ति होना अपरिहार्य हो सकता है, लेकिन उपरोक्त छात्रवृत्ति समस्या के साथ भी, इसे समग्र रूप से समाज की समस्या के रूप में नहीं माना जाता है, और मुझे लगता है कि युवाओं और अल्पसंख्यकों की आवाज़ें, जिनके पास चुनावों में कम वोट हैं, को अनदेखा कर दिया जाता है। भले ही, लंबी अवधि में, यह पूरे जापान के लिए बहुत महत्वपूर्ण समस्या है।\nअत्यधिक प्रतिस्पर्धा की ओर जाने के बजाय, यदि कोई व्यक्ति, पीढ़ी या समूह परेशानी में है तो एक साथ मदद करने की भावना मुझे लगता है कि देश के लिए बहुत महत्वपूर्ण है। (हालांकि, जब सरकार \u0026ldquo;स्वयं सहायता और पारस्परिक सहायता\u0026rdquo; पर जोर देती है, तो मुझे थोड़ा अजीब लगता है। मैं चाहता हूं कि वे कमजोर लोगों की मदद करने में पहल करें।)\n(यह लेख समय-समय पर अपडेट किया जाएगा।)\nएआई के नजरिए से जापानी लोगों की विशेषताएं हां, जापानी लोगों की विशेषताएं इस प्रकार हैं।\n【सकारात्मक पहलू】\nजापानी लोगों में विनम्र होने और दूसरों के प्रति सम्मान और व्यवहार पर ध्यान देने की संस्कृति है। समय की पाबंदी बहुत सख्त है, और समय रखने का बहुत सम्मान किया जाता है। एक मजबूत सामूहिकतावादी मानसिकता है, और टीम वर्क और सहयोग को महत्व दिया जाता है। स्वच्छता महत्वपूर्ण है, और सार्वजनिक स्थानों पर शिष्टाचार और सफाई के प्रति मेहनती होने की प्रवृत्ति है। उपहार और स्मृति चिन्ह को महत्व दिया जाता है, और धन्यवाद देने की संस्कृति व्यापक है। 【नकारात्मक पहलू】\nकभी-कभी वे व्यक्तिगत राय व्यक्त करने में अच्छे नहीं होते हैं और विचारों के टकराव से बचने की प्रवृत्ति रखते हैं। यह काम करने की बहुत सख्त संस्कृति है, जहां कभी-कभी ओवरटाइम काम और अधिक काम (करोशी) से मृत्यु को समस्याओं के रूप में देखा जाता है। विदेशियों के खिलाफ भेदभाव और बहिष्कार की समस्याएं बनी हुई हैं, और अंतर्राष्ट्रीय समुदाय के साथ सद्भाव कभी-कभी एक मुद्दा बन जाता है। सत्तावाद की ओर झुकाव है, और यह अक्सर बताया जाता है कि वे बिना शर्त अपने वरिष्ठों या बड़ों की राय स्वीकार करते हैं। कभी-कभी एक बंद समाज होने के लिए उनकी आलोचना की जाती है, जिसमें बाहरी संस्कृति या मूल्यों को स्वीकार करने में कठिनाई होने की प्रवृत्ति होती है। ","date":"2022-09-06T02:24:11+09:00","image":"http://kenji.blog/p/%E6%97%A5%E6%9C%AC%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6%E6%80%9D%E3%81%86%E3%81%93%E3%81%A8/images/img_hu105ea1ef9d38a7cb8901ff6c857b887e_168534_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/%E0%A4%9C%E0%A4%BE%E0%A4%AA%E0%A4%BE%E0%A4%A8-%E0%A4%95%E0%A5%87-%E0%A4%AC%E0%A4%BE%E0%A4%B0%E0%A5%87-%E0%A4%AE%E0%A5%87%E0%A4%82-%E0%A4%AE%E0%A5%87%E0%A4%B0%E0%A5%87-%E0%A4%B5%E0%A4%BF%E0%A4%9A%E0%A4%BE%E0%A4%B0/","title":"जापान के बारे में मेरे विचार"},{"content":"परिचय Rust एक अपेक्षाकृत नई प्रोग्रामिंग भाषा है जो आपको आधुनिक सिंटैक्स के साथ तेज़ और मेमोरी-कुशल मॉड्यूल लिखने की अनुमति देती है। यह मल्टी-प्लेटफॉर्म का समर्थन करती है और इसका उपयोग WebAssembly और एम्बेडेड सिस्टम की दुनिया में भी किया जाता है। प्रसिद्ध रूप से, इसे Firefox, DropBox और Cloudflare द्वारा अपनाया गया है।\nयह C++ के विकल्प के रूप में भी ध्यान आकर्षित कर रहा है।\nकैसे इंस्टॉल करें Rust इंस्टॉल करें\nउपरोक्त वेबसाइट प्रत्येक प्लेटफॉर्म के लिए इंस्टॉलेशन निर्देश प्रदान करती है।\nपहला प्रोग्राम निम्नलिखित प्रोग्राम को main.rs के रूप में सहेजें।\n1 2 3 fn main() { println!(\u0026#34;Hello, world!\u0026#34;); } कमांड प्रॉम्प्ट या टर्मिनल से rustc main.rs चलाने पर, यह संकलित हो जाएगा। ./main (Windows पर main.exe) चलाने से Hello, world! आउटपुट होगा।\nजापानी दस्तावेज़ीकरण The Rust Programming Language जापानी संस्करण\nRust सीखने के लिए आवश्यक स्पष्टीकरण उपरोक्त लिंक (जापानी अनुवाद संस्करण) में संकलित हैं। यह इतना व्यापक है कि आपको Rust के बारे में कोई किताब खरीदने की आवश्यकता नहीं है।\nयदि आप इसे वेब पर आजमाना चाहते हैं यदि आप कंपाइलर स्थापित किए बिना इसे वेब पर आजमाना चाहते हैं, तो आप The Rust Playground का उपयोग कर सकते हैं। कोड दर्ज करने और \u0026ldquo;Run\u0026rdquo; बटन दबाने के बाद, यह वेब पर संकलित और निष्पादित किया जाएगा।\n","date":"2022-09-06T00:12:36+09:00","image":"http://kenji.blog/p/rust%E3%81%AE%E3%81%AF%E3%81%98%E3%82%81%E3%81%8B%E3%81%9F/images/rust_logo_huefc2d075e966b0edc0b7186c50038553_22411_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/rust-%E0%A4%95%E0%A5%87-%E0%A4%B8%E0%A4%BE%E0%A4%A5-%E0%A4%95%E0%A5%88%E0%A4%B8%E0%A5%87-%E0%A4%B6%E0%A5%81%E0%A4%B0%E0%A5%82-%E0%A4%95%E0%A4%B0%E0%A5%87%E0%A4%82/","title":"Rust के साथ कैसे शुरू करें"},{"content":"घर का इंटरनेट वातावरण Flet\u0026rsquo;s Hikari से J:COM में बदला गया एक परिचित की सिफारिश पर, मैंने घर की इंटरनेट लाइन को Flet\u0026rsquo;s Hikari से J:COM में बदल दिया। कारण हैं,\nमासिक शुल्क सस्ता हो गया है। 3,619 येन → 2,180 येन इंटरनेट की गति 100MBps से बढ़कर 320MBps हो गई है ये बिंदु।\nउपयोग के बाद की छाप बदले हुए लगभग एक सप्ताह हो गया है, और अब तक लगभग कोई समस्या नहीं है। नीचे मैंने कुछ बातें लिखी हैं जो मुझे थोड़ी अजीब लगीं।\nवास्तव में बदलने के बाद मैंने देखा कि डाउनलोड की गति निश्चित रूप से तेज हो गई, 60MBps से बढ़कर लगभग 320MBps हो गई। हालांकि, अपलोड की गति, जो Flet\u0026rsquo;s Hikari के समय 40MBps थी, घटकर लगभग 10MBps हो गई। यह J:COM की तरफ से एक विनिर्देश प्रतीत होता है। चूंकि मैं वर्तमान में कोई स्ट्रीमिंग या बड़ी मात्रा में डेटा अपलोड नहीं कर रहा हूं, इसलिए मैं स्थिति देखूंगा।\nइसके अलावा, हाल ही में मैं और मेरा परिवार मुख्य रूप से घर से काम (टेलीवर्क) कर रहे हैं, और आज पहली बार इंटरनेट कुछ दसियों मिनट के लिए बंद हो गया। यह स्वचालित रूप से ठीक हो गया, लेकिन यह एक अच्छा संकेत नहीं हो सकता है। अभी बदले हुए एक सप्ताह भी नहीं हुआ है\u0026hellip;।\nएक अतिरिक्त बात, चूंकि J:COM P2P संचार को प्रतिबंधित करता है, ऐसा लगता है कि P2P ऐप्स की गति अच्छी नहीं है। जो लोग P2P का उपयोग करते हैं उन्हें सावधान रहना चाहिए।\nसेवा के बारे में अनुबंध के समय, यदि आप Netflix या Disney+ की सदस्यता लेते हैं, तो आपको 40,000 येन का QUO कार्ड मिलेगा, जो संबंधित सेवा अनुबंध शुल्क को ऑफसेट करता है और मासिक शुल्क को औसतन थोड़ा सस्ता बनाता है, इसलिए मैंने अनुबंध के साथ ही सेवा का अनुबंध किया। Netflix 1 साल का अनुबंध है, Disney+ आधे साल का अनुबंध है, और ऐसा लगता है कि आपको रद्दीकरण प्रक्रिया स्वयं करनी होगी।\nचूंकि बदलाव अभी हाल ही में हुआ है, अगर उपयोग के बारे में अधिक विचार या प्रभाव सामने आते हैं, तो मैं फिर से लेख अपडेट करूंगा। तो,\n09/06 इंटरनेट से कनेक्ट करना मुश्किल हो गया 06/09/2022 लगभग 13:13 बजे 3 से 5 मिनट के लिए 06/09/2022 लगभग 13:30 बजे 3 से 5 मिनट के लिए उसके बाद भी कई बार\u0026hellip; चूंकि समस्या DNS के साथ प्रतीत होती है, मैंने यहाँ का संदर्भ लेकर DNS सर्वर सेट किया। देखते हैं अब क्या होता है\u0026hellip; चूंकि DNS सेटिंग के साथ भी कनेक्ट नहीं हो पा रहा था, मैंने समर्थन से संपर्क किया, और उन्होंने कहा कि वे आपातकालीन रखरखाव कर रहे हैं\u0026hellip; पूछताछ के तुरंत बाद कनेक्शन की स्थिति में सुधार हुआ, इसलिए मुझे लगता है कि उन्होंने कोई उपाय किया होगा।\n","date":"2022-09-05T22:48:51+09:00","image":"http://kenji.blog/p/%E3%83%8D%E3%83%83%E3%83%88%E7%92%B0%E5%A2%83%E3%82%92%E3%83%95%E3%83%AC%E3%83%83%E3%83%84%E5%85%89jcom%E3%81%AB%E5%A4%89%E3%81%88%E3%81%9F/jcom_hub0ec31ac66f5927be8b28fe767bbeebb_3349_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/%E3%83%8D%E3%83%83%E3%83%88%E7%92%B0%E5%A2%83%E3%82%92%E3%83%95%E3%83%AC%E3%83%83%E3%83%84%E5%85%89jcom%E3%81%AB%E5%A4%89%E3%81%88%E3%81%9F/","title":"मैंने अपना इंटरनेट वातावरण Flet's Hikari से J:COM में बदल दिया"},{"content":"HUGO की स्थापना डाउनलोड HUGO डाउनलोड करें\nउपरोक्त वेबसाइट से, अपने वातावरण के अनुकूल Windows मॉड्यूल डाउनलोड करें और उसे निकालें। मेरे मामले में, मैंने \u0026ldquo;hugo_0.102.3_Windows-64bit.zip\u0026rdquo; डाउनलोड किया।\nनिकालना डाउनलोड की गई zip फ़ाइल को निकालें, और उसके अंदर स्थित hugo.exe को आपके द्वारा बनाए गए फ़ोल्डर में कॉपी करें, उदाहरण के लिए C:\\bin।\nपर्यावरण चर में पंजीकृत करें इसे पर्यावरण चर में पंजीकृत करें ताकि आप कहीं से भी hugo.exe को चला सकें। निम्नलिखित क्रियाएँ Windows 11 के लिए हैं, लेकिन आपको समान चरणों के साथ पंजीकरण करने में सक्षम होना चाहिए:\nसंस्करण जानकारी खोलने के लिए Win+Pause बटन दबाएँ उन्नत सिस्टम सेटिंग्स पर क्लिक करें पर्यावरण चर पर क्लिक करें Path चुनें और संपादित करें पर क्लिक करें नया पर क्लिक करें, नई लाइन में \u0026ldquo;C:\\bin\u0026rdquo; दर्ज करें और डायलॉग बंद करने के लिए ठीक पर क्लिक करें ब्लॉग का पूर्वावलोकन करें कमांड प्रॉम्प्ट में, HUGO ब्लॉग फ़ोल्डर में जाएँ और नीचे दिए गए कमांड को चलाएँ।\nhugo server -D\nनिष्पादन परिणाम नीचे दिया गया है। (-D ड्राफ्ट लेखों को प्रदर्शित करने का विकल्प है।)\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 C:\\Users\\win11\\IdeaProjects\\kenji.blog\u0026gt;hugo server -D Start building sites … hugo v0.102.3-b76146b129d7caa52417f8e914fc5b9271bf56fc windows/amd64 BuildDate=2022-09-01T10:16:19Z VendorInfo=gohugoio | JA -------------------+----- Pages | 39 Paginator pages | 0 Non-page files | 7 Static files | 0 Processed images | 0 Aliases | 13 Sitemaps | 1 Cleaned | 0 Built in 161 ms Watching for changes in C:\\Users\\win11\\IdeaProjects\\kenji.blog\\{archetypes,content,themes} Watching for config changes in C:\\Users\\win11\\IdeaProjects\\kenji.blog\\config.toml Environment: \u0026#34;development\u0026#34; Serving pages from memory Running in Fast Render Mode. For full rebuilds on change: hugo server --disableFastRender Web Server is available at http://localhost:1313/ (bind address 127.0.0.1) Press Ctrl+C to stop चूंकि निष्पादन के दौरान पता प्रदर्शित होता है (उपरोक्त उदाहरण में http://localhost:1313/), उस पते को अपने ब्राउज़र में कॉपी करें। हर बार फ़ाइल सहेजने पर पूर्वावलोकन स्वचालित रूप से अपडेट हो जाता है। पूर्वावलोकन समाप्त करने के लिए, कमांड प्रॉम्प्ट में Ctrl+C दर्ज करें।\n","date":"2022-09-05T12:28:01+09:00","image":"http://kenji.blog/p/hugo%E3%83%AD%E3%83%BC%E3%82%AB%E3%83%AB%E3%81%A7%E7%92%B0%E5%A2%83%E3%81%A7%E8%A1%A8%E7%A4%BA%E3%83%97%E3%83%AC%E3%83%93%E3%83%A5%E3%83%BC/img_hu415dc7e70376ac350673d0366f70ca4b_19909_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/hugo%E0%A4%B8%E0%A5%8D%E0%A4%A5%E0%A4%BE%E0%A4%A8%E0%A5%80%E0%A4%AF-%E0%A4%B5%E0%A4%BE%E0%A4%A4%E0%A4%BE%E0%A4%B5%E0%A4%B0%E0%A4%A3-%E0%A4%AE%E0%A5%87%E0%A4%82-%E0%A4%AA%E0%A5%82%E0%A4%B0%E0%A5%8D%E0%A4%B5%E0%A4%BE%E0%A4%B5%E0%A4%B2%E0%A5%8B%E0%A4%95%E0%A4%A8-%E0%A4%AA%E0%A5%8D%E0%A4%B0%E0%A4%A6%E0%A4%B0%E0%A5%8D%E0%A4%B6%E0%A4%BF%E0%A4%A4-%E0%A4%95%E0%A4%B0%E0%A5%87%E0%A4%82/","title":"【HUGO】स्थानीय वातावरण में पूर्वावलोकन प्रदर्शित करें"},{"content":"यहाँ मेरी अनुशंसित 3 फिल्में हैं जिनमें मुख्य पात्र गणितज्ञ हैं।\nए ब्यूटीफुल माइंड यह एक वास्तविक अमेरिकी प्रतिभाशाली गणितज्ञ के आधे जीवन को दर्शाने वाली फिल्म है। अंत में एक आश्चर्यजनक मोड़ है। रसेल क्रो ने मुख्य भूमिका में बेहतरीन काम किया है।\nएनिग्मा 2001 में रिलीज़ हुई फिल्म, जो रॉबर्ट हैरिस के उपन्यास \u0026ldquo;एनिग्मा\u0026rdquo; पर आधारित है। विकिपीडिया से\nयह जर्मनी द्वारा बनाई गई एनिग्मा एन्क्रिप्शन मशीन को डिक्रिप्ट करने की कहानी है।\nद इमिटेशन गेम यह भी एनिग्मा से जुड़ी एक डिक्रिप्शन कहानी है। मुझे उस समय की दुनिया बहुत पसंद है।\nद मैन हू न्यू इन्फिनिटी कैम्ब्रिज विश्वविद्यालय के गणितज्ञ हार्डी और भारतीय गणितज्ञ रामानुजन के बीच बातचीत को दर्शाने वाली फिल्म। आप इसमें गणित की सुंदरता को महसूस कर सकते हैं।\nद थ्योरी ऑफ एवरीथिंग डॉ. हॉकिंग के जीवन को दर्शाने वाली फिल्म।\nपार्टिकल फीवर ","date":"2022-09-05T10:41:00+09:00","image":"http://kenji.blog/p/%E6%95%B0%E5%AD%A6%E8%80%85%E3%81%8C%E7%99%BB%E5%A0%B4%E3%81%99%E3%82%8B%E6%98%A0%E7%94%BB/images/img_hua361131ea597bbd428e36b721aabc571_406520_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/%E6%95%B0%E5%AD%A6%E8%80%85%E3%81%8C%E7%99%BB%E5%A0%B4%E3%81%99%E3%82%8B%E6%98%A0%E7%94%BB/","title":"गणितज्ञों वाली फिल्में"},{"content":"बच्चों की मेज जब बच्चे सो रहे होते हैं, तब मैं काम में अपना ध्यान लगा सकता हूँ। झपकी के बाद पार्क में खेलने चलेंगे। अगर मेरे पास iPad के लिए लाइटनिंग से HDMI एडॉप्टर होता, तो मैं दाईं ओर की डेस्क पर काम कर पाता~\n","date":"2022-09-04T14:29:09+09:00","image":"http://kenji.blog/p/%E4%BB%8A%E6%97%A5%E3%81%AE%E4%BD%9C%E6%A5%AD%E7%92%B0%E5%A2%83/images/today_workplase_hu1fa3ba50725fc9c80ae774069d99ec20_2258565_120x120_fill_q75_box_smart1.jpg","permalink":"http://kenji.blog/hi/p/%E0%A4%86%E0%A4%9C-%E0%A4%95%E0%A4%BE-%E0%A4%95%E0%A4%BE%E0%A4%B0%E0%A5%8D%E0%A4%AF-%E0%A4%B5%E0%A4%BE%E0%A4%A4%E0%A4%BE%E0%A4%B5%E0%A4%B0%E0%A4%A3/","title":"आज का कार्य वातावरण"},{"content":"परिचय इस ब्लॉग को लिखते समय मैं IntelliJ IDEA का उपयोग करता हूँ। यह Git के साथ अच्छी तरह से काम करता है और इसमें मार्कडाउन का पूर्वावलोकन देखने की सुविधा है, जो इसे बहुत उपयोगी बनाता है। हर बार जब मैं ब्लॉग लिखता हूँ, तो मुझे md हेडर में date लिखना पड़ता है, और ऐसा लगता है कि तिथि सम्मिलित करने के लिए कोई शॉर्टकट नहीं है। इसलिए, नीचे दी गई वेबसाइट का संदर्भ लेकर मैंने तिथि सम्मिलित करने के लिए एक कमांड बनाया है। मुझे उम्मीद है कि यह आपके लिए मददगार साबित होगा।\nIs there a shortcut for inserting date/time in IntelliJ IDEA?\nसेटअप प्रक्रिया मेनू से \u0026ldquo;File\u0026rdquo; \u0026gt; \u0026ldquo;Settings\u0026hellip;\u0026rdquo; खोलें\n\u0026ldquo;Editor\u0026rdquo; \u0026gt; \u0026ldquo;Live Template\u0026rdquo; \u0026gt; \u0026ldquo;HTML/XML\u0026rdquo; को चुनकर \u0026ldquo;+\u0026rdquo; पर क्लिक करें Live Template चुनें Abbreviation में \u0026ldquo;date\u0026rdquo; दर्ज करें Description में \u0026ldquo;तिथि और समय सम्मिलित करें\u0026rdquo; दर्ज करें Template Text में \u0026ldquo;$date$\u0026rdquo; दर्ज करें Edit Variables बटन पर क्लिक करें\nName में \u0026ldquo;date\u0026rdquo; दर्ज करें Expression में date(\u0026quot;yyyy-MM-dd'T'HH:mm:ss'+09:00'\u0026quot;) दर्ज करें OK पर क्लिक करके डायलॉग बॉक्स को बंद करें Define या Change पर क्लिक करें और \u0026ldquo;Everywhere\u0026rdquo; को चेक करें OK पर क्लिक करके डायलॉग बॉक्स को बंद करें कोड एडिटर में \u0026ldquo;date\u0026rdquo; दर्ज करें और Enter दबाएं। अगर \u0026ldquo;2022-09-04T05:59:04+09:00\u0026rdquo; जैसी तिथि सम्मिलित हो जाती है, तो सेटअप पूरा हो गया! बस इतना ही\nनिष्कर्ष अगर मुझे IntelliJ IDEA के लिए और कोई छोटी ट्रिक्स मिलती हैं, तो मैं उन्हें फिर से प्रकाशित करूँगा!\n","date":"2022-09-04T05:59:04+09:00","image":"http://kenji.blog/p/intellij-idea%E3%81%A7%E6%97%A5%E4%BB%98%E3%82%92%E8%B2%BC%E3%82%8A%E4%BB%98%E3%81%91%E3%82%8B%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%99%E3%82%8B/images/IntelliJ_logo_hu4c2377fba6118d83603ae0bd715d16f4_24441_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/intellij-idea%E3%81%A7%E6%97%A5%E4%BB%98%E3%82%92%E8%B2%BC%E3%82%8A%E4%BB%98%E3%81%91%E3%82%8B%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%99%E3%82%8B/","title":"IntelliJ IDEA में तिथि सम्मिलित करने के लिए कमांड जोड़ें"},{"content":"मैंने एक ब्लॉग शुरू किया है आतिशबाजी जैसी कोई चीज़, कोड यहाँ है\nनमस्ते। बिना किसी खास कारण के, मैंने एक ब्लॉग शुरू करने का फैसला किया।\nकोई बड़ा उद्देश्य नहीं है जैसे \u0026ldquo;मैं इसे प्रकाशित करना चाहता हूँ!\u0026rdquo;, बस मुझे लगा कि यह अच्छा होगा कि एक ऐसी जगह हो जहाँ मैं प्रौद्योगिकी के बारे में, अपने दैनिक जीवन के बारे में, या जो कुछ भी दिमाग में आए उसे लिख सकूँ।\nमैं इसे एक नोटपैड की तरह, बिना ज्यादा जोर दिए चलाने की सोच रहा हूँ।\nमैं इसे Hugo नामक चीज़ से बना रहा हूँ यह ब्लॉग \u0026ldquo;Hugo\u0026rdquo; नामक एक स्टैटिक साइट जनरेटर से बना है। मुझे एक अच्छा विषय (थीम) मिला, इसलिए मैंने इसे आजमाने का फैसला किया। (यह एक रहस्य है कि थीम चुनने में मुझे लगभग 2 घंटे लगे)\nकोड और उन उपकरणों (टूल्स) के बारे में जो मुझे दिलचस्प लगते हैं, मैं उन्हें भी आसानी से नोट करने का इरादा रखता हूँ।\nकोमेडा में सुबह की कहानी वैसे, आज सुबह मैं थोड़ा जल्दी उठा और कोमेडा कॉफी गया। सुबह 8:30 बजे निकला, और सुबह की ताजी हवा में टहलता हुआ गया।\nमैंने मिनी शिरो-नोयर और कैफे औ लेट के साथ ए मॉर्निंग सेट का आदेश दिया। मुझे लगता है कि यह लगभग 800 येन था? (मुझे याद नहीं है)\nसुबह का कैफे, अच्छा है ना। काम से पहले थोड़ा खाली समय बिताने से ऐसा लगता है कि पूरा दिन अच्छा बीतेगा।\nइस तरह, मैं अब से आराम से लिखूँगा। मैं तकनीकी बातों और दैनिक जीवन दोनों को मिलाने की योजना बना रहा हूँ।\nकृपया अपना ख्याल रखें!\n","date":"2022-09-02T07:23:00+09:00","image":"http://kenji.blog/p/%E3%83%96%E3%83%AD%E3%82%B0%E3%81%AF%E3%81%98%E3%82%81%E3%81%A6%E3%81%BF%E3%81%BE%E3%81%97%E3%81%9F/images/komeda_hue1f0373fafb96162f461ac594cb3e53e_603414_120x120_fill_q75_box_smart1.jpeg","permalink":"http://kenji.blog/hi/p/%E0%A4%AE%E0%A5%88%E0%A4%82%E0%A4%A8%E0%A5%87-%E0%A4%8F%E0%A4%95-%E0%A4%AC%E0%A5%8D%E0%A4%B2%E0%A5%89%E0%A4%97-%E0%A4%B6%E0%A5%81%E0%A4%B0%E0%A5%82-%E0%A4%95%E0%A4%BF%E0%A4%AF%E0%A4%BE-%E0%A4%B9%E0%A5%88/","title":"मैंने एक ब्लॉग शुरू किया है"},{"content":"Salesforce DevTools आप कस्टम फ़ील्ड खोज सकते हैं या कस्टम ऑब्जेक्ट फ़ील्ड को एक साथ निर्यात कर सकते हैं।\nमौके पर SOQL बनाने में सक्षम होना भी उपयोगी है।\nSalesforce DevTools\nSalesforce advanced Code searcher Salesforce कोड खोजते समय उपयोगी।\nSalesforce advanced Code searcher\n","date":"2022-05-02T10:39:36+09:00","image":"http://kenji.blog/p/salesforce%E3%81%8A%E3%81%99%E3%81%99%E3%82%81chrome%E6%8B%A1%E5%BC%B5/img_huc75a5c8c4d45e738551ca5afb26f380b_13227_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/hi/p/salesforce%E3%81%8A%E3%81%99%E3%81%99%E3%82%81chrome%E6%8B%A1%E5%BC%B5/","title":"Salesforce अनुशंसित Chrome एक्सटेंशन"},{"content":"आधुनिक इंटरनेट समाज में सूचना सुरक्षा, RSA क्रिप्टोग्राफी जैसी पब्लिक-की क्रिप्टोग्राफी प्रणालियों द्वारा सुरक्षित है। RSA क्रिप्टोग्राफी की सुरक्षा का आधार इस तथ्य पर निर्भर करता है कि \u0026ldquo;विशाल भाज्य संख्याओं का अभाज्य गुणनखंडन (Prime Factorization) कम्प्यूटेशनल रूप से अत्यंत कठिन है\u0026rdquo; ।\nइस लेख में, हम क्लासिकल कंप्यूटरों के लिए सबसे शक्तिशाली अभाज्य गुणनखंडन एल्गोरिदम \u0026ldquo;सामान्य संख्या क्षेत्र चलनी\u0026rdquo; (General Number Field Sieve, GNFS) के गणितीय तंत्र को खोलेंगे, और गणितीय सूत्रों तथा वैचारिक आरेखों (concept diagrams) का उपयोग करके गहराई से यह विश्लेषण करेंगे कि यह पीटर शोर द्वारा खोजे गए \u0026ldquo;शोर के एल्गोरिदम\u0026rdquo; (Shor\u0026rsquo;s Algorithm) से पूरी तरह क्यों हार जाता है, और यह पैराडाइम शिफ्ट कैसे होता है।\n1. क्लासिकल कंप्यूटिंग में अभाज्य गुणनखंडन का दृष्टिकोण: फर्मेट की अभाज्य गुणनखंडन विधि से विकास अभाज्य गुणनखंडन समस्या का अर्थ है, दी गई एक भाज्य संख्या (composite number) $N$ के लिए अभाज्य संख्याओं $p, q$ को खोजना, जिससे $N = p \\times q$ हो।\nमूल विचार निम्नलिखित सर्वांगसमता (congruence) को संतुष्ट करने वाले गैर-तुच्छ (non-trivial) $x, y$ खोजने पर आ जाता है:\n$$ x^2 \\equiv y^2 \\pmod N $$ इसे रूपांतरित करने पर,\n$$ x^2 - y^2 \\equiv 0 \\pmod N $$ $$ (x - y)(x + y) \\equiv 0 \\pmod N $$ यहाँ, यदि $x \\not\\equiv \\pm y \\pmod N$ हो, तो $\\gcd(x-y, N)$ या $\\gcd(x+y, N)$ की गणना करके, $N$ का एक गैर-तुच्छ गुणनखंड प्राप्त किया जा सकता है। यह तथ्य GNFS जैसे आधुनिक अभाज्य गुणनखंडन एल्गोरिदम का आधार है।\n2. क्लासिकल का सबसे शक्तिशाली एल्गोरिदम: \u0026ldquo;सामान्य संख्या क्षेत्र चलनी\u0026rdquo; (GNFS) की गहराई \u0026ldquo;GNFS\u0026rdquo; आज ज्ञात क्लासिकल कंप्यूटरों के लिए सबसे तेज़ अभाज्य गुणनखंडन एल्गोरिदम है। इसकी समय जटिलता (time complexity) उप-घातांकीय (Sub-exponential) समय लेती है।\nGNFS की समय जटिलता जब संख्या $N$ के अंकों की संख्या $b = \\log_2 N$ हो, तो GNFS की जटिलता इस प्रकार व्यक्त की जाती है:\n$$ O\\left( \\exp \\left( \\left(\\frac{64}{9} b\\right)^{1/3} (\\log b)^{2/3} \\right) \\right) $$ जैसा कि इस सूत्र से देखा जा सकता है, जटिलता बहुपद समय (polynomial time) नहीं है, बल्कि घातांकीय फ़ंक्शन (exponential function) से थोड़ी धीमी \u0026ldquo;उप-घातांकीय समय\u0026rdquo; (sub-exponential time) है। फिर भी, यदि अंकों की संख्या बढ़ती है तो गणना का समय खगोलीय रूप से बढ़ जाता है।\nGNFS का गणितीय तंत्र GNFS मुख्य रूप से 4 चरणों से मिलकर बना है:\nबहुपद चयन (Polynomial Selection) छानना (Sieving) मैट्रिक्स न्यूनीकरण (Matrix Reduction) वर्गमूल की गणना (Square Root) 2.1. बहुपद चयन और बीजीय संख्या क्षेत्र (Algebraic Number Field) सबसे पहले, पूर्णांक गुणांकों (integer coefficients) वाले अलघुकरणीय बहुपदों (irreducible polynomials) $f(x)$ और $g(x)$ को चुना जाता है। इन्हें इस प्रकार सेट किया जाता है कि इनका modulo $N$ पर एक सामान्य मूल $m$ हो। अर्थात,\n$$ f(m) \\equiv 0 \\pmod N $$ $$ g(m) \\equiv 0 \\pmod N $$ आमतौर पर, $g(x)$ को रैखिक बहुपद $g(x) = x - m$ के रूप में चुना जाता है। यदि $f(x)$ के मूल को $\\alpha$ मान लिया जाए, तो $\\mathbb{Q}(\\alpha)$ नामक \u0026ldquo;संख्या क्षेत्र\u0026rdquo; (Number Field) बनता है। $\\mathbb{Q}(\\alpha)$ के वलय (ring) में संचालन और सामान्य पूर्णांक वलय $\\mathbb{Z}$ के संचालन की तुलना होमोमोर्फिज़्म (homomorphism) $\\phi: \\alpha \\mapsto m$ के माध्यम से की जाती है।\n2.2. छानना (Sieving) इसके बाद, सह-अभाज्य (coprime) पूर्णांकों के जोड़े $(a, b)$ की बड़ी संख्या में खोज की जाती है। इसका उद्देश्य ऐसे जोड़े खोजना है जहाँ निम्नलिखित 2 मान \u0026ldquo;B-स्मूथ\u0026rdquo; (B-smooth, केवल अपेक्षाकृत छोटे अभाज्य गुणनखंडों से बने) हों:\n$a - bm$ (पूर्णांक वलय पर मान) $b^d f(a/b)$ (संख्या क्षेत्र पर मानदंड $N(a - b\\alpha)$ के अनुरूप) यहाँ \u0026ldquo;चलनी\u0026rdquo; (Sieve) नामक एक तेज़ खोज तकनीक का उपयोग किया जाता है। इसके द्वारा, विशाल उम्मीदवारों में से शर्तों को पूरा करने वाले $(a, b)$ जोड़ों को कुशलतापूर्वक निकाला जाता है।\n2.3. मैट्रिक्स न्यूनीकरण (Linear Algebra over GF(2)) एकत्र किए गए जोड़े $(a, b)$ से, घातांक सदिश (exponent vectors) का निर्माण किया जाता है, और एक विशाल विरल मैट्रिक्स (sparse matrix) के बाएँ शून्य स्थान (left null space) को $\\mathbb{F}_2$ (वह क्षेत्र जिसमें केवल 0 और 1 तत्व होते हैं) पर ज्ञात किया जाता है।\nवेक्टर $v$ को एक समाधान के रूप में इस प्रकार खोजा जाता है कि संबंध $ \\prod (a_i - b_i m) $ और $ \\prod (a_i - b_i \\alpha) $ दोनों वर्ग अवयव (square elements) बन जाएँ। यह,\n$$ M \\mathbf{x} \\equiv \\mathbf{0} \\pmod 2 $$ जैसी रैखिक समीकरण प्रणाली को हल करने के अलावा और कुछ नहीं है। यहाँ, ब्लॉक लैंक्ज़ोस एल्गोरिदम (Block Lanczos Algorithm) या ब्लॉक विडमैन एल्गोरिदम (Block Wiedemann Algorithm) जैसे उन्नत संख्यात्मक संगणना एल्गोरिदम का उपयोग किया जाता है।\n2.4. वर्गमूल की गणना अंत में, संख्या क्षेत्र और पूर्णांक वलय दोनों में वर्गमूल लिया जाता है, और $x^2 \\equiv y^2 \\pmod N$ संबंध प्राप्त किया जाता है। फिर, $\\gcd(x-y, N)$ की गणना की जाती है और गुणनखंड प्राप्त किया जाता है।\n3. क्वांटम कंप्यूटिंग द्वारा सफलता: \u0026ldquo;शोर का एल्गोरिदम\u0026rdquo; (Shor\u0026rsquo;s Algorithm) जबकि GNFS को उप-घातांकीय समय की आवश्यकता होती है, 1994 में पीटर शोर द्वारा प्रस्तुत किया गया \u0026ldquo;शोर का एल्गोरिदम\u0026rdquo; , क्वांटम कंप्यूटर का उपयोग करके इस समस्या को \u0026ldquo;बहुपद समय\u0026rdquo; (Polynomial Time) में हल कर सकता है।\nशोर के एल्गोरिदम की समय जटिलता जब क्यूबिट्स की संख्या $O(\\log N)$ हो, तो समय जटिलता इस प्रकार होती है:\n$$ O((\\log N)^3) $$ इसका मतलब यह है कि यह बिट्स की संख्या के सापेक्ष घातांकीय विस्फोट नहीं करता है। यह एक आश्चर्यजनक परिणाम है कि \u0026ldquo;क्वांटम कंप्यूटिंग\u0026rdquo; कुछ घंटों से कुछ दिनों में उन विशाल भाज्य संख्याओं को डिक्रिप्ट कर सकता है, जिनकी \u0026ldquo;क्लासिकल कंप्यूटिंग\u0026rdquo; के लिए गणना का समय ब्रह्मांड के जीवनकाल से भी अधिक होगा।\nशोर के एल्गोरिदम का समग्र दृश्य: आवर्त खोज समस्या (Period Finding Problem) में कमी शोर का एल्गोरिदम अभाज्य गुणनखंडन समस्या को बड़ी चतुराई से \u0026ldquo;आवर्त खोज समस्या\u0026rdquo; में बदल देता है।\n$N$ के साथ सह-अभाज्य एक यादृच्छिक पूर्णांक $a$ चुनें ($1 \u003c a \u003c N$)। फलन $f(x) = a^x \\bmod N$ परिभाषित करें। $f(x)$ का आवर्त (period) $r$ खोजें, अर्थात वह सबसे छोटा धनात्मक पूर्णांक $r$ जिसके लिए $a^r \\equiv 1 \\pmod N$ हो। यदि $r$ सम (even) है, तो जांचें कि क्या $a^{r/2} \\not\\equiv -1 \\pmod N$ है, और अभाज्य गुणनखंड प्राप्त करने के लिए $\\gcd(a^{r/2} \\pm 1, N)$ की गणना करें। चरण 3 में यह \u0026ldquo;आवर्त $r$ की खोज\u0026rdquo; ही वह बाधा है जिसमें क्लासिकल कंप्यूटर को घातांकीय समय लगता है, लेकिन क्वांटम कंप्यूटर \u0026ldquo;क्वांटम सुपरपोज़िशन\u0026rdquo; और \u0026ldquo;क्वांटम फूरियर ट्रांसफॉर्म\u0026rdquo; (QFT) का उपयोग करके इसे पल भर में हल कर देता है।\n4. क्वांटम फूरियर ट्रांसफॉर्म (QFT) और आवर्त का निष्कर्षण आइए शोर के एल्गोरिदम के मूल, क्वांटम अवस्थाओं (quantum states) के संचालन को गणितीय सूत्रों के माध्यम से विस्तार से देखें।\n4.1. क्वांटम सुपरपोज़िशन का निर्माण सबसे पहले, 2 क्वांटम रजिस्टर तैयार किए जाते हैं। रजिस्टर 1 इनपुट $x$ की सुपरपोज़िशन अवस्था (superposition state) रखता है, और रजिस्टर 2 फलन के गणना परिणाम $f(x)$ को रखता है। प्रारंभिक अवस्था $|0\\rangle |0\\rangle$ पर हैडामर्ड ट्रांसफॉर्म (Hadamard Transform) लागू करके सभी संभावित $x$ का सुपरपोज़िशन बनाया जाता है।\n$$ |\\psi_1\\rangle = \\frac{1}{\\sqrt{Q}} \\sum_{x=0}^{Q-1} |x\\rangle |0\\rangle $$ (यहाँ $Q$, $N^2 \\le Q \u003c 2N^2$ को पूरा करने वाली 2 की घात है)\nइसके बाद, क्वांटम ओरेकल $U_f$ का उपयोग करके $f(x) = a^x \\bmod N$ की गणना की जाती है और इसे रजिस्टर 2 में संग्रहीत किया जाता है।\n$$ |\\psi_2\\rangle = U_f |\\psi_1\\rangle = \\frac{1}{\\sqrt{Q}} \\sum_{x=0}^{Q-1} |x\\rangle |a^x \\bmod N\\rangle $$ यहाँ मान लीजिए कि रजिस्टर 2 को मापा गया है (वास्तव में इसे मापे बिना भी गणितीय संरचना समान रहती है)। यदि कोई मान $y = a^{x_0} \\bmod N$ देखा जाता है, तो रजिस्टर 1 की अवस्था उन सभी $x$ के सुपरपोज़िशन में सिमट (collapse) जाती है जिनके लिए $f(x) = y$ होता है। यदि आवर्त $r$ है, तो ऐसे $x$, $x_0, x_0 + r, x_0 + 2r, \\dots$ होंगे।\n$$ |\\psi_3\\rangle = \\frac{1}{\\sqrt{M}} \\sum_{k=0}^{M-1} |x_0 + kr\\rangle $$ (यहाँ $M \\approx Q/r$ पदों की संख्या है)\nयह अवस्था आवर्त $r$ की जानकारी को अंतर्निहित रखती है, लेकिन इसे सीधे मापने पर केवल एक यादृच्छिक (random) $x_0 + kr$ प्राप्त होगा, और आवर्त $r$ ज्ञात नहीं होगा। यहीं पर QFT काम आता है।\n4.2. क्वांटम फूरियर ट्रांसफॉर्म (Quantum Fourier Transform) लागू करना QFT एक ऐसा ऑपरेशन है जो क्वांटम अवस्थाओं के आयामों (amplitudes) पर असतत फूरियर ट्रांसफॉर्म (Discrete Fourier Transform) करता है। अवस्था $|x\\rangle$ पर QFT की क्रिया को इस प्रकार परिभाषित किया गया है:\n$$ \\text{QFT} |x\\rangle = \\frac{1}{\\sqrt{Q}} \\sum_{y=0}^{Q-1} e^{2\\pi i \\frac{xy}{Q}} |y\\rangle $$ जब इसे $|\\psi_3\\rangle$ पर लागू किया जाता है, तो चरण हस्तक्षेप (क्वांटम इंटरफेरेंस) होता है।\n$$ |\\psi_4\\rangle = \\text{QFT} |\\psi_3\\rangle = \\frac{1}{\\sqrt{MQ}} \\sum_{y=0}^{Q-1} \\sum_{k=0}^{M-1} e^{2\\pi i \\frac{(x_0 + kr)y}{Q}} |y\\rangle $$ इस समीकरण के योग का विस्तार करने पर,\n$$ \\sum_{k=0}^{M-1} e^{2\\pi i \\frac{kry}{Q}} $$ यह भाग प्रकट होता है। इस ज्यामितीय श्रेणी का योग केवल तभी एक-दूसरे को मजबूत करता है (Constructive Interference) जब $ry/Q$ एक पूर्णांक के करीब होता है, और अन्य समय में यह एक-दूसरे को रद्द (Destructive Interference) कर देता है।\nइसलिए, उच्च संभावना के साथ मापी जाने वाली अवस्था $|y\\rangle$ वह होगी जिसके लिए,\n$$ \\frac{y}{Q} \\approx \\frac{c}{r} $$ शर्त को पूरा करने वाला पूर्णांक $y$ हो ($c$ कोई पूर्णांक है)।\n4.3. निरंतर भिन्न विस्तार (Continued Fraction Expansion) द्वारा आवर्त की पहचान माप से $y$ प्राप्त करने के बाद, क्लासिकल कंप्यूटर का उपयोग करके $y/Q$ का \u0026ldquo;निरंतर भिन्न विस्तार\u0026rdquo; (Continued Fraction Expansion) किया जाता है। इसके द्वारा, $y/Q$ के अनुमानित भिन्न $c/r$ की गणना की जाती है, और हर (denominator) से आवर्त $r$ के उम्मीदवार को अत्यधिक कुशलता से निकाला जा सकता है।\n5. वैचारिक मॉडल की तुलना और पैराडाइम शिफ्ट GNFS और शोर के एल्गोरिदम के बीच के अंतर को सहज रूप से समझने के लिए, Mermaid सिंटैक्स का उपयोग करके एक वैचारिक आरेख (concept diagram) नीचे दिया गया है।\nक्वांटम सर्किट द्वारा शोर के एल्गोरिदम का वैचारिक आरेख 1 2 3 4 5 6 7 8 9 10 11 12 13 graph TD A[प्रारंभिक अवस्था: 0...0] --\u0026gt; B[Hadamard ट्रांसफॉर्म द्वारा सभी अवस्थाओं का सुपरपोज़िशन] B --\u0026gt; C[मॉड्यूलर घातांक गणना a^x mod N] C --\u0026gt;|क्वांटम एंटैंगलमेंट| D[आवधिकता (periodicity) वाली अवस्था में सिमटना] D --\u0026gt; E[क्वांटम फूरियर ट्रांसफॉर्म QFT] E --\u0026gt;|हस्तक्षेप (Interference) द्वारा प्रायिकता प्रवर्धन| F[माप: y प्राप्त करना] F --\u0026gt; G[क्लासिकल प्रक्रिया: निरंतर भिन्न विस्तार] G --\u0026gt; H[आवर्त r की खोज] H --\u0026gt; I[N के अभाज्य गुणनखंडों की गणना] style A fill:#f9f,stroke:#333,stroke-width:2px style E fill:#bbf,stroke:#333,stroke-width:2px style I fill:#bfb,stroke:#333,stroke-width:2px पैराडाइम शिफ्ट का सार GNFS \u0026ldquo;गणितीय स्थान (संख्या क्षेत्र) में संबंधों को खोजने\u0026rdquo; का दृष्टिकोण अपनाता है। हालाँकि, चूँकि खोज स्थान अंकों की संख्या के सापेक्ष घातांकीय रूप से फैलता है, इसलिए क्लासिकल कंप्यूटर की गणना क्षमता (समानांतरकरण सहित) के साथ, जब कुंजी की लंबाई 2048 बिट्स आदि से अधिक हो जाती है तो इसे डिक्रिप्ट करना लगभग असंभव हो जाता है।\nदूसरी ओर, शोर का एल्गोरिदम \u0026ldquo;क्वांटम हस्तक्षेप के कारण तरंग गुणों\u0026rdquo; का उपयोग करता है। यह सुपरपोज़िशन अवस्था में सभी गणना पथों (computation paths) का एक साथ मूल्यांकन करता है, और QFT द्वारा अवांछित उत्तरों को रद्द (Destructive Interference) कर देता है, तथा केवल सही उत्तर वाले आवर्त के प्रायिकता आयाम (probability amplitude) को प्रवर्धित (Constructive Interference) करता है। इससे यह स्थान को खोजने के बजाय, \u0026ldquo;सही उत्तर को ही सामने लाने\u0026rdquo; के एक बिल्कुल अलग आयाम का दृष्टिकोण प्राप्त करता है।\n6. निष्कर्ष इस लेख में, हमने क्लासिकल सीमाओं की चरम सीमा \u0026ldquo;GNFS\u0026rdquo; और क्वांटम कंप्यूटिंग की शक्ति प्रदर्शित करने वाले \u0026ldquo;शोर के एल्गोरिदम\u0026rdquo; के गणितीय पृष्ठभूमि और एल्गोरिथम संरचना की गहराई से तुलना की है।\nजबकि GNFS ने बहुपद चयन और विशाल मैट्रिक्स गणना जैसी गणितीय तकनीकों का उपयोग करके समय जटिलता को उप-घातांकीय समय तक कम किया, शोर के एल्गोरिदम ने क्वांटम यांत्रिकी के मूल सिद्धांतों, सुपरपोज़िशन और हस्तक्षेप को गणितीय उपकरण (QFT) के साथ मिलाया, और एक ही झटके में बहुपद समय की सफलता प्राप्त की।\nवर्तमान में, व्यावहारिक पैमाने (हजारों क्यूबिट्स) पर शोर के एल्गोरिदम को चलाने में सक्षम कोई दोष-सहिष्णु क्वांटम कंप्यूटर (Fault-Tolerant Quantum Computer, FTQC) मौजूद नहीं है। हालाँकि, इस गणितीय और सैद्धांतिक पैराडाइम शिफ्ट का अस्तित्व ही वह सबसे बड़ा कारण है कि वर्तमान में दुनिया भर में पोस्ट-क्वांटम क्रिप्टोग्राफी (PQC) की ओर संक्रमण में तेज़ी आ रही है।\n","date":"0001-01-01T00:00:00Z","image":"http://kenji.blog/p/gnfs-to-shors-algorithm-math-deepdive/quantum_vs_gnfs_eyecatch_1788616101508_hud95a00206aa1dcf32de9cdc0ccb17972_1096815_120x120_fill_q75_box_smart1.jpg","permalink":"http://kenji.blog/hi/p/gnfs-to-shors-algorithm-math-deepdive/","title":"[गणितीय सूत्रों से पूर्ण समझ] क्लासिकल में सबसे शक्तिशाली 'GNFS' क्वांटम एल्गोरिदम से क्यों हारता है? अभाज्य गुणनखंडन का पैराडाइम शिफ्ट"}]