Wednesday, December 06, 2023

I've been Near Everest

This is a report of my activities while attending GNOME Asia 2023 in Kathmandu, Nepal. I have given several FOSS conference presentations, but this is my first time I went abroad to deliver it.

I feel at home in Kathmandu, Nepal. Many things are similar between Indonesia and Nepal. Right in front of my hotel, cable installation are spaghetti-like, not far from what we have in Indonesia.

Another important thing is their traffic uses the normal left line, unlike of those some weird countries (that we shouldn't name :D). No suprise here. I can easily do crossing. There are many zebra crosses, but those traffic are never slowing down waiting for you. You have to have an initiative instead. Exactly same situation in Indonesia.

Kathmandu seems to has no high building. My hotel was only 7 floors. Many other buildings around are lower. My hotel have a perfect view for sunrise:

I only have to walk around 300 meters to conference venue. Big factor for me since my stamina was deteriorated significantly after I got COVID-10 Omicron variant.

Initially I was scheduled to give my presentation on the 2nd day, but then swapped into the 1st day:

Presentation slide is in Slideshare.

Several other interesting sessions in this GNOME Asia 2023 are Introduction to writing accessible applications with GTK4 and Fedora 39 Release Party. In his talk about GNOME Accessibility, Federico gave me some ideas (need to be developed further) about possibility to do shortcut conflict checking automatically. Usually when developers make their software, they are aware that some shortcuts in the same menu or dialog might conflict. But when those menus and dialogs are being translated, us translators usually don't have sufficient context to see if our translation have generated conflicted shortcuts. Doing build check and running those applications to manually inspect those shortcut conflicts are not easy to do, especially to have 100% coverage of all menus and dialogs. We also need to consider that some menu or dialog entries might be disabled on some situations, making inspection harder.

After conference, I really want to see Everest my own eye. There are at least 3 alternatives: helicopter tour to Everest base camp (too expensive), 1 hour Everest mountain flight (still too expensive, beware of different pricing for Indian and Pakistani passport holders to foreign ones, usually foreign passport holder got 2x higher), and Nagarkot sunrise. I choose Nagarkot, which was much cheaper. 1 hour car Kathmandu - Nagarkot, then short hike to top of observation hill. You must be brave enough to climb around 5 meter of tower at top of the hill to get unobstructed 360 degrees view.

I was not lucky enough to get clear sunrise. Nor I get a good view of Himalayan mountain. So near but not so lucky to get good weather.

Thanks to GNOME Foundation for providing me travel support to attend this conference.

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
  • Jakarta Notebook
  • JD ID
  • Lazada
  • LinkAja
  • Lippo Mall
  • Localio
  • Loket
  • Matahari
  • Ninja Van ID
  • Optik Tunggal
  • Qoo10
  • RedDoorz
  • Shop & Drive
  • Shopback
  • SIMKAH (Kemenag)
  • Telkom
  • Tiket
  • TIKI
  • 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.