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.

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.

Sunday, June 14, 2015

Quickly Turns On/Off SOCKS Proxy for MacOS X

#!/bin/bash

case "$1" in
  'on'|'off')
    networksetup -setsocksfirewallproxystate Wi-Fi $1
    networksetup -setsocksfirewallproxystate Ethernet $1
    ;;
  *)
    echo "Usage: sudo $0 on|off"
    exit
    ;;
esac

networksetup -getsocksfirewallproxy Wi-Fi
networksetup -getsocksfirewallproxy Ethernet

Thursday, April 18, 2013

Instalasi Linux pada Asus X45U - bagian kedua

Cara mudah memasang Linux yang perangkat jaringannya tak dikenali oleh installer adalah dengan memakai bantuan Ethernet USB yang chipsetnya sudah dikenal oleh kernel lama. Installer Debian 6 yang semula saya pakai memiliki kernel 2.6.32. Setelah memasang versi minimum OS di notebook ini, proses dilanjutkan dengan upgrade OS dari squeeze (Debian 6) ke wheezy (Debian 7). Wheezy memakai kernel 3.2.0.

Setelah wheezy terpasang, reboot, maka ethernet onboard langsung dikenali. Posting selanjutnya akan membahas tentang setup VGA, sound, WiFi, dan berbagai periferal lain di notebook Asus X45U.

Instalasi Linux pada Notebook Asus X45U - bagian pertama

Hari ini berkesempatan ngoprek notebook Asus X45U. Notebook datang dengan OS FreeDOS. Langsung dicoba pasang Linux saja. Coba boot pakai Ubuntu Lucid yang sudah terpasang di USB flash disk. Kok gagal? Bagaimana cara masuk ke menu BIOS? Ternyata cukup dengan menekan F2. Coba lagi diperiksa kenapa tidak bisa boot ke flash disk. Tidak ditemukan masalahnya dimana.

Pindah boot via CD. Debian 6.0. Sukses boot setelah urutan boot diubah paksa. Installer gagal mengenali Ethernet maupun WiFi :(

01:00.0 Network controller [0280] RaLink Device [1814:5390]
02:00.0 Ethernet controller [0200] Atheros Communication Device [1969:1091] (rev 10)
Mesti cari tahu installer Ubuntu/Debian/... mana yang sudah mendukung salah satu dari dua perangkat jaringan di atas, agar instalasi dapat dilanjutkan via jaringan.

Thursday, July 19, 2012

LibreOffice Impress Bug

File opened in LibreOffice Impress, tested on version 3.5.4 and 3.6.0.0.beta2 (above)
The same file opened in Microsoft Office PowerPoint (below)
Test case file LO-error-testcase-1.pptx



Update: Reported as bug 55260. Fix is already in master (3.7).

Thursday, July 05, 2012

Editing PO File Using Vi

Sometimes I prefer to use vi to do translation, by directly edit a PO file. To complete a partially translated file, it's very handy to know this regex to search untranslated or fuzzy strings:

/^msgstr ""\n^$\|^msgstr\[1\] ""\n^$\|, fuzzy
/^msgstr ""\n^$ will search for untranslated string, taking into account (and skipping) translated multi line strings. ^msgstr\[1\] ""\n^$\ will search for untranslated plural string. While \| are needed to OR multiple regex patterns (need to be escaped).

Update 13rd Jul, 2012: more exact 'fuzzy' matching.