Postingan

PUSTAKAWAN: membuat pathfinder online menjadi lebih mudah

Gambar
Pustakawan adalah projek open source baru saya untuk memudahkan pustakawan dan profesional informasi lain dalam membangun pathfinder online. Bagi anda yang belum mengetahui apa itu pathfinder , izinkan saya menjelaskan sedikit mengenai apa yang disebut pathfinder. Sederhananya pathfinder adalah panduan yang disusun oleh pustakawan, yang berisikan daftar-daftar sumber informasi dalam berbagai bentuk, seperti buku, website, jurnal, jurnal online, dll. mengenai topik tertentu, untuk membantu pemustaka mendapat sumber YANG TEPAT mengenai topik tertentu Halaman depan "Pustakawan" menampilkan daftar subjek terkait sumber informasi yang digunakan Halaman daftar sumber informasi pada subjek tertentu Fitur-fitur yang akan direncanakan ke depan adalah: Metadata sumber informasi menggunakan standar metadata Dublin Core Manajemen taksonomi subjek hirarkis dengan konsep semantik seperti Tesaurus Fitur langganan bagi pemustaka/peneliti yang ingin mendapatkan update m...

Genius's Guides to: membuat module Drupal 6 bagian 2

Gambar
Nah setelah pada posting sebelumnya kita mengenal dasar-dasar coding pada file .module-nya Drupal, kali ini kita akan membahas mengenai file bernama .install yang berisikan definisi dari struktur tabel database untuk kita gunakan pada module. Drupal memungkinkan kita menambahkan atau menghapus tabel-tabel module kita pada struktur database Drupal melalui hook_schema, hook_install dan hook_uninstall. Pada contoh ini misalnya kita akan membuat sebuah tabel yang nantinya akan kita gunakan sebagai tempat untuk menampung record atau data dari module kita. Jumlah tabel yang kita bisa tambahkan bisa lebih dari satu. Berikut isi dari file .install untuk module Latihan kita: /** * Module Latihan * Copyright Arie Nugraha (dicarve@gmail.com) 2012 * Licensed under GPL v3 * */ /** * Fungsi ini dijalankan oleh Drupal ketika kita pertama menginstall module Latihan */ function latihan_install() { // Create tables. drupal_install_schema('latihan'); } /** * Fungsi ini dijalanka...

Genius's Guides to: membuat module Drupal 6 bagian 1

Gambar
Okay, mungkin sebagian besar dari kita sudah tahu apa itu Drupal . Drupal adalah Content Management Framework yang memungkinkan kita membangun website atau aplikasi web dinamis. Lah kalau begitu kenapa engga disebut Content Management System alias CMS aja macem Joomla dsb.? Drupal menggunakan kata " Framework " disitu karena Drupal menyediakan sebuah platform yang sangat memungkinkan kita membangun aplikasi web lain dengan memanfaatkan API-nya yang sangat komprehensif. Saya bilang komprehensif karena API yang disediakan Drupal sangat lengkap kap kap. Di artikel blog kali ini saya mau berbagi kepada rekan-rekan pembaca blog (kalau ada yang baca hehehee) bagaimana cara kita membuat module Drupal kita sendiri. Dengan module kita bisa meng-extend/memperluas fungsi Drupal sesuai dengan kebutuhan kita sendiri. Sebenarnya ada beberapa module " sakti " yang bisa kita gunakan untuk membangun aplikasi web dengan Drupal, contohnya Views , CCK (Drupal 6) dan Token , tetapi ...

Instalasi Senayan Library Management System (SLiMS) di Mac OSX berikut dengan dukungan Z39.50 (Bagian 1)

Gambar
Sebenernya udah lama mau nulis tutorial ini, tapi karena "kesibukan" (#eaaa) yang mendera, baru kali ini kesampean, sekalian menyambut bulan Ramadhan yang penuh barokah dan kehadiran versi SLiMS terbaru Stable15 Matoa. Berhubung saya ini juga orang sangat pelupa, maka ada baiknya sekalian saya dokumentasikan cara instalasi SLiMS di Mac OSX, kali-kali aja di kemudian hari saya lupa :D. Untuk instalasi di Mac OSX sebenernya relatif mudah, beberapa prasyarat yang harus anda penuhi adalah: Desktop MacPro, Imac, Macbook, MacbookPro atau Macbook Air ! (YA IYAAALLLAH!!!). Terinstall sistem operasi OSX minimal versi 10.4 (boleh Intel atau PPC) dan ke atasnya Paket XAMPP for Mac terbaru Paket Xcode . Xcode merupakan paket development Mac OSX yang didalamnya terdapat compiler gcc, g++, make, dll. yang kita butuhkan untuk meng-compile YAZ dan PHP-YAZ. Xcode biasanya disertakan pada setiap DVD instalasi Mac OSX, atau kalo DVD instalasinya udah raib alias hilang, download ...

Tips dan Trik Pemeliharaan a.k.a Maintenance Senayan Library Management System (SLiMS)

Gambar
Beberapa teman pengguna SLiMS sering bertanya kepada saya, apa saja tips dan trik dalam pemeliharaan SLiMS, terutama bagi yang menggunakan versi Portable Senayan (psenayan). OK, kalau begitu sekalian aja biar ga lupa kita dokumentasikan di posting blog saya yang jarang sekali dimutakhirkan/ update ini (heheheeee): Tips 1: Hapus semua file image barcode secara rutin Setelah sekian lama menggunakan SLiMS kemudian sering membuat barcode untuk data Item/Copies koleksi, maka file-file image barcode hasil generate cetak barcode akan menumpuk di folder "lokasi_source_slims/images/barcodes" . Walaupun besar file-nya kecil-kecil tetapi cukup mengganggu juga kalau jumlah sudah ribuan, terutama bagi mereka yang pakai webhosting dengan space harddisk pas-pasan. Oleh karena itu bagi mereka yang sering mencetak barcode koleksi atau kartu anggota dengan SLiMS paling tidak sebulan sekali silahkan itu semua file image .png barcode di folder "lokasi_source_slims/images/barcodes...

Kompilasi HandBrake di Ubuntu 10.04 Lucid Lynx

Gambar
Mungkin sebagian dari Anda pengguna Ubuntu, sudah tahu bahwa HandBrake tidak keluar versi binary untuk distro Ubuntu dan Fedora. Padahal HandBrake menurut saya adalah salah satu aplikasi terbaik buat nge-rip DVD/encode video ke format MKV atau MP4 . Alasan resmi dari developernya adalah: "0.9.4 is no longer available due to compatibility issues with the newer version of gnome. " Ada juga cara dengan mendownload Nightly build -nya di Launchpad-nya John Stebbins . Buat yang demen cara susah, biar keliatan lebih geek, bisa juga install dengan kompilasi dari Source Code . Sebelumnya coba cara susah ini, pastiin komputer anda terkoneksi ke Internet dan pastikan paket-paket development berikut ini sudah terinstall: yasm build-essential autoconf libtool zlib1g-dev libbz2-dev intltool libglib2.0-dev libdbus-glib-1-dev libgtk2.0-dev libgudev-1.0-dev libwebkit-dev libnotify-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev Bagaimana cara installnya? buka ...

Mengatasi problem "wget" ketika mendownload di balik proxy (Ubuntu Lucid Lynx)

Gambar
Beberapa waktu yang lalu saya meng-upgrade OS GNU/Linux Ubuntu Karmic Koala (9.10) di MacbookPro saya ke versi LTS terbaru, Lucid Lynx (10.04). Saya upgrade menggunakan versi alternate yang saya download dari Kambing . Semua proses berjalan lancar, Lucid terinstall dengan ciamik-nya di MacbookPro dan hampir semua tombol fungsi spesial di Mac berjalan dengan baik. Masalah muncul ketika saya akan mendownload website untuk mirroring dengan program command-line favorit saya, wget . Kantor saya menggunakan proxy untuk koneksi Internet, sehingga untuk menjalankan perintah-perintah dari console yang menjalankan download seperti apt-get install atau apt-get update misalnya kita harus men-set environment variable http_proxy dan ftp_proxy terlebih dahulu. Pada desktop GNOME sudah disediakan aplikasi " Network Proxy " yang terletak di System->Preferences , yang memudahkan kita mengubah setting proxy jaringan. Enaknya lagi program ini mendukung multiple profile proxy yang memud...

Compile Sphinx indexing engine di Mac OSX 10.6.3

Gambar
Cari solusi indexing database standalone yang handal? Salah satu solusinya adalah Sphinx . Sphinx adalah engine pengindeksan full-text yang didesain untuk terintegrasi dengan baik ke RDBMS-RDBMS macem MySQL dan PostgreSQL, dan yang asiknya laginya Sphinx sudah menyediakan API ke bahasa-bahasa scripting populer macem PHP, Python, Perl dan Ruby. Karena saya develop aplikasi pake bahasa skripting PHP, maka Sphinx merupakan solusi yang pas untuk saya. Salah satu fitur yang bikin saya ngiler adalah statement berikut ini: "high search speed (avg query is under 0.1 sec on 2-4 GB text collections)" Wuiidddiihhh kalo dibandingin sama indexing native mysql, 100 ribu records yang besarnya sekitar 30MB aje ude empot-empotan!!! Statement berikutnya juga bikin ileran "high scalability (upto 100 GB of text, upto 100 M documents on a single CPU)" Saat tulisan ini dibuat, saya develop aplikasi web pake Macbook Pro, OS Snow Leopard 10.6.3, dan karena saya males compile-comp...

Emang Enak Kepentok Proxy!!!

Mengembangkan software dengan menggunakan aplikasi source code management (SCM) emang enak. Kami, developer SENAYAN Library Management System (SLiMS) pake git buat source code versioningnya. Asiknya pake git dibandingkan dengan aplikasi SCM lain adalah git menerapkan model ter-distribusi, tidak centralize seperti cvs. Asyiknya lagi pake git, kita ga harus terkoneksi ke server, kita bisa pake lingkungan hard disk lokal untuk buat branch-branch dari project kita. Saya ga akan ngebahas cara make git disini, tapi saya ngebahas bagaimana kalau kita mau push dan pull request dari server repository git di internet, tapi kepentok sama proxy jaringan dan firewall yang biasanya cuman ngebolehin port 80 atau 3182. Tapi itulah keindahan dunia open source, "That's The Beauty of Open Source", udah ada aplikasi yang bisa bantu kita tunneling data dari git, yang by default pake protokol SSL. aplikasi command line ini namanya Corkscrew , dan tersedia untuk semua varian GNU/Linux,...

Workshop Nasional SENAYAN Library Management System!!!

Gambar
SENAYAN DEVELOPER COMMUNITY (SDC) kembali akan ngadain Workshop Nasional SENAYAN Library Management System (SLiMS), yang tepatnya akan dilaksanakan di Hotel Paragon Jakarta (daerah Menteng, Jakarta Pusat), pada tanggal 14 – 17 Desember 2009. Pastinya karena Workshop ini diadakan selama 4 hari 3 malam full, jadi materi yang diberikan juga akan sangat banyak dan men-detail. Workshop ini ditujukan kepada para pustakawan atau perorangan yang ingin memanfaatkan SLiMS untuk mengelola koleksi ditempat kerja. Materi workshop dirancang untuk membantu para peserta agar dapat segera mengaplikasikan SLiMS di tempat masing-masing. Dibagi dalam 10 (Sepuluh) modul dasar ditambah materi kustomisasi dan konversi data, pengetahuan dasar perpustakaan akan sangat membantu peserta memahami materi dan panduan yang di sampaikan. Dalam pelatihan, peserta akan menggunakan versi terbaru SLiMS – atau juga dikenal dengan SENAYAN 3 stable 12. Untuk brosur pendaftaran serta surat undangan bisa di-unduh (d...

jQuery, I Love You Full!

Di postingan sebelumnya saya membahas Prototype , sebuah framework Javascript ciamik untuk manipulasi DOM dan AJAX. Kali ini saya iseng-iseng coba sebuah framework Javascript yang sudah kesohor juga yaitu jQuery . kalau menurut hemat saya, jQuery punya model syntax yang lebih elegan dibandingkan dengan Prototype, hal ini bisa kita lihat dalam model object jQuery yang lebih simple, terutama dalam penanganan event. Penanganan event di jQuery nemungkinkan kita benar-benar memisahkan antara layer tampilan dengan layer logic pemrograman javascript. Perbedaan mendasar antara jQuery dengan Prototype adalah, fungsi $ pada jQuery menerima argumen string Selector CSS atau XPath dan selalu mengembalikan objek jQuery dalam bentuk Array atau List, sedang pada Prototype fungsi $ hanya menerima string ID dari element yang akan kita manipulasi dan mengembalikan object DOM yang sudah di-extend oleh metode-metode Prototype (walaupun sebenarnya Prototype punya fungsi yang serupa dengan $ -nya jQuer...

Instalasi library YAZ di PHP

Gambar
Pada SENAYAN 3 Stable 10 , saya menambahkan kemampuan untuk mengambil data melalui protokol Z39.50 pada modul Bibliography (Pengatalogan). Fitur ini memanfaatkan library PHP YAZ . YAZ sendiri adalah sebuah library untuk bahasa C yang dapat digunakan untuk membangun aplikasi server dan klien protokol Z39.50/SRW/SRU. Untuk lebih lengkapnya silahkan anda arahkan browser kesayangan anda ke laman resmi YAZ . Fitur Z39.50 di SENAYAN 3 Stable 10 diharapkan akan semakin memudahkan pustakawan untuk mengambil data langsung ke database online Library of Congress yang kesohor itu. Cukup masukan nomor ISBN, tunggu proses pengambilan data selesai, apabila berhasil anda tinggal memilih data mana yang akan dimasukkan ke dalam database SENAYAN anda. Hidup pustakawan semakin mudah kalau pakai SENAYAN hehheeheee :). Untuk yang belum mengetahui apa itu protokol Z39.50, Z39.50 adalah protokol klien server berstandar internasional (ISO 23950) untuk penelusuran dan temu kembali informasi antar komput...

Alya Bakhita

Gambar
Alya Bakhita. Yang Tinggi dan Beruntung. Anak dan putri pertama-ku dengan istri tercinta, Lia. Alya Bakhita Alya Pake Baju Kodok Alya Bakhita, Bunda dan Ayah

Anak Pertama-ku Telah Lahir!

Gambar
Alhamdulillah Wa Syukurillah , ALLAH SWT telah melengkapi kehidupan keluarga saya dan istri, dengan memberikan amanah-nya yang paling menakjubkan di alam semesta, seorang anak . ALLAH SWT telah meng-karuniai kami seorang putri yang cantik pada tanggal 5 november 2008, pukul 8.30 WIB, dengan berat 3,37 kg dan panjang 50 cm. Hingga tulisan ini dibuat belum diputuskan namanya (hehheeehee... kandidat si udah ada tapi belum diputuskan). Sedikit berbagi kebahagian berikut adalah foto-foto yang saya ambil beberapa jam setelah "ade" dilahirkan ke dunia :

Bikin Search Engine FullText dengan Zend Search Lucene - Searching/Pencarian

Pada posting sebelumnya saya sudah sedikit memaparkan bagaimana cara membuat dan menambahkan indeks database dokumen fulltext dengan menggunakan Zend Search Lucene. Sekarang saya akan sedikit memaparkan bagaimana cara untuk melakukan pencarian ke dalam indeks yang telah dibuat dengan menggunakan Zend Search Lucene. Untuk melakukan pencarian, Zend Search Lucene menyediakan beberapa metode, tetapi yang paling simpel adalah menggunakan metode find() , dari objek INDEX (instance fungsi factory Zend_Search_Lucene::open). Metode find() mempunyai 2 argumen, argumen pertama adalah kata kunci/keyword yang ingin kita query , dan argumen kedua adalah default field metadata yang akan di-coba temukan oleh indexer. HATI-HATI DENGAN QUERY WILDCARD (*)! Listing programnya kira-kira seperti ini : <?php // include paging class require 'lib/simbio_paging.inc.php' ; require 'lib/utils.inc.php' ; // get keywords $keywords = trim ( $_GET [ 'keywords' ] ) ; if ( $key...