How to Develop for Linux ?

Linux memiliki sejarah panjang pengembangan perangkat lunak, dan berbagai aplikasi yang berkembang memenuhi bahkan yang paling aneh kebutuhan.

Sebuah aduk cepat sekitar freshmeat.net merupakan bukti ini, dengan permadani yang kaya dari aplikasi yang berguna, liar, dan sering aneh. Distro seperti Debian, Fedora dan Ubuntu membawa aplikasi ini untuk pengguna mereka dengan cepat apt-get install yum atau.

Ketika pekerjaan ini sedang terjadi, Apple merilis iPhone dan membuat terobosan besar dalam komputasi, itu membuat platform pengembang aplikasi menarik, konsisten dan dapat diakses oleh konsumen. Siapapun dengan iPhone dapat men-download berbagai aplikasi, banyak sederhana dan konyol, tetapi semua konsisten dalam presentasi mereka, dan sering baru dan inovatif dalam cara mereka menggunakan fitur telepon, seperti GPS, accelerometer dan fasilitas lainnya.

Apel platform ini dibangun dari awal, namun berkat kerja dimasukkan oleh proyek GNU dan banyak orang lain, kita sudah memiliki platform. Kami memiliki seperangkat alat pengembangan, berbagai lingkungan desktop dan berbagai pengembangan menempa dikemas dengan kontrol sumber, pelacakan bug dan fitur lainnya.

Mari kita lebih baik

Meskipun kami telah memiliki alat untuk waktu yang lama, apa yang kita lakukan kurang dari pekerjaan yang baik di adalah menarik alat-alat bersama menjadi pengalaman yang konsisten ditujukan untuk penulis aplikasi. Ini adalah sesuatu yang komunitas Ubuntu bekerja, dan kita akan melihat beberapa dari pekerjaan ini dan bagaimana hal itu berguna bagi ekosistem yang lebih luas sumber terbuka – termasuk Anda juga, non-penggemar Ubuntu!

Pengembang adalah binatang lucu. Meskipun dari luar mereka tampak seperti hewan yang cukup konsisten dari kode-menulis, minum bir, makan pizza makhluk, motivasi dan keinginan di sekitar seni menulis program bervariasi.

Dalam berbagai hal ini meskipun kita dapat melihat dua sub-set: pengembang sistematis dan oportunistik. Kedua menulis kode, tetapi masing-masing memotivasi diri mereka sendiri dan pendekatan pekerjaan mereka dalam cara yang sedikit berbeda.

Pengembang sistematis biasanya pengembang profesional. Mereka jenis orang yang akan menulis fitur, dan kemudian segera dokumen itu, menulis sebuah suite tes otomatis untuk fitur tersebut dan akan selalu berpikir struktural tentang aplikasi mereka hari ini dan bagaimana hal itu akan skala dan tumbuh dengan pertimbangan masa depan.

Pengembang sistematis definisi yang sangat profesional, dan mereka umumnya konservatif, hati-hati dan tahan untuk menambahkan fitur kecuali mereka diimplementasikan dengan kelengkapan dan presisi. Pengembang biasanya sistematis berkomitmen untuk sebuah proyek tunggal untuk jangka waktu yang lama dan sering tumbuh pengetahuan generalis yang signifikan dari basis kode, menjadi tetua suku dalam proyek-proyek hampir masing-masing.

Peluang hacks

Pengembang oportunistik kebalikan dari banyak properti dari pengembang sistematis.

Pengembang oportunistik interrupt-driven hacker yang berada di bisnis menggaruk gatal. Mereka merasa masalah atau mencium peluang dan sering akan memiliki potongan pertama dari kode siap dalam hitungan jam. Mereka sering jauh lebih tembak-dari-yang-pinggul jenis orang, kode mereka kadang-kadang tidak banyak komentar, dan tes unit sering item prioritas rendah pada daftar yang harus dilakukan di suatu tempat, tetapi atribut-atribut ini tidak berarti mereka coders rendah.

Mereka sering coders sangat baik, tetapi mereka reaktif, energik hacker yang suka untuk memecahkan masalah yang mereka merasa pribadi dan bergairah.

Pengembang oportunistik adalah sumber yang sangat dari Linux. Ketika kita berbicara tentang blok bangunan dasar dari open source kita sering berbicara tentang ‘menggaruk gatal Anda’, ini adalah apa yang pengembang oportunistik lakukan. Tujuan kami di dunia Ubuntu, dan tujuan banyak orang lain, adalah untuk memastikan bahwa hambatan untuk menggaruk gatal-yang serendah mungkin.

