1 पॉइंट द्वारा GN⁺ 2023-10-21 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • सख्त डिफ़ॉल्ट Firefox और JavaScript की अनुमति देने वाले सहायक Firefox को अलग-अलग इस्तेमाल किया जाता है, और जिन साइटों पर लंबे समय तक लॉग-इन रहना ज़रूरी होता है उनके लिए अतिरिक्त Firefox प्रोफ़ाइल अलग रखी जाती है
  • सहायक Firefox में प्रोफ़ाइल के बजाय Unix पर चलाने से पहले $HOME environment variable बदलकर उसे पूरी तरह अलग किया जाता है, और बंद करते समय cookies और session फेंक देने के लिए इस्तेमाल किया जाता है
  • कुछ साइटें हर बार multi-factor authentication, ईमेल पुष्टि, और लंबी multi-step login प्रक्रिया मांगती हैं, इसलिए cookies बनाए न रखने पर उपयोग का प्रवाह बहुत धीमा हो जाता है
  • साइट-विशेष प्रोफ़ाइलों में uBlock Origin और Cookie AutoDelete डाले जाते हैं ताकि सिर्फ़ ज़रूरी cookies ही बनी रहें और बाकी अपने-आप साफ़ हो जाएँ
  • Firefox Multi-Account Containers भी एक विकल्प हो सकता है, लेकिन अलग प्रोफ़ाइलों में extension settings तक अलग रहती हैं, इसलिए उनके व्यवहार पर भरोसा करना आसान होता है

दो Firefox environments को अलग करके इस्तेमाल करने का तरीका

  • सामान्य browsing customized Firefox में की जाती है
    • सख्त settings और extensions का उपयोग किया जाता है
    • ज़्यादातर JavaScript नहीं चलाया जाता
    • कई साइटों पर लॉग-इन किए बिना इस्तेमाल किया जाता है
  • जिन साइटों को JavaScript चाहिए, उनके लिए अलग “just make it work” Firefox environment इस्तेमाल किया जाता है
    • JavaScript चलाया जाता है
    • cookies स्वीकार की जाती हैं और फिर दोबारा भेजी जाती हैं
    • browser बंद होने पर cookies और session दोनों हटा दिए जाते हैं
  • यह सहायक environment Firefox profile नहीं है, बल्कि Unix में चलाने से पहले $HOME environment variable बदलने के तरीके से बनाया गया है
    • Firefox Unix पर $HOME का पालन करता है
    • दोनों environments पूरी तरह अलग रहते हैं, जिससे संभावित समस्याओं से बचा जा सकता है

लॉग-इन बनाए रखने की ज़रूरत वाली साइटों के लिए अलग प्रोफ़ाइल

  • कुछ websites को JavaScript और लॉग-इन दोनों चाहिए, लेकिन उनकी लॉग-इन प्रक्रिया बेहद झंझट वाली होती है
    • हर बार physical token के साथ multi-factor authentication करना पड़ता है
    • हर लॉग-इन पर ईमेल भेजी जाती है
    • लंबी और धीमी multi-step login प्रक्रिया से गुजरना पड़ता है
  • ऐसी साइटों के लिए जितना संभव हो उतना कम लॉग-इन करने हेतु login cookies बनाए रखना ज़रूरी है
    • कुछ साइटों के पास महत्वपूर्ण permissions होती हैं, इसलिए लॉग-इन स्थिति में रहते हुए कहीं और हल्की-फुल्की browsing करना असहज लगता है
  • इसका समाधान JavaScript Firefox setup के अंदर साइट-विशेष अतिरिक्त प्रोफ़ाइल बनाना है
    • हर झंझट वाली website के लिए एक-एक profile रखी जाती है
    • हर profile में Firefox addons का मानक सेट install किया जाता है
    • मुख्य addons हैं uBlock Origin और Cookie AutoDelete
  • Cookie AutoDelete को इस तरह सेट किया जाता है कि वह उस साइट या उससे जुड़ी साइटों के लिए ज़रूरी cookies ही रखे और बाकी को साफ़ कर दे
    • अतिरिक्त cookies उस दौरान बनती हैं जब उस साइट के links का पीछा करते हुए कहीं और जाया जाता है
    • शुरुआत में यह समझने में थोड़ा काम लगता है कि किस साइट की कौन-सी cookies बचाकर रखनी हैं
    • सेटअप के बाद ये profiles स्थिर रूप से काम करती हैं
  • हर profile में JavaScript चलाने की अनुमति वाली साइटों को सीमित भी किया जा सकता है, लेकिन व्यवहार में यह बहुत झंझट वाला है
  • Firefox Multi-Account Containers भी इस्तेमाल किया जा सकता है, लेकिन अलग profiles ज़्यादा पसंद की जाती हैं
    • शुरुआती setup में ज़्यादा काम लग सकता है
    • profiles extension settings समेत एक-दूसरे से पूरी तरह अलग रहती हैं
    • containers में कई तत्वों का परस्पर प्रभाव स्थिति के अनुसार बदल सकता है
  • आम तौर पर जो addons जोड़े जाते हैं उनमें Foxy Gestures, Cookie Quick Manager, Certainly Something शामिल हैं
    • Foxy Gestures, Firefox इस्तेमाल के अनुभव का एक अहम हिस्सा है
    • Certainly Something का उपयोग TLS certificate की जाँच के लिए किया जाता है
    • कुछ profiles में tracking mitigation के लिए अतिरिक्त addons भी जुड़ गए हैं
    • हाल में readable और fixed के लिए bookmarklet buttons भी install किए गए हैं

