Thursday, October 11, 2012

File System Permission in UNIX/Unix Like

This is a short tutorial about file system permission


Ey, and I was talking-talking in english

Thursday, October 4, 2012

Mendapatkan Bagian Halaman Web Secara Parsing

Ide ini bermula dari pengalaman saya saat mengikuti Hack Nation yang diselenggarakan oleh Nokia. Saat itu saya dan partner saya (@ansharabdullah) ingin membuat aplikasi jadwal sholat. Sepertinya aplikasi yang simpel ya?

Tidak Sesimpel Itu Juga Sih...

Namun masalahnya kami tidak memiliki API jadwal sholat maupun algoritma dan metode lain untuk menentukan jadwal sholat. Lagipula bila menghitung sendiri belum tentu yang saya buat akan sesuai standar dari menteri agama, ya? :). Satu-satunya informasi yang saya ketahui adalah jadwal sholat bisa dilihat di website PKPU.

Alamat aplikasi generator jadwal sholat ada di http://www.pkpu.or.id/adzan3/monthly.php?id=10.

Thanks berat buat cahyadsn yang telah membuat app ini.

Nah, kita sudah memiliki halaman yang memiliki jadwal sholat, berarti secara teori sudah ada data sholat yang bisa diambil. Namun bagaimana caranya mengambil data dari salah satu bagian halaman tersebut untuk digunakan lagi?


Halaman Web Adalah Teks

Secara konkrit, webpage dibuat oleh html yang merupakan teks. Berarti kita dapat menelusuri teks tersebut dan memilah untuk mengambil bagian yang kita inginkan saja bukan? Metode pencarian untuk menentukan susunan pola dan gramatika ini disebut dengan parsing

Dalam implementasinya hal ini dapat dilakukan salah satunya dengan Javascript. Kenapa Javascript? Karena kebetulan saat acara Hack Nation saya dan partner membuat web app yang menggunakan Javascript sebagai bahasa pemrogramannya, itu artinya sobat juga bisa menggunakan bahasa lain dengan metode yang sama.

Mengambil Bagian Halaman


Kembali di halaman PKPU. Dalam halaman jadwal sholat yang diberikan ini terdapat sebuah tabel yang berisi jadwal sholat. Dengan inilah saya mengambil pola dari pembentukan tabel tersebut. Bagi sobat yang mengetahui tag html, tabel akan dimulai dengan tag table dan diikuti serangkaian tag tr dan td. Ini merupakan bagian yang menguntungkan bagi saya karena setiap data telah dipisah-pisah secara rapi dengan tabel. Yang tinggal saya lakukan adalah membuang tabelnya dan mengambil data di dalamnya.

Metode yang saya gunakan untuk mengambil bagian halaman tersebut sangat sederhana! Saya hanya mengecek sesuai dengan pola halaman tersebut dengan menggunakan teknik AJAX.

Inilah Implementasinya

Berikut implementasi dari pengambilan bagian halaman yang ada di web.

//kode //kode

Penggunaan kode ini dapat dilakukan dengan menggunakan onload="jadwalSholat.connect(14,23)", dimana 14 sebenarnya adalah kode dari kota dan 23 adalah tanggal sekarang. Kode kota bisa sobat dapatkan dari dropdown list yang ada di website PKPU.

Ini Berbahaya

Mungkin sobat sudah mencobanya dan tidak ada data yang di load? Teknik AJAX dengan memanggil dari domain lain sangatlah berbahaya. Teknik ini sering digunakan pula oleh hacker dengan sebutan Cross-Site Scripting. Bagi teman-teman kita yang jahat, mereka dapat mengaktifkan beragam fungsi dari website lain untuk dibuka di website yang lainnya lagi.

Saat saya mencoba script ini di Chrome pesan error di Console ditampilkan, namun saya bisa menjalankannya di Safari. Aneh juga ya?

Dari berbagai sumber dan forum yang saya dapat bahkan untuk beberapa server tidak diperkenankan untuk memanggil AJAX dengan domain host berbeda. Namun karena saat itu saya develop untuk Web App dan yang mengatur pemanggilan data adalah dari server Nokia, hasilnya lancar saja kok :)

Itulah caranya

Walaupun tidak mendapatkan juara di Hack Nation saat itu namun saya sangat senang dapat bertemu dengan metode seperti ini. Bayangkan untuk kegunaan apa lagi yang bisa sobat lakukan dengan teknik ini? It's fun!

Wednesday, October 3, 2012

Inkscape: Alternatif Superior Artist Vector

Saat dulu mendapatkan tantangan untuk beralih menjadi pengguna Linux selama 30 hari salah satu fitur yang saya pikirkan pertama kali adalah "Bagaimana dengan aplikasi pengolahan gambar vector?" Yap, dulu saya adalah pengguna CorelDRAW aktif dan kegiatan mengolah gambar vektor hampir menjadi kegiatan utama saya setiap berada di depan komputer, kini semuanya berubah dengan menyenangkan. Oh, Jadi? Aplikasinya adalah?

Inilah Primadona Aplikasi Pengolah Vector Open-Source


Setelah beralih beberapa kali dari beberapa aplikasi seperti XARA, Sodipodi, dan kemudian jatuh hatilah saya kepada Inkscape.