Mengoptimalkan kesempatan

Ketika pengembang ingin memproduksi perangkat lunak mereka masuk ke dalam proses empat langkah: Bayangkan> Buat> Berkolaborasi> Publish. Ini set tingkat tinggi luas langkah yang dapat dipecah menjadi satu set langkah-langkah lebih rinci, yang terurai menjadi unsur-unsur berikut:

MENGEMBANGKAN LANGKAH: Langkah-langkah umum yang terlibat dalam membangun aplikasi Linux.

1. Ide: Hal ini sesuai dengan langkah Bayangkan dari proses tingkat yang lebih tinggi, berpikir ide perangkat lunak untuk bekerja pada.

2. Gnome / KDE: Ini cocok Buat langkah dari proses tingkat yang lebih tinggi; menggunakan platform pengembangan yang sudah ada untuk membuat aplikasi Anda dengan.

3. Launchpad / bzr: Hal ini sesuai dengan langkah Berkolaborasi dari proses tingkat yang lebih tinggi; menggunakan Launchpad dan Bazar untuk bekerja dengan pengembang lain untuk membuat aplikasi yang lebih baik.

4. Debian Kemasan / AKP: Hal ini sesuai dengan langkah Publikasikan dari proses tingkat yang lebih tinggi; kemasan aplikasi Anda dan kemudian mempublikasikannya ke Arsip Paket Pribadi, yang memungkinkan orang lain untuk men-download dan menginstal seperti paket lain.

Mari sekarang kita lihat ke dalam beberapa pekerjaan dan proyek-proyek yang telah terjadi untuk menyederhanakan dan memperbaiki proses ini.

Membayangkan

Langkah pertama adalah dengan membayangkan solusi untuk masalah yang diberikan.

Pada tahap pertama pengembang perlu merasa diberdayakan untuk memiliki motivasi, alat, keterampilan, dan tekad untuk melaksanakan visi yang mereka lihat dalam pikiran mereka. Meskipun ini terdengar seperti langkah pertama yang sederhana, itu adalah salah satu tantangan.

Untuk mengoptimalkan itu perlu ada kekayaan cerita positif tentang bagaimana pengembang telah memimpikan solusi untuk masalah dan mudah dilaksanakan mereka karena platform tersebut merupakan bantuan daripada hambatan.

Dalam dunia Ubuntu kita harus mencoba untuk membangun atmosfir di sekitar konsep dari Ubuntu menyediakan sebuah platform yang lengkap dan komprehensif untuk menerapkan apa solusi pengembang mimpi. Kami telah melakukan ini dengan mengorganisir peristiwa seperti Minggu Application Developer Ubuntu dan menciptakan sumber daya pendukung seperti saluran ubuntu-appdevel # IRC pada IRC Freenode layanan.

Dengan elemen motivasional pengembang oportunistik cerita dorongan dan penjangkauan, tiga langkah berikut dalam proses empat langkah yang sangat banyak tentang teknologi, dan tujuannya adalah tentang menurunkan hambatan untuk membuat orang berdiri dan berjalan secepat dan semudah mungkin .

Buat

Selama bertahun-tahun komunitas pengembang yang telah terbentuk, lengkap dengan array yang luas dari alat, bahasa dan fungsi. Sayangnya, sementara kuat, banyak dari alat ini canggung kompleks, dan banyak pengembang telah membiarkan ide-ide dan kreativitas mereka terkubur di bawah longsoran kebingungan sekitar bagaimana alat ini cocok bersama.

Bagian dari penyebab masalah ini adalah bahwa alat pengembang banyak hanya melayani untuk pengembang sistematis; jenis pecandu kerja codewriting kita sebutkan sebelumnya yang hack untuk hidup, dengan perhatian yang sungguh-sungguh terhadap detail didukung oleh tes unit dan keunggulan lain dari programmer profesional .

Untuk pengembang oportunistik banyak, jika peralatan yang diperlukan untuk menggaruk gatal mereka memerlukan terlalu banyak usaha atau investigasi, gatal dapat dengan cepat menghilang dan apa yang pernah seorang hacker kreatif bersemangat kini telah pindah menjadi sofa yang terikat PlayStation gamer bersemangat yang tumbuh bosan dengan Linux sebagai platform.