1 टिप्पणियां

 
GN⁺ 2023-10-21
Hacker News राय
  • Firefox का असली रत्न Containers हैं। दूसरे browsers में ऐसा कुछ नहीं है, और Chrome में यह निर्णायक रूप से गायब है
    इसका मतलब सिर्फ “private window खोलो” नहीं है, बल्कि यह है कि आप 1 + व्यावहारिक रूप से अनगिनत profiles/containers बना सकते हैं। Firefox में Temporary Containers extension है, जिससे हर नए tab के लिए temporary container बनता है और default रूप से isolation हो जाता है। मैंने इसे ऐसा सेट किया है कि Ctrl दबाकर link क्लिक करने पर वह उसी existing container के नए tab में खुले, और sessions को सिर्फ तभी मिलाया जा सके जब मैं मिलाना चाहूं। Proxy Containers से हर tab के लिए अलग proxy route इस्तेमाल करना भी संभव है
    Chrome और developer tools की खूबियां बहुत हैं, और Mozilla ने कई समस्याएं पैदा की हों, फिर भी मैं Firefox के mission का ज्यादा सम्मान करता हूं। लेकिन फायदे-नुकसान से अलग, क्योंकि यह अकेला browser है जिसमें यह सब किया जा सकता है, मैं Firefox से बंधा हुआ हूं

    • कुछ दिन पहले मुझे कई AWS accounts में login करने वाला एक छोटा presentation देना था, लेकिन लोगों की रुचि असल presentation से ज्यादा इस बात में थी कि अलग-अलग tabs में कई AWS accounts खोलकर उनके बीच switch कैसे किया जा रहा है
      मैं एक add-on इस्तेमाल कर रहा हूं जो SSO screen से खुलने वाले हर AWS account के लिए अपने-आप नया container बनाता है। Browser में gmail टाइप करने पर 3 accounts दिखते हैं, और चुने गए account के आधार पर सही container में खुलता है, इसलिए तीनों accounts को एक साथ खुला रखा जा सकता है, बिना झंझट के
    • मैंने containers को कुछ समय तक इस्तेमाल किया, लेकिन वे काफी अधूरे लगे
      उदाहरण के लिए, container की sites list edit नहीं की जा सकती, और सिर्फ currently loaded FQDN ही जोड़ा जा सकता है। *.google.com को Google container में assign नहीं किया जा सकता; हर subdomain को सचमुच खोलकर एक-एक करके जोड़ना पड़ता है
      इससे भी बदतर, अगर जिस host को जोड़ना है वह redirect chain के बीच में हो, तो उसे जोड़ने का कोई तरीका नहीं दिखता। mail.google.com पहले accounts.google.com पर जाता है और फिर जल्दी से वापस mail.google.com पर लौट आता है, लेकिन accounts.google.com को list में डालने का तरीका नहीं है। इसलिए “सिर्फ निर्दिष्ट sites तक सीमित” feature असल में इस्तेमाल करने लायक नहीं था। लगता है Mozilla ने सोचा कि sites list में add button और text input box देना users के लिए बहुत ज्यादा होगा
      साथ ही, सिर्फ एक container चुनकर cookies और site data हटाना, या named containers को छुए बिना सिर्फ default container साफ करना भी संभव नहीं था, जिससे अक्सर दिक्कत हुई। आखिरकार मैंने ज्यादा RAM खरीदी और अलग profiles पर वापस लौट गया
    • Chrome में Containers जोड़ना कुल मिलाकर शायद ज्यादा मायने नहीं रखेगा। आखिरकार Google हर चीज तक पहुंच सकता है
      यह कुछ वैसा ही है जैसे Android पर VPN लगाकर Google account से login रहते हुए Maps जैसी चीजें लगातार इस्तेमाल करना। Chrome में design के स्तर पर privacy नहीं है
      Firefox और Chrome की बात साथ में करते समय यह फर्क महत्वपूर्ण है। Privacy के नजरिए से दोनों की तुलना करना apples और oranges की तुलना जैसा है
    • Temporary Containers extension maintain नहीं हो रहा है: https://github.com/stoically/temporary-containers/issues/618
    • Firefox Containers conceptually शानदार हैं, लेकिन UI/UX थोड़ा कमजोर लगता है। अच्छा होगा अगर इन्हें Arc के Spaces की तरह साफ-सुथरे तरीके से व्यवस्थित किया जा सके
  • Firefox profiles को बहुत कम आंका जाता है, और लगता है असल में भी कम इस्तेमाल किया जाता है
    हर profile के लिए shortcut बनाकर launch command को firefox --no-remote -P profilenamehere रखता हूं। तब profile management dialog लगभग देखना नहीं पड़ता, और हर profile को अलग browser की तरह इस्तेमाल किया जाता है
    काम और personal browsing को अलग रखना आसान है, और अलग-अलग extensions आजमाने के लिए भी अच्छा है। उदाहरण के लिए, एक profile में Treestyletabs और दूसरी profile में Sidebery रखकर दोनों को खुद evaluate किया जा सकता है। Firefox के दो profiles चलाने पर memory usage भी Firefox और Chromium-based browser को साथ चलाने की तुलना में काफी कम होता है

    • मुझे profiles खास पसंद नहीं हैं। Discord पर दोस्तों द्वारा भेजे गए मजेदार links को Personal profile में, और Slack के work links को Professional profile में खुलवाना मुश्किल या असंभव लगा
      आखिरकार मैंने एक profile config file और दो symbolic links के बीच switch करने के लिए keyboard shortcut बनाया, और current selected profile को top bar में दिखाने वाला Gnome extension भी जोड़ दिया। Work hours में एक profile और शाम को दूसरा profile इस्तेमाल करता था, लेकिन यह धीमा था, दूसरे computer पर ले जाना मुश्किल था, और कुल मिलाकर messy था
      अब मैं Firefox containers इस्तेमाल कर रहा हूं और कुल मिलाकर संतुष्ट हूं। बस अच्छा होगा अगर currently selected tab के हिसाब से bookmark bar भी बदल जाए
    • सच कहूं तो launch arguments छेड़ने पड़ते हैं, यही शायद इसके इतने कम इस्तेमाल होने की वजह है
    • Profile switching extension का local app install मांगना अफसोसजनक है
      Firefox को यह feature ठीक से integrate करना चाहिए: https://addons.mozilla.org/en-GB/firefox/addon/profile-switc...
    • उपयोगी tip है। मुझे कई Microsoft Live/AD/Teams accounts access करने होते हैं, लेकिन same browser session में वे ठीक से काम नहीं करते
      इसलिए मैं उन्हें Chrome profiles में अलग करता आया हूं। Firefox profiles मुझे थोड़ा rough लगे, और profile-specific shortcuts बनाने का खयाल अजीब तरह से कभी आया ही नहीं था
    • Treestyletabs और Sidebery को evaluate करने के लिए उन्हें अलग browser या profile में रखने की जरूरत नहीं है। आप तुरंत बदल सकते हैं कि कौन सा extension sidebar occupy करेगा
      Grasshopper[1] और Tab Center Reborn या Sidebery को साथ इस्तेमाल करते हुए, जरूरत के feature के हिसाब से उसी समय switch करता हूं
      [1]https://news.ycombinator.com/item?id=37306058
  • मैं Firefox 0.9 से इस्तेमाल कर रहा यूज़र हूं। यहां की प्रतिक्रियाएं देखकर लगता है कि Firefox के लिए लोगों में काफी लगाव है
    लेकिन profile UI और management experience Chrome/Edge की तुलना में सचमुच बहुत खराब है। Container tabs इसका विकल्प नहीं हैं। काम और निजी इस्तेमाल के profiles तो bookmarks तक share नहीं करते। मुझे पता है कि third-party add-ons हैं जिनके लिए अतिरिक्त software install करना पड़ता है, लेकिन इससे समस्या और साफ दिखती है
    यह issue 13 साल पहले ही report हो चुका था: https://bugzilla.mozilla.org/show_bug.cgi?id=662025
    इसलिए अभी मैं Firefox सिर्फ personal use के लिए इस्तेमाल करता हूं, और बाकी के लिए Chrome/Edge profiles इस्तेमाल करता हूं। Firefox पर टिके रहने की मेरी इकलौती वजह उसका Android version है। अगर Android पर Edge/Chrome में uBlock Origin चलने लगे, तो शायद मैं Firefox छोड़ दूंगा

    • Safari ने इस मामले में profiles implementation सच में बहुत अच्छी की है। bookmarks, history, sessions अलग-अलग हैं और tab groups भी अलग हैं। Firefox भी बहुत दूर नहीं है; बस experience को polish करने की जरूरत लगती है
    • updated profile system के बजाय container tabs चुनना Firefox का खराब फैसला था। इसी वजह से यह पीछे ही रहेगा
    • Firefox Quantum से पहले, यानी XUL-based add-ons छोड़ने से पहले, third-party add-ons के जरिए profile switching को ज्यादा आसान बनाया जा सकता था
      अब मैं Firefox profiles लगभग इस्तेमाल नहीं करता, और Chrome में अलग-अलग कामों के लिए 5–6 profiles इस्तेमाल करता हूं। क्योंकि यह कहीं ज्यादा आसान है
    • address bar में about:profiles टाइप करके मनचाहा profile चुनना इतना बुरा है क्या? या -p option वाला shortcut बनाकर Firefox शुरू करते समय चुन सकते हैं
      सच में जानना चाहता हूं कि Chrome/Edge में ऐसा कौन-सा हिस्सा है जो निर्णायक फर्क पैदा करता है
    • Android पर मैं कभी-कभी Kiwi Browser इस्तेमाल करता हूं, जिसमें uBlock Origin load किया जा सकता है
  • अगर Mozilla container के हिसाब से कौन-से extensions चालू करने हैं, यह चुनने दे, तो शायद मैं संतुष्ट हो जाऊं
    [1] https://addons.mozilla.org/en-US/firefox/addon/multi-account...

    • अच्छा होगा अगर कोई website खोलते समय याद रखे गए containers में से चुनने के लिए पूछे। उदाहरण के लिए 15 containers में से कोई खास site सिर्फ 2 में ही इस्तेमाल होती है, तो नई instance खोलते समय मैं पूरी list नहीं, सिर्फ उन्हीं दो में से चुनना चाहूंगा
    • about:profiles इस्तेमाल न करने की कोई वजह है?
    • उस feature का use case जानना चाहूंगा
    • यह operating system level के user accounts से किया जा सकता है
  • मैं Firefox profiles काफी इस्तेमाल करता हूं, लेकिन मुख्य रूप से दो features चाहता हूं
    पहला, profiles को बेहतर तरीके से अलग पहचानने के लिए रंग जैसे visual differences दिए जा सकें। कई profiles के browsers साथ-साथ खुले हों तो भ्रम होना आसान है
    दूसरा, पहले से चल रहे profile को गलती से फिर खोलने पर UX बेहतर होनी चाहिए। अभी यह timeout का इंतजार करता है और फिर error message दिखाता है। इसके बजाय पहले से चल रही window पर focus कर देना चाहिए

    • visual distinction तो बस अलग-अलग themes इस्तेमाल करने से पूरी तरह हल हो जाती है
    • अलग पहचान के लिए मैं https://color.firefox.com/ इस्तेमाल करता हूं। यह Mozilla ने कुछ साल पहले बनाया हुआ काफी अच्छा theme system है, लेकिन करीब एक हफ्ता promote करने के बाद उन्होंने इसका फिर कभी जिक्र नहीं किया
      शायद इसलिए कि वे अपने-आप गायब हो जाने वाले बेवकूफाना themes, यानी “Colorways drops”, को ज्यादा promote करना चाहते थे
    • मैंने दोनों समस्याएं हर profile के लिए अलग .desktop entry बनाकर और हर एक में अलग theme व custom icon लगाकर हल कीं
      इससे window manager में पता चल जाता है कि कौन-सा profile खुला है, और theme देखकर समझ आता है कि अभी कौन-सा profile देख रहे हैं। icon से किसी खास profile को launch कर सकते हैं, या Super दबाकर ffwork टाइप कर सकते हैं, या अगर वह पहले से खुला हो तो right-click करके नई window खोल सकते हैं
      मुख्य समस्या यह है कि इसे कई machines पर कई बार फिर से set up करने के बाद भी हर बार तरीका भूल जाता हूं। Firefox flags और .desktop values का कौन-सा combination चाहिए, यह हमेशा याद नहीं रहता। शायद यह link सही है: https://askubuntu.com/questions/1209434/how-to-display-two-d...
    • अभी तुरंत किया जा सकने वाला तरीका यह है कि अलग virtual desktop इस्तेमाल करें और हर profile को अलग desktop पर रखें। गलती न हो, इसके लिए थोड़े अनुशासन की जरूरत होगी
    • Brave profiles इस्तेमाल करने की वजह वही visual distinction है। taskbar icon और browser chrome में अलग-अलग रंग दिए जा सकते हैं, इसी वजह से मैंने पहली बार Brave आजमाया था, और अब यह ऐसा feature बन गया है जिसके बिना काम नहीं चलता
  • हर client/entity और किसी खास activity के लिए Chrome/macOS में कई instances और एक अलग instance रखता हूं
    हर browser के extensions और ad-blocking rules अलग हैं। उदाहरण के लिए social media browser के अलावा Hacker News पर नहीं जा सकता। मुख्य development browser में development के extensions ज्यादा हैं
    tab management भी आसान हो जाता है। बस “work browser” बंद कर दो। सभी के अलग instances, icons और colors हैं। आदतन time-wasting sites पर जाने की कोशिश भी करूं, तो media browser न होने पर error आ जाता है, इसलिए focus में मदद मिलती है
    इसे पूरी तरह सही चलाना आसान नहीं था। Chrome की कई instances बनानी पड़ीं, और इसका मतलब app signing भी करना था। सभी profiles और app data अलग folders में रखता हूं। ऐसा न करें तो cmd-tab से दूसरे browser पर switch नहीं कर सकते

    • मैं भी यही approach इस्तेमाल करता हूं, और उस आदत को mobile तक बढ़ा दिया है
      मजे के लिए browsing करते समय Ublock Origin जैसे extensions वाला normal Android Firefox इस्तेमाल करता हूं, हमेशा private mode में browsing के लिए वही extensions वाला Firefox Beta इस्तेमाल करता हूं, और काम Chrome में करता हूं
      profiles भी आजमाए थे, लेकिन उन्हें संभालना बहुत थकाऊ था। खासकर macOS में एक ही application की कई windows को handle करने के तरीके की वजह से
    • Brave profiles को बेहतरीन तरीके से handle करता है। sync chain भी है, इसलिए online account की जरूरत नहीं पड़ती। अफसोस कि mobile browser में सिर्फ एक ही profile है, जो परेशान करता है। implementation इतना मुश्किल तो नहीं होना चाहिए
  • इस बात से इनकार नहीं कि Firefox profiles शानदार हैं। और JavaScript को disable करना भी बहुत अहम है, इसलिए NoScript बहुत लंबे समय से इस्तेमाल करता आया हूँ
    लेकिन JavaScript को चालू/बंद करने के लिए दो profiles के बीच आना-जाना बहुत बड़ी झंझट जैसा लगता है। NoScript में सिर्फ shift+t दबाने से उस tab की पाबंदी अस्थायी रूप से हटाई जा सकती है
    NoScript मुख्य रूप से उन अनपेक्षित, अज्ञात tabs को रोकता है जिन्हें malware खोल देता है। लेकिन The Register या Etsy जैसी बड़ी sites पर जरूरी काम करते समय इसे बंद रखा जा सकता है
    NoScript में जो feature मैं जरूर देखना चाहूंगा, वह है domain के हिसाब से global disable करने की सुविधा। क्योंकि AWS assets शामिल करते समय random CloudFront subdomains इस्तेमाल करता है। मैं *.cloudfront को allowlist में नहीं डालना चाहता। क्योंकि कोई भी उस पर malware host कर सकता है

    • uMatrix और uBlock Origin देखकर देखें
  • मजेदार बात यह है कि --class flag इस्तेमाल करने पर हर Firefox instance को अलग-अलग X window class दी जा सकती है। फिर window manager को configure करके उस class की window को सबसे आगे लाया जा सकता है
    उदाहरण के लिए StumpWM config में कुछ ऐसा डाल रखा है:
    (defcommand javascript-firefox ()
    (run-or-raise "firefox -P Javascript --class Firefox-javascript" '(:class "Firefox-javascript")))
    (define-key *top-map* (kbd "H-F") "javascript-firefox")
    तब सिर्फ hyper-shift-f टाइप करने पर JavaScript वाला Firefox अगर पहले से हो तो ऊपर आ जाता है, और न हो तो launch हो जाता है। वहीं hyper-f सामान्य Firefox को ऊपर लाता है
    जोरदार सिफारिश करता हूँ। उम्मीद है आगे भी इसे इस्तेमाल कर पाऊंगा। क्या Wayland भी window classes और hyper key को support करता है?

  • हाल ही में यह तरीका शुरू किया है, और Firefox profiles की theme भी बदल दी है ताकि याद रहे कि सभी windows बंद करनी हैं
    अलग-अलग रखने का एहसास संतोषजनक है, और desktop environment में कुछ चीजों को restricted apps की तरह चलाने के लिए भी काफी उपयोगी है
    इसमें बेहतर करने की गुंजाइश बहुत है। जैसे websites के लिए Android/iOS जैसी permissions को crowdsource करने का तरीका भी संभव लगता है

  • शायद यह unpopular राय हो, लेकिन मुझे लगता है कि वह समय बीत चुका है जब JavaScript web का optional हिस्सा था। अब यह web का intrinsic component है
    हमें यह स्वीकार करना होगा कि हम JavaScript से पहले वाले दौर में वापस नहीं जा सकते। websites को non-script version बनाने के लिए मनाने के बजाय, JavaScript को सुरक्षित बनाने के solutions खोजने होंगे। जवाब मुझे नहीं पता, लेकिन sandboxing, security domains और समृद्ध permissions model पर विचार करना बनता है

    • कम से कम अगर threat model में वैश्विक surveillance panopticon से बचना शामिल है, तो JavaScript सुरक्षित नहीं हो सकता
      default रूप से arbitrary code execution की अनुमति देना सुरक्षित नहीं हो सकता
      JavaScript के 90% use cases पूरी तरह गैर-जरूरी हैं, और सिर्फ ad-based web में ही समझ आते हैं
    • जब JavaScript बंद करके web browse करने की बात सुनता हूँ तो सोचता हूँ कि वह अनुभव कैसा होगा
      इसे खारिज करने की कोशिश नहीं है, लेकिन अपनी browsing habits में JavaScript के बिना क्या होगा, इसकी कल्पना ही नहीं कर पाता। शायद यह असलियत से ज्यादा खराब सुनाई देता हो
    • यह कहना गलत नहीं कि JavaScript लगभग अनिवार्य हो चुका है, लेकिन यह सिर्फ de facto standard है। इसे आधिकारिक तौर पर अनिवार्य करना गलत है
      दुर्भाग्य से web JavaScript से भी खराब हालत में पीछे चला गया है। यह किसी खास browser, यानी सिर्फ Chrome, को support करने की दिशा में जा रहा है। हाल का उदाहरण: Air India website पर Firefox से flight ticket booking नहीं होती, लेकिन Chrome में हो जाती है
    • मैं Qubes OS इस्तेमाल करता हूँ, इसलिए रंगीन window borders वाले कई sandboxed Firefox instances चला सकता हूँ
      हर Firefox बिना data वाली अपनी VM के अंदर चलता है, इसलिए JavaScript को बिना डर के चलाता हूँ