Flyer Bike to Work

Ini selebaran (resmi) yang dibagikan Bike to Work, isinya tentang undang-undang perlingungan pengendara sepeda, tips bersepeda (ke tempat kerja) yang aman, isyarat-isyarat dan lainnya. Aku sih cuma scan dan pasang di sini (ngebanyakin isi blog, hehe).





(klik untuk melihat dengan ukuran lebih besar dari picasaweb)

Hening atau Tenang?

Menambahi post sebelumnya tentang poster yang salah pilih kata, kali ini konteksnya kurang 'makcep'


Kali ini tulisannya "Keep Silent", poster yang ini sudah ditempel sejak sebelum UAS (tapi aku kurang tahu kapan)

Bukan maksudku minta ini-itu, tapi kalau dicermati artinya silent itu hening. Berarti diskusi baik-baik di depan ruangan kelas sambil nunggu dosen semacam dilarang, dong? Keep Quiet (Tetaplah tenang!) sepertinya lebih proporsional, yak!

Sembrono Bersepeda

Dari dulu banyak orang yang bilang cara saya mengemudikan sepeda itu 'sembrono', padahal aku pikir itu cuma sekadar 'agak sedikit cepat dengan jarak yang sedikit sempit'. Mari kita paparkan beberapa poin.

1. Beberapa kali saya mengalami kecelakaan dan menyebabkan kecelakaan (kecil) saat mengendarai sepeda.

Saat saya yang 'menderita' kecelakaan kesemuanya adalah kecelakaan tunggal, penyebabnya adalah kesalahan pengamatan medan: jalan berpasir sehingga mengurangi grip ban saat belokan, berada terlalu dekat dengan kendaraan lain sehingga susah terlihat oleh kendaraan yang lain lagi (berbeda dengan yang 'lain' yang pertama :D ).

Ada juga kecelakaan tunggal karena iseng sendiri, tapi saat itu kondisi jalan benar-benar sepi atau saya sedang berada di bahu jalan, aku pinggir tidak akan membayakan pengendara lain. Pernah juga dikarenakan malfungsi peralatan, tapi kecelakaan saat itu segera berlalu karena 'korban' dapat memaklumi (waktu itu cleat macet).

Saat saya menjadi sebab kecelakaan, seingat saya cuma 2 kejadian:
- saya menyenggol payung anak kecil yang sedang jalan di bahu jalan karena grip ban yang sudah aus (aku bener-bener maaf, Dek!),
- pengendara motor jatuh tepat di depan rumah ketika saya belok tajam ke kanan untuk masuk garasi rumah. Menurut saya penyebabnya karena pengemudi motor mengambil jarak yang yang terlalu dekat dengan saya pada bagian kanan lajur (padahal aku sudah memakan lajur dari arah berlawanan, lho!), dan saya tidak sempat memberi isyarat belok karena tepat sebelum itu berpapasan dengan kendaraan dari arah sebaliknya. (hayoo, bisa bayangin ga?)

2. Kelajuan rata-rata saya memang (sedikit) di atas kebanyakan pengendara sepeda di perkotaan.

Sering saya lihat speedometer pengendara motor untuk melihat kecepatan saya (maklum belum beli cyclocomputer), sekitar 30+ kmpj dengan roadbike (or wannabe) dan 20+ kmpj dengan city bike. Dan tidak jarang segera mengambil lajur kanan saat melaju agak cepat.

3. Jarak selebar dua sepeda adalah jarak yang aman untuk mendahului kendaraan lain (menurut saya pribadi, sih).

Jarak selebar 2 menurut saya sudah (lebih dari) cukup untuk mendahului kendaraan lain dengan beda kelajuan tidak kurang dari 5 kmpj (1,4 m/s) di jalan yang lalu-lintasnya tidak lebih kencang dari 40 kmpj. Sebagai contoh dengan angkutan umum (di Malang) tidak lebih panjang dari 7 meter, jadi dalam 5 detik kita dapat mendahuluinya dengan jarak yang cukup (sekitar semeter) untuk bermanuver ke kanan-kiri untuk memosisikan sepeda kembali ke lajur.

