14 पॉइंट द्वारा GN⁺ 2024-01-14 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • डेटा और मॉडल के साथ तेज़ी से प्रयोग किए जा सकने वाला notebook
  • cell-स्तर पर execution, automatic calculation और update
  • hidden state के बिना, हमेशा दोबारा execute किया जा सकने वाला
  • Python file के रूप में save होता है, इसलिए Git-friendly
  • notebook को pipeline में बदला जा सकता है या interactive web app के रूप में deploy किया जा सकता है

Reactive programming environment

  • marimo notebook code, output और program state की consistency सुनिश्चित करता है।
  • जब कोई cell execute होता है, तो marimo अपने-आप उन cells को update करता है जो उस variable को refer करते हैं, जिससे cells को manually दोबारा execute करने वाली गलतियाँ नहीं होतीं।
  • जब कोई cell delete किया जाता है, तो marimo program memory से उस variable को हटा देता है, जिससे hidden state समाप्त हो जाती है।
  • notebook variable references के आधार पर एक deterministic order में execute होता है, इसलिए यह page पर cell की position पर निर्भर नहीं करता।
  • slider, dropdown और dataframe transformer जैसे UI elements के साथ interaction करने पर, उन values का उपयोग करने वाले cells अपने-आप latest value के साथ दोबारा execute होते हैं।
  • marimo code का static analysis करता है और performance बेहतर करने के लिए केवल उन्हीं cells को execute करता है जिन्हें चलाना ज़रूरी है।
  • marimo में GitHub Copilot, Black code formatting, HTML export, fast code completion, VS Code extension जैसे कई convenience features शामिल हैं।

Quick start

  • install: terminal में pip install marimo या conda install -c conda-forge marimo चलाकर marimo install करें।
  • notebook बनाना: marimo editor से खाली notebook बनाएं और marimo edit your_notebook.py से किसी खास नाम वाली notebook edit करें।
  • app चलाना: marimo run your_notebook.py चलाकर notebook को web app के रूप में चलाएं। यह app marimo cloud पर deploy किया जा सकता है।
  • script के रूप में चलाना: python your_notebook.py चलाकर marimo notebook को script की तरह execute करें।
  • Jupyter notebook auto-conversion: CLI का उपयोग करके Jupyter notebook को अपने-आप marimo notebook में convert करें।
  • tutorial: marimo tutorial --help चलाकर सभी tutorials की सूची देखें।

और जानें

  • marimo में शुरुआती उपयोगकर्ता भी आसानी से शुरुआत कर सकते हैं, और यह advanced users के लिए भी कई सुविधाएँ देता है।
  • उदाहरण के लिए, marimo से बनाया गया embedding visualization tool (video) देखा जा सकता है।
  • documentation, examples/ folder और gallery के माध्यम से अधिक जानकारी प्राप्त की जा सकती है।

प्रेरणा

  • marimo Python notebooks को reproducible, interactive और shareable Python programs के रूप में फिर से कल्पित करता है।
  • इस विश्वास के साथ कि हम जिन tools का उपयोग करते हैं वे हमारी सोच को आकार देते हैं, यह Python community को एक बेहतर programming environment देने की आशा करता है।
  • इसे Pluto.jl, ObservableHQ, Bret Victor के essays और कई अन्य स्रोतों व projects से प्रेरणा मिली है।
  • marimo IPyflow, streamlit, TensorFlow, PyTorch, JAX, React आदि में मौजूद functional, declarative और reactive programming ideas से प्रेरित बड़े reactive dataflow programming आंदोलन का हिस्सा है, जो विभिन्न tools को बेहतर बनाता है।

GN⁺ की राय

  • marimo एक अभिनव reactive Python notebook है जो Jupyter notebook जैसे मौजूदा tools की सीमाओं को पार करने की कोशिश करता है, और डेटा व मॉडल प्रयोग, notebook की correctness पर भरोसा, तथा notebook को pipeline या interactive web app के रूप में production में ले जाने की क्षमता देता है।
  • यह tool code consistency और reproducibility पर ज़ोर देता है, और user interface elements के साथ interaction को सरल बनाकर programming experience को बेहतर करता है।
  • marimo data science, research और education में collaboration और sharing को आसान बनाता है, और community building के माध्यम से users के बीच interaction और knowledge sharing को बढ़ावा देने वाला platform प्रदान करता है।

