1 puan yazan GN⁺ 2024-12-28 | 1 yorum | WhatsApp'ta paylaş
  • Quiver, değişmeli diyagramları ve pasting diyagramlarını grafiksel olarak oluşturmayı, ekran için yüksek kaliteli işleme ve LaTeX·Typst dışa aktarmayı destekleyen bir editördür
  • Elle LaTeX veya Typst yazmaya kıyasla diyagram oluşturma ve düzenleme çok daha hızlıdır; alışınca kalem ve kâğıda yakın bir çalışma hızına ulaşılabilir
  • pullback, pushout, adjunction, higher cell gibi karmaşık diyagramları işleyebilir; etiket boyutuna göre ayarlanan esnek bir grid ve birleştirilebilir ok stilleri sunar
  • Hem fareyle sürükleyerek hem de klavye kısayollarıyla çalışılabilir; çoklu seçim, geri alma·yeniden yapma, kullanıcı makroları, HTML'ye gömülebilir diyagram dışa aktarma, kaydırma ve yakınlaştırmayı destekler
  • LaTeX veya Typst olarak dışa aktarırken diyagram bağlantısını da ekleyerek daha sonra yeniden açıp düzenlemeyi veya başkalarıyla paylaşmayı mümkün kılar

Quiver ne yapar

Diyagram oluşturma özellikleri

  • Karmaşık değişmeli diyagramlar ve pasting diyagramları oluşturmak için verimli ve sezgisel bir arayüz sunar
  • Desteklenen örnekler şunlardır
    • pullback ve pushout içeren diyagramlar
    • adjunction
    • higher cell
  • Nesne yerleşimi, etiket boyutuna göre ayarlanan esnek bir grid temelindedir
  • Oklar için çeşitli stiller birleştirilebilir
  • Etiketlerde ve oklarda renk kullanılabilir
  • Ekran görüntülerinde de iyi görünmesi, LaTeX·Typst olarak dışa aktarılan sonucun da özgün diyagrama olabildiğince yakın görünmesi için tasarlanmıştır

Girdi yöntemleri ve düzenleme iş akışı

  • Diyagramlar fareyle tıklayıp sürükleyerek oluşturulup düzenlenebilir
  • Tüm işlemleri gerçekleştirebilen bir klavye kısayolları seti sunar; bu sayede klavye tabanlı düzenleme de mümkündür
  • Birden çok öğeyi aynı anda seçerek toplu değişiklikler kolay ve hızlı yapılabilir
  • Geçmiş sistemiyle işlemler geri alınabilir·yeniden yapılabilir
  • Büyük diyagramlarla çalışmak için kaydırma ve yakınlaştırmayı destekler
  • Akıllı etiket hizalama ve edge offset sunar

Dışa aktarma ve yeniden kullanım

  • Diyagramlar LaTeX veya Typst olarak dışa aktarılabilir
  • Dışa aktarılan sonuca ilgili diyagrama geri dönmeyi sağlayan bir bağlantı eklenir
    • Daha sonra düzenleme gerektiğinde yeniden açılabilir
    • Başkalarıyla paylaşılabilir
  • HTML'ye eklenebilen diyagram dışa aktarmayı da destekler
  • Kullanıcı tanımlı makrolar, \newcommand içeren dosyanın URL'si yapıştırılarak kullanılabilir
  • Editör entegrasyonu Editor integration belgesinden ve Quiver wiki üzerinden görülebilir

Derleme ve çalıştırma koşulları

  • Komut satırında make çalıştırıldıktan sonra src/index.html tarayıcıda açılarak derleme sonucu kontrol edilebilir
  • Make veya Bash sürümü uyumlu değilse KaTeX'in en güncel sürümü elle indirilip src/KaTeX/ altına yerleştirilebilir
  • KaTeX yolu doğru değilse KaTeX yükleme hatası oluşur
  • Quiver localhost üzerinden çalıştırılmalıdır
  • Python kuruluysa Quiver dizininde make serve çalıştırıldıktan sonra tarayıcıda localhost:8000 açılabilir
  • Derleme sorunları varsa sorunun içeriğiyle birlikte GitHub issue açılabilir

