Scriptnya Tidak Sama dengan Rencana

Pada awalnya aku yakin banget dengan rancana yang aku tulis pada waktu situs pidgin.im down. Rencana yang sepertinya simple dan tidak rumit.

Setelah situs pidgin.im hidup lagi dan berjalan normal serta mood untuk coding yang udah balik. Aku memulai membuat script pidgin yang sesuai dengan rencana itu.

Tahap prototyping script berjalan sesuai dengan rencana, tentu setelah dengan beberapa fixing. Dilanjutkan dengan implementasi fitur utama yaitu daemon mode. Dan dilanjutkan dengan finalisasi struktur dan fitur-fitur penghibur. Jadilah sebuah script untuk pidgin yang sesuai dengan yang sudah aku rencanakan (ada beberapa yang kurang, tapi fitur utama sudah ok).

Karena semua sudah oke, aku coba untuk cross check dengan tulisan rencana aku. Dan apa yang aku dapat ternyata sunggu diluar dugaan, rencana yang sudah aku anggap sesuai itu ternyata melenceng dari yang sudah aku rencanakan.

Baca entri selengkapnya »

Catatan Kecil Oracle “rownum” #2

Limit query dengan menggunakan rownum memang sukses untuk membatasi berapa banyak record yang ingin dikembalikan, tapi hari ini aku perlu limit untuk membatasi result setelah record XX dan sampai record XX.

Aku kira dengan menambahkan batasan bawah rownum yang ingin dikembalikan menjadi:

SELECT rownum row2, b.row1, b.k_agama, b.content
FROM
(
  SELECT rownum row1, a.k_agama, a.content FROM m_agama a ORDER BY a.content
) b
WHERE 5 <= rownum AND rownum <= 10;

bisa digunakan, akan tetapi hal itu tidak sesuai dengan yang aku inginkan. Query tersebut gagal. Tidak ada record yang dikembalikan.

Quick workaround adalah dengan mengubahnya menjadi seperti ini:

SELECT c.row2, c.row1, c.k_agama, c.content
FROM
(
  SELECT rownum row2, b.row1, b.k_agama, b.content
  FROM
  (
    SELECT rownum row1, a.k_agama, a.content FROM m_agama a ORDER BY a.content
  ) b
) c
WHERE 5 <= rownum AND rownum <= 10;

Aku tahu workaround ini payah, tapi aku butuh query ini berjalan secepatnya.

developer.pidgin.im is currently down!

Sayang sekali, padahal lagi ingin bereksperimen untuk membuat plugin, tepatnya daemon yang menyediakan fungsi tambahan untuk pidgin.

Rencananya seh simpel, dapet ide dari Forum Ubuntu. Jadi dengan menggunakan python dan dbus aku berencana untuk membuat script yang berjalan dibackground yang memonitor teks yang aku ketik. Jika teks itu sesuai dengan keyword, say it – as example, /mixcase maka otomatis setiap teks yang aku kirim akan dibuat mix case, itu loh seperti chatingan abg-abg yang gaul-gaul yang suka nyampur aduk huruf kecil ama huruf besar.

Tapi ya itu, sayang sekali masih down. Moga-moga aja cepet balik normal.

Catatan Kecil Oracle “rownum”

-- rownum menunjukkan urutan fisik dari record
-- dalam database
SELECT rownum row1, a.k_agama, a.content FROM m_agama a;

-- jika kita order hasil query maka rownum tidak lagi akan urut
-- karena rownum menunjukkan posisi asli dari record
SELECT rownum row1, a.k_agama, a.content FROM m_agama a ORDER BY a.content;

-- jika query model ini diterapkan limit hasil query (emulasi LIMIT)
-- maka akan dihasilkan hasil yang salah
SELECT rownum row1, a.k_agama, a.content FROM m_agama a WHERE rownum <= 5 ORDER BY a.content;

-- dengan multi select maka bisa didapatkan urutan dari query
-- yang menggunakan order
SELECT rownum row2, b.row1, b.k_agama, b.content
FROM
(
SELECT rownum row1, a.k_agama, a.content FROM m_agama a ORDER BY a.content
) b;

-- dengan menggunakan model query terakhir maka bisa diperoleh record yang
-- dibutuhkan (implementasi query LIMIT seperti di mysql)
SELECT rownum row2, b.row1, b.k_agama, b.content
FROM
(
SELECT rownum row1, a.k_agama, a.content FROM m_agama a ORDER BY a.content
) b
WHERE rownum <= 5;

USVN Weird Error

Hari ini jadwal migrasi server repository ke server baru. Setelah test sana, test sini semua sepertinya sudah ok. Sampai akhirnya test untuk interface usvn, ternyata ada beberapa page yang gak bisa dibuka.

Page-page itu adalah group info sama project info. Kedua pages itu gak bisa aku buka, yang satu ngasih error kalo call to undefine function bla…bla…, yang satu silently forward requestku ke halaman sebelumnya.

Error yang direkam oleh httpd adalah PHP Notice:  Trying to get property of non-object in /var/www/html/usvn/controllers/ProjectadminController.php on line 80, referer: http://xxx.xxx.xxx.xxx/usvn/admin/project/ aneh banget (bagi aku), soalnya harusnya framework yang dipakai oleh usvn tidak boleh mengembalikan error ini.

Terlusur punya telurus, dari cek config.ini, .htaccess punya usvn, cek config subversion, review config httpd sampek cek source code dari usvn. Tidak ada yang aneh dari itu semua, sampai akhirnya datang wangsit untuk cek database usvn. Karena database yang aku pake bukan create baru, tapi hasil copy paste dari server lama.

Walhasil pada waktu aku check table muncul pesan Table upgrade required. Please do "REPAIR TABLE `xxx`" to fix it! untuk tabel usvn.usvn_groups dan usvn.usvn_projects.

Setelah menjalankan apa yang diperintahkan, usvn berjalan lagi dengan lancar. Belum tahu dengan detil kenapa unupgraded table bisa menyebabkan error seperti ini. Tapi aku sudah cukup puas dengan berjalannya usvn.

« Entri lama