1 टिप्पणियां

 
GN⁺ 2024-01-14
Hacker News राय
  • Jupyter और Observable notebook के यूज़र के तौर पर, मुझे Observable में cell reactivity की कमी महसूस हुई थी, और लगता है कि इसने उस समस्या को अच्छी तरह हल किया है। अच्छा लगा कि Marimo का file format Python में है, और Apache 2 license भी पसंद आया। GitHub Copilot feature discovery से प्रभावित हूँ।

    • Jupyter और Observable notebook इस्तेमाल करने वाले यूज़र ने Marimo के बारे में सकारात्मक प्रतिक्रिया दी, कहा कि यह cell reactivity की समस्या को अच्छी तरह हल करता है, और Python file format, Apache 2 license तथा GitHub Copilot feature की काफी सराहना की।
  • Jupyter Notebook इस्तेमाल करने वाले सहयोगियों के साथ काम करते समय environment setup और Jupyter की hidden state समस्या रही है। यह प्रोजेक्ट दूसरी समस्या को हल करने की कोशिश करता है, लेकिन इसके बदले flexibility कम हो जाती है। अगर reproducibility पर ज़ोर हो, तो यह एक स्वीकार्य trade-off हो सकता है। requirements.txt दूसरी समस्या का standard समाधान है, लेकिन इसका उपयोग झंझटभरा है।

    • Jupyter Notebook के environment setup और hidden state की समस्या की ओर इशारा करते हुए कहा गया कि यह प्रोजेक्ट बाद वाली समस्या को हल करना चाहता है, लेकिन इससे flexibility घट सकती है। requirements.txt का इस्तेमाल असुविधाजनक लगता है, और इससे बेहतर समाधान की उम्मीद जताई गई।
  • आख़िरकार कोई यह काम कर रहा है, यह देखकर खुशी हुई। Vscode extension है, लेकिन अफ़सोस है कि यह Vscode के मौजूदा notebook interface की बजाय पूरा browser view खोलता है। package management और production code deployment पर भी अपने विचार साझा किए।

    • Vscode extension को लेकर उम्मीद और थोड़ी निराशा दोनों व्यक्त की गईं, साथ ही package management और code deployment के महत्व पर ज़ोर दिया गया। प्रोजेक्ट में योगदान देने की इच्छा भी जताई गई।
  • प्लेटफ़ॉर्म को लेकर कुछ सवाल हैं: interactive widgets, और Jupyter ecosystem पर dependency व उसके साथ interaction के बारे में स्पष्टीकरण चाहिए।

    • प्लेटफ़ॉर्म में interactive widget support और Jupyter ecosystem के साथ उसके संबंध को लेकर जिज्ञासा जताई गई, और अपने widget को इस प्लेटफ़ॉर्म पर port करने में रुचि दिखाई गई।
  • मुझे लगता है Jupytext extension को जितना श्रेय मिलना चाहिए, उतना नहीं मिला। यह Jupyter की git interaction समस्याओं और ऐसी programming practices की समस्या को हल करता है जो library files लिखने में बाधा बनती हैं। उम्मीद है कि नए प्रोजेक्ट का reactive update शुरुआती प्रोग्रामरों या जटिल प्रोजेक्ट्स में उपयोगी होगा।

    • Jupytext extension की उपयोगिता पर ज़ोर देते हुए कहा गया कि नए प्रोजेक्ट के reactive updates programming beginners और complex projects दोनों के लिए मददगार हो सकते हैं।
  • dependency list छोटी है, और tornado को छोड़कर ऐसी बहुत-सी dependencies नहीं खींचता जो अतिरिक्त बोझ बनें। यह बहुत उपयोगी और शानदार प्रोजेक्ट लगता है।

    • प्रोजेक्ट की dependency list को संक्षिप्त बताया गया और कहा गया कि tornado के अलावा कोई बड़ा अतिरिक्त बोझ नहीं है। प्रोजेक्ट की उपयोगिता और आकर्षण की प्रशंसा की गई।
  • Marimo शानदार लगता है। क्या markdown में mermaid.js support जोड़ने पर विचार हो रहा है?

    • Marimo के प्रति सकारात्मक प्रतिक्रिया देते हुए markdown में mermaid.js support जोड़ने की संभावना के बारे में पूछा गया।
  • Marimo के संस्थापक Akshay और Myles का प्रशंसक हूँ, और उम्मीद है कि Jupyter को एक competitor मिलने से scientific tools ecosystem पर अच्छा असर पड़ेगा।

    • Marimo और उसके संस्थापकों के समर्थन में कहा गया कि ऐसी प्रतिस्पर्धा scientific tools ecosystem में सकारात्मक बदलाव ला सकती है।
  • मुझे लगता है Quarto इस thread में बताए गए Jupyter के कई मुद्दों को हल करता है। NIH में भी Quarto के उपयोग की सिफारिश की जाती है और training दी जाती है।

    • Quarto के बारे में कहा गया कि वह Jupyter की कई समस्याएँ हल कर सकता है, और यह भी साझा किया गया कि NIH में इसके उपयोग की सिफारिश और training दोनों दी जाती हैं।
  • एक ही variable को कई बार define करना error है। वजह साफ़ है। लेकिन अगर variable केवल उसी cell में इस्तेमाल हो जहाँ वह पहली बार लिखा गया है, तो variable name का reuse संभव होना चाहिए।

    • variable redefinition को error बताया गया, लेकिन यह राय भी रखी गई कि कुछ शर्तों के तहत variable name का दोबारा उपयोग संभव होना चाहिए।