14 puan yazan GN⁺ 2024-01-14 | 1 yorum | WhatsApp'ta paylaş
  • Veri ve modellerle hızlıca denemeler yapmayı sağlayan bir not defteri
  • Hücre bazlı çalışma, otomatik hesaplama ve güncelleme
  • Gizli durum olmadan her zaman yeniden çalıştırılabilir
  • Python dosyası olarak kaydedildiği için Git dostu
  • Not defterleri pipeline'a dönüştürülebilir veya interaktif web uygulamaları olarak dağıtılabilir

Reaktif programlama ortamı

  • marimo, not defteri kodu, çıktı ve program durumunun tutarlılığını garanti eder.
  • Bir hücre çalıştırıldığında marimo, ilgili değişkene başvuran hücreleri otomatik olarak günceller ve hücreleri elle yeniden çalıştırmaktan kaynaklanan hataları önler.
  • Bir hücre silindiğinde marimo, ilgili değişkenleri program belleğinden kaldırarak gizli durumu ortadan kaldırır.
  • Not defterleri, değişken başvurularına dayalı deterministik bir sırayla çalışır ve sayfadaki hücre konumuna bağlı değildir.
  • Slider, dropdown ve dataframe dönüştürücü gibi UI öğeleriyle etkileşime girildiğinde, bu değerleri kullanan hücreler otomatik olarak en güncel değerlerle yeniden çalıştırılır.
  • marimo, kodu statik olarak analiz ederek yalnızca çalıştırılması gereken hücreleri çalıştırır ve performansı artırır.
  • marimo; GitHub Copilot, Black kod biçimlendirme, HTML dışa aktarma, hızlı kod tamamlama ve VS Code eklentisi gibi çeşitli kullanım kolaylıkları içerir.

Hızlı başlangıç

  • Kurulum: Terminalde pip install marimo veya conda install -c conda-forge marimo komutunu çalıştırarak marimo'yu kurun.
  • Not defteri oluşturma: marimo editor ile boş bir not defteri oluşturun ve marimo edit your_notebook.py ile belirli isimdeki bir not defterini düzenleyin.
  • Uygulama çalıştırma: marimo run your_notebook.py komutunu çalıştırarak not defterini web uygulaması olarak çalıştırın. Bu uygulama marimo cloud'a dağıtılır.
  • Betik olarak çalıştırma: python your_notebook.py komutunu çalıştırarak marimo not defterini bir betik olarak çalıştırın.
  • Jupyter not defterlerini otomatik dönüştürme: CLI kullanarak Jupyter not defterlerini otomatik olarak marimo not defterlerine dönüştürün.
  • Eğitimler: marimo tutorial --help komutunu çalıştırarak tüm eğitimleri listeleyin.

Daha fazlasını keşfedin

  • marimo, yeni başlayanların da kolayca başlayabilmesini sağlar ve profesyonel kullanıcılar için çeşitli özellikler sunar.
  • Örneğin, marimo ile yapılmış embedding görselleştirme aracını (video) inceleyebilirsiniz.
  • Dokümantasyon, examples/ klasörü ve galeri üzerinden daha fazla bilgi edinebilirsiniz.

İlham

  • marimo, Python not defterlerini yeniden üretilebilir, etkileşimli ve paylaşılabilir Python programları olarak yeniden tasarlar.
  • Kullandığımız araçların düşünme biçimimizi şekillendirdiğine olan inançla, Python topluluğuna daha iyi bir programlama ortamı sunmayı amaçlar.
  • Pluto.jl, ObservableHQ, Bret Victor'un makaleleri ve daha birçok yer ile projeden ilham alır.
  • marimo; IPyflow, streamlit, TensorFlow, PyTorch, JAX ve React gibi araçları geliştiren işlevsel, bildirime dayalı ve reaktif programlama fikirlerinin yer aldığı daha geniş reaktif dataflow programlama hareketinin bir parçasıdır.

GN⁺ görüşü

  • marimo, mevcut Jupyter not defteri benzeri araçların sınırlarını aşmayı amaçlayan yenilikçi bir reaktif Python not defteridir; veri ve model deneylerini, not defterinin doğruluğundan emin olmayı ve not defterlerini pipeline ya da interaktif web uygulamalarına dönüştürmeyi mümkün kılar.
  • Bu araç, kod tutarlılığı ve yeniden üretilebilirliğe önem verir; kullanıcı arayüzü öğeleriyle etkileşimi sadeleştirerek programlama deneyimini iyileştirir.
  • marimo, veri bilimi, araştırma ve eğitim alanlarında iş birliği ve paylaşımı kolaylaştırır; topluluk oluşturma yoluyla kullanıcılar arasında etkileşimi ve bilgi paylaşımını teşvik eden bir platform sunar.