Inkscape adalah aplikasi pengolah gambar vektor yang menurut saya patut untuk dijadikan alternatif dibandingkan dengan aplikasi berbayar dengan kegunaan sejenis. Tampilannya yang hampir mirip dengan CorelDRAW, sederhana, dan intuitif menjadikan Inkscape mudah dan menyenangkan untuk digunakan.

Inkscape dirilis dengan lisensi GNU General Public License. Dilansir oleh Wikipedia, Inkscape merupakan aplikasi forking pada tahun 2003 dari Sodipodi. Inkscape mengalami pengembangan yang sangat besar sejak saat itu dan mendapatkan berbagai dukungan seperti penggunaan code Open-Soruce Xara Extreme dan berpartisipasi di Google Code.

Fitur-fitur Inkscape dalam pengolahan gambar vector layaknya aplikasi lainnya. Terdiri dari pen tool, rectangle tool, bezier tool, spiral tool, stars and polygons tool, colors, dan beragam fitur lainnya. Berbagai tool standar ini menjadikan Inkscape sebagai aplikasi yang powerful dalam pengolahan gambar vector.

Salah satu tool favorit saya adalah Blur. Saya dapat membuat efek Blur untuk shadow dan glow dengan cepat.

Fitur Blur yang menjadi favorit saya
Oh, dan tentu saja menurut saya yang  menjadikan Inkscape lebih unggul adalah gratis!

Menggunakan Format Standar

Inkscape menyimpan filenya dalam format .svg. Ini adalah format standar untuk gambar vector yang dikembangkan oleh W3C. Hal ini memungkinkan file Inkscape yang diolah dapat dibuka di beragam aplikasi bahkan di web-browser sekalipun.
Bandingkan dengan format proprietary dari CorelDRAW yang menggunakan format .cdr sehingga ketika ingin membukanya paling tidak harus di export terlebih dahulu menjadi gambar raster atau memiliki program CorelDRAW, merepotkan bukan?

Inilah sebenarnya isi dari file .svg, kumpulan tag XML!

Beragam Extension

Berada di lingkungan Open Source merupakan keuntungan yang besar. Setiap orang dapat mengembangkan fitur-fitur yang diinginkan. Hal ini pula dirasakan bagi saya sebagai pengguna Inkscape dengan mudahnya mendapatkan extension dari berbagai sumber.

Sebut saja salah satunya SOZI. Extensi ini menjadikan Inkscape dapat membuat animasi dan presentasi secara sederhana. Wow, bagaimana bisa? Karena Inkscape menggunakan format file dengan  open-standard berupa .svg yang memiliki fungsi animasi maka hal ini dapat dilakukan.

Salah satu hasil dari extension Extrude Effect

Ada juga Extrude Effect yang memberikan fitur efek extrude pada objek maupun teks. Puff yang menjadikan objek dapat seolah mengembang, dan beragam extension lainnya yang bisa dilihat di Extension Repository Inkscape.

Komunitas Inkscape

Sebagai sebuah aplikasi yang sangat powerful tentu saja banyak pengguna yang memanfaatkannya dengan powerful pula. Ada beragam komunitas di dunia maya yang mengkhususkan diri dalam mengolah beragam karya dengan menggunakan Inkscape. Mulai dari website khusus seperti Inkscapegallery hingga komunitas artist seperti Inkscape Deviantart.

Ya! Inkscape Luar Biasa!



Gratis, Open-source, dan multiplatform! Saat saya menggunakan baik itu Linux, Windows, maupun OSX, saya dapat menggunakan Inkscape dimanapun. Bahkan kini saya sudah tidak menggunakan CorelDRAW lagi. Saya sudah jatuh hati dengan Inkscape dan menggunakannya dalam beragam kesempatan mulai hobi hingga pekerjaan saya. Saya pun kini aktif untuk meracuni orang-orang untuk menggunakan Inkscape. Mari meracuni orang-orang untuk menggunakan Inkscape! :D


Membuat Game J2ME

Hari ini nongkrong dari jam 9:30 di Lab Multimedia. Sebenarnya ada jadwal kuliah Data Warehouse dan Mining, tetapi dikarenakan Pak Yudi selaku dosen pengampu mata kuliah sedang sakit mata kuliah hari ini ditiadakan. Get well soon ya pak!

Daripada ngalor ngidul nggak jelas jadi mulai lah melakukan quest untuk membuat game dengan J2ME, yay!

Ini sebenarnya bukan pertama kalinya saya membuat game J2ME, tapi karena ada modul dari buku gratisan tim Agate Academy yang judulnya "Membuat Game J2ME untuk pemula" jadinya mulai belajar untuk membuat game yang lebih rapi lah ya (sebelumnya masih ngoding acakadut nggak karuan)

Penampilan kitab sotasoma buku membuat game nya

Install eclipse, kasih JDK dan WTK, voila! Jadi deh sampai sini
Game yang kata Agate judulnya "Help Me Out." Catchy juga
Untuk assetsnya(gambar-gambarnya) sendiri tinggal unduh sih di http://agateacademy.com/books/membuat-game-j2me.html, jadi hari ini fokus ke pemrogramannya.

Untuk sampai sekarang sudah bisa gerak-gerak karakternya, sudah bisa naruh inventory buat buka pintu juga. Unyuuuu (/^3^)/

Oh my! #Gamedev is fun! Nanti lagi ah lanjutnya. Yeyeye :D