Sebuah solusi untuk ini kompleksitas terbuka di toolchain adalah alat sederhana yang disebut cepat. Cepat merupakan gagasan dari direktur sekarang Ubuntu teknik di Canonical, Rick Spencer. Cepat membuat Anda bangun dan berjalan cepat (bukan hanya nama pintar) menulis aplikasi dari awal.

Secara tradisional, aplikasi desktop menulis telah melibatkan jumlah yang tidak-tidak signifikan faffing diperlukan dengan sistem membangun, kontrol sumber, kerangka kemasan, alat antarmuka grafis dan hal-hal lain yang bisa di jalan menulis kode. Cepat adalah alat yang menyederhanakan bagaimana hal-hal yang berbeda cocok bersama.

Cepat menyediakan kerangka kerja dengan serangkaian template untuk membuat berbagai jenis aplikasi. Dengan setiap template serangkaian keputusan dibuat tentang alat-alat yang terlibat dalam menciptakan aplikasi tersebut. Sejauh template yang paling populer, dan salah satu yang cepat itu sendiri diciptakan untuk memenuhi, adalah template Ubuntu.

Template ini menggunakan satu set alat yang telah menjadi sangat populer dalam pengembangan perangkat lunak desktop yang modern, dan alat-alat kami telah dimanfaatkan di Ubuntu. Mereka adalah:

Python: A, mudah-untuk-belajar, sederhana, fleksibel dan efisien tingkat tinggi bahasa.

GTK: Sebuah toolkit grafis yang komprehensif dan kuat untuk membuat aplikasi, dan fondasi lingkungan desktop Gnome.

Gnome: Lingkungan desktop yang kapal dengan Ubuntu, menawarkan fasilitas integrasi banyak.

Glade: Permohonan untuk mengembangkan antarmuka pengguna dengan cepat dan mudah, yang kemudian dapat dimasukkan langsung ke program Python Anda.

GStreamer: Kerangka kuat tapi nikmat sederhana untuk bermain kembali dan menciptakan audio, video dan konten multimedia lainnya.

DesktopCouch: Kerangka untuk menyimpan konten dalam database yang cepat dan efisien, rapi kait ke Ubuntu Satu dan mengagumkan untuk replikasi.

Gedit: Untuk mengedit kode, cepat menganggap Anda akan menggunakan editor teks yang dikirimkan dengan Ubuntu, yang menyediakan antarmuka yang sederhana dan fleksibel untuk menulis program Anda.

Dengan inti set alat Anda dapat menulis aplikasi Anda bisa membayangkan dan mengetahui bahwa itu akan berjalan dengan mudah pada Ubuntu dan distro lain. Yang elegan dari cepat adalah bahwa ia memahami sebuah platform umum untuk Linux tetapi tidak mencoba untuk mempersulit keinginan untuk kesederhanaan dengan menjadi tergoda menuruni lereng licin investasi bulan energi ke Lingkungan Pembangunan Interaktif (IDE), ketika banyak pengguna Linux yang di nyaman dengan baris perintah fakta.

Berkolaborasi

Sementara Cepat yang fantastis untuk mendapatkan pengguna dan berjalan dengan aplikasi baru, ada tantangan yang jauh lebih luas di sekitar bagaimana pengembang dapat berkolaborasi bersama-sama sekitar kode. Memproduksi perangkat lunak dan menyediakan suatu lingkungan di mana kontributor dapat bekerja sama di dalamnya memerlukan sejumlah besar alat dan integrasi alat tersebut.

Di hari tua buruk open source itu adalah mimpi buruk untuk mengatur dan mengintegrasikan alat-alat ini, tetapi hari-hari kami memiliki berbagai situs web gratis dengan siap-to-roll lingkungan pengembangan untuk menciptakan dan memelihara proyek-proyek open source dengan mudah. Salah satu contohnya adalah Launchpad .

Launchpad: Launchpad adalah situs Ubuntu untuk hosting kode dan memperbaiki bug, dan di mana Anda harus meng-upload aplikasi baru Anda.

Launchpad adalah kuat, sederhana dan komprehensif pengembangan menempa yang telah menjadi sangat populer selama beberapa tahun terakhir (itu saat ini olahraga lebih dari 17.000 proyek) dan berada tepat di jantung bagaimana Ubuntu dikembangkan. Situs ini menyediakan berbagai fasilitas yang berguna:

