-
स्क्रैच से Ruby WebSocket सर्वर बनाएं: चरण-दर-चरण मार्गदर्शिका
आजकल WebSockets को काफी चर्चा मिल रही है। हम सुनते हैं कि वे भविष्य हैं। हम सुनते हैं कि Rails 5 में ActionCable की बदौलत उनका उपयोग पहले से आसान हो गया है। लेकिन वास्तव में WebSockets क्या हैं? वे कैसे काम करते हैं? इस पोस्ट में हम एक साधारण WebSocket सर्वर को Ruby में स्क्रैच से बनाकर इन सवालों क
-
AptWatcher पेश: आपके सर्वरों के लिए निर्बाध Apt पैकेज अपडेट प्रबंधन
हनीबैजर में हम अपने सभी सर्वरों पर apt पैकेज अपडेट की निगरानी के लिए apticron का उपयोग कर रहे थे। पहले apticron के ईमेल मेरे इनबॉक्स में आते थे, लेकिन किसी बिंदु पर मैंने तय किया कि मैं उन्हें अपने स्लैक नोटिफिकेशन चैनल में प्राप्त करना पसंद करूंगा। स्लैक में एक उपयोगी ईमेल ऐप है जो ईमेल प्राप्त करक
-
URI.join को समझना: सामान्य गलतियाँ और सही उपयोग
हम हनीबैजर में एक मील के पत्थर पर पहुँच गए हैं। हमारे सेल्स पेज अब हमारे मुख्य रेल्स ऐप का हिस्सा नहीं हैं। यह सालों से मेरी विशलिस्ट में था, लेकिन कभी सर्वोच्च प्राथमिकता नहीं रहा। समस्या इस माइग्रेशन के हिस्से के रूप में, मुझे विशेष रीडायरेक्ट लिंक बनाने के लिए URI.join का उपयोग करना पड़ा। लेकिन
-
Docker का उपयोग करके Amazon ECS पर Sinatra एप्लिकेशन डेप्लॉय करना: एक चरण-दर-चरण गाइड
कबूल करने का समय। Honeybadger पर काम करने के चार वर्षों में मेरा विकास वातावरण ज्यादा नहीं बदला है। लेकिन उस समय में Honeybadger बहुत अधिक परिष्कृत हो गया है, कार्य करने के लिए लगभग दस सेवाओं पर निर्भर करता है। यही कारण है कि हम स्थानीय विकास के लिए Docker की ओर बढ़ रहे हैं। हर डेवलपर को Postgres, C
-
AWS EC2 इंस्टेंस पर एप्लिकेशन सीक्रेट्स को सुरक्षित रूप से प्रबंधित करना
जब आप अपने एप्लिकेशन को EC2 पर डेप्लॉय करते हैं, तो ऑटोस्केलिंग ग्रुप का उपयोग करना एक अच्छा विचार है। ऑटोस्केलिंग ग्रुप आपके एप्लिकेशन को मांग को पूरा करने के लिए स्केल अप और डाउन करने की अनुमति देते हैं, या विफल इंस्टेंस से रिकवर करने के लिए, सभी बिना किसी मैन्युअल हस्तक्षेप के। उन्हें काम करने के
-
Ruby डेवलपर्स के लिए Big-O क्यों मायने रखता है: एक व्यावहारिक गाइड
मेरे पास कंप्यूटर साइंस की डिग्री नहीं है। हम Rubyists में से बहुतों के पास नहीं है। इसलिए लंबे समय तक मैंने Big-O नोटेशन सीखने से परहेज किया। यह थोड़ा बहुत हायर मैथ जैसा दिखता है। मेरा मतलब: O(N^2). चलो भी। इसके बजाय, मैंने थंब रूल सीखे: Hash में एक विशिष्ट आइटम ढूंढना Array की तुलना में तेज है ने
-
Ruby कॉन्फ्रेंस से नेतृत्व के सबक: कोड से परे
Ruby कॉन्फ्रेंस अब Ruby के बारे में बात क्यों नहीं कर रहे हैं? Rocky Mountain Ruby 2016 का हमारा हालिया प्रायोजन समुदाय की बढ़ती विविधता को दर्शाता है। हमने जिस व्यक्ति को कॉन्फ्रेंस में भेजा वह ट्रेड से डेवलपर नहीं है - और एक पल के लिए मुझे बातचीत की तकनीकी सामग्री के बारे में चिंता थी। लेकिन उन्हे
-
Ruby एक्सेप्शन में महारत: शुरुआती के लिए चरण-दर-चरण गाइड
दूसरे दिन मैं शुरुआती लोगों के लिए लिखे गए Ruby एक्सेप्शन के परिचय की खोज कर रहा था - ऐसे लोग जो बेसिक Ruby सिंटैक्स जानते हैं लेकिन वास्तव में निश्चित नहीं हैं कि एक्सेप्शन क्या है या यह क्यों उपयोगी है। मुझे कोई नहीं मिला, इसलिए मैंने खुद इस पर एक प्रयास करने का फैसला किया। मुझे आशा है कि आप इसे उ
-
डेटाबेस प्रदर्शन को खराब करने वाले Rails इडियम्स से बचना
मुझे याद है जब मैंने पहली बार Rails का ActiveRecord देखा था। यह एक रहस्योद्घाटन था। यह 2005 की बात है और मैं एक PHP ऐप के लिए हाथ से SQL क्वेरी लिख रहा था। अचानक, डेटाबेस का उपयोग एक थकाऊ काम से, आसान और - कहने की हिम्मत करें - मजेदार बन गया। ...फिर मैंने प्रदर्शन के मुद्दों को नोटिस करना शुरू किया।
-
Ruby एक्सेप्शन हैंडलिंग में महारत: सेलेक्टिव रेस्क्यू के लिए एक स्मार्ट ट्रिक
यदि आपने पहले Ruby के एक्सेप्शन के साथ काम किया है, तो आप जानते हैं कि आप निर्दिष्ट कर सकते हैं कि कौन से एक्सेप्शन रेस्क्यू किए जाते हैं और कौन से नहीं: begin raise ArgumentError rescue ArgumentError # `ArgumentError` को रेस्क्यू करता है end ...और आप शायद यह भी जानते हैं कि जब आप एक पैरेंट को रेस्
-
बढ़ती परियोजनाओं के लिए आवश्यक डेटाबेस स्केलिंग टिप्स
जब आप एक युवा परियोजना पर काम कर रहे होते हैं तो आप लगातार ऐसे निर्णय ले रहे होते हैं जो बाद में स्केल करना आसान या कठिन बना देंगे। कभी-कभी थोड़े तकनीकी ऋण को अर्जित करके तेजी से शिप करने के लिए अल्पकालिक लाभ चुनना अच्छा होता है। लेकिन दूसरी बार हम तकनीकी ऋण उठाते हैं क्योंकि हमें नहीं पता था कि कोई
-
Sidekiq क्लस्टर्स को ऑप्टिमाइज़ करना: निर्बाध डिप्लॉयमेंट के लिए एक नया स्क्रिप्ट
Honeybadger पर हम अपने प्रोसेसिंग पाइपलाइन में Sidekiq पर बहुत अधिक निर्भर हैं। हम जो कुछ भी करते हैं वह किसी न किसी बिंदु पर एक कतार के माध्यम से चलता है। परिणामस्वरूप, मैं यह सुनिश्चित करना चाहता हूं कि हम Sidekiq को अच्छी तरह से चला रहे हैं। EC2 पर हमारे हालिया कदम के साथ, हम लंबे समय तक चलने वाल
-
Ruby 2.4 के उन्नत यूनिकोड सपोर्ट की खोज
Ruby 2.4 के साथ शिप की गई नई विशेषताओं में बेहतर यूनिकोड सपोर्ट है। विशेष रूप से, upcase और downcase जैसे मेथड्स अपेक्षा के अनुरूप काम करते हैं, ä को Ä और वापस में बदलते हैं। इसने मुझे उत्सुक बना दिया: 2013 के बाद से क्या अन्य यूनिकोड सुधार किए गए हैं जब मैंने André Arko का ब्लॉग पोस्ट Strings in R
-
Ruby में ऑब्जेक्ट्स को हैश कीज़ के रूप में उपयोग करना: एक शक्तिशाली विशेषता उजागर
यदि आप Ruby 3x3 प्रयास का अनुसरण कर रहे हैं, तो आपने शायद Optcarrot के बारे में सुना होगा। यह शुद्ध Ruby में लिखा गया एक NES एमुलेटर है। मैं हाल ही में Optcarrot सोर्स को देख रहा था और एक दिलचस्प विवरण सामने आया। यह Ruby के हैश की एक विशेषता का व्यापक उपयोग करता है जिसे अक्सर अनदेखा किया जाता है, ल
-
Honeybadger Gem v3: प्रमुख विशेषताएं, सुधार, और आपको क्या जानने की आवश्यकता है
TLDR: केवल बुलेट पॉइंट्स के लिए, CHANGELOG देखें। मैंने हाल ही में Ruby में एक्सेप्शन्स रिपोर्ट करने के लिए हमारे जेम का नवीनतम प्रमुख अपडेट शिप किया है। जबकि v2 रिलीज़ एक पूर्ण री-राइट था जिसमें एक नई कॉन्फिगरेशन रणनीति शामिल थी, v3 में कम ब्रेकिंग चेंजेस हैं लेकिन बहुत सारे फीचर और उपयोगिता सुधार
-
Ruby में यूनिकोड नॉर्मलाइज़ेशन में महारत हासिल करें: अप्रत्याशित स्ट्रिंग व्यवहार से बचें
मैंने हाल ही में एक लेख प्रकाशित किया जिसमें मैंने Ruby के अधिकांश स्ट्रिंग मेथड्स को कुछ यूनिकोड वर्णों के साथ टेस्ट किया ताकि यह देखा जा सके कि क्या वे अप्रत्याशित रूप से व्यवहार करेंगे। उनमें से कई ने किया। एक आलोचना जो कुछ लोगों ने लेख की की थी, वह यह थी कि मैं टेस्टिंग के लिए अनॉर्मलाइज़्ड स्ट
-
Ruby में मेमोइज़ेशन में महारत हासिल करें: सरल कैशिंग तकनीकों से प्रदर्शन बढ़ाएं
आज मैं प्रदर्शन में सुधार के लिए अपनी पसंदीदा तकनीकों में से एक के बारे में बात करना चाहता था। यह आसान छोटे प्रदर्शन जीत का एक स्रोत है जो अंततः जुड़ जाते हैं, और केवल कभी-कभी आपके एप्लिकेशन को धुएं के ढेर में बदल देते हैं। बहुत कभी-कभी। इस तकनीक को मेमोइज़ेशन कहा जाता है। $10 कंप्यूटर-साइंस शब्द क
-
Ruby मॉड्यूल्स को नेस्ट करते समय सामान्य नुकसान से बचें
मॉड्यूल्स (और क्लासेज) को नेस्ट करने के लिए बनाया गया है। ActiveRecord::RecordNotFound जैसे कोड फ्रैगमेंट्स इतने सामान्य हैं कि हम उनके बारे में दो बार नहीं सोचते। लेकिन Ruby के नेस्टिंग इम्प्लीमेंटेशन - और Rails के ऑटोलोड सिस्टम - के भीतर कुछ ट्रैप्स छिपे हुए हैं जो आपके कोड को अजीब और अद्भुत तरीको
-
ग्रेसफुल एग्जिट: Ruby प्रोग्राम्स को समाप्त करने के लिए सर्वोत्तम प्रथाएं
डेवलपर्स के रूप में, हम अपने प्रोग्राम्स को चलाने में इतना समय बिताते हैं कि यह देखना आसान है कि वे कैसे एग्जिट करते हैं। और यह महत्वपूर्ण है! जब आपके प्रोग्राम एग्जिट पर सही व्यवहार करते हैं, तो उन्हें प्रबंधित करना बहुत आसान हो जाता है और उनके मानक डेवऑप्स टूल्स के साथ काम करने की संभावना अधिक होत
-
Ruby में freeze और frozen का उपयोग कब करें: इम्यूटेबिलिटी के लिए सर्वोत्तम प्रथाएं
आजकल Ruby कोड में #freeze का उपयोग देखना बहुत आम है। लेकिन यह अक्सर पूरी तरह से स्पष्ट नहीं होता कि freeze का उपयोग क्यों किया जा रहा है। इस पोस्ट में हम उन सबसे सामान्य कारणों को देखेंगे जिनकी वजह से एक डेवलपर वेरिएबल्स को फ्रीज कर सकता है। प्रत्येक कारण को स्पष्ट करने के लिए, मैंने Rails कोडबेस और