BJJ Buddy को लाइव बनाना: Speediance वर्कआउट और AI डेव सेशन
एक असली रविवार का सेशन: BJJ Buddy में Supabase ऑथ लाइव करना, GLM 4.7 ऑफलोड समस्याओं को डीबग करना, और Whoop तथा Garmin डेटा की समीक्षा करते हुए Speediance सेट्स पूरे करना।
AI-सहायता प्राप्त बिल्ड व्यवहार में कैसा दिखता है, इसका उत्तर है: अव्यवस्थित, समानांतर, और एक पॉलिश किए गए डेमो से काफ़ी अधिक उपयोगी। पिछले रविवार, मैंने एक सत्र स्ट्रीम किया जिसका उद्देश्य दोहरा था: BJJ Buddy बैकएंड को केवल-स्थानीय प्रोटोटाइप से क्लाउड-सिंक वास्तविकता में ले जाना, और Speediance Warrior One टेम्पलेट का उपयोग करके अपनी ट्रेनिंग वॉल्यूम बनाए रखना। परिणाम एक ऐसा सत्र था जहाँ मस्तिष्क वास्तव में कभी बंद नहीं होता—आप भारी कर्ल का एक सेट कर रहे होते हैं, डेस्क तक तीन कदम चल रहे होते हैं, और रेस्ट टाइमर समाप्त होने से पहले एक विफल Supabase प्रमाणीकरण प्रवाह के लिए फिक्स की प्रॉम्प्ट-इंजीनियरिंग कर रहे होते हैं।
तकनीकी बिल्ड: BJJ Buddy को क्लाउड से जोड़ना
BJJ Buddy विकसित हो रहा है। अब तक, यह एक लोकल-फर्स्ट प्रयोग था। यह सत्र Supabase को एंड-टू-एंड जोड़कर इसे उपयोगकर्ताओं के लिए वास्तविक बनाने के बारे में था। क्लाउड-सिंक बैकएंड पर संक्रमण 'डिप्लॉय' बटन दबाने जितना कभी सरल नहीं होता; इसके लिए यह आवश्यक है कि डेटा एप्लिकेशन के माध्यम से कैसे प्रवाहित होता है, इसका व्यवस्थित पुनर्गठन किया जाए।
स्ट्रीम के दौरान मुख्य उपलब्धियों में शामिल थे:
- प्रमाणीकरण ओवरहाल: पूर्ण ईमेल और पासवर्ड प्रमाणीकरण लागू करना। हमें एक शुरुआती बाधा का सामना करना पड़ा जहाँ अकाउंट निर्माण ईमेल फायर नहीं हो रहे थे; प्रारंभिक वायरिंग शांत थी, जिससे यह महसूस करने से पहले SMTP हैंडऑफ को डिबग करने में कुछ मिनट लग गए कि listener ठीक से initialize नहीं किया गया था।
- रो लेवल सिक्योरिटी (RLS): एक फिटनेस ऐप में, डेटा गोपनीयता सर्वोपरि है। मैंने सत्र का एक महत्वपूर्ण हिस्सा ट्रेनिंग सत्र, बायोमेट्रिक्स, और प्राथमिक ट्रेनिंग लॉग तालिकाओं के लिए RLS नीतियाँ लिखने और परीक्षण करने में बिताया। यह सुनिश्चित करता है कि भले ही डेटा क्लाउड में हो, एक उपयोगकर्ता केवल अपनी पंक्तियों के साथ ही इंटरैक्ट कर सकता है।
- UI लूप: मैंने एक कार्यात्मक होम व्यू, एक सुव्यवस्थित ट्रेनिंग लॉग एंट्री स्क्रीन, और एक सत्र इतिहास व्यू बनाया। यहाँ की मुख्य विशेषता ऐतिहासिक सत्रों के लिए 'इन-प्लेस संपादन' कार्यक्षमता थी, जो उपयोगकर्ताओं को इतिहास सूची से दूर नेविगेट किए बिना वज़न या रेप गिनती को सही करने की अनुमति देती है।
- हाइब्रिड डेमो मोड: डेमो मोड बनाए रखना महत्वपूर्ण था। यह संभावित उपयोगकर्ताओं को साइन अप किए बिना इंटरफ़ेस का अन्वेषण करने और डमी सत्र लॉग करने की अनुमति देता है। प्रमाणीकरण स्थिति के आधार पर स्थानीय स्थिति और Supabase स्थिति के बीच स्विच करने वाला लॉजिक बनाना उस रात के लिए एक प्रमुख जीत थी।
बिल्ड का सबसे रोचक हिस्सा कोड स्वयं नहीं था, बल्कि वर्कफ़्लो था। ट्रेनिंग लॉग में एक सेव फ्लो जोड़ने के बाद, मैंने सफलता मोडल पर एक गायब 'बंद करें' बटन देखा। स्वयं CSS में कूदने के बजाय, मैंने माइक्रो-टास्क को संभालने के लिए अपने AI स्टैक का उपयोग किया। मैंने ARIA (मेरे प्रमुख AI एजेंट) से Clarity (एक स्थानीय सब-बॉट) को कार्य सौंपने के लिए कहा।
Clarity ने एक लोकल Qwen 3 Coder सेशन स्पॉन किया, div की पहचान की, और पैच पुश किया। पूरी हैंडऑफ़ में एक नेचुरल लैंग्वेज प्रॉम्प्ट और लगभग पंद्रह सेकंड का एक्ज़िक्यूशन टाइम लगा।
AI ऑर्केस्ट्रेशन स्टैक: ARIA, Clarity, और Nova
मेरा वर्तमान डेवलपमेंट एनवायरनमेंट एक सिस्टम का उपयोग करता है जिसे मैं OpenClaw कहता हूँ, जो एक मुख्य कंट्रोलर बॉट के रूप में विशेष सब-बॉट्स के साथ संरचित है। यह आर्किटेक्चर एक बहुत व्यावहारिक बाधा से प्रेरित है: लागत और टोकन दक्षता। मैं अपनी मासिक सब्सक्रिप्शन उपयोग का लगभग 47% पर था। अगर मैं Claude 3.5 Sonnet जैसे हाई-एंड मॉडल से हर मामूली CSS फ़िक्स या छोटी बग हंट करवाता, तो मैं महीने के मध्य तक अपना बजट ख़त्म कर देता।
इसके बजाय, मैं 'ग्रंट वर्क' के लिए लोकल मॉडल्स का उपयोग करता हूँ:
- ARIA (ऑर्केस्ट्रेटर): हाई-रीज़निंग रिमोट मॉडल जो प्रोजेक्ट आर्किटेक्चर को समझता है और टास्क डेलिगेट करता है।
- Clarity (कोडर): Qwen 3 Coder चलाने वाला एक लोकल सब-बॉट। यह असली फ़ाइल एडिट्स और सिंटैक्स को हैंडल करता है।
- Nova (रिसर्चर/डीबगर): GLM 4.7 Flash चलाने वाला एक लोकल बॉट, जिसका उपयोग डॉक्यूमेंटेशन खंगालने या एरर लॉग्स के ज़रिए रीज़निंग करने के लिए किया जाता है।
स्ट्रीम के दौरान मुझे एक दिलचस्प हार्डवेयर सीमा का सामना करना पड़ा: Nova लोड होने में लगातार विफल हो रहा था। चूँकि GLM 4.7 Flash एक नया, बड़ा मॉडल है, इसे Qwen के साथ यूनिफ़ाइड मेमोरी में फ़िट होना चाहिए। हालाँकि, बैकग्राउंड क्रॉन जॉब्स के लिए मेरा चल रहा एक छोटा Qwen 3 मॉडल अपराधी था। हर बार जब क्रॉन जॉब फ़ायर होता, यह VRAM का एक टुकड़ा अपने लिए ले लेता, जिससे सिस्टम जगह बनाने के लिए बड़े GLM मॉडल को पूल से बेदखल कर देता। जो कुछ भी Nova का काम नहीं था उसके लिए 'छोटे' मॉडल्स को पूरी तरह हटाने से स्थिरता की समस्याएँ तुरंत हल हो गईं। सबक: यूनिफ़ाइड मेमोरी सिस्टम पर, दो बड़े लोकल मॉडल सह-अस्तित्व में रह सकते हैं, लेकिन एक तीसरा 'छोटा' मॉडल अक्सर क्रैश का उत्प्रेरक होता है।
Speediance लाइव: गैप्स में ट्रेनिंग
रात के लिए वर्कआउट Warrior One था, एक कस्टम टेम्पलेट जिसे मैंने परिष्कृत किया है। मेरा वर्तमान बेंचमार्क वॉर्म-अप के लिए लगभग 20 RM है, 13 रेप्स के सेट करते हुए। नए से नया 3.1 सॉफ़्टवेयर अपडेट होने पर भी, Speediance में अभी भी एक लगातार बना रहने वाला UX फ़्रिक्शन पॉइंट है: फ़ोर्स्ड रेस्ट टाइमर। हालाँकि इसका उद्देश्य आपको चलते रहना है, लेकिन एक डेव-हैवी सेशन में, यह अक्सर मुझे डेस्क पर वापस चलने, एक प्रॉम्प्ट दर्ज करने, और फिर अगले मूवमेंट पर जाने से पहले मशीन पर वापस दौड़ने पर मजबूर करता है।
इस सेशन से Speediance हार्डवेयर और सॉफ़्टवेयर पर दो विशिष्ट टेक सामने आए:
1. सेफ़्टी स्टार्ट डिफ़ॉल्ट इश्यू: Speediance ने हाल ही में स्टैंडिंग कर्ल और अन्य लिफ़्ट्स के लिए 'सेफ़्टी स्टार्ट' फ़ीचर पेश किया है।
यह हैंडल को आगे की ओर खींचने या मशीन में वापस तेज़ी से वापस आने से रोकने के लिए बनाया गया है। हालाँकि, हाई-टू-लो स्ट्रेच के लिए (जिसका उपयोग मैं कंधे की गतिशीलता के लिए करता हूँ), सेफ़्टी स्टार्ट गति की रेंज को समाप्त कर देता है। यह केबल को तब रोक देता है जब आप स्ट्रेच के लिए आवश्यक पूर्ण विस्तार तक नहीं पहुँच पाते। इस लिफ़्ट पर मेरा सबसे भारी सेट लोड के बारे में नहीं है; यह गहराई के बारे में है। सेफ़्टी स्टार्ट प्रभावी रूप से गतिशीलता-केंद्रित लिफ़्ट को मानक, सीमित-रेंज कर्ल में बदल देता है। यह एक ऐसी सुविधा है जिसे प्रति व्यायाम 'ऑप्ट-इन' टॉगल होना चाहिए, वैश्विक डिफ़ॉल्ट नहीं। दिलचस्प बात यह है कि Tonal ने ठीक इसी कारण से कभी ऐसी कोई सुविधा जारी नहीं की—यह गति के भौतिकी में हस्तक्षेप करती है।
2. 2S रिट्रैक्शन संबंधी चिंताएँ: मैंने देखा कि मेरे Speediance 2S पर केबल रिट्रैक्शन मूल Gym Monster की तुलना में 'नरम' लगता है। लेने में थोड़ी देरी है जो पहले के हार्डवेयर में नहीं थी। Speediance अभी चीन से छुट्टियों से लौट रहा है, इसलिए मुझे उम्मीद है कि एक फ़र्मवेयर अपडेट जल्द ही मोटर कैलिब्रेशन को ठीक कर देगा।
एक और सकारात्मक नोट पर, हार्डवेयर स्थायित्व की परीक्षा तब हुई जब मैंने गलती से स्मार्ट हैंडल को गलत साइड पर लगाकर एक सेट शुरू कर दिया और बीच में ही एक को गिरा दिया। हार्डवेयर ने एक भी पल नहीं रुककर काम किया। यह एक मज़बूत किट है जो कभी-कभार होने वाली 'लाइवस्ट्रीम ब्रेन' गलतियों से बच जाता है।
वियरेबल्स स्टैक: Garmin बनाम Whoop
लिफ़्ट के दौरान, मैं Garmin और Whoop दोनों की निगरानी कर रहा था। वे मेरे पारिस्थितिकी तंत्र में अलग-अलग स्वामियों की सेवा करते हैं। जबकि लोग अक्सर पूछते हैं कि कौन सा 'बेहतर' है, इस सत्र ने उजागर किया कि मैं दोनों को अपनी कलाई पर क्यों रखता हूँ।
| प्लेटफ़ॉर्म | प्राथमिक मेट्रिक | आज रात यह क्यों मायने रखता था |
|---|---|---|
| Whoop | रिकवरी % और स्ट्रेन | Whoop ने 35% रिकवरी दिखाई। इसने मुझे बताया कि मुझे Speediance पर PR के लिए ज़ोर नहीं लगाना चाहिए। मैं 'मेंटेनेंस' वॉल्यूम ज़ोन में रहा। |
| Garmin | ट्रेनिंग लोड चार्ट | मैंने इसका उपयोग अपनी एरोबिक बेस प्रगति को ट्रैक करने के लिए किया। मैं वर्तमान में काफ़ी वज़न उठाते हुए रेस की तैयारी कर रहा हूँ, और 4-सप्ताह का लोड चार्ट मेरी बाइबल है। |
| कस्टम डैश | संयुक्त मॉर्निंग रिपोर्ट | यह दोनों को एकत्र करके सुझाव देता है कि कल मुझे दौड़ना चाहिए या नहीं। चूँकि आज रात का स्ट्रेन मध्यम था, कल जाने का दिन है। |
Garmin विरोधाभासों का अध्ययन बना हुआ है। 'ट्रेनिंग लोड' चार्ट मेरी वर्तमान रेस तैयारी के लिए सबसे महत्वपूर्ण एकल स्क्रीन है, फिर भी यह मोबाइल ऐप में पाँच स्तर गहराई में दबा हुआ है (परफ़ॉर्मेंस स्टैट्स > ट्रेनिंग स्टेटस > लोड)। यह एक महत्वपूर्ण उत्पाद चूक है कि यह संकेत इतने शोर के पीछे छिपा हुआ है।
इसके अलावा, Garmin अभी भी 'सुझाई गई वर्कआउट पालन' को एक नज़र में देखने का कोई तरीका प्रदान नहीं करता है, जिससे यह देखना मुश्किल हो जाता है कि आप वास्तव में एक महीने की अवधि में योजना का पालन कर रहे हैं या नहीं।
बीच में मैंने एक महत्वपूर्ण सुधार किया: मेरी अधिकतम हृदय गति लगभग आठ साल पुराने डेटा के आधार पर गलत तरीके से सेट की गई थी। इससे हर वर्कआउट 'कम एनारोबिक' के रूप में दर्ज होता। इसे मेरी वर्तमान शारीरिक वास्तविकता के अनुसार अपडेट करने से तुरंत लोड वितरण चार्ट ठीक हो गया और सुझाए गए वर्कआउट फिर से वास्तव में उपयोगी बन गए।
अपने सबसे अधिक वज़न पर दौड़ के लिए प्रशिक्षण
मैं वर्तमान में अपने अब तक के सबसे भारी शरीर के वज़न पर एक दौड़ के लिए प्रशिक्षण ले रहा हूँ। शारीरिक प्रतिक्रिया आकर्षक है। सात साल पहले, जब मैं शुद्ध रूप से धावक था, मेरा प्रशिक्षण भार वक्र दो सप्ताह में चरम पर पहुँच जाता था। अब, उसी 'हरी रेखा' को ऊपर देखने के लिए लगभग आठ सप्ताह के लगातार प्रयास की आवश्यकता होती है। एक भारी, बड़ा शरीर धीमे प्रतिक्रिया करता है, लेकिन डेटा पुष्टि करता है कि प्रगति अधिक स्थिर है। यह 2022 से पहले के बाद से मेरी सबसे अच्छी शारीरिक स्थिति है, भले ही पैमाना कहता है कि मैं पारंपरिक धावक के लिए 'विनिर्देश से बाहर' हूँ।
सत्र से मुख्य सीख
- एजेंटिक वर्कफ़्लो: API टोकन बजट के भीतर rहते हुए विकास को स्केल करने का एकमात्र तरीका मुख्य-बॉट प्लस उप-बॉट सेटअप है। Qwen 3 Coder जैसे स्थानीय मॉडल अब UI कार्यों के 80% के लिए 'पर्याप्त अच्छे' हैं।
- Garmin UX: सबसे महत्वपूर्ण डेटा अक्सर सबसे ख़राब जगह पर होता है। यदि आप 'लोड' उप-मेनू में गहराई से नहीं देख रहे हैं, तो आप Garmin पारिस्थितिकी तंत्र का वास्तविक मूल्य खो रहे हैं।
- Speediance सुरक्षा: उपयोगकर्ताओं को नई 'सुरक्षा शुरुआत' के साथ सतर्क रहना चाहिए। यह शुरुआती लोगों के लिए बढ़िया है, लेकिन उन्नत गतिविधियों में सक्रिय रूप से बाधा डाल सकती है जिनके लिए पूर्ण गति-श्रेणी का खिंचाव आवश्यक है।
- समानांतर मस्तिष्क: प्रशिक्षण के साथ-साथ AI के साथ निर्माण करना केवल समय बचाने के बारे में नहीं है; यह 'संदर्भ-स्विचिंग' थकान के बारे में है। सूक्ष्म निर्णयों को संभालने के लिए AI का उपयोग करने से आप अपनी संज्ञानात्मक ऊर्जा को भारी सेट और उच्च-स्तरीय वास्तुकला के लिए बचा सकते हैं।
BJJ Buddy बैकएंड वॉकथ্রू और Smart Handles ड्रॉप सहित पूरा सत्र सदस्यों के लिए संग्रहीत है। यदि आप प्रॉम्प्ट और रेप्स के असंपादित प्रवाह को देखना चाहते हैं, तो लिंक नीचे है।
YouTube पर पूरा Build BJJ Buddy Live प्लस Speediance AI Dev Session देखें।