Kode hosting: Launchpad rajutan bersama-sama rapi dengan sistem distribusi Bazaar versi populer kontrol. Bersama-sama mereka menyediakan metode yang fantastis bagi kontributor untuk bekerja sama pada kode, menggabungkan perubahan ke basis kode utama dan online tuan kode.

Pelacakan bug: Meskipun secara tradisional merupakan bagian kompleks dan jelek pengembangan perangkat lunak, bug tracker dibangun ke Launchpad sederhana dan efektif.

Terjemahan: Banyak proyek berjuang dengan memberikan dukungan berbagai bahasa, tetapi Launchpad menyediakan sarana sederhana untuk siapa saja yang mengetahui lebih dari satu bahasa untuk menerjemahkan aplikasi tanpa pernah menyentuh kode.

Blueprints: Fitur ini menyediakan sarana untuk memproduksi spesifikasi untuk ide-ide dan fitur dalam proyek Anda.

Dukungan: Launchpad menyediakan fasilitas pertanyaan-dan-jawaban yang cocok untuk memberikan dukungan bagi pengguna Anda.

Paket bangunan: Sebuah fitur yang sangat populer di Launchpad adalah kemampuan untuk memiliki Paket Anda sendiri Arsip Pribadi (AKP), yang memungkinkan Anda untuk secara otomatis membangun dan memberikan paket-paket Ubuntu untuk pengguna Anda.

Jika Anda ingin mengetahui lebih lanjut tentang berbagai fasilitas di Launchpad, Anda harus melihat pada tur online di https://launchpad.net/+tour .

Launchpad menawarkan pengalaman yang sederhana dan efektif untuk membuat aplikasi, dan banyak kesederhanaan adalah bagaimana komponen-komponen yang berbeda dari Launchpad dapat link bersama-sama. Sebagai contoh, Anda dapat membuat cetak biru dan spesifik, melampirkan bug untuk itu, melampirkan cabang Bazaar untuk bug dan banyak lagi. Ini interkoneksi informasi membantu menyederhanakan visibilitas informasi dan memastikan bahwa pengembang selalu tahu apa yang sedang terjadi.

Launchpad tidak sempurna meskipun, dan beberapa pengembang telah mencoba untuk menyederhanakan penggunaannya dalam pengembangan aplikasi. Salah satu contoh adalah cara yang cepat memungkinkan Anda untuk mempublikasikan ke Launchpad (lebih lanjut tentang ini nanti). Contoh lain yang menarik adalah sebuah alat yang disebut Ground Control oleh Ubuntu anggota komunitas Martin Owens.

TANAH KONTROL: Satu set yang lebih spesifik langkah-langkah untuk menghasilkan sebuah aplikasi untuk Linux.

Ground Control mengambil pendekatan inovatif dalam mengubah file manager Anda (Nautilus) ke lingkungan pengembangan Anda. Bayangkan Anda ingin memperbaiki bug. Proses untuk memperbaiki bug biasanya satu disorot pada halaman sebaliknya. Ia bekerja seperti ini:

Pilih bug untuk memperbaiki: Anda menemukan bug di Launchpad yang mengganggu Anda cukup bahwa Anda ingin memperbaikinya.

bzr cabang: Download kode untuk proyek yang menderita oleh bug.

Memperbaiki bug: Lakukan memperbaiki di cabang lokal Anda kode.

bzr commit: Anda berkomitmen memperbaiki untuk cabang lokal Anda, siap untuk mendorong.

bzr mendorong Anda menekan kode untuk Launchpad sehingga maintainer dari aplikasi dapat mengambil memperbaiki Anda dan menerapkannya.

Lampirkan cabang untuk laporan bug: Untuk kelengkapan, Anda memasang cabang untuk laporan bug. Hal ini memastikan bahwa setiap orang berlangganan ke laporan bug menyadari memperbaiki.

Mengusulkan untuk penggabungan: Anda kemudian ikuti Launchpad ‘Mengusulkan Merge’ proses di mana Anda memberitahu pengembang asli memperbaiki sehingga ia / dia bisa meninjau dan bergabung dalam jika cocok.