1 yorum

 
GN⁺ 2024-01-14
Hacker News görüşleri
  • Jupyter ve Observable notebook kullanıcısı olarak Observable'da hücre reaktivitesinin eksikliğini hissediyordum; bence bu sorun çok iyi çözülmüş. Marimo dosya formatının Python olması hoşuma gidiyor, Apache 2 lisansını da beğendim. GitHub Copilot özellik keşfi etkileyici.

    • Jupyter ve Observable notebook kullanıcısı, hücre reaktivitesi sorununu iyi çözen Marimo'ya olumlu yaklaşıyor; dosya formatının Python olması, Apache 2 lisansı ve GitHub Copilot özelliklerini de yüksek değerlendiriyor.
  • Jupyter Notebook kullanan iş arkadaşlarımla çalışırken ortam kurulumu ve Jupyter'nin gizli durumu sorun oluyordu. Bu proje ikinci sorunu çözmeye çalışıyor ama bunun karşılığında esneklikten ödün veriyor. Tekrarlanabilirliğe odaklanıyorsanız bu kabul edilebilir bir ödün olabilir. requirements.txt diğer sorun için standart çözüm ama kullanımı zahmetli.

    • Jupyter Notebook'ta ortam kurulumu ve gizli durum sorunlarına dikkat çekiyor; bu projenin ikincisini çözmeye çalışırken esnekliği azaltabileceğini belirtiyor. requirements.txt kullanımını zahmetli buluyor ve daha iyi bir çözüm umuyor.
  • Nihayet birilerinin bunu yapıyor olmasına sevindim. Bir Vscode eklentisi var ama Vscode'un mevcut notebook arayüzü yerine tam tarayıcı görünümü açması biraz hayal kırıklığı yaratıyor. Paket yönetimi ve production kod dağıtımı hakkındaki düşüncelerimi paylaşmak isterim.

    • Vscode eklentisine dair beklenti ve hayal kırıklığını dile getiriyor; paket yönetimi ve kod dağıtımının önemini vurguluyor. Projeye katkı sunma niyetini de belirtiyor.
  • Platform hakkında birkaç sorum var: interaktif widget'lar, Jupyter ekosistemiyle bağımlılık ve etkileşim konusunda açıklama rica ediyorum.

    • Platformun interaktif widget desteğini ve Jupyter ekosistemiyle ilişkisini merak ediyor; kendi widget'ını platforma taşımakla ilgilendiğini ifade ediyor.
  • Jupytext eklentisinin hak ettiği değeri görmediğini düşünüyorum. Jupyter'nin git etkileşimi sorunlarını ve kütüphane dosyası yazmayı zorlaştıran programlama pratiği sorunlarını çözüyor. Yeni projenin reaktif güncellemelerinin yeni başlayanlar ya da karmaşık projeler için faydalı olmasını bekliyorum.

    • Jupytext eklentisinin faydasını vurguluyor; yeni projenin reaktif güncellemelerinin programlamaya yeni başlayanlara veya karmaşık projelere yardımcı olacağını düşünüyor.
  • Bağımlılık listesi kısa ve tornado dışında çok sayıda ek bağımlılığı beraberinde getirmiyor. Oldukça kullanışlı ve havalı bir proje gibi görünüyor.

    • Projenin bağımlılık listesinin sade olduğunu, tornado dışında ciddi bir yük getirmediğini değerlendiriyor. Projenin kullanışlı ve etkileyici olduğunu söylüyor.
  • Marimo'nun harika olduğunu düşünüyorum. Markdown içinde mermaid.js desteği eklemeyi düşünüyor musunuz, merak ediyorum.

    • Marimo hakkında olumlu görüş bildiriyor ve Markdown içinde mermaid.js desteği eklenme ihtimalini soruyor.
  • Marimo'nun kurucuları Akshay ve Myles'ın hayranıyım; Jupyter'ye bir rakip çıkmasının bilimsel araç ekosistemi için iyi olacağını düşünüyorum.

    • Marimo'yu ve kurucularını destekliyor; bu tür rekabetin bilimsel araç ekosisteminde olumlu değişim yaratmasını bekliyor.
  • Quarto'nun bu başlıkta bahsedilen Jupyter sorunlarının çoğunu çözdüğünü düşünüyorum. NIH de Quarto kullanımını tavsiye ediyor ve eğitim veriyor.

    • Quarto'nun Jupyter'nin çeşitli sorunlarını çözebileceğini belirtiyor; NIH'nin Quarto kullanımını önerdiğini ve bunun için eğitim verdiğini paylaşıyor.
  • Aynı değişkeni birden fazla kez tanımlamak hatadır. Nedeni açık. Ama değişken yalnızca ilk kez kullanıldığı hücrede kullanılıyorsa, değişken adının yeniden kullanılabilmesi gerekir.

    • Değişkenin yeniden tanımlanmasını hata olarak görüyor, ancak belirli koşullarda aynı değişken adının yeniden kullanılabilmesi gerektiği görüşünü dile getiriyor.