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.

July 2

2 Juli tahun ini merupakan hari yang bakal (lebih) spesial dari 2 Juli tahun-tahun sebelumnya.

Alasannya:
- ulang tahun salah satu temen (tahun sebelumnya alasannya cuma ini),
- gelaran Tour de France
- rencana mau beli sepeda, YAY!