Tentunya kendaraan berbeda yang akan didahului memberikan perkiraan yang berbeda tentang jarak dan waktu yang dibutuhkan, jadi semuanya harus sama-sama 'memberi jalan'.

3. Saya termasuk orang yang peduli dengan 'agresivitas' rem.

Rem di sepeda saya selalu saya atur pada pengaturan yang agresif, jarak brakepad dan rim yang sempit, ujung tuas rem mudah dijangkau sehingga memungkinkan memberikan kuasa yang besar pada tuas rem untuk hard-braking. Sering saya menemui pengaturan rem yang 'asal berhenti' pada sepeda orang lain, and that's not nice!

4. Saya ga butuh 'gaya-gayaan'
Menurutku, bersepeda itu tentang efektivitas, keamanan, dan kenyamanan. Saya ga mau gaya-gaya macam 'no-hand' saat dekat dengan kendaraan lain yang jaraknya tidak tidak lebih dari lebar sepeda (atau pakai sepeda doltrap!)

5. Saya berusaha menjaga konsentrasi di jalan.

Menggunakan ponsel saat mengemudi, bercakap-cakap dengan teman yang kebetulan bertemu di jalan---ugh, menurutku bukan tindakan yang baik.

6. Saya tidak pernah berniat menjatuhkan orang lain di jalan.

Pernah saya dipepet pengendara motor yang habis saya dahului (dari kanan). Pengendara motor tersebut nampak tidak terima (baca: tersinggung) dan kembali mendahului saya, namun entah kenapa mengurangi kelajuannya setelah itu. Saya sih yang masih lebih cepat mendahuluinya dari kiri (saat itu jalan sepi sehingga berani ambil dari kiri). Pengendara tersebut memojokkan saya ke bahu jalan sambil berteriak, "Mau apa kamu?!".

Jujur, saat itu saya terpikir untuk menggoyang kemudi sepeda motornya sehingga pengendara jatuh kemudian saya pukulkan footstep sepeda yang tajam ke wajahnya waktu dia masih meronta kesakitan lepas jatuh dari motor. Tentunya saya urungkan niat buruk tersebut karena tentunya pikiran jahat tersebut bukan tindakan manusiawi.

7. Saya tidak ingin membahayakan pengendara lain.

Jika terjadi kecelakaan, saya berusaha meminimalisir efek dan jumlah korban. Taruhlah korbannya cuma saya dan dengan posisi badan yang benar sehingga hanya luka lecet yang didapat.

Jadi menurut Anda, 'sembrono'-nya saya sekadar 'ugal-ugalan' atau nimble handling and measured speeding?

One liner shell of the day : #9

Sebetulnya ga beda jauh dari artikel "one liner shell" yang lain, tapi ga apa-apa lah buat menuh-menuhin blog--maklum lama ga diisi.

Setelah install Salix64 13.37 XFCE (naik dari Salix64 13.1 fluxbox), maka setting personalisasi ini dan itu harus dibikin lagi, termasuk shortcut keyboard buat volume suara, kali ini buat kontrol besar-kecilkan volume suara.

amixer sset PCM 4%+ untuk tombol XF84AudioRaiseVolume, dan
amixer sset PCM 6%- untuk tombol XF84AudioLowerVolume

Lalu kenapa turunkan volume lebih besar dari menaikkan: biar lebih cepet waktu pas dengerin musik/film terus dipanggil orang atau angkat telepon. :)

Java (revisited): gara-gara tugas