Bila Anda seorang pengembang yang baru memulai proses ini, semua perintah dan urutan yang benar dan sintaks bisa sedikit membingungkan. Banyak pengembang telah pergi sejauh untuk membuat catatan lengket menguraikan proses sampai menjadi hafalan.

Kantor Pengendalian Proyek Martin Owens ‘memberikan cara yang sama sekali grafis dari melakukan proses yang sama … semua dalam file manager. Cara kerjanya adalah bahwa Anda mengisi Nautilus dan browse ke direktori Proyek di direktori home Anda. Di sana adalah sebuah tombol “Proyek Ambil ‘. Mengklik pada itu muncul kotak dialog di mana Anda dapat mencari proyek (misalnya proyek Ground Control disebutkan sebelumnya).

Ketika Anda melakukan pencarian daftar proyek yang sesuai akan ditampilkan, dan Anda dapat mengklik salah satu untuk memilihnya. Melakukan hal ini menciptakan folder baru dalam direktori Proyek di Nautilus dengan nama yang sama dengan proyek (misalnya groundcontrol).

Jika Anda klik di dalam folder baru ini tombol lain yang disebut ‘Perbaiki Bug’ muncul. Mengklik itu muncul lagi kotak pencarian dialog yang memungkinkan Anda untuk mencari nomor bug atau istilah pencarian bug dalam proyek itu. Bila Anda mencari, berbagai bug yang ditampilkan, dan Anda dapat mengklik dua kali pada satu untuk ambil kode terbaru dari Launchpad dan secara otomatis membuat folder bernama bugfix-lp-123456.

QT Pencipta: Tim KDE memiliki set yang sangat baik alat pengembangan Qt untuk aplikasi bangunan.

Kontrol tanah

Anda sekarang pergi dan hack pada kode dalam folder itu dan memperbaiki bug dalam pertanyaan. Bila Anda telah mengubah beberapa file dalam folder itu tombol baru muncul di Nautilus disebut Upload Perbaiki. Mengklik tombol untuk membuka kotak dialog baru di mana Anda dapat menjelaskan perubahan yang Anda buat pada kode.

Klik OK kemudian muncul kotak dialog terakhir meminta Anda untuk memasukkan pesan gabungan (ini adalah pesan yang Anda kirim pengembang meminta mereka untuk bergabung Anda memperbaiki bug dalam kode utama). Ketika Anda mengklik OK, perubahan Anda didorong untuk Launchpad, cabang terlampir pada laporan bug dalam pertanyaan, dan usulan menggabungkan secara otomatis dibuat.

Seluruh proses hanya melibatkan mengklik tombol dalam satu set logis dari peristiwa, dan pada titik tidak pernahkah Anda perlu memasukkan perintah atau membuat catatan untuk mengingatkan Anda tentang proses. Proyek-proyek seperti Ground Control menunjukkan keinginan untuk menyederhanakan proses berkolaborasi pada pengembangan, dan proyek ini dimungkinkan oleh fleksibilitas API Launchpad, yang memungkinkan pengembang untuk menyediakan antarmuka alternatif untuk tanggal di Launchpad.

Menerbitkan

Dengan metode sederhana untuk menciptakan aplikasi, dan metode sederhana berkolaborasi sekitar aplikasi, langkah berikutnya adalah untuk mendapatkan aplikasi Anda ke tangan pengguna. Proses ini biasanya dibagi menjadi dua langkah:

Kemasan aplikasi: Membuat instalasi dan penghapusan aplikasi yang kompatibel dengan distribusi yang berbeda dengan menggunakan salah satu sistem kemasan Debian (Deb), Red Hat Package Manager (RPM), atau sistem lain seperti Portage Gentoo.

Upload ke distribusi: Berbeda dengan Windows, kita tidak berharap pengguna untuk pergi ke situs Web acak dan men-download file executable. Kita malah berharap distribusi untuk memiliki arsip besar pra-paket perangkat lunak. Dengan demikian, kita perlu untuk mendapatkan aplikasi upload ke arsip.

Sayangnya, kedua langkah secara tradisional telah cukup rumit. Yang pertama melibatkan pembelajaran sistem kemasan yang relevan, yang dalam diri mereka dapat cukup rumit bahkan untuk aplikasi desktop dasar. Bagian dari tantangan dengan kemasan telah bahwa ada banyak cara yang berbeda sering banyak paket aplikasi, dan keterampilan yang dibutuhkan untuk paket aplikasi baru Anda sering di luar ruang lingkup dan kepentingan pengembang aplikasi.

