Thursday, October 12, 2023

LOUCA23 - An Interesting, Combined LibreOffice and Ubuntu Conference

Another year, another cool conference! This time is LOUCA 2023, a combined conference for LibreOffice and Ubuntu. It was on Saturday and Sunday, October 7th & 8th, 2023 in Universitas Sebelas Maret, Surakarta. I presented a lightning talk on first day, titled "State of Ubuntu Indonesian Translation". My first time giving a lightning talk (only 10 minutes! usually I have longer session, but for this occassion, I tried if I can effectively use a shorter one), and EO has put someone with very helpful banners within audiences, saying "5 minutes left", "1 minute left", "time's up" (or so, didn't really remember what was written :D). Thank you! It helped me manage my timing.

For you who can not attend, or attended but did not clearly catch what I said there, I will explain again here:

1. for Ubuntu Jammy (22.04), if you check Ubuntu's translation platform, you will see numbers like this (beware, language listed here will depend on your site settings; since I am a member of Indonesian and Javanese teams, by default Ubuntu Launchpad display those two languages):

As you can see, there are 180k+ strings still not translated into Indonesian, from total around 317k strings. More than half!

2. For Ubuntu Mantic (23.10), it is even worse, around 208k+ untranslated, from total around 350k strings.


 

Why so low? Do they really represent the real condition when someone tried to use Indonesian while using Ubuntu?

The answer has several parts. First, Ubuntu has created a list of packages that can be translated via its translation platform. Not all packages installable from Ubuntu repo can be translated via Launchpad. If you check using aptitude, you will see around

  • 80k installable packages
  • 25k virtual packages
  • 30k tasks
3. For Ubuntu Mantic, that list only contain 558 packages.


Many of those packages are considered low priority to be translated. Who need Indonesian translation of gcc, gdb, and gas for instance? Of course they are there. But how many? Most Indonesian translators have elected to help translation of other packages instead.

The second part is, that several big packages has their own translation flow & infrastructure. Ubuntu only get final result (code + translation) and did not provide further translation. One (maybe more?) exception is GNOME. GNOME has Damned Lies for translation, but then Ubuntu take code and translation from upstream, and then add some Ubuntu specific modification upon them, and use Launchpad to facilitate Ubuntu specific translations.

4. Translation flow of several projects



5. Some projects which use Ubuntu Launchpad for their translations:








So see it yourself, how complete Ubuntu Indonesian translation is. If you use GNOME, I think it will be almost 100% done.

Last but not least, if you want to help us keeping Ubuntu Indonesian translation better and better for next releases, join us via Ubuntu Launchpad. Start with giving suggestion to untranslated strings, those will be considered in your application acceptance into Indonesian translation team.

Try to contact these team admin if you feel your application was not processed soon enough.


Happy translating!


PS: Thank you for Organizers and Sponsors! Very good planning and execution. Delicious meals! Interesting city tour the day after.



Wednesday, November 11, 2020

Daftar Perusahaan Tercela: Spamming Karena Tidak Melakukan Verifikasi Email

Tahun 2020. Bisnis yang memanfaatkan Internet sudah berjalan puluhan tahun. Tapi mengapa masih banyak perusahaan yang beroperasi di Indonesia belum melaksanakan verifikasi kepemilikan alamat email, ketika pelanggannya mendaftar ke sistem mereka? 


Saat ini terlalu banyak perusahaan daring yang tidak peduli etika. Pengguna ketika mendaftar, memakai alamat surel apapun, diterima tanpa konfirmasi. Hal ini memang ‘merampingkan’ proses registrasi, sehingga pengguna dapat segera memakai layanan. Tentu saja ini akan mengarah ke akibat yang buruk: garbage in, garbage out. Kita yang sudah lama berkecimpung di dunia teknologi informasi pasti pernah mengalaminya: sakit kepala ketika perlu melakukan migrasi atau konsolidasi data, gara-gara banyak data sampah.

Di sisi pengguna, kekurangajaran para pelaku bisnis seperti ini juga membuat sakit kepala. Bayangkan, Anda tidak mendaftar ke suatu layanan memakai alamat surel tertentu, tapi tiba-tiba menerima banyak surel ke alamat tersebut. Salah satu langkah praktis jangka pendek adalah menandai surat-surat tersebut sebagai SPAM. Tapi ketika suatu saat Anda hendak mendaftar ke layanan tersebut, memakai alamat surel ini, apakah Anda bisa?

Ada perusahaan yang tidak peduli dengan keunikan alamat surel, sehingga satu alamat bisa dikaitkan dengan banyak pengguna. Contohnya adalah Steam. Pendaftaran ke layanan tersebut tentu saja tidak terhambat ketika Anda memakai alamat surel tersebut saat registrasi. Masalahnya adalah, Anda tidak bisa lagi memasukkan alamat pengirim tersebut sebagai spammer. Sudah cukup pusing?

Perusahaan lain ada yang peduli dengan keunikan alamat surel, tapi tidak mau ‘menambah pekerjaan’ ke (calon) penggunanya, untuk melakukan langkah konfirmasi kepemilikan alamat. Ketika kita mendaftar ke layanan tersebut belakangan, dengan alamat surel milik kita, maka kita terpaksa mengambil alih akun yang telah ada. Kita memperoleh warisan akun dengan nama yang bukan pilihan kita, warisan alamat pengiriman (bila ada) yang juga bukan milik kita dan belum tentu dapat diubah, dan warisan riwayat transaksi yang sama sekali tidak kita lakukan. Semakin pusing?

Sebenarnya solusinya cukup mudah kok. Perusahaan daring tidak perlu mewajibkan calon penggunanya mendaftar memakai alamat surel. Pendaftaran yang dilakukan melalui telepon genggam dapat secara otomatis memakai nomor telepon sebagai ID pengguna. Pendaftaran melalui web juga dapat diperlakukan seperti ini: calon pengguna memasukkan nomor teleponnya, dan wajib memasukkan token yang dikirim ke nomor tersebut. Bila pengguna mengisi alamat surel, maka pengguna wajib melakukan langkah konfirmasi kepemilikan alamat, misalnya dengan menjawab surel yang dikirim ke alamat tersebut, atau mengunjungi URL unik yang tercantum pada surel yang dikirim ke alamat tersebut.

ID unik pada sistem dibuat mandiri. Alamat surel ATAU nomor telepon wajib diisi salah satu. No more headache! Jangan sampai CS Anda ketika menerima komplain tentang kepemilikan surel malah menjawab agar pelapor tersebut ganti alamat surel saja.

Berikut ini daftar perusahaan berkelakuan buruk (urut abjad, akan diusahakan dimutakhirkan dari waktu ke waktu):
  • Ace Hardware Indonesia
  • AirBNB
  • AXA Financial
  • Bank BCA
  • Bank BRI
  • Bank BTPN
  • Bank CIMB Niaga
  • Bank Mandiri
  • Bank Jambi
  • Bank Syariah Mandiri
  • Bank Tabungan Negara
  • Baznas
  • BPJS Kesehatan
  • BPJS Ketenagakerjaan
  • BRI Life
  • Carls Jr.
  • Cermati
  • Eraspace
  • Foodpanda
  • Grab
  • Hemat ID
  • Indihome
  • Indosat Ooredoo
  • Informa.co.id
  • Jakarta Notebook
  • JD ID
  • Lazada
  • LinkAja
  • Lippo Mall
  • Localio
  • Loket
  • Matahari
  • Ninja Van ID
  • Optik Tunggal
  • Qoo10
  • RedDoorz
  • Shop & Drive
  • Shopback
  • SIAK online (DIREKTORAT JENDERAL KEPENDUDUKAN & PENCATATAN SIPIL, KEMENTERIAN DALAM NEGERI REPUBLIK INDONESIA)
  • SIMKAH (Kemenag)
  • Telkom
  • Tiket
  • TIKI
  • ussi.co.id
  • Velo ID
  • Wingstop

Thursday, June 25, 2020

2020 - Real Year Of Living Dangerously

Will recap my important events in 2020 ...

Monday, November 04, 2019

You Can Still Contribute to Open Source Projects!

Lately my contribution to open source projects seems lacking. No more time to rekindle my passion on coding. Even my translation efforts suffers. Fortunately for GNOME translation into Indonesian, Kukuh Syafaat has been taking great effort to keep translation percentage 100%. Very big kudos to him!

So when we have a big GNOME event in Gresik, GNOME Asia Summit 2019 on October 11th-13th, I tried to submit paper. I don't have any GNOME specific ideas though :(.

Later, organizing committe also asked me to lead a workshop session, on GNOME translation. So I went to Gresik with two task: GNOME translation workshop on October 11th, and Using Open Sorce to Manage Asian Games IT Security on October 12th.

Interest on open source translation in Indonesia have been difficult to build and maintain. So I have very little expectation on GNOME translation workshop attendees. But aside of not-so-popular Indonesian translation activities, we have a guest from Malaysia who was very interested to revamp Malaysian translation of GNOME. I explained in my workshop session about how to use translation memory to speed up processing of new files. We tried to expand this idea to help cross language translation, since Indonesian and Malaysian have very similar words. So we take fully translated PO files from Indonesian GNOME, feed to PO editor to fill up its translation memory, then try to pretranslate Malaysian ones. Failed. Troubshoot. Problem: those translation memory entries were only usable to the same target language. Well, time to do quick hack. We edit manually language code on source PO files, replacing 'id' with 'my'. Re-feed to PO editor. Try pre-translate again. And success!

It was a very happy moment and quite rare occasion when we can help other translation team effort. Hopefully Malaysian team can quickly reach magic percentage of 80% to be one of officialy supported GNOME languages.


The next day, I present my experience in using various open source application in Asian Games 2018. Ubuntu, Cacti, Nagios, OpenVPN, Snort, .... They were very helpfull, especially when we have very constrained budget, near event execution date. Thankfully, those tools were very helpful for us to manage system availability and overall security.

Presentation on that second day was attended by many, very different to the 'private' workshop class :D


And last but not least, thanks to GNOME Foundation which support me with travel sponsorship!

Hopefully my presentation can share the open source spirits to those attendees, to be a future users and contributors.

Monday, July 09, 2018

Sangat Mudah Mengurus Perpanjangan SIM di Jakarta

Awal Juli, saya perlu memperpanjang SIM A. Karena kesibukan yang cukup tinggi di Jakarta, kesempatan untuk balik ke Bandung guna menyelesaikan perpanjangan SIM ini sangat terbatas. Hasil cari info sana-sini, ada lokasi yang sangat menjanjikan: Mall Pelayanan Publik DKI, di Jalan HR Rasuna Said Kav 22. Patokan menuju lokasi ini: Jalan Episentrum Selatan, di belakang Hotel Luwansa.


Anda bisa memperpanjang SIM A atau C yang diterbitkan di luar DKI. Hanya perlu membawa E-KTP dan SIM asli, serta satu fotokopi dari kedua surat tersebut. Tidak ada antrian saat saya hadir Senin pagi pukul 9 di Mall Pelayanan Publik lantai 3.

Saya belum bisa bercerita rinci tentang berapa lama proses dan berapa besar biaya, karena ternyata SIM saya habis masa berlaku di tahun 2019. Permohonan perpanjangan SIM saya ditolak karena terlalu dini setahun :( 

Sunday, May 06, 2018

Bionic and LXC

This brand new Ubuntu LTS 18.04 surely had given me a big surprise. Major syntax change for LXC, because of upgrade from LXC v2 to v3. All my LXC VMs can't be started after this upgrade.Searching documentation about config syntax change was difficult. So I have resorted to reverse engineering: install new LXC VM, then compare its config to v2. Result is documented here.

Still need more info to run unprivileged LXC container.

Update: use lxc-update-config to migrate configuration files.

Friday, March 30, 2018

Konferensi Lagi

23 Maret kemarin, saya mengisi acara workshop LibreOffice di PENS, Surabaya. Sebenarnya saat mengisi CFP, saya hanya mengusulkan topik yang menjadi sesi ke-2 workshop, yaitu kurang lebih menguji dan memperbaiki terjemahan, yang saya pikir cukup untuk mengisi satu sesi sekitar 60 menit. Tapi ternyata panitia menodong dan memperluas usulan CFP menjadi workshop sehari penuh. Apa boleh buat. Sudah lama tidak ngoceh di depan kelas :D

Kebetulan saya sering mem-build LibreOffice sekedar untuk menguji terjemahan UI. Tapi seringkali malah jadi iseng build tanpa sempat uji terjemahan, atau hanya menerjemahkan tanpa sempat menguji dengan menjalankan dan memeriksa tampilan secara visual. Berhubung sesi-1 workshop bertema mem-build LibreOffice, maka saya perlu menyiapkan lingkungan build yang dapat dipakai oleh semua peserta. Dihitung-hitung, kok VM build saya berukuran lebih dari 40 GB. Cukup berat untuk mengangkut 40 GB dan menyalin ke 30 PC peserta. Percobaan perampingan template build bisa menghasilkan image 10 GB. Lebih manusiawi untuk disedot dan disebarkan. Ada panitia lokal yang membantu saya menyedot image dan mencoba memasang pada mesin para peserta. VM sukses dijalankan. Saya pikir pekerjaan persiapan di sana beres. Tinggal menyelesaikan materi presentasi/panduan workshop. Tengah malam sebelum workshop akhirnya materi bisa beres, karena beberapa jam agak sore habis untuk makan-ngobrol-kopdar-curhat-foto-dsb bareng panitia.


Jumat pagi workshop dimulai. Mayoritas PC bisa menjalankan VM templat. Beberapa mesin bermasalah, tapi bisa dilupakan sejenak. Peserta yang mesinnya bermasalah terpaksa berbagi pakai dengan tetangganya. Tapi ternyata ketika proses build dicoba dijalankan, dan memerlukan mengunduh, akses internet yang mesti melalui proksi tidak berlangsung mulus. Saya saat itu tidak terpikir untuk mencoba mendefinisikan variabel lingkungan yang menggiring akses melalui proksi. Setelah mengeskalasi masalah, dilanjutkan dengan rekonfigurasi jaringan melalui jalur yang tidak perlu memakai proksi, pengunduhan lancar. Build dapat dilanjutkan.

Tentu saja muncul masalah-masalah lain. Misalnya, ada peserta yang terlanjur memakai user root saat mengeksekusi perintah build. Ketika kembali ke user normal, build gagal. Ini adalah tantangan mengajar, mesti berpikir cepat mengatasi masalah. Saat build sendiri, masalah ini tidak pernah muncul. Solusinya cukup berupa [1]:
$ find . -uid 0 -exec sudo chown 1000 {} \;
Masalah lain yang muncul adalah ketidakselarasan jam VM guest dengan host. Tidak sempat saya telusuri kenapa jam jadi maju, sehingga proses build loop, tidak pernah mencapai fase link. Hantam saja dengan perintah:
$ touch abcd; find . -newer abcd -exec touch {} \;
Beres. Waktu untuk sesi 1 habis. Break. Build yang masih berlangsung dibiarkan dengan harapan seusai istirahat telah komplit. Dan harapan ini terkabul, mayoritas build sukses saat kami kembali dari jeda untuk memulai sesi 2.

Saya senang melihat para peserta yang bersemangat mencoba build. Semoga setelah ini tetap mencoba build di tempat masing-masing, dan barangkali scratching-their-own-itch dan berlanjut dengan kontribusi patch/kode ke LibreOffice.


Catatan:
1. hati-hati menjalankan perintah ini. Mesti dilakukan di direktori build. Bila dijalankan di / atau direktori lain, bisa membuat seluruh sistem tidak berjalan normal.