Nah, 'pamer' tugas lagi, nih :( (publishnya kok juga mepet sama deadline tugas)



Kalau yang ini bikin form 'pendaftaran' yang dulu--hardcoded.
kode: form pendaftaran yang lama



kode: pakai designer
Sejenis dengan sebelumnya, cuma softcoded (isitlah apa itu?!) dengan designer di NetBeans.


Yang ini punya popup notifikasi jadi tampak seperti ini:

kode: tambah pop-up
Actionnya tiap Component ditaruh di ActionListener yang anonim. Tinggal timpa fungsi actionPerformed(ActionEvent e) dengan 'kelakuan' yang dibutuhkan.
________
Walaaa, kuis hari ini!

(damn basic) Threading on Java + Qt

Kalau ditanya threading itu apa, aku definisikan begini: unit kecil dari program yang rutinnya dapat berjalan secara mandiri dari program induknya. Harusnya ada korelasinya dengan syscall fork(), tapi belum tahu di mana. :D

Mari pelajari code-nya:
- contoh thread di Java,
- contoh thread di Qt

Di Java, kita dapat membuat thread berupa sebuah class sendiri yang extends dari java.lang.Thread. Kita disuruh menimpa fungsi run() sesuka kita. Sebetulnya ada cara lain dengan implements dari java.lang.Runnable, tapi bukan preference-ku, deh!
--selebihnya perbedaan kedua metode bisa dibaca di artikel dari stackoverflow ini

Di Qt kurang-lebih sama, inherit QThread, tumpuk fungsi run(), dan viola!

Dari dua contoh di atas, kita bisa ambil kesimpulan:
- karena thread menjalankan hanya fungsi di run(), maka coding program bakal terasa sekuensial di situ (padahal OOP),
- beberapa thread bisa jalan secara independen (and kinda 'scrambled'), dan bisa diatur prioritasnya masing-masing,
- kita harus tahu bagaimana mengontrol thread: mulai, tahan, ulang, selesai, dan lainnya.
- thread rekursif? coba, deh! :)

____
Untuk fungsi-fungsi yang berkaitan dengan kontrol: start(), suspend(), stop(), prioritas , komunikasi antar thread, dan sebagainya bisa dirujuk sendiri ke dokumentasi masing-masing, ya!

bikin repo OpenBSD 4.8 pakai vsftpd

Berbuhung di LInK (Laboratorium Informatika dan Komputer Elektro) mau praktikum Jaringan Komputer untuk semester ini, repot-repotnya ngrusin OpenBSD dimulai lagi.

Gambaran umum pekerjaannya adalah pasang OpenBSD di beberapa komputer, konfigurasi antarmuka jaringan, install paket, done!

Berhubung kalau install dari Repo OpenBSD-nya ITB ya lumayan cape nginget URL-nya. Maka ada strategi baru yang diterapkan:
- mirror isinya repo tersebut,
- pasang di server ftp (atau http) lokal yang OpenBSD juga,
- konfigurasi variabel $PKG_PATH, lalu pkg_add di klien.

Urusan mirror me-mirror tinggal mudah:
wget -cvr --noparent ftp://10.100.100.254/ftp.itb.ac.id/pub/OpenBSD/4.8/packages/i386/
(kebetulan pakai 4.8, belum sempat naik pangkat jadi 4.9)

Pasang vsftpd dengan pkg_add -l vsftpd dari direktori hasil nge-mirror (kan tadi udah di-mirror semua)
Konfigurasi /etc/vsftpd.conf macam begini:

## contoh konfigurasi vsftpd anonim
listen=YES # bolehkan koneksi masuk
ssl_enable=NO # ga perlu SSL
local_enable=NO #ga perlu pakai otentifikasi user lokal
anonymous_enable=YES # aktifkan user 'anonymous'
anon_root=/repo/ftp.itb.ac.id/pub/OpenBSD/4.8/packages/i386 # aku simpannya di HDD macam begini


Jalankan vsftpd dengan:
vsftpd & (enaknya di BSD kalau proses background udah nohup), kalau sudah bener di klien kalau browse ke ftp://host-server-ftp/ bakal tampak isinya repo itu.

Setelah reponya siap, si klien tinggal:
export PKG_PATH=ftp://host-server-ftp-sendiri
pkg_add -v -r -i nama-paket-paket


_____
Semoga ga makin ga jelas yang baca. Maaf karena tulisannya kacau, maklum dokumentasi terburu-buru.