Pair programming sering bergantung pada alat konferensi video yang mengunci layar berbagi ke dalam kisi kaku atau ubin aliran tunggal [S2, S4]. Hal ini menimbulkan gesekan ketika pengembang perlu menjaga kode rekan tetap terlihat sambil mempertahankan ruang kerja mereka sendiri [2].
Petal adalah alat kolaborasi open-source yang dirancang untuk menyelesaikan masalah ini dengan memperlakukan konten berbagi sebagai elemen desktop native [S1, S4]. Dikembangkan oleh mantan pendiri CoScreen, proyek ini bertujuan menyediakan alternatif permanen yang digerakkan komunitas terhadap alat proprietari yang sering dihentikan setelah diakuisisi [S4, S7].
Cara Kerja Berbagi Jendela Native
Berbeda dengan berbagi layar tradisional, Petal tidak menggunakan kisi pertemuan [S1, S2]. Ketika seorang pengguna membagikan sebuah jendela, jendela tersebut muncul di desktop setiap peserta sebagai jendela native yang nyata dan tanpa batas [S2, S4].
Jendela-jendela ini bersifat independen, artinya pengguna dapat memindahkan, mengubah ukuran, dan menumpuknya secara bebas [2]. Hal ini memungkinkan seorang pengembang menempelkan editor yang dibagikan oleh rekan langsung di samping IDE lokal mereka sendiri sementara panggilan tetap berlangsung [2].
Untuk mendukung hal ini, Petal menggunakan aliran H.264 yang di‑encode oleh perangkat keras untuk setiap jendela yang dibagikan [2]. Arsitektur ini memungkinkan beberapa pengguna membagikan banyak jendela secara bersamaan tanpa batasan satu layar berbagi tunggal [S1, S2].
Kontrol Interaktif dan Kolaborasi
Petal berfokus pada mengurangi nuansa “single-player” dalam kerja jarak jauh melalui interaksi beresolusi tinggi dan latensi rendah [S1, S3]. Setiap peserta melihat kursor berlabel untuk semua pengguna di atas jendela yang dibagikan [S1, S4].
Selain melihat, alat ini mencakup beberapa mekanisme interaktif:
- Remote Control: Pengguna dapat menyerahkan kontrol sebuah jendela yang dibagikan, memungkinkan rekan mengetik, menggulir, dan mengklik seolah‑olah jendela tersebut milik mereka sendiri [S1, S2].
- Telepointers dan Menggambar: Pengguna dapat menggambar langsung pada jendela yang dibagikan, dengan goresan yang secara otomatis memudar setelah sepuluh detik [2].
- Ruang Persisten: Tim dapat membuat ruang dengan nama, seperti “eng-sync,” memungkinkan anggota bergabung dengan satu klik alih‑alih menukar tautan pertemuan [S1, S4].
Remote control memerlukan izin Aksesibilitas pada mesin host [2]. Secara default, sistem akan meminta persetujuan host setiap kali kontrol diminta, meskipun hal ini dapat disesuaikan di pengaturan [2].
Penyebaran dan Kontrol Data
Karena Petal bersifat open source, tim dapat memilih cara menangani lalu lintas media dan infrastruktur mereka [S1, S4]. Alat ini dibangun di atas infrastruktur video LiveKit [S1, S3].
Pengguna memiliki tiga opsi penyebaran utama:
- Petal Cloud: Opsi tanpa konfigurasi yang menggunakan infrastruktur LiveKit yang dihosting [1].
- Self-Hosted: Tim dapat mengarahkan aplikasi ke server LiveKit mereka sendiri menggunakan satu file docker-compose, memastikan lalu lintas tetap berada dalam jaringan mereka sendiri [S1, S4].
- Fork and Build: Pengembang dapat melakukan fork pada repositori GitHub untuk menyesuaikan aplikasi atau membawa stack mereka sendiri [1].
Dukungan Platform Saat Ini dan Status
Petal saat ini berada dalam status pra-1.0, dengan tingkat stabilitas yang bervariasi di berbagai sistem operasi [2]. Klien macOS adalah yang paling matang, telah ditandatangani dan dinotariskan untuk macOS 13 (Ventura) atau yang lebih baru [2].
Dukungan Windows tersedia namun dianggap masih awal dan dalam pengembangan aktif [2]. Installer Windows saat ini belum ditandatangani, yang dapat memicu peringatan SmartScreen [2]. Dukungan untuk Linux direncanakan pada rilis mendatang [S1, S4].
Jika Anda mencari cara yang minim gesekan untuk melakukan pemrograman berpasangan, Anda dapat menjelajahi kode sumber atau mengunduh klien di petal.live [S1, S4].
Sumber
- 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