Çift programlama genellikle paylaşılan ekranları katı ızgaralar ya da tek akışlı döşemeler içine kilitleyen video konferans araçlarına dayanır [S2, S4]. Bu, geliştiricilerin bir partnerin kodunu görünür tutarken kendi çalışma alanlarını da korumaları gerektiğinde sürtünme yaratır [2].
Petal, paylaşılan içeriği yerel masaüstü öğeleri olarak ele alarak bunu çözmek için tasarlanmış açık kaynaklı bir işbirliği aracıdır [S1, S4]. CoScreen’in eski kurucuları tarafından geliştirilen proje, edinim sonrası sıkça kullanım dışı bırakılan tescilli araçlara kalıcı, topluluk odaklı bir alternatif sunmayı hedefliyor [S4, S7].
Yerel Pencere Paylaşımı Nasıl Çalışır
Geleneksel ekran paylaşımının aksine, Petal bir toplantı ızgarası kullanmaz [S1, S2]. Bir kullanıcı bir pencere paylaştığında, bu pencere her katılımcının masaüstünde gerçek, çerçevesiz bir yerel pencere olarak görünür [S2, S4].
Bu pencereler bağımsızdır, yani kullanıcılar onları serbestçe taşıyabilir, yeniden boyutlandırabilir ve üst üste yığabilir [2]. Bu, bir geliştiricinin bir ekip arkadaşının paylaşılan editörünü, çağrı devam ederken kendi yerel IDE’sinin yanına doğrudan yerleştirmesine olanak tanır [2].
Bunu desteklemek için Petal, paylaşılan her pencere için donanım kodlu H.264 akışları kullanır [2]. Bu mimari, tek bir paylaşılan ekranın sınırlamaları olmadan birden fazla kullanıcının aynı anda birden çok pencere paylaşmasını sağlar [S1, S2].
Etkileşimli Kontroller ve İşbirliği
Petal, yüksek çözünürlüklü, düşük gecikmeli etkileşimle uzaktan çalışmanın “tek oyunculu” hissini azaltmaya odaklanır [S1, S3]. Her katılımcı, paylaşılan pencereler üzerinde tüm kullanıcılar için etiketli imleçleri görür [S1, S4].
Görünümün ötesinde, araç birkaç etkileşimli mekanizma içerir:
- Uzak Kontrol: Kullanıcılar, paylaşılan bir pencerenin kontrolünü devredebilir, böylece ekip arkadaşları pencereyi kendi pencereleriymiş gibi yazabilir, kaydırabilir ve tıklayabilir [S1, S2].
- Telepointer’lar ve Çizim: Kullanıcılar, paylaşılan bir pencere üzerinde doğrudan taslak çizebilir; çizgiler on saniye sonra otomatik olarak kaybolur [2].
- Kalıcı Odalar: Takımlar, “eng-sync” gibi adlandırılmış odalar oluşturabilir; bu sayede üyeler toplantı linki paylaşmak yerine tek bir tıklamayla katılabilir [S1, S4].
Uzak kontrol, ana makinede Erişilebilirlik izinlerini gerektirir [2]. Varsayılan olarak, sistem kontrol talep edildiğinde her seferinde ana makineye izin isteme penceresi gösterir; bu ayarlar içinde değiştirilebilir [2].
Dağıtım ve Veri Kontrolü
Petal açık kaynak olduğu için, takımlar medya trafiğini ve altyapıyı nasıl yöneteceklerini seçebilir [S1, S4]. Araç, LiveKit video altyapısı üzerine inşa edilmiştir [S1, S3].
Kullanıcıların üç temel dağıtım seçeneği vardır:
- Petal Cloud: Barındırılan LiveKit altyapısını kullanan, yapılandırma gerektirmeyen bir seçenek [1].
- Kendi Kendine Barındırma: Takımlar, tek bir docker-compose dosyasıyla uygulamayı kendi LiveKit sunucularına yönlendirebilir; böylece trafik kendi ağları içinde kalır [S1, S4].
- Fork ve Derleme: Geliştiriciler, uygulamayı özelleştirmek veya kendi yığınlarını getirmek için GitHub deposunu fork’layabilirler [1].
Mevcut Platform Desteği ve Durumu
Petal şu anda 1.0 öncesi bir aşamada ve işletim sistemleri arasında farklı kararlılık seviyelerine sahip [2]. macOS istemcisi en olgun sürümdür; macOS 13 (Ventura) ve üzeri için imzalanmış ve noterlenmiştir [2].
Windows desteği mevcut ancak erken aşamada ve aktif olarak geliştiriliyor [2]. Windows yükleyicisi şu anda imzasızdır; bu durum SmartScreen uyarılarına neden olabilir [2]. Linux desteği gelecek sürümlerde planlanmaktadır [S1, S4].
Düşük sürtünmeli bir çift programlama yöntemi arıyorsanız, kaynak kodunu inceleyebilir veya istemciyi petal.live adresinden indirebilirsiniz [S1, S4].
Kaynaklar
- Petal — Open Source Pair Programming
- Show HN: Petal, open-source CoScreen/ScreenHero finally free
- Show HN: Petal, open-source CoScreen/ScreenHero finally free | Hacker News
- GitHub - kiruna-labs/petal: Petal: low-latency, multi-window …
- Show HN: Petal, open-source CoScreen/ScreenHero finally free
- GitHub - shreyagarwal72/petal
- Petal - EpicSaaS
- We’re back. Meet Petal, an open source collaboration app … - LinkedIn