1 yorum

 
GN⁺ 2024-12-28
Hacker News yorumları
  • Bu araç gerçekten harika. Fourier-Poisson küpünü [0] yaklaşık 10 dakikada yapabildim; arayüzü de çok sezgisel
    Serbest bir tuval yerine değişmeli diyagramlara odaklanan tasarımın, onu temiz ve kullanımı kolay kılan mükemmel bir tercih olduğunu düşünüyorum. Makale yazarken bu olsaydı muazzam zaman kazanırdım
    [0] https://q.uiver.app/#q=WzAsOCxbMCwxLCJnIFxcdGV4dHsgb24gfVxcb...

    • Merak edenler için Kammler'in A First Course in Fourier Analysis kitabı kaynakça olarak görünüyor
  • Benzer bir bağlamda, yakın zamanda bu Petri net editörü oldukça etkileyici gelmişti: https://pes.vsb.cz/petrineteditor/#/model
    Petri net'ler harika. Sonlu durum makinesini çok iş parçacıklı hale getirirseniz buna yakın bir his veriyor
    Petri net'i ilk kez “statebox” adlı bir organizasyonun yazılarını okurken öğrendim. Statebox, Petri net'ler, değişmeli diyagramlar ve çeşitli kategori kuramı kavramlarıyla ilgileniyordu; birkaç makale okuyup büyülenmiştim ve orada çalışmak hayalim olmuştu. Ne yazık ki şu an ana sayfada sadece “imagine being a category theorist” ifadesi ve gülmekten ağlayan emoji var; ne olduğunu bilmiyorum

  • Birkaç gün önce kitabıma [1] koymak üzere basit bir diyagram [0] çizmek için bunu kullandım
    Ne yazık ki kategori kuramına özel olduğu için düğümleri güzelce süsleme desteği pek fazla değil; ama elbette LaTeX ile halledilebilir
    [0] https://q.uiver.app/#q=WzAsNSxbMSw2LCJcXHRleHR7TmF0dXJhbCBEZ...
    [1] http://abstractionlogic.com

  • Dün gece https://tikzcd.yichuanshen.de/ kullanıyordum; bu aracın daha az özellikli bir sürümüne yakın. Yine de basit diyagramlar oluşturmak için gayet iyi

  • Değişmeli diyagramın ve yapıştırma diyagramının ne olduğunu, mütevazı ve pek de yetkin olmayan bir yazılım geliştiriciye açıklayabilir misiniz?
    Wikipedia maddesi temel düzeyde anlamak için fazla soyuttu [0]
    [0]: https://en.wikipedia.org/wiki/Commutative_diagram

    • Fonksiyonlar ya da fonksiyonlar gibi bileştirilen başka şeyler arasındaki denklemleri güzelce yazmanın bir yolundan ibaret
      A → B üzerinde f varsa, A’dan bir girdi alıp B’den bir çıktı üreten f fonksiyonunu gösterir
      A → B’nin f olduğu, oradan B → C’nin g, A → C’nin h olduğu bir diyagram g ∘ f = h demektir; yani önce f’yi yapıp sonra g’yi yapmakla h’yi yapmak aynıdır. Her fonksiyonun tanım kümesi ve değer kümesi birlikte yazıldığı için fonksiyonların bileştirilebilir olup olmadığını, yani tip denetiminden geçip geçmediğini görmek kolaylaşır
      Diyagram içindeki yolların kendisi de fonksiyon gibi bileştirildiğinden bu gösterim çok doğal biçimde yerine oturur. Örneğin birleşme yasası gösterimin kendisine gömülüdür; A→B→C→D üç fonksiyonu bileştirmenin tek ifadesidir ve (f∘g)∘h ile f∘(g∘h) arasındaki farkı yazmak bile mümkün değildir
    • Değişmeli diyagram, düğümler arasındaki yönlü kenarlar koleksiyonudur; yani yönlü bir grafiktir, ayrıca aynı düğümden başlayıp aynı düğümde biten herhangi iki yolun bir anlamda eşdeğer olduğu iddiasını da içerir
      Genel olarak, yönlü bir çoklu grafa bu yolların hangilerinin birbirine eşdeğer olup olmadığına dair bir açıklama eklenir ve bu eşdeğerlik ilişkisi birkaç temel özelliği sağlarsa buna kategori denir. Bu kavram matematikte, soyut mantıkta vb. çok sık karşımıza çıkar. Değişmeli diyagramlar, bu bağlamda yolların eşdeğerliğini görsel olarak hızlıca çıkarsamak için kullanışlıdır
    • Her büyük harf bir tip, her küçük harf de bir tipten başka bir tipe giden bir fonksiyondur. Diyagramda bir yolu izleyerek birden fazla fonksiyon çağrısını ifade edebilirsiniz. Örneğin f’den sonra g’den sonra n’yi izlemek n(g(f(a))) anlamına gelir. Bu bir diyagramdır; diyagramın değişmeli olması ise başlangıç ve bitiş noktası aynı olan herhangi iki yolu izlediğinizde sonuçların birbirine eşit olduğu anlamına gelir
      Bu yüzden n(g(f(•))), s(r(l(•))), s(m(f(•))) ifadelerinin hepsi A’dan C'ye giden yollar ve fonksiyon çağrılarıdır; diyagramın değişmeli olduğu söylendiğine göre bu yolların hepsi aynıdır
      Monomorfizm, epimorfizm ve izomorfizm fonksiyonların önemli özellikleridir; eşitliğin iki tarafında belirli terimleri “sadeleştirmeyi” mümkün kılarlar. Örneğin genel olarak f(g(x))=f(h(x)) diye g(x)=h(x) sonucuna varamazsınız. f’yi bu şekilde sadeleştirebiliyorsanız buna monomorfizm denir. Benzer biçimde g(f(x))=h(f(x)) ifadesinde f’yi sadeleştirip g(x)=h(x) elde edebiliyorsanız f epimorfizmdir. İzomorfizm ikisini birden sağlar. Bu özellikler sayesinde belirli durumlarda diyagramın bazı yollarında “ters yönde yürümek” mümkün olur
      Kategori kuramında görülebilecek teoremlerin bir biçimi, five lemma[0] örneğinde olduğu gibi “bu diyagrama bak. g bir epimorfizm ve h bir monomorfizm ise f bir izomorfizmdir” şeklindedir. Yani bu tarafta ve şu tarafta sadeleştirme yapılabildiğini biliyorsanız, başka bir tarafta da sadeleştirme yapılabileceğini öğrenirsiniz
      [0] https://en.wikipedia.org/wiki/Five_lemma

      five lemma, satırlar tam diziyse, m ve p izomorfizmse, l epimorfizm ve q monomorfizmse n’nin de izomorfizm olduğunu söyler

    • Bir diyagramdan geçen iki yolun bir anlamda aynı olduğunu göstermenin yoludur. Köşelerdeki noktalar nesnelerdir, oklar ise morfizmdir
      Basit düşünmek gerekirse nesneleri tipler, okları da tipler arasındaki fonksiyonlar olarak görebilirsiniz
      Sol üst köşeden başlayıp iki yolu yürüyerek tipleri kontrol edersiniz. Diyagram doğru biçimde tip denetiminden geçerse değişmelidir denir ve iki yol bir anlamda eşdeğerdir. Bunun somut anlamı, burada atlanan birçok ayrıntıya göre değişir
    • Kategori tanımını okumak faydalı olacaktır. Çok soyut olsa da yalnızca birkaç aksiyomu vardır, bu yüzden oldukça basittir
      Bir kategori örneği “kümeler ve fonksiyonlar” kategorisidir. O kategoride akla gelebilecek tüm kümeler nesne, yani düğüm olarak bulunur; herhangi iki küme arasındaki akla gelebilecek tüm fonksiyonlar da bu ikisi arasındaki oklar olarak bulunur
      Böylece A’dan B’ye giden bir ok ve B’den C’ye giden bir ok alıp bunları fonksiyonlar gibi bileştirdiğinizde A’dan C’ye giden bir fonksiyon elde edersiniz
      Değişmeli diyagram, tüm kategorinin bir alt kümesi gibi görülebilir; iki küme X ve Y arasında çizilmiş tüm yolları izleyip her yolun oklarını bileştirdiğinizde aynı fonksiyonun çıktığı durumdur
      Daha yüksek kategoriler hakkında okumadığım için yapıştırma diyagramından emin değilim, ama muhtemelen bu fikrin bir şekilde genelleştirilmiş hâlidir
  • Web dostu bir biçimde dışa aktarabiliyor mu? Muhtemelen SVG doğru seçenek olur. quiver’ı localhost’ta çalıştırıyorsanız bağlantıyla paylaşmak bir seçenek değil

  • Birkaç yıl önce kategori kuramı dersi alırken Quiver gerçekten vazgeçilmezdi. Arayüzü temiz ve sezgiseldi, özellikleri de yeterliydi. TikZ ile boğuşmakla kıyaslanamaz bile

  • Çok iyi bir ürün. Eskiden genelde TikZ kodunu elle yazardım ve oldukça hızlıydım, ama artık çoğunu unuttum; bu yüzden değişmeli diyagramlar için bunun çok faydalı olacağını düşünüyorum

  • Burada yapılmaya değer bir kod üretme aracı gizli

  • Quiver’ı birkaç kez kullandım ve her seferinde iyi bir deneyimdi. Geliştirenlerin eline sağlık