Untungnya, cepat memudahkan ini secara signifikan. Dengan perintah yang dapat Anda menghasilkan paket Debian / Ubuntu yang sepenuhnya kompatibel dan menarik di semua dependensi yang dibutuhkan (banyak ini dimungkinkan karena Pitt Martin sangat baik).

Selain itu, cepat termasuk ‘rilis’ perintah yang secara otomatis akan menghasilkan paket Ubuntu dan meng-upload ke Arsip Pribadi Anda Paket Launchpad, semua dalam satu perintah. Hal ini efektif membuatnya menjadi operasi satu-perintah untuk mempublikasikan versi baru dari perangkat lunak Anda, dan menghemat jumlah besar sekali membaca tentang kemasan ketika Anda akan lebih memilih untuk hacking pada aplikasi Anda.

CEPAT: Sampel Cepat aplikasi hanya setelah telah dihasilkan.:

Yang terakhir dari dua langkah di atas, meng-upload ke distribusi, adalah elemen yang lebih kompleks. Semua distro Linux memiliki tim pengembang yang telah bekerja keras untuk membangun kepercayaan dan kompetensi teknis yang harus disetujui sebagai pengembang resmi, yaitu memiliki hak untuk menambah upload langsung paket ke arsip dan melepaskan masa depan distribusi tertentu.

Mendapatkan hak istimewa ini sering membutuhkan keterampilan meng-upload signifikan, dan keterampilan yang secara tradisional dirancang untuk menilai integrator sistem operasi. Sebagai contoh, di Ubuntu, ada dua jenis yang luas dari kontribusi:

Inti Dev: Ini adalah untuk para pengembang yang ingin meng-upload ke arsip ‘utama’, yang mencakup semua perangkat lunak resmi didukung (seperti perangkat lunak dalam gambar rilis resmi ISO dan CD).

MOTU: ini adalah bagi mereka pengembang yang ingin bekerja di arsip Universe tidak didukung, yang mencakup ribuan aplikasi yang diimpor dari Debian.

Menjadi Dev Inti membutuhkan Ubuntu generalis signifikan dan pengetahuan kemasan, dan juga membutuhkan kompetensi teknis yang komprehensif untuk menjadi seorang MOTU. Dengan kedua ada anggapan bahwa pengembang akan bekerja pada beberapa paket, dan proses ini developerassessment benar membutuhkan tingkat kualitas yang tinggi.

Tantangan dengan proses saat ini adalah bahwa untuk pengembang aplikasi mereka sedikit berat. Untuk membantu mengatasi ini dalam siklus Ubuntu 10.10 proses baru yang disebut Dewan Kajian Aplikasi diperkenalkan, di mana penulis aplikasi dapat mengajukan permohonan untuk penilaian teknis oleh dewan masyarakat.

Jika aplikasi memenuhi seperangkat penilaian teknis sekitar kode dan kualitas kemasan, aplikasi ini disetujui dan tersedia di Pusat Ubuntu Software. Rincian tentang proses dapat ditemukan di http://wiki.ubuntu.com/AppReviews .

Membungkus

Dalam beberapa tahun terakhir kita telah melihat kompetisi semakin menarik pengembang aplikasi untuk platform yang berbeda.

Sementara Apple dan Google telah melakukan pekerjaan yang sangat baik dengan platform masing-masing, ada kesempatan besar untuk membuat Linux platform aplikasi top-tier, dan artikel ini menguraikan beberapa pekerjaan terjadi di dunia Ubuntu untuk membantu mendorong dan memotivasi pengembang aplikasi dan membuat hidup mereka semudah mungkin.

Artikel ini tidak memiliki ruang untuk menutupi banyak inovasi terjadi di dalam kamp Gnome dan KDE, atau distribusi lain berbagai proyek hulu yang berusaha untuk membuat pengembangan lebih mudah. Untungnya, tampaknya bahwa banyak dalam komunitas open source bergairah memungkinkan lebih banyak orang untuk berkontribusi pada perangkat lunak bebas, dan jika kita terus melangkah mundur dan membuat kami yang berbeda alat, proses dan sistem lebih mudah digunakan, kita dapat berharap untuk melihat kekayaan tersedia di distribusi Linux yang berbeda aplikasi tambahan.

Iklan

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout /  Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout /  Ubah )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.